diff --git a/_c581.js b/_c581.js new file mode 100644 index 0000000..e384e88 --- /dev/null +++ b/_c581.js @@ -0,0 +1,14 @@ +(self["webpackChunkhfy_epub"] = self["webpackChunkhfy_epub"] || []).push([["_c581"],{ + +/***/ "?c581": +/*!********************!*\ + !*** fs (ignored) ***! + \********************/ +/***/ (() => { + +/* (ignored) */ + +/***/ }) + +}]); +//# sourceMappingURL=_c581.js.map \ No newline at end of file diff --git a/_c581.js.map b/_c581.js.map new file mode 100644 index 0000000..38a2f5a --- /dev/null +++ b/_c581.js.map @@ -0,0 +1 @@ +{"version":3,"file":"_c581.js","mappings":";;;;;;;;AAAA","sources":["webpack://hfy-epub/ignored|/mnt/BIGD/projects/hfy-epub/node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib|fs"],"sourcesContent":["/* (ignored) */"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/index.html b/index.html index 580eabc..4163dc6 100644 --- a/index.html +++ b/index.html @@ -17,4 +17,4 @@ l.pathname.slice(0, -1) + decoded + l.hash ); } - }(window.location)) \ No newline at end of file + }(window.location)) \ No newline at end of file diff --git a/main-50d9a3f843b31d0bee31.css b/main-50d9a3f843b31d0bee31.css new file mode 100644 index 0000000..b6a1829 --- /dev/null +++ b/main-50d9a3f843b31d0bee31.css @@ -0,0 +1,47 @@ +.column-card.svelte-12n6e3q{padding:10px 18px;border:1px dashed lightgray;border-radius:8px;display:grid;grid-template-columns:150px auto;grid-gap:10px;gap:10px;align-items:baseline + }@media screen and (max-width: 600px){.column-card.svelte-12n6e3q{grid-template-columns:100%;padding:6px 8px}.column-card.svelte-12n6e3q>p:not(:last-child){margin-bottom:1em}}@media screen and (max-width: 400px){.column-card.svelte-12n6e3q{margin:0 -5px + }}.column-card.svelte-12n6e3q>*{margin:0} +@keyframes svelte-1tapr9t-slide{0%{left:0}100%{left:1em}}label.svelte-1tapr9t{display:block} +@keyframes svelte-5v9ihf-slide{0%{left:0}100%{left:1em}}.warning.svelte-5v9ihf.svelte-5v9ihf{color:#f2b400 + }.warning.svelte-5v9ihf.svelte-5v9ihf::before{content:'\26a0';margin-right:0.5em}.field.svelte-5v9ihf.svelte-5v9ihf{display:block;padding-top:0.7em}.field.svelte-5v9ihf input.svelte-5v9ihf:not([type="checkbox"]),.field.svelte-5v9ihf textarea.svelte-5v9ihf{display:block;width:100%;max-width:100%;box-sizing:border-box}.small.svelte-5v9ihf.svelte-5v9ihf{font-size:0.8em}.settings.svelte-5v9ihf.svelte-5v9ihf{margin:1em 0}.error.svelte-5v9ihf.svelte-5v9ihf{color:#e32636} +@keyframes svelte-m4i2yw-slide{0%{left:0}100%{left:1em}}.error.svelte-m4i2yw{color:#e32636 + }.error.svelte-m4i2yw::before{content:'\26a0';margin-right:0.5em}.error.svelte-m4i2yw{display:block;margin:0.2em 0} +@keyframes svelte-w1n7v1-slide{0%{left:0}100%{left:1em}}.loading.svelte-w1n7v1{font-style:italic;margin:0}.loading-container.svelte-w1n7v1{display:flex;grid-gap:10px;gap:10px}.loading-slider.svelte-w1n7v1{position:absolute;display:block;animation:0.7s ease-in-out infinite alternate svelte-w1n7v1-slide}.loading-slider-container.svelte-w1n7v1{position:relative;flex:0 0 2em} +@keyframes svelte-ardw9p-slide{0%{left:0}100%{left:1em}}.valid.svelte-ardw9p.svelte-ardw9p{color:#34b334 + }.valid.svelte-ardw9p.svelte-ardw9p::before{content:'\1f44d';margin-right:0.5em}.warning.svelte-ardw9p.svelte-ardw9p{color:#f2b400 + }.warning.svelte-ardw9p.svelte-ardw9p::before{content:'\26a0';margin-right:0.5em}.logs.svelte-ardw9p.svelte-ardw9p{margin:1em 0}.logs.svelte-ardw9p p.svelte-ardw9p{margin:0} +@keyframes svelte-1rrnlr6-slide{0%{left:0}100%{left:1em}}.valid.svelte-1rrnlr6.svelte-1rrnlr6{color:#34b334 + }.valid.svelte-1rrnlr6.svelte-1rrnlr6::before{content:'\1f44d';margin-right:0.5em}.chapters.svelte-1rrnlr6.svelte-1rrnlr6{margin:1em 0}.chapters.svelte-1rrnlr6 p.svelte-1rrnlr6{margin:0} +@keyframes svelte-tsai6h-slide{0%{left:0}100%{left:1em}}.valid.svelte-tsai6h{color:#34b334 + }.valid.svelte-tsai6h::before{content:'\1f44d';margin-right:0.5em} +.controls.svelte-1ahjj8t svg{height:0.8em}.control-disabled.svelte-1ahjj8t{opacity:0.7;cursor:inherit}.up.svelte-1ahjj8t{display:inline-flex;align-items:baseline;grid-gap:2px;gap:2px;padding:2px 5px;background-color:lightgray;border:1px dotted gray;border-radius:4px;text-decoration:none}.up.svelte-1ahjj8t:hover{border:1px solid gray}.down.svelte-1ahjj8t{display:inline-flex;align-items:baseline;grid-gap:2px;gap:2px;padding:2px 5px;background-color:lightgray;border:1px dotted gray;border-radius:4px;text-decoration:none}.down.svelte-1ahjj8t:hover{border:1px solid gray}.down.svelte-1ahjj8t svg{transform:rotate(180deg);margin:auto 0}.remove.svelte-1ahjj8t{color:#e32636 + }.remove.svelte-1ahjj8t:hover{color:hsl(354.92063492063494, 77.1428571429%, 31.9607843137%)} +:first-child>.chapter.svelte-13pfiuq.svelte-13pfiuq{border-top-left-radius:2px;border-top-right-radius:2px}:last-child>.chapter.svelte-13pfiuq.svelte-13pfiuq{border-bottom-left-radius:2px;border-bottom-right-radius:2px}:not(:first-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-top:-1px}.chapter.svelte-13pfiuq.svelte-13pfiuq{border-radius:2px}:not(:first-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-top:1em}:not(:last-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-bottom:1em}.edit.svelte-13pfiuq input.svelte-13pfiuq:not([type="checkbox"]),.edit.svelte-13pfiuq textarea.svelte-13pfiuq,.edit.svelte-13pfiuq label.svelte-13pfiuq{display:block;width:100%;box-sizing:border-box}.edit.svelte-13pfiuq textarea{min-height:100px;height:350px}.edit.svelte-13pfiuq label.svelte-13pfiuq{cursor:pointer}.field.svelte-13pfiuq.svelte-13pfiuq{display:grid;grid-template-columns:min-content 1fr;grid-gap:4px;gap:4px + }@media screen and (max-width: 950px){.field.svelte-13pfiuq.svelte-13pfiuq{margin-top:0.4em}.field.svelte-13pfiuq.svelte-13pfiuq,.chapter.svelte-13pfiuq:not(.open) .field.svelte-13pfiuq{grid-template-columns:1fr}}.field.svelte-13pfiuq span.svelte-13pfiuq{margin:0.4em 1px}.field.svelte-13pfiuq .label.svelte-13pfiuq{overflow:hidden;transition:opacity 0.2s ease-in-out;opacity:1;width:60px;transition:width 0.2s ease-in-out + }.field.svelte-13pfiuq .label.svelte-13pfiuq::after{content:':'}@media screen and (max-width: 950px){.field.svelte-13pfiuq .label.svelte-13pfiuq{position:absolute;margin-top:-0.5em;padding-left:3px;font-size:0.8em;opacity:0.8 + }.field.svelte-13pfiuq .label.svelte-13pfiuq::after{content:''}}.field.svelte-13pfiuq .svelte-13pfiuq:not(.label){border-bottom:1px solid currentColor}.back.svelte-13pfiuq svg{height:0.65em}.back.svelte-13pfiuq a.svelte-13pfiuq{text-decoration:none;color:inherit + }.back.svelte-13pfiuq a.svelte-13pfiuq:hover,.back.svelte-13pfiuq a.svelte-13pfiuq:active,.back.svelte-13pfiuq a.svelte-13pfiuq:focus{text-decoration:underline}.url.svelte-13pfiuq.svelte-13pfiuq{word-break:break-word} +.chapter.svelte-1ltngm7.svelte-1ltngm7{border:1px dotted lightgray;margin:0;cursor:move + }.chapter.svelte-1ltngm7.svelte-1ltngm7:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.chapter.svelte-1ltngm7.svelte-1ltngm7:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.chapter.svelte-1ltngm7.svelte-1ltngm7:not(:first-child){margin-top:-1px}.chapter.svelte-1ltngm7 .more.svelte-1ltngm7{transition:height 0.1s ease-in-out, padding 0.1s ease-in-out;height:0;padding:0 0.5em;overflow:hidden}.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):hover .more.svelte-1ltngm7,.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):active .more.svelte-1ltngm7,.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):focus .more.svelte-1ltngm7{transition:height 0.1s ease-in-out 0.2s, padding 0.1s ease-in-out 0.2s;height:1.5em;padding:0.4em 0.5em}.preview.svelte-1ltngm7.svelte-1ltngm7{display:grid;grid-template-columns:2fr 3fr;grid-gap:5px;gap:5px;align-items:center;overflow:hidden + }.preview.empty.svelte-1ltngm7.svelte-1ltngm7{grid-template-columns:1fr}.preview.svelte-1ltngm7 .title.svelte-1ltngm7{position:relative;border-bottom:1px solid rgba(0,0,0,0)}.preview.svelte-1ltngm7 .title.svelte-1ltngm7,.preview.svelte-1ltngm7 .content.svelte-1ltngm7{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0.4em 0.5em}@media screen and (max-width: 950px){.preview.svelte-1ltngm7.svelte-1ltngm7{grid-template-columns:1fr}.preview.svelte-1ltngm7 .content.svelte-1ltngm7{display:none}} +.edit.svelte-1pemcjw{display:block;width:100%;box-sizing:border-box;border-bottom:1px solid currentColor} +.list.svelte-zxr0xc.svelte-zxr0xc{margin:1em 0;position:relative}.list.svelte-zxr0xc .hide.svelte-zxr0xc{display:none}.list.svelte-zxr0xc .float.svelte-zxr0xc{position:absolute;top:0;left:0;right:0;background-color:white;z-index:1}.chapters.svelte-zxr0xc.svelte-zxr0xc{position:relative + }@media(any-pointer: coarse), (any-hover: none){.chapters.svelte-zxr0xc.svelte-zxr0xc::after{content:'touch scroll area';background-color:red;opacity:0;position:absolute;top:0;bottom:0;right:0;width:35px}}nav.svelte-zxr0xc.svelte-zxr0xc{margin:8px 6px 2px;text-align:center}nav.svelte-zxr0xc a.svelte-zxr0xc{margin:0 0.2em;text-decoration:none}nav.svelte-zxr0xc a[disabled="true"].svelte-zxr0xc{opacity:0.6;pointer-events:none}nav.svelte-zxr0xc .current.svelte-zxr0xc{opacity:0.6;text-decoration:underline}.remove.svelte-zxr0xc.svelte-zxr0xc{color:#e32636 + }.remove.svelte-zxr0xc.svelte-zxr0xc:hover{color:hsl(354.92063492063494, 77.1428571429%, 31.9607843137%)} +.list.svelte-1hsynpq{margin:1em 0}.spacer.svelte-1hsynpq{display:inline-block;width:1.5em}.no-margin.svelte-1hsynpq{margin:0}.chapter-list.svelte-1hsynpq{margin-top:.5em;display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:2px 10px;gap:2px 10px + }@media screen and (max-width: 950px){.chapter-list.svelte-1hsynpq{grid-template-columns:1fr 1fr + }}@media screen and (max-width: 600px){.chapter-list.svelte-1hsynpq{grid-template-columns:1fr + }} +.form.svelte-ovxj9s p.svelte-ovxj9s{display:flex;grid-gap:6px;gap:6px;margin:0}.search.svelte-ovxj9s.svelte-ovxj9s,input[type="file"].svelte-ovxj9s.svelte-ovxj9s{width:100%;box-sizing:border-box}.submit.svelte-ovxj9s.svelte-ovxj9s{min-width:60px;flex-shrink:0}.error.svelte-ovxj9s.svelte-ovxj9s{color:#e32636}.spaceabove.svelte-ovxj9s.svelte-ovxj9s{margin-top:2em}form.svelte-ovxj9s.svelte-ovxj9s{position:relative}.search-results.svelte-ovxj9s.svelte-ovxj9s{position:absolute;left:0;right:0;background-color:white;border:1px solid black;border-radius:3px;padding:4px 8px;margin-top:-0.5em;z-index:1;max-height:15em;overflow:auto}.search-results.svelte-ovxj9s .result.svelte-ovxj9s{display:block;text-decoration:none;color:inherit;border-bottom:1px dotted transparent + }.search-results.svelte-ovxj9s .result.svelte-ovxj9s:hover,.search-results.svelte-ovxj9s .result.svelte-ovxj9s:active,.search-results.svelte-ovxj9s .result.svelte-ovxj9s:focus{border-bottom-color:gray}.overlay.svelte-ovxj9s.svelte-ovxj9s{content:'';position:absolute;background-color:white;opacity:0.6;left:0;right:0;top:0;bottom:0}.overlay-wrapper.svelte-ovxj9s.svelte-ovxj9s{position:relative}textarea.svelte-ovxj9s.svelte-ovxj9s{display:block;width:100%;max-width:100%;box-sizing:border-box}p.small.svelte-ovxj9s.svelte-ovxj9s{margin:0}.mode-select.svelte-ovxj9s input.svelte-ovxj9s{opacity:0;width:1;height:1;position:absolute;left:-10px}.mode-select.svelte-ovxj9s label.svelte-ovxj9s{display:inline-block;padding:8px;border-bottom:2px hidden black;cursor:pointer + }.mode-select.svelte-ovxj9s label.svelte-ovxj9s:hover{border-bottom-style:solid;border-bottom-color:rgba(10, 10, 10, 0.6)}.mode-select.svelte-ovxj9s label.selected.svelte-ovxj9s{border-bottom-style:solid;border-bottom-color:black}.mode.svelte-ovxj9s.svelte-ovxj9s{border:0.5px solid rgba(20, 20, 20, 0.3);padding:14px 8px} +@keyframes svelte-1mwdlru-slide{0%{left:0}100%{left:1em}}.info.svelte-1mwdlru{color:#b3e5fc + }.info.svelte-1mwdlru::before{content:'\2139';margin-right:0.5em}.alert.svelte-1mwdlru{padding:8px 16px;border-radius:6px;border:1px solid}.alert.info.svelte-1mwdlru{border-color:rgb(143, 183, 202);color:black;background-color:rgb(194, 234, 253)} +header.svelte-ntsh7z.svelte-ntsh7z{margin-bottom:2.5rem}header.svelte-ntsh7z>.svelte-ntsh7z:first-child{margin-top:0}.small.svelte-ntsh7z.svelte-ntsh7z{font-size:0.45em;vertical-align:text-top} +footer.svelte-1f8pws6.svelte-1f8pws6{margin-top:3rem}footer.svelte-1f8pws6>.svelte-1f8pws6:last-child{margin-bottom:0}input.svelte-1f8pws6.svelte-1f8pws6{height:0.9em} +h1,h2,h3,h4,h5,h6{font-weight:normal}h1{font-size:2.2rem}h2{font-size:1.5rem}html{font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif}body{max-width:1100px;margin:12px auto;padding:0 8px;overflow:scroll;position:relative +}@media screen and (max-width: 600px){body{padding:0 2px +}}button:not(:disabled),input[type="submit"]:not(:disabled){cursor:pointer}a,a[href^="#"],a[href^="#"]:visited{color:#0048ba}.fatal-error{color:white;background-color:red;border-radius:5px;margin:10px;padding:6px 12px}.fatal-error h1{margin-top:0}.small{font-size:0.8em}.App.svelte-ibaoy7.svelte-ibaoy7{position:relative;padding:14px 18px;border:1px solid gray;border-top:none;border-bottom:none + }@media screen and (max-width: 600px){.App.svelte-ibaoy7.svelte-ibaoy7{padding:10px + }}.mainnav.svelte-ibaoy7.svelte-ibaoy7{position:absolute;top:-0.2em;left:18px;right:18px;font-size:0.8rem;display:flex}.mainnav.svelte-ibaoy7 svg{height:0.65em}.mainnav.svelte-ibaoy7 a.svelte-ibaoy7{text-decoration:none;color:inherit + }.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:hover,.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:active,.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:focus{text-decoration:underline}.mainnav.svelte-ibaoy7 .settingslink.svelte-ibaoy7{margin-left:auto}.mainnav.svelte-ibaoy7 .settingslink.svelte-ibaoy7 svg{height:1.2em} diff --git a/main-50d9a3f843b31d0bee31.js b/main-50d9a3f843b31d0bee31.js new file mode 100644 index 0000000..65fda9f --- /dev/null +++ b/main-50d9a3f843b31d0bee31.js @@ -0,0 +1 @@ +(()=>{var e,t,n,r,o,s={4785:function(e,t){var n,r;void 0===(r="function"==typeof(n=function(){return function e(t,n,r){var o,s,l=window,i="application/octet-stream",c=r||i,a=t,u=!n&&!r&&a,d=document.createElement("a"),p=function(e){return String(e)},f=l.Blob||l.MozBlob||l.WebKitBlob||p,h=n||"download";if(f=f.call?f.bind(l):Blob,"true"===String(this)&&(c=(a=[a,c])[0],a=a[1]),u&&u.length<2048&&(h=u.split("/").pop().split("?")[0],d.href=u,-1!==d.href.indexOf(u))){var m=new XMLHttpRequest;return m.open("GET",u,!0),m.responseType="blob",m.onload=function(t){e(t.target.response,h,i)},setTimeout((function(){m.send()}),0),m}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(a)){if(!(a.length>2096103.424&&f!==p))return navigator.msSaveBlob?navigator.msSaveBlob(b(a),h):y(a);c=(a=b(a)).type||i}else if(/([\x80-\xff])/.test(a)){for(var g=0,v=new Uint8Array(a.length),$=v.length;g<$;++g)v[g]=a.charCodeAt(g);a=new f([v],{type:c})}function b(e){for(var t=e.split(/[:;,]/),n=t[1],r=("base64"==t[2]?atob:decodeURIComponent)(t.pop()),o=r.length,s=0,l=new Uint8Array(o);s{if(!n){var s=1/0;for(u=0;u=o)&&Object.keys(i.O).every((e=>i.O[e](n[c])))?n.splice(c--,1):(l=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},i.F={},i.E=e=>{Object.keys(i.F).map((t=>{i.F[t](e)}))},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var s={};t=t||[null,n({}),n([]),n(n)];for(var l=2&r&&e;"object"==typeof l&&!~t.indexOf(l);l=n(l))Object.getOwnPropertyNames(l).forEach((t=>s[t]=()=>e[t]));return s.default=()=>e,i.d(o,s),o},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>e+"-"+{483:"fefd040803c093fe8d27",845:"74c785c44477a9538d2c"}[e]+".js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="hfy-epub:",i.l=(e,t,n,s)=>{if(r[e])r[e].push(t);else{var l,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(f);var o=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(n))),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),c&&document.head.appendChild(l)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.p="/hfy-epub/",(()=>{var e={179:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=e[t]=[n,o]));n.push(r[2]=o);var s=i.p+i.u(t),l=new Error;i.l(s,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+s+")",l.name="ChunkLoadError",l.type=o,l.request=s,r[1](l)}}),"chunk-"+t,t)}},i.F.j=t=>{if(!i.o(e,t)||void 0===e[t]){e[t]=null;var n=document.createElement("link");i.nc&&n.setAttribute("nonce",i.nc),n.rel="prefetch",n.as="script",n.href=i.p+i.u(t),document.head.appendChild(n)}},i.O.j=t=>0===e[t];var t=(t,n)=>{var r,o,[s,l,c]=n,a=0;if(s.some((t=>0!==e[t]))){for(r in l)i.o(l,r)&&(i.m[r]=l[r]);if(c)var u=c(i)}for(t&&t(n);a{i.E(845),i.E(483)}),5);var c={};(()=>{"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function s(e){return"function"==typeof e}function l(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function c(e){return 0===Object.keys(e).length}function a(t,n,r){t.$$.on_destroy.push(function(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}(n,r))}function u(e,t,n,r){if(e){const o=d(e,t,n,r);return e[0](o)}}function d(e,t,n,r){return e[1]&&r?function(e,t){for(const n in t)e[n]=t[n];return e}(n.ctx.slice(),e[1](r(t))):n.ctx}function p(e,t,n,r){if(e[2]&&r){const o=e[2](r(n));if(void 0===t.dirty)return o;if("object"==typeof o){const e=[],n=Math.max(t.dirty.length,o.length);for(let r=0;r32){const t=[],n=e.ctx.length/32;for(let e=0;ewindow.performance.now():()=>Date.now(),$=g?e=>requestAnimationFrame(e):e;const b=new Set;function y(e){b.forEach((t=>{t.c(e)||(b.delete(t),t.f())})),0!==b.size&&$(y)}let w=!1;function x(e,t){e.appendChild(t)}function k(e){if(!e)return document;const t=e.getRootNode?e.getRootNode():e.ownerDocument;return t&&t.host?t:e.ownerDocument}function E(e){const t=O("style");return function(e,t){x(e.head||e,t)}(k(e),t),t.sheet}function S(e,t,n){e.insertBefore(t,n||null)}function C(e){e.parentNode.removeChild(e)}function T(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function F(e){return function(t){return t.preventDefault(),e.call(this,t)}}function j(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function R(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function U(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function I(e,t){e.value=null==t?"":t}function M(e,t,n){e.classList[n?"add":"remove"](t)}function P(e,t,{bubbles:n=!1,cancelable:r=!1}={}){const o=document.createEvent("CustomEvent");return o.initCustomEvent(e,n,r,t),o}const H=new Map;let z,B=0;function G(e,t,n,r,o,s,l,i=0){const c=16.666/r;let a="{\n";for(let e=0;e<=1;e+=c){const r=t+(n-t)*s(e);a+=100*e+`%{${l(r,1-r)}}\n`}const u=a+`100% {${l(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${i}`,p=k(e),{stylesheet:f,rules:h}=H.get(p)||function(e,t){const n={stylesheet:E(t),rules:{}};return H.set(e,n),n}(p,e);h[d]||(h[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?`${m}, `:""}${d} ${r}ms linear ${o}ms 1 both`,B+=1,d}function q(e){z=e}function W(){if(!z)throw new Error("Function called outside component initialization");return z}function X(e){W().$$.on_mount.push(e)}function Y(e){W().$$.on_destroy.push(e)}function K(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach((e=>e.call(this,t)))}const V=[],J=[],Z=[],Q=[],ee=Promise.resolve();let te=!1;function ne(e){Z.push(e)}function re(e){Q.push(e)}const oe=new Set;let se,le=0;function ie(){const e=z;do{for(;le{ue.delete(e),r&&(n&&e.d(1),r())})),e.o(t)}else r&&r()}const ge={duration:0};function ve(n,r,l,i){let c=r(n,l),a=i?0:1,u=null,d=null,p=null;function f(){p&&function(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),B-=o,B||$((()=>{B||(H.forEach((e=>{const{stylesheet:t}=e;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.rules={}})),H.clear())})))}(n,p)}function h(e,t){const n=e.b-a;return t*=Math.abs(n),{a,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function m(r){const{delay:s=0,duration:l=300,easing:i=t,tick:m=e,css:g}=c||ge,w={start:v()+s,b:r};r||(w.group=de,de.r+=1),u||d?d=w:(g&&(f(),p=G(n,a,r,l,s,i,g)),r&&m(0,1),u=h(w,l),ne((()=>ae(n,r,"start"))),function(e){let t;0===b.size&&$(y),new Promise((n=>{b.add(t={c:e,f:n})}))}((e=>{if(d&&e>d.start&&(u=h(d,l),d=null,ae(n,u.b,"start"),g&&(f(),p=G(n,a,u.b,u.duration,0,i,c.css))),u)if(e>=u.end)m(a=u.b,1-a),ae(n,u.b,"end"),d||(u.b?f():--u.group.r||o(u.group.c)),u=null;else if(e>=u.start){const t=e-u.start;a=u.a+u.d*i(t/u.duration),m(a,1-a)}return!(!u&&!d)})))}return{run(e){s(c)?(se||(se=Promise.resolve(),se.then((()=>{se=null}))),se).then((()=>{c=c(),m(e)})):m(e)},end(){f(),u=d=null}}}function $e(e,t){const n=t.token={};function r(e,r,o,s){if(t.token!==n)return;t.resolved=s;let l=t.ctx;void 0!==o&&(l=l.slice(),l[o]=s);const i=e&&(t.current=e)(l);let c=!1;t.block&&(t.blocks?t.blocks.forEach(((e,n)=>{n!==r&&e&&(pe(),me(e,1,1,(()=>{t.blocks[n]===e&&(t.blocks[n]=null)})),fe())})):t.block.d(1),i.c(),he(i,1),i.m(t.mount(),t.anchor),c=!0),t.block=i,t.blocks&&(t.blocks[r]=i),c&&ie()}if((o=e)&&"object"==typeof o&&"function"==typeof o.then){const n=W();if(e.then((e=>{q(n),r(t.then,1,t.value,e),q(null)}),(e=>{if(q(n),r(t.catch,2,t.error,e),q(null),!t.hasCatch)throw e})),t.current!==t.pending)return r(t.pending,0),!0}else{if(t.current!==t.then)return r(t.then,1,t.value,e),!0;t.resolved=e}var o}function be(e,t,n){const r=t.slice(),{resolved:o}=e;e.current===e.then&&(r[e.value]=o),e.current===e.catch&&(r[e.error]=o),e.block.p(r,n)}function ye(e,t){e.d(1),t.delete(e.key)}function we(e,t){me(e,1,1,(()=>{t.delete(e.key)}))}function xe(e,t,n,r,o,s,l,i,c,a,u,d){let p=e.length,f=s.length,h=p;const m={};for(;h--;)m[e[h].key]=h;const g=[],v=new Map,$=new Map;for(h=f;h--;){const e=d(o,s,h),i=n(e);let c=l.get(i);c?r&&c.p(e,t):(c=a(i,e),c.c()),v.set(i,g[h]=c),i in m&&$.set(i,Math.abs(h-m[i]))}const b=new Set,y=new Set;function w(e){he(e,1),e.m(i,u),l.set(e.key,e),u=e.first,f--}for(;p&&f;){const t=g[f-1],n=e[p-1],r=t.key,o=n.key;t===n?(u=t.first,p--,f--):v.has(o)?!l.has(r)||b.has(r)?w(t):y.has(o)?p--:$.get(r)>$.get(o)?(y.add(r),w(t)):(b.add(o),p--):(c(n,l),p--)}for(;p--;){const t=e[p];v.has(t.key)||c(t,l)}for(;f;)w(g[f-1]);return g}let ke;function Ee(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function Se(e){e&&e.c()}function Ce(e,t,r,l){const{fragment:i,on_mount:c,on_destroy:a,after_update:u}=e.$$;i&&i.m(t,r),l||ne((()=>{const t=c.map(n).filter(s);a?a.push(...t):o(t),e.$$.on_mount=[]})),u.forEach(ne)}function Te(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Oe(t,n,s,l,i,c,a,u=[-1]){const d=z;q(t);const p=t.$$={fragment:null,ctx:null,props:c,update:e,not_equal:i,bound:r(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(d?d.$$.context:[])),callbacks:r(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};a&&a(p.root);let f=!1;if(p.ctx=s?s(t,n.props||{},((e,n,...r)=>{const o=r.length?r[0]:n;return p.ctx&&i(p.ctx[e],p.ctx[e]=o)&&(!p.skip_bound&&p.bound[e]&&p.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(V.push(e),te||(te=!0,ee.then(ie)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!c(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}});class Le{$destroy(){Te(this,1),this.$destroy=e}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!c(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function De(e){let t,n,r,o;const l=e[2].default,i=u(l,e,e[1],null);return{c(){t=O("form"),i&&i.c(),R(t,"class","column-card svelte-12n6e3q")},m(l,c){S(l,t,c),i&&i.m(t,null),n=!0,r||(o=N(t,"submit",F((function(){s(e[0])&&e[0].apply(this,arguments)}))),r=!0)},p(t,[r]){e=t,i&&i.p&&(!n||2&r)&&f(i,l,e,e[1],n?p(l,e[1],r,null):h(e[1]),null)},i(e){n||(he(i,e),n=!0)},o(e){me(i,e),n=!1},d(e){e&&C(t),i&&i.d(e),r=!1,o()}}}function Ae(e,t,n){let{$$slots:r={},$$scope:o}=t,{onSubmit:s}=t;return e.$$set=e=>{"onSubmit"in e&&n(0,s=e.onSubmit),"$$scope"in e&&n(1,o=e.$$scope)},[s,o,r]}const _e=class extends Le{constructor(e){super(),Oe(this,e,Ae,De,l,{onSubmit:0})}};function Ne(e,t,n){const r=e.slice();return r[4]=t[n],r}function Fe(e,t){let n,r,o,s,l,i,c,a,u=t[4].label+"";function d(){return t[3](t[4])}return{key:e,first:null,c(){n=O("label"),r=O("input"),l=A(),i=D(u),R(r,"type","radio"),R(r,"name",t[2]),r.value=o=t[4].value,r.checked=s=t[0]===t[4].value,R(n,"class","svelte-1tapr9t"),this.first=n},m(e,t){S(e,n,t),x(n,r),x(n,l),x(n,i),c||(a=N(r,"click",d),c=!0)},p(e,n){t=e,4&n&&R(r,"name",t[2]),2&n&&o!==(o=t[4].value)&&(r.value=o),3&n&&s!==(s=t[0]===t[4].value)&&(r.checked=s),2&n&&u!==(u=t[4].label+"")&&U(i,u)},d(e){e&&C(n),c=!1,a()}}}function je(t){let n,r=[],o=new Map,s=t[1];const l=e=>e[4].value;for(let e=0;e{"options"in e&&n(1,r=e.options),"selected"in e&&n(0,o=e.selected),"name"in e&&n(2,s=e.name)},[o,r,s,e=>n(0,o=e.value)]}const Ue=class extends Le{constructor(e){super(),Oe(this,e,Re,je,l,{options:1,selected:0,name:2})}},Ie=[];function Me(t,n=e){let r;const o=new Set;function s(e){if(l(t,e)&&(t=e,r)){const e=!Ie.length;for(const e of o)e[1](),Ie.push(e,t);if(e){for(let e=0;e{o.delete(c),0===o.size&&(r(),r=null)}}}}var Pe,He;!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.REGEXP=1]="REGEXP",e[e.FUNCTION=2]="FUNCTION"}(Pe||(Pe={})),function(e){e[e.NONE=0]="NONE",e[e.REGEXP=1]="REGEXP",e[e.SELECTOR=2]="SELECTOR",e[e.FUNCTION=3]="FUNCTION"}(He||(He={}));const ze={useTiny:!0,nextLink:Pe.DEFAULT,nextLinkRegex:'href="([^"]+)"[^>]*>\\s*Next',nextLinkFn:'return "https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/"',transform:He.NONE,transformRegex:".md",transformSelector:"",transformFn:'title = "P\'Thok Eats an Ice Cream Cone"\nhtml = "https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/"'},Be=Me(ze),Ge=e=>{const t=new Function("sandbox",`with (sandbox) {${e}}`),n=Object.create(null);n.console={log:console.log,table:console.table,error:console.error,assert:console.assert};const r=new Proxy(n,{has:qe,get:We});return e=>(Object.defineProperties(r,e),{proxy:r,ret:t(r)})};function qe(e,t){return!0}function We(e,t){if(t!==Symbol.unscopables)return e[t]}function Xe(e){let t,n,r,o,s,l,i,c,a,u;return{c(){t=O("label"),n=D("Function: "),r=O("span"),r.textContent="Only input code you trust!",o=A(),s=O("textarea"),i=A(),c=O("span"),c.innerHTML="Globals document and html are available; Must produce the url as return",R(r,"class","small warning svelte-5v9ihf"),R(s,"rows","5"),R(s,"placeholder",l=ze.nextLinkFn),R(s,"class","svelte-5v9ihf"),R(c,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(l,d){S(l,t,d),x(t,n),x(t,r),x(t,o),x(t,s),I(s,e[0].nextLinkFn),x(t,i),x(t,c),a||(u=N(s,"input",e[7]),a=!0)},p(e,t){1&t&&I(s,e[0].nextLinkFn)},d(e){e&&C(t),a=!1,u()}}}function Ye(e){let t,n,r,o,s,l,i,c;return{c(){t=O("label"),n=D("Regex:\n "),r=O("input"),s=A(),l=O("span"),l.textContent="Must produce the url in the first group",R(r,"type","text"),R(r,"placeholder",o=ze.nextLinkRegex),R(r,"class","svelte-5v9ihf"),R(l,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,a){S(o,t,a),x(t,n),x(t,r),I(r,e[0].nextLinkRegex),x(t,s),x(t,l),i||(c=N(r,"input",e[6]),i=!0)},p(e,t){1&t&&r.value!==e[0].nextLinkRegex&&I(r,e[0].nextLinkRegex)},d(e){e&&C(t),i=!1,c()}}}function Ke(t){let n;return{c(){n=O("span"),n.textContent='Finds a "First" link, with fallback to other links that aren\'t "Previous" or "Index" or "First"',R(n,"class","small svelte-5v9ihf")},m(e,t){S(e,n,t)},p:e,d(e){e&&C(n)}}}function Ve(e){let t,n,r,o,s,l,i,c,a,u;return{c(){t=O("label"),n=D("Function: "),r=O("span"),r.textContent="Only input code you trust!",o=A(),s=O("textarea"),i=A(),c=O("span"),c.innerHTML="Globals document, html, title and url are available; Modify the latter three to transform",R(r,"class","small warning svelte-5v9ihf"),R(s,"rows","5"),R(s,"placeholder",l=ze.transformFn),R(s,"class","svelte-5v9ihf"),R(c,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(l,d){S(l,t,d),x(t,n),x(t,r),x(t,o),x(t,s),I(s,e[0].transformFn),x(t,i),x(t,c),a||(u=N(s,"input",e[11]),a=!0)},p(e,t){1&t&&I(s,e[0].transformFn)},d(e){e&&C(t),a=!1,u()}}}function Je(e){let t,n,r,o,s,l;return{c(){t=O("label"),n=D("Selector:\n "),r=O("input"),R(r,"type","text"),R(r,"placeholder",o=ze.transformSelector),R(r,"class","svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,i){S(o,t,i),x(t,n),x(t,r),I(r,e[0].transformSelector),s||(l=N(r,"input",e[10]),s=!0)},p(e,t){1&t&&r.value!==e[0].transformSelector&&I(r,e[0].transformSelector)},d(e){e&&C(t),s=!1,l()}}}function Ze(e){let t,n,r,o,s,l,i,c;return{c(){t=O("label"),n=D("Regex:\n "),r=O("input"),s=A(),l=O("span"),l.textContent="Must produce the new html in the first group",R(r,"type","text"),R(r,"placeholder",o=ze.transformRegex),R(r,"class","svelte-5v9ihf"),R(l,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,a){S(o,t,a),x(t,n),x(t,r),I(r,e[0].transformRegex),x(t,s),x(t,l),i||(c=N(r,"input",e[9]),i=!0)},p(e,t){1&t&&r.value!==e[0].transformRegex&&I(r,e[0].transformRegex)},d(e){e&&C(t),i=!1,c()}}}function Qe(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k,E,T,L,_,F;function j(t){e[5](t)}let U={options:[{value:Pe.DEFAULT,label:"Default"},{value:Pe.REGEXP,label:"Regex"},{value:Pe.FUNCTION,label:"Function"}],name:"radio-next-type"};function I(e,t){return e[0].nextLink===Pe.DEFAULT?Ke:e[0].nextLink===Pe.REGEXP?Ye:e[0].nextLink===Pe.FUNCTION?Xe:void 0}void 0!==e[0].nextLink&&(U.selected=e[0].nextLink),f=new Ue({props:U}),J.push((()=>Ee(f,"selected",j)));let M=I(e),P=M&&M(e);function H(t){e[8](t)}let z={options:[{value:He.NONE,label:"No transform"},{value:He.REGEXP,label:"Regex"},{value:He.SELECTOR,label:"Query-Selector"},{value:He.FUNCTION,label:"Function"}],name:"radio-transform"};function B(e,t){return e[0].transform===He.REGEXP?Ze:e[0].transform===He.SELECTOR?Je:e[0].transform===He.FUNCTION?Ve:void 0}void 0!==e[0].transform&&(z.selected=e[0].transform),k=new Ue({props:z}),J.push((()=>Ee(k,"selected",H)));let G=B(e),q=G&&G(e);return{c(){t=O("h3"),t.textContent="Editor",n=A(),r=O("div"),o=O("label"),s=O("input"),l=D("\n Use TinyMCE, a powerful HTML editor, for editing chapters"),i=A(),c=O("h3"),c.textContent="Next chapter",a=A(),u=O("div"),d=O("p"),d.textContent="Specify how next chapter links are extracted.",p=A(),Se(f.$$.fragment),m=A(),P&&P.c(),g=A(),v=O("h3"),v.textContent="Chapter transform",$=A(),b=O("div"),y=O("p"),y.textContent="Automatically transform chapter contents.",w=A(),Se(k.$$.fragment),T=A(),q&&q.c(),R(s,"type","checkbox"),R(s,"class","svelte-5v9ihf"),R(o,"class","field svelte-5v9ihf")},m(h,E){S(h,t,E),S(h,n,E),S(h,r,E),x(r,o),x(o,s),s.checked=e[0].useTiny,x(o,l),S(h,i,E),S(h,c,E),S(h,a,E),S(h,u,E),x(u,d),x(u,p),Ce(f,u,null),x(u,m),P&&P.m(u,null),S(h,g,E),S(h,v,E),S(h,$,E),S(h,b,E),x(b,y),x(b,w),Ce(k,b,null),x(b,T),q&&q.m(b,null),L=!0,_||(F=N(s,"change",e[4]),_=!0)},p(e,t){1&t&&(s.checked=e[0].useTiny);const n={};!h&&1&t&&(h=!0,n.selected=e[0].nextLink,re((()=>h=!1))),f.$set(n),M===(M=I(e))&&P?P.p(e,t):(P&&P.d(1),P=M&&M(e),P&&(P.c(),P.m(u,null)));const r={};!E&&1&t&&(E=!0,r.selected=e[0].transform,re((()=>E=!1))),k.$set(r),G===(G=B(e))&&q?q.p(e,t):(q&&q.d(1),q=G&&G(e),q&&(q.c(),q.m(b,null)))},i(e){L||(he(f.$$.fragment,e),he(k.$$.fragment,e),L=!0)},o(e){me(f.$$.fragment,e),me(k.$$.fragment,e),L=!1},d(e){e&&C(t),e&&C(n),e&&C(r),e&&C(i),e&&C(c),e&&C(a),e&&C(u),Te(f),P&&P.d(),e&&C(g),e&&C(v),e&&C($),e&&C(b),Te(k),q&&q.d(),_=!1,F()}}}function et(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Function invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function tt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Selector invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function nt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Regex invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function rt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Chapter Function invalid: "),r=O("code"),o=D(e[2]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){4&t&&U(o,e[2])},d(e){e&&C(t)}}}function ot(e){let t,n,r,o;return{c(){t=O("span"),n=D("Chapter Regex invalid: "),r=O("code"),o=D(e[2]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){4&t&&U(o,e[2])},d(e){e&&C(t)}}}function st(e){let t,n,r,o,s,l,i,c,a,u;function d(e,t){return e[1]&&e[0].nextLink===Pe.REGEXP&&e[2]?ot:e[1]&&e[0].nextLink===Pe.FUNCTION&&e[2]?rt:e[1]&&e[0].transform===He.REGEXP&&e[3]?nt:e[1]&&e[0].transform===He.SELECTOR&&e[3]?tt:e[1]&&e[0].transform===He.FUNCTION&&e[3]?et:void 0}n=new _e({props:{$$slots:{default:[Qe]},$$scope:{ctx:e}}});let p=d(e),f=p&&p(e);return{c(){t=O("div"),Se(n.$$.fragment),r=A(),o=O("button"),s=D("Save"),l=A(),f&&f.c(),i=_(),R(t,"class","settings svelte-5v9ihf"),R(o,"type","submit"),o.disabled=e[1]},m(d,p){S(d,t,p),Ce(n,t,null),S(d,r,p),S(d,o,p),x(o,s),S(d,l,p),f&&f.m(d,p),S(d,i,p),c=!0,a||(u=N(o,"click",e[12]),a=!0)},p(e,[t]){const r={};262145&t&&(r.$$scope={dirty:t,ctx:e}),n.$set(r),(!c||2&t)&&(o.disabled=e[1]),p===(p=d(e))&&f?f.p(e,t):(f&&f.d(1),f=p&&p(e),f&&(f.c(),f.m(i.parentNode,i)))},i(e){c||(he(n.$$.fragment,e),c=!0)},o(e){me(n.$$.fragment,e),c=!1},d(e){e&&C(t),Te(n),e&&C(r),e&&C(o),e&&C(l),f&&f.d(e),e&&C(i),a=!1,u()}}}function lt(e,t,n){let r;a(e,Be,(e=>n(13,r=e)));const o=Object.assign({},r),s=Object.assign({},r),l=(e,t)=>{if(!e.trim().length)return{error:"Must specify a regular expression",disableSave:!0};try{return new RegExp(e,"i"),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}},i=(e,t)=>{if(!e.trim().length)return{error:"Must specify a function",disableSave:!0};try{return Ge(e),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}};let c,u,d=!1;return X((()=>n(1,d=!0))),e.$$.update=()=>{1&e.$$.dirty&&n(1,d=o.nextLink===s.nextLink&&o.nextLinkRegex===s.nextLinkRegex&&o.nextLinkFn===s.nextLinkFn&&o.transform===s.transform&&o.transformRegex===s.transformRegex&&o.transformSelector===s.transformSelector&&o.transformFn===s.transformFn&&o.useTiny===s.useTiny),3&e.$$.dirty&&o.nextLink===Pe.REGEXP&&n(1,({disableSave:d,error:c}=l(o.nextLinkRegex,d)),d,(n(2,c),n(0,o),n(1,d))),3&e.$$.dirty&&o.nextLink===Pe.FUNCTION&&n(1,({disableSave:d,error:c}=i(o.nextLinkFn,d)),d,(n(2,c),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.REGEXP&&n(1,({disableSave:d,error:u}=l(o.transformRegex,d)),d,(n(3,u),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.SELECTOR&&n(1,({disableSave:d,error:u}=((e,t)=>{if(!e.trim().length)return{error:"Must specify a selector",disableSave:!0};try{return document.querySelector(e),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}})(o.transformSelector,d)),d,(n(3,u),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.FUNCTION&&n(1,({disableSave:d,error:u}=i(o.transformFn,d)),d,(n(3,u),n(0,o),n(1,d)))},[o,d,c,u,function(){o.useTiny=this.checked,n(0,o)},function(t){e.$$.not_equal(o.nextLink,t)&&(o.nextLink=t,n(0,o))},function(){o.nextLinkRegex=this.value,n(0,o)},function(){o.nextLinkFn=this.value,n(0,o)},function(t){e.$$.not_equal(o.transform,t)&&(o.transform=t,n(0,o))},function(){o.transformRegex=this.value,n(0,o)},function(){o.transformSelector=this.value,n(0,o)},function(){o.transformFn=this.value,n(0,o)},()=>{Be.set(o),n(1,d=!0)}]}const it=class extends Le{constructor(e){super(),Oe(this,e,lt,st,l,{})}};var ct=i(4785),at=i.n(ct);function ut(e){let t,n,r;return{c(){t=O("a"),t.textContent="Back to Search",R(t,"href","#search"),R(t,"class","small")},m(o,l){S(o,t,l),n||(r=N(t,"click",F((function(){s(e[0])&&e[0].apply(this,arguments)}))),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function dt(t){let n,r=t[0]&&ut(t);return{c(){r&&r.c(),n=_()},m(e,t){r&&r.m(e,t),S(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=ut(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&C(n)}}}function pt(e,t,n){let{backToSearch:r}=t;return e.$$set=e=>{"backToSearch"in e&&n(0,r=e.backToSearch)},[r]}const ft=class extends Le{constructor(e){super(),Oe(this,e,pt,dt,l,{backToSearch:0})}};function ht(e,t,n){const r=e.slice();return r[4]=t[n],r}function mt(t){let n,r,o,s,l=t[4]?": ":"",i=(t[4].message||t[4])+"";return{c(){n=O("span"),r=D("Sorry, can't process that"),o=D(l),s=D(i),R(n,"class","error svelte-m4i2yw")},m(e,t){S(e,n,t),x(n,r),x(n,o),x(n,s)},p:e,d(e){e&&C(n)}}}function gt(e){let t,n,r;return{c(){t=O("button"),t.textContent="Retry"},m(o,l){S(o,t,l),n||(r=N(t,"click",(function(){s(e[0])&&e[0].apply(this,arguments)})),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function vt(e){let t,n,r;return{c(){t=O("a"),t.textContent="back",R(t,"href","#back")},m(o,l){S(o,t,l),n||(r=N(t,"click",F((function(){s(e[1])&&e[1].apply(this,arguments)}))),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function $t(t){let n,r,o,s,l=t[2],i=[];for(let e=0;e{"error"in e&&n(3,r=e.error),"retry"in e&&n(0,o=e.retry),"back"in e&&n(1,s=e.back)},[o,s,l,r]}const yt=class extends Le{constructor(e){super(),Oe(this,e,bt,$t,l,{error:3,retry:0,back:1})}};function wt(e){let t,n,r,o,s;const l=e[1].default,i=u(l,e,e[0],null),c=i||function(e){let t;return{c(){t=D("Loading...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}();return{c(){t=O("div"),n=O("div"),n.innerHTML='',r=A(),o=O("p"),c&&c.c(),R(n,"class","loading-slider-container svelte-w1n7v1"),R(o,"class","loading svelte-w1n7v1"),R(t,"class","loading-container svelte-w1n7v1")},m(e,l){S(e,t,l),x(t,n),x(t,r),x(t,o),c&&c.m(o,null),s=!0},p(e,[t]){i&&i.p&&(!s||1&t)&&f(i,l,e,e[0],s?p(l,e[0],t,null):h(e[0]),null)},i(e){s||(he(c,e),s=!0)},o(e){me(c,e),s=!1},d(e){e&&C(t),c&&c.d(e)}}}function xt(e,t,n){let{$$slots:r={},$$scope:o}=t;return e.$$set=e=>{"$$scope"in e&&n(0,o=e.$$scope)},[o,r]}const kt=class extends Le{constructor(e){super(),Oe(this,e,xt,wt,l,{})}};let Et=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const St=async(e,t)=>{const n="undefined"!=typeof AbortController?new AbortController:{},r=setTimeout((()=>n.abort&&n.abort()),t);try{return await fetch(e,{signal:n.signal})}finally{clearTimeout(r)}},Ct=async(e,t=1e4,n=3)=>{for(let r=0;r{const o=new URL(e,t);for(let e=0;e(e instanceof URL||(e=new URL(e)),e.hostname="www.reddit.com",e.pathname.endsWith("/")?e.pathname=`${e.pathname.slice(0,e.pathname.length-1)}.json`:e.pathname.endsWith(".json")||(e.pathname+=".json"),e.protocol="https",e.search="",e.hash="",e.toString()),Dt=e=>{const t=new URL(e);return("reddit.com"===t.host||t.host.match(/\.reddit\.com$/))&&e.match(".json$")?e.slice(0,-5).replace("https://api","https://www"):e},At=(()=>{const e=new DOMParser;return t=>e.parseFromString(t,"text/html").documentElement.textContent})(),_t=(()=>{const e=new DOMParser;return t=>e.parseFromString(t,"text/html")})();function Nt(e){return"string"==typeof e||e instanceof String}function Ft(e,{delay:t=0,duration:n=200,prop:r="height",easing:o=Ot}={}){const s=getComputedStyle(e)[r];if(!Nt(s)||!s.endsWith("px"))throw new Error(`invalid property '${r}' does not return pixels`);const l=+s.slice(0,-2);return{delay:t,duration:n,easing:o,css:e=>`overflow: hidden; ${r}: ${e*l}px`}}const jt=/(?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/([^\/]+)\/comments\/.+/i,Rt=/href="((?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/([^\/]+)\/comments\/[^"]+)"[^>]*>\s*([^<]+)/gim,Ut=/href="([^"]+)"[^>]*>\s*(.+)<\/a>/gim,It=/^https?:\/\/(?:[^.]+\.)?reddit\.com\/r\/hfy\/wiki\/series\//i,Mt=async e=>{const t=await Ct(new URL("https://www.reddit.com/r/hfy/wiki/series.json")),n=await t.json();if(!t.ok)throw n.message;const r=[...n.data.content_md.matchAll(/\[([^\]]+)\]\s*\(((?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/hfy\/wiki\/series\/[^)]+)\)\s*(?:\[\*([^\]]+)\*\])?/gim)].map((e=>({title:e[1],author:e[3],url:Lt(e[2].startsWith("http")?e[2]:`https://www.reddit.com${e[2]}`)})));if(!e)return r;const o=e.toLowerCase();return r.filter((e=>-1!==e.title.toLowerCase().indexOf(o)))},Pt=/^https?:\/\/(?:[^.]+\.)?reddit\.com\/r\/([^/]+)\/comments\//i,Ht=e=>({id:e[0].data.children[0].data.id,title:e[0].data.children[0].data.title,content:At(e[0].data.children[0].data.selftext_html),apiUrl:Lt(e[0].data.children[0].data.url),displayUrl:e[0].data.children[0].data.url,needsFetching:!1});var zt;!function(e){e[e.HFY_SERIES=0]="HFY_SERIES",e[e.POST=1]="POST",e[e.GENERIC=2]="GENERIC",e[e.SEARCH=3]="SEARCH"}(zt||(zt={}));const Bt=new DOMParser,Gt=(e,t)=>e===zt.GENERIC?t:Lt(t),qt=(e,t)=>e.type===zt.GENERIC?t.text():t.json(),Wt=(e,t,n)=>{switch(e){case zt.POST:case zt.HFY_SERIES:return Ht(t);case zt.GENERIC:return((e,t)=>{const n=_t(e);return{id:Et(),apiUrl:t,displayUrl:t,title:n.title,content:n.body.innerHTML,needsFetching:!1}})(t,n)}throw new Error(`Getting data from source type \`${zt[e]}\` not supported, this should never happen`)};let Xt,Yt;const Kt=(e,t)=>{switch(e.nextLink){case Pe.DEFAULT:return(e=>{const t=e.match(/href="([^"]+)"[^>]*>\s*Next/i);if(t)return t[1];const n=[...e.matchAll(Rt)].reverse().find((e=>{const t=e[3].toLowerCase();return!t.startsWith("first")&&!t.startsWith("prev")&&!t.startsWith("index")}));if(n)return n[1];const r=[...e.matchAll(Ut)],o=r.find((e=>-1!==e[2].toLowerCase().indexOf("next")));if(o)return o[1];const s=r.reverse().find((e=>{const t=e[2].toLowerCase();return!t.startsWith("first")&&!t.startsWith("prev")&&!t.startsWith("index")}));return s?s[1]:void 0})(t);case Pe.REGEXP:return(e=>{const t=e.match(Xt);if(t&&t.length>1)return t[1]})(t);case Pe.FUNCTION:return(e=>{let t;return Yt({document:{get:()=>t=null!=t?t:Bt.parseFromString(e,"text/html"),configurable:!0},html:{writable:!1,value:e,configurable:!0}}).ret})(t)}};let Vt;const Jt=e=>{const t=e.match(Vt);return t&&t.length>1&&(e=t[1]),e};let Zt;const Qt=(e,t)=>{switch(e.transform){case He.NONE:return Object.assign(Object.assign({},t),{transformedContent:t.content});case He.REGEXP:return Object.assign(Object.assign({},t),{transformedContent:Jt(t.content||"")});case He.SELECTOR:return Object.assign(Object.assign({},t),{transformedContent:(n=e.transformSelector,r=t.content||"",null===(o=Bt.parseFromString(r,"text/html").querySelector(n))||void 0===o?void 0:o.innerHTML)});case He.FUNCTION:return(e=>{let t;const n={document:{get:()=>t=null!=t?t:Bt.parseFromString(e.content||"","text/html"),configurable:!0},title:{writable:!0,value:e.title,configurable:!0},html:{writable:!0,value:e.content,configurable:!0},url:{writable:!0,value:e.displayUrl,configurable:!0}},{proxy:r}=Zt(n);return Object.assign(Object.assign({},e),{title:Nt(r.title)?r.title:e.title,transformedContent:Nt(r.html)?r.html:e.content,displayUrl:Nt(r.url)?r.url:e.displayUrl})})(t)}var n,r,o},en=(e,t)=>t.map(Qt.bind(null,e));var tn;Be.subscribe((e=>{Xt=new RegExp(e.nextLinkRegex,"i"),Yt=Ge(e.nextLinkFn),Vt=new RegExp(e.transformRegex,"i"),Zt=Ge(e.transformFn)})),function(e){e[e.INPUT=0]="INPUT",e[e.SEARCH=1]="SEARCH",e[e.BOOK_DATA=2]="BOOK_DATA",e[e.EDIT_DATA=3]="EDIT_DATA",e[e.FIND_CHAPTERS=4]="FIND_CHAPTERS",e[e.DOWNLOAD_CHAPTERS=5]="DOWNLOAD_CHAPTERS",e[e.RESULT=6]="RESULT",e[e.SETTINGS=7]="SETTINGS",e[e._404=8]="_404"}(tn||(tn={}));const nn=e=>e===tn.INPUT?i.p:`${i.p}${tn[e].toLowerCase().replace(/_/g,"-")}`;class rn{dump(){return[]}}class on extends rn{constructor(){super(...arguments),this.stage=tn.INPUT}next(e){const t=(e=>{try{return new URL(e),(e=>!!e.match(It))(e)?zt.HFY_SERIES:(e=>!!e.match(Pt))(e)?zt.POST:zt.GENERIC}catch(e){}return zt.SEARCH})(e);return console.debug("Input",e,"resulted in type",t),$n.update((n=>Object.assign(Object.assign({},n),{search:e,series:t!==zt.SEARCH?{url:Gt(t,e),type:t}:n.series}))),t===zt.SEARCH?hn(sn):hn(ln)}fromList(e){const t=e.split("\n");return $n.update((e=>Object.assign(Object.assign({},e),{series:{url:t[0],type:zt.GENERIC}}))),bn.update((()=>({author:"unknown",title:"unknown",chapters:t.map(((e,t)=>({apiUrl:e,id:Et(),title:`Chapter ${t}`,displayUrl:e})))}))),hn(ln)}fromJSON({series:e,bookData:t}){return $n.update((t=>Object.assign(Object.assign({},t),{series:e}))),bn.update((()=>t)),hn(ln)}}class sn extends rn{constructor(){super(...arguments),this.stage=tn.SEARCH}next(e){return $n.update((t=>Object.assign(Object.assign({},t),{series:e}))),hn(ln)}}class ln extends rn{constructor(e){super(),this.newChapters=e,this.stage=tn.BOOK_DATA}next(){return hn(dn)}edit(){return hn(cn)}findMore(){return hn(an)}downloadAll(){return hn(un)}dump(){return[this.newChapters]}}class cn extends rn{constructor(){super(...arguments),this.stage=tn.EDIT_DATA,this.needsSaving=!0}next(e){return bn.update((()=>e)),hn(ln)}}class an extends rn{constructor(){super(...arguments),this.stage=tn.FIND_CHAPTERS,this.needsSaving=!0}next(e,t){return bn.update((()=>e)),hn(ln,t)}}class un extends rn{constructor(){super(...arguments),this.stage=tn.DOWNLOAD_CHAPTERS,this.needsSaving=!0}next(e){return bn.update((()=>e)),hn(ln)}}class dn extends rn{constructor(){super(...arguments),this.stage=tn.RESULT}next(){return hn(ln)}}class pn extends rn{constructor(){super(...arguments),this.stage=tn.SETTINGS}next(){return gn()}}const fn={[tn.INPUT]:on,[tn.SEARCH]:sn,[tn.BOOK_DATA]:ln,[tn.EDIT_DATA]:cn,[tn.FIND_CHAPTERS]:an,[tn.DOWNLOAD_CHAPTERS]:un,[tn.RESULT]:dn,[tn.SETTINGS]:pn,[tn._404]:class extends rn{constructor(){super(...arguments),this.stage=tn._404}next(){return gn()}}};function hn(e,...t){$n.update((n=>{const r=new e(...t);r.from=n.stage;const o=r.dump();try{r.stage===tn.SETTINGS?history.pushState({data:o,search:n.search,series:n.series},"",nn(r.stage)):history.replaceState({data:o,search:n.search,series:n.series},"",nn(r.stage))}catch(e){console.error("Data too large! Caution, forwards/backwards won't work as expected!"),o.length>0&&(o[0]=void 0),r.stage===tn.SETTINGS?history.pushState({data:o,search:n.search,series:n.series},"",nn(r.stage)):history.replaceState({data:o,search:n.search,series:n.series},"",nn(r.stage))}return Object.assign(Object.assign({},n),{stage:r,lastBookData:e.usesBookData?r.bookData:n.lastBookData})}))}function mn(e,{data:t,search:n,series:r}={}){t=t||[],$n.update((o=>{try{const s=new fn[e](...t);return s.stage===o.stage.stage?o:(s.from=o.stage,Object.assign(Object.assign({},o),{search:n,series:r,stage:s}))}catch(r){return console.group("Failed to update page"),console.error(r),console.log("Parameters:",e,t,n),console.groupEnd(),history.pushState({data:[],search:o.search,series:o.series},"","/"),o}}))}function gn(){history.back()}function vn(e,t){return!!e&&e.stage===t}const $n=Me({stage:new on}),bn=Me(void 0),yn=new RegExp("^"+i.p.replace("/","/")),wn=()=>{const e=location.pathname.replace(yn,"").split("/")[0]||"";if(e.length>60)return;if(""===e)return mn(tn.INPUT);const t=e.toUpperCase().replace(/-/g,"_"),n=(()=>{try{return JSON.parse(localStorage.getItem("state"))}catch(e){return}})(),r=Object.assign(Object.assign({},n),history.state||{});return t in tn?mn(tn[t],r):mn(tn._404)};function xn(e,t,n){const r=e.slice();return r[9]=t[n][0],r[10]=t[n][1],r}function kn(e,t,n){const r=e.slice();return r[9]=t[n][0],r[10]=t[n][1],r}function En(e){let t,n,r,o,l,i,c,a;return t=new yt({props:{error:e[16],retry:e[7]}}),l=new ft({props:{backToSearch:e[1]}}),{c(){Se(t.$$.fragment),n=A(),r=O("button"),r.textContent="Back to book",o=A(),Se(l.$$.fragment)},m(u,d){Ce(t,u,d),S(u,n,d),S(u,r,d),S(u,o,d),Ce(l,u,d),i=!0,c||(a=N(r,"click",(function(){s(e[0].next.bind(e[0]))&&e[0].next.bind(e[0]).apply(this,arguments)})),c=!0)},p(n,r){e=n;const o={};8&r&&(o.error=e[16]),8&r&&(o.retry=e[7]),t.$set(o);const s={};2&r&&(s.backToSearch=e[1]),l.$set(s)},i(e){i||(he(t.$$.fragment,e),he(l.$$.fragment,e),i=!0)},o(e){me(t.$$.fragment,e),me(l.$$.fragment,e),i=!1},d(e){Te(t,e),e&&C(n),e&&C(r),e&&C(o),Te(l,e),c=!1,a()}}}function Sn(e){let t,n,r,l,i,c,a,u,d,p,f,h,m=e[2].find(Nn);function g(){return e[6](e[13])}a=new ft({props:{backToSearch:e[1]}});let v=m&&Cn(e);return{c(){t=O("h3"),t.textContent="Your e-book is ready!",n=A(),r=O("button"),r.textContent="Download",l=A(),i=O("button"),i.textContent="Back to book",c=A(),Se(a.$$.fragment),u=A(),v&&v.c(),d=_(),R(t,"class","valid svelte-ardw9p")},m(o,m){S(o,t,m),S(o,n,m),S(o,r,m),S(o,l,m),S(o,i,m),S(o,c,m),Ce(a,o,m),S(o,u,m),v&&v.m(o,m),S(o,d,m),p=!0,f||(h=[N(r,"click",g),N(i,"click",(function(){s(e[0].next.bind(e[0]))&&e[0].next.bind(e[0]).apply(this,arguments)}))],f=!0)},p(t,n){e=t;const r={};2&n&&(r.backToSearch=e[1]),a.$set(r),4&n&&(m=e[2].find(Nn)),m?v?v.p(e,n):(v=Cn(e),v.c(),v.m(d.parentNode,d)):v&&(v.d(1),v=null)},i(e){p||(he(a.$$.fragment,e),p=!0)},o(e){me(a.$$.fragment,e),p=!1},d(e){e&&C(t),e&&C(n),e&&C(r),e&&C(l),e&&C(i),e&&C(c),Te(a,e),e&&C(u),v&&v.d(e),e&&C(d),f=!1,o(h)}}}function Cn(e){let t,n=e[2],r=[];for(let t=0;tt.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,8&r&&n!==(n=e[3])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}const Nn=([e])=>"warn"===e;function Fn(e,t,n){let r;a(e,bn,(e=>n(4,r=e)));let{stage:o}=t,{backToSearch:s}=t;const l=Promise.all([i.e(845),i.e(483)]).then(i.t.bind(i,9845,23));let c=[];const u=async()=>{n(2,c=[]);const{default:e}=await l;return await e({title:At(r.title),author:At(r.author),ignoreFailedDownloads:!0,verbose:(e,t,...r)=>{c.push([e,t]),n(2,c)}},r.chapters.map((e=>({title:At(e.title),content:e.transformedContent,url:e.displayUrl}))))};let d=u();return e.$$set=e=>{"stage"in e&&n(0,o=e.stage),"backToSearch"in e&&n(1,s=e.backToSearch)},[o,s,c,d,r,u,e=>at()(e,`${At(r.author)} - ${At(r.title)}.epub`,"application/epub+zip"),()=>n(3,d=u())]}const jn=class extends Le{constructor(e){super(),Oe(this,e,Fn,_n,l,{stage:0,backToSearch:1})}};function Rn(e,t,n){const r=e.slice();return r[12]=t[n],r}function Un(e,t,n){const r=e.slice();return r[12]=t[n],r}function In(t){return{c:e,m:e,p:e,i:e,o:e,d:e}}function Mn(e){let t,n,r,o,s,l=!e[3].length&&Pn(e),i=e[1],c=[];for(let t=0;t{a=null})),fe())},i(e){s||(he(a),s=!0)},o(e){me(a),s=!1},d(e){l&&l.d(e),e&&C(t),e&&C(n),T(c,e),e&&C(r),a&&a.d(e),e&&C(o)}}}function Pn(e){let t,n=e[0].next(e[15])+"";return{c(){t=D(n)},m(e,n){S(e,t,n)},p(e,r){17&r&&n!==(n=e[0].next(e[15])+"")&&U(t,n)},d(e){e&&C(t)}}}function Hn(e){let t,n,r=e[12].title+"";return{c(){t=O("p"),n=D(r),R(t,"class","valid small svelte-1rrnlr6")},m(e,r){S(e,t,r),x(t,n)},p(e,t){2&t&&r!==(r=e[12].title+"")&&U(n,r)},d(e){e&&C(t)}}}function zn(e){let t,n=e[12]&&!0===e[12].new&&Hn(e);return{c(){n&&n.c(),t=_()},m(e,r){n&&n.m(e,r),S(e,t,r)},p(e,r){e[12]&&!0===e[12].new?n?n.p(e,r):(n=Hn(e),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null)},d(e){n&&n.d(e),e&&C(t)}}}function Bn(t){let n,r,o=t[3],s=Gn(t);return{c(){s.c(),n=_()},m(e,t){s.m(e,t),S(e,n,t),r=!0},p(t,r){8&r&&l(o,o=t[3])?(pe(),me(s,1,1,e),fe(),s=Gn(t),s.c(),he(s,1),s.m(n.parentNode,n)):s.p(t,r)},i(e){r||(he(s),r=!0)},o(e){me(s),r=!1},d(e){e&&C(n),s.d(e)}}}function Gn(e){let t,n;return t=new yt({props:{error:e[3],retry:e[8],back:e[9]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8&n&&(r.error=e[3]),16&n&&(r.retry=e[8]),35&n&&(r.back=e[9]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function qn(e){let t,n,r,o,s,l,i,c,a,u,d;t=new kt({props:{$$slots:{default:[Wn]},$$scope:{ctx:e}}});let p=e[1],f=[];for(let t=0;t{h=null})),fe())},i(e){a||(he(t.$$.fragment,e),he(h),a=!0)},o(e){me(t.$$.fragment,e),me(h),a=!1},d(e){Te(t,e),e&&C(n),e&&C(r),e&&C(s),e&&C(l),T(f,e),e&&C(i),h&&h.d(e),e&&C(c),u=!1,d()}}}function Wn(e){let t;return{c(){t=D("Please wait, fetching chapters...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function Xn(e){let t,n,r=e[12].title+"";return{c(){t=O("p"),n=D(r),R(t,"class","valid small svelte-1rrnlr6")},m(e,r){S(e,t,r),x(t,n)},p(e,t){2&t&&r!==(r=e[12].title+"")&&U(n,r)},d(e){e&&C(t)}}}function Yn(e){let t,n=e[12]&&!0===e[12].new&&Xn(e);return{c(){n&&n.c(),t=_()},m(e,r){n&&n.m(e,r),S(e,t,r)},p(e,r){e[12]&&!0===e[12].new?n?n.p(e,r):(n=Xn(e),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null)},d(e){n&&n.d(e),e&&C(t)}}}function Kn(t){let n,r,o=t[3],s=Vn(t);return{c(){s.c(),n=_()},m(e,t){s.m(e,t),S(e,n,t),r=!0},p(t,r){8&r&&l(o,o=t[3])?(pe(),me(s,1,1,e),fe(),s=Vn(t),s.c(),he(s,1),s.m(n.parentNode,n)):s.p(t,r)},i(e){r||(he(s),r=!0)},o(e){me(s),r=!1},d(e){e&&C(n),s.d(e)}}}function Vn(e){let t,n;return t=new yt({props:{error:e[3]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8&n&&(r.error=e[3]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Jn(e){let t,n,r,o={ctx:e,current:null,token:null,hasCatch:!1,pending:qn,then:Mn,catch:In,value:15,blocks:[,,,]};return $e(n=e[4],o),{c(){t=_(),o.block.c()},m(e,n){S(e,t,n),o.block.m(e,o.anchor=n),o.mount=()=>t.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function Zn(e,t,n){let r,o,s;a(e,bn,(e=>n(5,r=e))),a(e,$n,(e=>n(10,o=e))),a(e,Be,(e=>n(11,s=e)));let{stage:l}=t,i=[...r.chapters.map((e=>Object.assign(Object.assign({},e),{new:!1})))],c=!1,u=[];const d=async()=>{let e,t=i;for(n(1,i=new Array(i.length)),n(3,u=[]),e=0;e{var c,a;if(n(1,i[l+e]=Object.assign({},t[l+e]),i),!1!==r.needsFetching)try{const t=await Tt(r.apiUrl,new URL(o.series.url).origin),u=await qt(o.series,t);if(!t.ok)throw""+(null!==(a=null!==(c=u.message)&&void 0!==c?c:t.statusText)&&void 0!==a?a:t.status);n(1,i[l+e]=Object.assign(Object.assign({},Qt(s,Wt(o.series.type,u,r.apiUrl))),{new:!0}),i),n(1,i)}catch(e){u.push(e),n(3,u)}})));for(;e{"stage"in e&&n(0,l=e.stage)},[l,i,c,u,p,r,d,()=>n(2,c=!0),()=>n(4,p=d()),()=>l.next({...r,chapters:i})]}const Qn=class extends Le{constructor(e){super(),Oe(this,e,Zn,Jn,l,{stage:0})}};function er(e,t,n){const r=e.slice();return r[15]=t[n],r}function tr(e){let t,n;return t=new yt({props:{error:e[19],retry:e[10],back:e[11]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};16&n&&(r.error=e[19]),16&n&&(r.retry=e[10]),71&n&&(r.back=e[11]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function nr(t){let n,r=t[0].next(t[18],t[1].length)+"";return{c(){n=D(r)},m(e,t){S(e,n,t)},p(e,t){19&t&&r!==(r=e[0].next(e[18],e[1].length)+"")&&U(n,r)},i:e,o:e,d(e){e&&C(n)}}}function rr(e){let t,n,r,l,i,c,a,u,d,p;t=new kt({props:{$$slots:{default:[or]},$$scope:{ctx:e}}});let f=e[1],h=[];for(let t=0;tt.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function ir(e,t,n){let r,o,s;a(e,bn,(e=>n(6,r=e))),a(e,$n,(e=>n(12,o=e))),a(e,Be,(e=>n(13,s=e)));let l,{stage:i}=t,c=[],u=!1;const d=async()=>{var e,t,i,a,d;for(n(2,l=r.chapters.map((e=>Object.assign({},e))));!u;){let r=l[l.length-1];if(!1!==r.needsFetching){const n=await Tt(r.apiUrl,new URL(o.series.url).origin),i=await qt(o.series,n);if(!n.ok)throw""+(null!==(t=null!==(e=i.message)&&void 0!==e?e:n.statusText)&&void 0!==t?t:n.status);l.splice(-1,1,r=Qt(s,Wt(o.series.type,i,r.apiUrl)))}let u=Kt(s,null!==(i=r.transformedContent)&&void 0!==i?i:"");if(u||(u=Kt(s,r.content)),!u)break;const p=Gt(o.series.type,u);if(l.find((e=>e.apiUrl===p)))break;c.push({from:r.title,url:u}),n(1,c);const f=await Tt(p,new URL(o.series.url).origin),h=await qt(o.series,f);if(!f.ok)throw""+(null!==(d=null!==(a=h.message)&&void 0!==a?a:f.statusText)&&void 0!==d?d:f.status);l.push(Qt(s,Wt(o.series.type,h,p)))}return Object.assign(Object.assign({},r),{chapters:l})};let p=d(),f=!0;function h(){const e=document.documentElement.scrollHeight-document.documentElement.scrollTop;n(5,f=Math.abs(document.documentElement.clientHeight-e)<1)}return window.addEventListener("scroll",h),Y((()=>{window.removeEventListener("scroll",h)})),e.$$set=e=>{"stage"in e&&n(0,i=e.stage)},[i,c,l,u,p,f,r,d,(e,t)=>({update:({scroll:e})=>{e&&document.querySelector("footer").scrollIntoView()}}),()=>n(3,u=!0),()=>n(4,p=d()),()=>i.next({...r,chapters:l},c.length)]}const cr=class extends Le{constructor(e){super(),Oe(this,e,ir,lr,l,{stage:0})}};function ar(e,t,n){e.dispatchEvent(new CustomEvent("finalize",{detail:{items:t,info:n}}))}function ur(e,t,n){e.dispatchEvent(new CustomEvent("consider",{detail:{items:t,info:n}}))}const dr="draggedEntered",pr="draggedLeft",fr="draggedOverIndex",hr="draggedLeftDocument",mr="leftForAnother",gr="outsideOfAny";function vr(e,t,n){e.dispatchEvent(new CustomEvent(dr,{detail:{indexObj:t,draggedEl:n}}))}function $r(e,t,n){e.dispatchEvent(new CustomEvent(pr,{detail:{draggedEl:t,type:mr,theOtherDz:n}}))}function br(e,t,n){e.dispatchEvent(new CustomEvent(fr,{detail:{indexObj:t,draggedEl:n}}))}const yr="dragStarted",wr="droppedIntoZone",xr="droppedIntoAnother",kr="pointer",Er="keyboard",Sr="data-is-dnd-shadow-item",Cr="id:dnd-shadow-placeholder-0000";let Tr="id",Or=0;function Lr(){Or++}function Dr(){if(0===Or)throw new Error("Bug! trying to decrement when there are no dropzones");Or--}const Ar="undefined"==typeof window;let _r;function Nr(e){let t;const n=e.getBoundingClientRect(),r=getComputedStyle(e),o=r.transform;if(o){let s,l,i,c;if(o.startsWith("matrix3d("))t=o.slice(9,-1).split(/, /),s=+t[0],l=+t[5],i=+t[12],c=+t[13];else{if(!o.startsWith("matrix("))return n;t=o.slice(7,-1).split(/, /),s=+t[0],l=+t[3],i=+t[4],c=+t[5]}const a=r.transformOrigin,u=n.x-i-(1-s)*parseFloat(a),d=n.y-c-(1-l)*parseFloat(a.slice(a.indexOf(" ")+1)),p=s?n.width/s:e.offsetWidth,f=l?n.height/l:e.offsetHeight;return{x:u,y:d,width:p,height:f,top:d,right:u+p,bottom:d+f,left:u}}return n}function Fr(e){const t=Nr(e);return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function jr(e){const t=e.getBoundingClientRect();return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function Rr(e){return{x:(e.left+e.right)/2,y:(e.top+e.bottom)/2}}function Ur(e,t){return e.y<=t.bottom&&e.y>=t.top&&e.x>=t.left&&e.x<=t.right}function Ir(e){return Rr(jr(e))}function Mr(e,t){return Ur(Ir(e),Fr(t))}function Pr(){_r=new Map}function Hr(e){_r.delete(e)}function zr(e,t){if(!Mr(e,t))return null;const n=t.children;if(0===n.length)return{index:0,isProximityBased:!0};const r=function(e){const t=Array.from(e.children).findIndex((e=>e.getAttribute(Sr)));if(t>=0)return _r.has(e)||_r.set(e,new Map),_r.get(e).set(t,Fr(e.children[t])),t}(t);for(let o=0;on(t))))}function r(e){return 25-e}return t(),{scrollIfNeeded:function(o,s){if(!s)return!1;const l=function(e,t){const n=jr(t);return Ur(e,n)?{top:e.y-n.top,bottom:n.bottom-e.y,left:e.x-n.left,right:Math.min(n.right,document.documentElement.clientWidth)-e.x}:null}(o,s);if(null===l)return t(),!1;const i=!!e.directionObj;let[c,a]=[!1,!1];return s.scrollHeight>s.clientHeight&&(l.bottom<25?(c=!0,e.directionObj={x:0,y:1},e.stepPx=r(l.bottom)):l.top<25&&(c=!0,e.directionObj={x:0,y:-1},e.stepPx=r(l.top)),!i&&c)||s.scrollWidth>s.clientWidth&&(l.right<25?(a=!0,e.directionObj={x:1,y:0},e.stepPx=r(l.right)):l.left<25&&(a=!0,e.directionObj={x:-1,y:0},e.stepPx=r(l.left)),!i&&a)?(n(s),!0):(t(),!1)},resetScrolling:t}}function Gr(e){return JSON.stringify(e,null,2)}function qr(e){if(!e)throw new Error("cannot get depth of a falsy node");return Wr(e,0)}function Wr(e,t=0){return e.parentElement?Wr(e.parentElement,t+1):t-1}Pr();const{scrollIfNeeded:Xr,resetScrolling:Yr}=Br();let Kr,Vr;function Jr(e){const t=e.touches?e.touches[0]:e;Vr={x:t.clientX,y:t.clientY}}const{scrollIfNeeded:Zr,resetScrolling:Qr}=Br();let eo;function to(){Vr&&Zr(Vr,document.documentElement)&&Pr(),eo=window.setTimeout(to,300)}function no(e){return`${e} 0.2s ease`}function ro(e,t,n,r,o){const s=t.getBoundingClientRect(),l=e.getBoundingClientRect(),i=s.width-l.width,c=s.height-l.height;if(i||c){const t={left:(n-l.left)/l.width,top:(r-l.top)/l.height};e.style.height=`${s.height}px`,e.style.width=`${s.width}px`,e.style.left=parseFloat(e.style.left)-t.left*i+"px",e.style.top=parseFloat(e.style.top)-t.top*c+"px"}oo(t,e),o()}function oo(e,t){const n=window.getComputedStyle(e);Array.from(n).filter((e=>e.startsWith("background")||e.startsWith("padding")||e.startsWith("font")||e.startsWith("text")||e.startsWith("align")||e.startsWith("justify")||e.startsWith("display")||e.startsWith("flex")||e.startsWith("border")||"opacity"===e||"color"===e||"list-style-type"===e)).forEach((e=>t.style.setProperty(e,n.getPropertyValue(e),n.getPropertyPriority(e))))}function so(e,t){e.draggable=!1,e.ondragstart=()=>!1,t?(e.style.userSelect="",e.style.WebkitUserSelect="",e.style.cursor=""):(e.style.userSelect="none",e.style.WebkitUserSelect="none",e.style.cursor="grab")}function lo(e){e.style.display="none",e.style.position="fixed",e.style.zIndex="-5"}function io(e,t=(()=>{}),n=(()=>[])){e.forEach((e=>{const r=t(e);Object.keys(r).forEach((t=>{e.style[t]=r[t]})),n(e).forEach((t=>e.classList.add(t)))}))}function co(e,t=(()=>{}),n=(()=>[])){e.forEach((e=>{const r=t(e);Object.keys(r).forEach((t=>{e.style[t]=""})),n(e).forEach((t=>e.classList.contains(t)&&e.classList.remove(t)))}))}const ao={outline:"rgba(255, 255, 102, 0.7) solid 2px"};let uo,po,fo,ho,mo,go,vo,$o,bo,yo,wo,xo=!1,ko=!1,Eo=!1,So=[];const Co=new Map,To=new Map,Oo=new WeakMap;function Lo(e,t){Co.get(t).delete(e),Dr(),0===Co.get(t).size&&Co.delete(t)}function Do(){window.addEventListener("mousemove",Jr),window.addEventListener("touchmove",Jr),to();const e=Co.get(ho);for(const t of e)t.addEventListener(dr,_o),t.addEventListener(pr,No),t.addEventListener(fr,Fo);window.addEventListener(hr,Ro);const t=Math.max(100,...Array.from(e.keys()).map((e=>To.get(e).dropAnimationDurationMs)));!function(e,t,n=200){let r,o,s,l=!1;const i=Array.from(t).sort(((e,t)=>qr(t)-qr(e)));!function t(){const c=Ir(e),a=Xr(c,r);if(!a&&s&&Math.abs(s.x-c.x)<10&&Math.abs(s.y-c.y)<10)return void(Kr=window.setTimeout(t,n));if(function(e){const t=jr(e);return t.right<0||t.left>document.documentElement.scrollWidth||t.bottom<0||t.top>document.documentElement.scrollHeight}(e))return void function(e){window.dispatchEvent(new CustomEvent(hr,{detail:{draggedEl:e}}))}(e);s=c;let u=!1;for(const t of i){a&&Hr(r);const n=zr(e,t);if(null===n)continue;const{index:s}=n;u=!0,t!==r?(r&&$r(r,e,t),vr(t,n,e),r=t):s!==o&&(br(t,n,e),o=s);break}!u&&l&&r?(function(e,t){e.dispatchEvent(new CustomEvent(pr,{detail:{draggedEl:t,type:gr}}))}(r,e),r=void 0,o=void 0,l=!1):l=!0,Kr=window.setTimeout(t,n)}()}(po,e,1.07*t)}function Ao(e){return e.findIndex((e=>!!e.isDndShadowItem&&e.id!==Cr))}function _o(e){let{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo)return;if(Eo=!1,t=t.filter((e=>e.id!==vo.id)),mo!==e.currentTarget){const e=To.get(mo).items.filter((e=>!e.isDndShadowItem));ur(mo,e,{trigger:"dragEnteredAnother",id:fo.id,source:kr})}else{const e=function(e){return e.findIndex((e=>e.id===Cr))}(t);-1!==e&&t.splice(e,1)}const{index:r,isProximityBased:o}=e.detail.indexObj,s=o&&r===e.currentTarget.children.length-1?r+1:r;$o=e.currentTarget,t.splice(s,0,vo),ur(e.currentTarget,t,{trigger:"draggedEntered",id:fo.id,source:kr})}function No(e){if(!xo)return;const{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo&&e.currentTarget!==$o)return;const r=Ao(t),o=t.splice(r,1)[0];$o=void 0;const{type:s,theOtherDz:l}=e.detail;if(s===gr||s===mr&&l!==mo&&To.get(l).dropFromOthersDisabled){Eo=!0,$o=mo;const e=To.get(mo).items;e.splice(go,0,o),ur(mo,e,{trigger:"draggedLeftAll",id:fo.id,source:kr})}ur(e.currentTarget,t,{trigger:"draggedLeft",id:fo.id,source:kr})}function Fo(e){const{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo)return;Eo=!1;const{index:r}=e.detail.indexObj,o=Ao(t);t.splice(o,1),t.splice(r,0,vo),ur(e.currentTarget,t,{trigger:"draggedOverIndex",id:fo.id,source:kr})}function jo(e){e.preventDefault();const t=e.touches?e.touches[0]:e;yo={x:t.clientX,y:t.clientY},po.style.transform=`translate3d(${yo.x-bo.x}px, ${yo.y-bo.y}px, 0)`}function Ro(){ko=!0,window.removeEventListener("mousemove",jo),window.removeEventListener("touchmove",jo),window.removeEventListener("mouseup",Ro),window.removeEventListener("touchend",Ro),function(){window.removeEventListener("mousemove",Jr),window.removeEventListener("touchmove",Jr),Vr=void 0,window.clearTimeout(eo),Qr();const e=Co.get(ho);for(const t of e)t.removeEventListener(dr,_o),t.removeEventListener(pr,No),t.removeEventListener(fr,Fo);window.removeEventListener(hr,Ro),clearTimeout(Kr),Yr(),Pr()}(),function(e){e.style.cursor="grab"}(po),$o||($o=mo);let{items:e,type:t}=To.get($o);co(Co.get(t),(e=>To.get(e).dropTargetStyle),(e=>To.get(e).dropTargetClasses));let n=Ao(e);-1===n&&(n=go),e=e.map((e=>e.isDndShadowItem?fo:e)),function(e,t){const n=Nr($o.children[e]),r=n.left-parseFloat(po.style.left),o=n.top-parseFloat(po.style.top),{dropAnimationDurationMs:s}=To.get($o),l=`transform ${s}ms ease`;po.style.transition=po.style.transition?po.style.transition+","+l:l,po.style.transform=`translate3d(${r}px, ${o}px, 0)`,window.setTimeout(t,s)}(n,(function(){var t;wo(),ar($o,e,{trigger:Eo?"droppedOutsideOfAny":wr,id:fo.id,source:kr}),$o!==mo&&ar(mo,To.get(mo).items,{trigger:xr,id:fo.id,source:kr}),(t=$o.children[n]).style.visibility="",t.removeAttribute(Sr),po.remove(),uo.remove(),So.length&&(So.forEach((({dz:e,destroy:t})=>{t(),e.remove()})),So=[]),po=void 0,uo=void 0,fo=void 0,ho=void 0,mo=void 0,go=void 0,vo=void 0,$o=void 0,bo=void 0,yo=void 0,xo=!1,ko=!1,wo=void 0,Eo=!1}))}const Uo={DND_ZONE_ACTIVE:"dnd-zone-active",DND_ZONE_DRAG_DISABLED:"dnd-zone-drag-disabled"},Io={[Uo.DND_ZONE_ACTIVE]:"Tab to one the items and press space-bar or enter to start dragging it",[Uo.DND_ZONE_DRAG_DISABLED]:"This is a disabled drag and drop list"};let Mo;function Po(){Mo||(Mo=document.createElement("div"),Mo.id="dnd-action-aria-alert",Mo.style.position="fixed",Mo.style.bottom="0",Mo.style.left="0",Mo.style.zIndex="-5",Mo.style.opacity="0",Mo.style.height="0",Mo.style.width="0",Mo.setAttribute("role","alert"),document.body.prepend(Mo),Object.entries(Io).forEach((([e,t])=>document.body.prepend(function(e,t){const n=document.createElement("div");return n.id=e,n.innerHTML=`

${t}

`,n.style.display="none",n.style.position="fixed",n.style.zIndex="-5",n}(e,t)))))}function Ho(e){if(Ar)return;Mo||Po(),Mo.innerHTML="";const t=document.createTextNode(e);Mo.appendChild(t),Mo.style.display="none",Mo.style.display="inline"}const zo={outline:"rgba(255, 255, 102, 0.7) solid 2px"};let Bo,Go,qo,Wo,Xo=!1,Yo="",Ko="";const Vo=new WeakSet,Jo=new WeakMap,Zo=new WeakMap,Qo=new Map,es=new Map,ts=new Map;let ns;function rs(e,t){Go===e&&cs(),ts.get(t).delete(e),Dr(),0===ts.get(t).size&&ts.delete(t),0===ts.size&&(window.removeEventListener("keydown",os),window.removeEventListener("click",ss),ns=void 0,!Ar&&Mo&&(Object.keys(Io).forEach((e=>document.getElementById(e)?.remove())),Mo.remove(),Mo=void 0))}function os(e){Xo&&"Escape"===e.key&&cs()}function ss(){Xo&&(Vo.has(document.activeElement)||cs())}function ls(e){if(!Xo)return;const t=e.currentTarget;if(t===Go)return;Yo=t.getAttribute("aria-label")||"";const{items:n}=es.get(Go),r=n.find((e=>e.id===Wo)),o=n.indexOf(r),s=n.splice(o,1)[0],{items:l,autoAriaDisabled:i}=es.get(t);t.getBoundingClientRect().tope(es.get(t))))}function cs(e=!0){es.get(Go).autoAriaDisabled||Ho(`Stopped dragging item ${Ko}`),Vo.has(document.activeElement)&&document.activeElement.blur(),e&&ur(Go,es.get(Go).items,{trigger:"dragStopped",id:Wo,source:Er}),co(ts.get(Bo),(e=>es.get(e).dropTargetStyle),(e=>es.get(e).dropTargetClasses)),qo=null,Wo=null,Ko="",Bo=null,Go=null,Yo="",Xo=!1,is()}function as(e,t){const n={items:void 0,type:void 0,dragDisabled:!1,zoneTabIndex:0,dropFromOthersDisabled:!1,dropTargetStyle:zo,dropTargetClasses:[],autoAriaDisabled:!1};function r(e,t,n){e.length<=1||e.splice(n,1,e.splice(t,1,e[n])[0])}function o(t){switch(t.key){case"Enter":case" ":if((void 0!==t.target.disabled||t.target.href||t.target.isContentEditable)&&!Vo.has(t.target))return;t.preventDefault(),t.stopPropagation(),Xo?cs():s(t);break;case"ArrowDown":case"ArrowRight":{if(!Xo)return;t.preventDefault(),t.stopPropagation();const{items:o}=es.get(e),s=Array.from(e.children),l=s.indexOf(t.currentTarget);l0&&(n.autoAriaDisabled||Ho(`Moved item ${Ko} to position ${s} in the list ${Yo}`),r(o,s,s-1),ar(e,o,{trigger:wr,id:Wo,source:Er}));break}}}function s(t){(function(t){const{items:n}=es.get(e),r=Array.from(e.children),o=r.indexOf(t);qo=t,qo.tabIndex=0,Wo=n[o].id,Ko=r[o].getAttribute("aria-label")||""})(t.currentTarget),Go=e,Bo=n.type,Xo=!0;const r=Array.from(ts.get(n.type)).filter((e=>e===Go||!es.get(e).dropFromOthersDisabled));if(io(r,(e=>es.get(e).dropTargetStyle),(e=>es.get(e).dropTargetClasses)),!n.autoAriaDisabled){let e=`Started dragging item ${Ko}. Use the arrow keys to move it within its list ${Yo}`;r.length>1&&(e+=", or tab to another list in order to move the item into it"),Ho(e)}ur(e,es.get(e).items,{trigger:yr,id:Wo,source:Er}),is()}function l(e){Xo&&e.currentTarget!==qo&&(e.stopPropagation(),cs(!1),s(e))}function i({items:t=[],type:r="--any--",dragDisabled:s=!1,zoneTabIndex:i=0,dropFromOthersDisabled:c=!1,dropTargetStyle:a=zo,dropTargetClasses:u=[],autoAriaDisabled:d=!1}){var p,f;n.items=[...t],n.dragDisabled=s,n.dropFromOthersDisabled=c,n.zoneTabIndex=i,n.dropTargetStyle=a,n.dropTargetClasses=u,n.autoAriaDisabled=d,n.type&&r!==n.type&&rs(e,n.type),n.type=r,p=e,f=r,0===ts.size&&(ns=Ar?null:("complete"===document.readyState?Po():window.addEventListener("DOMContentLoaded",Po),{...Uo}),window.addEventListener("keydown",os),window.addEventListener("click",ss)),ts.has(f)||ts.set(f,new Set),ts.get(f).has(p)||(ts.get(f).add(p),Lr()),d||(e.setAttribute("aria-disabled",s),e.setAttribute("role","list"),e.setAttribute("aria-describedby",s?ns.DND_ZONE_DRAG_DISABLED:ns.DND_ZONE_ACTIVE)),es.set(e,n),e.tabIndex=Xo?e===Go||qo.contains(e)||n.dropFromOthersDisabled||Go&&n.type!==es.get(Go).type?-1:0:n.zoneTabIndex,e.addEventListener("focus",ls);for(let t=0;t{i(e)},destroy:()=>{rs(e,n.type),es.delete(e),Qo.delete(e)}};return Qo.set(e,c),c}function us(e,t){ds(t);const n=function(e,t){let n=!1;const r={items:void 0,type:void 0,flipDurationMs:0,dragDisabled:!1,morphDisabled:!1,dropFromOthersDisabled:!1,dropTargetStyle:ao,dropTargetClasses:[],transformDraggedElement:()=>{},centreDraggedOnCursor:!1};let o=new Map;function s(){window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l)}function l(){s(),uo=void 0,bo=void 0,yo=void 0}function i(e){e.preventDefault();const t=e.touches?e.touches[0]:e;yo={x:t.clientX,y:t.clientY},(Math.abs(yo.x-bo.x)>=3||Math.abs(yo.y-bo.y)>=3)&&(s(),function(){xo=!0;const e=o.get(uo);go=e,mo=uo.parentElement;const t=mo.getRootNode(),n=t.body||t,{items:s,type:l,centreDraggedOnCursor:i}=r;fo={...s[e]},ho=l,vo={...fo,isDndShadowItem:!0};const c={...vo,[Tr]:Cr};po=function(e,t){const n=e.getBoundingClientRect(),r=function(e){const t=e.cloneNode(!0),n=[],r="SELECT"===e.tagName,o=r?[e]:[...e.querySelectorAll("select")];for(const e of o)n.push(e.value);if(o.length<=0)return t;const s=r?[t]:[...t.querySelectorAll("select")];for(let e=0;e{r.style.top=`${o}px`,r.style.left=`${s}px`}),0)}return r.style.margin="0",r.style.boxSizing="border-box",r.style.height=`${n.height}px`,r.style.width=`${n.width}px`,r.style.transition=`${no("top")}, ${no("left")}, ${no("background-color")}, ${no("opacity")}, ${no("color")} `,window.setTimeout((()=>r.style.transition+=`, ${no("width")}, ${no("height")}`),0),r.style.zIndex="9999",r.style.cursor="grabbing",r}(uo,i&&yo),window.requestAnimationFrame((function e(){po.parentElement?window.requestAnimationFrame(e):(n.appendChild(po),po.focus(),Do(),lo(uo),n.appendChild(uo))})),io(Array.from(Co.get(r.type)).filter((e=>e===mo||!To.get(e).dropFromOthersDisabled)),(e=>To.get(e).dropTargetStyle),(e=>To.get(e).dropTargetClasses)),s.splice(e,1,c),wo=function(e){const t=e.style.minHeight;e.style.minHeight=window.getComputedStyle(e).getPropertyValue("height");const n=e.style.minWidth;return e.style.minWidth=window.getComputedStyle(e).getPropertyValue("width"),function(){e.style.minHeight=t,e.style.minWidth=n}}(mo),ur(mo,s,{trigger:yr,id:fo.id,source:kr}),window.addEventListener("mousemove",jo,{passive:!1}),window.addEventListener("touchmove",jo,{passive:!1,capture:!1}),window.addEventListener("mouseup",Ro,{passive:!1}),window.addEventListener("touchend",Ro,{passive:!1})}())}function c(e){if(e.target!==e.currentTarget&&(void 0!==e.target.value||e.target.isContentEditable))return;if(e.button)return;if(xo)return;e.stopPropagation();const t=e.touches?e.touches[0]:e;bo={x:t.clientX,y:t.clientY},yo={...bo},uo=e.currentTarget,window.addEventListener("mousemove",i,{passive:!1}),window.addEventListener("touchmove",i,{passive:!1,capture:!1}),window.addEventListener("mouseup",l,{passive:!1}),window.addEventListener("touchend",l,{passive:!1})}function a({items:t,flipDurationMs:s=0,type:l="--any--",dragDisabled:i=!1,morphDisabled:a=!1,dropFromOthersDisabled:u=!1,dropTargetStyle:d=ao,dropTargetClasses:p=[],transformDraggedElement:f=(()=>{}),centreDraggedOnCursor:h=!1}){var m,g;function v(e,t){return To.get(e)?To.get(e)[t]:r[t]}r.dropAnimationDurationMs=s,r.type&&l!==r.type&&Lo(e,r.type),r.type=l,m=e,g=l,Co.has(g)||Co.set(g,new Set),Co.get(g).has(m)||(Co.get(g).add(m),Lr()),r.items=[...t],r.dragDisabled=i,r.morphDisabled=a,r.transformDraggedElement=f,r.centreDraggedOnCursor=h,!n||!xo||ko||function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!{}.hasOwnProperty.call(t,n)||t[n]!==e[n])return!1;return!0}(d,r.dropTargetStyle)&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;nr.dropTargetStyle),(()=>p)),io([e],(()=>d),(()=>p))),r.dropTargetStyle=d,r.dropTargetClasses=[...p],n&&xo&&r.dropFromOthersDisabled!==u&&(u?co([e],(e=>v(e,"dropTargetStyle")),(e=>v(e,"dropTargetClasses"))):io([e],(e=>v(e,"dropTargetStyle")),(e=>v(e,"dropTargetClasses")))),r.dropFromOthersDisabled=u,To.set(e,r);const $=Ao(r.items);for(let t=0;tr.transformDraggedElement(po,fo,t))),(b=s).style.visibility="hidden",b.setAttribute(Sr,"true"))}var b}return a(t),{update:e=>{a(e)},destroy:()=>{function t(){Lo(e,To.get(e).type),To.delete(e)}var n,r;xo?(n=e,r=t,So.push({dz:n,destroy:r}),window.requestAnimationFrame((()=>{lo(n),document.body.appendChild(n)}))):t()}}}(e,t),r=as(e,t);return{update:e=>{ds(e),n.update(e),r.update(e)},destroy:()=>{n.destroy(),r.destroy()}}}function ds(e){const{items:t,flipDurationMs:n,type:r,dragDisabled:o,morphDisabled:s,dropFromOthersDisabled:l,zoneTabIndex:i,dropTargetStyle:c,dropTargetClasses:a,transformDraggedElement:u,autoAriaDisabled:d,centreDraggedOnCursor:p,...f}=e;if(Object.keys(f).length>0&&console.warn("dndzone will ignore unknown options",f),!t)throw new Error("no 'items' key provided to dndzone");const h=t.find((e=>!{}.hasOwnProperty.call(e,Tr)));if(h)throw new Error(`missing 'id' property for item ${Gr(h)}`);if(a&&!Array.isArray(a))throw new Error(`dropTargetClasses should be an array but instead it is a ${typeof a}, ${Gr(a)}`);if(i&&(m=i,isNaN(m)||(0|(g=parseFloat(m)))!==g))throw new Error(`zoneTabIndex should be a number but instead it is a ${typeof i}, ${Gr(i)}`);var m,g}function ps(e,{delay:n=0,duration:r=400,easing:o=t}={}){const s=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*s}}function fs(e,{delay:t=0,duration:n=400,easing:r=Ot,x:o=0,y:s=0,opacity:l=0}={}){const i=getComputedStyle(e),c=+i.opacity,a="none"===i.transform?"":i.transform,u=c*(1-l);return{delay:t,duration:n,easing:r,css:(e,t)=>`\n\t\t\ttransform: ${a} translate(${(1-e)*o}px, ${(1-e)*s}px);\n\t\t\topacity: ${c-u*t}`}}const hs=["Activate","AddUndo","BeforeAddUndo","BeforeExecCommand","BeforeGetContent","BeforeRenderUI","BeforeSetContent","BeforePaste","Blur","Change","ClearUndos","Click","ContextMenu","Copy","Cut","Dblclick","Deactivate","Dirty","Drag","DragDrop","DragEnd","DragGesture","DragOver","Drop","ExecCommand","Focus","FocusIn","FocusOut","GetContent","Hide","Init","KeyDown","KeyPress","KeyUp","LoadContent","MouseDown","MouseEnter","MouseLeave","MouseMove","MouseOut","MouseOver","MouseUp","NodeChange","ObjectResizeStart","ObjectResized","ObjectSelected","Paste","PostProcess","PostRender","PreProcess","ProgressState","Redo","Remove","Reset","ResizeEditor","SaveContent","SelectionChange","SetAttrib","SetContent","Show","Submit","Undo","VisualAid"];function ms(e){let t;return{c(){var n,r;t=O("textarea"),R(t,"id",e[0]),n=t,r="visibility",null==="hidden"?n.style.removeProperty(r):n.style.setProperty(r,"hidden","")},m(n,r){S(n,t,r),e[18](t)},p(e,n){1&n&&R(t,"id",e[0])},d(n){n&&C(t),e[18](null)}}}function gs(e){let t;return{c(){t=O("div"),R(t,"id",e[0])},m(n,r){S(n,t,r),e[17](t)},p(e,n){1&n&&R(t,"id",e[0])},d(n){n&&C(t),e[17](null)}}}function vs(t){let n;function r(e,t){return e[1]?gs:ms}let o=r(t),s=o(t);return{c(){n=O("div"),s.c(),R(n,"class",t[2])},m(e,r){S(e,n,r),s.m(n,null),t[19](n)},p(e,[t]){o===(o=r(e))&&s?s.p(e,t):(s.d(1),s=o(e),s&&(s.c(),s.m(n,null))),4&t&&R(n,"class",e[2])},i:e,o:e,d(e){e&&C(n),s.d(),t[19](null)}}}const $s=e=>e+"_"+Math.floor(1e9*Math.random())+String(Date.now());let bs=(()=>{let e={listeners:[],scriptId:$s("tiny-script"),scriptLoaded:!1,injected:!1};return{load:(t,n,r)=>{e.scriptLoaded?r():(e.listeners.push(r),e.injected||((t,n,r,o)=>{e.injected=!0;const s=n.createElement("script");s.referrerPolicy="origin",s.type="application/javascript",s.src=r,s.onload=()=>{e.listeners.forEach((e=>e())),e.scriptLoaded=!0},n.head&&n.head.appendChild(s)})(e.scriptId,t,n))}}})();function ys(e,t,n){var r;let o,s,l,{id:c=$s("tinymce-svelte")}=t,{inline:a}=t,{disabled:u=!1}=t,{apiKey:d="no-api-key"}=t,{channel:p="6"}=t,{scriptSrc:f}=t,{conf:h={}}=t,{modelEvents:m="change input undo redo"}=t,{value:g=""}=t,{text:v=""}=t,{cssClass:$="tinymce-wrapper"}=t,b="",y=u;const w=function(){const e=W();return(t,n,{cancelable:r=!1}={})=>{const o=e.$$.callbacks[t];if(o){const s=P(t,n,{cancelable:r});return o.slice().forEach((t=>{t.call(e,s)})),!s.defaultPrevented}return!0}}(),x=()=>{const e="undefined"!=typeof window?window:i.g;return e&&e.tinymce?e.tinymce:null},k=()=>{const e=Object.assign(Object.assign({},h),{target:s,inline:void 0!==a?a:void 0!==h.inline&&h.inline,readonly:u,setup:e=>{n(14,l=e),e.on("init",(()=>{e.setContent(g),e.on(m,(()=>{n(15,b=e.getContent()),b!==g&&(n(5,g=b),n(6,v=e.getContent({format:"text"})))}))})),((e,t)=>{hs.forEach((n=>{e.on(n,(r=>{t(n.toLowerCase(),{eventName:n,event:r,editor:e})}))}))})(e,w),"function"==typeof h.setup&&h.setup(e)}});n(4,s.style.visibility="",s),x().init(e)};return X((()=>{if(null!==x())setTimeout(k,0);else{const e=f||`https://cdn.tiny.cloud/1/${d}/tinymce/${p}/tinymce.min.js`;bs.load(o.ownerDocument,e,(()=>{k()}))}})),Y((()=>{var e;l&&(null===(e=x())||void 0===e||e.remove(l))})),e.$$set=e=>{"id"in e&&n(0,c=e.id),"inline"in e&&n(1,a=e.inline),"disabled"in e&&n(7,u=e.disabled),"apiKey"in e&&n(8,d=e.apiKey),"channel"in e&&n(9,p=e.channel),"scriptSrc"in e&&n(10,f=e.scriptSrc),"conf"in e&&n(11,h=e.conf),"modelEvents"in e&&n(12,m=e.modelEvents),"value"in e&&n(5,g=e.value),"text"in e&&n(6,v=e.text),"cssClass"in e&&n(2,$=e.cssClass)},e.$$.update=()=>{123040&e.$$.dirty&&(l&&b!==g&&(l.setContent(g),n(6,v=l.getContent({format:"text"}))),l&&u!==y&&(n(16,y=u),"function"==typeof(null===n(13,r=l.mode)||void 0===r?void 0:r.set)?l.mode.set(u?"readonly":"design"):l.setMode(u?"readonly":"design")))},[c,a,$,o,s,g,v,u,d,p,f,h,m,r,l,b,y,function(e){J[e?"unshift":"push"]((()=>{s=e,n(4,s)}))},function(e){J[e?"unshift":"push"]((()=>{s=e,n(4,s)}))},function(e){J[e?"unshift":"push"]((()=>{o=e,n(3,o)}))}]}const ws=class extends Le{constructor(e){super(),Oe(this,e,ys,vs,l,{id:0,inline:1,disabled:7,apiKey:8,channel:9,scriptSrc:10,conf:11,modelEvents:12,value:5,text:6,cssClass:2})}};function xs(t){let n,r,o;return{c(){n=L("svg"),r=L("g"),o=L("path"),R(o,"d","M38,52a2,2,0,0,1-1.41-.59l-24-24a2,2,0,0,1,0-2.82l24-24a2,2,0,0,1,2.82,0,2,2,0,0,1,0,2.82L16.83,26,39.41,48.59A2,2,0,0,1,38,52Z"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 52 52"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r),x(r,o)},p:e,i:e,o:e,d(e){e&&C(n)}}}const ks=class extends Le{constructor(e){super(),Oe(this,e,null,xs,l,{})}};function Es(t){let n,r;return{c(){n=L("svg"),r=L("polygon"),R(r,"points","0,490 490,490 245,0"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 490 490"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r)},p:e,i:e,o:e,d(e){e&&C(n)}}}const Ss=class extends Le{constructor(e){super(),Oe(this,e,null,Es,l,{})}};function Cs(e){let t,n,r,l,i,c,a,u,d,p,f,h,m;return r=new Ss({}),a=new Ss({}),{c(){t=O("div"),n=O("a"),Se(r.$$.fragment),l=D(" move up"),i=A(),c=O("a"),Se(a.$$.fragment),u=D(" move down"),d=A(),p=O("a"),p.textContent="remove",R(n,"href","#up"),R(n,"class","small up svelte-1ahjj8t"),M(n,"control-disabled",!e[0]),R(c,"href","#dowm"),R(c,"class","small down svelte-1ahjj8t"),M(c,"control-disabled",!e[1]),R(p,"href","#remove"),R(p,"class","small remove svelte-1ahjj8t"),M(p,"control-disabled",!e[2]),R(t,"class","controls svelte-1ahjj8t")},m(o,g){S(o,t,g),x(t,n),Ce(r,n,null),x(n,l),x(t,i),x(t,c),Ce(a,c,null),x(c,u),x(t,d),x(t,p),f=!0,h||(m=[N(n,"click",j(F((function(){s(e[0])&&e[0].apply(this,arguments)})))),N(c,"click",j(F((function(){s(e[1])&&e[1].apply(this,arguments)})))),N(p,"click",j(F((function(){s(e[2])&&e[2].apply(this,arguments)}))))],h=!0)},p(t,[r]){e=t,1&r&&M(n,"control-disabled",!e[0]),2&r&&M(c,"control-disabled",!e[1]),4&r&&M(p,"control-disabled",!e[2])},i(e){f||(he(r.$$.fragment,e),he(a.$$.fragment,e),f=!0)},o(e){me(r.$$.fragment,e),me(a.$$.fragment,e),f=!1},d(e){e&&C(t),Te(r),Te(a),h=!1,o(m)}}}function Ts(e,t,n){let{moveUp:r}=t,{moveDown:o}=t,{remove:s}=t;return e.$$set=e=>{"moveUp"in e&&n(0,r=e.moveUp),"moveDown"in e&&n(1,o=e.moveDown),"remove"in e&&n(2,s=e.remove)},[r,o,s]}const Os=class extends Le{constructor(e){super(),Oe(this,e,Ts,Cs,l,{moveUp:0,moveDown:1,remove:2})}};function Ls(e){let t,n,r,s,l,i;return{c(){t=O("div"),n=O("span"),n.textContent="URL",r=A(),s=O("span"),R(n,"class","label svelte-13pfiuq"),R(s,"class","url svelte-13pfiuq"),R(s,"aria-label","URL"),R(s,"contenteditable",""),void 0===e[3]&&ne((()=>e[14].call(s))),R(t,"class","field svelte-13pfiuq")},m(o,c){S(o,t,c),x(t,n),x(t,r),x(t,s),void 0!==e[3]&&(s.innerHTML=e[3]),l||(i=[N(s,"input",e[14]),N(s,"keydown",e[11])],l=!0)},p(e,t){8&t&&e[3]!==s.innerHTML&&(s.innerHTML=e[3])},d(e){e&&C(t),l=!1,o(i)}}}function Ds(t){let n,r,o,s;return{c(){n=O("textarea"),n.disabled=r=t[2]&&t[4],R(n,"class","svelte-13pfiuq")},m(e,r){S(e,n,r),I(n,t[1]),o||(s=N(n,"input",t[16]),o=!0)},p(e,t){20&t&&r!==(r=e[2]&&e[4])&&(n.disabled=r),2&t&&I(n,e[1])},i:e,o:e,d(e){e&&C(n),o=!1,s()}}}function As(e){let t,n,r;function o(t){e[15](t)}let s={disabled:e[2]&&e[4],apiKey:"okcf1pz4foebbixgcdydveaavknj41e62etldhxguuyug0v3",conf:e[12]};return void 0!==e[1]&&(s.value=e[1]),t=new ws({props:s}),J.push((()=>Ee(t,"value",o))),{c(){Se(t.$$.fragment)},m(e,n){Ce(t,e,n),r=!0},p(e,r){const o={};20&r&&(o.disabled=e[2]&&e[4]),!n&&2&r&&(n=!0,o.value=e[1],re((()=>n=!1))),t.$set(o)},i(e){r||(he(t.$$.fragment,e),r=!0)},o(e){me(t.$$.fragment,e),r=!1},d(e){Te(t,e)}}}function _s(e){let t,n,r,o,s;return{c(){t=O("label"),n=O("input"),r=D(" Fetch contents"),R(n,"type","checkbox"),R(n,"class","svelte-13pfiuq"),R(t,"class","svelte-13pfiuq")},m(l,i){S(l,t,i),x(t,n),n.checked=e[2],x(t,r),o||(s=N(n,"change",e[17]),o=!0)},p(e,t){4&t&&(n.checked=e[2])},d(e){e&&C(t),o=!1,s()}}}function Ns(e){let t,n,r,o;return r=new Os({props:{moveUp:e[6],moveDown:e[7],remove:e[8]}}),{c(){t=O("span"),n=A(),Se(r.$$.fragment)},m(e,s){S(e,t,s),S(e,n,s),Ce(r,e,s),o=!0},p(e,t){const n={};64&t&&(n.moveUp=e[6]),128&t&&(n.moveDown=e[7]),256&t&&(n.remove=e[8]),r.$set(n)},i(e){o||(he(r.$$.fragment,e),o=!0)},o(e){me(r.$$.fragment,e),o=!1},d(e){e&&C(t),e&&C(n),Te(r,e)}}}function Fs(e){let t,n,r,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k;r=new ks({});let E=void 0!==e[3]&&Ls(e);const T=[As,Ds],L=[];function j(e,t){return e[10].useTiny?0:1}m=j(e),g=L[m]=T[m](e);let U=e[4]&&_s(e),I=!e[9]&&Ns(e);return{c(){t=O("h3"),n=O("a"),Se(r.$$.fragment),l=D(" back"),i=A(),c=O("div"),a=O("div"),u=O("span"),u.textContent="Title",d=A(),p=O("span"),f=A(),E&&E.c(),h=A(),g.c(),v=A(),U&&U.c(),$=A(),I&&I.c(),b=_(),R(n,"href","#home"),R(n,"class","homelink svelte-13pfiuq"),R(t,"class","back svelte-13pfiuq"),R(u,"class","label svelte-13pfiuq"),R(p,"class","title svelte-13pfiuq"),R(p,"aria-label","Title"),R(p,"contenteditable",""),void 0===e[0]&&ne((()=>e[13].call(p))),R(a,"class","field svelte-13pfiuq"),R(c,"class","chapter edit svelte-13pfiuq")},m(o,g){S(o,t,g),x(t,n),Ce(r,n,null),x(n,l),S(o,i,g),S(o,c,g),x(c,a),x(a,u),x(a,d),x(a,p),void 0!==e[0]&&(p.innerHTML=e[0]),x(c,f),E&&E.m(c,null),x(c,h),L[m].m(c,null),x(c,v),U&&U.m(c,null),S(o,$,g),I&&I.m(o,g),S(o,b,g),y=!0,w||(k=[N(n,"click",F((function(){s(e[5])&&e[5].apply(this,arguments)}))),N(p,"input",e[13]),N(p,"keydown",e[11])],w=!0)},p(t,n){e=t,1&n&&e[0]!==p.innerHTML&&(p.innerHTML=e[0]),void 0!==e[3]?E?E.p(e,n):(E=Ls(e),E.c(),E.m(c,h)):E&&(E.d(1),E=null);let r=m;m=j(e),m===r?L[m].p(e,n):(pe(),me(L[r],1,1,(()=>{L[r]=null})),fe(),g=L[m],g?g.p(e,n):(g=L[m]=T[m](e),g.c()),he(g,1),g.m(c,v)),e[4]?U?U.p(e,n):(U=_s(e),U.c(),U.m(c,null)):U&&(U.d(1),U=null),e[9]?I&&(pe(),me(I,1,1,(()=>{I=null})),fe()):I?(I.p(e,n),512&n&&he(I,1)):(I=Ns(e),I.c(),he(I,1),I.m(b.parentNode,b))},i(e){y||(he(r.$$.fragment,e),he(g),he(I),y=!0)},o(e){me(r.$$.fragment,e),me(g),me(I),y=!1},d(e){e&&C(t),Te(r),e&&C(i),e&&C(c),E&&E.d(),L[m].d(),U&&U.d(),e&&C($),I&&I.d(e),e&&C(b),w=!1,o(k)}}}function js(e){let t,n;return t=new _e({props:{onSubmit:e[5],$$slots:{default:[Fs]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,[n]){const r={};32&n&&(r.onSubmit=e[5]),264191&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Rs(e,t,n){let r;a(e,Be,(e=>n(10,r=e)));let{title:o}=t,{content:s}=t,{needsFetching:l}=t,{url:i}=t,{canFetch:c=!1}=t,{close:u}=t,{moveUp:d}=t,{moveDown:p}=t,{remove:f}=t,{hideControls:h=!1}=t;return l=null==l||l,s=null!=s?s:"",e.$$set=e=>{"title"in e&&n(0,o=e.title),"content"in e&&n(1,s=e.content),"needsFetching"in e&&n(2,l=e.needsFetching),"url"in e&&n(3,i=e.url),"canFetch"in e&&n(4,c=e.canFetch),"close"in e&&n(5,u=e.close),"moveUp"in e&&n(6,d=e.moveUp),"moveDown"in e&&n(7,p=e.moveDown),"remove"in e&&n(8,f=e.remove),"hideControls"in e&&n(9,h=e.hideControls)},e.$$.update=()=>{1&e.$$.dirty&&n(0,o=o.replace(/<[^>]*>/g,""))},[o,s,l,i,c,u,d,p,f,h,r,e=>{"Enter"!==e.key&&13!==e.keyCode||e.preventDefault()},{plugins:"code",toolbar:"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | code"},function(){o=this.innerHTML,n(0,o)},function(){i=this.innerHTML,n(3,i)},function(e){s=e,n(1,s)},function(){s=this.value,n(1,s)},function(){l=this.checked,n(2,l)}]}const Us=class extends Le{constructor(e){super(),Oe(this,e,Rs,js,l,{title:0,content:1,needsFetching:2,url:3,canFetch:4,close:5,moveUp:6,moveDown:7,remove:8,hideControls:9})}};function Is(e){let t,n;return{c(){t=O("span"),n=D(e[5]),R(t,"class","content svelte-1ltngm7")},m(e,r){S(e,t,r),x(t,n)},p(e,t){32&t&&U(n,e[5])},d(e){e&&C(t)}}}function Ms(e){let t,n,r,l,i,c,a,u,d,p,f,h=!e[6]&&Is(e);return u=new Os({props:{moveUp:e[2],moveDown:e[3],remove:e[4]}}),{c(){t=O("div"),n=O("div"),r=O("span"),l=D(e[0]),i=A(),h&&h.c(),c=A(),a=O("div"),Se(u.$$.fragment),R(r,"class","title svelte-1ltngm7"),R(r,"aria-label","Title"),R(n,"class","preview svelte-1ltngm7"),M(n,"empty",e[6]),R(a,"class","more svelte-1ltngm7"),R(t,"class","chapter svelte-1ltngm7"),R(t,"tabindex","0"),R(t,"title",e[0])},m(o,m){S(o,t,m),x(t,n),x(n,r),x(r,l),x(n,i),h&&h.m(n,null),x(t,c),x(t,a),Ce(u,a,null),d=!0,p||(f=[N(t,"click",(function(){s(e[1])&&e[1].apply(this,arguments)})),N(t,"contextmenu",F(e[8]))],p=!0)},p(r,[o]){e=r,(!d||1&o)&&U(l,e[0]),e[6]?h&&(h.d(1),h=null):h?h.p(e,o):(h=Is(e),h.c(),h.m(n,null)),64&o&&M(n,"empty",e[6]);const s={};4&o&&(s.moveUp=e[2]),8&o&&(s.moveDown=e[3]),16&o&&(s.remove=e[4]),u.$set(s),(!d||1&o)&&R(t,"title",e[0])},i(e){d||(he(u.$$.fragment,e),d=!0)},o(e){me(u.$$.fragment,e),d=!1},d(e){e&&C(t),h&&h.d(),Te(u),p=!1,o(f)}}}function Ps(e,t,n){let r,{title:o}=t,{content:s}=t,{select:l}=t,{moveUp:i}=t,{moveDown:c}=t,{remove:a}=t;s=null!=s?s:"";let u="";return e.$$set=e=>{"title"in e&&n(0,o=e.title),"content"in e&&n(7,s=e.content),"select"in e&&n(1,l=e.select),"moveUp"in e&&n(2,i=e.moveUp),"moveDown"in e&&n(3,c=e.moveDown),"remove"in e&&n(4,a=e.remove)},e.$$.update=()=>{128&e.$$.dirty&&n(6,r=!s||!s.trim().length),128&e.$$.dirty&&setTimeout((()=>n(5,u=At(s||""))),0)},[o,l,i,c,a,u,r,s,function(t){K.call(this,e,t)}]}const Hs=class extends Le{constructor(e){super(),Oe(this,e,Ps,Ms,l,{title:0,content:7,select:1,moveUp:2,moveDown:3,remove:4})}};function zs(e){let t,n,r;return{c(){t=O("span"),R(t,"class","edit svelte-1pemcjw"),R(t,"contenteditable",""),void 0===e[0]&&ne((()=>e[7].call(t)))},m(o,s){S(o,t,s),void 0!==e[0]&&(t.innerHTML=e[0]),n||(r=N(t,"input",e[7]),n=!0)},p(e,n){1&n&&e[0]!==t.innerHTML&&(t.innerHTML=e[0])},d(e){e&&C(t),n=!1,r()}}}function Bs(e){let t,n,r,o=At(e[0])+"";return{c(){t=O("a"),n=D(o),R(t,"href",r=Dt(e[3])),R(t,"target","_blank")},m(e,r){S(e,t,r),x(t,n)},p(e,s){1&s&&o!==(o=At(e[0])+"")&&U(n,o),8&s&&r!==(r=Dt(e[3]))&&R(t,"href",r)},d(e){e&&C(t)}}}function Gs(e){let t,n,r;return{c(){t=O("span"),R(t,"class","edit svelte-1pemcjw"),R(t,"contenteditable",""),void 0===e[1]&&ne((()=>e[8].call(t)))},m(o,s){S(o,t,s),void 0!==e[1]&&(t.innerHTML=e[1]),n||(r=N(t,"input",e[8]),n=!0)},p(e,n){2&n&&e[1]!==t.innerHTML&&(t.innerHTML=e[1])},d(e){e&&C(t),n=!1,r()}}}function qs(e){let t,n=At(e[1])+"";return{c(){t=D(n)},m(e,n){S(e,t,n)},p(e,r){2&r&&n!==(n=At(e[1])+"")&&U(t,n)},d(e){e&&C(t)}}}function Ws(e){let t,n,r,o;const s=e[6].default,l=u(s,e,e[9],null);return{c(){t=O("h3"),t.textContent="Chapters",n=A(),r=O("div"),l&&l.c()},m(e,s){S(e,t,s),S(e,n,s),S(e,r,s),l&&l.m(r,null),o=!0},p(e,t){l&&l.p&&(!o||512&t)&&f(l,s,e,e[9],o?p(s,e[9],t,null):h(e[9]),null)},i(e){o||(he(l,e),o=!0)},o(e){me(l,e),o=!1},d(e){e&&C(t),e&&C(n),e&&C(r),l&&l.d(e)}}}function Xs(e){let t,n,r,o,s,l,i,c,a,u;function d(e,t){return e[2]?zs:Bs}let p=d(e),f=p(e);function h(e,t){return e[2]?Gs:qs}let m=h(e),g=m(e),v=e[5].default&&Ws(e);return{c(){t=O("h3"),t.textContent="Title",n=A(),r=O("p"),f.c(),o=A(),s=O("h3"),s.textContent="Author",l=A(),i=O("p"),g.c(),c=A(),v&&v.c(),a=_()},m(e,d){S(e,t,d),S(e,n,d),S(e,r,d),f.m(r,null),S(e,o,d),S(e,s,d),S(e,l,d),S(e,i,d),g.m(i,null),S(e,c,d),v&&v.m(e,d),S(e,a,d),u=!0},p(e,t){p===(p=d(e))&&f?f.p(e,t):(f.d(1),f=p(e),f&&(f.c(),f.m(r,null))),m===(m=h(e))&&g?g.p(e,t):(g.d(1),g=m(e),g&&(g.c(),g.m(i,null))),e[5].default?v?(v.p(e,t),32&t&&he(v,1)):(v=Ws(e),v.c(),he(v,1),v.m(a.parentNode,a)):v&&(pe(),me(v,1,1,(()=>{v=null})),fe())},i(e){u||(he(v),u=!0)},o(e){me(v),u=!1},d(e){e&&C(t),e&&C(n),e&&C(r),f.d(),e&&C(o),e&&C(s),e&&C(l),e&&C(i),g.d(),e&&C(c),v&&v.d(e),e&&C(a)}}}function Ys(e){let t,n;return t=new _e({props:{onSubmit:e[4],$$slots:{default:[Xs]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,[n]){const r={};16&n&&(r.onSubmit=e[4]),559&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Ks(e,t,n){let{$$slots:r={},$$scope:o}=t;const s=function(e){const t={};for(const n in e)t[n]=!0;return t}(r);let{edit:l=!1}=t,{title:i}=t,{author:c}=t,{url:a=""}=t,{onSubmit:u}=t;return e.$$set=e=>{"edit"in e&&n(2,l=e.edit),"title"in e&&n(0,i=e.title),"author"in e&&n(1,c=e.author),"url"in e&&n(3,a=e.url),"onSubmit"in e&&n(4,u=e.onSubmit),"$$scope"in e&&n(9,o=e.$$scope)},[i,c,l,a,u,s,r,function(){i=this.innerHTML,n(0,i)},function(){c=this.innerHTML,n(1,c)},o]}const Vs=class extends Le{constructor(e){super(),Oe(this,e,Ks,Ys,l,{edit:2,title:0,author:1,url:3,onSubmit:4})}};function Js(e,t,n){const r=e.slice();return r[49]=t[n],r}function Zs(e,t,n){const r=e.slice();return r[52]=t[n],r[54]=n,r}function Qs(e,t){let n,r,o;function s(){return t[20](t[54])}return r=new Hs({props:{title:t[52].title,content:t[52].transformedContent,select:s,moveUp:(t[2]>0||t[54]>0)&&t[14].bind(null,t[13](t[54])),moveDown:(t[2]0||t[54]>0)&&t[14].bind(null,t[13](t[54]))),268&n[0]&&(o.moveDown=(t[2]=e[3]),R(t,"class","svelte-zxr0xc")},m(o,l){S(o,t,l),x(t,n),x(n,r),x(t,i),g&&g.m(t,null),x(t,c);for(let e=0;e<$.length;e+=1)$[e].m(t,null);x(t,a),b&&b.m(t,null),x(t,u),x(t,d),x(d,p),h||(m=[N(n,"click",F((function(){s(e[17].bind(null,e[2]-1))&&e[17].bind(null,e[2]-1).apply(this,arguments)}))),N(d,"click",F((function(){s(e[17].bind(null,e[2]+1))&&e[17].bind(null,e[2]+1).apply(this,arguments)})))],h=!0)},p(r,o){if(e=r,4&o[0]&&l!==(l=e[2]<=0)&&R(n,"disabled",l),null!==e[7].pre?g?g.p(e,o):(g=tl(e),g.c(),g.m(t,c)):g&&(g.d(1),g=null),131204&o[0]){let n;for(v=e[7].pages,n=0;n=e[3])&&R(d,"disabled",f)},d(e){e&&C(t),g&&g.d(),T($,e),b&&b.d(),h=!1,o(m)}}}function tl(e){let t,n,r,o,l,i,c=e[7].pre+"";return{c(){t=O("a"),n=D(c),o=D("\n ."),R(t,"class","small svelte-zxr0xc"),R(t,"href",r=`#page ${e[7].pre}`),R(t,"role","navigation")},m(r,c){S(r,t,c),x(t,n),S(r,o,c),l||(i=N(t,"click",F((function(){s(e[17].bind(null,e[7].pre-1))&&e[17].bind(null,e[7].pre-1).apply(this,arguments)}))),l=!0)},p(o,s){e=o,128&s[0]&&c!==(c=e[7].pre+"")&&U(n,c),128&s[0]&&r!==(r=`#page ${e[7].pre}`)&&R(t,"href",r)},d(e){e&&C(t),e&&C(o),l=!1,i()}}}function nl(e){let t,n,r,o,l,i=e[49]+1+"";return{c(){t=O("a"),n=D(i),R(t,"class","small svelte-zxr0xc"),R(t,"href",r=`#page ${e[49]+1}`),R(t,"role","navigation"),M(t,"current",e[49]==e[2])},m(r,i){S(r,t,i),x(t,n),o||(l=N(t,"click",F((function(){s(e[17].bind(null,e[49]))&&e[17].bind(null,e[49]).apply(this,arguments)}))),o=!0)},p(o,s){e=o,128&s[0]&&i!==(i=e[49]+1+"")&&U(n,i),128&s[0]&&r!==(r=`#page ${e[49]+1}`)&&R(t,"href",r),132&s[0]&&M(t,"current",e[49]==e[2])},d(e){e&&C(t),o=!1,l()}}}function rl(e){let t,n,r,o,l,i,c=e[7].post+"";return{c(){t=D(".\n "),n=O("a"),r=D(c),R(n,"class","small svelte-zxr0xc"),R(n,"href",o=`#page ${e[7].post}`),R(n,"role","navigation")},m(o,c){S(o,t,c),S(o,n,c),x(n,r),l||(i=N(n,"click",F((function(){s(e[17].bind(null,e[7].post-1))&&e[17].bind(null,e[7].post-1).apply(this,arguments)}))),l=!0)},p(t,s){e=t,128&s[0]&&c!==(c=e[7].post+"")&&U(r,c),128&s[0]&&o!==(o=`#page ${e[7].post}`)&&R(n,"href",o)},d(e){e&&C(t),e&&C(n),l=!1,i()}}}function ol(e){let t,n,r,l,i,c,a,u,d,p,f=[],h=new Map,g=e[8];const v=e=>e[52].id;for(let t=0;t0&&el(e);return{c(){t=O("div");for(let e=0;e0?$?$.p(e,r):($=el(e),$.c(),$.m(l.parentNode,l)):$&&($.d(1),$=null)},i(e){if(!u){for(let e=0;e0||e[4]>0)&&e[14].bind(null,e[4]),moveDown:(e[2]Ee(n,"title",p))),J.push((()=>Ee(n,"content",f))),J.push((()=>Ee(n,"needsFetching",h))),J.push((()=>Ee(n,"url",m))),{c(){t=O("div"),Se(n.$$.fragment),R(t,"class","svelte-zxr0xc"),M(t,"float",e[11])},m(r,o){S(r,t,o),Ce(n,t,null),a=!0,u||(d=[N(t,"introend",e[31]),N(t,"outrostart",e[32]),N(t,"outroend",e[33])],u=!0)},p(e,o){const c={};32&o[0]&&(c.canFetch=!!e[5].apiUrl),48&o[0]&&(c.close=e[26]),20&o[0]&&(c.moveUp=(e[2]>0||e[4]>0)&&e[14].bind(null,e[4])),284&o[0]&&(c.moveDown=(e[2]r=!1))),!s&&32&o[0]&&(s=!0,c.content=e[5].transformedContent,re((()=>s=!1))),!l&&32&o[0]&&(l=!0,c.needsFetching=e[5].needsFetching,re((()=>l=!1))),!i&&32&o[0]&&(i=!0,c.url=e[5].displayUrl,re((()=>i=!1))),n.$set(c),2048&o[0]&&M(t,"float",e[11])},i(e){a||(he(n.$$.fragment,e),e&&ne((()=>{c||(c=ve(t,fs,{x:50,duration:200},!0)),c.run(1)})),a=!0)},o(e){me(n.$$.fragment,e),e&&(c||(c=ve(t,fs,{x:50,duration:200},!1)),c.run(0)),a=!1},d(e){e&&C(t),Te(n),e&&c&&c.end(),u=!1,o(d)}}}function ll(e){let t,n,r,s,l,i,c,a,u,d;function p(t){e[35](t)}function f(t){e[36](t)}function h(t){e[37](t)}function m(t){e[38](t)}let g={canFetch:!!e[6].apiUrl,hideControls:!0,close:e[34]};return void 0!==e[6].title&&(g.title=e[6].title),void 0!==e[6].transformedContent&&(g.content=e[6].transformedContent),void 0!==e[6].needsFetching&&(g.needsFetching=e[6].needsFetching),void 0!==e[6].displayUrl&&(g.url=e[6].displayUrl),n=new Us({props:g}),J.push((()=>Ee(n,"title",p))),J.push((()=>Ee(n,"content",f))),J.push((()=>Ee(n,"needsFetching",h))),J.push((()=>Ee(n,"url",m))),{c(){t=O("div"),Se(n.$$.fragment),R(t,"class","svelte-zxr0xc"),M(t,"float",e[11])},m(r,o){S(r,t,o),Ce(n,t,null),a=!0,u||(d=[N(t,"introend",e[39]),N(t,"outrostart",e[40]),N(t,"outroend",e[41])],u=!0)},p(e,o){const c={};64&o[0]&&(c.canFetch=!!e[6].apiUrl),578&o[0]&&(c.close=e[34]),!r&&64&o[0]&&(r=!0,c.title=e[6].title,re((()=>r=!1))),!s&&64&o[0]&&(s=!0,c.content=e[6].transformedContent,re((()=>s=!1))),!l&&64&o[0]&&(l=!0,c.needsFetching=e[6].needsFetching,re((()=>l=!1))),!i&&64&o[0]&&(i=!0,c.url=e[6].displayUrl,re((()=>i=!1))),n.$set(c),2048&o[0]&&M(t,"float",e[11])},i(e){a||(he(n.$$.fragment,e),e&&ne((()=>{c||(c=ve(t,fs,{x:50,duration:200},!0)),c.run(1)})),a=!0)},o(e){me(n.$$.fragment,e),e&&(c||(c=ve(t,fs,{x:50,duration:200},!1)),c.run(0)),a=!1},d(e){e&&C(t),Te(n),e&&c&&c.end(),u=!1,o(d)}}}function il(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g;function v(t){e[24](t)}function $(t){e[25](t)}let b={edit:!0,onSubmit:e[23],$$slots:{default:[ol]},$$scope:{ctx:e}};void 0!==e[1].title&&(b.title=e[1].title),void 0!==e[1].author&&(b.author=e[1].author),s=new Vs({props:b}),J.push((()=>Ee(s,"title",v))),J.push((()=>Ee(s,"author",$)));let y=e[4]>=0&&sl(e),w=e[9]&&ll(e);return{c(){t=D("You are editing:\n\n"),n=O("div"),r=O("div"),Se(s.$$.fragment),c=A(),y&&y.c(),a=A(),w&&w.c(),u=A(),d=O("button"),d.textContent="Save",p=A(),f=O("a"),f.textContent="Cancel",R(r,"class","svelte-zxr0xc"),M(r,"hide",e[10]),R(n,"class","list svelte-zxr0xc"),R(d,"type","submit"),R(f,"href","#cancel"),R(f,"class","small")},m(o,l){S(o,t,l),S(o,n,l),x(n,r),Ce(s,r,null),x(n,c),y&&y.m(n,null),x(n,a),w&&w.m(n,null),S(o,u,l),S(o,d,l),S(o,p,l),S(o,f,l),h=!0,m||(g=[N(d,"click",e[42]),N(f,"click",F(e[43]))],m=!0)},p(e,t){const o={};3&t[0]&&(o.onSubmit=e[23]),990&t[0]|16777216&t[1]&&(o.$$scope={dirty:t,ctx:e}),!l&&2&t[0]&&(l=!0,o.title=e[1].title,re((()=>l=!1))),!i&&2&t[0]&&(i=!0,o.author=e[1].author,re((()=>i=!1))),s.$set(o),1024&t[0]&&M(r,"hide",e[10]),e[4]>=0?y?(y.p(e,t),16&t[0]&&he(y,1)):(y=sl(e),y.c(),he(y,1),y.m(n,a)):y&&(pe(),me(y,1,1,(()=>{y=null})),fe()),e[9]?w?(w.p(e,t),512&t[0]&&he(w,1)):(w=ll(e),w.c(),he(w,1),w.m(n,null)):w&&(pe(),me(w,1,1,(()=>{w=null})),fe())},i(e){h||(he(s.$$.fragment,e),he(y),he(w),h=!0)},o(e){me(s.$$.fragment,e),me(y),me(w),h=!1},d(e){e&&C(t),e&&C(n),Te(s),y&&y.d(),w&&w.d(),e&&C(u),e&&C(d),e&&C(p),e&&C(f),m=!1,o(g)}}}const cl=50,al=200;function ul(e,t,n){let r,o;a(e,$n,(e=>n(45,r=e))),a(e,bn,(e=>n(46,o=e)));let{stage:s}=t;const l=(i=o,Object.assign(Object.assign({},i),{chapters:i.chapters.map((e=>Object.assign({},e)))}));var i;const c=o;let u,d,p,f,h,m=0,g=-1,v=!1;const $=e=>e+cl*m,b=e=>{e.displayUrl&&(r.series.type===zt.GENERIC?e.apiUrl=e.displayUrl:e.apiUrl=Lt(e.displayUrl))};let y={pre:null,pages:[],post:null},w=!1,x=!0;return e.$$set=e=>{"stage"in e&&n(0,s=e.stage)},e.$$.update=()=>{2&e.$$.dirty[0]&&n(3,d=Math.ceil(c.chapters.length/cl-1)),6&e.$$.dirty[0]&&n(8,p=c.chapters.slice(m*cl,(m+1)*cl)),18&e.$$.dirty[0]&&n(5,f=g>=0?c.chapters[g]:void 0),140&e.$$.dirty[0]&&(n(7,y.pages=((e,t)=>{const n=new Array(t-e+1);for(let r=e;r<=t;r++)n[r-e]=r;return n})(Math.max(0,m-3),Math.min(d,m+3)),y),n(7,y.pre=0!==y.pages[0]?1:null,y),n(7,y.post=y.pages[y.pages.length-1]!==d?d+1:null,y)),32&e.$$.dirty[0]&&f&&b(f),64&e.$$.dirty[0]&&h&&b(h)},[s,c,m,d,g,f,h,y,p,v,w,x,l,$,e=>{e<1||(e===g&&n(4,--g),c.chapters.splice(e-1,2,c.chapters[e],c.chapters[e-1]),n(1,c))},e=>{e>=c.chapters.length||(e===g&&n(4,++g),c.chapters.splice(e,2,c.chapters[e+1],c.chapters[e]),n(1,c))},e=>{n(4,g=-1),c.chapters.splice(e,1),n(1,c)},e=>{if(m==e){const t=prompt("New page:",""+(m+1)),n=+t;null!==t&&!isNaN(n)&&n>0&&n<=d+1&&(e=n-1)}u=Math.sign(e-m),n(2,m=e)},e=>{(e=>{c.chapters.splice(m*cl,cl,...e.detail.items),n(1,c)})(e)},b,e=>n(4,g=$(e)),()=>{n(9,v=!0),n(6,h={id:Et(),title:"",apiUrl:"",displayUrl:""})},()=>n(1,c.chapters=[],c),()=>s.next(c),function(t){e.$$.not_equal(c.title,t)&&(c.title=t,n(1,c))},function(t){e.$$.not_equal(c.author,t)&&(c.author=t,n(1,c))},()=>{b(f),n(4,g=-1)},function(t){e.$$.not_equal(f.title,t)&&(f.title=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.transformedContent,t)&&(f.transformedContent=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.needsFetching,t)&&(f.needsFetching=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.displayUrl,t)&&(f.displayUrl=t,n(5,f),n(4,g),n(1,c))},()=>{n(10,w=!0),n(11,x=!1)},()=>{n(11,x=!0)},()=>{n(10,w=!1)},()=>{b(h),c.chapters.push(h),n(1,c),n(9,v=!1)},function(t){e.$$.not_equal(h.title,t)&&(h.title=t,n(6,h))},function(t){e.$$.not_equal(h.transformedContent,t)&&(h.transformedContent=t,n(6,h))},function(t){e.$$.not_equal(h.needsFetching,t)&&(h.needsFetching=t,n(6,h))},function(t){e.$$.not_equal(h.displayUrl,t)&&(h.displayUrl=t,n(6,h))},()=>{n(10,w=!0),n(11,x=!1)},()=>{n(11,x=!0)},()=>{n(10,w=!1)},()=>s.next(c),()=>s.next(l)]}const dl=class extends Le{constructor(e){super(),Oe(this,e,ul,il,l,{stage:0},null,[-1,-1])}};function pl(e,t,n){const r=e.slice();return r[19]=t[n],r}function fl(e){let t,n,r,o;return t=new yt({props:{error:e[22],retry:e[14]}}),r=new ft({props:{backToSearch:e[2]}}),{c(){Se(t.$$.fragment),n=A(),Se(r.$$.fragment)},m(e,s){Ce(t,e,s),S(e,n,s),Ce(r,e,s),o=!0},p(e,n){const o={};16&n&&(o.error=e[22]),16&n&&(o.retry=e[14]),t.$set(o);const s={};4&n&&(s.backToSearch=e[2]),r.$set(s)},i(e){o||(he(t.$$.fragment,e),he(r.$$.fragment,e),o=!0)},o(e){me(t.$$.fragment,e),me(r.$$.fragment,e),o=!1},d(e){Te(t,e),e&&C(n),Te(r,e)}}}function hl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m;function g(e,t){return 16&t&&(l=null),null==l&&(l=!!e[18].chapters.find(Cl)),l?xl:wl}r=new Vs({props:{title:e[18].title,author:e[18].author,url:e[1].url,$$slots:{default:[yl]},$$scope:{ctx:e}}});let v=g(e,-1),$=v(e);return p=new ft({props:{backToSearch:e[2]}}),{c(){t=D("Got the following series:\n\n "),n=O("div"),Se(r.$$.fragment),s=A(),$.c(),i=A(),c=O("button"),c.textContent="Edit book",a=A(),u=O("button"),u.textContent="Export",d=A(),Se(p.$$.fragment),R(n,"class","list svelte-1hsynpq")},m(o,l){S(o,t,l),S(o,n,l),Ce(r,n,null),S(o,s,l),$.m(o,l),S(o,i,l),S(o,c,l),S(o,a,l),S(o,u,l),S(o,d,l),Ce(p,o,l),f=!0,h||(m=[N(c,"click",e[12]),N(u,"click",e[13])],h=!0)},p(e,t){const n={};16&t&&(n.title=e[18].title),16&t&&(n.author=e[18].author),2&t&&(n.url=e[1].url),8388633&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n),v===(v=g(e,t))&&$?$.p(e,t):($.d(1),$=v(e),$&&($.c(),$.m(i.parentNode,i)));const o={};4&t&&(o.backToSearch=e[2]),p.$set(o)},i(e){f||(he(r.$$.fragment,e),he(p.$$.fragment,e),f=!0)},o(e){me(r.$$.fragment,e),me(p.$$.fragment,e),f=!1},d(e){e&&C(t),e&&C(n),Te(r),e&&C(s),$.d(e),e&&C(i),e&&C(c),e&&C(a),e&&C(u),e&&C(d),Te(p,e),h=!1,o(m)}}}function ml(e){let t;return{c(){t=D("hide")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function gl(e){let t;return{c(){t=D("show")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function vl(e){let t,n,r,o,s,l,i=e[0].newChapters+"";return{c(){t=O("span"),n=D("Found "),r=D(i),o=D(" new")},m(i,c){S(i,t,c),x(t,n),x(t,r),x(t,o),s||(l=N(t,"click",e[9]),s=!0)},p(e,t){1&t&&i!==(i=e[0].newChapters+"")&&U(r,i)},d(e){e&&C(t),s=!1,l()}}}function $l(e){let t,n,r,o=[],s=new Map,l=e[18].chapters;const i=e=>e[19].id;for(let t=0;t{n||(n=ve(t,Ft,{},!0)),n.run(1)})),r=!0)},o(e){n||(n=ve(t,Ft,{},!1)),n.run(0),r=!1},d(e){e&&C(t);for(let e=0;e{k=null})),fe())},i(e){h||(he(k),h=!0)},o(e){me(k),h=!1},d(e){e&&C(t),y.d(),w&&w.d(),e&&C(p),k&&k.d(e),e&&C(f),m=!1,o(g)}}}function wl(t){let n,r,o;return{c(){n=O("button"),n.textContent="Generate EPUB"},m(e,s){S(e,n,s),r||(o=N(n,"click",t[11]),r=!0)},p:e,d(e){e&&C(n),r=!1,o()}}}function xl(t){let n,r,o;return{c(){n=O("button"),n.textContent="Fetch chapter contents"},m(e,s){S(e,n,s),r||(o=N(n,"click",t[10]),r=!0)},p:e,d(e){e&&C(n),r=!1,o()}}}function kl(e){let t,n;return t=new kt({props:{$$slots:{default:[El]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8388608&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function El(e){let t;return{c(){t=D("Please wait, fetching data...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function Sl(e){let t,n,r,o={ctx:e,current:null,token:null,hasCatch:!0,pending:kl,then:hl,catch:fl,value:18,error:22,blocks:[,,,]};return $e(n=e[4],o),{c(){t=_(),o.block.c()},m(e,n){S(e,t,n),o.block.m(e,o.anchor=n),o.mount=()=>t.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}const Cl=e=>!1!==e.needsFetching&&e.apiUrl;function Tl(e,t,n){let r,o,s;a(e,bn,(e=>n(15,r=e))),a(e,$n,(e=>n(16,o=e))),a(e,Be,(e=>n(17,s=e)));let{stage:l}=t,{series:i}=t,{backToSearch:c}=t,u=!1;const d=()=>r?Promise.resolve(r):(async e=>{var t,n,r;const o=await Ct(new URL(e.url)),s=await qt(e,o);if(!o.ok)throw""+(null!==(n=null!==(t=s.message)&&void 0!==t?t:o.statusText)&&void 0!==n?n:o.status);const l=((e,t)=>{switch(e){case zt.HFY_SERIES:return(({data:{content_md:e,content_html:t}})=>{var n,r,o;const s=(new DOMParser).parseFromString(At(t),"text/html").querySelectorAll("a[href]");return{author:null===(n=e.match(/\[\*\*(?:Author\s*[-:]\s*)?([^*\]]+)\*\*\]|A Story By \[(?:\*\*)?([^\]]+?)(?:\*\*)?\]/i).slice(1).find(Boolean))||void 0===n?void 0:n.trim(),title:null===(o=null===(r=e.match(/##?\s*\*\*(.+)\*\*/))||void 0===r?void 0:r[1])||void 0===o?void 0:o.trim(),chapters:Array.from(s).filter((e=>e.getAttribute("href").match(jt))).map((e=>{const t=e.getAttribute("href").startsWith("http")?e.getAttribute("href"):`https://www.reddit.com${e.getAttribute("href")}`;return{id:Et(),title:e.textContent.trim(),apiUrl:Lt(t),displayUrl:t}}))}})(t);case zt.POST:return(e=>({author:e[0].data.children[0].data.author,title:e[0].data.children[0].data.title,chapters:[Ht(e)]}))(t);case zt.GENERIC:return(e=>{const t=_t(e);return{title:t.title,author:"unknown",chapters:Array.from(t.querySelectorAll("ul a, ol a")).map((e=>({displayUrl:e.href,apiUrl:e.href,id:Et(),title:e.innerHTML})))}})(t)}throw new Error(`Getting data from source type \`${zt[e]}\` not supported, this should never happen`)})(e.type,s);if(!(null===(r=null==l?void 0:l.chapters)||void 0===r?void 0:r.length))throw new Error("No chapters found");return l})(i).then((e=>{const t=Object.assign(Object.assign({},e),{chapters:en(s,e.chapters)});return bn.update((()=>t)),t}));let p=d();const f=()=>{const e=JSON.stringify({bookData:r,series:o.series});at()(new Blob([e]),`${At(r.author)} - ${At(r.title)}.json`,"application/json")};return e.$$set=e=>{"stage"in e&&n(0,l=e.stage),"series"in e&&n(1,i=e.series),"backToSearch"in e&&n(2,c=e.backToSearch)},[l,i,c,u,p,d,f,()=>n(3,u=!u),()=>l.findMore(),()=>n(0,l.newChapters=void 0,l),()=>l.downloadAll(),()=>l.next(),()=>l.edit(),()=>f(),()=>n(4,p=d())]}const Ol=class extends Le{constructor(e){super(),Oe(this,e,Tl,Sl,l,{stage:0,series:1,backToSearch:2})}};function Ll(e,t,n){const r=e.slice();return r[7]=t[n],r}function Dl(e){let t,n;return t=new yt({props:{error:e[10],retry:e[5]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.error=e[10]),4&n&&(r.retry=e[5]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Al(t){let n,r,o,s,l,i,c,a,u=t[6],d=[];for(let e=0;et.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,4&r&&n!==(n=e[2])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function Ul(e,t,n){let{stage:r}=t,{search:o}=t;const s=()=>Mt(o).then((e=>{if(!e.length)throw new Error(`No series matched input \`${o}\``);return e}));let l=s();return e.$$set=e=>{"stage"in e&&n(0,r=e.stage),"search"in e&&n(1,o=e.search)},[r,o,l,s,e=>r.next({url:e.url,type:zt.HFY_SERIES}),()=>n(2,l=s())]}const Il=class extends Le{constructor(e){super(),Oe(this,e,Ul,Rl,l,{stage:0,search:1})}};function Ml(e,t,n){const r=e.slice();return r[9]=t[n],r}function Pl(t){let n,r,s,l,i,c,a,u,d,p,f;return{c(){n=O("form"),r=O("p"),s=D("Import:\n "),l=O("input"),i=A(),c=O("input"),u=A(),d=O("p"),d.textContent="Please only upload genuine backups, as there is no schema checking currently.",R(l,"id","upload"),R(l,"type","file"),R(l,"accept","application/json,*.json"),R(l,"name","files"),R(l,"size","30"),l.disabled=t[7],R(l,"class","svelte-ovxj9s"),R(c,"type","submit"),c.value="Go",R(c,"class","submit svelte-ovxj9s"),c.disabled=a=void 0===t[6]||t[7],R(r,"class","svelte-ovxj9s"),R(d,"class","small svelte-ovxj9s"),R(n,"class","form svelte-ovxj9s"),R(n,"enctype","multipart/form-data")},m(e,o){S(e,n,o),x(n,r),x(r,s),x(r,l),x(r,i),x(r,c),x(n,u),x(n,d),p||(f=[N(l,"change",t[25]),N(n,"submit",F(t[26]))],p=!0)},p(e,t){128&t&&(l.disabled=e[7]),192&t&&a!==(a=void 0===e[6]||e[7])&&(c.disabled=a)},i:e,o:e,d(e){e&&C(n),p=!1,o(f)}}}function Hl(t){let n,r,s,l,i,c,a,u,d,p,f,h;return{c(){n=O("form"),r=O("p"),r.textContent="Enter list of URLs:",s=A(),l=O("textarea"),i=A(),c=O("p"),c.textContent="One URL per line",a=A(),u=O("p"),d=O("input"),R(r,"class","svelte-ovxj9s"),R(l,"rows","5"),R(l,"placeholder",t[10]),l.disabled=t[7],R(l,"class","svelte-ovxj9s"),R(c,"class","small svelte-ovxj9s"),R(d,"type","submit"),d.value="Go",R(d,"class","submit svelte-ovxj9s"),d.disabled=p=void 0===t[4]||!t[4].trim().length||t[7],R(u,"class","svelte-ovxj9s"),R(n,"class","form svelte-ovxj9s")},m(e,o){S(e,n,o),x(n,r),x(n,s),x(n,l),I(l,t[4]),x(n,i),x(n,c),x(n,a),x(n,u),x(u,d),f||(h=[N(l,"input",t[23]),N(n,"submit",F(t[24]))],f=!0)},p(e,t){128&t&&(l.disabled=e[7]),16&t&&I(l,e[4]),144&t&&p!==(p=void 0===e[4]||!e[4].trim().length||e[7])&&(d.disabled=p)},i:e,o:e,d(e){e&&C(n),f=!1,o(h)}}}function zl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y=void 0!==e[0]&&!e[0].trim().length,w=e[3]&&Bl(e),k=y&&Yl(),E=e[3]&&Kl();return{c(){t=O("form"),n=O("p"),r=D("Search:\n "),s=O("input"),l=A(),i=O("input"),a=A(),w&&w.c(),u=A(),k&&k.c(),d=A(),p=O("div"),E&&E.c(),f=A(),h=O("p"),h.textContent="You can:",m=A(),g=O("ul"),g.innerHTML='
  • Search for a series title on the r/HFY wiki
  • \n
  • Enter a series link to the r/HFY wiki
  • \n
  • Enter a link to any reddit post, or other link (see CORS)
  • ',R(s,"class","search svelte-ovxj9s"),R(s,"placeholder","Search or URL..."),s.disabled=e[7],R(i,"type","submit"),i.value="Go",R(i,"class","submit svelte-ovxj9s"),i.disabled=c=void 0===e[0]||!e[0].trim().length||e[7],R(n,"class","svelte-ovxj9s"),R(t,"class","form svelte-ovxj9s"),R(h,"class","spaceabove svelte-ovxj9s"),R(p,"class","overlay-wrapper svelte-ovxj9s")},m(o,c){S(o,t,c),x(t,n),x(n,r),x(n,s),I(s,e[0]),x(n,l),x(n,i),x(t,a),w&&w.m(t,null),e[22](t),S(o,u,c),k&&k.m(o,c),S(o,d,c),S(o,p,c),E&&E.m(p,null),x(p,f),x(p,h),x(p,m),x(p,g),v=!0,$||(b=[N(s,"input",e[19]),N(s,"keyup",e[13]),N(s,"blur",e[11]),N(s,"click",e[13]),N(t,"submit",F(e[21]))],$=!0)},p(e,n){(!v||128&n)&&(s.disabled=e[7]),1&n&&s.value!==e[0]&&I(s,e[0]),(!v||129&n&&c!==(c=void 0===e[0]||!e[0].trim().length||e[7]))&&(i.disabled=c),e[3]?w?w.p(e,n):(w=Bl(e),w.c(),w.m(t,null)):w&&(w.d(1),w=null),1&n&&(y=void 0!==e[0]&&!e[0].trim().length),y?k||(k=Yl(),k.c(),k.m(d.parentNode,d)):k&&(k.d(1),k=null),e[3]?E?8&n&&he(E,1):(E=Kl(),E.c(),he(E,1),E.m(p,f)):E&&(pe(),me(E,1,1,(()=>{E=null})),fe())},i(e){v||(he(E),v=!0)},o(e){me(E),v=!1},d(n){n&&C(t),w&&w.d(),e[22](null),n&&C(u),k&&k.d(n),n&&C(d),n&&C(p),E&&E.d(),$=!1,o(b)}}}function Bl(e){let t,n,r={ctx:e,current:null,token:null,hasCatch:!1,pending:Xl,then:ql,catch:Gl,value:27};return $e(n=e[12](e[9],e[0]),r),{c(){t=_(),r.block.c()},m(e,n){S(e,t,n),r.block.m(e,r.anchor=n),r.mount=()=>t.parentNode,r.anchor=t},p(t,o){e=t,r.ctx=e,513&o&&n!==(n=e[12](e[9],e[0]))&&$e(n,r)||be(r,e,o)},d(e){e&&C(t),r.block.d(e),r.token=null,r=null}}}function Gl(t){return{c:e,m:e,p:e,d:e}}function ql(e){let t,n=e[27],r=[];for(let t=0;t{n||(n=ve(t,ps,{duration:100},!0)),n.run(1)})),r=!0)},o(e){n||(n=ve(t,ps,{duration:100},!1)),n.run(0),r=!1},d(e){e&&C(t),e&&n&&n.end()}}}function Vl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y;const w=[zl,Hl,Pl],k=[];function E(e,t){return e[5]==e[2].Search?0:e[5]==e[2].List?1:e[5]==e[2].Import?2:-1}return~(g=E(e))&&(v=k[g]=w[g](e)),{c(){t=O("div"),n=O("label"),r=O("input"),s=D("Search"),l=A(),i=O("label"),c=O("input"),a=D("URLs"),u=A(),d=O("label"),p=O("input"),f=D("Import"),h=A(),m=O("div"),v&&v.c(),R(r,"type","radio"),R(r,"name","mode"),r.__value="search",r.value=r.__value,R(r,"class","svelte-ovxj9s"),e[16][0].push(r),R(n,"class","svelte-ovxj9s"),M(n,"selected",e[5]==e[2].Search),R(c,"type","radio"),R(c,"name","mode"),c.__value="list",c.value=c.__value,R(c,"class","svelte-ovxj9s"),e[16][0].push(c),R(i,"class","svelte-ovxj9s"),M(i,"selected",e[5]==e[2].List),R(p,"type","radio"),R(p,"name","mode"),p.__value="import",p.value=p.__value,R(p,"class","svelte-ovxj9s"),e[16][0].push(p),R(d,"class","svelte-ovxj9s"),M(d,"selected",e[5]==e[2].Import),R(t,"class","mode-select svelte-ovxj9s"),R(m,"class","mode svelte-ovxj9s")},m(o,v){S(o,t,v),x(t,n),x(n,r),r.checked=r.__value===e[5],x(n,s),x(t,l),x(t,i),x(i,c),c.checked=c.__value===e[5],x(i,a),x(t,u),x(t,d),x(d,p),p.checked=p.__value===e[5],x(d,f),S(o,h,v),S(o,m,v),~g&&k[g].m(m,null),$=!0,b||(y=[N(r,"change",e[15]),N(c,"change",e[17]),N(p,"change",e[18])],b=!0)},p(e,[t]){32&t&&(r.checked=r.__value===e[5]),36&t&&M(n,"selected",e[5]==e[2].Search),32&t&&(c.checked=c.__value===e[5]),36&t&&M(i,"selected",e[5]==e[2].List),32&t&&(p.checked=p.__value===e[5]),36&t&&M(d,"selected",e[5]==e[2].Import);let o=g;g=E(e),g===o?~g&&k[g].p(e,t):(v&&(pe(),me(k[o],1,1,(()=>{k[o]=null})),fe()),~g?(v=k[g],v?v.p(e,t):(v=k[g]=w[g](e),v.c()),he(v,1),v.m(m,null)):v=null)},i(e){$||(he(v),$=!0)},o(e){me(v),$=!1},d(n){n&&C(t),e[16][0].splice(e[16][0].indexOf(r),1),e[16][0].splice(e[16][0].indexOf(c),1),e[16][0].splice(e[16][0].indexOf(p),1),n&&C(h),n&&C(m),~g&&k[g].d(),b=!1,o(y)}}}function Jl(e,t,n){let{stage:r}=t,{search:o}=t;var s;let l;!function(e){e.Search="search",e.List="list",e.Import="import"}(s||(s={}));let i,c,a,u=!1,d=s.Search,p=!1;const f=()=>{n(9,l=l||Mt().finally(f)),n(3,u=!!l&&!!o)},h=async()=>{n(7,p=!0);const e=new FileReader,t=new Promise(((t,n)=>{e.onload=t,e.onerror=n}));return e.readAsText(c),await t,n(7,p=!1),JSON.parse(e.result)};return e.$$set=e=>{"stage"in e&&n(1,r=e.stage),"search"in e&&n(0,o=e.search)},[o,r,s,u,i,d,c,p,a,l,"https://example.com/chapter1\nhttps://example.com/chapter2",e=>n(3,u=!!a&&a.contains(e.relatedTarget)),async(e,t)=>{if(!e)return[];const r=await e,o=t.toLowerCase(),s=r.filter((e=>-1!==e.title.toLowerCase().indexOf(o)));return s.length||n(3,u=!1),s},f,h,function(){d=this.__value,n(5,d)},[[]],function(){d=this.__value,n(5,d)},function(){d=this.__value,n(5,d)},function(){o=this.value,n(0,o)},e=>r.next(e.url),()=>r.next(o||""),function(e){J[e?"unshift":"push"]((()=>{a=e,n(8,a)}))},function(){i=this.value,n(4,i)},()=>r.fromList(i||""),e=>n(6,c=e.currentTarget.files[0]),async()=>r.fromJSON(await h())]}const Zl=class extends Le{constructor(e){super(),Oe(this,e,Jl,Vl,l,{stage:1,search:0})}};function Ql(t){let n,r,o,s;return{c(){n=L("svg"),r=L("g"),o=L("path"),s=L("path"),R(o,"d","M173.145,73.91c-0.413-2.722-2.29-4.993-4.881-5.912l-13.727-4.881c-0.812-2.3-1.733-4.536-2.754-6.699l6.247-13.146\n\t\tc1.179-2.479,0.899-5.411-0.729-7.628c-5.265-7.161-11.556-13.452-18.698-18.693c-2.219-1.629-5.141-1.906-7.625-0.724\n\t\tl-13.138,6.242c-2.163-1.021-4.402-1.94-6.704-2.752l-4.883-13.729c-0.919-2.586-3.184-4.458-5.9-4.876\n\t\tc-9.65-1.483-16.792-1.483-26.457,0c-2.713,0.418-4.981,2.29-5.9,4.876l-4.883,13.729c-2.302,0.812-4.541,1.731-6.702,2.752\n\t\tl-13.143-6.242c-2.479-1.181-5.406-0.904-7.623,0.724c-7.142,5.241-13.433,11.532-18.698,18.693\n\t\tc-1.629,2.217-1.908,5.148-0.729,7.628l6.247,13.146c-1.021,2.159-1.94,4.4-2.754,6.699L5.982,68.003\n\t\tc-2.589,0.919-4.463,3.189-4.879,5.907c-0.749,4.92-1.099,9.115-1.099,13.219c0,4.098,0.35,8.299,1.099,13.219\n\t\tc0.413,2.722,2.29,4.993,4.881,5.912l13.727,4.881c0.814,2.304,1.736,4.541,2.754,6.704l-6.247,13.141\n\t\tc-1.179,2.479-0.899,5.411,0.727,7.623c5.258,7.156,11.549,13.447,18.7,18.698c2.217,1.629,5.144,1.911,7.625,0.724l13.138-6.242\n\t\tc2.163,1.021,4.402,1.94,6.704,2.752l4.883,13.729c0.919,2.586,3.184,4.458,5.9,4.876c4.828,0.744,9.154,1.104,13.228,1.104\n\t\tc4.074,0,8.401-0.36,13.228-1.104c2.715-0.418,4.981-2.29,5.9-4.876l4.883-13.729c2.302-0.812,4.541-1.731,6.704-2.752\n\t\tl13.138,6.242c2.484,1.186,5.411,0.904,7.628-0.724c7.159-5.26,13.45-11.551,18.698-18.698c1.626-2.212,1.906-5.144,0.727-7.623\n\t\tl-6.247-13.141c1.021-2.163,1.942-4.405,2.754-6.704l13.727-4.881c2.591-0.919,4.468-3.189,4.881-5.912\n\t\tc0.749-4.92,1.099-9.12,1.099-13.219S173.894,78.829,173.145,73.91z M158.949,93.72l-12.878,4.58\n\t\tc-2.251,0.797-3.982,2.625-4.66,4.92c-1.15,3.889-2.664,7.569-4.504,10.943c-1.142,2.1-1.213,4.619-0.187,6.777l5.841,12.285\n\t\tc-2.822,3.389-5.943,6.515-9.337,9.334l-12.283-5.834c-2.161-1.036-4.672-0.953-6.775,0.185c-3.379,1.838-7.061,3.35-10.953,4.502\n\t\tc-2.29,0.676-4.118,2.406-4.917,4.657l-4.582,12.883c-4.677,0.476-8.503,0.476-13.18,0l-4.582-12.883\n\t\tc-0.8-2.246-2.628-3.982-4.917-4.657c-3.894-1.152-7.579-2.664-10.953-4.502c-2.103-1.147-4.619-1.22-6.775-0.185l-12.283,5.839\n\t\tc-3.391-2.825-6.512-5.946-9.337-9.339l5.841-12.285c1.026-2.159,0.955-4.677-0.187-6.777c-1.835-3.364-3.35-7.049-4.504-10.948\n\t\tc-0.678-2.29-2.411-4.118-4.66-4.915l-12.878-4.58c-0.243-2.343-0.36-4.502-0.36-6.592s0.117-4.244,0.36-6.587l12.881-4.584\n\t\tc2.248-0.797,3.979-2.625,4.657-4.915c1.152-3.889,2.667-7.574,4.504-10.953c1.142-2.095,1.213-4.619,0.187-6.772l-5.841-12.285\n\t\tc2.827-3.393,5.948-6.519,9.337-9.339l12.288,5.839c2.151,1.036,4.677,0.953,6.775-0.185c3.372-1.838,7.054-3.35,10.948-4.502\n\t\tc2.29-0.676,4.118-2.411,4.917-4.657l4.582-12.883c4.633-0.481,8.466-0.481,13.18,0l4.582,12.883\n\t\tc0.8,2.246,2.628,3.982,4.917,4.657c3.894,1.152,7.579,2.664,10.953,4.502c2.103,1.147,4.614,1.22,6.775,0.185l12.283-5.839\n\t\tc3.389,2.82,6.51,5.946,9.337,9.339l-5.841,12.285c-1.026,2.154-0.955,4.677,0.187,6.772c1.843,3.389,3.357,7.069,4.504,10.948\n\t\tc0.678,2.295,2.409,4.123,4.66,4.92l12.878,4.58c0.243,2.343,0.36,4.502,0.36,6.592S159.192,91.377,158.949,93.72z"),R(s,"d","M87.124,50.802c-19.062,0-34.571,15.508-34.571,34.571s15.508,34.571,34.571,34.571s34.571-15.508,34.571-34.571\n\t\tS106.186,50.802,87.124,50.802z M87.124,105.009c-10.827,0-19.636-8.809-19.636-19.636s8.809-19.636,19.636-19.636\n\t\ts19.636,8.809,19.636,19.636S97.951,105.009,87.124,105.009z"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 174.248 174.248"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r),x(r,o),x(r,s)},p:e,i:e,o:e,d(e){e&&C(n)}}}const ei=class extends Le{constructor(e){super(),Oe(this,e,null,Ql,l,{})}};function ti(e){let t,n;const r=e[1].default,o=u(r,e,e[0],null);return{c(){t=O("p"),o&&o.c(),R(t,"class","info alert svelte-1mwdlru")},m(e,r){S(e,t,r),o&&o.m(t,null),n=!0},p(e,[t]){o&&o.p&&(!n||1&t)&&f(o,r,e,e[0],n?p(r,e[0],t,null):h(e[0]),null)},i(e){n||(he(o,e),n=!0)},o(e){me(o,e),n=!1},d(e){e&&C(t),o&&o.d(e)}}}function ni(e,t,n){let{$$slots:r={},$$scope:o}=t;return e.$$set=e=>{"$$scope"in e&&n(0,o=e.$$scope)},[o,r]}const ri=class extends Le{constructor(e){super(),Oe(this,e,ni,ti,l,{})}};function oi(t){let n,r,o;return{c(){n=D("Due to "),r=O("a"),r.textContent="recent API changes on reddit",o=D(', creating ebooks has become limited. If you run into a "Too many requests" error, please wait 10 minutes before trying again.'),R(r,"href","https://www.redditinc.com/blog/apifacts"),R(r,"target","_blank"),R(r,"class","svelte-ntsh7z")},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t)},p:e,d(e){e&&C(n),e&&C(r),e&&C(o)}}}function si(t){let n,r,o,s,l;return{c(){n=D("When generating an ebook via URL, please be aware of "),r=O("code"),r.textContent="NetworkError",o=D("s, see "),s=O("a"),s.textContent="CORS",l=D("."),R(r,"class","svelte-ntsh7z"),R(s,"href","https://github.com/cpiber/hfy-epub/blob/master/docs/other/cors.md"),R(s,"target","_blank"),R(s,"class","svelte-ntsh7z")},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t),S(e,s,t),S(e,l,t)},p:e,d(e){e&&C(n),e&&C(r),e&&C(o),e&&C(s),e&&C(l)}}}function li(e){let t,n,r,o,s,l,i;return o=new ri({props:{$$slots:{default:[oi]},$$scope:{ctx:e}}}),l=new ri({props:{$$slots:{default:[si]},$$scope:{ctx:e}}}),{c(){t=O("header"),n=O("h1"),n.innerHTML='r/HFY epub generator Help',r=A(),Se(o.$$.fragment),s=A(),Se(l.$$.fragment),R(n,"class","svelte-ntsh7z"),R(t,"class","svelte-ntsh7z")},m(e,c){S(e,t,c),x(t,n),x(t,r),Ce(o,t,null),x(t,s),Ce(l,t,null),i=!0},p(e,[t]){const n={};1&t&&(n.$$scope={dirty:t,ctx:e}),o.$set(n);const r={};1&t&&(r.$$scope={dirty:t,ctx:e}),l.$set(r)},i(e){i||(he(o.$$.fragment,e),he(l.$$.fragment,e),i=!0)},o(e){me(o.$$.fragment,e),me(l.$$.fragment,e),i=!1},d(e){e&&C(t),Te(o),Te(l)}}}const ii=class extends Le{constructor(e){super(),Oe(this,e,null,li,l,{})}};function ci(t){let n,r,o,s,l,i,c,a;return{c(){n=O("p"),r=D("This website ("),o=O("a"),o.textContent="https://cpiber.github.io/hfy-epub",s=D(") does not, and will not, collect any data from its users.\n Any actions taken on this page are purely in the user's browser; there is no server-side component.\n No data is ever sent away.\n For collecting the chapter data, this site contacts "),l=O("code"),l.textContent="www.reddit.com",i=D(" only. The book is generated in the browser."),R(o,"href","https://cpiber.github.io/hfy-epub"),R(o,"target","_blank"),R(n,"class","small svelte-1f8pws6")},m(e,t){S(e,n,t),x(n,r),x(n,o),x(n,s),x(n,l),x(n,i),a=!0},p:e,i(e){a||(ne((()=>{c||(c=ve(n,Ft,{},!0)),c.run(1)})),a=!0)},o(e){c||(c=ve(n,Ft,{},!1)),c.run(0),a=!1},d(e){e&&C(n),e&&c&&c.end()}}}function ai(e){let t,n,r,o,s;return{c(){t=O("label"),n=O("input"),r=D(" Use TinyMCE chapter editor"),R(n,"type","checkbox"),R(n,"aria-label","use TinyMCE editor"),R(n,"class","svelte-1f8pws6"),R(t,"class","small svelte-1f8pws6")},m(l,i){S(l,t,i),x(t,n),n.checked=e[2].useTiny,x(t,r),o||(s=N(n,"change",e[4]),o=!0)},p(e,t){4&t&&(n.checked=e[2].useTiny)},d(e){e&&C(t),o=!1,s()}}}function ui(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v=!vn(e[1].stage,tn.SETTINGS),$=e[0]&&ci(),b=v&&ai(e);return{c(){t=O("footer"),n=O("p"),r=D("Made by "),o=O("a"),o.textContent="@cpiber",s=D(".\n Source Code & bug tracker: "),l=O("a"),l.textContent="cpiber/hfy-epub",i=D(".\n \n Version "),c=D("0.3.0"),a=D(".\n "),u=O("a"),u.textContent="Privacy",d=D("."),p=A(),$&&$.c(),f=A(),b&&b.c(),R(o,"href","https://github.com/cpiber"),R(o,"target","_blank"),R(l,"href","https://github.com/cpiber/hfy-epub"),R(l,"target","_blank"),R(u,"href","#privacy"),R(n,"class","small svelte-1f8pws6"),R(t,"class","svelte-1f8pws6")},m(v,y){S(v,t,y),x(t,n),x(n,r),x(n,o),x(n,s),x(n,l),x(n,i),x(n,c),x(n,a),x(n,u),x(n,d),x(t,p),$&&$.m(t,null),x(t,f),b&&b.m(t,null),h=!0,m||(g=N(u,"click",F(e[3])),m=!0)},p(e,[n]){e[0]?$?($.p(e,n),1&n&&he($,1)):($=ci(),$.c(),he($,1),$.m(t,f)):$&&(pe(),me($,1,1,(()=>{$=null})),fe()),2&n&&(v=!vn(e[1].stage,tn.SETTINGS)),v?b?b.p(e,n):(b=ai(e),b.c(),b.m(t,null)):b&&(b.d(1),b=null)},i(e){h||(he($),h=!0)},o(e){me($),h=!1},d(e){e&&C(t),$&&$.d(),b&&b.d(),m=!1,g()}}}function di(e,t,n){let r,o;a(e,$n,(e=>n(1,r=e))),a(e,Be,(e=>n(2,o=e)));let s=!1;return[s,r,o,()=>n(0,s=!s),function(){o.useTiny=this.checked,Be.set(o)}]}const pi=class extends Le{constructor(e){super(),Oe(this,e,di,ui,l,{})}};function fi(t){let n,r,o,s,l,i;return r=new ks({}),{c(){n=O("a"),Se(r.$$.fragment),o=D(" home"),R(n,"href","#home"),R(n,"class","homelink svelte-ibaoy7")},m(e,c){S(e,n,c),Ce(r,n,null),x(n,o),s=!0,l||(i=N(n,"click",F(t[6])),l=!0)},p:e,i(e){s||(he(r.$$.fragment,e),s=!0)},o(e){me(r.$$.fragment,e),s=!1},d(e){e&&C(n),Te(r),l=!1,i()}}}function hi(t){let n,r,o,s,l;return r=new ei({}),{c(){n=O("a"),Se(r.$$.fragment),R(n,"href","#settings"),R(n,"class","settingslink svelte-ibaoy7")},m(e,i){S(e,n,i),Ce(r,n,null),o=!0,s||(l=N(n,"click",F(t[3])),s=!0)},p:e,i(e){o||(he(r.$$.fragment,e),o=!0)},o(e){me(r.$$.fragment,e),o=!1},d(e){e&&C(n),Te(r),s=!1,l()}}}function mi(t){let n,r,o,s,l,i;return r=new ks({}),{c(){n=O("a"),Se(r.$$.fragment),o=D(" back"),R(n,"href","#home"),R(n,"class","homelink svelte-ibaoy7")},m(e,c){S(e,n,c),Ce(r,n,null),x(n,o),s=!0,l||(i=N(n,"click",F(t[7])),l=!0)},p:e,i(e){s||(he(r.$$.fragment,e),s=!0)},o(e){me(r.$$.fragment,e),s=!1},d(e){e&&C(n),Te(r),l=!1,i()}}}function gi(t){let n,r,o;return{c(){n=O("h2"),n.textContent="Page not found",r=A(),o=O("p"),o.textContent="Sorry, the requested page could not be found"},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t)},p:e,i:e,o:e,d(e){e&&C(n),e&&C(r),e&&C(o)}}}function vi(t){let n,r;return n=new it({}),{c(){Se(n.$$.fragment)},m(e,t){Ce(n,e,t),r=!0},p:e,i(e){r||(he(n.$$.fragment,e),r=!0)},o(e){me(n.$$.fragment,e),r=!1},d(e){Te(n,e)}}}function $i(e){let t,n;return t=new jn({props:{stage:e[0],backToSearch:e[2]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),4&n&&(r.backToSearch=e[2]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function bi(e){let t,n;return t=new Qn({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function yi(e){let t,n;return t=new cr({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function wi(e){let t,n;return t=new dl({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function xi(e){let t,n;return t=new Ol({props:{stage:e[0],series:e[1].series,backToSearch:e[2]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.series=e[1].series),4&n&&(r.backToSearch=e[2]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function ki(e){let t,n;return t=new Il({props:{stage:e[0],search:e[1].search}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.search=e[1].search),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Ei(e){let t,n;return t=new Zl({props:{stage:e[0],search:e[1].search}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.search=e[1].search),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Si(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k,E,T,L=!vn(e[0],tn.INPUT)&&!vn(e[0],tn.SETTINGS),D=L&&fi(e);const _=[mi,hi],N=[];function F(e,t){return 1&t&&(o=null),null==o&&(o=!!vn(e[0],tn.SETTINGS)),o?0:1}s=F(e,-1),l=N[s]=_[s](e),c=new ii({});const j=[Ei,ki,xi,wi,yi,bi,$i,vi,gi],U=[];function I(e,t){return 1&t&&(d=null),1&t&&(p=null),1&t&&(f=null),1&t&&(h=null),1&t&&(m=null),1&t&&(g=null),1&t&&(v=null),1&t&&($=null),1&t&&(b=null),null==d&&(d=!!vn(e[0],tn.INPUT)),d?0:(null==p&&(p=!!vn(e[0],tn.SEARCH)),p?1:(null==f&&(f=!!vn(e[0],tn.BOOK_DATA)),f?2:(null==h&&(h=!!vn(e[0],tn.EDIT_DATA)),h?3:(null==m&&(m=!!vn(e[0],tn.FIND_CHAPTERS)),m?4:(null==g&&(g=!!vn(e[0],tn.DOWNLOAD_CHAPTERS)),g?5:(null==v&&(v=!!vn(e[0],tn.RESULT)),v?6:(null==$&&($=!!vn(e[0],tn.SETTINGS)),$?7:(null==b&&(b=!!vn(e[0],tn._404)),b?8:-1))))))))}return~(y=I(e,-1))&&(w=U[y]=j[y](e)),E=new pi({}),{c(){t=O("div"),n=O("nav"),D&&D.c(),r=A(),l.c(),i=A(),Se(c.$$.fragment),a=A(),u=O("main"),w&&w.c(),k=A(),Se(E.$$.fragment),R(n,"class","mainnav svelte-ibaoy7"),R(u,"class","App-main"),R(t,"class","App svelte-ibaoy7")},m(e,o){S(e,t,o),x(t,n),D&&D.m(n,null),x(n,r),N[s].m(n,null),x(t,i),Ce(c,t,null),x(t,a),x(t,u),~y&&U[y].m(u,null),x(t,k),Ce(E,t,null),T=!0},p(e,[t]){1&t&&(L=!vn(e[0],tn.INPUT)&&!vn(e[0],tn.SETTINGS)),L?D?(D.p(e,t),1&t&&he(D,1)):(D=fi(e),D.c(),he(D,1),D.m(n,r)):D&&(pe(),me(D,1,1,(()=>{D=null})),fe());let o=s;s=F(e,t),s===o?N[s].p(e,t):(pe(),me(N[o],1,1,(()=>{N[o]=null})),fe(),l=N[s],l?l.p(e,t):(l=N[s]=_[s](e),l.c()),he(l,1),l.m(n,null));let i=y;y=I(e,t),y===i?~y&&U[y].p(e,t):(w&&(pe(),me(U[i],1,1,(()=>{U[i]=null})),fe()),~y?(w=U[y],w?w.p(e,t):(w=U[y]=j[y](e),w.c()),he(w,1),w.m(u,null)):w=null)},i(e){T||(he(D),he(l),he(c.$$.fragment,e),he(w),he(E.$$.fragment,e),T=!0)},o(e){me(D),me(l),me(c.$$.fragment,e),me(w),me(E.$$.fragment,e),T=!1},d(e){e&&C(t),D&&D.d(),N[s].d(),Te(c),~y&&U[y].d(),Te(E)}}}function Ci(e,t,n){let r,o,s,l,i;return a(e,bn,(e=>n(4,s=e))),a(e,$n,(e=>n(1,l=e))),a(e,Be,(e=>n(5,i=e))),e.$$.update=()=>{if(2&e.$$.dirty&&n(0,r=l.stage),1&e.$$.dirty&&n(2,o=vn(r.from,tn.SEARCH)?()=>hn(sn):void 0),e.$$.dirty,e.$$.dirty,e.$$.dirty,32&e.$$.dirty&&localStorage.setItem("config",JSON.stringify(i)),2&e.$$.dirty&&localStorage.setItem("state",JSON.stringify({data:l.stage.dump(),search:l.search,series:l.series})),16&e.$$.dirty)try{localStorage.setItem("book",JSON.stringify(s))}catch(e){localStorage.removeItem("book"),console.error("Data too large! Caution, reloading won't work as expected!")}},[r,l,o,()=>{r.needsSaving&&!confirm("Unsaved changes. Continue?")||hn(pn)},s,i,()=>hn(on),()=>r.next()]}(()=>{try{const e=JSON.parse(localStorage.getItem("config"));Be.set((e=>{if(!e||""+e!="[object Object]")return ze;const t=Object.keys(e),n=Object.keys(ze);for(const r of n)t.includes(r)||(e[r]=ze[r]),typeof ze[r]!=typeof e[r]&&(e[r]=ze[r]);return e})(e))}catch(e){}})(),(()=>{try{const e=JSON.parse(localStorage.getItem("book"));bn.update((()=>e))}catch(e){}})(),window.removeEventListener("popstate",wn),window.addEventListener("popstate",wn),wn();const Ti=class extends Le{constructor(e){super(),Oe(this,e,Ci,Si,l,{})}};let Oi;try{Oi=new Ti({target:document.body})}catch(e){const t=document.createElement("div");t.className="fatal-error",t.ariaLabel="error",t.appendChild(document.createElement("h1")).textContent="Something went wrong:",t.appendChild(document.createElement("code")).textContent=e,document.body.appendChild(t)}})(),c=i.O(c)})(); \ No newline at end of file diff --git a/main-b63a21e0fc9f6ec2226b.css b/main-b63a21e0fc9f6ec2226b.css new file mode 100644 index 0000000..b6a1829 --- /dev/null +++ b/main-b63a21e0fc9f6ec2226b.css @@ -0,0 +1,47 @@ +.column-card.svelte-12n6e3q{padding:10px 18px;border:1px dashed lightgray;border-radius:8px;display:grid;grid-template-columns:150px auto;grid-gap:10px;gap:10px;align-items:baseline + }@media screen and (max-width: 600px){.column-card.svelte-12n6e3q{grid-template-columns:100%;padding:6px 8px}.column-card.svelte-12n6e3q>p:not(:last-child){margin-bottom:1em}}@media screen and (max-width: 400px){.column-card.svelte-12n6e3q{margin:0 -5px + }}.column-card.svelte-12n6e3q>*{margin:0} +@keyframes svelte-1tapr9t-slide{0%{left:0}100%{left:1em}}label.svelte-1tapr9t{display:block} +@keyframes svelte-5v9ihf-slide{0%{left:0}100%{left:1em}}.warning.svelte-5v9ihf.svelte-5v9ihf{color:#f2b400 + }.warning.svelte-5v9ihf.svelte-5v9ihf::before{content:'\26a0';margin-right:0.5em}.field.svelte-5v9ihf.svelte-5v9ihf{display:block;padding-top:0.7em}.field.svelte-5v9ihf input.svelte-5v9ihf:not([type="checkbox"]),.field.svelte-5v9ihf textarea.svelte-5v9ihf{display:block;width:100%;max-width:100%;box-sizing:border-box}.small.svelte-5v9ihf.svelte-5v9ihf{font-size:0.8em}.settings.svelte-5v9ihf.svelte-5v9ihf{margin:1em 0}.error.svelte-5v9ihf.svelte-5v9ihf{color:#e32636} +@keyframes svelte-m4i2yw-slide{0%{left:0}100%{left:1em}}.error.svelte-m4i2yw{color:#e32636 + }.error.svelte-m4i2yw::before{content:'\26a0';margin-right:0.5em}.error.svelte-m4i2yw{display:block;margin:0.2em 0} +@keyframes svelte-w1n7v1-slide{0%{left:0}100%{left:1em}}.loading.svelte-w1n7v1{font-style:italic;margin:0}.loading-container.svelte-w1n7v1{display:flex;grid-gap:10px;gap:10px}.loading-slider.svelte-w1n7v1{position:absolute;display:block;animation:0.7s ease-in-out infinite alternate svelte-w1n7v1-slide}.loading-slider-container.svelte-w1n7v1{position:relative;flex:0 0 2em} +@keyframes svelte-ardw9p-slide{0%{left:0}100%{left:1em}}.valid.svelte-ardw9p.svelte-ardw9p{color:#34b334 + }.valid.svelte-ardw9p.svelte-ardw9p::before{content:'\1f44d';margin-right:0.5em}.warning.svelte-ardw9p.svelte-ardw9p{color:#f2b400 + }.warning.svelte-ardw9p.svelte-ardw9p::before{content:'\26a0';margin-right:0.5em}.logs.svelte-ardw9p.svelte-ardw9p{margin:1em 0}.logs.svelte-ardw9p p.svelte-ardw9p{margin:0} +@keyframes svelte-1rrnlr6-slide{0%{left:0}100%{left:1em}}.valid.svelte-1rrnlr6.svelte-1rrnlr6{color:#34b334 + }.valid.svelte-1rrnlr6.svelte-1rrnlr6::before{content:'\1f44d';margin-right:0.5em}.chapters.svelte-1rrnlr6.svelte-1rrnlr6{margin:1em 0}.chapters.svelte-1rrnlr6 p.svelte-1rrnlr6{margin:0} +@keyframes svelte-tsai6h-slide{0%{left:0}100%{left:1em}}.valid.svelte-tsai6h{color:#34b334 + }.valid.svelte-tsai6h::before{content:'\1f44d';margin-right:0.5em} +.controls.svelte-1ahjj8t svg{height:0.8em}.control-disabled.svelte-1ahjj8t{opacity:0.7;cursor:inherit}.up.svelte-1ahjj8t{display:inline-flex;align-items:baseline;grid-gap:2px;gap:2px;padding:2px 5px;background-color:lightgray;border:1px dotted gray;border-radius:4px;text-decoration:none}.up.svelte-1ahjj8t:hover{border:1px solid gray}.down.svelte-1ahjj8t{display:inline-flex;align-items:baseline;grid-gap:2px;gap:2px;padding:2px 5px;background-color:lightgray;border:1px dotted gray;border-radius:4px;text-decoration:none}.down.svelte-1ahjj8t:hover{border:1px solid gray}.down.svelte-1ahjj8t svg{transform:rotate(180deg);margin:auto 0}.remove.svelte-1ahjj8t{color:#e32636 + }.remove.svelte-1ahjj8t:hover{color:hsl(354.92063492063494, 77.1428571429%, 31.9607843137%)} +:first-child>.chapter.svelte-13pfiuq.svelte-13pfiuq{border-top-left-radius:2px;border-top-right-radius:2px}:last-child>.chapter.svelte-13pfiuq.svelte-13pfiuq{border-bottom-left-radius:2px;border-bottom-right-radius:2px}:not(:first-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-top:-1px}.chapter.svelte-13pfiuq.svelte-13pfiuq{border-radius:2px}:not(:first-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-top:1em}:not(:last-child)>.chapter.svelte-13pfiuq.svelte-13pfiuq{margin-bottom:1em}.edit.svelte-13pfiuq input.svelte-13pfiuq:not([type="checkbox"]),.edit.svelte-13pfiuq textarea.svelte-13pfiuq,.edit.svelte-13pfiuq label.svelte-13pfiuq{display:block;width:100%;box-sizing:border-box}.edit.svelte-13pfiuq textarea{min-height:100px;height:350px}.edit.svelte-13pfiuq label.svelte-13pfiuq{cursor:pointer}.field.svelte-13pfiuq.svelte-13pfiuq{display:grid;grid-template-columns:min-content 1fr;grid-gap:4px;gap:4px + }@media screen and (max-width: 950px){.field.svelte-13pfiuq.svelte-13pfiuq{margin-top:0.4em}.field.svelte-13pfiuq.svelte-13pfiuq,.chapter.svelte-13pfiuq:not(.open) .field.svelte-13pfiuq{grid-template-columns:1fr}}.field.svelte-13pfiuq span.svelte-13pfiuq{margin:0.4em 1px}.field.svelte-13pfiuq .label.svelte-13pfiuq{overflow:hidden;transition:opacity 0.2s ease-in-out;opacity:1;width:60px;transition:width 0.2s ease-in-out + }.field.svelte-13pfiuq .label.svelte-13pfiuq::after{content:':'}@media screen and (max-width: 950px){.field.svelte-13pfiuq .label.svelte-13pfiuq{position:absolute;margin-top:-0.5em;padding-left:3px;font-size:0.8em;opacity:0.8 + }.field.svelte-13pfiuq .label.svelte-13pfiuq::after{content:''}}.field.svelte-13pfiuq .svelte-13pfiuq:not(.label){border-bottom:1px solid currentColor}.back.svelte-13pfiuq svg{height:0.65em}.back.svelte-13pfiuq a.svelte-13pfiuq{text-decoration:none;color:inherit + }.back.svelte-13pfiuq a.svelte-13pfiuq:hover,.back.svelte-13pfiuq a.svelte-13pfiuq:active,.back.svelte-13pfiuq a.svelte-13pfiuq:focus{text-decoration:underline}.url.svelte-13pfiuq.svelte-13pfiuq{word-break:break-word} +.chapter.svelte-1ltngm7.svelte-1ltngm7{border:1px dotted lightgray;margin:0;cursor:move + }.chapter.svelte-1ltngm7.svelte-1ltngm7:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.chapter.svelte-1ltngm7.svelte-1ltngm7:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.chapter.svelte-1ltngm7.svelte-1ltngm7:not(:first-child){margin-top:-1px}.chapter.svelte-1ltngm7 .more.svelte-1ltngm7{transition:height 0.1s ease-in-out, padding 0.1s ease-in-out;height:0;padding:0 0.5em;overflow:hidden}.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):hover .more.svelte-1ltngm7,.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):active .more.svelte-1ltngm7,.chapter.svelte-1ltngm7:not([draggable]#dnd-action-dragged-el):focus .more.svelte-1ltngm7{transition:height 0.1s ease-in-out 0.2s, padding 0.1s ease-in-out 0.2s;height:1.5em;padding:0.4em 0.5em}.preview.svelte-1ltngm7.svelte-1ltngm7{display:grid;grid-template-columns:2fr 3fr;grid-gap:5px;gap:5px;align-items:center;overflow:hidden + }.preview.empty.svelte-1ltngm7.svelte-1ltngm7{grid-template-columns:1fr}.preview.svelte-1ltngm7 .title.svelte-1ltngm7{position:relative;border-bottom:1px solid rgba(0,0,0,0)}.preview.svelte-1ltngm7 .title.svelte-1ltngm7,.preview.svelte-1ltngm7 .content.svelte-1ltngm7{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin:0.4em 0.5em}@media screen and (max-width: 950px){.preview.svelte-1ltngm7.svelte-1ltngm7{grid-template-columns:1fr}.preview.svelte-1ltngm7 .content.svelte-1ltngm7{display:none}} +.edit.svelte-1pemcjw{display:block;width:100%;box-sizing:border-box;border-bottom:1px solid currentColor} +.list.svelte-zxr0xc.svelte-zxr0xc{margin:1em 0;position:relative}.list.svelte-zxr0xc .hide.svelte-zxr0xc{display:none}.list.svelte-zxr0xc .float.svelte-zxr0xc{position:absolute;top:0;left:0;right:0;background-color:white;z-index:1}.chapters.svelte-zxr0xc.svelte-zxr0xc{position:relative + }@media(any-pointer: coarse), (any-hover: none){.chapters.svelte-zxr0xc.svelte-zxr0xc::after{content:'touch scroll area';background-color:red;opacity:0;position:absolute;top:0;bottom:0;right:0;width:35px}}nav.svelte-zxr0xc.svelte-zxr0xc{margin:8px 6px 2px;text-align:center}nav.svelte-zxr0xc a.svelte-zxr0xc{margin:0 0.2em;text-decoration:none}nav.svelte-zxr0xc a[disabled="true"].svelte-zxr0xc{opacity:0.6;pointer-events:none}nav.svelte-zxr0xc .current.svelte-zxr0xc{opacity:0.6;text-decoration:underline}.remove.svelte-zxr0xc.svelte-zxr0xc{color:#e32636 + }.remove.svelte-zxr0xc.svelte-zxr0xc:hover{color:hsl(354.92063492063494, 77.1428571429%, 31.9607843137%)} +.list.svelte-1hsynpq{margin:1em 0}.spacer.svelte-1hsynpq{display:inline-block;width:1.5em}.no-margin.svelte-1hsynpq{margin:0}.chapter-list.svelte-1hsynpq{margin-top:.5em;display:grid;grid-template-columns:1fr 1fr 1fr;grid-gap:2px 10px;gap:2px 10px + }@media screen and (max-width: 950px){.chapter-list.svelte-1hsynpq{grid-template-columns:1fr 1fr + }}@media screen and (max-width: 600px){.chapter-list.svelte-1hsynpq{grid-template-columns:1fr + }} +.form.svelte-ovxj9s p.svelte-ovxj9s{display:flex;grid-gap:6px;gap:6px;margin:0}.search.svelte-ovxj9s.svelte-ovxj9s,input[type="file"].svelte-ovxj9s.svelte-ovxj9s{width:100%;box-sizing:border-box}.submit.svelte-ovxj9s.svelte-ovxj9s{min-width:60px;flex-shrink:0}.error.svelte-ovxj9s.svelte-ovxj9s{color:#e32636}.spaceabove.svelte-ovxj9s.svelte-ovxj9s{margin-top:2em}form.svelte-ovxj9s.svelte-ovxj9s{position:relative}.search-results.svelte-ovxj9s.svelte-ovxj9s{position:absolute;left:0;right:0;background-color:white;border:1px solid black;border-radius:3px;padding:4px 8px;margin-top:-0.5em;z-index:1;max-height:15em;overflow:auto}.search-results.svelte-ovxj9s .result.svelte-ovxj9s{display:block;text-decoration:none;color:inherit;border-bottom:1px dotted transparent + }.search-results.svelte-ovxj9s .result.svelte-ovxj9s:hover,.search-results.svelte-ovxj9s .result.svelte-ovxj9s:active,.search-results.svelte-ovxj9s .result.svelte-ovxj9s:focus{border-bottom-color:gray}.overlay.svelte-ovxj9s.svelte-ovxj9s{content:'';position:absolute;background-color:white;opacity:0.6;left:0;right:0;top:0;bottom:0}.overlay-wrapper.svelte-ovxj9s.svelte-ovxj9s{position:relative}textarea.svelte-ovxj9s.svelte-ovxj9s{display:block;width:100%;max-width:100%;box-sizing:border-box}p.small.svelte-ovxj9s.svelte-ovxj9s{margin:0}.mode-select.svelte-ovxj9s input.svelte-ovxj9s{opacity:0;width:1;height:1;position:absolute;left:-10px}.mode-select.svelte-ovxj9s label.svelte-ovxj9s{display:inline-block;padding:8px;border-bottom:2px hidden black;cursor:pointer + }.mode-select.svelte-ovxj9s label.svelte-ovxj9s:hover{border-bottom-style:solid;border-bottom-color:rgba(10, 10, 10, 0.6)}.mode-select.svelte-ovxj9s label.selected.svelte-ovxj9s{border-bottom-style:solid;border-bottom-color:black}.mode.svelte-ovxj9s.svelte-ovxj9s{border:0.5px solid rgba(20, 20, 20, 0.3);padding:14px 8px} +@keyframes svelte-1mwdlru-slide{0%{left:0}100%{left:1em}}.info.svelte-1mwdlru{color:#b3e5fc + }.info.svelte-1mwdlru::before{content:'\2139';margin-right:0.5em}.alert.svelte-1mwdlru{padding:8px 16px;border-radius:6px;border:1px solid}.alert.info.svelte-1mwdlru{border-color:rgb(143, 183, 202);color:black;background-color:rgb(194, 234, 253)} +header.svelte-ntsh7z.svelte-ntsh7z{margin-bottom:2.5rem}header.svelte-ntsh7z>.svelte-ntsh7z:first-child{margin-top:0}.small.svelte-ntsh7z.svelte-ntsh7z{font-size:0.45em;vertical-align:text-top} +footer.svelte-1f8pws6.svelte-1f8pws6{margin-top:3rem}footer.svelte-1f8pws6>.svelte-1f8pws6:last-child{margin-bottom:0}input.svelte-1f8pws6.svelte-1f8pws6{height:0.9em} +h1,h2,h3,h4,h5,h6{font-weight:normal}h1{font-size:2.2rem}h2{font-size:1.5rem}html{font-family:'Lucida Sans', 'Lucida Sans Regular', 'Lucida Grande', 'Lucida Sans Unicode', Geneva, Verdana, sans-serif}body{max-width:1100px;margin:12px auto;padding:0 8px;overflow:scroll;position:relative +}@media screen and (max-width: 600px){body{padding:0 2px +}}button:not(:disabled),input[type="submit"]:not(:disabled){cursor:pointer}a,a[href^="#"],a[href^="#"]:visited{color:#0048ba}.fatal-error{color:white;background-color:red;border-radius:5px;margin:10px;padding:6px 12px}.fatal-error h1{margin-top:0}.small{font-size:0.8em}.App.svelte-ibaoy7.svelte-ibaoy7{position:relative;padding:14px 18px;border:1px solid gray;border-top:none;border-bottom:none + }@media screen and (max-width: 600px){.App.svelte-ibaoy7.svelte-ibaoy7{padding:10px + }}.mainnav.svelte-ibaoy7.svelte-ibaoy7{position:absolute;top:-0.2em;left:18px;right:18px;font-size:0.8rem;display:flex}.mainnav.svelte-ibaoy7 svg{height:0.65em}.mainnav.svelte-ibaoy7 a.svelte-ibaoy7{text-decoration:none;color:inherit + }.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:hover,.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:active,.mainnav.svelte-ibaoy7 a.svelte-ibaoy7:focus{text-decoration:underline}.mainnav.svelte-ibaoy7 .settingslink.svelte-ibaoy7{margin-left:auto}.mainnav.svelte-ibaoy7 .settingslink.svelte-ibaoy7 svg{height:1.2em} diff --git a/main-b63a21e0fc9f6ec2226b.js b/main-b63a21e0fc9f6ec2226b.js new file mode 100644 index 0000000..65fda9f --- /dev/null +++ b/main-b63a21e0fc9f6ec2226b.js @@ -0,0 +1 @@ +(()=>{var e,t,n,r,o,s={4785:function(e,t){var n,r;void 0===(r="function"==typeof(n=function(){return function e(t,n,r){var o,s,l=window,i="application/octet-stream",c=r||i,a=t,u=!n&&!r&&a,d=document.createElement("a"),p=function(e){return String(e)},f=l.Blob||l.MozBlob||l.WebKitBlob||p,h=n||"download";if(f=f.call?f.bind(l):Blob,"true"===String(this)&&(c=(a=[a,c])[0],a=a[1]),u&&u.length<2048&&(h=u.split("/").pop().split("?")[0],d.href=u,-1!==d.href.indexOf(u))){var m=new XMLHttpRequest;return m.open("GET",u,!0),m.responseType="blob",m.onload=function(t){e(t.target.response,h,i)},setTimeout((function(){m.send()}),0),m}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(a)){if(!(a.length>2096103.424&&f!==p))return navigator.msSaveBlob?navigator.msSaveBlob(b(a),h):y(a);c=(a=b(a)).type||i}else if(/([\x80-\xff])/.test(a)){for(var g=0,v=new Uint8Array(a.length),$=v.length;g<$;++g)v[g]=a.charCodeAt(g);a=new f([v],{type:c})}function b(e){for(var t=e.split(/[:;,]/),n=t[1],r=("base64"==t[2]?atob:decodeURIComponent)(t.pop()),o=r.length,s=0,l=new Uint8Array(o);s{if(!n){var s=1/0;for(u=0;u=o)&&Object.keys(i.O).every((e=>i.O[e](n[c])))?n.splice(c--,1):(l=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[n,r,o]},i.F={},i.E=e=>{Object.keys(i.F).map((t=>{i.F[t](e)}))},i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},n=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(e,r){if(1&r&&(e=this(e)),8&r)return e;if("object"==typeof e&&e){if(4&r&&e.__esModule)return e;if(16&r&&"function"==typeof e.then)return e}var o=Object.create(null);i.r(o);var s={};t=t||[null,n({}),n([]),n(n)];for(var l=2&r&&e;"object"==typeof l&&!~t.indexOf(l);l=n(l))Object.getOwnPropertyNames(l).forEach((t=>s[t]=()=>e[t]));return s.default=()=>e,i.d(o,s),o},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>e+"-"+{483:"fefd040803c093fe8d27",845:"74c785c44477a9538d2c"}[e]+".js",i.miniCssF=e=>{},i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),r={},o="hfy-epub:",i.l=(e,t,n,s)=>{if(r[e])r[e].push(t);else{var l,c;if(void 0!==n)for(var a=document.getElementsByTagName("script"),u=0;u{l.onerror=l.onload=null,clearTimeout(f);var o=r[e];if(delete r[e],l.parentNode&&l.parentNode.removeChild(l),o&&o.forEach((e=>e(n))),t)return t(n)},f=setTimeout(p.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=p.bind(null,l.onerror),l.onload=p.bind(null,l.onload),c&&document.head.appendChild(l)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),i.p="/hfy-epub/",(()=>{var e={179:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=e[t]=[n,o]));n.push(r[2]=o);var s=i.p+i.u(t),l=new Error;i.l(s,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),s=n&&n.target&&n.target.src;l.message="Loading chunk "+t+" failed.\n("+o+": "+s+")",l.name="ChunkLoadError",l.type=o,l.request=s,r[1](l)}}),"chunk-"+t,t)}},i.F.j=t=>{if(!i.o(e,t)||void 0===e[t]){e[t]=null;var n=document.createElement("link");i.nc&&n.setAttribute("nonce",i.nc),n.rel="prefetch",n.as="script",n.href=i.p+i.u(t),document.head.appendChild(n)}},i.O.j=t=>0===e[t];var t=(t,n)=>{var r,o,[s,l,c]=n,a=0;if(s.some((t=>0!==e[t]))){for(r in l)i.o(l,r)&&(i.m[r]=l[r]);if(c)var u=c(i)}for(t&&t(n);a{i.E(845),i.E(483)}),5);var c={};(()=>{"use strict";function e(){}const t=e=>e;function n(e){return e()}function r(){return Object.create(null)}function o(e){e.forEach(n)}function s(e){return"function"==typeof e}function l(e,t){return e!=e?t==t:e!==t||e&&"object"==typeof e||"function"==typeof e}function c(e){return 0===Object.keys(e).length}function a(t,n,r){t.$$.on_destroy.push(function(t,...n){if(null==t)return e;const r=t.subscribe(...n);return r.unsubscribe?()=>r.unsubscribe():r}(n,r))}function u(e,t,n,r){if(e){const o=d(e,t,n,r);return e[0](o)}}function d(e,t,n,r){return e[1]&&r?function(e,t){for(const n in t)e[n]=t[n];return e}(n.ctx.slice(),e[1](r(t))):n.ctx}function p(e,t,n,r){if(e[2]&&r){const o=e[2](r(n));if(void 0===t.dirty)return o;if("object"==typeof o){const e=[],n=Math.max(t.dirty.length,o.length);for(let r=0;r32){const t=[],n=e.ctx.length/32;for(let e=0;ewindow.performance.now():()=>Date.now(),$=g?e=>requestAnimationFrame(e):e;const b=new Set;function y(e){b.forEach((t=>{t.c(e)||(b.delete(t),t.f())})),0!==b.size&&$(y)}let w=!1;function x(e,t){e.appendChild(t)}function k(e){if(!e)return document;const t=e.getRootNode?e.getRootNode():e.ownerDocument;return t&&t.host?t:e.ownerDocument}function E(e){const t=O("style");return function(e,t){x(e.head||e,t)}(k(e),t),t.sheet}function S(e,t,n){e.insertBefore(t,n||null)}function C(e){e.parentNode.removeChild(e)}function T(e,t){for(let n=0;ne.removeEventListener(t,n,r)}function F(e){return function(t){return t.preventDefault(),e.call(this,t)}}function j(e){return function(t){return t.stopPropagation(),e.call(this,t)}}function R(e,t,n){null==n?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function U(e,t){t=""+t,e.wholeText!==t&&(e.data=t)}function I(e,t){e.value=null==t?"":t}function M(e,t,n){e.classList[n?"add":"remove"](t)}function P(e,t,{bubbles:n=!1,cancelable:r=!1}={}){const o=document.createEvent("CustomEvent");return o.initCustomEvent(e,n,r,t),o}const H=new Map;let z,B=0;function G(e,t,n,r,o,s,l,i=0){const c=16.666/r;let a="{\n";for(let e=0;e<=1;e+=c){const r=t+(n-t)*s(e);a+=100*e+`%{${l(r,1-r)}}\n`}const u=a+`100% {${l(n,1-n)}}\n}`,d=`__svelte_${function(e){let t=5381,n=e.length;for(;n--;)t=(t<<5)-t^e.charCodeAt(n);return t>>>0}(u)}_${i}`,p=k(e),{stylesheet:f,rules:h}=H.get(p)||function(e,t){const n={stylesheet:E(t),rules:{}};return H.set(e,n),n}(p,e);h[d]||(h[d]=!0,f.insertRule(`@keyframes ${d} ${u}`,f.cssRules.length));const m=e.style.animation||"";return e.style.animation=`${m?`${m}, `:""}${d} ${r}ms linear ${o}ms 1 both`,B+=1,d}function q(e){z=e}function W(){if(!z)throw new Error("Function called outside component initialization");return z}function X(e){W().$$.on_mount.push(e)}function Y(e){W().$$.on_destroy.push(e)}function K(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach((e=>e.call(this,t)))}const V=[],J=[],Z=[],Q=[],ee=Promise.resolve();let te=!1;function ne(e){Z.push(e)}function re(e){Q.push(e)}const oe=new Set;let se,le=0;function ie(){const e=z;do{for(;le{ue.delete(e),r&&(n&&e.d(1),r())})),e.o(t)}else r&&r()}const ge={duration:0};function ve(n,r,l,i){let c=r(n,l),a=i?0:1,u=null,d=null,p=null;function f(){p&&function(e,t){const n=(e.style.animation||"").split(", "),r=n.filter(t?e=>e.indexOf(t)<0:e=>-1===e.indexOf("__svelte")),o=n.length-r.length;o&&(e.style.animation=r.join(", "),B-=o,B||$((()=>{B||(H.forEach((e=>{const{stylesheet:t}=e;let n=t.cssRules.length;for(;n--;)t.deleteRule(n);e.rules={}})),H.clear())})))}(n,p)}function h(e,t){const n=e.b-a;return t*=Math.abs(n),{a,b:e.b,d:n,duration:t,start:e.start,end:e.start+t,group:e.group}}function m(r){const{delay:s=0,duration:l=300,easing:i=t,tick:m=e,css:g}=c||ge,w={start:v()+s,b:r};r||(w.group=de,de.r+=1),u||d?d=w:(g&&(f(),p=G(n,a,r,l,s,i,g)),r&&m(0,1),u=h(w,l),ne((()=>ae(n,r,"start"))),function(e){let t;0===b.size&&$(y),new Promise((n=>{b.add(t={c:e,f:n})}))}((e=>{if(d&&e>d.start&&(u=h(d,l),d=null,ae(n,u.b,"start"),g&&(f(),p=G(n,a,u.b,u.duration,0,i,c.css))),u)if(e>=u.end)m(a=u.b,1-a),ae(n,u.b,"end"),d||(u.b?f():--u.group.r||o(u.group.c)),u=null;else if(e>=u.start){const t=e-u.start;a=u.a+u.d*i(t/u.duration),m(a,1-a)}return!(!u&&!d)})))}return{run(e){s(c)?(se||(se=Promise.resolve(),se.then((()=>{se=null}))),se).then((()=>{c=c(),m(e)})):m(e)},end(){f(),u=d=null}}}function $e(e,t){const n=t.token={};function r(e,r,o,s){if(t.token!==n)return;t.resolved=s;let l=t.ctx;void 0!==o&&(l=l.slice(),l[o]=s);const i=e&&(t.current=e)(l);let c=!1;t.block&&(t.blocks?t.blocks.forEach(((e,n)=>{n!==r&&e&&(pe(),me(e,1,1,(()=>{t.blocks[n]===e&&(t.blocks[n]=null)})),fe())})):t.block.d(1),i.c(),he(i,1),i.m(t.mount(),t.anchor),c=!0),t.block=i,t.blocks&&(t.blocks[r]=i),c&&ie()}if((o=e)&&"object"==typeof o&&"function"==typeof o.then){const n=W();if(e.then((e=>{q(n),r(t.then,1,t.value,e),q(null)}),(e=>{if(q(n),r(t.catch,2,t.error,e),q(null),!t.hasCatch)throw e})),t.current!==t.pending)return r(t.pending,0),!0}else{if(t.current!==t.then)return r(t.then,1,t.value,e),!0;t.resolved=e}var o}function be(e,t,n){const r=t.slice(),{resolved:o}=e;e.current===e.then&&(r[e.value]=o),e.current===e.catch&&(r[e.error]=o),e.block.p(r,n)}function ye(e,t){e.d(1),t.delete(e.key)}function we(e,t){me(e,1,1,(()=>{t.delete(e.key)}))}function xe(e,t,n,r,o,s,l,i,c,a,u,d){let p=e.length,f=s.length,h=p;const m={};for(;h--;)m[e[h].key]=h;const g=[],v=new Map,$=new Map;for(h=f;h--;){const e=d(o,s,h),i=n(e);let c=l.get(i);c?r&&c.p(e,t):(c=a(i,e),c.c()),v.set(i,g[h]=c),i in m&&$.set(i,Math.abs(h-m[i]))}const b=new Set,y=new Set;function w(e){he(e,1),e.m(i,u),l.set(e.key,e),u=e.first,f--}for(;p&&f;){const t=g[f-1],n=e[p-1],r=t.key,o=n.key;t===n?(u=t.first,p--,f--):v.has(o)?!l.has(r)||b.has(r)?w(t):y.has(o)?p--:$.get(r)>$.get(o)?(y.add(r),w(t)):(b.add(o),p--):(c(n,l),p--)}for(;p--;){const t=e[p];v.has(t.key)||c(t,l)}for(;f;)w(g[f-1]);return g}let ke;function Ee(e,t,n){const r=e.$$.props[t];void 0!==r&&(e.$$.bound[r]=n,n(e.$$.ctx[r]))}function Se(e){e&&e.c()}function Ce(e,t,r,l){const{fragment:i,on_mount:c,on_destroy:a,after_update:u}=e.$$;i&&i.m(t,r),l||ne((()=>{const t=c.map(n).filter(s);a?a.push(...t):o(t),e.$$.on_mount=[]})),u.forEach(ne)}function Te(e,t){const n=e.$$;null!==n.fragment&&(o(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function Oe(t,n,s,l,i,c,a,u=[-1]){const d=z;q(t);const p=t.$$={fragment:null,ctx:null,props:c,update:e,not_equal:i,bound:r(),on_mount:[],on_destroy:[],on_disconnect:[],before_update:[],after_update:[],context:new Map(n.context||(d?d.$$.context:[])),callbacks:r(),dirty:u,skip_bound:!1,root:n.target||d.$$.root};a&&a(p.root);let f=!1;if(p.ctx=s?s(t,n.props||{},((e,n,...r)=>{const o=r.length?r[0]:n;return p.ctx&&i(p.ctx[e],p.ctx[e]=o)&&(!p.skip_bound&&p.bound[e]&&p.bound[e](o),f&&function(e,t){-1===e.$$.dirty[0]&&(V.push(e),te||(te=!0,ee.then(ie)),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!c(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}});class Le{$destroy(){Te(this,1),this.$destroy=e}$on(e,t){const n=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return n.push(t),()=>{const e=n.indexOf(t);-1!==e&&n.splice(e,1)}}$set(e){this.$$set&&!c(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}function De(e){let t,n,r,o;const l=e[2].default,i=u(l,e,e[1],null);return{c(){t=O("form"),i&&i.c(),R(t,"class","column-card svelte-12n6e3q")},m(l,c){S(l,t,c),i&&i.m(t,null),n=!0,r||(o=N(t,"submit",F((function(){s(e[0])&&e[0].apply(this,arguments)}))),r=!0)},p(t,[r]){e=t,i&&i.p&&(!n||2&r)&&f(i,l,e,e[1],n?p(l,e[1],r,null):h(e[1]),null)},i(e){n||(he(i,e),n=!0)},o(e){me(i,e),n=!1},d(e){e&&C(t),i&&i.d(e),r=!1,o()}}}function Ae(e,t,n){let{$$slots:r={},$$scope:o}=t,{onSubmit:s}=t;return e.$$set=e=>{"onSubmit"in e&&n(0,s=e.onSubmit),"$$scope"in e&&n(1,o=e.$$scope)},[s,o,r]}const _e=class extends Le{constructor(e){super(),Oe(this,e,Ae,De,l,{onSubmit:0})}};function Ne(e,t,n){const r=e.slice();return r[4]=t[n],r}function Fe(e,t){let n,r,o,s,l,i,c,a,u=t[4].label+"";function d(){return t[3](t[4])}return{key:e,first:null,c(){n=O("label"),r=O("input"),l=A(),i=D(u),R(r,"type","radio"),R(r,"name",t[2]),r.value=o=t[4].value,r.checked=s=t[0]===t[4].value,R(n,"class","svelte-1tapr9t"),this.first=n},m(e,t){S(e,n,t),x(n,r),x(n,l),x(n,i),c||(a=N(r,"click",d),c=!0)},p(e,n){t=e,4&n&&R(r,"name",t[2]),2&n&&o!==(o=t[4].value)&&(r.value=o),3&n&&s!==(s=t[0]===t[4].value)&&(r.checked=s),2&n&&u!==(u=t[4].label+"")&&U(i,u)},d(e){e&&C(n),c=!1,a()}}}function je(t){let n,r=[],o=new Map,s=t[1];const l=e=>e[4].value;for(let e=0;e{"options"in e&&n(1,r=e.options),"selected"in e&&n(0,o=e.selected),"name"in e&&n(2,s=e.name)},[o,r,s,e=>n(0,o=e.value)]}const Ue=class extends Le{constructor(e){super(),Oe(this,e,Re,je,l,{options:1,selected:0,name:2})}},Ie=[];function Me(t,n=e){let r;const o=new Set;function s(e){if(l(t,e)&&(t=e,r)){const e=!Ie.length;for(const e of o)e[1](),Ie.push(e,t);if(e){for(let e=0;e{o.delete(c),0===o.size&&(r(),r=null)}}}}var Pe,He;!function(e){e[e.DEFAULT=0]="DEFAULT",e[e.REGEXP=1]="REGEXP",e[e.FUNCTION=2]="FUNCTION"}(Pe||(Pe={})),function(e){e[e.NONE=0]="NONE",e[e.REGEXP=1]="REGEXP",e[e.SELECTOR=2]="SELECTOR",e[e.FUNCTION=3]="FUNCTION"}(He||(He={}));const ze={useTiny:!0,nextLink:Pe.DEFAULT,nextLinkRegex:'href="([^"]+)"[^>]*>\\s*Next',nextLinkFn:'return "https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/"',transform:He.NONE,transformRegex:".md",transformSelector:"",transformFn:'title = "P\'Thok Eats an Ice Cream Cone"\nhtml = "https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/"'},Be=Me(ze),Ge=e=>{const t=new Function("sandbox",`with (sandbox) {${e}}`),n=Object.create(null);n.console={log:console.log,table:console.table,error:console.error,assert:console.assert};const r=new Proxy(n,{has:qe,get:We});return e=>(Object.defineProperties(r,e),{proxy:r,ret:t(r)})};function qe(e,t){return!0}function We(e,t){if(t!==Symbol.unscopables)return e[t]}function Xe(e){let t,n,r,o,s,l,i,c,a,u;return{c(){t=O("label"),n=D("Function: "),r=O("span"),r.textContent="Only input code you trust!",o=A(),s=O("textarea"),i=A(),c=O("span"),c.innerHTML="Globals document and html are available; Must produce the url as return",R(r,"class","small warning svelte-5v9ihf"),R(s,"rows","5"),R(s,"placeholder",l=ze.nextLinkFn),R(s,"class","svelte-5v9ihf"),R(c,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(l,d){S(l,t,d),x(t,n),x(t,r),x(t,o),x(t,s),I(s,e[0].nextLinkFn),x(t,i),x(t,c),a||(u=N(s,"input",e[7]),a=!0)},p(e,t){1&t&&I(s,e[0].nextLinkFn)},d(e){e&&C(t),a=!1,u()}}}function Ye(e){let t,n,r,o,s,l,i,c;return{c(){t=O("label"),n=D("Regex:\n "),r=O("input"),s=A(),l=O("span"),l.textContent="Must produce the url in the first group",R(r,"type","text"),R(r,"placeholder",o=ze.nextLinkRegex),R(r,"class","svelte-5v9ihf"),R(l,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,a){S(o,t,a),x(t,n),x(t,r),I(r,e[0].nextLinkRegex),x(t,s),x(t,l),i||(c=N(r,"input",e[6]),i=!0)},p(e,t){1&t&&r.value!==e[0].nextLinkRegex&&I(r,e[0].nextLinkRegex)},d(e){e&&C(t),i=!1,c()}}}function Ke(t){let n;return{c(){n=O("span"),n.textContent='Finds a "First" link, with fallback to other links that aren\'t "Previous" or "Index" or "First"',R(n,"class","small svelte-5v9ihf")},m(e,t){S(e,n,t)},p:e,d(e){e&&C(n)}}}function Ve(e){let t,n,r,o,s,l,i,c,a,u;return{c(){t=O("label"),n=D("Function: "),r=O("span"),r.textContent="Only input code you trust!",o=A(),s=O("textarea"),i=A(),c=O("span"),c.innerHTML="Globals document, html, title and url are available; Modify the latter three to transform",R(r,"class","small warning svelte-5v9ihf"),R(s,"rows","5"),R(s,"placeholder",l=ze.transformFn),R(s,"class","svelte-5v9ihf"),R(c,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(l,d){S(l,t,d),x(t,n),x(t,r),x(t,o),x(t,s),I(s,e[0].transformFn),x(t,i),x(t,c),a||(u=N(s,"input",e[11]),a=!0)},p(e,t){1&t&&I(s,e[0].transformFn)},d(e){e&&C(t),a=!1,u()}}}function Je(e){let t,n,r,o,s,l;return{c(){t=O("label"),n=D("Selector:\n "),r=O("input"),R(r,"type","text"),R(r,"placeholder",o=ze.transformSelector),R(r,"class","svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,i){S(o,t,i),x(t,n),x(t,r),I(r,e[0].transformSelector),s||(l=N(r,"input",e[10]),s=!0)},p(e,t){1&t&&r.value!==e[0].transformSelector&&I(r,e[0].transformSelector)},d(e){e&&C(t),s=!1,l()}}}function Ze(e){let t,n,r,o,s,l,i,c;return{c(){t=O("label"),n=D("Regex:\n "),r=O("input"),s=A(),l=O("span"),l.textContent="Must produce the new html in the first group",R(r,"type","text"),R(r,"placeholder",o=ze.transformRegex),R(r,"class","svelte-5v9ihf"),R(l,"class","small svelte-5v9ihf"),R(t,"class","field svelte-5v9ihf")},m(o,a){S(o,t,a),x(t,n),x(t,r),I(r,e[0].transformRegex),x(t,s),x(t,l),i||(c=N(r,"input",e[9]),i=!0)},p(e,t){1&t&&r.value!==e[0].transformRegex&&I(r,e[0].transformRegex)},d(e){e&&C(t),i=!1,c()}}}function Qe(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k,E,T,L,_,F;function j(t){e[5](t)}let U={options:[{value:Pe.DEFAULT,label:"Default"},{value:Pe.REGEXP,label:"Regex"},{value:Pe.FUNCTION,label:"Function"}],name:"radio-next-type"};function I(e,t){return e[0].nextLink===Pe.DEFAULT?Ke:e[0].nextLink===Pe.REGEXP?Ye:e[0].nextLink===Pe.FUNCTION?Xe:void 0}void 0!==e[0].nextLink&&(U.selected=e[0].nextLink),f=new Ue({props:U}),J.push((()=>Ee(f,"selected",j)));let M=I(e),P=M&&M(e);function H(t){e[8](t)}let z={options:[{value:He.NONE,label:"No transform"},{value:He.REGEXP,label:"Regex"},{value:He.SELECTOR,label:"Query-Selector"},{value:He.FUNCTION,label:"Function"}],name:"radio-transform"};function B(e,t){return e[0].transform===He.REGEXP?Ze:e[0].transform===He.SELECTOR?Je:e[0].transform===He.FUNCTION?Ve:void 0}void 0!==e[0].transform&&(z.selected=e[0].transform),k=new Ue({props:z}),J.push((()=>Ee(k,"selected",H)));let G=B(e),q=G&&G(e);return{c(){t=O("h3"),t.textContent="Editor",n=A(),r=O("div"),o=O("label"),s=O("input"),l=D("\n Use TinyMCE, a powerful HTML editor, for editing chapters"),i=A(),c=O("h3"),c.textContent="Next chapter",a=A(),u=O("div"),d=O("p"),d.textContent="Specify how next chapter links are extracted.",p=A(),Se(f.$$.fragment),m=A(),P&&P.c(),g=A(),v=O("h3"),v.textContent="Chapter transform",$=A(),b=O("div"),y=O("p"),y.textContent="Automatically transform chapter contents.",w=A(),Se(k.$$.fragment),T=A(),q&&q.c(),R(s,"type","checkbox"),R(s,"class","svelte-5v9ihf"),R(o,"class","field svelte-5v9ihf")},m(h,E){S(h,t,E),S(h,n,E),S(h,r,E),x(r,o),x(o,s),s.checked=e[0].useTiny,x(o,l),S(h,i,E),S(h,c,E),S(h,a,E),S(h,u,E),x(u,d),x(u,p),Ce(f,u,null),x(u,m),P&&P.m(u,null),S(h,g,E),S(h,v,E),S(h,$,E),S(h,b,E),x(b,y),x(b,w),Ce(k,b,null),x(b,T),q&&q.m(b,null),L=!0,_||(F=N(s,"change",e[4]),_=!0)},p(e,t){1&t&&(s.checked=e[0].useTiny);const n={};!h&&1&t&&(h=!0,n.selected=e[0].nextLink,re((()=>h=!1))),f.$set(n),M===(M=I(e))&&P?P.p(e,t):(P&&P.d(1),P=M&&M(e),P&&(P.c(),P.m(u,null)));const r={};!E&&1&t&&(E=!0,r.selected=e[0].transform,re((()=>E=!1))),k.$set(r),G===(G=B(e))&&q?q.p(e,t):(q&&q.d(1),q=G&&G(e),q&&(q.c(),q.m(b,null)))},i(e){L||(he(f.$$.fragment,e),he(k.$$.fragment,e),L=!0)},o(e){me(f.$$.fragment,e),me(k.$$.fragment,e),L=!1},d(e){e&&C(t),e&&C(n),e&&C(r),e&&C(i),e&&C(c),e&&C(a),e&&C(u),Te(f),P&&P.d(),e&&C(g),e&&C(v),e&&C($),e&&C(b),Te(k),q&&q.d(),_=!1,F()}}}function et(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Function invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function tt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Selector invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function nt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Transform Regex invalid: "),r=O("code"),o=D(e[3]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){8&t&&U(o,e[3])},d(e){e&&C(t)}}}function rt(e){let t,n,r,o;return{c(){t=O("span"),n=D("Chapter Function invalid: "),r=O("code"),o=D(e[2]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){4&t&&U(o,e[2])},d(e){e&&C(t)}}}function ot(e){let t,n,r,o;return{c(){t=O("span"),n=D("Chapter Regex invalid: "),r=O("code"),o=D(e[2]),R(t,"class","small error svelte-5v9ihf")},m(e,s){S(e,t,s),x(t,n),x(t,r),x(r,o)},p(e,t){4&t&&U(o,e[2])},d(e){e&&C(t)}}}function st(e){let t,n,r,o,s,l,i,c,a,u;function d(e,t){return e[1]&&e[0].nextLink===Pe.REGEXP&&e[2]?ot:e[1]&&e[0].nextLink===Pe.FUNCTION&&e[2]?rt:e[1]&&e[0].transform===He.REGEXP&&e[3]?nt:e[1]&&e[0].transform===He.SELECTOR&&e[3]?tt:e[1]&&e[0].transform===He.FUNCTION&&e[3]?et:void 0}n=new _e({props:{$$slots:{default:[Qe]},$$scope:{ctx:e}}});let p=d(e),f=p&&p(e);return{c(){t=O("div"),Se(n.$$.fragment),r=A(),o=O("button"),s=D("Save"),l=A(),f&&f.c(),i=_(),R(t,"class","settings svelte-5v9ihf"),R(o,"type","submit"),o.disabled=e[1]},m(d,p){S(d,t,p),Ce(n,t,null),S(d,r,p),S(d,o,p),x(o,s),S(d,l,p),f&&f.m(d,p),S(d,i,p),c=!0,a||(u=N(o,"click",e[12]),a=!0)},p(e,[t]){const r={};262145&t&&(r.$$scope={dirty:t,ctx:e}),n.$set(r),(!c||2&t)&&(o.disabled=e[1]),p===(p=d(e))&&f?f.p(e,t):(f&&f.d(1),f=p&&p(e),f&&(f.c(),f.m(i.parentNode,i)))},i(e){c||(he(n.$$.fragment,e),c=!0)},o(e){me(n.$$.fragment,e),c=!1},d(e){e&&C(t),Te(n),e&&C(r),e&&C(o),e&&C(l),f&&f.d(e),e&&C(i),a=!1,u()}}}function lt(e,t,n){let r;a(e,Be,(e=>n(13,r=e)));const o=Object.assign({},r),s=Object.assign({},r),l=(e,t)=>{if(!e.trim().length)return{error:"Must specify a regular expression",disableSave:!0};try{return new RegExp(e,"i"),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}},i=(e,t)=>{if(!e.trim().length)return{error:"Must specify a function",disableSave:!0};try{return Ge(e),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}};let c,u,d=!1;return X((()=>n(1,d=!0))),e.$$.update=()=>{1&e.$$.dirty&&n(1,d=o.nextLink===s.nextLink&&o.nextLinkRegex===s.nextLinkRegex&&o.nextLinkFn===s.nextLinkFn&&o.transform===s.transform&&o.transformRegex===s.transformRegex&&o.transformSelector===s.transformSelector&&o.transformFn===s.transformFn&&o.useTiny===s.useTiny),3&e.$$.dirty&&o.nextLink===Pe.REGEXP&&n(1,({disableSave:d,error:c}=l(o.nextLinkRegex,d)),d,(n(2,c),n(0,o),n(1,d))),3&e.$$.dirty&&o.nextLink===Pe.FUNCTION&&n(1,({disableSave:d,error:c}=i(o.nextLinkFn,d)),d,(n(2,c),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.REGEXP&&n(1,({disableSave:d,error:u}=l(o.transformRegex,d)),d,(n(3,u),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.SELECTOR&&n(1,({disableSave:d,error:u}=((e,t)=>{if(!e.trim().length)return{error:"Must specify a selector",disableSave:!0};try{return document.querySelector(e),{error:void 0,disableSave:t}}catch(e){return{error:e,disableSave:!0}}})(o.transformSelector,d)),d,(n(3,u),n(0,o),n(1,d))),3&e.$$.dirty&&o.transform===He.FUNCTION&&n(1,({disableSave:d,error:u}=i(o.transformFn,d)),d,(n(3,u),n(0,o),n(1,d)))},[o,d,c,u,function(){o.useTiny=this.checked,n(0,o)},function(t){e.$$.not_equal(o.nextLink,t)&&(o.nextLink=t,n(0,o))},function(){o.nextLinkRegex=this.value,n(0,o)},function(){o.nextLinkFn=this.value,n(0,o)},function(t){e.$$.not_equal(o.transform,t)&&(o.transform=t,n(0,o))},function(){o.transformRegex=this.value,n(0,o)},function(){o.transformSelector=this.value,n(0,o)},function(){o.transformFn=this.value,n(0,o)},()=>{Be.set(o),n(1,d=!0)}]}const it=class extends Le{constructor(e){super(),Oe(this,e,lt,st,l,{})}};var ct=i(4785),at=i.n(ct);function ut(e){let t,n,r;return{c(){t=O("a"),t.textContent="Back to Search",R(t,"href","#search"),R(t,"class","small")},m(o,l){S(o,t,l),n||(r=N(t,"click",F((function(){s(e[0])&&e[0].apply(this,arguments)}))),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function dt(t){let n,r=t[0]&&ut(t);return{c(){r&&r.c(),n=_()},m(e,t){r&&r.m(e,t),S(e,n,t)},p(e,[t]){e[0]?r?r.p(e,t):(r=ut(e),r.c(),r.m(n.parentNode,n)):r&&(r.d(1),r=null)},i:e,o:e,d(e){r&&r.d(e),e&&C(n)}}}function pt(e,t,n){let{backToSearch:r}=t;return e.$$set=e=>{"backToSearch"in e&&n(0,r=e.backToSearch)},[r]}const ft=class extends Le{constructor(e){super(),Oe(this,e,pt,dt,l,{backToSearch:0})}};function ht(e,t,n){const r=e.slice();return r[4]=t[n],r}function mt(t){let n,r,o,s,l=t[4]?": ":"",i=(t[4].message||t[4])+"";return{c(){n=O("span"),r=D("Sorry, can't process that"),o=D(l),s=D(i),R(n,"class","error svelte-m4i2yw")},m(e,t){S(e,n,t),x(n,r),x(n,o),x(n,s)},p:e,d(e){e&&C(n)}}}function gt(e){let t,n,r;return{c(){t=O("button"),t.textContent="Retry"},m(o,l){S(o,t,l),n||(r=N(t,"click",(function(){s(e[0])&&e[0].apply(this,arguments)})),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function vt(e){let t,n,r;return{c(){t=O("a"),t.textContent="back",R(t,"href","#back")},m(o,l){S(o,t,l),n||(r=N(t,"click",F((function(){s(e[1])&&e[1].apply(this,arguments)}))),n=!0)},p(t,n){e=t},d(e){e&&C(t),n=!1,r()}}}function $t(t){let n,r,o,s,l=t[2],i=[];for(let e=0;e{"error"in e&&n(3,r=e.error),"retry"in e&&n(0,o=e.retry),"back"in e&&n(1,s=e.back)},[o,s,l,r]}const yt=class extends Le{constructor(e){super(),Oe(this,e,bt,$t,l,{error:3,retry:0,back:1})}};function wt(e){let t,n,r,o,s;const l=e[1].default,i=u(l,e,e[0],null),c=i||function(e){let t;return{c(){t=D("Loading...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}();return{c(){t=O("div"),n=O("div"),n.innerHTML='',r=A(),o=O("p"),c&&c.c(),R(n,"class","loading-slider-container svelte-w1n7v1"),R(o,"class","loading svelte-w1n7v1"),R(t,"class","loading-container svelte-w1n7v1")},m(e,l){S(e,t,l),x(t,n),x(t,r),x(t,o),c&&c.m(o,null),s=!0},p(e,[t]){i&&i.p&&(!s||1&t)&&f(i,l,e,e[0],s?p(l,e[0],t,null):h(e[0]),null)},i(e){s||(he(c,e),s=!0)},o(e){me(c,e),s=!1},d(e){e&&C(t),c&&c.d(e)}}}function xt(e,t,n){let{$$slots:r={},$$scope:o}=t;return e.$$set=e=>{"$$scope"in e&&n(0,o=e.$$scope)},[o,r]}const kt=class extends Le{constructor(e){super(),Oe(this,e,xt,wt,l,{})}};let Et=(e=21)=>crypto.getRandomValues(new Uint8Array(e)).reduce(((e,t)=>e+((t&=63)<36?t.toString(36):t<62?(t-26).toString(36).toUpperCase():t>62?"-":"_")),"");const St=async(e,t)=>{const n="undefined"!=typeof AbortController?new AbortController:{},r=setTimeout((()=>n.abort&&n.abort()),t);try{return await fetch(e,{signal:n.signal})}finally{clearTimeout(r)}},Ct=async(e,t=1e4,n=3)=>{for(let r=0;r{const o=new URL(e,t);for(let e=0;e(e instanceof URL||(e=new URL(e)),e.hostname="www.reddit.com",e.pathname.endsWith("/")?e.pathname=`${e.pathname.slice(0,e.pathname.length-1)}.json`:e.pathname.endsWith(".json")||(e.pathname+=".json"),e.protocol="https",e.search="",e.hash="",e.toString()),Dt=e=>{const t=new URL(e);return("reddit.com"===t.host||t.host.match(/\.reddit\.com$/))&&e.match(".json$")?e.slice(0,-5).replace("https://api","https://www"):e},At=(()=>{const e=new DOMParser;return t=>e.parseFromString(t,"text/html").documentElement.textContent})(),_t=(()=>{const e=new DOMParser;return t=>e.parseFromString(t,"text/html")})();function Nt(e){return"string"==typeof e||e instanceof String}function Ft(e,{delay:t=0,duration:n=200,prop:r="height",easing:o=Ot}={}){const s=getComputedStyle(e)[r];if(!Nt(s)||!s.endsWith("px"))throw new Error(`invalid property '${r}' does not return pixels`);const l=+s.slice(0,-2);return{delay:t,duration:n,easing:o,css:e=>`overflow: hidden; ${r}: ${e*l}px`}}const jt=/(?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/([^\/]+)\/comments\/.+/i,Rt=/href="((?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/([^\/]+)\/comments\/[^"]+)"[^>]*>\s*([^<]+)/gim,Ut=/href="([^"]+)"[^>]*>\s*(.+)<\/a>/gim,It=/^https?:\/\/(?:[^.]+\.)?reddit\.com\/r\/hfy\/wiki\/series\//i,Mt=async e=>{const t=await Ct(new URL("https://www.reddit.com/r/hfy/wiki/series.json")),n=await t.json();if(!t.ok)throw n.message;const r=[...n.data.content_md.matchAll(/\[([^\]]+)\]\s*\(((?:https?:\/\/(?:[^.]+\.)?reddit\.com)?\/r\/hfy\/wiki\/series\/[^)]+)\)\s*(?:\[\*([^\]]+)\*\])?/gim)].map((e=>({title:e[1],author:e[3],url:Lt(e[2].startsWith("http")?e[2]:`https://www.reddit.com${e[2]}`)})));if(!e)return r;const o=e.toLowerCase();return r.filter((e=>-1!==e.title.toLowerCase().indexOf(o)))},Pt=/^https?:\/\/(?:[^.]+\.)?reddit\.com\/r\/([^/]+)\/comments\//i,Ht=e=>({id:e[0].data.children[0].data.id,title:e[0].data.children[0].data.title,content:At(e[0].data.children[0].data.selftext_html),apiUrl:Lt(e[0].data.children[0].data.url),displayUrl:e[0].data.children[0].data.url,needsFetching:!1});var zt;!function(e){e[e.HFY_SERIES=0]="HFY_SERIES",e[e.POST=1]="POST",e[e.GENERIC=2]="GENERIC",e[e.SEARCH=3]="SEARCH"}(zt||(zt={}));const Bt=new DOMParser,Gt=(e,t)=>e===zt.GENERIC?t:Lt(t),qt=(e,t)=>e.type===zt.GENERIC?t.text():t.json(),Wt=(e,t,n)=>{switch(e){case zt.POST:case zt.HFY_SERIES:return Ht(t);case zt.GENERIC:return((e,t)=>{const n=_t(e);return{id:Et(),apiUrl:t,displayUrl:t,title:n.title,content:n.body.innerHTML,needsFetching:!1}})(t,n)}throw new Error(`Getting data from source type \`${zt[e]}\` not supported, this should never happen`)};let Xt,Yt;const Kt=(e,t)=>{switch(e.nextLink){case Pe.DEFAULT:return(e=>{const t=e.match(/href="([^"]+)"[^>]*>\s*Next/i);if(t)return t[1];const n=[...e.matchAll(Rt)].reverse().find((e=>{const t=e[3].toLowerCase();return!t.startsWith("first")&&!t.startsWith("prev")&&!t.startsWith("index")}));if(n)return n[1];const r=[...e.matchAll(Ut)],o=r.find((e=>-1!==e[2].toLowerCase().indexOf("next")));if(o)return o[1];const s=r.reverse().find((e=>{const t=e[2].toLowerCase();return!t.startsWith("first")&&!t.startsWith("prev")&&!t.startsWith("index")}));return s?s[1]:void 0})(t);case Pe.REGEXP:return(e=>{const t=e.match(Xt);if(t&&t.length>1)return t[1]})(t);case Pe.FUNCTION:return(e=>{let t;return Yt({document:{get:()=>t=null!=t?t:Bt.parseFromString(e,"text/html"),configurable:!0},html:{writable:!1,value:e,configurable:!0}}).ret})(t)}};let Vt;const Jt=e=>{const t=e.match(Vt);return t&&t.length>1&&(e=t[1]),e};let Zt;const Qt=(e,t)=>{switch(e.transform){case He.NONE:return Object.assign(Object.assign({},t),{transformedContent:t.content});case He.REGEXP:return Object.assign(Object.assign({},t),{transformedContent:Jt(t.content||"")});case He.SELECTOR:return Object.assign(Object.assign({},t),{transformedContent:(n=e.transformSelector,r=t.content||"",null===(o=Bt.parseFromString(r,"text/html").querySelector(n))||void 0===o?void 0:o.innerHTML)});case He.FUNCTION:return(e=>{let t;const n={document:{get:()=>t=null!=t?t:Bt.parseFromString(e.content||"","text/html"),configurable:!0},title:{writable:!0,value:e.title,configurable:!0},html:{writable:!0,value:e.content,configurable:!0},url:{writable:!0,value:e.displayUrl,configurable:!0}},{proxy:r}=Zt(n);return Object.assign(Object.assign({},e),{title:Nt(r.title)?r.title:e.title,transformedContent:Nt(r.html)?r.html:e.content,displayUrl:Nt(r.url)?r.url:e.displayUrl})})(t)}var n,r,o},en=(e,t)=>t.map(Qt.bind(null,e));var tn;Be.subscribe((e=>{Xt=new RegExp(e.nextLinkRegex,"i"),Yt=Ge(e.nextLinkFn),Vt=new RegExp(e.transformRegex,"i"),Zt=Ge(e.transformFn)})),function(e){e[e.INPUT=0]="INPUT",e[e.SEARCH=1]="SEARCH",e[e.BOOK_DATA=2]="BOOK_DATA",e[e.EDIT_DATA=3]="EDIT_DATA",e[e.FIND_CHAPTERS=4]="FIND_CHAPTERS",e[e.DOWNLOAD_CHAPTERS=5]="DOWNLOAD_CHAPTERS",e[e.RESULT=6]="RESULT",e[e.SETTINGS=7]="SETTINGS",e[e._404=8]="_404"}(tn||(tn={}));const nn=e=>e===tn.INPUT?i.p:`${i.p}${tn[e].toLowerCase().replace(/_/g,"-")}`;class rn{dump(){return[]}}class on extends rn{constructor(){super(...arguments),this.stage=tn.INPUT}next(e){const t=(e=>{try{return new URL(e),(e=>!!e.match(It))(e)?zt.HFY_SERIES:(e=>!!e.match(Pt))(e)?zt.POST:zt.GENERIC}catch(e){}return zt.SEARCH})(e);return console.debug("Input",e,"resulted in type",t),$n.update((n=>Object.assign(Object.assign({},n),{search:e,series:t!==zt.SEARCH?{url:Gt(t,e),type:t}:n.series}))),t===zt.SEARCH?hn(sn):hn(ln)}fromList(e){const t=e.split("\n");return $n.update((e=>Object.assign(Object.assign({},e),{series:{url:t[0],type:zt.GENERIC}}))),bn.update((()=>({author:"unknown",title:"unknown",chapters:t.map(((e,t)=>({apiUrl:e,id:Et(),title:`Chapter ${t}`,displayUrl:e})))}))),hn(ln)}fromJSON({series:e,bookData:t}){return $n.update((t=>Object.assign(Object.assign({},t),{series:e}))),bn.update((()=>t)),hn(ln)}}class sn extends rn{constructor(){super(...arguments),this.stage=tn.SEARCH}next(e){return $n.update((t=>Object.assign(Object.assign({},t),{series:e}))),hn(ln)}}class ln extends rn{constructor(e){super(),this.newChapters=e,this.stage=tn.BOOK_DATA}next(){return hn(dn)}edit(){return hn(cn)}findMore(){return hn(an)}downloadAll(){return hn(un)}dump(){return[this.newChapters]}}class cn extends rn{constructor(){super(...arguments),this.stage=tn.EDIT_DATA,this.needsSaving=!0}next(e){return bn.update((()=>e)),hn(ln)}}class an extends rn{constructor(){super(...arguments),this.stage=tn.FIND_CHAPTERS,this.needsSaving=!0}next(e,t){return bn.update((()=>e)),hn(ln,t)}}class un extends rn{constructor(){super(...arguments),this.stage=tn.DOWNLOAD_CHAPTERS,this.needsSaving=!0}next(e){return bn.update((()=>e)),hn(ln)}}class dn extends rn{constructor(){super(...arguments),this.stage=tn.RESULT}next(){return hn(ln)}}class pn extends rn{constructor(){super(...arguments),this.stage=tn.SETTINGS}next(){return gn()}}const fn={[tn.INPUT]:on,[tn.SEARCH]:sn,[tn.BOOK_DATA]:ln,[tn.EDIT_DATA]:cn,[tn.FIND_CHAPTERS]:an,[tn.DOWNLOAD_CHAPTERS]:un,[tn.RESULT]:dn,[tn.SETTINGS]:pn,[tn._404]:class extends rn{constructor(){super(...arguments),this.stage=tn._404}next(){return gn()}}};function hn(e,...t){$n.update((n=>{const r=new e(...t);r.from=n.stage;const o=r.dump();try{r.stage===tn.SETTINGS?history.pushState({data:o,search:n.search,series:n.series},"",nn(r.stage)):history.replaceState({data:o,search:n.search,series:n.series},"",nn(r.stage))}catch(e){console.error("Data too large! Caution, forwards/backwards won't work as expected!"),o.length>0&&(o[0]=void 0),r.stage===tn.SETTINGS?history.pushState({data:o,search:n.search,series:n.series},"",nn(r.stage)):history.replaceState({data:o,search:n.search,series:n.series},"",nn(r.stage))}return Object.assign(Object.assign({},n),{stage:r,lastBookData:e.usesBookData?r.bookData:n.lastBookData})}))}function mn(e,{data:t,search:n,series:r}={}){t=t||[],$n.update((o=>{try{const s=new fn[e](...t);return s.stage===o.stage.stage?o:(s.from=o.stage,Object.assign(Object.assign({},o),{search:n,series:r,stage:s}))}catch(r){return console.group("Failed to update page"),console.error(r),console.log("Parameters:",e,t,n),console.groupEnd(),history.pushState({data:[],search:o.search,series:o.series},"","/"),o}}))}function gn(){history.back()}function vn(e,t){return!!e&&e.stage===t}const $n=Me({stage:new on}),bn=Me(void 0),yn=new RegExp("^"+i.p.replace("/","/")),wn=()=>{const e=location.pathname.replace(yn,"").split("/")[0]||"";if(e.length>60)return;if(""===e)return mn(tn.INPUT);const t=e.toUpperCase().replace(/-/g,"_"),n=(()=>{try{return JSON.parse(localStorage.getItem("state"))}catch(e){return}})(),r=Object.assign(Object.assign({},n),history.state||{});return t in tn?mn(tn[t],r):mn(tn._404)};function xn(e,t,n){const r=e.slice();return r[9]=t[n][0],r[10]=t[n][1],r}function kn(e,t,n){const r=e.slice();return r[9]=t[n][0],r[10]=t[n][1],r}function En(e){let t,n,r,o,l,i,c,a;return t=new yt({props:{error:e[16],retry:e[7]}}),l=new ft({props:{backToSearch:e[1]}}),{c(){Se(t.$$.fragment),n=A(),r=O("button"),r.textContent="Back to book",o=A(),Se(l.$$.fragment)},m(u,d){Ce(t,u,d),S(u,n,d),S(u,r,d),S(u,o,d),Ce(l,u,d),i=!0,c||(a=N(r,"click",(function(){s(e[0].next.bind(e[0]))&&e[0].next.bind(e[0]).apply(this,arguments)})),c=!0)},p(n,r){e=n;const o={};8&r&&(o.error=e[16]),8&r&&(o.retry=e[7]),t.$set(o);const s={};2&r&&(s.backToSearch=e[1]),l.$set(s)},i(e){i||(he(t.$$.fragment,e),he(l.$$.fragment,e),i=!0)},o(e){me(t.$$.fragment,e),me(l.$$.fragment,e),i=!1},d(e){Te(t,e),e&&C(n),e&&C(r),e&&C(o),Te(l,e),c=!1,a()}}}function Sn(e){let t,n,r,l,i,c,a,u,d,p,f,h,m=e[2].find(Nn);function g(){return e[6](e[13])}a=new ft({props:{backToSearch:e[1]}});let v=m&&Cn(e);return{c(){t=O("h3"),t.textContent="Your e-book is ready!",n=A(),r=O("button"),r.textContent="Download",l=A(),i=O("button"),i.textContent="Back to book",c=A(),Se(a.$$.fragment),u=A(),v&&v.c(),d=_(),R(t,"class","valid svelte-ardw9p")},m(o,m){S(o,t,m),S(o,n,m),S(o,r,m),S(o,l,m),S(o,i,m),S(o,c,m),Ce(a,o,m),S(o,u,m),v&&v.m(o,m),S(o,d,m),p=!0,f||(h=[N(r,"click",g),N(i,"click",(function(){s(e[0].next.bind(e[0]))&&e[0].next.bind(e[0]).apply(this,arguments)}))],f=!0)},p(t,n){e=t;const r={};2&n&&(r.backToSearch=e[1]),a.$set(r),4&n&&(m=e[2].find(Nn)),m?v?v.p(e,n):(v=Cn(e),v.c(),v.m(d.parentNode,d)):v&&(v.d(1),v=null)},i(e){p||(he(a.$$.fragment,e),p=!0)},o(e){me(a.$$.fragment,e),p=!1},d(e){e&&C(t),e&&C(n),e&&C(r),e&&C(l),e&&C(i),e&&C(c),Te(a,e),e&&C(u),v&&v.d(e),e&&C(d),f=!1,o(h)}}}function Cn(e){let t,n=e[2],r=[];for(let t=0;tt.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,8&r&&n!==(n=e[3])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}const Nn=([e])=>"warn"===e;function Fn(e,t,n){let r;a(e,bn,(e=>n(4,r=e)));let{stage:o}=t,{backToSearch:s}=t;const l=Promise.all([i.e(845),i.e(483)]).then(i.t.bind(i,9845,23));let c=[];const u=async()=>{n(2,c=[]);const{default:e}=await l;return await e({title:At(r.title),author:At(r.author),ignoreFailedDownloads:!0,verbose:(e,t,...r)=>{c.push([e,t]),n(2,c)}},r.chapters.map((e=>({title:At(e.title),content:e.transformedContent,url:e.displayUrl}))))};let d=u();return e.$$set=e=>{"stage"in e&&n(0,o=e.stage),"backToSearch"in e&&n(1,s=e.backToSearch)},[o,s,c,d,r,u,e=>at()(e,`${At(r.author)} - ${At(r.title)}.epub`,"application/epub+zip"),()=>n(3,d=u())]}const jn=class extends Le{constructor(e){super(),Oe(this,e,Fn,_n,l,{stage:0,backToSearch:1})}};function Rn(e,t,n){const r=e.slice();return r[12]=t[n],r}function Un(e,t,n){const r=e.slice();return r[12]=t[n],r}function In(t){return{c:e,m:e,p:e,i:e,o:e,d:e}}function Mn(e){let t,n,r,o,s,l=!e[3].length&&Pn(e),i=e[1],c=[];for(let t=0;t{a=null})),fe())},i(e){s||(he(a),s=!0)},o(e){me(a),s=!1},d(e){l&&l.d(e),e&&C(t),e&&C(n),T(c,e),e&&C(r),a&&a.d(e),e&&C(o)}}}function Pn(e){let t,n=e[0].next(e[15])+"";return{c(){t=D(n)},m(e,n){S(e,t,n)},p(e,r){17&r&&n!==(n=e[0].next(e[15])+"")&&U(t,n)},d(e){e&&C(t)}}}function Hn(e){let t,n,r=e[12].title+"";return{c(){t=O("p"),n=D(r),R(t,"class","valid small svelte-1rrnlr6")},m(e,r){S(e,t,r),x(t,n)},p(e,t){2&t&&r!==(r=e[12].title+"")&&U(n,r)},d(e){e&&C(t)}}}function zn(e){let t,n=e[12]&&!0===e[12].new&&Hn(e);return{c(){n&&n.c(),t=_()},m(e,r){n&&n.m(e,r),S(e,t,r)},p(e,r){e[12]&&!0===e[12].new?n?n.p(e,r):(n=Hn(e),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null)},d(e){n&&n.d(e),e&&C(t)}}}function Bn(t){let n,r,o=t[3],s=Gn(t);return{c(){s.c(),n=_()},m(e,t){s.m(e,t),S(e,n,t),r=!0},p(t,r){8&r&&l(o,o=t[3])?(pe(),me(s,1,1,e),fe(),s=Gn(t),s.c(),he(s,1),s.m(n.parentNode,n)):s.p(t,r)},i(e){r||(he(s),r=!0)},o(e){me(s),r=!1},d(e){e&&C(n),s.d(e)}}}function Gn(e){let t,n;return t=new yt({props:{error:e[3],retry:e[8],back:e[9]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8&n&&(r.error=e[3]),16&n&&(r.retry=e[8]),35&n&&(r.back=e[9]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function qn(e){let t,n,r,o,s,l,i,c,a,u,d;t=new kt({props:{$$slots:{default:[Wn]},$$scope:{ctx:e}}});let p=e[1],f=[];for(let t=0;t{h=null})),fe())},i(e){a||(he(t.$$.fragment,e),he(h),a=!0)},o(e){me(t.$$.fragment,e),me(h),a=!1},d(e){Te(t,e),e&&C(n),e&&C(r),e&&C(s),e&&C(l),T(f,e),e&&C(i),h&&h.d(e),e&&C(c),u=!1,d()}}}function Wn(e){let t;return{c(){t=D("Please wait, fetching chapters...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function Xn(e){let t,n,r=e[12].title+"";return{c(){t=O("p"),n=D(r),R(t,"class","valid small svelte-1rrnlr6")},m(e,r){S(e,t,r),x(t,n)},p(e,t){2&t&&r!==(r=e[12].title+"")&&U(n,r)},d(e){e&&C(t)}}}function Yn(e){let t,n=e[12]&&!0===e[12].new&&Xn(e);return{c(){n&&n.c(),t=_()},m(e,r){n&&n.m(e,r),S(e,t,r)},p(e,r){e[12]&&!0===e[12].new?n?n.p(e,r):(n=Xn(e),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null)},d(e){n&&n.d(e),e&&C(t)}}}function Kn(t){let n,r,o=t[3],s=Vn(t);return{c(){s.c(),n=_()},m(e,t){s.m(e,t),S(e,n,t),r=!0},p(t,r){8&r&&l(o,o=t[3])?(pe(),me(s,1,1,e),fe(),s=Vn(t),s.c(),he(s,1),s.m(n.parentNode,n)):s.p(t,r)},i(e){r||(he(s),r=!0)},o(e){me(s),r=!1},d(e){e&&C(n),s.d(e)}}}function Vn(e){let t,n;return t=new yt({props:{error:e[3]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8&n&&(r.error=e[3]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Jn(e){let t,n,r,o={ctx:e,current:null,token:null,hasCatch:!1,pending:qn,then:Mn,catch:In,value:15,blocks:[,,,]};return $e(n=e[4],o),{c(){t=_(),o.block.c()},m(e,n){S(e,t,n),o.block.m(e,o.anchor=n),o.mount=()=>t.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function Zn(e,t,n){let r,o,s;a(e,bn,(e=>n(5,r=e))),a(e,$n,(e=>n(10,o=e))),a(e,Be,(e=>n(11,s=e)));let{stage:l}=t,i=[...r.chapters.map((e=>Object.assign(Object.assign({},e),{new:!1})))],c=!1,u=[];const d=async()=>{let e,t=i;for(n(1,i=new Array(i.length)),n(3,u=[]),e=0;e{var c,a;if(n(1,i[l+e]=Object.assign({},t[l+e]),i),!1!==r.needsFetching)try{const t=await Tt(r.apiUrl,new URL(o.series.url).origin),u=await qt(o.series,t);if(!t.ok)throw""+(null!==(a=null!==(c=u.message)&&void 0!==c?c:t.statusText)&&void 0!==a?a:t.status);n(1,i[l+e]=Object.assign(Object.assign({},Qt(s,Wt(o.series.type,u,r.apiUrl))),{new:!0}),i),n(1,i)}catch(e){u.push(e),n(3,u)}})));for(;e{"stage"in e&&n(0,l=e.stage)},[l,i,c,u,p,r,d,()=>n(2,c=!0),()=>n(4,p=d()),()=>l.next({...r,chapters:i})]}const Qn=class extends Le{constructor(e){super(),Oe(this,e,Zn,Jn,l,{stage:0})}};function er(e,t,n){const r=e.slice();return r[15]=t[n],r}function tr(e){let t,n;return t=new yt({props:{error:e[19],retry:e[10],back:e[11]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};16&n&&(r.error=e[19]),16&n&&(r.retry=e[10]),71&n&&(r.back=e[11]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function nr(t){let n,r=t[0].next(t[18],t[1].length)+"";return{c(){n=D(r)},m(e,t){S(e,n,t)},p(e,t){19&t&&r!==(r=e[0].next(e[18],e[1].length)+"")&&U(n,r)},i:e,o:e,d(e){e&&C(n)}}}function rr(e){let t,n,r,l,i,c,a,u,d,p;t=new kt({props:{$$slots:{default:[or]},$$scope:{ctx:e}}});let f=e[1],h=[];for(let t=0;tt.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function ir(e,t,n){let r,o,s;a(e,bn,(e=>n(6,r=e))),a(e,$n,(e=>n(12,o=e))),a(e,Be,(e=>n(13,s=e)));let l,{stage:i}=t,c=[],u=!1;const d=async()=>{var e,t,i,a,d;for(n(2,l=r.chapters.map((e=>Object.assign({},e))));!u;){let r=l[l.length-1];if(!1!==r.needsFetching){const n=await Tt(r.apiUrl,new URL(o.series.url).origin),i=await qt(o.series,n);if(!n.ok)throw""+(null!==(t=null!==(e=i.message)&&void 0!==e?e:n.statusText)&&void 0!==t?t:n.status);l.splice(-1,1,r=Qt(s,Wt(o.series.type,i,r.apiUrl)))}let u=Kt(s,null!==(i=r.transformedContent)&&void 0!==i?i:"");if(u||(u=Kt(s,r.content)),!u)break;const p=Gt(o.series.type,u);if(l.find((e=>e.apiUrl===p)))break;c.push({from:r.title,url:u}),n(1,c);const f=await Tt(p,new URL(o.series.url).origin),h=await qt(o.series,f);if(!f.ok)throw""+(null!==(d=null!==(a=h.message)&&void 0!==a?a:f.statusText)&&void 0!==d?d:f.status);l.push(Qt(s,Wt(o.series.type,h,p)))}return Object.assign(Object.assign({},r),{chapters:l})};let p=d(),f=!0;function h(){const e=document.documentElement.scrollHeight-document.documentElement.scrollTop;n(5,f=Math.abs(document.documentElement.clientHeight-e)<1)}return window.addEventListener("scroll",h),Y((()=>{window.removeEventListener("scroll",h)})),e.$$set=e=>{"stage"in e&&n(0,i=e.stage)},[i,c,l,u,p,f,r,d,(e,t)=>({update:({scroll:e})=>{e&&document.querySelector("footer").scrollIntoView()}}),()=>n(3,u=!0),()=>n(4,p=d()),()=>i.next({...r,chapters:l},c.length)]}const cr=class extends Le{constructor(e){super(),Oe(this,e,ir,lr,l,{stage:0})}};function ar(e,t,n){e.dispatchEvent(new CustomEvent("finalize",{detail:{items:t,info:n}}))}function ur(e,t,n){e.dispatchEvent(new CustomEvent("consider",{detail:{items:t,info:n}}))}const dr="draggedEntered",pr="draggedLeft",fr="draggedOverIndex",hr="draggedLeftDocument",mr="leftForAnother",gr="outsideOfAny";function vr(e,t,n){e.dispatchEvent(new CustomEvent(dr,{detail:{indexObj:t,draggedEl:n}}))}function $r(e,t,n){e.dispatchEvent(new CustomEvent(pr,{detail:{draggedEl:t,type:mr,theOtherDz:n}}))}function br(e,t,n){e.dispatchEvent(new CustomEvent(fr,{detail:{indexObj:t,draggedEl:n}}))}const yr="dragStarted",wr="droppedIntoZone",xr="droppedIntoAnother",kr="pointer",Er="keyboard",Sr="data-is-dnd-shadow-item",Cr="id:dnd-shadow-placeholder-0000";let Tr="id",Or=0;function Lr(){Or++}function Dr(){if(0===Or)throw new Error("Bug! trying to decrement when there are no dropzones");Or--}const Ar="undefined"==typeof window;let _r;function Nr(e){let t;const n=e.getBoundingClientRect(),r=getComputedStyle(e),o=r.transform;if(o){let s,l,i,c;if(o.startsWith("matrix3d("))t=o.slice(9,-1).split(/, /),s=+t[0],l=+t[5],i=+t[12],c=+t[13];else{if(!o.startsWith("matrix("))return n;t=o.slice(7,-1).split(/, /),s=+t[0],l=+t[3],i=+t[4],c=+t[5]}const a=r.transformOrigin,u=n.x-i-(1-s)*parseFloat(a),d=n.y-c-(1-l)*parseFloat(a.slice(a.indexOf(" ")+1)),p=s?n.width/s:e.offsetWidth,f=l?n.height/l:e.offsetHeight;return{x:u,y:d,width:p,height:f,top:d,right:u+p,bottom:d+f,left:u}}return n}function Fr(e){const t=Nr(e);return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function jr(e){const t=e.getBoundingClientRect();return{top:t.top+window.scrollY,bottom:t.bottom+window.scrollY,left:t.left+window.scrollX,right:t.right+window.scrollX}}function Rr(e){return{x:(e.left+e.right)/2,y:(e.top+e.bottom)/2}}function Ur(e,t){return e.y<=t.bottom&&e.y>=t.top&&e.x>=t.left&&e.x<=t.right}function Ir(e){return Rr(jr(e))}function Mr(e,t){return Ur(Ir(e),Fr(t))}function Pr(){_r=new Map}function Hr(e){_r.delete(e)}function zr(e,t){if(!Mr(e,t))return null;const n=t.children;if(0===n.length)return{index:0,isProximityBased:!0};const r=function(e){const t=Array.from(e.children).findIndex((e=>e.getAttribute(Sr)));if(t>=0)return _r.has(e)||_r.set(e,new Map),_r.get(e).set(t,Fr(e.children[t])),t}(t);for(let o=0;on(t))))}function r(e){return 25-e}return t(),{scrollIfNeeded:function(o,s){if(!s)return!1;const l=function(e,t){const n=jr(t);return Ur(e,n)?{top:e.y-n.top,bottom:n.bottom-e.y,left:e.x-n.left,right:Math.min(n.right,document.documentElement.clientWidth)-e.x}:null}(o,s);if(null===l)return t(),!1;const i=!!e.directionObj;let[c,a]=[!1,!1];return s.scrollHeight>s.clientHeight&&(l.bottom<25?(c=!0,e.directionObj={x:0,y:1},e.stepPx=r(l.bottom)):l.top<25&&(c=!0,e.directionObj={x:0,y:-1},e.stepPx=r(l.top)),!i&&c)||s.scrollWidth>s.clientWidth&&(l.right<25?(a=!0,e.directionObj={x:1,y:0},e.stepPx=r(l.right)):l.left<25&&(a=!0,e.directionObj={x:-1,y:0},e.stepPx=r(l.left)),!i&&a)?(n(s),!0):(t(),!1)},resetScrolling:t}}function Gr(e){return JSON.stringify(e,null,2)}function qr(e){if(!e)throw new Error("cannot get depth of a falsy node");return Wr(e,0)}function Wr(e,t=0){return e.parentElement?Wr(e.parentElement,t+1):t-1}Pr();const{scrollIfNeeded:Xr,resetScrolling:Yr}=Br();let Kr,Vr;function Jr(e){const t=e.touches?e.touches[0]:e;Vr={x:t.clientX,y:t.clientY}}const{scrollIfNeeded:Zr,resetScrolling:Qr}=Br();let eo;function to(){Vr&&Zr(Vr,document.documentElement)&&Pr(),eo=window.setTimeout(to,300)}function no(e){return`${e} 0.2s ease`}function ro(e,t,n,r,o){const s=t.getBoundingClientRect(),l=e.getBoundingClientRect(),i=s.width-l.width,c=s.height-l.height;if(i||c){const t={left:(n-l.left)/l.width,top:(r-l.top)/l.height};e.style.height=`${s.height}px`,e.style.width=`${s.width}px`,e.style.left=parseFloat(e.style.left)-t.left*i+"px",e.style.top=parseFloat(e.style.top)-t.top*c+"px"}oo(t,e),o()}function oo(e,t){const n=window.getComputedStyle(e);Array.from(n).filter((e=>e.startsWith("background")||e.startsWith("padding")||e.startsWith("font")||e.startsWith("text")||e.startsWith("align")||e.startsWith("justify")||e.startsWith("display")||e.startsWith("flex")||e.startsWith("border")||"opacity"===e||"color"===e||"list-style-type"===e)).forEach((e=>t.style.setProperty(e,n.getPropertyValue(e),n.getPropertyPriority(e))))}function so(e,t){e.draggable=!1,e.ondragstart=()=>!1,t?(e.style.userSelect="",e.style.WebkitUserSelect="",e.style.cursor=""):(e.style.userSelect="none",e.style.WebkitUserSelect="none",e.style.cursor="grab")}function lo(e){e.style.display="none",e.style.position="fixed",e.style.zIndex="-5"}function io(e,t=(()=>{}),n=(()=>[])){e.forEach((e=>{const r=t(e);Object.keys(r).forEach((t=>{e.style[t]=r[t]})),n(e).forEach((t=>e.classList.add(t)))}))}function co(e,t=(()=>{}),n=(()=>[])){e.forEach((e=>{const r=t(e);Object.keys(r).forEach((t=>{e.style[t]=""})),n(e).forEach((t=>e.classList.contains(t)&&e.classList.remove(t)))}))}const ao={outline:"rgba(255, 255, 102, 0.7) solid 2px"};let uo,po,fo,ho,mo,go,vo,$o,bo,yo,wo,xo=!1,ko=!1,Eo=!1,So=[];const Co=new Map,To=new Map,Oo=new WeakMap;function Lo(e,t){Co.get(t).delete(e),Dr(),0===Co.get(t).size&&Co.delete(t)}function Do(){window.addEventListener("mousemove",Jr),window.addEventListener("touchmove",Jr),to();const e=Co.get(ho);for(const t of e)t.addEventListener(dr,_o),t.addEventListener(pr,No),t.addEventListener(fr,Fo);window.addEventListener(hr,Ro);const t=Math.max(100,...Array.from(e.keys()).map((e=>To.get(e).dropAnimationDurationMs)));!function(e,t,n=200){let r,o,s,l=!1;const i=Array.from(t).sort(((e,t)=>qr(t)-qr(e)));!function t(){const c=Ir(e),a=Xr(c,r);if(!a&&s&&Math.abs(s.x-c.x)<10&&Math.abs(s.y-c.y)<10)return void(Kr=window.setTimeout(t,n));if(function(e){const t=jr(e);return t.right<0||t.left>document.documentElement.scrollWidth||t.bottom<0||t.top>document.documentElement.scrollHeight}(e))return void function(e){window.dispatchEvent(new CustomEvent(hr,{detail:{draggedEl:e}}))}(e);s=c;let u=!1;for(const t of i){a&&Hr(r);const n=zr(e,t);if(null===n)continue;const{index:s}=n;u=!0,t!==r?(r&&$r(r,e,t),vr(t,n,e),r=t):s!==o&&(br(t,n,e),o=s);break}!u&&l&&r?(function(e,t){e.dispatchEvent(new CustomEvent(pr,{detail:{draggedEl:t,type:gr}}))}(r,e),r=void 0,o=void 0,l=!1):l=!0,Kr=window.setTimeout(t,n)}()}(po,e,1.07*t)}function Ao(e){return e.findIndex((e=>!!e.isDndShadowItem&&e.id!==Cr))}function _o(e){let{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo)return;if(Eo=!1,t=t.filter((e=>e.id!==vo.id)),mo!==e.currentTarget){const e=To.get(mo).items.filter((e=>!e.isDndShadowItem));ur(mo,e,{trigger:"dragEnteredAnother",id:fo.id,source:kr})}else{const e=function(e){return e.findIndex((e=>e.id===Cr))}(t);-1!==e&&t.splice(e,1)}const{index:r,isProximityBased:o}=e.detail.indexObj,s=o&&r===e.currentTarget.children.length-1?r+1:r;$o=e.currentTarget,t.splice(s,0,vo),ur(e.currentTarget,t,{trigger:"draggedEntered",id:fo.id,source:kr})}function No(e){if(!xo)return;const{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo&&e.currentTarget!==$o)return;const r=Ao(t),o=t.splice(r,1)[0];$o=void 0;const{type:s,theOtherDz:l}=e.detail;if(s===gr||s===mr&&l!==mo&&To.get(l).dropFromOthersDisabled){Eo=!0,$o=mo;const e=To.get(mo).items;e.splice(go,0,o),ur(mo,e,{trigger:"draggedLeftAll",id:fo.id,source:kr})}ur(e.currentTarget,t,{trigger:"draggedLeft",id:fo.id,source:kr})}function Fo(e){const{items:t,dropFromOthersDisabled:n}=To.get(e.currentTarget);if(n&&e.currentTarget!==mo)return;Eo=!1;const{index:r}=e.detail.indexObj,o=Ao(t);t.splice(o,1),t.splice(r,0,vo),ur(e.currentTarget,t,{trigger:"draggedOverIndex",id:fo.id,source:kr})}function jo(e){e.preventDefault();const t=e.touches?e.touches[0]:e;yo={x:t.clientX,y:t.clientY},po.style.transform=`translate3d(${yo.x-bo.x}px, ${yo.y-bo.y}px, 0)`}function Ro(){ko=!0,window.removeEventListener("mousemove",jo),window.removeEventListener("touchmove",jo),window.removeEventListener("mouseup",Ro),window.removeEventListener("touchend",Ro),function(){window.removeEventListener("mousemove",Jr),window.removeEventListener("touchmove",Jr),Vr=void 0,window.clearTimeout(eo),Qr();const e=Co.get(ho);for(const t of e)t.removeEventListener(dr,_o),t.removeEventListener(pr,No),t.removeEventListener(fr,Fo);window.removeEventListener(hr,Ro),clearTimeout(Kr),Yr(),Pr()}(),function(e){e.style.cursor="grab"}(po),$o||($o=mo);let{items:e,type:t}=To.get($o);co(Co.get(t),(e=>To.get(e).dropTargetStyle),(e=>To.get(e).dropTargetClasses));let n=Ao(e);-1===n&&(n=go),e=e.map((e=>e.isDndShadowItem?fo:e)),function(e,t){const n=Nr($o.children[e]),r=n.left-parseFloat(po.style.left),o=n.top-parseFloat(po.style.top),{dropAnimationDurationMs:s}=To.get($o),l=`transform ${s}ms ease`;po.style.transition=po.style.transition?po.style.transition+","+l:l,po.style.transform=`translate3d(${r}px, ${o}px, 0)`,window.setTimeout(t,s)}(n,(function(){var t;wo(),ar($o,e,{trigger:Eo?"droppedOutsideOfAny":wr,id:fo.id,source:kr}),$o!==mo&&ar(mo,To.get(mo).items,{trigger:xr,id:fo.id,source:kr}),(t=$o.children[n]).style.visibility="",t.removeAttribute(Sr),po.remove(),uo.remove(),So.length&&(So.forEach((({dz:e,destroy:t})=>{t(),e.remove()})),So=[]),po=void 0,uo=void 0,fo=void 0,ho=void 0,mo=void 0,go=void 0,vo=void 0,$o=void 0,bo=void 0,yo=void 0,xo=!1,ko=!1,wo=void 0,Eo=!1}))}const Uo={DND_ZONE_ACTIVE:"dnd-zone-active",DND_ZONE_DRAG_DISABLED:"dnd-zone-drag-disabled"},Io={[Uo.DND_ZONE_ACTIVE]:"Tab to one the items and press space-bar or enter to start dragging it",[Uo.DND_ZONE_DRAG_DISABLED]:"This is a disabled drag and drop list"};let Mo;function Po(){Mo||(Mo=document.createElement("div"),Mo.id="dnd-action-aria-alert",Mo.style.position="fixed",Mo.style.bottom="0",Mo.style.left="0",Mo.style.zIndex="-5",Mo.style.opacity="0",Mo.style.height="0",Mo.style.width="0",Mo.setAttribute("role","alert"),document.body.prepend(Mo),Object.entries(Io).forEach((([e,t])=>document.body.prepend(function(e,t){const n=document.createElement("div");return n.id=e,n.innerHTML=`

    ${t}

    `,n.style.display="none",n.style.position="fixed",n.style.zIndex="-5",n}(e,t)))))}function Ho(e){if(Ar)return;Mo||Po(),Mo.innerHTML="";const t=document.createTextNode(e);Mo.appendChild(t),Mo.style.display="none",Mo.style.display="inline"}const zo={outline:"rgba(255, 255, 102, 0.7) solid 2px"};let Bo,Go,qo,Wo,Xo=!1,Yo="",Ko="";const Vo=new WeakSet,Jo=new WeakMap,Zo=new WeakMap,Qo=new Map,es=new Map,ts=new Map;let ns;function rs(e,t){Go===e&&cs(),ts.get(t).delete(e),Dr(),0===ts.get(t).size&&ts.delete(t),0===ts.size&&(window.removeEventListener("keydown",os),window.removeEventListener("click",ss),ns=void 0,!Ar&&Mo&&(Object.keys(Io).forEach((e=>document.getElementById(e)?.remove())),Mo.remove(),Mo=void 0))}function os(e){Xo&&"Escape"===e.key&&cs()}function ss(){Xo&&(Vo.has(document.activeElement)||cs())}function ls(e){if(!Xo)return;const t=e.currentTarget;if(t===Go)return;Yo=t.getAttribute("aria-label")||"";const{items:n}=es.get(Go),r=n.find((e=>e.id===Wo)),o=n.indexOf(r),s=n.splice(o,1)[0],{items:l,autoAriaDisabled:i}=es.get(t);t.getBoundingClientRect().tope(es.get(t))))}function cs(e=!0){es.get(Go).autoAriaDisabled||Ho(`Stopped dragging item ${Ko}`),Vo.has(document.activeElement)&&document.activeElement.blur(),e&&ur(Go,es.get(Go).items,{trigger:"dragStopped",id:Wo,source:Er}),co(ts.get(Bo),(e=>es.get(e).dropTargetStyle),(e=>es.get(e).dropTargetClasses)),qo=null,Wo=null,Ko="",Bo=null,Go=null,Yo="",Xo=!1,is()}function as(e,t){const n={items:void 0,type:void 0,dragDisabled:!1,zoneTabIndex:0,dropFromOthersDisabled:!1,dropTargetStyle:zo,dropTargetClasses:[],autoAriaDisabled:!1};function r(e,t,n){e.length<=1||e.splice(n,1,e.splice(t,1,e[n])[0])}function o(t){switch(t.key){case"Enter":case" ":if((void 0!==t.target.disabled||t.target.href||t.target.isContentEditable)&&!Vo.has(t.target))return;t.preventDefault(),t.stopPropagation(),Xo?cs():s(t);break;case"ArrowDown":case"ArrowRight":{if(!Xo)return;t.preventDefault(),t.stopPropagation();const{items:o}=es.get(e),s=Array.from(e.children),l=s.indexOf(t.currentTarget);l0&&(n.autoAriaDisabled||Ho(`Moved item ${Ko} to position ${s} in the list ${Yo}`),r(o,s,s-1),ar(e,o,{trigger:wr,id:Wo,source:Er}));break}}}function s(t){(function(t){const{items:n}=es.get(e),r=Array.from(e.children),o=r.indexOf(t);qo=t,qo.tabIndex=0,Wo=n[o].id,Ko=r[o].getAttribute("aria-label")||""})(t.currentTarget),Go=e,Bo=n.type,Xo=!0;const r=Array.from(ts.get(n.type)).filter((e=>e===Go||!es.get(e).dropFromOthersDisabled));if(io(r,(e=>es.get(e).dropTargetStyle),(e=>es.get(e).dropTargetClasses)),!n.autoAriaDisabled){let e=`Started dragging item ${Ko}. Use the arrow keys to move it within its list ${Yo}`;r.length>1&&(e+=", or tab to another list in order to move the item into it"),Ho(e)}ur(e,es.get(e).items,{trigger:yr,id:Wo,source:Er}),is()}function l(e){Xo&&e.currentTarget!==qo&&(e.stopPropagation(),cs(!1),s(e))}function i({items:t=[],type:r="--any--",dragDisabled:s=!1,zoneTabIndex:i=0,dropFromOthersDisabled:c=!1,dropTargetStyle:a=zo,dropTargetClasses:u=[],autoAriaDisabled:d=!1}){var p,f;n.items=[...t],n.dragDisabled=s,n.dropFromOthersDisabled=c,n.zoneTabIndex=i,n.dropTargetStyle=a,n.dropTargetClasses=u,n.autoAriaDisabled=d,n.type&&r!==n.type&&rs(e,n.type),n.type=r,p=e,f=r,0===ts.size&&(ns=Ar?null:("complete"===document.readyState?Po():window.addEventListener("DOMContentLoaded",Po),{...Uo}),window.addEventListener("keydown",os),window.addEventListener("click",ss)),ts.has(f)||ts.set(f,new Set),ts.get(f).has(p)||(ts.get(f).add(p),Lr()),d||(e.setAttribute("aria-disabled",s),e.setAttribute("role","list"),e.setAttribute("aria-describedby",s?ns.DND_ZONE_DRAG_DISABLED:ns.DND_ZONE_ACTIVE)),es.set(e,n),e.tabIndex=Xo?e===Go||qo.contains(e)||n.dropFromOthersDisabled||Go&&n.type!==es.get(Go).type?-1:0:n.zoneTabIndex,e.addEventListener("focus",ls);for(let t=0;t{i(e)},destroy:()=>{rs(e,n.type),es.delete(e),Qo.delete(e)}};return Qo.set(e,c),c}function us(e,t){ds(t);const n=function(e,t){let n=!1;const r={items:void 0,type:void 0,flipDurationMs:0,dragDisabled:!1,morphDisabled:!1,dropFromOthersDisabled:!1,dropTargetStyle:ao,dropTargetClasses:[],transformDraggedElement:()=>{},centreDraggedOnCursor:!1};let o=new Map;function s(){window.removeEventListener("mousemove",i),window.removeEventListener("touchmove",i),window.removeEventListener("mouseup",l),window.removeEventListener("touchend",l)}function l(){s(),uo=void 0,bo=void 0,yo=void 0}function i(e){e.preventDefault();const t=e.touches?e.touches[0]:e;yo={x:t.clientX,y:t.clientY},(Math.abs(yo.x-bo.x)>=3||Math.abs(yo.y-bo.y)>=3)&&(s(),function(){xo=!0;const e=o.get(uo);go=e,mo=uo.parentElement;const t=mo.getRootNode(),n=t.body||t,{items:s,type:l,centreDraggedOnCursor:i}=r;fo={...s[e]},ho=l,vo={...fo,isDndShadowItem:!0};const c={...vo,[Tr]:Cr};po=function(e,t){const n=e.getBoundingClientRect(),r=function(e){const t=e.cloneNode(!0),n=[],r="SELECT"===e.tagName,o=r?[e]:[...e.querySelectorAll("select")];for(const e of o)n.push(e.value);if(o.length<=0)return t;const s=r?[t]:[...t.querySelectorAll("select")];for(let e=0;e{r.style.top=`${o}px`,r.style.left=`${s}px`}),0)}return r.style.margin="0",r.style.boxSizing="border-box",r.style.height=`${n.height}px`,r.style.width=`${n.width}px`,r.style.transition=`${no("top")}, ${no("left")}, ${no("background-color")}, ${no("opacity")}, ${no("color")} `,window.setTimeout((()=>r.style.transition+=`, ${no("width")}, ${no("height")}`),0),r.style.zIndex="9999",r.style.cursor="grabbing",r}(uo,i&&yo),window.requestAnimationFrame((function e(){po.parentElement?window.requestAnimationFrame(e):(n.appendChild(po),po.focus(),Do(),lo(uo),n.appendChild(uo))})),io(Array.from(Co.get(r.type)).filter((e=>e===mo||!To.get(e).dropFromOthersDisabled)),(e=>To.get(e).dropTargetStyle),(e=>To.get(e).dropTargetClasses)),s.splice(e,1,c),wo=function(e){const t=e.style.minHeight;e.style.minHeight=window.getComputedStyle(e).getPropertyValue("height");const n=e.style.minWidth;return e.style.minWidth=window.getComputedStyle(e).getPropertyValue("width"),function(){e.style.minHeight=t,e.style.minWidth=n}}(mo),ur(mo,s,{trigger:yr,id:fo.id,source:kr}),window.addEventListener("mousemove",jo,{passive:!1}),window.addEventListener("touchmove",jo,{passive:!1,capture:!1}),window.addEventListener("mouseup",Ro,{passive:!1}),window.addEventListener("touchend",Ro,{passive:!1})}())}function c(e){if(e.target!==e.currentTarget&&(void 0!==e.target.value||e.target.isContentEditable))return;if(e.button)return;if(xo)return;e.stopPropagation();const t=e.touches?e.touches[0]:e;bo={x:t.clientX,y:t.clientY},yo={...bo},uo=e.currentTarget,window.addEventListener("mousemove",i,{passive:!1}),window.addEventListener("touchmove",i,{passive:!1,capture:!1}),window.addEventListener("mouseup",l,{passive:!1}),window.addEventListener("touchend",l,{passive:!1})}function a({items:t,flipDurationMs:s=0,type:l="--any--",dragDisabled:i=!1,morphDisabled:a=!1,dropFromOthersDisabled:u=!1,dropTargetStyle:d=ao,dropTargetClasses:p=[],transformDraggedElement:f=(()=>{}),centreDraggedOnCursor:h=!1}){var m,g;function v(e,t){return To.get(e)?To.get(e)[t]:r[t]}r.dropAnimationDurationMs=s,r.type&&l!==r.type&&Lo(e,r.type),r.type=l,m=e,g=l,Co.has(g)||Co.set(g,new Set),Co.get(g).has(m)||(Co.get(g).add(m),Lr()),r.items=[...t],r.dragDisabled=i,r.morphDisabled=a,r.transformDraggedElement=f,r.centreDraggedOnCursor=h,!n||!xo||ko||function(e,t){if(Object.keys(e).length!==Object.keys(t).length)return!1;for(const n in e)if(!{}.hasOwnProperty.call(t,n)||t[n]!==e[n])return!1;return!0}(d,r.dropTargetStyle)&&function(e,t){if(e.length!==t.length)return!1;for(let n=0;nr.dropTargetStyle),(()=>p)),io([e],(()=>d),(()=>p))),r.dropTargetStyle=d,r.dropTargetClasses=[...p],n&&xo&&r.dropFromOthersDisabled!==u&&(u?co([e],(e=>v(e,"dropTargetStyle")),(e=>v(e,"dropTargetClasses"))):io([e],(e=>v(e,"dropTargetStyle")),(e=>v(e,"dropTargetClasses")))),r.dropFromOthersDisabled=u,To.set(e,r);const $=Ao(r.items);for(let t=0;tr.transformDraggedElement(po,fo,t))),(b=s).style.visibility="hidden",b.setAttribute(Sr,"true"))}var b}return a(t),{update:e=>{a(e)},destroy:()=>{function t(){Lo(e,To.get(e).type),To.delete(e)}var n,r;xo?(n=e,r=t,So.push({dz:n,destroy:r}),window.requestAnimationFrame((()=>{lo(n),document.body.appendChild(n)}))):t()}}}(e,t),r=as(e,t);return{update:e=>{ds(e),n.update(e),r.update(e)},destroy:()=>{n.destroy(),r.destroy()}}}function ds(e){const{items:t,flipDurationMs:n,type:r,dragDisabled:o,morphDisabled:s,dropFromOthersDisabled:l,zoneTabIndex:i,dropTargetStyle:c,dropTargetClasses:a,transformDraggedElement:u,autoAriaDisabled:d,centreDraggedOnCursor:p,...f}=e;if(Object.keys(f).length>0&&console.warn("dndzone will ignore unknown options",f),!t)throw new Error("no 'items' key provided to dndzone");const h=t.find((e=>!{}.hasOwnProperty.call(e,Tr)));if(h)throw new Error(`missing 'id' property for item ${Gr(h)}`);if(a&&!Array.isArray(a))throw new Error(`dropTargetClasses should be an array but instead it is a ${typeof a}, ${Gr(a)}`);if(i&&(m=i,isNaN(m)||(0|(g=parseFloat(m)))!==g))throw new Error(`zoneTabIndex should be a number but instead it is a ${typeof i}, ${Gr(i)}`);var m,g}function ps(e,{delay:n=0,duration:r=400,easing:o=t}={}){const s=+getComputedStyle(e).opacity;return{delay:n,duration:r,easing:o,css:e=>"opacity: "+e*s}}function fs(e,{delay:t=0,duration:n=400,easing:r=Ot,x:o=0,y:s=0,opacity:l=0}={}){const i=getComputedStyle(e),c=+i.opacity,a="none"===i.transform?"":i.transform,u=c*(1-l);return{delay:t,duration:n,easing:r,css:(e,t)=>`\n\t\t\ttransform: ${a} translate(${(1-e)*o}px, ${(1-e)*s}px);\n\t\t\topacity: ${c-u*t}`}}const hs=["Activate","AddUndo","BeforeAddUndo","BeforeExecCommand","BeforeGetContent","BeforeRenderUI","BeforeSetContent","BeforePaste","Blur","Change","ClearUndos","Click","ContextMenu","Copy","Cut","Dblclick","Deactivate","Dirty","Drag","DragDrop","DragEnd","DragGesture","DragOver","Drop","ExecCommand","Focus","FocusIn","FocusOut","GetContent","Hide","Init","KeyDown","KeyPress","KeyUp","LoadContent","MouseDown","MouseEnter","MouseLeave","MouseMove","MouseOut","MouseOver","MouseUp","NodeChange","ObjectResizeStart","ObjectResized","ObjectSelected","Paste","PostProcess","PostRender","PreProcess","ProgressState","Redo","Remove","Reset","ResizeEditor","SaveContent","SelectionChange","SetAttrib","SetContent","Show","Submit","Undo","VisualAid"];function ms(e){let t;return{c(){var n,r;t=O("textarea"),R(t,"id",e[0]),n=t,r="visibility",null==="hidden"?n.style.removeProperty(r):n.style.setProperty(r,"hidden","")},m(n,r){S(n,t,r),e[18](t)},p(e,n){1&n&&R(t,"id",e[0])},d(n){n&&C(t),e[18](null)}}}function gs(e){let t;return{c(){t=O("div"),R(t,"id",e[0])},m(n,r){S(n,t,r),e[17](t)},p(e,n){1&n&&R(t,"id",e[0])},d(n){n&&C(t),e[17](null)}}}function vs(t){let n;function r(e,t){return e[1]?gs:ms}let o=r(t),s=o(t);return{c(){n=O("div"),s.c(),R(n,"class",t[2])},m(e,r){S(e,n,r),s.m(n,null),t[19](n)},p(e,[t]){o===(o=r(e))&&s?s.p(e,t):(s.d(1),s=o(e),s&&(s.c(),s.m(n,null))),4&t&&R(n,"class",e[2])},i:e,o:e,d(e){e&&C(n),s.d(),t[19](null)}}}const $s=e=>e+"_"+Math.floor(1e9*Math.random())+String(Date.now());let bs=(()=>{let e={listeners:[],scriptId:$s("tiny-script"),scriptLoaded:!1,injected:!1};return{load:(t,n,r)=>{e.scriptLoaded?r():(e.listeners.push(r),e.injected||((t,n,r,o)=>{e.injected=!0;const s=n.createElement("script");s.referrerPolicy="origin",s.type="application/javascript",s.src=r,s.onload=()=>{e.listeners.forEach((e=>e())),e.scriptLoaded=!0},n.head&&n.head.appendChild(s)})(e.scriptId,t,n))}}})();function ys(e,t,n){var r;let o,s,l,{id:c=$s("tinymce-svelte")}=t,{inline:a}=t,{disabled:u=!1}=t,{apiKey:d="no-api-key"}=t,{channel:p="6"}=t,{scriptSrc:f}=t,{conf:h={}}=t,{modelEvents:m="change input undo redo"}=t,{value:g=""}=t,{text:v=""}=t,{cssClass:$="tinymce-wrapper"}=t,b="",y=u;const w=function(){const e=W();return(t,n,{cancelable:r=!1}={})=>{const o=e.$$.callbacks[t];if(o){const s=P(t,n,{cancelable:r});return o.slice().forEach((t=>{t.call(e,s)})),!s.defaultPrevented}return!0}}(),x=()=>{const e="undefined"!=typeof window?window:i.g;return e&&e.tinymce?e.tinymce:null},k=()=>{const e=Object.assign(Object.assign({},h),{target:s,inline:void 0!==a?a:void 0!==h.inline&&h.inline,readonly:u,setup:e=>{n(14,l=e),e.on("init",(()=>{e.setContent(g),e.on(m,(()=>{n(15,b=e.getContent()),b!==g&&(n(5,g=b),n(6,v=e.getContent({format:"text"})))}))})),((e,t)=>{hs.forEach((n=>{e.on(n,(r=>{t(n.toLowerCase(),{eventName:n,event:r,editor:e})}))}))})(e,w),"function"==typeof h.setup&&h.setup(e)}});n(4,s.style.visibility="",s),x().init(e)};return X((()=>{if(null!==x())setTimeout(k,0);else{const e=f||`https://cdn.tiny.cloud/1/${d}/tinymce/${p}/tinymce.min.js`;bs.load(o.ownerDocument,e,(()=>{k()}))}})),Y((()=>{var e;l&&(null===(e=x())||void 0===e||e.remove(l))})),e.$$set=e=>{"id"in e&&n(0,c=e.id),"inline"in e&&n(1,a=e.inline),"disabled"in e&&n(7,u=e.disabled),"apiKey"in e&&n(8,d=e.apiKey),"channel"in e&&n(9,p=e.channel),"scriptSrc"in e&&n(10,f=e.scriptSrc),"conf"in e&&n(11,h=e.conf),"modelEvents"in e&&n(12,m=e.modelEvents),"value"in e&&n(5,g=e.value),"text"in e&&n(6,v=e.text),"cssClass"in e&&n(2,$=e.cssClass)},e.$$.update=()=>{123040&e.$$.dirty&&(l&&b!==g&&(l.setContent(g),n(6,v=l.getContent({format:"text"}))),l&&u!==y&&(n(16,y=u),"function"==typeof(null===n(13,r=l.mode)||void 0===r?void 0:r.set)?l.mode.set(u?"readonly":"design"):l.setMode(u?"readonly":"design")))},[c,a,$,o,s,g,v,u,d,p,f,h,m,r,l,b,y,function(e){J[e?"unshift":"push"]((()=>{s=e,n(4,s)}))},function(e){J[e?"unshift":"push"]((()=>{s=e,n(4,s)}))},function(e){J[e?"unshift":"push"]((()=>{o=e,n(3,o)}))}]}const ws=class extends Le{constructor(e){super(),Oe(this,e,ys,vs,l,{id:0,inline:1,disabled:7,apiKey:8,channel:9,scriptSrc:10,conf:11,modelEvents:12,value:5,text:6,cssClass:2})}};function xs(t){let n,r,o;return{c(){n=L("svg"),r=L("g"),o=L("path"),R(o,"d","M38,52a2,2,0,0,1-1.41-.59l-24-24a2,2,0,0,1,0-2.82l24-24a2,2,0,0,1,2.82,0,2,2,0,0,1,0,2.82L16.83,26,39.41,48.59A2,2,0,0,1,38,52Z"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 52 52"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r),x(r,o)},p:e,i:e,o:e,d(e){e&&C(n)}}}const ks=class extends Le{constructor(e){super(),Oe(this,e,null,xs,l,{})}};function Es(t){let n,r;return{c(){n=L("svg"),r=L("polygon"),R(r,"points","0,490 490,490 245,0"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 490 490"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r)},p:e,i:e,o:e,d(e){e&&C(n)}}}const Ss=class extends Le{constructor(e){super(),Oe(this,e,null,Es,l,{})}};function Cs(e){let t,n,r,l,i,c,a,u,d,p,f,h,m;return r=new Ss({}),a=new Ss({}),{c(){t=O("div"),n=O("a"),Se(r.$$.fragment),l=D(" move up"),i=A(),c=O("a"),Se(a.$$.fragment),u=D(" move down"),d=A(),p=O("a"),p.textContent="remove",R(n,"href","#up"),R(n,"class","small up svelte-1ahjj8t"),M(n,"control-disabled",!e[0]),R(c,"href","#dowm"),R(c,"class","small down svelte-1ahjj8t"),M(c,"control-disabled",!e[1]),R(p,"href","#remove"),R(p,"class","small remove svelte-1ahjj8t"),M(p,"control-disabled",!e[2]),R(t,"class","controls svelte-1ahjj8t")},m(o,g){S(o,t,g),x(t,n),Ce(r,n,null),x(n,l),x(t,i),x(t,c),Ce(a,c,null),x(c,u),x(t,d),x(t,p),f=!0,h||(m=[N(n,"click",j(F((function(){s(e[0])&&e[0].apply(this,arguments)})))),N(c,"click",j(F((function(){s(e[1])&&e[1].apply(this,arguments)})))),N(p,"click",j(F((function(){s(e[2])&&e[2].apply(this,arguments)}))))],h=!0)},p(t,[r]){e=t,1&r&&M(n,"control-disabled",!e[0]),2&r&&M(c,"control-disabled",!e[1]),4&r&&M(p,"control-disabled",!e[2])},i(e){f||(he(r.$$.fragment,e),he(a.$$.fragment,e),f=!0)},o(e){me(r.$$.fragment,e),me(a.$$.fragment,e),f=!1},d(e){e&&C(t),Te(r),Te(a),h=!1,o(m)}}}function Ts(e,t,n){let{moveUp:r}=t,{moveDown:o}=t,{remove:s}=t;return e.$$set=e=>{"moveUp"in e&&n(0,r=e.moveUp),"moveDown"in e&&n(1,o=e.moveDown),"remove"in e&&n(2,s=e.remove)},[r,o,s]}const Os=class extends Le{constructor(e){super(),Oe(this,e,Ts,Cs,l,{moveUp:0,moveDown:1,remove:2})}};function Ls(e){let t,n,r,s,l,i;return{c(){t=O("div"),n=O("span"),n.textContent="URL",r=A(),s=O("span"),R(n,"class","label svelte-13pfiuq"),R(s,"class","url svelte-13pfiuq"),R(s,"aria-label","URL"),R(s,"contenteditable",""),void 0===e[3]&&ne((()=>e[14].call(s))),R(t,"class","field svelte-13pfiuq")},m(o,c){S(o,t,c),x(t,n),x(t,r),x(t,s),void 0!==e[3]&&(s.innerHTML=e[3]),l||(i=[N(s,"input",e[14]),N(s,"keydown",e[11])],l=!0)},p(e,t){8&t&&e[3]!==s.innerHTML&&(s.innerHTML=e[3])},d(e){e&&C(t),l=!1,o(i)}}}function Ds(t){let n,r,o,s;return{c(){n=O("textarea"),n.disabled=r=t[2]&&t[4],R(n,"class","svelte-13pfiuq")},m(e,r){S(e,n,r),I(n,t[1]),o||(s=N(n,"input",t[16]),o=!0)},p(e,t){20&t&&r!==(r=e[2]&&e[4])&&(n.disabled=r),2&t&&I(n,e[1])},i:e,o:e,d(e){e&&C(n),o=!1,s()}}}function As(e){let t,n,r;function o(t){e[15](t)}let s={disabled:e[2]&&e[4],apiKey:"okcf1pz4foebbixgcdydveaavknj41e62etldhxguuyug0v3",conf:e[12]};return void 0!==e[1]&&(s.value=e[1]),t=new ws({props:s}),J.push((()=>Ee(t,"value",o))),{c(){Se(t.$$.fragment)},m(e,n){Ce(t,e,n),r=!0},p(e,r){const o={};20&r&&(o.disabled=e[2]&&e[4]),!n&&2&r&&(n=!0,o.value=e[1],re((()=>n=!1))),t.$set(o)},i(e){r||(he(t.$$.fragment,e),r=!0)},o(e){me(t.$$.fragment,e),r=!1},d(e){Te(t,e)}}}function _s(e){let t,n,r,o,s;return{c(){t=O("label"),n=O("input"),r=D(" Fetch contents"),R(n,"type","checkbox"),R(n,"class","svelte-13pfiuq"),R(t,"class","svelte-13pfiuq")},m(l,i){S(l,t,i),x(t,n),n.checked=e[2],x(t,r),o||(s=N(n,"change",e[17]),o=!0)},p(e,t){4&t&&(n.checked=e[2])},d(e){e&&C(t),o=!1,s()}}}function Ns(e){let t,n,r,o;return r=new Os({props:{moveUp:e[6],moveDown:e[7],remove:e[8]}}),{c(){t=O("span"),n=A(),Se(r.$$.fragment)},m(e,s){S(e,t,s),S(e,n,s),Ce(r,e,s),o=!0},p(e,t){const n={};64&t&&(n.moveUp=e[6]),128&t&&(n.moveDown=e[7]),256&t&&(n.remove=e[8]),r.$set(n)},i(e){o||(he(r.$$.fragment,e),o=!0)},o(e){me(r.$$.fragment,e),o=!1},d(e){e&&C(t),e&&C(n),Te(r,e)}}}function Fs(e){let t,n,r,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k;r=new ks({});let E=void 0!==e[3]&&Ls(e);const T=[As,Ds],L=[];function j(e,t){return e[10].useTiny?0:1}m=j(e),g=L[m]=T[m](e);let U=e[4]&&_s(e),I=!e[9]&&Ns(e);return{c(){t=O("h3"),n=O("a"),Se(r.$$.fragment),l=D(" back"),i=A(),c=O("div"),a=O("div"),u=O("span"),u.textContent="Title",d=A(),p=O("span"),f=A(),E&&E.c(),h=A(),g.c(),v=A(),U&&U.c(),$=A(),I&&I.c(),b=_(),R(n,"href","#home"),R(n,"class","homelink svelte-13pfiuq"),R(t,"class","back svelte-13pfiuq"),R(u,"class","label svelte-13pfiuq"),R(p,"class","title svelte-13pfiuq"),R(p,"aria-label","Title"),R(p,"contenteditable",""),void 0===e[0]&&ne((()=>e[13].call(p))),R(a,"class","field svelte-13pfiuq"),R(c,"class","chapter edit svelte-13pfiuq")},m(o,g){S(o,t,g),x(t,n),Ce(r,n,null),x(n,l),S(o,i,g),S(o,c,g),x(c,a),x(a,u),x(a,d),x(a,p),void 0!==e[0]&&(p.innerHTML=e[0]),x(c,f),E&&E.m(c,null),x(c,h),L[m].m(c,null),x(c,v),U&&U.m(c,null),S(o,$,g),I&&I.m(o,g),S(o,b,g),y=!0,w||(k=[N(n,"click",F((function(){s(e[5])&&e[5].apply(this,arguments)}))),N(p,"input",e[13]),N(p,"keydown",e[11])],w=!0)},p(t,n){e=t,1&n&&e[0]!==p.innerHTML&&(p.innerHTML=e[0]),void 0!==e[3]?E?E.p(e,n):(E=Ls(e),E.c(),E.m(c,h)):E&&(E.d(1),E=null);let r=m;m=j(e),m===r?L[m].p(e,n):(pe(),me(L[r],1,1,(()=>{L[r]=null})),fe(),g=L[m],g?g.p(e,n):(g=L[m]=T[m](e),g.c()),he(g,1),g.m(c,v)),e[4]?U?U.p(e,n):(U=_s(e),U.c(),U.m(c,null)):U&&(U.d(1),U=null),e[9]?I&&(pe(),me(I,1,1,(()=>{I=null})),fe()):I?(I.p(e,n),512&n&&he(I,1)):(I=Ns(e),I.c(),he(I,1),I.m(b.parentNode,b))},i(e){y||(he(r.$$.fragment,e),he(g),he(I),y=!0)},o(e){me(r.$$.fragment,e),me(g),me(I),y=!1},d(e){e&&C(t),Te(r),e&&C(i),e&&C(c),E&&E.d(),L[m].d(),U&&U.d(),e&&C($),I&&I.d(e),e&&C(b),w=!1,o(k)}}}function js(e){let t,n;return t=new _e({props:{onSubmit:e[5],$$slots:{default:[Fs]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,[n]){const r={};32&n&&(r.onSubmit=e[5]),264191&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Rs(e,t,n){let r;a(e,Be,(e=>n(10,r=e)));let{title:o}=t,{content:s}=t,{needsFetching:l}=t,{url:i}=t,{canFetch:c=!1}=t,{close:u}=t,{moveUp:d}=t,{moveDown:p}=t,{remove:f}=t,{hideControls:h=!1}=t;return l=null==l||l,s=null!=s?s:"",e.$$set=e=>{"title"in e&&n(0,o=e.title),"content"in e&&n(1,s=e.content),"needsFetching"in e&&n(2,l=e.needsFetching),"url"in e&&n(3,i=e.url),"canFetch"in e&&n(4,c=e.canFetch),"close"in e&&n(5,u=e.close),"moveUp"in e&&n(6,d=e.moveUp),"moveDown"in e&&n(7,p=e.moveDown),"remove"in e&&n(8,f=e.remove),"hideControls"in e&&n(9,h=e.hideControls)},e.$$.update=()=>{1&e.$$.dirty&&n(0,o=o.replace(/<[^>]*>/g,""))},[o,s,l,i,c,u,d,p,f,h,r,e=>{"Enter"!==e.key&&13!==e.keyCode||e.preventDefault()},{plugins:"code",toolbar:"undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | outdent indent | code"},function(){o=this.innerHTML,n(0,o)},function(){i=this.innerHTML,n(3,i)},function(e){s=e,n(1,s)},function(){s=this.value,n(1,s)},function(){l=this.checked,n(2,l)}]}const Us=class extends Le{constructor(e){super(),Oe(this,e,Rs,js,l,{title:0,content:1,needsFetching:2,url:3,canFetch:4,close:5,moveUp:6,moveDown:7,remove:8,hideControls:9})}};function Is(e){let t,n;return{c(){t=O("span"),n=D(e[5]),R(t,"class","content svelte-1ltngm7")},m(e,r){S(e,t,r),x(t,n)},p(e,t){32&t&&U(n,e[5])},d(e){e&&C(t)}}}function Ms(e){let t,n,r,l,i,c,a,u,d,p,f,h=!e[6]&&Is(e);return u=new Os({props:{moveUp:e[2],moveDown:e[3],remove:e[4]}}),{c(){t=O("div"),n=O("div"),r=O("span"),l=D(e[0]),i=A(),h&&h.c(),c=A(),a=O("div"),Se(u.$$.fragment),R(r,"class","title svelte-1ltngm7"),R(r,"aria-label","Title"),R(n,"class","preview svelte-1ltngm7"),M(n,"empty",e[6]),R(a,"class","more svelte-1ltngm7"),R(t,"class","chapter svelte-1ltngm7"),R(t,"tabindex","0"),R(t,"title",e[0])},m(o,m){S(o,t,m),x(t,n),x(n,r),x(r,l),x(n,i),h&&h.m(n,null),x(t,c),x(t,a),Ce(u,a,null),d=!0,p||(f=[N(t,"click",(function(){s(e[1])&&e[1].apply(this,arguments)})),N(t,"contextmenu",F(e[8]))],p=!0)},p(r,[o]){e=r,(!d||1&o)&&U(l,e[0]),e[6]?h&&(h.d(1),h=null):h?h.p(e,o):(h=Is(e),h.c(),h.m(n,null)),64&o&&M(n,"empty",e[6]);const s={};4&o&&(s.moveUp=e[2]),8&o&&(s.moveDown=e[3]),16&o&&(s.remove=e[4]),u.$set(s),(!d||1&o)&&R(t,"title",e[0])},i(e){d||(he(u.$$.fragment,e),d=!0)},o(e){me(u.$$.fragment,e),d=!1},d(e){e&&C(t),h&&h.d(),Te(u),p=!1,o(f)}}}function Ps(e,t,n){let r,{title:o}=t,{content:s}=t,{select:l}=t,{moveUp:i}=t,{moveDown:c}=t,{remove:a}=t;s=null!=s?s:"";let u="";return e.$$set=e=>{"title"in e&&n(0,o=e.title),"content"in e&&n(7,s=e.content),"select"in e&&n(1,l=e.select),"moveUp"in e&&n(2,i=e.moveUp),"moveDown"in e&&n(3,c=e.moveDown),"remove"in e&&n(4,a=e.remove)},e.$$.update=()=>{128&e.$$.dirty&&n(6,r=!s||!s.trim().length),128&e.$$.dirty&&setTimeout((()=>n(5,u=At(s||""))),0)},[o,l,i,c,a,u,r,s,function(t){K.call(this,e,t)}]}const Hs=class extends Le{constructor(e){super(),Oe(this,e,Ps,Ms,l,{title:0,content:7,select:1,moveUp:2,moveDown:3,remove:4})}};function zs(e){let t,n,r;return{c(){t=O("span"),R(t,"class","edit svelte-1pemcjw"),R(t,"contenteditable",""),void 0===e[0]&&ne((()=>e[7].call(t)))},m(o,s){S(o,t,s),void 0!==e[0]&&(t.innerHTML=e[0]),n||(r=N(t,"input",e[7]),n=!0)},p(e,n){1&n&&e[0]!==t.innerHTML&&(t.innerHTML=e[0])},d(e){e&&C(t),n=!1,r()}}}function Bs(e){let t,n,r,o=At(e[0])+"";return{c(){t=O("a"),n=D(o),R(t,"href",r=Dt(e[3])),R(t,"target","_blank")},m(e,r){S(e,t,r),x(t,n)},p(e,s){1&s&&o!==(o=At(e[0])+"")&&U(n,o),8&s&&r!==(r=Dt(e[3]))&&R(t,"href",r)},d(e){e&&C(t)}}}function Gs(e){let t,n,r;return{c(){t=O("span"),R(t,"class","edit svelte-1pemcjw"),R(t,"contenteditable",""),void 0===e[1]&&ne((()=>e[8].call(t)))},m(o,s){S(o,t,s),void 0!==e[1]&&(t.innerHTML=e[1]),n||(r=N(t,"input",e[8]),n=!0)},p(e,n){2&n&&e[1]!==t.innerHTML&&(t.innerHTML=e[1])},d(e){e&&C(t),n=!1,r()}}}function qs(e){let t,n=At(e[1])+"";return{c(){t=D(n)},m(e,n){S(e,t,n)},p(e,r){2&r&&n!==(n=At(e[1])+"")&&U(t,n)},d(e){e&&C(t)}}}function Ws(e){let t,n,r,o;const s=e[6].default,l=u(s,e,e[9],null);return{c(){t=O("h3"),t.textContent="Chapters",n=A(),r=O("div"),l&&l.c()},m(e,s){S(e,t,s),S(e,n,s),S(e,r,s),l&&l.m(r,null),o=!0},p(e,t){l&&l.p&&(!o||512&t)&&f(l,s,e,e[9],o?p(s,e[9],t,null):h(e[9]),null)},i(e){o||(he(l,e),o=!0)},o(e){me(l,e),o=!1},d(e){e&&C(t),e&&C(n),e&&C(r),l&&l.d(e)}}}function Xs(e){let t,n,r,o,s,l,i,c,a,u;function d(e,t){return e[2]?zs:Bs}let p=d(e),f=p(e);function h(e,t){return e[2]?Gs:qs}let m=h(e),g=m(e),v=e[5].default&&Ws(e);return{c(){t=O("h3"),t.textContent="Title",n=A(),r=O("p"),f.c(),o=A(),s=O("h3"),s.textContent="Author",l=A(),i=O("p"),g.c(),c=A(),v&&v.c(),a=_()},m(e,d){S(e,t,d),S(e,n,d),S(e,r,d),f.m(r,null),S(e,o,d),S(e,s,d),S(e,l,d),S(e,i,d),g.m(i,null),S(e,c,d),v&&v.m(e,d),S(e,a,d),u=!0},p(e,t){p===(p=d(e))&&f?f.p(e,t):(f.d(1),f=p(e),f&&(f.c(),f.m(r,null))),m===(m=h(e))&&g?g.p(e,t):(g.d(1),g=m(e),g&&(g.c(),g.m(i,null))),e[5].default?v?(v.p(e,t),32&t&&he(v,1)):(v=Ws(e),v.c(),he(v,1),v.m(a.parentNode,a)):v&&(pe(),me(v,1,1,(()=>{v=null})),fe())},i(e){u||(he(v),u=!0)},o(e){me(v),u=!1},d(e){e&&C(t),e&&C(n),e&&C(r),f.d(),e&&C(o),e&&C(s),e&&C(l),e&&C(i),g.d(),e&&C(c),v&&v.d(e),e&&C(a)}}}function Ys(e){let t,n;return t=new _e({props:{onSubmit:e[4],$$slots:{default:[Xs]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,[n]){const r={};16&n&&(r.onSubmit=e[4]),559&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Ks(e,t,n){let{$$slots:r={},$$scope:o}=t;const s=function(e){const t={};for(const n in e)t[n]=!0;return t}(r);let{edit:l=!1}=t,{title:i}=t,{author:c}=t,{url:a=""}=t,{onSubmit:u}=t;return e.$$set=e=>{"edit"in e&&n(2,l=e.edit),"title"in e&&n(0,i=e.title),"author"in e&&n(1,c=e.author),"url"in e&&n(3,a=e.url),"onSubmit"in e&&n(4,u=e.onSubmit),"$$scope"in e&&n(9,o=e.$$scope)},[i,c,l,a,u,s,r,function(){i=this.innerHTML,n(0,i)},function(){c=this.innerHTML,n(1,c)},o]}const Vs=class extends Le{constructor(e){super(),Oe(this,e,Ks,Ys,l,{edit:2,title:0,author:1,url:3,onSubmit:4})}};function Js(e,t,n){const r=e.slice();return r[49]=t[n],r}function Zs(e,t,n){const r=e.slice();return r[52]=t[n],r[54]=n,r}function Qs(e,t){let n,r,o;function s(){return t[20](t[54])}return r=new Hs({props:{title:t[52].title,content:t[52].transformedContent,select:s,moveUp:(t[2]>0||t[54]>0)&&t[14].bind(null,t[13](t[54])),moveDown:(t[2]0||t[54]>0)&&t[14].bind(null,t[13](t[54]))),268&n[0]&&(o.moveDown=(t[2]=e[3]),R(t,"class","svelte-zxr0xc")},m(o,l){S(o,t,l),x(t,n),x(n,r),x(t,i),g&&g.m(t,null),x(t,c);for(let e=0;e<$.length;e+=1)$[e].m(t,null);x(t,a),b&&b.m(t,null),x(t,u),x(t,d),x(d,p),h||(m=[N(n,"click",F((function(){s(e[17].bind(null,e[2]-1))&&e[17].bind(null,e[2]-1).apply(this,arguments)}))),N(d,"click",F((function(){s(e[17].bind(null,e[2]+1))&&e[17].bind(null,e[2]+1).apply(this,arguments)})))],h=!0)},p(r,o){if(e=r,4&o[0]&&l!==(l=e[2]<=0)&&R(n,"disabled",l),null!==e[7].pre?g?g.p(e,o):(g=tl(e),g.c(),g.m(t,c)):g&&(g.d(1),g=null),131204&o[0]){let n;for(v=e[7].pages,n=0;n=e[3])&&R(d,"disabled",f)},d(e){e&&C(t),g&&g.d(),T($,e),b&&b.d(),h=!1,o(m)}}}function tl(e){let t,n,r,o,l,i,c=e[7].pre+"";return{c(){t=O("a"),n=D(c),o=D("\n ."),R(t,"class","small svelte-zxr0xc"),R(t,"href",r=`#page ${e[7].pre}`),R(t,"role","navigation")},m(r,c){S(r,t,c),x(t,n),S(r,o,c),l||(i=N(t,"click",F((function(){s(e[17].bind(null,e[7].pre-1))&&e[17].bind(null,e[7].pre-1).apply(this,arguments)}))),l=!0)},p(o,s){e=o,128&s[0]&&c!==(c=e[7].pre+"")&&U(n,c),128&s[0]&&r!==(r=`#page ${e[7].pre}`)&&R(t,"href",r)},d(e){e&&C(t),e&&C(o),l=!1,i()}}}function nl(e){let t,n,r,o,l,i=e[49]+1+"";return{c(){t=O("a"),n=D(i),R(t,"class","small svelte-zxr0xc"),R(t,"href",r=`#page ${e[49]+1}`),R(t,"role","navigation"),M(t,"current",e[49]==e[2])},m(r,i){S(r,t,i),x(t,n),o||(l=N(t,"click",F((function(){s(e[17].bind(null,e[49]))&&e[17].bind(null,e[49]).apply(this,arguments)}))),o=!0)},p(o,s){e=o,128&s[0]&&i!==(i=e[49]+1+"")&&U(n,i),128&s[0]&&r!==(r=`#page ${e[49]+1}`)&&R(t,"href",r),132&s[0]&&M(t,"current",e[49]==e[2])},d(e){e&&C(t),o=!1,l()}}}function rl(e){let t,n,r,o,l,i,c=e[7].post+"";return{c(){t=D(".\n "),n=O("a"),r=D(c),R(n,"class","small svelte-zxr0xc"),R(n,"href",o=`#page ${e[7].post}`),R(n,"role","navigation")},m(o,c){S(o,t,c),S(o,n,c),x(n,r),l||(i=N(n,"click",F((function(){s(e[17].bind(null,e[7].post-1))&&e[17].bind(null,e[7].post-1).apply(this,arguments)}))),l=!0)},p(t,s){e=t,128&s[0]&&c!==(c=e[7].post+"")&&U(r,c),128&s[0]&&o!==(o=`#page ${e[7].post}`)&&R(n,"href",o)},d(e){e&&C(t),e&&C(n),l=!1,i()}}}function ol(e){let t,n,r,l,i,c,a,u,d,p,f=[],h=new Map,g=e[8];const v=e=>e[52].id;for(let t=0;t0&&el(e);return{c(){t=O("div");for(let e=0;e0?$?$.p(e,r):($=el(e),$.c(),$.m(l.parentNode,l)):$&&($.d(1),$=null)},i(e){if(!u){for(let e=0;e0||e[4]>0)&&e[14].bind(null,e[4]),moveDown:(e[2]Ee(n,"title",p))),J.push((()=>Ee(n,"content",f))),J.push((()=>Ee(n,"needsFetching",h))),J.push((()=>Ee(n,"url",m))),{c(){t=O("div"),Se(n.$$.fragment),R(t,"class","svelte-zxr0xc"),M(t,"float",e[11])},m(r,o){S(r,t,o),Ce(n,t,null),a=!0,u||(d=[N(t,"introend",e[31]),N(t,"outrostart",e[32]),N(t,"outroend",e[33])],u=!0)},p(e,o){const c={};32&o[0]&&(c.canFetch=!!e[5].apiUrl),48&o[0]&&(c.close=e[26]),20&o[0]&&(c.moveUp=(e[2]>0||e[4]>0)&&e[14].bind(null,e[4])),284&o[0]&&(c.moveDown=(e[2]r=!1))),!s&&32&o[0]&&(s=!0,c.content=e[5].transformedContent,re((()=>s=!1))),!l&&32&o[0]&&(l=!0,c.needsFetching=e[5].needsFetching,re((()=>l=!1))),!i&&32&o[0]&&(i=!0,c.url=e[5].displayUrl,re((()=>i=!1))),n.$set(c),2048&o[0]&&M(t,"float",e[11])},i(e){a||(he(n.$$.fragment,e),e&&ne((()=>{c||(c=ve(t,fs,{x:50,duration:200},!0)),c.run(1)})),a=!0)},o(e){me(n.$$.fragment,e),e&&(c||(c=ve(t,fs,{x:50,duration:200},!1)),c.run(0)),a=!1},d(e){e&&C(t),Te(n),e&&c&&c.end(),u=!1,o(d)}}}function ll(e){let t,n,r,s,l,i,c,a,u,d;function p(t){e[35](t)}function f(t){e[36](t)}function h(t){e[37](t)}function m(t){e[38](t)}let g={canFetch:!!e[6].apiUrl,hideControls:!0,close:e[34]};return void 0!==e[6].title&&(g.title=e[6].title),void 0!==e[6].transformedContent&&(g.content=e[6].transformedContent),void 0!==e[6].needsFetching&&(g.needsFetching=e[6].needsFetching),void 0!==e[6].displayUrl&&(g.url=e[6].displayUrl),n=new Us({props:g}),J.push((()=>Ee(n,"title",p))),J.push((()=>Ee(n,"content",f))),J.push((()=>Ee(n,"needsFetching",h))),J.push((()=>Ee(n,"url",m))),{c(){t=O("div"),Se(n.$$.fragment),R(t,"class","svelte-zxr0xc"),M(t,"float",e[11])},m(r,o){S(r,t,o),Ce(n,t,null),a=!0,u||(d=[N(t,"introend",e[39]),N(t,"outrostart",e[40]),N(t,"outroend",e[41])],u=!0)},p(e,o){const c={};64&o[0]&&(c.canFetch=!!e[6].apiUrl),578&o[0]&&(c.close=e[34]),!r&&64&o[0]&&(r=!0,c.title=e[6].title,re((()=>r=!1))),!s&&64&o[0]&&(s=!0,c.content=e[6].transformedContent,re((()=>s=!1))),!l&&64&o[0]&&(l=!0,c.needsFetching=e[6].needsFetching,re((()=>l=!1))),!i&&64&o[0]&&(i=!0,c.url=e[6].displayUrl,re((()=>i=!1))),n.$set(c),2048&o[0]&&M(t,"float",e[11])},i(e){a||(he(n.$$.fragment,e),e&&ne((()=>{c||(c=ve(t,fs,{x:50,duration:200},!0)),c.run(1)})),a=!0)},o(e){me(n.$$.fragment,e),e&&(c||(c=ve(t,fs,{x:50,duration:200},!1)),c.run(0)),a=!1},d(e){e&&C(t),Te(n),e&&c&&c.end(),u=!1,o(d)}}}function il(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g;function v(t){e[24](t)}function $(t){e[25](t)}let b={edit:!0,onSubmit:e[23],$$slots:{default:[ol]},$$scope:{ctx:e}};void 0!==e[1].title&&(b.title=e[1].title),void 0!==e[1].author&&(b.author=e[1].author),s=new Vs({props:b}),J.push((()=>Ee(s,"title",v))),J.push((()=>Ee(s,"author",$)));let y=e[4]>=0&&sl(e),w=e[9]&&ll(e);return{c(){t=D("You are editing:\n\n"),n=O("div"),r=O("div"),Se(s.$$.fragment),c=A(),y&&y.c(),a=A(),w&&w.c(),u=A(),d=O("button"),d.textContent="Save",p=A(),f=O("a"),f.textContent="Cancel",R(r,"class","svelte-zxr0xc"),M(r,"hide",e[10]),R(n,"class","list svelte-zxr0xc"),R(d,"type","submit"),R(f,"href","#cancel"),R(f,"class","small")},m(o,l){S(o,t,l),S(o,n,l),x(n,r),Ce(s,r,null),x(n,c),y&&y.m(n,null),x(n,a),w&&w.m(n,null),S(o,u,l),S(o,d,l),S(o,p,l),S(o,f,l),h=!0,m||(g=[N(d,"click",e[42]),N(f,"click",F(e[43]))],m=!0)},p(e,t){const o={};3&t[0]&&(o.onSubmit=e[23]),990&t[0]|16777216&t[1]&&(o.$$scope={dirty:t,ctx:e}),!l&&2&t[0]&&(l=!0,o.title=e[1].title,re((()=>l=!1))),!i&&2&t[0]&&(i=!0,o.author=e[1].author,re((()=>i=!1))),s.$set(o),1024&t[0]&&M(r,"hide",e[10]),e[4]>=0?y?(y.p(e,t),16&t[0]&&he(y,1)):(y=sl(e),y.c(),he(y,1),y.m(n,a)):y&&(pe(),me(y,1,1,(()=>{y=null})),fe()),e[9]?w?(w.p(e,t),512&t[0]&&he(w,1)):(w=ll(e),w.c(),he(w,1),w.m(n,null)):w&&(pe(),me(w,1,1,(()=>{w=null})),fe())},i(e){h||(he(s.$$.fragment,e),he(y),he(w),h=!0)},o(e){me(s.$$.fragment,e),me(y),me(w),h=!1},d(e){e&&C(t),e&&C(n),Te(s),y&&y.d(),w&&w.d(),e&&C(u),e&&C(d),e&&C(p),e&&C(f),m=!1,o(g)}}}const cl=50,al=200;function ul(e,t,n){let r,o;a(e,$n,(e=>n(45,r=e))),a(e,bn,(e=>n(46,o=e)));let{stage:s}=t;const l=(i=o,Object.assign(Object.assign({},i),{chapters:i.chapters.map((e=>Object.assign({},e)))}));var i;const c=o;let u,d,p,f,h,m=0,g=-1,v=!1;const $=e=>e+cl*m,b=e=>{e.displayUrl&&(r.series.type===zt.GENERIC?e.apiUrl=e.displayUrl:e.apiUrl=Lt(e.displayUrl))};let y={pre:null,pages:[],post:null},w=!1,x=!0;return e.$$set=e=>{"stage"in e&&n(0,s=e.stage)},e.$$.update=()=>{2&e.$$.dirty[0]&&n(3,d=Math.ceil(c.chapters.length/cl-1)),6&e.$$.dirty[0]&&n(8,p=c.chapters.slice(m*cl,(m+1)*cl)),18&e.$$.dirty[0]&&n(5,f=g>=0?c.chapters[g]:void 0),140&e.$$.dirty[0]&&(n(7,y.pages=((e,t)=>{const n=new Array(t-e+1);for(let r=e;r<=t;r++)n[r-e]=r;return n})(Math.max(0,m-3),Math.min(d,m+3)),y),n(7,y.pre=0!==y.pages[0]?1:null,y),n(7,y.post=y.pages[y.pages.length-1]!==d?d+1:null,y)),32&e.$$.dirty[0]&&f&&b(f),64&e.$$.dirty[0]&&h&&b(h)},[s,c,m,d,g,f,h,y,p,v,w,x,l,$,e=>{e<1||(e===g&&n(4,--g),c.chapters.splice(e-1,2,c.chapters[e],c.chapters[e-1]),n(1,c))},e=>{e>=c.chapters.length||(e===g&&n(4,++g),c.chapters.splice(e,2,c.chapters[e+1],c.chapters[e]),n(1,c))},e=>{n(4,g=-1),c.chapters.splice(e,1),n(1,c)},e=>{if(m==e){const t=prompt("New page:",""+(m+1)),n=+t;null!==t&&!isNaN(n)&&n>0&&n<=d+1&&(e=n-1)}u=Math.sign(e-m),n(2,m=e)},e=>{(e=>{c.chapters.splice(m*cl,cl,...e.detail.items),n(1,c)})(e)},b,e=>n(4,g=$(e)),()=>{n(9,v=!0),n(6,h={id:Et(),title:"",apiUrl:"",displayUrl:""})},()=>n(1,c.chapters=[],c),()=>s.next(c),function(t){e.$$.not_equal(c.title,t)&&(c.title=t,n(1,c))},function(t){e.$$.not_equal(c.author,t)&&(c.author=t,n(1,c))},()=>{b(f),n(4,g=-1)},function(t){e.$$.not_equal(f.title,t)&&(f.title=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.transformedContent,t)&&(f.transformedContent=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.needsFetching,t)&&(f.needsFetching=t,n(5,f),n(4,g),n(1,c))},function(t){e.$$.not_equal(f.displayUrl,t)&&(f.displayUrl=t,n(5,f),n(4,g),n(1,c))},()=>{n(10,w=!0),n(11,x=!1)},()=>{n(11,x=!0)},()=>{n(10,w=!1)},()=>{b(h),c.chapters.push(h),n(1,c),n(9,v=!1)},function(t){e.$$.not_equal(h.title,t)&&(h.title=t,n(6,h))},function(t){e.$$.not_equal(h.transformedContent,t)&&(h.transformedContent=t,n(6,h))},function(t){e.$$.not_equal(h.needsFetching,t)&&(h.needsFetching=t,n(6,h))},function(t){e.$$.not_equal(h.displayUrl,t)&&(h.displayUrl=t,n(6,h))},()=>{n(10,w=!0),n(11,x=!1)},()=>{n(11,x=!0)},()=>{n(10,w=!1)},()=>s.next(c),()=>s.next(l)]}const dl=class extends Le{constructor(e){super(),Oe(this,e,ul,il,l,{stage:0},null,[-1,-1])}};function pl(e,t,n){const r=e.slice();return r[19]=t[n],r}function fl(e){let t,n,r,o;return t=new yt({props:{error:e[22],retry:e[14]}}),r=new ft({props:{backToSearch:e[2]}}),{c(){Se(t.$$.fragment),n=A(),Se(r.$$.fragment)},m(e,s){Ce(t,e,s),S(e,n,s),Ce(r,e,s),o=!0},p(e,n){const o={};16&n&&(o.error=e[22]),16&n&&(o.retry=e[14]),t.$set(o);const s={};4&n&&(s.backToSearch=e[2]),r.$set(s)},i(e){o||(he(t.$$.fragment,e),he(r.$$.fragment,e),o=!0)},o(e){me(t.$$.fragment,e),me(r.$$.fragment,e),o=!1},d(e){Te(t,e),e&&C(n),Te(r,e)}}}function hl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m;function g(e,t){return 16&t&&(l=null),null==l&&(l=!!e[18].chapters.find(Cl)),l?xl:wl}r=new Vs({props:{title:e[18].title,author:e[18].author,url:e[1].url,$$slots:{default:[yl]},$$scope:{ctx:e}}});let v=g(e,-1),$=v(e);return p=new ft({props:{backToSearch:e[2]}}),{c(){t=D("Got the following series:\n\n "),n=O("div"),Se(r.$$.fragment),s=A(),$.c(),i=A(),c=O("button"),c.textContent="Edit book",a=A(),u=O("button"),u.textContent="Export",d=A(),Se(p.$$.fragment),R(n,"class","list svelte-1hsynpq")},m(o,l){S(o,t,l),S(o,n,l),Ce(r,n,null),S(o,s,l),$.m(o,l),S(o,i,l),S(o,c,l),S(o,a,l),S(o,u,l),S(o,d,l),Ce(p,o,l),f=!0,h||(m=[N(c,"click",e[12]),N(u,"click",e[13])],h=!0)},p(e,t){const n={};16&t&&(n.title=e[18].title),16&t&&(n.author=e[18].author),2&t&&(n.url=e[1].url),8388633&t&&(n.$$scope={dirty:t,ctx:e}),r.$set(n),v===(v=g(e,t))&&$?$.p(e,t):($.d(1),$=v(e),$&&($.c(),$.m(i.parentNode,i)));const o={};4&t&&(o.backToSearch=e[2]),p.$set(o)},i(e){f||(he(r.$$.fragment,e),he(p.$$.fragment,e),f=!0)},o(e){me(r.$$.fragment,e),me(p.$$.fragment,e),f=!1},d(e){e&&C(t),e&&C(n),Te(r),e&&C(s),$.d(e),e&&C(i),e&&C(c),e&&C(a),e&&C(u),e&&C(d),Te(p,e),h=!1,o(m)}}}function ml(e){let t;return{c(){t=D("hide")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function gl(e){let t;return{c(){t=D("show")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function vl(e){let t,n,r,o,s,l,i=e[0].newChapters+"";return{c(){t=O("span"),n=D("Found "),r=D(i),o=D(" new")},m(i,c){S(i,t,c),x(t,n),x(t,r),x(t,o),s||(l=N(t,"click",e[9]),s=!0)},p(e,t){1&t&&i!==(i=e[0].newChapters+"")&&U(r,i)},d(e){e&&C(t),s=!1,l()}}}function $l(e){let t,n,r,o=[],s=new Map,l=e[18].chapters;const i=e=>e[19].id;for(let t=0;t{n||(n=ve(t,Ft,{},!0)),n.run(1)})),r=!0)},o(e){n||(n=ve(t,Ft,{},!1)),n.run(0),r=!1},d(e){e&&C(t);for(let e=0;e{k=null})),fe())},i(e){h||(he(k),h=!0)},o(e){me(k),h=!1},d(e){e&&C(t),y.d(),w&&w.d(),e&&C(p),k&&k.d(e),e&&C(f),m=!1,o(g)}}}function wl(t){let n,r,o;return{c(){n=O("button"),n.textContent="Generate EPUB"},m(e,s){S(e,n,s),r||(o=N(n,"click",t[11]),r=!0)},p:e,d(e){e&&C(n),r=!1,o()}}}function xl(t){let n,r,o;return{c(){n=O("button"),n.textContent="Fetch chapter contents"},m(e,s){S(e,n,s),r||(o=N(n,"click",t[10]),r=!0)},p:e,d(e){e&&C(n),r=!1,o()}}}function kl(e){let t,n;return t=new kt({props:{$$slots:{default:[El]},$$scope:{ctx:e}}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};8388608&n&&(r.$$scope={dirty:n,ctx:e}),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function El(e){let t;return{c(){t=D("Please wait, fetching data...")},m(e,n){S(e,t,n)},d(e){e&&C(t)}}}function Sl(e){let t,n,r,o={ctx:e,current:null,token:null,hasCatch:!0,pending:kl,then:hl,catch:fl,value:18,error:22,blocks:[,,,]};return $e(n=e[4],o),{c(){t=_(),o.block.c()},m(e,n){S(e,t,n),o.block.m(e,o.anchor=n),o.mount=()=>t.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,16&r&&n!==(n=e[4])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}const Cl=e=>!1!==e.needsFetching&&e.apiUrl;function Tl(e,t,n){let r,o,s;a(e,bn,(e=>n(15,r=e))),a(e,$n,(e=>n(16,o=e))),a(e,Be,(e=>n(17,s=e)));let{stage:l}=t,{series:i}=t,{backToSearch:c}=t,u=!1;const d=()=>r?Promise.resolve(r):(async e=>{var t,n,r;const o=await Ct(new URL(e.url)),s=await qt(e,o);if(!o.ok)throw""+(null!==(n=null!==(t=s.message)&&void 0!==t?t:o.statusText)&&void 0!==n?n:o.status);const l=((e,t)=>{switch(e){case zt.HFY_SERIES:return(({data:{content_md:e,content_html:t}})=>{var n,r,o;const s=(new DOMParser).parseFromString(At(t),"text/html").querySelectorAll("a[href]");return{author:null===(n=e.match(/\[\*\*(?:Author\s*[-:]\s*)?([^*\]]+)\*\*\]|A Story By \[(?:\*\*)?([^\]]+?)(?:\*\*)?\]/i).slice(1).find(Boolean))||void 0===n?void 0:n.trim(),title:null===(o=null===(r=e.match(/##?\s*\*\*(.+)\*\*/))||void 0===r?void 0:r[1])||void 0===o?void 0:o.trim(),chapters:Array.from(s).filter((e=>e.getAttribute("href").match(jt))).map((e=>{const t=e.getAttribute("href").startsWith("http")?e.getAttribute("href"):`https://www.reddit.com${e.getAttribute("href")}`;return{id:Et(),title:e.textContent.trim(),apiUrl:Lt(t),displayUrl:t}}))}})(t);case zt.POST:return(e=>({author:e[0].data.children[0].data.author,title:e[0].data.children[0].data.title,chapters:[Ht(e)]}))(t);case zt.GENERIC:return(e=>{const t=_t(e);return{title:t.title,author:"unknown",chapters:Array.from(t.querySelectorAll("ul a, ol a")).map((e=>({displayUrl:e.href,apiUrl:e.href,id:Et(),title:e.innerHTML})))}})(t)}throw new Error(`Getting data from source type \`${zt[e]}\` not supported, this should never happen`)})(e.type,s);if(!(null===(r=null==l?void 0:l.chapters)||void 0===r?void 0:r.length))throw new Error("No chapters found");return l})(i).then((e=>{const t=Object.assign(Object.assign({},e),{chapters:en(s,e.chapters)});return bn.update((()=>t)),t}));let p=d();const f=()=>{const e=JSON.stringify({bookData:r,series:o.series});at()(new Blob([e]),`${At(r.author)} - ${At(r.title)}.json`,"application/json")};return e.$$set=e=>{"stage"in e&&n(0,l=e.stage),"series"in e&&n(1,i=e.series),"backToSearch"in e&&n(2,c=e.backToSearch)},[l,i,c,u,p,d,f,()=>n(3,u=!u),()=>l.findMore(),()=>n(0,l.newChapters=void 0,l),()=>l.downloadAll(),()=>l.next(),()=>l.edit(),()=>f(),()=>n(4,p=d())]}const Ol=class extends Le{constructor(e){super(),Oe(this,e,Tl,Sl,l,{stage:0,series:1,backToSearch:2})}};function Ll(e,t,n){const r=e.slice();return r[7]=t[n],r}function Dl(e){let t,n;return t=new yt({props:{error:e[10],retry:e[5]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};4&n&&(r.error=e[10]),4&n&&(r.retry=e[5]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Al(t){let n,r,o,s,l,i,c,a,u=t[6],d=[];for(let e=0;et.parentNode,o.anchor=t,r=!0},p(t,[r]){e=t,o.ctx=e,4&r&&n!==(n=e[2])&&$e(n,o)||be(o,e,r)},i(e){r||(he(o.block),r=!0)},o(e){for(let e=0;e<3;e+=1)me(o.blocks[e]);r=!1},d(e){e&&C(t),o.block.d(e),o.token=null,o=null}}}function Ul(e,t,n){let{stage:r}=t,{search:o}=t;const s=()=>Mt(o).then((e=>{if(!e.length)throw new Error(`No series matched input \`${o}\``);return e}));let l=s();return e.$$set=e=>{"stage"in e&&n(0,r=e.stage),"search"in e&&n(1,o=e.search)},[r,o,l,s,e=>r.next({url:e.url,type:zt.HFY_SERIES}),()=>n(2,l=s())]}const Il=class extends Le{constructor(e){super(),Oe(this,e,Ul,Rl,l,{stage:0,search:1})}};function Ml(e,t,n){const r=e.slice();return r[9]=t[n],r}function Pl(t){let n,r,s,l,i,c,a,u,d,p,f;return{c(){n=O("form"),r=O("p"),s=D("Import:\n "),l=O("input"),i=A(),c=O("input"),u=A(),d=O("p"),d.textContent="Please only upload genuine backups, as there is no schema checking currently.",R(l,"id","upload"),R(l,"type","file"),R(l,"accept","application/json,*.json"),R(l,"name","files"),R(l,"size","30"),l.disabled=t[7],R(l,"class","svelte-ovxj9s"),R(c,"type","submit"),c.value="Go",R(c,"class","submit svelte-ovxj9s"),c.disabled=a=void 0===t[6]||t[7],R(r,"class","svelte-ovxj9s"),R(d,"class","small svelte-ovxj9s"),R(n,"class","form svelte-ovxj9s"),R(n,"enctype","multipart/form-data")},m(e,o){S(e,n,o),x(n,r),x(r,s),x(r,l),x(r,i),x(r,c),x(n,u),x(n,d),p||(f=[N(l,"change",t[25]),N(n,"submit",F(t[26]))],p=!0)},p(e,t){128&t&&(l.disabled=e[7]),192&t&&a!==(a=void 0===e[6]||e[7])&&(c.disabled=a)},i:e,o:e,d(e){e&&C(n),p=!1,o(f)}}}function Hl(t){let n,r,s,l,i,c,a,u,d,p,f,h;return{c(){n=O("form"),r=O("p"),r.textContent="Enter list of URLs:",s=A(),l=O("textarea"),i=A(),c=O("p"),c.textContent="One URL per line",a=A(),u=O("p"),d=O("input"),R(r,"class","svelte-ovxj9s"),R(l,"rows","5"),R(l,"placeholder",t[10]),l.disabled=t[7],R(l,"class","svelte-ovxj9s"),R(c,"class","small svelte-ovxj9s"),R(d,"type","submit"),d.value="Go",R(d,"class","submit svelte-ovxj9s"),d.disabled=p=void 0===t[4]||!t[4].trim().length||t[7],R(u,"class","svelte-ovxj9s"),R(n,"class","form svelte-ovxj9s")},m(e,o){S(e,n,o),x(n,r),x(n,s),x(n,l),I(l,t[4]),x(n,i),x(n,c),x(n,a),x(n,u),x(u,d),f||(h=[N(l,"input",t[23]),N(n,"submit",F(t[24]))],f=!0)},p(e,t){128&t&&(l.disabled=e[7]),16&t&&I(l,e[4]),144&t&&p!==(p=void 0===e[4]||!e[4].trim().length||e[7])&&(d.disabled=p)},i:e,o:e,d(e){e&&C(n),f=!1,o(h)}}}function zl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y=void 0!==e[0]&&!e[0].trim().length,w=e[3]&&Bl(e),k=y&&Yl(),E=e[3]&&Kl();return{c(){t=O("form"),n=O("p"),r=D("Search:\n "),s=O("input"),l=A(),i=O("input"),a=A(),w&&w.c(),u=A(),k&&k.c(),d=A(),p=O("div"),E&&E.c(),f=A(),h=O("p"),h.textContent="You can:",m=A(),g=O("ul"),g.innerHTML='
  • Search for a series title on the r/HFY wiki
  • \n
  • Enter a series link to the r/HFY wiki
  • \n
  • Enter a link to any reddit post, or other link (see CORS)
  • ',R(s,"class","search svelte-ovxj9s"),R(s,"placeholder","Search or URL..."),s.disabled=e[7],R(i,"type","submit"),i.value="Go",R(i,"class","submit svelte-ovxj9s"),i.disabled=c=void 0===e[0]||!e[0].trim().length||e[7],R(n,"class","svelte-ovxj9s"),R(t,"class","form svelte-ovxj9s"),R(h,"class","spaceabove svelte-ovxj9s"),R(p,"class","overlay-wrapper svelte-ovxj9s")},m(o,c){S(o,t,c),x(t,n),x(n,r),x(n,s),I(s,e[0]),x(n,l),x(n,i),x(t,a),w&&w.m(t,null),e[22](t),S(o,u,c),k&&k.m(o,c),S(o,d,c),S(o,p,c),E&&E.m(p,null),x(p,f),x(p,h),x(p,m),x(p,g),v=!0,$||(b=[N(s,"input",e[19]),N(s,"keyup",e[13]),N(s,"blur",e[11]),N(s,"click",e[13]),N(t,"submit",F(e[21]))],$=!0)},p(e,n){(!v||128&n)&&(s.disabled=e[7]),1&n&&s.value!==e[0]&&I(s,e[0]),(!v||129&n&&c!==(c=void 0===e[0]||!e[0].trim().length||e[7]))&&(i.disabled=c),e[3]?w?w.p(e,n):(w=Bl(e),w.c(),w.m(t,null)):w&&(w.d(1),w=null),1&n&&(y=void 0!==e[0]&&!e[0].trim().length),y?k||(k=Yl(),k.c(),k.m(d.parentNode,d)):k&&(k.d(1),k=null),e[3]?E?8&n&&he(E,1):(E=Kl(),E.c(),he(E,1),E.m(p,f)):E&&(pe(),me(E,1,1,(()=>{E=null})),fe())},i(e){v||(he(E),v=!0)},o(e){me(E),v=!1},d(n){n&&C(t),w&&w.d(),e[22](null),n&&C(u),k&&k.d(n),n&&C(d),n&&C(p),E&&E.d(),$=!1,o(b)}}}function Bl(e){let t,n,r={ctx:e,current:null,token:null,hasCatch:!1,pending:Xl,then:ql,catch:Gl,value:27};return $e(n=e[12](e[9],e[0]),r),{c(){t=_(),r.block.c()},m(e,n){S(e,t,n),r.block.m(e,r.anchor=n),r.mount=()=>t.parentNode,r.anchor=t},p(t,o){e=t,r.ctx=e,513&o&&n!==(n=e[12](e[9],e[0]))&&$e(n,r)||be(r,e,o)},d(e){e&&C(t),r.block.d(e),r.token=null,r=null}}}function Gl(t){return{c:e,m:e,p:e,d:e}}function ql(e){let t,n=e[27],r=[];for(let t=0;t{n||(n=ve(t,ps,{duration:100},!0)),n.run(1)})),r=!0)},o(e){n||(n=ve(t,ps,{duration:100},!1)),n.run(0),r=!1},d(e){e&&C(t),e&&n&&n.end()}}}function Vl(e){let t,n,r,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y;const w=[zl,Hl,Pl],k=[];function E(e,t){return e[5]==e[2].Search?0:e[5]==e[2].List?1:e[5]==e[2].Import?2:-1}return~(g=E(e))&&(v=k[g]=w[g](e)),{c(){t=O("div"),n=O("label"),r=O("input"),s=D("Search"),l=A(),i=O("label"),c=O("input"),a=D("URLs"),u=A(),d=O("label"),p=O("input"),f=D("Import"),h=A(),m=O("div"),v&&v.c(),R(r,"type","radio"),R(r,"name","mode"),r.__value="search",r.value=r.__value,R(r,"class","svelte-ovxj9s"),e[16][0].push(r),R(n,"class","svelte-ovxj9s"),M(n,"selected",e[5]==e[2].Search),R(c,"type","radio"),R(c,"name","mode"),c.__value="list",c.value=c.__value,R(c,"class","svelte-ovxj9s"),e[16][0].push(c),R(i,"class","svelte-ovxj9s"),M(i,"selected",e[5]==e[2].List),R(p,"type","radio"),R(p,"name","mode"),p.__value="import",p.value=p.__value,R(p,"class","svelte-ovxj9s"),e[16][0].push(p),R(d,"class","svelte-ovxj9s"),M(d,"selected",e[5]==e[2].Import),R(t,"class","mode-select svelte-ovxj9s"),R(m,"class","mode svelte-ovxj9s")},m(o,v){S(o,t,v),x(t,n),x(n,r),r.checked=r.__value===e[5],x(n,s),x(t,l),x(t,i),x(i,c),c.checked=c.__value===e[5],x(i,a),x(t,u),x(t,d),x(d,p),p.checked=p.__value===e[5],x(d,f),S(o,h,v),S(o,m,v),~g&&k[g].m(m,null),$=!0,b||(y=[N(r,"change",e[15]),N(c,"change",e[17]),N(p,"change",e[18])],b=!0)},p(e,[t]){32&t&&(r.checked=r.__value===e[5]),36&t&&M(n,"selected",e[5]==e[2].Search),32&t&&(c.checked=c.__value===e[5]),36&t&&M(i,"selected",e[5]==e[2].List),32&t&&(p.checked=p.__value===e[5]),36&t&&M(d,"selected",e[5]==e[2].Import);let o=g;g=E(e),g===o?~g&&k[g].p(e,t):(v&&(pe(),me(k[o],1,1,(()=>{k[o]=null})),fe()),~g?(v=k[g],v?v.p(e,t):(v=k[g]=w[g](e),v.c()),he(v,1),v.m(m,null)):v=null)},i(e){$||(he(v),$=!0)},o(e){me(v),$=!1},d(n){n&&C(t),e[16][0].splice(e[16][0].indexOf(r),1),e[16][0].splice(e[16][0].indexOf(c),1),e[16][0].splice(e[16][0].indexOf(p),1),n&&C(h),n&&C(m),~g&&k[g].d(),b=!1,o(y)}}}function Jl(e,t,n){let{stage:r}=t,{search:o}=t;var s;let l;!function(e){e.Search="search",e.List="list",e.Import="import"}(s||(s={}));let i,c,a,u=!1,d=s.Search,p=!1;const f=()=>{n(9,l=l||Mt().finally(f)),n(3,u=!!l&&!!o)},h=async()=>{n(7,p=!0);const e=new FileReader,t=new Promise(((t,n)=>{e.onload=t,e.onerror=n}));return e.readAsText(c),await t,n(7,p=!1),JSON.parse(e.result)};return e.$$set=e=>{"stage"in e&&n(1,r=e.stage),"search"in e&&n(0,o=e.search)},[o,r,s,u,i,d,c,p,a,l,"https://example.com/chapter1\nhttps://example.com/chapter2",e=>n(3,u=!!a&&a.contains(e.relatedTarget)),async(e,t)=>{if(!e)return[];const r=await e,o=t.toLowerCase(),s=r.filter((e=>-1!==e.title.toLowerCase().indexOf(o)));return s.length||n(3,u=!1),s},f,h,function(){d=this.__value,n(5,d)},[[]],function(){d=this.__value,n(5,d)},function(){d=this.__value,n(5,d)},function(){o=this.value,n(0,o)},e=>r.next(e.url),()=>r.next(o||""),function(e){J[e?"unshift":"push"]((()=>{a=e,n(8,a)}))},function(){i=this.value,n(4,i)},()=>r.fromList(i||""),e=>n(6,c=e.currentTarget.files[0]),async()=>r.fromJSON(await h())]}const Zl=class extends Le{constructor(e){super(),Oe(this,e,Jl,Vl,l,{stage:1,search:0})}};function Ql(t){let n,r,o,s;return{c(){n=L("svg"),r=L("g"),o=L("path"),s=L("path"),R(o,"d","M173.145,73.91c-0.413-2.722-2.29-4.993-4.881-5.912l-13.727-4.881c-0.812-2.3-1.733-4.536-2.754-6.699l6.247-13.146\n\t\tc1.179-2.479,0.899-5.411-0.729-7.628c-5.265-7.161-11.556-13.452-18.698-18.693c-2.219-1.629-5.141-1.906-7.625-0.724\n\t\tl-13.138,6.242c-2.163-1.021-4.402-1.94-6.704-2.752l-4.883-13.729c-0.919-2.586-3.184-4.458-5.9-4.876\n\t\tc-9.65-1.483-16.792-1.483-26.457,0c-2.713,0.418-4.981,2.29-5.9,4.876l-4.883,13.729c-2.302,0.812-4.541,1.731-6.702,2.752\n\t\tl-13.143-6.242c-2.479-1.181-5.406-0.904-7.623,0.724c-7.142,5.241-13.433,11.532-18.698,18.693\n\t\tc-1.629,2.217-1.908,5.148-0.729,7.628l6.247,13.146c-1.021,2.159-1.94,4.4-2.754,6.699L5.982,68.003\n\t\tc-2.589,0.919-4.463,3.189-4.879,5.907c-0.749,4.92-1.099,9.115-1.099,13.219c0,4.098,0.35,8.299,1.099,13.219\n\t\tc0.413,2.722,2.29,4.993,4.881,5.912l13.727,4.881c0.814,2.304,1.736,4.541,2.754,6.704l-6.247,13.141\n\t\tc-1.179,2.479-0.899,5.411,0.727,7.623c5.258,7.156,11.549,13.447,18.7,18.698c2.217,1.629,5.144,1.911,7.625,0.724l13.138-6.242\n\t\tc2.163,1.021,4.402,1.94,6.704,2.752l4.883,13.729c0.919,2.586,3.184,4.458,5.9,4.876c4.828,0.744,9.154,1.104,13.228,1.104\n\t\tc4.074,0,8.401-0.36,13.228-1.104c2.715-0.418,4.981-2.29,5.9-4.876l4.883-13.729c2.302-0.812,4.541-1.731,6.704-2.752\n\t\tl13.138,6.242c2.484,1.186,5.411,0.904,7.628-0.724c7.159-5.26,13.45-11.551,18.698-18.698c1.626-2.212,1.906-5.144,0.727-7.623\n\t\tl-6.247-13.141c1.021-2.163,1.942-4.405,2.754-6.704l13.727-4.881c2.591-0.919,4.468-3.189,4.881-5.912\n\t\tc0.749-4.92,1.099-9.12,1.099-13.219S173.894,78.829,173.145,73.91z M158.949,93.72l-12.878,4.58\n\t\tc-2.251,0.797-3.982,2.625-4.66,4.92c-1.15,3.889-2.664,7.569-4.504,10.943c-1.142,2.1-1.213,4.619-0.187,6.777l5.841,12.285\n\t\tc-2.822,3.389-5.943,6.515-9.337,9.334l-12.283-5.834c-2.161-1.036-4.672-0.953-6.775,0.185c-3.379,1.838-7.061,3.35-10.953,4.502\n\t\tc-2.29,0.676-4.118,2.406-4.917,4.657l-4.582,12.883c-4.677,0.476-8.503,0.476-13.18,0l-4.582-12.883\n\t\tc-0.8-2.246-2.628-3.982-4.917-4.657c-3.894-1.152-7.579-2.664-10.953-4.502c-2.103-1.147-4.619-1.22-6.775-0.185l-12.283,5.839\n\t\tc-3.391-2.825-6.512-5.946-9.337-9.339l5.841-12.285c1.026-2.159,0.955-4.677-0.187-6.777c-1.835-3.364-3.35-7.049-4.504-10.948\n\t\tc-0.678-2.29-2.411-4.118-4.66-4.915l-12.878-4.58c-0.243-2.343-0.36-4.502-0.36-6.592s0.117-4.244,0.36-6.587l12.881-4.584\n\t\tc2.248-0.797,3.979-2.625,4.657-4.915c1.152-3.889,2.667-7.574,4.504-10.953c1.142-2.095,1.213-4.619,0.187-6.772l-5.841-12.285\n\t\tc2.827-3.393,5.948-6.519,9.337-9.339l12.288,5.839c2.151,1.036,4.677,0.953,6.775-0.185c3.372-1.838,7.054-3.35,10.948-4.502\n\t\tc2.29-0.676,4.118-2.411,4.917-4.657l4.582-12.883c4.633-0.481,8.466-0.481,13.18,0l4.582,12.883\n\t\tc0.8,2.246,2.628,3.982,4.917,4.657c3.894,1.152,7.579,2.664,10.953,4.502c2.103,1.147,4.614,1.22,6.775,0.185l12.283-5.839\n\t\tc3.389,2.82,6.51,5.946,9.337,9.339l-5.841,12.285c-1.026,2.154-0.955,4.677,0.187,6.772c1.843,3.389,3.357,7.069,4.504,10.948\n\t\tc0.678,2.295,2.409,4.123,4.66,4.92l12.878,4.58c0.243,2.343,0.36,4.502,0.36,6.592S159.192,91.377,158.949,93.72z"),R(s,"d","M87.124,50.802c-19.062,0-34.571,15.508-34.571,34.571s15.508,34.571,34.571,34.571s34.571-15.508,34.571-34.571\n\t\tS106.186,50.802,87.124,50.802z M87.124,105.009c-10.827,0-19.636-8.809-19.636-19.636s8.809-19.636,19.636-19.636\n\t\ts19.636,8.809,19.636,19.636S97.951,105.009,87.124,105.009z"),R(n,"version","1.1"),R(n,"xmlns","http://www.w3.org/2000/svg"),R(n,"xmlns:xlink","http://www.w3.org/1999/xlink"),R(n,"x","0px"),R(n,"y","0px"),R(n,"viewBox","0 0 174.248 174.248"),R(n,"xml:space","preserve")},m(e,t){S(e,n,t),x(n,r),x(r,o),x(r,s)},p:e,i:e,o:e,d(e){e&&C(n)}}}const ei=class extends Le{constructor(e){super(),Oe(this,e,null,Ql,l,{})}};function ti(e){let t,n;const r=e[1].default,o=u(r,e,e[0],null);return{c(){t=O("p"),o&&o.c(),R(t,"class","info alert svelte-1mwdlru")},m(e,r){S(e,t,r),o&&o.m(t,null),n=!0},p(e,[t]){o&&o.p&&(!n||1&t)&&f(o,r,e,e[0],n?p(r,e[0],t,null):h(e[0]),null)},i(e){n||(he(o,e),n=!0)},o(e){me(o,e),n=!1},d(e){e&&C(t),o&&o.d(e)}}}function ni(e,t,n){let{$$slots:r={},$$scope:o}=t;return e.$$set=e=>{"$$scope"in e&&n(0,o=e.$$scope)},[o,r]}const ri=class extends Le{constructor(e){super(),Oe(this,e,ni,ti,l,{})}};function oi(t){let n,r,o;return{c(){n=D("Due to "),r=O("a"),r.textContent="recent API changes on reddit",o=D(', creating ebooks has become limited. If you run into a "Too many requests" error, please wait 10 minutes before trying again.'),R(r,"href","https://www.redditinc.com/blog/apifacts"),R(r,"target","_blank"),R(r,"class","svelte-ntsh7z")},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t)},p:e,d(e){e&&C(n),e&&C(r),e&&C(o)}}}function si(t){let n,r,o,s,l;return{c(){n=D("When generating an ebook via URL, please be aware of "),r=O("code"),r.textContent="NetworkError",o=D("s, see "),s=O("a"),s.textContent="CORS",l=D("."),R(r,"class","svelte-ntsh7z"),R(s,"href","https://github.com/cpiber/hfy-epub/blob/master/docs/other/cors.md"),R(s,"target","_blank"),R(s,"class","svelte-ntsh7z")},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t),S(e,s,t),S(e,l,t)},p:e,d(e){e&&C(n),e&&C(r),e&&C(o),e&&C(s),e&&C(l)}}}function li(e){let t,n,r,o,s,l,i;return o=new ri({props:{$$slots:{default:[oi]},$$scope:{ctx:e}}}),l=new ri({props:{$$slots:{default:[si]},$$scope:{ctx:e}}}),{c(){t=O("header"),n=O("h1"),n.innerHTML='r/HFY epub generator Help',r=A(),Se(o.$$.fragment),s=A(),Se(l.$$.fragment),R(n,"class","svelte-ntsh7z"),R(t,"class","svelte-ntsh7z")},m(e,c){S(e,t,c),x(t,n),x(t,r),Ce(o,t,null),x(t,s),Ce(l,t,null),i=!0},p(e,[t]){const n={};1&t&&(n.$$scope={dirty:t,ctx:e}),o.$set(n);const r={};1&t&&(r.$$scope={dirty:t,ctx:e}),l.$set(r)},i(e){i||(he(o.$$.fragment,e),he(l.$$.fragment,e),i=!0)},o(e){me(o.$$.fragment,e),me(l.$$.fragment,e),i=!1},d(e){e&&C(t),Te(o),Te(l)}}}const ii=class extends Le{constructor(e){super(),Oe(this,e,null,li,l,{})}};function ci(t){let n,r,o,s,l,i,c,a;return{c(){n=O("p"),r=D("This website ("),o=O("a"),o.textContent="https://cpiber.github.io/hfy-epub",s=D(") does not, and will not, collect any data from its users.\n Any actions taken on this page are purely in the user's browser; there is no server-side component.\n No data is ever sent away.\n For collecting the chapter data, this site contacts "),l=O("code"),l.textContent="www.reddit.com",i=D(" only. The book is generated in the browser."),R(o,"href","https://cpiber.github.io/hfy-epub"),R(o,"target","_blank"),R(n,"class","small svelte-1f8pws6")},m(e,t){S(e,n,t),x(n,r),x(n,o),x(n,s),x(n,l),x(n,i),a=!0},p:e,i(e){a||(ne((()=>{c||(c=ve(n,Ft,{},!0)),c.run(1)})),a=!0)},o(e){c||(c=ve(n,Ft,{},!1)),c.run(0),a=!1},d(e){e&&C(n),e&&c&&c.end()}}}function ai(e){let t,n,r,o,s;return{c(){t=O("label"),n=O("input"),r=D(" Use TinyMCE chapter editor"),R(n,"type","checkbox"),R(n,"aria-label","use TinyMCE editor"),R(n,"class","svelte-1f8pws6"),R(t,"class","small svelte-1f8pws6")},m(l,i){S(l,t,i),x(t,n),n.checked=e[2].useTiny,x(t,r),o||(s=N(n,"change",e[4]),o=!0)},p(e,t){4&t&&(n.checked=e[2].useTiny)},d(e){e&&C(t),o=!1,s()}}}function ui(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v=!vn(e[1].stage,tn.SETTINGS),$=e[0]&&ci(),b=v&&ai(e);return{c(){t=O("footer"),n=O("p"),r=D("Made by "),o=O("a"),o.textContent="@cpiber",s=D(".\n Source Code & bug tracker: "),l=O("a"),l.textContent="cpiber/hfy-epub",i=D(".\n \n Version "),c=D("0.3.0"),a=D(".\n "),u=O("a"),u.textContent="Privacy",d=D("."),p=A(),$&&$.c(),f=A(),b&&b.c(),R(o,"href","https://github.com/cpiber"),R(o,"target","_blank"),R(l,"href","https://github.com/cpiber/hfy-epub"),R(l,"target","_blank"),R(u,"href","#privacy"),R(n,"class","small svelte-1f8pws6"),R(t,"class","svelte-1f8pws6")},m(v,y){S(v,t,y),x(t,n),x(n,r),x(n,o),x(n,s),x(n,l),x(n,i),x(n,c),x(n,a),x(n,u),x(n,d),x(t,p),$&&$.m(t,null),x(t,f),b&&b.m(t,null),h=!0,m||(g=N(u,"click",F(e[3])),m=!0)},p(e,[n]){e[0]?$?($.p(e,n),1&n&&he($,1)):($=ci(),$.c(),he($,1),$.m(t,f)):$&&(pe(),me($,1,1,(()=>{$=null})),fe()),2&n&&(v=!vn(e[1].stage,tn.SETTINGS)),v?b?b.p(e,n):(b=ai(e),b.c(),b.m(t,null)):b&&(b.d(1),b=null)},i(e){h||(he($),h=!0)},o(e){me($),h=!1},d(e){e&&C(t),$&&$.d(),b&&b.d(),m=!1,g()}}}function di(e,t,n){let r,o;a(e,$n,(e=>n(1,r=e))),a(e,Be,(e=>n(2,o=e)));let s=!1;return[s,r,o,()=>n(0,s=!s),function(){o.useTiny=this.checked,Be.set(o)}]}const pi=class extends Le{constructor(e){super(),Oe(this,e,di,ui,l,{})}};function fi(t){let n,r,o,s,l,i;return r=new ks({}),{c(){n=O("a"),Se(r.$$.fragment),o=D(" home"),R(n,"href","#home"),R(n,"class","homelink svelte-ibaoy7")},m(e,c){S(e,n,c),Ce(r,n,null),x(n,o),s=!0,l||(i=N(n,"click",F(t[6])),l=!0)},p:e,i(e){s||(he(r.$$.fragment,e),s=!0)},o(e){me(r.$$.fragment,e),s=!1},d(e){e&&C(n),Te(r),l=!1,i()}}}function hi(t){let n,r,o,s,l;return r=new ei({}),{c(){n=O("a"),Se(r.$$.fragment),R(n,"href","#settings"),R(n,"class","settingslink svelte-ibaoy7")},m(e,i){S(e,n,i),Ce(r,n,null),o=!0,s||(l=N(n,"click",F(t[3])),s=!0)},p:e,i(e){o||(he(r.$$.fragment,e),o=!0)},o(e){me(r.$$.fragment,e),o=!1},d(e){e&&C(n),Te(r),s=!1,l()}}}function mi(t){let n,r,o,s,l,i;return r=new ks({}),{c(){n=O("a"),Se(r.$$.fragment),o=D(" back"),R(n,"href","#home"),R(n,"class","homelink svelte-ibaoy7")},m(e,c){S(e,n,c),Ce(r,n,null),x(n,o),s=!0,l||(i=N(n,"click",F(t[7])),l=!0)},p:e,i(e){s||(he(r.$$.fragment,e),s=!0)},o(e){me(r.$$.fragment,e),s=!1},d(e){e&&C(n),Te(r),l=!1,i()}}}function gi(t){let n,r,o;return{c(){n=O("h2"),n.textContent="Page not found",r=A(),o=O("p"),o.textContent="Sorry, the requested page could not be found"},m(e,t){S(e,n,t),S(e,r,t),S(e,o,t)},p:e,i:e,o:e,d(e){e&&C(n),e&&C(r),e&&C(o)}}}function vi(t){let n,r;return n=new it({}),{c(){Se(n.$$.fragment)},m(e,t){Ce(n,e,t),r=!0},p:e,i(e){r||(he(n.$$.fragment,e),r=!0)},o(e){me(n.$$.fragment,e),r=!1},d(e){Te(n,e)}}}function $i(e){let t,n;return t=new jn({props:{stage:e[0],backToSearch:e[2]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),4&n&&(r.backToSearch=e[2]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function bi(e){let t,n;return t=new Qn({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function yi(e){let t,n;return t=new cr({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function wi(e){let t,n;return t=new dl({props:{stage:e[0]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function xi(e){let t,n;return t=new Ol({props:{stage:e[0],series:e[1].series,backToSearch:e[2]}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.series=e[1].series),4&n&&(r.backToSearch=e[2]),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function ki(e){let t,n;return t=new Il({props:{stage:e[0],search:e[1].search}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.search=e[1].search),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Ei(e){let t,n;return t=new Zl({props:{stage:e[0],search:e[1].search}}),{c(){Se(t.$$.fragment)},m(e,r){Ce(t,e,r),n=!0},p(e,n){const r={};1&n&&(r.stage=e[0]),2&n&&(r.search=e[1].search),t.$set(r)},i(e){n||(he(t.$$.fragment,e),n=!0)},o(e){me(t.$$.fragment,e),n=!1},d(e){Te(t,e)}}}function Si(e){let t,n,r,o,s,l,i,c,a,u,d,p,f,h,m,g,v,$,b,y,w,k,E,T,L=!vn(e[0],tn.INPUT)&&!vn(e[0],tn.SETTINGS),D=L&&fi(e);const _=[mi,hi],N=[];function F(e,t){return 1&t&&(o=null),null==o&&(o=!!vn(e[0],tn.SETTINGS)),o?0:1}s=F(e,-1),l=N[s]=_[s](e),c=new ii({});const j=[Ei,ki,xi,wi,yi,bi,$i,vi,gi],U=[];function I(e,t){return 1&t&&(d=null),1&t&&(p=null),1&t&&(f=null),1&t&&(h=null),1&t&&(m=null),1&t&&(g=null),1&t&&(v=null),1&t&&($=null),1&t&&(b=null),null==d&&(d=!!vn(e[0],tn.INPUT)),d?0:(null==p&&(p=!!vn(e[0],tn.SEARCH)),p?1:(null==f&&(f=!!vn(e[0],tn.BOOK_DATA)),f?2:(null==h&&(h=!!vn(e[0],tn.EDIT_DATA)),h?3:(null==m&&(m=!!vn(e[0],tn.FIND_CHAPTERS)),m?4:(null==g&&(g=!!vn(e[0],tn.DOWNLOAD_CHAPTERS)),g?5:(null==v&&(v=!!vn(e[0],tn.RESULT)),v?6:(null==$&&($=!!vn(e[0],tn.SETTINGS)),$?7:(null==b&&(b=!!vn(e[0],tn._404)),b?8:-1))))))))}return~(y=I(e,-1))&&(w=U[y]=j[y](e)),E=new pi({}),{c(){t=O("div"),n=O("nav"),D&&D.c(),r=A(),l.c(),i=A(),Se(c.$$.fragment),a=A(),u=O("main"),w&&w.c(),k=A(),Se(E.$$.fragment),R(n,"class","mainnav svelte-ibaoy7"),R(u,"class","App-main"),R(t,"class","App svelte-ibaoy7")},m(e,o){S(e,t,o),x(t,n),D&&D.m(n,null),x(n,r),N[s].m(n,null),x(t,i),Ce(c,t,null),x(t,a),x(t,u),~y&&U[y].m(u,null),x(t,k),Ce(E,t,null),T=!0},p(e,[t]){1&t&&(L=!vn(e[0],tn.INPUT)&&!vn(e[0],tn.SETTINGS)),L?D?(D.p(e,t),1&t&&he(D,1)):(D=fi(e),D.c(),he(D,1),D.m(n,r)):D&&(pe(),me(D,1,1,(()=>{D=null})),fe());let o=s;s=F(e,t),s===o?N[s].p(e,t):(pe(),me(N[o],1,1,(()=>{N[o]=null})),fe(),l=N[s],l?l.p(e,t):(l=N[s]=_[s](e),l.c()),he(l,1),l.m(n,null));let i=y;y=I(e,t),y===i?~y&&U[y].p(e,t):(w&&(pe(),me(U[i],1,1,(()=>{U[i]=null})),fe()),~y?(w=U[y],w?w.p(e,t):(w=U[y]=j[y](e),w.c()),he(w,1),w.m(u,null)):w=null)},i(e){T||(he(D),he(l),he(c.$$.fragment,e),he(w),he(E.$$.fragment,e),T=!0)},o(e){me(D),me(l),me(c.$$.fragment,e),me(w),me(E.$$.fragment,e),T=!1},d(e){e&&C(t),D&&D.d(),N[s].d(),Te(c),~y&&U[y].d(),Te(E)}}}function Ci(e,t,n){let r,o,s,l,i;return a(e,bn,(e=>n(4,s=e))),a(e,$n,(e=>n(1,l=e))),a(e,Be,(e=>n(5,i=e))),e.$$.update=()=>{if(2&e.$$.dirty&&n(0,r=l.stage),1&e.$$.dirty&&n(2,o=vn(r.from,tn.SEARCH)?()=>hn(sn):void 0),e.$$.dirty,e.$$.dirty,e.$$.dirty,32&e.$$.dirty&&localStorage.setItem("config",JSON.stringify(i)),2&e.$$.dirty&&localStorage.setItem("state",JSON.stringify({data:l.stage.dump(),search:l.search,series:l.series})),16&e.$$.dirty)try{localStorage.setItem("book",JSON.stringify(s))}catch(e){localStorage.removeItem("book"),console.error("Data too large! Caution, reloading won't work as expected!")}},[r,l,o,()=>{r.needsSaving&&!confirm("Unsaved changes. Continue?")||hn(pn)},s,i,()=>hn(on),()=>r.next()]}(()=>{try{const e=JSON.parse(localStorage.getItem("config"));Be.set((e=>{if(!e||""+e!="[object Object]")return ze;const t=Object.keys(e),n=Object.keys(ze);for(const r of n)t.includes(r)||(e[r]=ze[r]),typeof ze[r]!=typeof e[r]&&(e[r]=ze[r]);return e})(e))}catch(e){}})(),(()=>{try{const e=JSON.parse(localStorage.getItem("book"));bn.update((()=>e))}catch(e){}})(),window.removeEventListener("popstate",wn),window.addEventListener("popstate",wn),wn();const Ti=class extends Le{constructor(e){super(),Oe(this,e,Ci,Si,l,{})}};let Oi;try{Oi=new Ti({target:document.body})}catch(e){const t=document.createElement("div");t.className="fatal-error",t.ariaLabel="error",t.appendChild(document.createElement("h1")).textContent="Something went wrong:",t.appendChild(document.createElement("code")).textContent=e,document.body.appendChild(t)}})(),c=i.O(c)})(); \ No newline at end of file diff --git a/main.js b/main.js new file mode 100644 index 0000000..0aba5df --- /dev/null +++ b/main.js @@ -0,0 +1,21024 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ "./node_modules/.pnpm/@tinymce+tinymce-svelte@1.0.0/node_modules/@tinymce/tinymce-svelte/dist/component/Utils.js": +/*!***********************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@tinymce+tinymce-svelte@1.0.0/node_modules/@tinymce/tinymce-svelte/dist/component/Utils.js ***! + \***********************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "bindHandlers": () => (/* binding */ bindHandlers), +/* harmony export */ "injectTiny": () => (/* binding */ injectTiny) +/* harmony export */ }); +const validEvents = [ + 'Activate', + 'AddUndo', + 'BeforeAddUndo', + 'BeforeExecCommand', + 'BeforeGetContent', + 'BeforeRenderUI', + 'BeforeSetContent', + 'BeforePaste', + 'Blur', + 'Change', + 'ClearUndos', + 'Click', + 'ContextMenu', + 'Copy', + 'Cut', + 'Dblclick', + 'Deactivate', + 'Dirty', + 'Drag', + 'DragDrop', + 'DragEnd', + 'DragGesture', + 'DragOver', + 'Drop', + 'ExecCommand', + 'Focus', + 'FocusIn', + 'FocusOut', + 'GetContent', + 'Hide', + 'Init', + 'KeyDown', + 'KeyPress', + 'KeyUp', + 'LoadContent', + 'MouseDown', + 'MouseEnter', + 'MouseLeave', + 'MouseMove', + 'MouseOut', + 'MouseOver', + 'MouseUp', + 'NodeChange', + 'ObjectResizeStart', + 'ObjectResized', + 'ObjectSelected', + 'Paste', + 'PostProcess', + 'PostRender', + 'PreProcess', + 'ProgressState', + 'Redo', + 'Remove', + 'Reset', + 'ResizeEditor', + 'SaveContent', + 'SelectionChange', + 'SetAttrib', + 'SetContent', + 'Show', + 'Submit', + 'Undo', + 'VisualAid' +]; +const bindHandlers = (editor, dispatch) => { + validEvents.forEach((eventName) => { + editor.on(eventName, (e) => { + dispatch(eventName.toLowerCase(), { + eventName, + event: e, + editor + }); + }); + }); +}; +const injectTiny = (doc, url, cb) => { + const script = doc.createElement('script'); + script.referrerPolicy = 'origin'; + script.type = 'application/javascript'; + script.src = url; + script.onload = cb; + if (doc.head) { + doc.head.appendChild(script); + } +}; + +//# sourceMappingURL=Utils.js.map + +/***/ }), + +/***/ "./node_modules/.pnpm/@tinymce+tinymce-svelte@1.0.0/node_modules/@tinymce/tinymce-svelte/dist/index.js": +/*!*************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/@tinymce+tinymce-svelte@1.0.0/node_modules/@tinymce/tinymce-svelte/dist/index.js ***! + \*************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _component_Editor_svelte__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./component/Editor.svelte */ "./node_modules/.pnpm/@tinymce+tinymce-svelte@1.0.0/node_modules/@tinymce/tinymce-svelte/dist/component/Editor.svelte"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_component_Editor_svelte__WEBPACK_IMPORTED_MODULE_0__["default"]); +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ "./node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/.pnpm/downloadjs@1.4.7/node_modules/downloadjs/download.js ***! + \*********************************************************************************/ +/***/ (function(module, exports) { + +var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage +// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime +// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs +// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling. +// v4 adds AMD/UMD, commonJS, and plain browser support +// v4.1 adds url download capability via solo URL argument (same domain/CORS only) +// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors +// https://github.com/rndme/download + +(function (root, factory) { + if (true) { + // AMD. Register as an anonymous module. + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), + __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? + (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +}(this, function () { + + return function download(data, strFileName, strMimeType) { + + var self = window, // this script is only for browsers anyway... + defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads + mimeType = strMimeType || defaultMime, + payload = data, + url = !strFileName && !strMimeType && payload, + anchor = document.createElement("a"), + toString = function(a){return String(a);}, + myBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString), + fileName = strFileName || "download", + blob, + reader; + myBlob= myBlob.call ? myBlob.bind(self) : Blob ; + + if(String(this)==="true"){ //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback + payload=[payload, mimeType]; + mimeType=payload[0]; + payload=payload[1]; + } + + + if(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument + fileName = url.split("/").pop().split("?")[0]; + anchor.href = url; // assign href prop to temp anchor + if(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path: + var ajax=new XMLHttpRequest(); + ajax.open( "GET", url, true); + ajax.responseType = 'blob'; + ajax.onload= function(e){ + download(e.target.response, fileName, defaultMime); + }; + setTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return: + return ajax; + } // end if valid url? + } // end if url? + + + //go ahead and download dataURLs right away + if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){ + + if(payload.length > (1024*1024*1.999) && myBlob !== toString ){ + payload=dataUrlToBlob(payload); + mimeType=payload.type || defaultMime; + }else{ + return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs: + navigator.msSaveBlob(dataUrlToBlob(payload), fileName) : + saver(payload) ; // everyone else can save dataURLs un-processed + } + + }else{//not data url, is it a string with special needs? + if(/([\x80-\xff])/.test(payload)){ + var i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length; + for(i;i { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "dndzone": () => (/* binding */ dndzone) +/* harmony export */ }); +/* harmony import */ var _pointerAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./pointerAction */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/pointerAction.js"); +/* harmony import */ var _keyboardAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./keyboardAction */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/keyboardAction.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./constants */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js"); +/* harmony import */ var _helpers_util__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./helpers/util */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/util.js"); + + + + + +/** + * A custom action to turn any container to a dnd zone and all of its direct children to draggables + * Supports mouse, touch and keyboard interactions. + * Dispatches two events that the container is expected to react to by modifying its list of items, + * which will then feed back in to this action via the update function + * + * @typedef {object} Options + * @property {array} items - the list of items that was used to generate the children of the given node (the list used in the #each block + * @property {string} [type] - the type of the dnd zone. children dragged from here can only be dropped in other zones of the same type, default to a base type + * @property {number} [flipDurationMs] - if the list animated using flip (recommended), specifies the flip duration such that everything syncs with it without conflict, defaults to zero + * @property {boolean} [dragDisabled] + * @property {boolean} [morphDisabled] - whether dragged element should morph to zone dimensions + * @property {boolean} [dropFromOthersDisabled] + * @property {number} [zoneTabIndex] - set the tabindex of the list container when not dragging + * @property {object} [dropTargetStyle] + * @property {string[]} [dropTargetClasses] + * @property {function} [transformDraggedElement] + * @param {HTMLElement} node - the element to enhance + * @param {Options} options + * @return {{update: function, destroy: function}} + */ +function dndzone(node, options) { + validateOptions(options); + const pointerZone = (0,_pointerAction__WEBPACK_IMPORTED_MODULE_0__.dndzone)(node, options); + const keyboardZone = (0,_keyboardAction__WEBPACK_IMPORTED_MODULE_1__.dndzone)(node, options); + return { + update: newOptions => { + validateOptions(newOptions); + pointerZone.update(newOptions); + keyboardZone.update(newOptions); + }, + destroy: () => { + pointerZone.destroy(); + keyboardZone.destroy(); + } + }; +} + +function validateOptions(options) { + /*eslint-disable*/ + const { + items, + flipDurationMs, + type, + dragDisabled, + morphDisabled, + dropFromOthersDisabled, + zoneTabIndex, + dropTargetStyle, + dropTargetClasses, + transformDraggedElement, + autoAriaDisabled, + centreDraggedOnCursor, + ...rest + } = options; + /*eslint-enable*/ + if (Object.keys(rest).length > 0) { + console.warn(`dndzone will ignore unknown options`, rest); + } + if (!items) { + throw new Error("no 'items' key provided to dndzone"); + } + const itemWithMissingId = items.find(item => !{}.hasOwnProperty.call(item, _constants__WEBPACK_IMPORTED_MODULE_2__.ITEM_ID_KEY)); + if (itemWithMissingId) { + throw new Error(`missing '${_constants__WEBPACK_IMPORTED_MODULE_2__.ITEM_ID_KEY}' property for item ${(0,_helpers_util__WEBPACK_IMPORTED_MODULE_3__.toString)(itemWithMissingId)}`); + } + if (dropTargetClasses && !Array.isArray(dropTargetClasses)) { + throw new Error(`dropTargetClasses should be an array but instead it is a ${typeof dropTargetClasses}, ${(0,_helpers_util__WEBPACK_IMPORTED_MODULE_3__.toString)(dropTargetClasses)}`); + } + if (zoneTabIndex && !isInt(zoneTabIndex)) { + throw new Error(`zoneTabIndex should be a number but instead it is a ${typeof zoneTabIndex}, ${(0,_helpers_util__WEBPACK_IMPORTED_MODULE_3__.toString)(zoneTabIndex)}`); + } +} + +function isInt(value) { + return !isNaN(value) && (function(x) { return (x | 0) === x; })(parseFloat(value)); +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DRAGGED_ELEMENT_ID": () => (/* binding */ DRAGGED_ELEMENT_ID), +/* harmony export */ "ITEM_ID_KEY": () => (/* binding */ ITEM_ID_KEY), +/* harmony export */ "SHADOW_ELEMENT_ATTRIBUTE_NAME": () => (/* binding */ SHADOW_ELEMENT_ATTRIBUTE_NAME), +/* harmony export */ "SHADOW_ITEM_MARKER_PROPERTY_NAME": () => (/* binding */ SHADOW_ITEM_MARKER_PROPERTY_NAME), +/* harmony export */ "SHADOW_PLACEHOLDER_ITEM_ID": () => (/* binding */ SHADOW_PLACEHOLDER_ITEM_ID), +/* harmony export */ "SOURCES": () => (/* binding */ SOURCES), +/* harmony export */ "TRIGGERS": () => (/* binding */ TRIGGERS), +/* harmony export */ "decrementActiveDropZoneCount": () => (/* binding */ decrementActiveDropZoneCount), +/* harmony export */ "incrementActiveDropZoneCount": () => (/* binding */ incrementActiveDropZoneCount), +/* harmony export */ "isOnServer": () => (/* binding */ isOnServer), +/* harmony export */ "overrideItemIdKeyNameBeforeInitialisingDndZones": () => (/* binding */ overrideItemIdKeyNameBeforeInitialisingDndZones), +/* harmony export */ "printDebug": () => (/* binding */ printDebug), +/* harmony export */ "setDebugMode": () => (/* binding */ setDebugMode) +/* harmony export */ }); +/* harmony import */ var _helpers_dispatcher__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./helpers/dispatcher */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/dispatcher.js"); + + +const TRIGGERS = { + DRAG_STARTED: "dragStarted", + DRAGGED_ENTERED: _helpers_dispatcher__WEBPACK_IMPORTED_MODULE_0__.DRAGGED_ENTERED_EVENT_NAME, + DRAGGED_ENTERED_ANOTHER: "dragEnteredAnother", + DRAGGED_OVER_INDEX: _helpers_dispatcher__WEBPACK_IMPORTED_MODULE_0__.DRAGGED_OVER_INDEX_EVENT_NAME, + DRAGGED_LEFT: _helpers_dispatcher__WEBPACK_IMPORTED_MODULE_0__.DRAGGED_LEFT_EVENT_NAME, + DRAGGED_LEFT_ALL: "draggedLeftAll", + DROPPED_INTO_ZONE: "droppedIntoZone", + DROPPED_INTO_ANOTHER: "droppedIntoAnother", + DROPPED_OUTSIDE_OF_ANY: "droppedOutsideOfAny", + DRAG_STOPPED: "dragStopped" +}; + +const SOURCES = { + POINTER: "pointer", + KEYBOARD: "keyboard" +}; + +const SHADOW_ITEM_MARKER_PROPERTY_NAME = "isDndShadowItem"; +const SHADOW_ELEMENT_ATTRIBUTE_NAME = "data-is-dnd-shadow-item"; +const SHADOW_PLACEHOLDER_ITEM_ID = "id:dnd-shadow-placeholder-0000"; +const DRAGGED_ELEMENT_ID = "dnd-action-dragged-el"; + +let ITEM_ID_KEY = "id"; +let activeDndZoneCount = 0; +function incrementActiveDropZoneCount() { + activeDndZoneCount++; +} +function decrementActiveDropZoneCount() { + if (activeDndZoneCount === 0) { + throw new Error("Bug! trying to decrement when there are no dropzones"); + } + activeDndZoneCount--; +} + +/** + * Allows using another key instead of "id" in the items data. This is global and applies to all dndzones. + * Has to be called when there are no rendered dndzones whatsoever. + * @param {String} newKeyName + * @throws {Error} if it was called when there are rendered dndzones or if it is given the wrong type (not a string) + */ +function overrideItemIdKeyNameBeforeInitialisingDndZones(newKeyName) { + if (activeDndZoneCount > 0) { + throw new Error("can only override the id key before initialising any dndzone"); + } + if (typeof newKeyName !== "string") { + throw new Error("item id key has to be a string"); + } + printDebug(() => ["overriding item id key name", newKeyName]); + ITEM_ID_KEY = newKeyName; +} + +const isOnServer = typeof window === "undefined"; + +let printDebug = () => {}; + +/** + * Allows the user to show/hide console debug output + * * @param {Boolean} isDebug + */ +function setDebugMode(isDebug) { + if (isDebug) { + printDebug = (generateMessage, logFunction = console.debug) => { + const message = generateMessage(); + if (Array.isArray(message)) { + logFunction(...message); + } else { + logFunction(message); + } + }; + } else { + printDebug = () => {}; + } +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/aria.js": +/*!********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/aria.js ***! + \********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "alertToScreenReader": () => (/* binding */ alertToScreenReader), +/* harmony export */ "destroyAria": () => (/* binding */ destroyAria), +/* harmony export */ "initAria": () => (/* binding */ initAria) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js"); + + +const INSTRUCTION_IDs = { + DND_ZONE_ACTIVE: "dnd-zone-active", + DND_ZONE_DRAG_DISABLED: "dnd-zone-drag-disabled" +}; +const ID_TO_INSTRUCTION = { + [INSTRUCTION_IDs.DND_ZONE_ACTIVE]: "Tab to one the items and press space-bar or enter to start dragging it", + [INSTRUCTION_IDs.DND_ZONE_DRAG_DISABLED]: "This is a disabled drag and drop list" +}; + +const ALERT_DIV_ID = "dnd-action-aria-alert"; +let alertsDiv; + +function initAriaOnBrowser() { + if (alertsDiv) { + // it is already initialized + return; + } + // setting the dynamic alerts + alertsDiv = document.createElement("div"); + (function initAlertsDiv() { + alertsDiv.id = ALERT_DIV_ID; + // tab index -1 makes the alert be read twice on chrome for some reason + //alertsDiv.tabIndex = -1; + alertsDiv.style.position = "fixed"; + alertsDiv.style.bottom = "0"; + alertsDiv.style.left = "0"; + alertsDiv.style.zIndex = "-5"; + alertsDiv.style.opacity = "0"; + alertsDiv.style.height = "0"; + alertsDiv.style.width = "0"; + alertsDiv.setAttribute("role", "alert"); + })(); + document.body.prepend(alertsDiv); + + // setting the instructions + Object.entries(ID_TO_INSTRUCTION).forEach(([id, txt]) => document.body.prepend(instructionToHiddenDiv(id, txt))); +} + +/** + * Initializes the static aria instructions so they can be attached to zones + * @return {{DND_ZONE_ACTIVE: string, DND_ZONE_DRAG_DISABLED: string} | null} - the IDs for static aria instruction (to be used via aria-describedby) or null on the server + */ +function initAria() { + if (_constants__WEBPACK_IMPORTED_MODULE_0__.isOnServer) return null; + if (document.readyState === "complete") { + initAriaOnBrowser(); + } else { + window.addEventListener("DOMContentLoaded", initAriaOnBrowser); + } + return {...INSTRUCTION_IDs}; +} + +/** + * Removes all the artifacts (dom elements) added by this module + */ +function destroyAria() { + if (_constants__WEBPACK_IMPORTED_MODULE_0__.isOnServer || !alertsDiv) return; + Object.keys(ID_TO_INSTRUCTION).forEach(id => document.getElementById(id)?.remove()); + alertsDiv.remove(); + alertsDiv = undefined; +} + +function instructionToHiddenDiv(id, txt) { + const div = document.createElement("div"); + div.id = id; + div.innerHTML = `

    ${txt}

    `; + div.style.display = "none"; + div.style.position = "fixed"; + div.style.zIndex = "-5"; + return div; +} + +/** + * Will make the screen reader alert the provided text to the user + * @param {string} txt + */ +function alertToScreenReader(txt) { + if (_constants__WEBPACK_IMPORTED_MODULE_0__.isOnServer) return; + if (!alertsDiv) { + initAriaOnBrowser(); + } + alertsDiv.innerHTML = ""; + const alertText = document.createTextNode(txt); + alertsDiv.appendChild(alertText); + // this is needed for Safari + alertsDiv.style.display = "none"; + alertsDiv.style.display = "inline"; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/dispatcher.js": +/*!**************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/dispatcher.js ***! + \**************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DRAGGED_ENTERED_EVENT_NAME": () => (/* binding */ DRAGGED_ENTERED_EVENT_NAME), +/* harmony export */ "DRAGGED_LEFT_DOCUMENT_EVENT_NAME": () => (/* binding */ DRAGGED_LEFT_DOCUMENT_EVENT_NAME), +/* harmony export */ "DRAGGED_LEFT_EVENT_NAME": () => (/* binding */ DRAGGED_LEFT_EVENT_NAME), +/* harmony export */ "DRAGGED_LEFT_TYPES": () => (/* binding */ DRAGGED_LEFT_TYPES), +/* harmony export */ "DRAGGED_OVER_INDEX_EVENT_NAME": () => (/* binding */ DRAGGED_OVER_INDEX_EVENT_NAME), +/* harmony export */ "dispatchConsiderEvent": () => (/* binding */ dispatchConsiderEvent), +/* harmony export */ "dispatchDraggedElementEnteredContainer": () => (/* binding */ dispatchDraggedElementEnteredContainer), +/* harmony export */ "dispatchDraggedElementIsOverIndex": () => (/* binding */ dispatchDraggedElementIsOverIndex), +/* harmony export */ "dispatchDraggedElementLeftContainerForAnother": () => (/* binding */ dispatchDraggedElementLeftContainerForAnother), +/* harmony export */ "dispatchDraggedElementLeftContainerForNone": () => (/* binding */ dispatchDraggedElementLeftContainerForNone), +/* harmony export */ "dispatchDraggedLeftDocument": () => (/* binding */ dispatchDraggedLeftDocument), +/* harmony export */ "dispatchFinalizeEvent": () => (/* binding */ dispatchFinalizeEvent) +/* harmony export */ }); +// external events +const FINALIZE_EVENT_NAME = "finalize"; +const CONSIDER_EVENT_NAME = "consider"; + +/** + * @typedef {Object} Info + * @property {string} trigger + * @property {string} id + * @property {string} source + * @param {Node} el + * @param {Array} items + * @param {Info} info + */ +function dispatchFinalizeEvent(el, items, info) { + el.dispatchEvent( + new CustomEvent(FINALIZE_EVENT_NAME, { + detail: {items, info} + }) + ); +} + +/** + * Dispatches a consider event + * @param {Node} el + * @param {Array} items + * @param {Info} info + */ +function dispatchConsiderEvent(el, items, info) { + el.dispatchEvent( + new CustomEvent(CONSIDER_EVENT_NAME, { + detail: {items, info} + }) + ); +} + +// internal events +const DRAGGED_ENTERED_EVENT_NAME = "draggedEntered"; +const DRAGGED_LEFT_EVENT_NAME = "draggedLeft"; +const DRAGGED_OVER_INDEX_EVENT_NAME = "draggedOverIndex"; +const DRAGGED_LEFT_DOCUMENT_EVENT_NAME = "draggedLeftDocument"; + +const DRAGGED_LEFT_TYPES = { + LEFT_FOR_ANOTHER: "leftForAnother", + OUTSIDE_OF_ANY: "outsideOfAny" +}; + +function dispatchDraggedElementEnteredContainer(containerEl, indexObj, draggedEl) { + containerEl.dispatchEvent( + new CustomEvent(DRAGGED_ENTERED_EVENT_NAME, { + detail: {indexObj, draggedEl} + }) + ); +} + +/** + * @param containerEl - the dropzone the element left + * @param draggedEl - the dragged element + * @param theOtherDz - the new dropzone the element entered + */ +function dispatchDraggedElementLeftContainerForAnother(containerEl, draggedEl, theOtherDz) { + containerEl.dispatchEvent( + new CustomEvent(DRAGGED_LEFT_EVENT_NAME, { + detail: {draggedEl, type: DRAGGED_LEFT_TYPES.LEFT_FOR_ANOTHER, theOtherDz} + }) + ); +} + +function dispatchDraggedElementLeftContainerForNone(containerEl, draggedEl) { + containerEl.dispatchEvent( + new CustomEvent(DRAGGED_LEFT_EVENT_NAME, { + detail: {draggedEl, type: DRAGGED_LEFT_TYPES.OUTSIDE_OF_ANY} + }) + ); +} +function dispatchDraggedElementIsOverIndex(containerEl, indexObj, draggedEl) { + containerEl.dispatchEvent( + new CustomEvent(DRAGGED_OVER_INDEX_EVENT_NAME, { + detail: {indexObj, draggedEl} + }) + ); +} +function dispatchDraggedLeftDocument(draggedEl) { + window.dispatchEvent( + new CustomEvent(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, { + detail: {draggedEl} + }) + ); +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js": +/*!****************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js ***! + \****************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "calcDistanceBetweenCenters": () => (/* binding */ calcDistanceBetweenCenters), +/* harmony export */ "calcInnerDistancesBetweenPointAndSidesOfElement": () => (/* binding */ calcInnerDistancesBetweenPointAndSidesOfElement), +/* harmony export */ "findCenter": () => (/* binding */ findCenter), +/* harmony export */ "findCenterOfElement": () => (/* binding */ findCenterOfElement), +/* harmony export */ "getAbsoluteRect": () => (/* binding */ getAbsoluteRect), +/* harmony export */ "getAbsoluteRectNoTransforms": () => (/* binding */ getAbsoluteRectNoTransforms), +/* harmony export */ "getBoundingRectNoTransforms": () => (/* binding */ getBoundingRectNoTransforms), +/* harmony export */ "isCenterOfAInsideB": () => (/* binding */ isCenterOfAInsideB), +/* harmony export */ "isElementOffDocument": () => (/* binding */ isElementOffDocument), +/* harmony export */ "isPointInsideRect": () => (/* binding */ isPointInsideRect) +/* harmony export */ }); +// This is based off https://stackoverflow.com/questions/27745438/how-to-compute-getboundingclientrect-without-considering-transforms/57876601#57876601 +// It removes the transforms that are potentially applied by the flip animations +/** + * Gets the bounding rect but removes transforms (ex: flip animation) + * @param {HTMLElement} el + * @return {{top: number, left: number, bottom: number, right: number}} + */ +function getBoundingRectNoTransforms(el) { + let ta; + const rect = el.getBoundingClientRect(); + const style = getComputedStyle(el); + const tx = style.transform; + + if (tx) { + let sx, sy, dx, dy; + if (tx.startsWith("matrix3d(")) { + ta = tx.slice(9, -1).split(/, /); + sx = +ta[0]; + sy = +ta[5]; + dx = +ta[12]; + dy = +ta[13]; + } else if (tx.startsWith("matrix(")) { + ta = tx.slice(7, -1).split(/, /); + sx = +ta[0]; + sy = +ta[3]; + dx = +ta[4]; + dy = +ta[5]; + } else { + return rect; + } + + const to = style.transformOrigin; + const x = rect.x - dx - (1 - sx) * parseFloat(to); + const y = rect.y - dy - (1 - sy) * parseFloat(to.slice(to.indexOf(" ") + 1)); + const w = sx ? rect.width / sx : el.offsetWidth; + const h = sy ? rect.height / sy : el.offsetHeight; + return { + x: x, + y: y, + width: w, + height: h, + top: y, + right: x + w, + bottom: y + h, + left: x + }; + } else { + return rect; + } +} + +/** + * Gets the absolute bounding rect (accounts for the window's scroll position and removes transforms) + * @param {HTMLElement} el + * @return {{top: number, left: number, bottom: number, right: number}} + */ +function getAbsoluteRectNoTransforms(el) { + const rect = getBoundingRectNoTransforms(el); + return { + top: rect.top + window.scrollY, + bottom: rect.bottom + window.scrollY, + left: rect.left + window.scrollX, + right: rect.right + window.scrollX + }; +} + +/** + * Gets the absolute bounding rect (accounts for the window's scroll position) + * @param {HTMLElement} el + * @return {{top: number, left: number, bottom: number, right: number}} + */ +function getAbsoluteRect(el) { + const rect = el.getBoundingClientRect(); + return { + top: rect.top + window.scrollY, + bottom: rect.bottom + window.scrollY, + left: rect.left + window.scrollX, + right: rect.right + window.scrollX + }; +} + +/** + * finds the center :) + * @typedef {Object} Rect + * @property {number} top + * @property {number} bottom + * @property {number} left + * @property {number} right + * @param {Rect} rect + * @return {{x: number, y: number}} + */ +function findCenter(rect) { + return { + x: (rect.left + rect.right) / 2, + y: (rect.top + rect.bottom) / 2 + }; +} + +/** + * @typedef {Object} Point + * @property {number} x + * @property {number} y + * @param {Point} pointA + * @param {Point} pointB + * @return {number} + */ +function calcDistance(pointA, pointB) { + return Math.sqrt(Math.pow(pointA.x - pointB.x, 2) + Math.pow(pointA.y - pointB.y, 2)); +} + +/** + * @param {Point} point + * @param {Rect} rect + * @return {boolean|boolean} + */ +function isPointInsideRect(point, rect) { + return point.y <= rect.bottom && point.y >= rect.top && point.x >= rect.left && point.x <= rect.right; +} + +/** + * find the absolute coordinates of the center of a dom element + * @param el {HTMLElement} + * @returns {{x: number, y: number}} + */ +function findCenterOfElement(el) { + return findCenter(getAbsoluteRect(el)); +} + +/** + * @param {HTMLElement} elA + * @param {HTMLElement} elB + * @return {boolean} + */ +function isCenterOfAInsideB(elA, elB) { + const centerOfA = findCenterOfElement(elA); + const rectOfB = getAbsoluteRectNoTransforms(elB); + return isPointInsideRect(centerOfA, rectOfB); +} + +/** + * @param {HTMLElement|ChildNode} elA + * @param {HTMLElement|ChildNode} elB + * @return {number} + */ +function calcDistanceBetweenCenters(elA, elB) { + const centerOfA = findCenterOfElement(elA); + const centerOfB = findCenterOfElement(elB); + return calcDistance(centerOfA, centerOfB); +} + +/** + * @param {HTMLElement} el - the element to check + * @returns {boolean} - true if the element in its entirety is off screen including the scrollable area (the normal dom events look at the mouse rather than the element) + */ +function isElementOffDocument(el) { + const rect = getAbsoluteRect(el); + return rect.right < 0 || rect.left > document.documentElement.scrollWidth || rect.bottom < 0 || rect.top > document.documentElement.scrollHeight; +} + +/** + * If the point is inside the element returns its distances from the sides, otherwise returns null + * @param {Point} point + * @param {HTMLElement} el + * @return {null|{top: number, left: number, bottom: number, right: number}} + */ +function calcInnerDistancesBetweenPointAndSidesOfElement(point, el) { + const rect = getAbsoluteRect(el); + if (!isPointInsideRect(point, rect)) { + return null; + } + return { + top: point.y - rect.top, + bottom: rect.bottom - point.y, + left: point.x - rect.left, + // TODO - figure out what is so special about right (why the rect is too big) + right: Math.min(rect.right, document.documentElement.clientWidth) - point.x + }; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/listUtil.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/listUtil.js ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "findWouldBeIndex": () => (/* binding */ findWouldBeIndex), +/* harmony export */ "resetIndexesCache": () => (/* binding */ resetIndexesCache), +/* harmony export */ "resetIndexesCacheForDz": () => (/* binding */ resetIndexesCacheForDz) +/* harmony export */ }); +/* harmony import */ var _intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersection */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../constants */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js"); + + + +let dzToShadowIndexToRect; + +/** + * Resets the cache that allows for smarter "would be index" resolution. Should be called after every drag operation + */ +function resetIndexesCache() { + (0,_constants__WEBPACK_IMPORTED_MODULE_1__.printDebug)(() => "resetting indexes cache"); + dzToShadowIndexToRect = new Map(); +} +resetIndexesCache(); + +/** + * Resets the cache that allows for smarter "would be index" resolution for a specific dropzone, should be called after the zone was scrolled + * @param {HTMLElement} dz + */ +function resetIndexesCacheForDz(dz) { + (0,_constants__WEBPACK_IMPORTED_MODULE_1__.printDebug)(() => "resetting indexes cache for dz"); + dzToShadowIndexToRect.delete(dz); +} + +/** + * Caches the coordinates of the shadow element when it's in a certain index in a certain dropzone. + * Helpful in order to determine "would be index" more effectively + * @param {HTMLElement} dz + * @return {number} - the shadow element index + */ +function cacheShadowRect(dz) { + const shadowElIndex = Array.from(dz.children).findIndex(child => child.getAttribute(_constants__WEBPACK_IMPORTED_MODULE_1__.SHADOW_ELEMENT_ATTRIBUTE_NAME)); + if (shadowElIndex >= 0) { + if (!dzToShadowIndexToRect.has(dz)) { + dzToShadowIndexToRect.set(dz, new Map()); + } + dzToShadowIndexToRect.get(dz).set(shadowElIndex, (0,_intersection__WEBPACK_IMPORTED_MODULE_0__.getAbsoluteRectNoTransforms)(dz.children[shadowElIndex])); + return shadowElIndex; + } + return undefined; +} + +/** + * @typedef {Object} Index + * @property {number} index - the would be index + * @property {boolean} isProximityBased - false if the element is actually over the index, true if it is not over it but this index is the closest + */ +/** + * Find the index for the dragged element in the list it is dragged over + * @param {HTMLElement} floatingAboveEl + * @param {HTMLElement} collectionBelowEl + * @returns {Index|null} - if the element is over the container the Index object otherwise null + */ +function findWouldBeIndex(floatingAboveEl, collectionBelowEl) { + if (!(0,_intersection__WEBPACK_IMPORTED_MODULE_0__.isCenterOfAInsideB)(floatingAboveEl, collectionBelowEl)) { + return null; + } + const children = collectionBelowEl.children; + // the container is empty, floating element should be the first + if (children.length === 0) { + return {index: 0, isProximityBased: true}; + } + const shadowElIndex = cacheShadowRect(collectionBelowEl); + + // the search could be more efficient but keeping it simple for now + // a possible improvement: pass in the lastIndex it was found in and check there first, then expand from there + for (let i = 0; i < children.length; i++) { + if ((0,_intersection__WEBPACK_IMPORTED_MODULE_0__.isCenterOfAInsideB)(floatingAboveEl, children[i])) { + const cachedShadowRect = dzToShadowIndexToRect.has(collectionBelowEl) && dzToShadowIndexToRect.get(collectionBelowEl).get(i); + if (cachedShadowRect) { + if (!(0,_intersection__WEBPACK_IMPORTED_MODULE_0__.isPointInsideRect)((0,_intersection__WEBPACK_IMPORTED_MODULE_0__.findCenterOfElement)(floatingAboveEl), cachedShadowRect)) { + return {index: shadowElIndex, isProximityBased: false}; + } + } + return {index: i, isProximityBased: false}; + } + } + // this can happen if there is space around the children so the floating element has + //entered the container but not any of the children, in this case we will find the nearest child + let minDistanceSoFar = Number.MAX_VALUE; + let indexOfMin = undefined; + // we are checking all of them because we don't know whether we are dealing with a horizontal or vertical container and where the floating element entered from + for (let i = 0; i < children.length; i++) { + const distance = (0,_intersection__WEBPACK_IMPORTED_MODULE_0__.calcDistanceBetweenCenters)(floatingAboveEl, children[i]); + if (distance < minDistanceSoFar) { + minDistanceSoFar = distance; + indexOfMin = i; + } + } + return {index: indexOfMin, isProximityBased: true}; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/observer.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/observer.js ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "observe": () => (/* binding */ observe), +/* harmony export */ "unobserve": () => (/* binding */ unobserve) +/* harmony export */ }); +/* harmony import */ var _listUtil__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./listUtil */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/listUtil.js"); +/* harmony import */ var _intersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersection */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js"); +/* harmony import */ var _dispatcher__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./dispatcher */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/dispatcher.js"); +/* harmony import */ var _scroller__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./scroller */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/scroller.js"); +/* harmony import */ var _util__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./util */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/util.js"); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ../constants */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js"); + + + + + + + +const INTERVAL_MS = 200; +const TOLERANCE_PX = 10; +const {scrollIfNeeded, resetScrolling} = (0,_scroller__WEBPACK_IMPORTED_MODULE_3__.makeScroller)(); +let next; + +/** + * Tracks the dragged elements and performs the side effects when it is dragged over a drop zone (basically dispatching custom-events scrolling) + * @param {Set} dropZones + * @param {HTMLElement} draggedEl + * @param {number} [intervalMs = INTERVAL_MS] + */ +function observe(draggedEl, dropZones, intervalMs = INTERVAL_MS) { + // initialization + let lastDropZoneFound; + let lastIndexFound; + let lastIsDraggedInADropZone = false; + let lastCentrePositionOfDragged; + // We are sorting to make sure that in case of nested zones of the same type the one "on top" is considered first + const dropZonesFromDeepToShallow = Array.from(dropZones).sort((dz1, dz2) => (0,_util__WEBPACK_IMPORTED_MODULE_4__.getDepth)(dz2) - (0,_util__WEBPACK_IMPORTED_MODULE_4__.getDepth)(dz1)); + + /** + * The main function in this module. Tracks where everything is/ should be a take the actions + */ + function andNow() { + const currentCenterOfDragged = (0,_intersection__WEBPACK_IMPORTED_MODULE_1__.findCenterOfElement)(draggedEl); + const scrolled = scrollIfNeeded(currentCenterOfDragged, lastDropZoneFound); + // we only want to make a new decision after the element was moved a bit to prevent flickering + if ( + !scrolled && + lastCentrePositionOfDragged && + Math.abs(lastCentrePositionOfDragged.x - currentCenterOfDragged.x) < TOLERANCE_PX && + Math.abs(lastCentrePositionOfDragged.y - currentCenterOfDragged.y) < TOLERANCE_PX + ) { + next = window.setTimeout(andNow, intervalMs); + return; + } + if ((0,_intersection__WEBPACK_IMPORTED_MODULE_1__.isElementOffDocument)(draggedEl)) { + (0,_constants__WEBPACK_IMPORTED_MODULE_5__.printDebug)(() => "off document"); + (0,_dispatcher__WEBPACK_IMPORTED_MODULE_2__.dispatchDraggedLeftDocument)(draggedEl); + return; + } + + lastCentrePositionOfDragged = currentCenterOfDragged; + // this is a simple algorithm, potential improvement: first look at lastDropZoneFound + let isDraggedInADropZone = false; + for (const dz of dropZonesFromDeepToShallow) { + if (scrolled) (0,_listUtil__WEBPACK_IMPORTED_MODULE_0__.resetIndexesCacheForDz)(lastDropZoneFound); + const indexObj = (0,_listUtil__WEBPACK_IMPORTED_MODULE_0__.findWouldBeIndex)(draggedEl, dz); + if (indexObj === null) { + // it is not inside + continue; + } + const {index} = indexObj; + isDraggedInADropZone = true; + // the element is over a container + if (dz !== lastDropZoneFound) { + lastDropZoneFound && (0,_dispatcher__WEBPACK_IMPORTED_MODULE_2__.dispatchDraggedElementLeftContainerForAnother)(lastDropZoneFound, draggedEl, dz); + (0,_dispatcher__WEBPACK_IMPORTED_MODULE_2__.dispatchDraggedElementEnteredContainer)(dz, indexObj, draggedEl); + lastDropZoneFound = dz; + } else if (index !== lastIndexFound) { + (0,_dispatcher__WEBPACK_IMPORTED_MODULE_2__.dispatchDraggedElementIsOverIndex)(dz, indexObj, draggedEl); + lastIndexFound = index; + } + // we handle looping with the 'continue' statement above + break; + } + // the first time the dragged element is not in any dropzone we need to notify the last dropzone it was in + if (!isDraggedInADropZone && lastIsDraggedInADropZone && lastDropZoneFound) { + (0,_dispatcher__WEBPACK_IMPORTED_MODULE_2__.dispatchDraggedElementLeftContainerForNone)(lastDropZoneFound, draggedEl); + lastDropZoneFound = undefined; + lastIndexFound = undefined; + lastIsDraggedInADropZone = false; + } else { + lastIsDraggedInADropZone = true; + } + next = window.setTimeout(andNow, intervalMs); + } + andNow(); +} + +// assumption - we can only observe one dragged element at a time, this could be changed in the future +function unobserve() { + (0,_constants__WEBPACK_IMPORTED_MODULE_5__.printDebug)(() => "unobserving"); + clearTimeout(next); + resetScrolling(); + (0,_listUtil__WEBPACK_IMPORTED_MODULE_0__.resetIndexesCache)(); +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/scroller.js": +/*!************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/scroller.js ***! + \************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "makeScroller": () => (/* binding */ makeScroller) +/* harmony export */ }); +/* harmony import */ var _intersection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./intersection */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js"); + +const SCROLL_ZONE_PX = 25; + +function makeScroller() { + let scrollingInfo; + function resetScrolling() { + scrollingInfo = {directionObj: undefined, stepPx: 0}; + } + resetScrolling(); + // directionObj {x: 0|1|-1, y:0|1|-1} - 1 means down in y and right in x + function scrollContainer(containerEl) { + const {directionObj, stepPx} = scrollingInfo; + if (directionObj) { + containerEl.scrollBy(directionObj.x * stepPx, directionObj.y * stepPx); + window.requestAnimationFrame(() => scrollContainer(containerEl)); + } + } + function calcScrollStepPx(distancePx) { + return SCROLL_ZONE_PX - distancePx; + } + + /** + * If the pointer is next to the sides of the element to scroll, will trigger scrolling + * Can be called repeatedly with updated pointer and elementToScroll values without issues + * @return {boolean} - true if scrolling was needed + */ + function scrollIfNeeded(pointer, elementToScroll) { + if (!elementToScroll) { + return false; + } + const distances = (0,_intersection__WEBPACK_IMPORTED_MODULE_0__.calcInnerDistancesBetweenPointAndSidesOfElement)(pointer, elementToScroll); + if (distances === null) { + resetScrolling(); + return false; + } + const isAlreadyScrolling = !!scrollingInfo.directionObj; + let [scrollingVertically, scrollingHorizontally] = [false, false]; + // vertical + if (elementToScroll.scrollHeight > elementToScroll.clientHeight) { + if (distances.bottom < SCROLL_ZONE_PX) { + scrollingVertically = true; + scrollingInfo.directionObj = {x: 0, y: 1}; + scrollingInfo.stepPx = calcScrollStepPx(distances.bottom); + } else if (distances.top < SCROLL_ZONE_PX) { + scrollingVertically = true; + scrollingInfo.directionObj = {x: 0, y: -1}; + scrollingInfo.stepPx = calcScrollStepPx(distances.top); + } + if (!isAlreadyScrolling && scrollingVertically) { + scrollContainer(elementToScroll); + return true; + } + } + // horizontal + if (elementToScroll.scrollWidth > elementToScroll.clientWidth) { + if (distances.right < SCROLL_ZONE_PX) { + scrollingHorizontally = true; + scrollingInfo.directionObj = {x: 1, y: 0}; + scrollingInfo.stepPx = calcScrollStepPx(distances.right); + } else if (distances.left < SCROLL_ZONE_PX) { + scrollingHorizontally = true; + scrollingInfo.directionObj = {x: -1, y: 0}; + scrollingInfo.stepPx = calcScrollStepPx(distances.left); + } + if (!isAlreadyScrolling && scrollingHorizontally) { + scrollContainer(elementToScroll); + return true; + } + } + resetScrolling(); + return false; + } + + return { + scrollIfNeeded, + resetScrolling + }; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/styler.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/styler.js ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "createDraggedElementFrom": () => (/* binding */ createDraggedElementFrom), +/* harmony export */ "decorateShadowEl": () => (/* binding */ decorateShadowEl), +/* harmony export */ "hideElement": () => (/* binding */ hideElement), +/* harmony export */ "morphDraggedElementToBeLike": () => (/* binding */ morphDraggedElementToBeLike), +/* harmony export */ "moveDraggedElementToWasDroppedState": () => (/* binding */ moveDraggedElementToWasDroppedState), +/* harmony export */ "preventShrinking": () => (/* binding */ preventShrinking), +/* harmony export */ "styleActiveDropZones": () => (/* binding */ styleActiveDropZones), +/* harmony export */ "styleDraggable": () => (/* binding */ styleDraggable), +/* harmony export */ "styleInactiveDropZones": () => (/* binding */ styleInactiveDropZones), +/* harmony export */ "unDecorateShadowElement": () => (/* binding */ unDecorateShadowElement) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../constants */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/constants.js"); +/* harmony import */ var _intersection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./intersection */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/intersection.js"); +/* harmony import */ var _svelteNodeClone__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./svelteNodeClone */ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/svelteNodeClone.js"); + + + + +const TRANSITION_DURATION_SECONDS = 0.2; + +/** + * private helper function - creates a transition string for a property + * @param {string} property + * @return {string} - the transition string + */ +function trs(property) { + return `${property} ${TRANSITION_DURATION_SECONDS}s ease`; +} +/** + * clones the given element and applies proper styles and transitions to the dragged element + * @param {HTMLElement} originalElement + * @param {Point} [positionCenterOnXY] + * @return {Node} - the cloned, styled element + */ +function createDraggedElementFrom(originalElement, positionCenterOnXY) { + const rect = originalElement.getBoundingClientRect(); + const draggedEl = (0,_svelteNodeClone__WEBPACK_IMPORTED_MODULE_2__.svelteNodeClone)(originalElement); + copyStylesFromTo(originalElement, draggedEl); + draggedEl.id = _constants__WEBPACK_IMPORTED_MODULE_0__.DRAGGED_ELEMENT_ID; + draggedEl.style.position = "fixed"; + let elTopPx = rect.top; + let elLeftPx = rect.left; + draggedEl.style.top = `${elTopPx}px`; + draggedEl.style.left = `${elLeftPx}px`; + if (positionCenterOnXY) { + const center = (0,_intersection__WEBPACK_IMPORTED_MODULE_1__.findCenter)(rect); + elTopPx -= center.y - positionCenterOnXY.y; + elLeftPx -= center.x - positionCenterOnXY.x; + window.setTimeout(() => { + draggedEl.style.top = `${elTopPx}px`; + draggedEl.style.left = `${elLeftPx}px`; + }, 0); + } + draggedEl.style.margin = "0"; + // we can't have relative or automatic height and width or it will break the illusion + draggedEl.style.boxSizing = "border-box"; + draggedEl.style.height = `${rect.height}px`; + draggedEl.style.width = `${rect.width}px`; + draggedEl.style.transition = `${trs("top")}, ${trs("left")}, ${trs("background-color")}, ${trs("opacity")}, ${trs("color")} `; + // this is a workaround for a strange browser bug that causes the right border to disappear when all the transitions are added at the same time + window.setTimeout(() => (draggedEl.style.transition += `, ${trs("width")}, ${trs("height")}`), 0); + draggedEl.style.zIndex = "9999"; + draggedEl.style.cursor = "grabbing"; + + return draggedEl; +} + +/** + * styles the dragged element to a 'dropped' state + * @param {HTMLElement} draggedEl + */ +function moveDraggedElementToWasDroppedState(draggedEl) { + draggedEl.style.cursor = "grab"; +} + +/** + * Morphs the dragged element style, maintains the mouse pointer within the element + * @param {HTMLElement} draggedEl + * @param {HTMLElement} copyFromEl - the element the dragged element should look like, typically the shadow element + * @param {number} currentMouseX + * @param {number} currentMouseY + * @param {function} transformDraggedElement - function to transform the dragged element, does nothing by default. + */ +function morphDraggedElementToBeLike(draggedEl, copyFromEl, currentMouseX, currentMouseY, transformDraggedElement) { + const newRect = copyFromEl.getBoundingClientRect(); + const draggedElRect = draggedEl.getBoundingClientRect(); + const widthChange = newRect.width - draggedElRect.width; + const heightChange = newRect.height - draggedElRect.height; + if (widthChange || heightChange) { + const relativeDistanceOfMousePointerFromDraggedSides = { + left: (currentMouseX - draggedElRect.left) / draggedElRect.width, + top: (currentMouseY - draggedElRect.top) / draggedElRect.height + }; + draggedEl.style.height = `${newRect.height}px`; + draggedEl.style.width = `${newRect.width}px`; + draggedEl.style.left = `${parseFloat(draggedEl.style.left) - relativeDistanceOfMousePointerFromDraggedSides.left * widthChange}px`; + draggedEl.style.top = `${parseFloat(draggedEl.style.top) - relativeDistanceOfMousePointerFromDraggedSides.top * heightChange}px`; + } + + /// other properties + copyStylesFromTo(copyFromEl, draggedEl); + transformDraggedElement(); +} + +/** + * @param {HTMLElement} copyFromEl + * @param {HTMLElement} copyToEl + */ +function copyStylesFromTo(copyFromEl, copyToEl) { + const computedStyle = window.getComputedStyle(copyFromEl); + Array.from(computedStyle) + .filter( + s => + s.startsWith("background") || + s.startsWith("padding") || + s.startsWith("font") || + s.startsWith("text") || + s.startsWith("align") || + s.startsWith("justify") || + s.startsWith("display") || + s.startsWith("flex") || + s.startsWith("border") || + s === "opacity" || + s === "color" || + s === "list-style-type" + ) + .forEach(s => copyToEl.style.setProperty(s, computedStyle.getPropertyValue(s), computedStyle.getPropertyPriority(s))); +} + +/** + * makes the element compatible with being draggable + * @param {HTMLElement} draggableEl + * @param {boolean} dragDisabled + */ +function styleDraggable(draggableEl, dragDisabled) { + draggableEl.draggable = false; + draggableEl.ondragstart = () => false; + if (!dragDisabled) { + draggableEl.style.userSelect = "none"; + draggableEl.style.WebkitUserSelect = "none"; + draggableEl.style.cursor = "grab"; + } else { + draggableEl.style.userSelect = ""; + draggableEl.style.WebkitUserSelect = ""; + draggableEl.style.cursor = ""; + } +} + +/** + * Hides the provided element so that it can stay in the dom without interrupting + * @param {HTMLElement} dragTarget + */ +function hideElement(dragTarget) { + dragTarget.style.display = "none"; + dragTarget.style.position = "fixed"; + dragTarget.style.zIndex = "-5"; +} + +/** + * styles the shadow element + * @param {HTMLElement} shadowEl + */ +function decorateShadowEl(shadowEl) { + shadowEl.style.visibility = "hidden"; + shadowEl.setAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.SHADOW_ELEMENT_ATTRIBUTE_NAME, "true"); +} + +/** + * undo the styles the shadow element + * @param {HTMLElement} shadowEl + */ +function unDecorateShadowElement(shadowEl) { + shadowEl.style.visibility = ""; + shadowEl.removeAttribute(_constants__WEBPACK_IMPORTED_MODULE_0__.SHADOW_ELEMENT_ATTRIBUTE_NAME); +} + +/** + * will mark the given dropzones as visually active + * @param {Array} dropZones + * @param {Function} getStyles - maps a dropzone to a styles object (so the styles can be removed) + * @param {Function} getClasses - maps a dropzone to a classList + */ +function styleActiveDropZones(dropZones, getStyles = () => {}, getClasses = () => []) { + dropZones.forEach(dz => { + const styles = getStyles(dz); + Object.keys(styles).forEach(style => { + dz.style[style] = styles[style]; + }); + getClasses(dz).forEach(c => dz.classList.add(c)); + }); +} + +/** + * will remove the 'active' styling from given dropzones + * @param {Array} dropZones + * @param {Function} getStyles - maps a dropzone to a styles object + * @param {Function} getClasses - maps a dropzone to a classList + */ +function styleInactiveDropZones(dropZones, getStyles = () => {}, getClasses = () => []) { + dropZones.forEach(dz => { + const styles = getStyles(dz); + Object.keys(styles).forEach(style => { + dz.style[style] = ""; + }); + getClasses(dz).forEach(c => dz.classList.contains(c) && dz.classList.remove(c)); + }); +} + +/** + * will prevent the provided element from shrinking by setting its minWidth and minHeight to the current width and height values + * @param {HTMLElement} el + * @return {function(): void} - run this function to undo the operation and restore the original values + */ +function preventShrinking(el) { + const originalMinHeight = el.style.minHeight; + el.style.minHeight = window.getComputedStyle(el).getPropertyValue("height"); + const originalMinWidth = el.style.minWidth; + el.style.minWidth = window.getComputedStyle(el).getPropertyValue("width"); + return function undo() { + el.style.minHeight = originalMinHeight; + el.style.minWidth = originalMinWidth; + }; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/svelteNodeClone.js": +/*!*******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/svelte-dnd-action@0.9.19/node_modules/svelte-dnd-action/src/helpers/svelteNodeClone.js ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "svelteNodeClone": () => (/* binding */ svelteNodeClone) +/* harmony export */ }); +/** + * Fixes svelte issue when cloning node containing (or being) which will loose it's value.\n * Since svelte manages select value internally.\n * @see https://github.com/sveltejs/svelte/issues/6717\n * @see https://github.com/isaacHagoel/svelte-dnd-action/issues/306\n * \n * @param {HTMLElement} el \n * @returns \n */\nexport function svelteNodeClone(el) {\n const cloned = el.cloneNode(true);\n\n const values = [];\n const elIsSelect = el.tagName === \"SELECT\";\n const selects = elIsSelect ? [el] : [...el.querySelectorAll('select')];\n for (const select of selects) {\n values.push(select.value);\n }\n\n if (selects.length <= 0) {\n return cloned;\n }\n\n const clonedSelects = elIsSelect ? [cloned] : [...cloned.querySelectorAll('select')];\n for (let i = 0; i < clonedSelects.length; i++) {\n const select = clonedSelects[i];\n const value = values[i];\n const optionEl = select.querySelector(`option[value=\"${value}\"`);\n if (optionEl) {\n optionEl.setAttribute('selected', true);\n }\n }\n\n return cloned;\n}\n","/**\n * @param {Object} object\n * @return {string}\n */\nexport function toString(object) {\n return JSON.stringify(object, null, 2);\n}\n\n/**\n * Finds the depth of the given node in the DOM tree\n * @param {HTMLElement} node\n * @return {number} - the depth of the node\n */\nexport function getDepth(node) {\n if (!node) {\n throw new Error(\"cannot get depth of a falsy node\");\n }\n return _getDepth(node, 0);\n}\nfunction _getDepth(node, countSoFar = 0) {\n if (!node.parentElement) {\n return countSoFar - 1;\n }\n return _getDepth(node.parentElement, countSoFar + 1);\n}\n\n/**\n * A simple util to shallow compare objects quickly, it doesn't validate the arguments so pass objects in\n * @param {Object} objA\n * @param {Object} objB\n * @return {boolean} - true if objA and objB are shallow equal\n */\nexport function areObjectsShallowEqual(objA, objB) {\n if (Object.keys(objA).length !== Object.keys(objB).length) {\n return false;\n }\n for (const keyA in objA) {\n if (!{}.hasOwnProperty.call(objB, keyA) || objB[keyA] !== objA[keyA]) {\n return false;\n }\n }\n return true;\n}\n\n/**\n * Shallow compares two arrays\n * @param arrA\n * @param arrB\n * @return {boolean} - whether the arrays are shallow equal\n */\nexport function areArraysShallowEqualSameOrder(arrA, arrB) {\n if (arrA.length !== arrB.length) {\n return false;\n }\n for (let i = 0; i < arrA.length; i++) {\n if (arrA[i] !== arrB[i]) {\n return false;\n }\n }\n return true;\n}\n","import {makeScroller} from \"./scroller\";\nimport {printDebug} from \"../constants\";\nimport {resetIndexesCache} from \"./listUtil\";\n\nconst INTERVAL_MS = 300;\nlet mousePosition;\n\n/**\n * Do not use this! it is visible for testing only until we get over the issue Cypress not triggering the mousemove listeners\n * // TODO - make private (remove export)\n * @param {{clientX: number, clientY: number}} e\n */\nexport function updateMousePosition(e) {\n const c = e.touches ? e.touches[0] : e;\n mousePosition = {x: c.clientX, y: c.clientY};\n}\nconst {scrollIfNeeded, resetScrolling} = makeScroller();\nlet next;\n\nfunction loop() {\n if (mousePosition) {\n const scrolled = scrollIfNeeded(mousePosition, document.documentElement);\n if (scrolled) resetIndexesCache();\n }\n next = window.setTimeout(loop, INTERVAL_MS);\n}\n\n/**\n * will start watching the mouse pointer and scroll the window if it goes next to the edges\n */\nexport function armWindowScroller() {\n printDebug(() => \"arming window scroller\");\n window.addEventListener(\"mousemove\", updateMousePosition);\n window.addEventListener(\"touchmove\", updateMousePosition);\n loop();\n}\n\n/**\n * will stop watching the mouse pointer and won't scroll the window anymore\n */\nexport function disarmWindowScroller() {\n printDebug(() => \"disarming window scroller\");\n window.removeEventListener(\"mousemove\", updateMousePosition);\n window.removeEventListener(\"touchmove\", updateMousePosition);\n mousePosition = undefined;\n window.clearTimeout(next);\n resetScrolling();\n}\n","export {dndzone} from \"./action.js\";\nexport {alertToScreenReader} from \"./helpers/aria\";\nexport {\n TRIGGERS,\n SOURCES,\n SHADOW_ITEM_MARKER_PROPERTY_NAME,\n SHADOW_PLACEHOLDER_ITEM_ID,\n DRAGGED_ELEMENT_ID,\n overrideItemIdKeyNameBeforeInitialisingDndZones,\n setDebugMode\n} from \"./constants\";\n","import {decrementActiveDropZoneCount, incrementActiveDropZoneCount, ITEM_ID_KEY, SOURCES, TRIGGERS} from \"./constants\";\nimport {styleActiveDropZones, styleInactiveDropZones} from \"./helpers/styler\";\nimport {dispatchConsiderEvent, dispatchFinalizeEvent} from \"./helpers/dispatcher\";\nimport {initAria, alertToScreenReader, destroyAria} from \"./helpers/aria\";\nimport {toString} from \"./helpers/util\";\nimport {printDebug} from \"./constants\";\n\nconst DEFAULT_DROP_ZONE_TYPE = \"--any--\";\nconst DEFAULT_DROP_TARGET_STYLE = {\n outline: \"rgba(255, 255, 102, 0.7) solid 2px\"\n};\n\nlet isDragging = false;\nlet draggedItemType;\nlet focusedDz;\nlet focusedDzLabel = \"\";\nlet focusedItem;\nlet focusedItemId;\nlet focusedItemLabel = \"\";\nconst allDragTargets = new WeakSet();\nconst elToKeyDownListeners = new WeakMap();\nconst elToFocusListeners = new WeakMap();\nconst dzToHandles = new Map();\nconst dzToConfig = new Map();\nconst typeToDropZones = new Map();\n\n/* TODO (potentially)\n * what's the deal with the black border of voice-reader not following focus?\n * maybe keep focus on the last dragged item upon drop?\n */\n\nlet INSTRUCTION_IDs;\n\n/* drop-zones registration management */\nfunction registerDropZone(dropZoneEl, type) {\n printDebug(() => \"registering drop-zone if absent\");\n if (typeToDropZones.size === 0) {\n printDebug(() => \"adding global keydown and click handlers\");\n INSTRUCTION_IDs = initAria();\n window.addEventListener(\"keydown\", globalKeyDownHandler);\n window.addEventListener(\"click\", globalClickHandler);\n }\n if (!typeToDropZones.has(type)) {\n typeToDropZones.set(type, new Set());\n }\n if (!typeToDropZones.get(type).has(dropZoneEl)) {\n typeToDropZones.get(type).add(dropZoneEl);\n incrementActiveDropZoneCount();\n }\n}\nfunction unregisterDropZone(dropZoneEl, type) {\n printDebug(() => \"unregistering drop-zone\");\n if (focusedDz === dropZoneEl) {\n handleDrop();\n }\n typeToDropZones.get(type).delete(dropZoneEl);\n decrementActiveDropZoneCount();\n if (typeToDropZones.get(type).size === 0) {\n typeToDropZones.delete(type);\n }\n if (typeToDropZones.size === 0) {\n printDebug(() => \"removing global keydown and click handlers\");\n window.removeEventListener(\"keydown\", globalKeyDownHandler);\n window.removeEventListener(\"click\", globalClickHandler);\n INSTRUCTION_IDs = undefined;\n destroyAria();\n }\n}\n\nfunction globalKeyDownHandler(e) {\n if (!isDragging) return;\n switch (e.key) {\n case \"Escape\": {\n handleDrop();\n break;\n }\n }\n}\n\nfunction globalClickHandler() {\n if (!isDragging) return;\n if (!allDragTargets.has(document.activeElement)) {\n printDebug(() => \"clicked outside of any draggable\");\n handleDrop();\n }\n}\n\nfunction handleZoneFocus(e) {\n printDebug(() => \"zone focus\");\n if (!isDragging) return;\n const newlyFocusedDz = e.currentTarget;\n if (newlyFocusedDz === focusedDz) return;\n\n focusedDzLabel = newlyFocusedDz.getAttribute(\"aria-label\") || \"\";\n const {items: originItems} = dzToConfig.get(focusedDz);\n const originItem = originItems.find(item => item[ITEM_ID_KEY] === focusedItemId);\n const originIdx = originItems.indexOf(originItem);\n const itemToMove = originItems.splice(originIdx, 1)[0];\n const {items: targetItems, autoAriaDisabled} = dzToConfig.get(newlyFocusedDz);\n if (\n newlyFocusedDz.getBoundingClientRect().top < focusedDz.getBoundingClientRect().top ||\n newlyFocusedDz.getBoundingClientRect().left < focusedDz.getBoundingClientRect().left\n ) {\n targetItems.push(itemToMove);\n if (!autoAriaDisabled) {\n alertToScreenReader(`Moved item ${focusedItemLabel} to the end of the list ${focusedDzLabel}`);\n }\n } else {\n targetItems.unshift(itemToMove);\n if (!autoAriaDisabled) {\n alertToScreenReader(`Moved item ${focusedItemLabel} to the beginning of the list ${focusedDzLabel}`);\n }\n }\n const dzFrom = focusedDz;\n dispatchFinalizeEvent(dzFrom, originItems, {trigger: TRIGGERS.DROPPED_INTO_ANOTHER, id: focusedItemId, source: SOURCES.KEYBOARD});\n dispatchFinalizeEvent(newlyFocusedDz, targetItems, {trigger: TRIGGERS.DROPPED_INTO_ZONE, id: focusedItemId, source: SOURCES.KEYBOARD});\n focusedDz = newlyFocusedDz;\n}\n\nfunction triggerAllDzsUpdate() {\n dzToHandles.forEach(({update}, dz) => update(dzToConfig.get(dz)));\n}\n\nfunction handleDrop(dispatchConsider = true) {\n printDebug(() => \"drop\");\n if (!dzToConfig.get(focusedDz).autoAriaDisabled) {\n alertToScreenReader(`Stopped dragging item ${focusedItemLabel}`);\n }\n if (allDragTargets.has(document.activeElement)) {\n document.activeElement.blur();\n }\n if (dispatchConsider) {\n dispatchConsiderEvent(focusedDz, dzToConfig.get(focusedDz).items, {\n trigger: TRIGGERS.DRAG_STOPPED,\n id: focusedItemId,\n source: SOURCES.KEYBOARD\n });\n }\n styleInactiveDropZones(\n typeToDropZones.get(draggedItemType),\n dz => dzToConfig.get(dz).dropTargetStyle,\n dz => dzToConfig.get(dz).dropTargetClasses\n );\n focusedItem = null;\n focusedItemId = null;\n focusedItemLabel = \"\";\n draggedItemType = null;\n focusedDz = null;\n focusedDzLabel = \"\";\n isDragging = false;\n triggerAllDzsUpdate();\n}\n//////\nexport function dndzone(node, options) {\n const config = {\n items: undefined,\n type: undefined,\n dragDisabled: false,\n zoneTabIndex: 0,\n dropFromOthersDisabled: false,\n dropTargetStyle: DEFAULT_DROP_TARGET_STYLE,\n dropTargetClasses: [],\n autoAriaDisabled: false\n };\n\n function swap(arr, i, j) {\n if (arr.length <= 1) return;\n arr.splice(j, 1, arr.splice(i, 1, arr[j])[0]);\n }\n\n function handleKeyDown(e) {\n printDebug(() => [\"handling key down\", e.key]);\n switch (e.key) {\n case \"Enter\":\n case \" \": {\n // we don't want to affect nested input elements or clickable elements\n if ((e.target.disabled !== undefined || e.target.href || e.target.isContentEditable) && !allDragTargets.has(e.target)) {\n return;\n }\n e.preventDefault(); // preventing scrolling on spacebar\n e.stopPropagation();\n if (isDragging) {\n // TODO - should this trigger a drop? only here or in general (as in when hitting space or enter outside of any zone)?\n handleDrop();\n } else {\n // drag start\n handleDragStart(e);\n }\n break;\n }\n case \"ArrowDown\":\n case \"ArrowRight\": {\n if (!isDragging) return;\n e.preventDefault(); // prevent scrolling\n e.stopPropagation();\n const {items} = dzToConfig.get(node);\n const children = Array.from(node.children);\n const idx = children.indexOf(e.currentTarget);\n printDebug(() => [\"arrow down\", idx]);\n if (idx < children.length - 1) {\n if (!config.autoAriaDisabled) {\n alertToScreenReader(`Moved item ${focusedItemLabel} to position ${idx + 2} in the list ${focusedDzLabel}`);\n }\n swap(items, idx, idx + 1);\n dispatchFinalizeEvent(node, items, {trigger: TRIGGERS.DROPPED_INTO_ZONE, id: focusedItemId, source: SOURCES.KEYBOARD});\n }\n break;\n }\n case \"ArrowUp\":\n case \"ArrowLeft\": {\n if (!isDragging) return;\n e.preventDefault(); // prevent scrolling\n e.stopPropagation();\n const {items} = dzToConfig.get(node);\n const children = Array.from(node.children);\n const idx = children.indexOf(e.currentTarget);\n printDebug(() => [\"arrow up\", idx]);\n if (idx > 0) {\n if (!config.autoAriaDisabled) {\n alertToScreenReader(`Moved item ${focusedItemLabel} to position ${idx} in the list ${focusedDzLabel}`);\n }\n swap(items, idx, idx - 1);\n dispatchFinalizeEvent(node, items, {trigger: TRIGGERS.DROPPED_INTO_ZONE, id: focusedItemId, source: SOURCES.KEYBOARD});\n }\n break;\n }\n }\n }\n function handleDragStart(e) {\n printDebug(() => \"drag start\");\n setCurrentFocusedItem(e.currentTarget);\n focusedDz = node;\n draggedItemType = config.type;\n isDragging = true;\n const dropTargets = Array.from(typeToDropZones.get(config.type)).filter(dz => dz === focusedDz || !dzToConfig.get(dz).dropFromOthersDisabled);\n styleActiveDropZones(\n dropTargets,\n dz => dzToConfig.get(dz).dropTargetStyle,\n dz => dzToConfig.get(dz).dropTargetClasses\n );\n if (!config.autoAriaDisabled) {\n let msg = `Started dragging item ${focusedItemLabel}. Use the arrow keys to move it within its list ${focusedDzLabel}`;\n if (dropTargets.length > 1) {\n msg += `, or tab to another list in order to move the item into it`;\n }\n alertToScreenReader(msg);\n }\n dispatchConsiderEvent(node, dzToConfig.get(node).items, {trigger: TRIGGERS.DRAG_STARTED, id: focusedItemId, source: SOURCES.KEYBOARD});\n triggerAllDzsUpdate();\n }\n\n function handleClick(e) {\n if (!isDragging) return;\n if (e.currentTarget === focusedItem) return;\n e.stopPropagation();\n handleDrop(false);\n handleDragStart(e);\n }\n function setCurrentFocusedItem(draggableEl) {\n const {items} = dzToConfig.get(node);\n const children = Array.from(node.children);\n const focusedItemIdx = children.indexOf(draggableEl);\n focusedItem = draggableEl;\n focusedItem.tabIndex = 0;\n focusedItemId = items[focusedItemIdx][ITEM_ID_KEY];\n focusedItemLabel = children[focusedItemIdx].getAttribute(\"aria-label\") || \"\";\n }\n\n function configure({\n items = [],\n type: newType = DEFAULT_DROP_ZONE_TYPE,\n dragDisabled = false,\n zoneTabIndex = 0,\n dropFromOthersDisabled = false,\n dropTargetStyle = DEFAULT_DROP_TARGET_STYLE,\n dropTargetClasses = [],\n autoAriaDisabled = false\n }) {\n config.items = [...items];\n config.dragDisabled = dragDisabled;\n config.dropFromOthersDisabled = dropFromOthersDisabled;\n config.zoneTabIndex = zoneTabIndex;\n config.dropTargetStyle = dropTargetStyle;\n config.dropTargetClasses = dropTargetClasses;\n config.autoAriaDisabled = autoAriaDisabled;\n if (config.type && newType !== config.type) {\n unregisterDropZone(node, config.type);\n }\n config.type = newType;\n registerDropZone(node, newType);\n if (!autoAriaDisabled) {\n node.setAttribute(\"aria-disabled\", dragDisabled);\n node.setAttribute(\"role\", \"list\");\n node.setAttribute(\"aria-describedby\", dragDisabled ? INSTRUCTION_IDs.DND_ZONE_DRAG_DISABLED : INSTRUCTION_IDs.DND_ZONE_ACTIVE);\n }\n dzToConfig.set(node, config);\n\n if (isDragging) {\n node.tabIndex =\n node === focusedDz ||\n focusedItem.contains(node) ||\n config.dropFromOthersDisabled ||\n (focusedDz && config.type !== dzToConfig.get(focusedDz).type)\n ? -1\n : 0;\n } else {\n node.tabIndex = config.zoneTabIndex;\n }\n\n node.addEventListener(\"focus\", handleZoneFocus);\n\n for (let i = 0; i < node.children.length; i++) {\n const draggableEl = node.children[i];\n allDragTargets.add(draggableEl);\n draggableEl.tabIndex = isDragging ? -1 : 0;\n if (!autoAriaDisabled) {\n draggableEl.setAttribute(\"role\", \"listitem\");\n }\n draggableEl.removeEventListener(\"keydown\", elToKeyDownListeners.get(draggableEl));\n draggableEl.removeEventListener(\"click\", elToFocusListeners.get(draggableEl));\n if (!dragDisabled) {\n draggableEl.addEventListener(\"keydown\", handleKeyDown);\n elToKeyDownListeners.set(draggableEl, handleKeyDown);\n draggableEl.addEventListener(\"click\", handleClick);\n elToFocusListeners.set(draggableEl, handleClick);\n }\n if (isDragging && config.items[i][ITEM_ID_KEY] === focusedItemId) {\n printDebug(() => [\"focusing on\", {i, focusedItemId}]);\n // if it is a nested dropzone, it was re-rendered and we need to refresh our pointer\n focusedItem = draggableEl;\n focusedItem.tabIndex = 0;\n // without this the element loses focus if it moves backwards in the list\n draggableEl.focus();\n }\n }\n }\n configure(options);\n\n const handles = {\n update: newOptions => {\n printDebug(() => `keyboard dndzone will update newOptions: ${toString(newOptions)}`);\n configure(newOptions);\n },\n destroy: () => {\n printDebug(() => \"keyboard dndzone will destroy\");\n unregisterDropZone(node, config.type);\n dzToConfig.delete(node);\n dzToHandles.delete(node);\n }\n };\n dzToHandles.set(node, handles);\n return handles;\n}\n","import {\n decrementActiveDropZoneCount,\n incrementActiveDropZoneCount,\n ITEM_ID_KEY,\n printDebug,\n SHADOW_ITEM_MARKER_PROPERTY_NAME,\n SHADOW_PLACEHOLDER_ITEM_ID,\n SOURCES,\n TRIGGERS\n} from \"./constants\";\nimport {observe, unobserve} from \"./helpers/observer\";\nimport {armWindowScroller, disarmWindowScroller} from \"./helpers/windowScroller\";\nimport {\n createDraggedElementFrom,\n decorateShadowEl,\n hideElement,\n morphDraggedElementToBeLike,\n moveDraggedElementToWasDroppedState,\n preventShrinking,\n styleActiveDropZones,\n styleDraggable,\n styleInactiveDropZones,\n unDecorateShadowElement\n} from \"./helpers/styler\";\nimport {\n dispatchConsiderEvent,\n dispatchFinalizeEvent,\n DRAGGED_ENTERED_EVENT_NAME,\n DRAGGED_LEFT_DOCUMENT_EVENT_NAME,\n DRAGGED_LEFT_EVENT_NAME,\n DRAGGED_LEFT_TYPES,\n DRAGGED_OVER_INDEX_EVENT_NAME\n} from \"./helpers/dispatcher\";\nimport {areArraysShallowEqualSameOrder, areObjectsShallowEqual, toString} from \"./helpers/util\";\nimport {getBoundingRectNoTransforms} from \"./helpers/intersection\";\n\nconst DEFAULT_DROP_ZONE_TYPE = \"--any--\";\nconst MIN_OBSERVATION_INTERVAL_MS = 100;\nconst MIN_MOVEMENT_BEFORE_DRAG_START_PX = 3;\nconst DEFAULT_DROP_TARGET_STYLE = {\n outline: \"rgba(255, 255, 102, 0.7) solid 2px\"\n};\n\nlet originalDragTarget;\nlet draggedEl;\nlet draggedElData;\nlet draggedElType;\nlet originDropZone;\nlet originIndex;\nlet shadowElData;\nlet shadowElDropZone;\nlet dragStartMousePosition;\nlet currentMousePosition;\nlet isWorkingOnPreviousDrag = false;\nlet finalizingPreviousDrag = false;\nlet unlockOriginDzMinDimensions;\nlet isDraggedOutsideOfAnyDz = false;\nlet scheduledForRemovalAfterDrop = [];\n\n// a map from type to a set of drop-zones\nconst typeToDropZones = new Map();\n// important - this is needed because otherwise the config that would be used for everyone is the config of the element that created the event listeners\nconst dzToConfig = new Map();\n// this is needed in order to be able to cleanup old listeners and avoid stale closures issues (as the listener is defined within each zone)\nconst elToMouseDownListener = new WeakMap();\n\n/* drop-zones registration management */\nfunction registerDropZone(dropZoneEl, type) {\n printDebug(() => \"registering drop-zone if absent\");\n if (!typeToDropZones.has(type)) {\n typeToDropZones.set(type, new Set());\n }\n if (!typeToDropZones.get(type).has(dropZoneEl)) {\n typeToDropZones.get(type).add(dropZoneEl);\n incrementActiveDropZoneCount();\n }\n}\nfunction unregisterDropZone(dropZoneEl, type) {\n typeToDropZones.get(type).delete(dropZoneEl);\n decrementActiveDropZoneCount();\n if (typeToDropZones.get(type).size === 0) {\n typeToDropZones.delete(type);\n }\n}\n\n/* functions to manage observing the dragged element and trigger custom drag-events */\nfunction watchDraggedElement() {\n printDebug(() => \"watching dragged element\");\n armWindowScroller();\n const dropZones = typeToDropZones.get(draggedElType);\n for (const dz of dropZones) {\n dz.addEventListener(DRAGGED_ENTERED_EVENT_NAME, handleDraggedEntered);\n dz.addEventListener(DRAGGED_LEFT_EVENT_NAME, handleDraggedLeft);\n dz.addEventListener(DRAGGED_OVER_INDEX_EVENT_NAME, handleDraggedIsOverIndex);\n }\n window.addEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop);\n // it is important that we don't have an interval that is faster than the flip duration because it can cause elements to jump bach and forth\n const observationIntervalMs = Math.max(\n MIN_OBSERVATION_INTERVAL_MS,\n ...Array.from(dropZones.keys()).map(dz => dzToConfig.get(dz).dropAnimationDurationMs)\n );\n observe(draggedEl, dropZones, observationIntervalMs * 1.07);\n}\nfunction unWatchDraggedElement() {\n printDebug(() => \"unwatching dragged element\");\n disarmWindowScroller();\n const dropZones = typeToDropZones.get(draggedElType);\n for (const dz of dropZones) {\n dz.removeEventListener(DRAGGED_ENTERED_EVENT_NAME, handleDraggedEntered);\n dz.removeEventListener(DRAGGED_LEFT_EVENT_NAME, handleDraggedLeft);\n dz.removeEventListener(DRAGGED_OVER_INDEX_EVENT_NAME, handleDraggedIsOverIndex);\n }\n window.removeEventListener(DRAGGED_LEFT_DOCUMENT_EVENT_NAME, handleDrop);\n unobserve();\n}\n\n// finds the initial placeholder that is placed there on drag start\nfunction findShadowPlaceHolderIdx(items) {\n return items.findIndex(item => item[ITEM_ID_KEY] === SHADOW_PLACEHOLDER_ITEM_ID);\n}\nfunction findShadowElementIdx(items) {\n // checking that the id is not the placeholder's for Dragula like usecases\n return items.findIndex(item => !!item[SHADOW_ITEM_MARKER_PROPERTY_NAME] && item[ITEM_ID_KEY] !== SHADOW_PLACEHOLDER_ITEM_ID);\n}\n\n/* custom drag-events handlers */\nfunction handleDraggedEntered(e) {\n printDebug(() => [\"dragged entered\", e.currentTarget, e.detail]);\n let {items, dropFromOthersDisabled} = dzToConfig.get(e.currentTarget);\n if (dropFromOthersDisabled && e.currentTarget !== originDropZone) {\n printDebug(() => \"ignoring dragged entered because drop is currently disabled\");\n return;\n }\n isDraggedOutsideOfAnyDz = false;\n // this deals with another race condition. in rare occasions (super rapid operations) the list hasn't updated yet\n items = items.filter(item => item[ITEM_ID_KEY] !== shadowElData[ITEM_ID_KEY]);\n printDebug(() => `dragged entered items ${toString(items)}`);\n\n if (originDropZone !== e.currentTarget) {\n const originZoneItems = dzToConfig.get(originDropZone).items;\n const newOriginZoneItems = originZoneItems.filter(item => !item[SHADOW_ITEM_MARKER_PROPERTY_NAME]);\n dispatchConsiderEvent(originDropZone, newOriginZoneItems, {\n trigger: TRIGGERS.DRAGGED_ENTERED_ANOTHER,\n id: draggedElData[ITEM_ID_KEY],\n source: SOURCES.POINTER\n });\n } else {\n const shadowPlaceHolderIdx = findShadowPlaceHolderIdx(items);\n if (shadowPlaceHolderIdx !== -1) {\n // only happens right after drag start, on the first drag entered event\n printDebug(() => \"removing placeholder item from origin dz\");\n items.splice(shadowPlaceHolderIdx, 1);\n }\n }\n\n const {index, isProximityBased} = e.detail.indexObj;\n const shadowElIdx = isProximityBased && index === e.currentTarget.children.length - 1 ? index + 1 : index;\n shadowElDropZone = e.currentTarget;\n items.splice(shadowElIdx, 0, shadowElData);\n dispatchConsiderEvent(e.currentTarget, items, {trigger: TRIGGERS.DRAGGED_ENTERED, id: draggedElData[ITEM_ID_KEY], source: SOURCES.POINTER});\n}\n\nfunction handleDraggedLeft(e) {\n // dealing with a rare race condition on extremely rapid clicking and dropping\n if (!isWorkingOnPreviousDrag) return;\n printDebug(() => [\"dragged left\", e.currentTarget, e.detail]);\n const {items, dropFromOthersDisabled} = dzToConfig.get(e.currentTarget);\n if (dropFromOthersDisabled && e.currentTarget !== originDropZone && e.currentTarget !== shadowElDropZone) {\n printDebug(() => \"drop is currently disabled\");\n return;\n }\n const shadowElIdx = findShadowElementIdx(items);\n const shadowItem = items.splice(shadowElIdx, 1)[0];\n shadowElDropZone = undefined;\n const {type, theOtherDz} = e.detail;\n if (\n type === DRAGGED_LEFT_TYPES.OUTSIDE_OF_ANY ||\n (type === DRAGGED_LEFT_TYPES.LEFT_FOR_ANOTHER && theOtherDz !== originDropZone && dzToConfig.get(theOtherDz).dropFromOthersDisabled)\n ) {\n printDebug(() => \"dragged left all, putting shadow element back in the origin dz\");\n isDraggedOutsideOfAnyDz = true;\n shadowElDropZone = originDropZone;\n const originZoneItems = dzToConfig.get(originDropZone).items;\n originZoneItems.splice(originIndex, 0, shadowItem);\n dispatchConsiderEvent(originDropZone, originZoneItems, {\n trigger: TRIGGERS.DRAGGED_LEFT_ALL,\n id: draggedElData[ITEM_ID_KEY],\n source: SOURCES.POINTER\n });\n }\n // for the origin dz, when the dragged is outside of any, this will be fired in addition to the previous. this is for simplicity\n dispatchConsiderEvent(e.currentTarget, items, {\n trigger: TRIGGERS.DRAGGED_LEFT,\n id: draggedElData[ITEM_ID_KEY],\n source: SOURCES.POINTER\n });\n}\nfunction handleDraggedIsOverIndex(e) {\n printDebug(() => [\"dragged is over index\", e.currentTarget, e.detail]);\n const {items, dropFromOthersDisabled} = dzToConfig.get(e.currentTarget);\n if (dropFromOthersDisabled && e.currentTarget !== originDropZone) {\n printDebug(() => \"drop is currently disabled\");\n return;\n }\n isDraggedOutsideOfAnyDz = false;\n const {index} = e.detail.indexObj;\n const shadowElIdx = findShadowElementIdx(items);\n items.splice(shadowElIdx, 1);\n items.splice(index, 0, shadowElData);\n dispatchConsiderEvent(e.currentTarget, items, {trigger: TRIGGERS.DRAGGED_OVER_INDEX, id: draggedElData[ITEM_ID_KEY], source: SOURCES.POINTER});\n}\n\n// Global mouse/touch-events handlers\nfunction handleMouseMove(e) {\n e.preventDefault();\n const c = e.touches ? e.touches[0] : e;\n currentMousePosition = {x: c.clientX, y: c.clientY};\n draggedEl.style.transform = `translate3d(${currentMousePosition.x - dragStartMousePosition.x}px, ${\n currentMousePosition.y - dragStartMousePosition.y\n }px, 0)`;\n}\n\nfunction handleDrop() {\n printDebug(() => \"dropped\");\n finalizingPreviousDrag = true;\n // cleanup\n window.removeEventListener(\"mousemove\", handleMouseMove);\n window.removeEventListener(\"touchmove\", handleMouseMove);\n window.removeEventListener(\"mouseup\", handleDrop);\n window.removeEventListener(\"touchend\", handleDrop);\n unWatchDraggedElement();\n moveDraggedElementToWasDroppedState(draggedEl);\n\n if (!shadowElDropZone) {\n printDebug(() => \"element was dropped right after it left origin but before entering somewhere else\");\n shadowElDropZone = originDropZone;\n }\n printDebug(() => [\"dropped in dz\", shadowElDropZone]);\n let {items, type} = dzToConfig.get(shadowElDropZone);\n styleInactiveDropZones(\n typeToDropZones.get(type),\n dz => dzToConfig.get(dz).dropTargetStyle,\n dz => dzToConfig.get(dz).dropTargetClasses\n );\n let shadowElIdx = findShadowElementIdx(items);\n // the handler might remove the shadow element, ex: dragula like copy on drag\n if (shadowElIdx === -1) shadowElIdx = originIndex;\n items = items.map(item => (item[SHADOW_ITEM_MARKER_PROPERTY_NAME] ? draggedElData : item));\n function finalizeWithinZone() {\n unlockOriginDzMinDimensions();\n dispatchFinalizeEvent(shadowElDropZone, items, {\n trigger: isDraggedOutsideOfAnyDz ? TRIGGERS.DROPPED_OUTSIDE_OF_ANY : TRIGGERS.DROPPED_INTO_ZONE,\n id: draggedElData[ITEM_ID_KEY],\n source: SOURCES.POINTER\n });\n if (shadowElDropZone !== originDropZone) {\n // letting the origin drop zone know the element was permanently taken away\n dispatchFinalizeEvent(originDropZone, dzToConfig.get(originDropZone).items, {\n trigger: TRIGGERS.DROPPED_INTO_ANOTHER,\n id: draggedElData[ITEM_ID_KEY],\n source: SOURCES.POINTER\n });\n }\n unDecorateShadowElement(shadowElDropZone.children[shadowElIdx]);\n cleanupPostDrop();\n }\n animateDraggedToFinalPosition(shadowElIdx, finalizeWithinZone);\n}\n\n// helper function for handleDrop\nfunction animateDraggedToFinalPosition(shadowElIdx, callback) {\n const shadowElRect = getBoundingRectNoTransforms(shadowElDropZone.children[shadowElIdx]);\n const newTransform = {\n x: shadowElRect.left - parseFloat(draggedEl.style.left),\n y: shadowElRect.top - parseFloat(draggedEl.style.top)\n };\n const {dropAnimationDurationMs} = dzToConfig.get(shadowElDropZone);\n const transition = `transform ${dropAnimationDurationMs}ms ease`;\n draggedEl.style.transition = draggedEl.style.transition ? draggedEl.style.transition + \",\" + transition : transition;\n draggedEl.style.transform = `translate3d(${newTransform.x}px, ${newTransform.y}px, 0)`;\n window.setTimeout(callback, dropAnimationDurationMs);\n}\n\nfunction scheduleDZForRemovalAfterDrop(dz, destroy) {\n scheduledForRemovalAfterDrop.push({dz, destroy});\n window.requestAnimationFrame(() => {\n hideElement(dz);\n document.body.appendChild(dz);\n });\n}\n/* cleanup */\nfunction cleanupPostDrop() {\n draggedEl.remove();\n originalDragTarget.remove();\n if (scheduledForRemovalAfterDrop.length) {\n printDebug(() => [\"will destroy zones that were removed during drag\", scheduledForRemovalAfterDrop]);\n scheduledForRemovalAfterDrop.forEach(({dz, destroy}) => {\n destroy();\n dz.remove();\n })\n scheduledForRemovalAfterDrop = [];\n }\n draggedEl = undefined;\n originalDragTarget = undefined;\n draggedElData = undefined;\n draggedElType = undefined;\n originDropZone = undefined;\n originIndex = undefined;\n shadowElData = undefined;\n shadowElDropZone = undefined;\n dragStartMousePosition = undefined;\n currentMousePosition = undefined;\n isWorkingOnPreviousDrag = false;\n finalizingPreviousDrag = false;\n unlockOriginDzMinDimensions = undefined;\n isDraggedOutsideOfAnyDz = false;\n}\n\nexport function dndzone(node, options) {\n let initialized = false;\n const config = {\n items: undefined,\n type: undefined,\n flipDurationMs: 0,\n dragDisabled: false,\n morphDisabled: false,\n dropFromOthersDisabled: false,\n dropTargetStyle: DEFAULT_DROP_TARGET_STYLE,\n dropTargetClasses: [],\n transformDraggedElement: () => {},\n centreDraggedOnCursor: false\n };\n printDebug(() => [`dndzone good to go options: ${toString(options)}, config: ${toString(config)}`, {node}]);\n let elToIdx = new Map();\n\n function addMaybeListeners() {\n window.addEventListener(\"mousemove\", handleMouseMoveMaybeDragStart, {passive: false});\n window.addEventListener(\"touchmove\", handleMouseMoveMaybeDragStart, {passive: false, capture: false});\n window.addEventListener(\"mouseup\", handleFalseAlarm, {passive: false});\n window.addEventListener(\"touchend\", handleFalseAlarm, {passive: false});\n }\n function removeMaybeListeners() {\n window.removeEventListener(\"mousemove\", handleMouseMoveMaybeDragStart);\n window.removeEventListener(\"touchmove\", handleMouseMoveMaybeDragStart);\n window.removeEventListener(\"mouseup\", handleFalseAlarm);\n window.removeEventListener(\"touchend\", handleFalseAlarm);\n }\n function handleFalseAlarm() {\n removeMaybeListeners();\n originalDragTarget = undefined;\n dragStartMousePosition = undefined;\n currentMousePosition = undefined;\n }\n\n function handleMouseMoveMaybeDragStart(e) {\n e.preventDefault();\n const c = e.touches ? e.touches[0] : e;\n currentMousePosition = {x: c.clientX, y: c.clientY};\n if (\n Math.abs(currentMousePosition.x - dragStartMousePosition.x) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX ||\n Math.abs(currentMousePosition.y - dragStartMousePosition.y) >= MIN_MOVEMENT_BEFORE_DRAG_START_PX\n ) {\n removeMaybeListeners();\n handleDragStart();\n }\n }\n function handleMouseDown(e) {\n // on safari clicking on a select element doesn't fire mouseup at the end of the click and in general this makes more sense\n if (e.target !== e.currentTarget && (e.target.value !== undefined || e.target.isContentEditable)) {\n printDebug(() => \"won't initiate drag on a nested input element\");\n return;\n }\n // prevents responding to any button but left click which equals 0 (which is falsy)\n if (e.button) {\n printDebug(() => `ignoring none left click button: ${e.button}`);\n return;\n }\n if (isWorkingOnPreviousDrag) {\n printDebug(() => \"cannot start a new drag before finalizing previous one\");\n return;\n }\n e.stopPropagation();\n const c = e.touches ? e.touches[0] : e;\n dragStartMousePosition = {x: c.clientX, y: c.clientY};\n currentMousePosition = {...dragStartMousePosition};\n originalDragTarget = e.currentTarget;\n addMaybeListeners();\n }\n\n function handleDragStart() {\n printDebug(() => [`drag start config: ${toString(config)}`, originalDragTarget]);\n isWorkingOnPreviousDrag = true;\n\n // initialising globals\n const currentIdx = elToIdx.get(originalDragTarget);\n originIndex = currentIdx;\n originDropZone = originalDragTarget.parentElement;\n /** @type {ShadowRoot | HTMLDocument} */\n const rootNode = originDropZone.getRootNode();\n const originDropZoneRoot = rootNode.body || rootNode;\n const {items, type, centreDraggedOnCursor} = config;\n draggedElData = {...items[currentIdx]};\n draggedElType = type;\n shadowElData = {...draggedElData, [SHADOW_ITEM_MARKER_PROPERTY_NAME]: true};\n // The initial shadow element. We need a different id at first in order to avoid conflicts and timing issues\n const placeHolderElData = {...shadowElData, [ITEM_ID_KEY]: SHADOW_PLACEHOLDER_ITEM_ID};\n\n // creating the draggable element\n draggedEl = createDraggedElementFrom(originalDragTarget, centreDraggedOnCursor && currentMousePosition);\n // We will keep the original dom node in the dom because touch events keep firing on it, we want to re-add it after the framework removes it\n function keepOriginalElementInDom() {\n if (!draggedEl.parentElement) {\n originDropZoneRoot.appendChild(draggedEl);\n // to prevent the outline from disappearing\n draggedEl.focus();\n watchDraggedElement();\n hideElement(originalDragTarget);\n originDropZoneRoot.appendChild(originalDragTarget);\n } else {\n window.requestAnimationFrame(keepOriginalElementInDom);\n }\n }\n window.requestAnimationFrame(keepOriginalElementInDom);\n\n styleActiveDropZones(\n Array.from(typeToDropZones.get(config.type)).filter(dz => dz === originDropZone || !dzToConfig.get(dz).dropFromOthersDisabled),\n dz => dzToConfig.get(dz).dropTargetStyle,\n dz => dzToConfig.get(dz).dropTargetClasses\n );\n\n // removing the original element by removing its data entry\n items.splice(currentIdx, 1, placeHolderElData);\n unlockOriginDzMinDimensions = preventShrinking(originDropZone);\n\n dispatchConsiderEvent(originDropZone, items, {trigger: TRIGGERS.DRAG_STARTED, id: draggedElData[ITEM_ID_KEY], source: SOURCES.POINTER});\n\n // handing over to global handlers - starting to watch the element\n window.addEventListener(\"mousemove\", handleMouseMove, {passive: false});\n window.addEventListener(\"touchmove\", handleMouseMove, {passive: false, capture: false});\n window.addEventListener(\"mouseup\", handleDrop, {passive: false});\n window.addEventListener(\"touchend\", handleDrop, {passive: false});\n }\n\n function configure({\n items = undefined,\n flipDurationMs: dropAnimationDurationMs = 0,\n type: newType = DEFAULT_DROP_ZONE_TYPE,\n dragDisabled = false,\n morphDisabled = false,\n dropFromOthersDisabled = false,\n dropTargetStyle = DEFAULT_DROP_TARGET_STYLE,\n dropTargetClasses = [],\n transformDraggedElement = () => {},\n centreDraggedOnCursor = false\n }) {\n config.dropAnimationDurationMs = dropAnimationDurationMs;\n if (config.type && newType !== config.type) {\n unregisterDropZone(node, config.type);\n }\n config.type = newType;\n registerDropZone(node, newType);\n config.items = [...items];\n config.dragDisabled = dragDisabled;\n config.morphDisabled = morphDisabled;\n config.transformDraggedElement = transformDraggedElement;\n config.centreDraggedOnCursor = centreDraggedOnCursor;\n\n // realtime update for dropTargetStyle\n if (\n initialized &&\n isWorkingOnPreviousDrag &&\n !finalizingPreviousDrag &&\n (!areObjectsShallowEqual(dropTargetStyle, config.dropTargetStyle) ||\n !areArraysShallowEqualSameOrder(dropTargetClasses, config.dropTargetClasses))\n ) {\n styleInactiveDropZones(\n [node],\n () => config.dropTargetStyle,\n () => dropTargetClasses\n );\n styleActiveDropZones(\n [node],\n () => dropTargetStyle,\n () => dropTargetClasses\n );\n }\n config.dropTargetStyle = dropTargetStyle;\n config.dropTargetClasses = [...dropTargetClasses];\n\n // realtime update for dropFromOthersDisabled\n function getConfigProp(dz, propName) {\n return dzToConfig.get(dz) ? dzToConfig.get(dz)[propName] : config[propName];\n }\n if (initialized && isWorkingOnPreviousDrag && config.dropFromOthersDisabled !== dropFromOthersDisabled) {\n if (dropFromOthersDisabled) {\n styleInactiveDropZones(\n [node],\n dz => getConfigProp(dz, \"dropTargetStyle\"),\n dz => getConfigProp(dz, \"dropTargetClasses\")\n );\n } else {\n styleActiveDropZones(\n [node],\n dz => getConfigProp(dz, \"dropTargetStyle\"),\n dz => getConfigProp(dz, \"dropTargetClasses\")\n );\n }\n }\n config.dropFromOthersDisabled = dropFromOthersDisabled;\n\n dzToConfig.set(node, config);\n const shadowElIdx = findShadowElementIdx(config.items);\n for (let idx = 0; idx < node.children.length; idx++) {\n const draggableEl = node.children[idx];\n styleDraggable(draggableEl, dragDisabled);\n if (idx === shadowElIdx) {\n if (!morphDisabled) {\n morphDraggedElementToBeLike(draggedEl, draggableEl, currentMousePosition.x, currentMousePosition.y, () =>\n config.transformDraggedElement(draggedEl, draggedElData, idx)\n );\n }\n decorateShadowEl(draggableEl);\n continue;\n }\n draggableEl.removeEventListener(\"mousedown\", elToMouseDownListener.get(draggableEl));\n draggableEl.removeEventListener(\"touchstart\", elToMouseDownListener.get(draggableEl));\n if (!dragDisabled) {\n draggableEl.addEventListener(\"mousedown\", handleMouseDown);\n draggableEl.addEventListener(\"touchstart\", handleMouseDown);\n elToMouseDownListener.set(draggableEl, handleMouseDown);\n }\n // updating the idx\n elToIdx.set(draggableEl, idx);\n\n if (!initialized) {\n initialized = true;\n }\n }\n }\n configure(options);\n\n return {\n update: newOptions => {\n printDebug(() => `pointer dndzone will update newOptions: ${toString(newOptions)}`);\n configure(newOptions);\n },\n destroy: () => {\n function destroyDz() {\n printDebug(() => \"pointer dndzone will destroy\");\n unregisterDropZone(node, dzToConfig.get(node).type);\n dzToConfig.delete(node);\n }\n if (isWorkingOnPreviousDrag) {\n printDebug(() => \"pointer dndzone will be scheduled for destruction\");\n scheduleDZForRemovalAfterDrop(node, destroyDz);\n } else {\n destroyDz();\n }\n }\n };\n}\n","/* eslint-env browser */\n\nimport { createProxy, hasFatalError } from './proxy.js'\n\nconst logPrefix = '[HMR:Svelte]'\n\n// eslint-disable-next-line no-console\nconst log = (...args) => console.log(logPrefix, ...args)\n\nconst domReload = () => {\n // eslint-disable-next-line no-undef\n const win = typeof window !== 'undefined' && window\n if (win && win.location && win.location.reload) {\n log('Reload')\n win.location.reload()\n } else {\n log('Full reload required')\n }\n}\n\nconst replaceCss = (previousId, newId) => {\n if (typeof document === 'undefined') return false\n if (!previousId) return false\n if (!newId) return false\n // svelte-xxx-style => svelte-xxx\n const previousClass = previousId.slice(0, -6)\n const newClass = newId.slice(0, -6)\n // eslint-disable-next-line no-undef\n document.querySelectorAll('.' + previousClass).forEach(el => {\n el.classList.remove(previousClass)\n el.classList.add(newClass)\n })\n return true\n}\n\nconst removeStylesheet = cssId => {\n if (cssId == null) return\n if (typeof document === 'undefined') return\n // eslint-disable-next-line no-undef\n const el = document.getElementById(cssId)\n if (el) el.remove()\n return\n}\n\nconst defaultArgs = {\n reload: domReload,\n}\n\nexport const makeApplyHmr = transformArgs => args => {\n const allArgs = transformArgs({ ...defaultArgs, ...args })\n return applyHmr(allArgs)\n}\n\nlet needsReload = false\n\nfunction applyHmr(args) {\n const {\n id,\n cssId,\n nonCssHash,\n reload = domReload,\n // normalized hot API (must conform to rollup-plugin-hot)\n hot,\n hotOptions,\n Component,\n acceptable, // some types of components are impossible to HMR correctly\n preserveLocalState,\n ProxyAdapter,\n emitCss,\n } = args\n\n const existing = hot.data && hot.data.record\n\n const canAccept = acceptable && (!existing || existing.current.canAccept)\n\n const r =\n existing ||\n createProxy({\n Adapter: ProxyAdapter,\n id,\n Component,\n hotOptions,\n canAccept,\n preserveLocalState,\n })\n\n const cssOnly =\n hotOptions.injectCss &&\n existing &&\n nonCssHash &&\n existing.current.nonCssHash === nonCssHash\n\n r.update({\n Component,\n hotOptions,\n canAccept,\n nonCssHash,\n cssId,\n previousCssId: r.current.cssId,\n cssOnly,\n preserveLocalState,\n })\n\n hot.dispose(data => {\n // handle previous fatal errors\n if (needsReload || hasFatalError()) {\n if (hotOptions && hotOptions.noReload) {\n log('Full reload required')\n } else {\n reload()\n }\n }\n\n // 2020-09-21 Snowpack master doesn't pass data as arg to dispose handler\n data = data || hot.data\n\n data.record = r\n\n if (!emitCss && cssId && r.current.cssId !== cssId) {\n if (hotOptions.cssEjectDelay) {\n setTimeout(() => removeStylesheet(cssId), hotOptions.cssEjectDelay)\n } else {\n removeStylesheet(cssId)\n }\n }\n })\n\n if (canAccept) {\n hot.accept(async arg => {\n const { bubbled } = arg || {}\n\n // NOTE Snowpack registers accept handlers only once, so we can NOT rely\n // on the surrounding scope variables -- they're not the last version!\n const { cssId: newCssId, previousCssId } = r.current\n const cssChanged = newCssId !== previousCssId\n // ensure old style sheet has been removed by now\n if (!emitCss && cssChanged) removeStylesheet(previousCssId)\n // guard: css only change\n if (\n // NOTE bubbled is provided only by rollup-plugin-hot, and we\n // can't safely assume a CSS only change without it... this means we\n // can't support CSS only injection with Nollup or Webpack currently\n bubbled === false && // WARNING check false, not falsy!\n r.current.cssOnly &&\n (!cssChanged || replaceCss(previousCssId, newCssId))\n ) {\n return\n }\n\n const success = await r.reload()\n\n if (hasFatalError() || (!success && !hotOptions.optimistic)) {\n needsReload = true\n }\n })\n }\n\n // well, endgame... we won't be able to render next updates, even successful,\n // if we don't have proxies in svelte's tree\n //\n // since we won't return the proxy and the app will expect a svelte component,\n // it's gonna crash... so it's best to report the real cause\n //\n // full reload required\n //\n const proxyOk = r && r.proxy\n if (!proxyOk) {\n throw new Error(`Failed to create HMR proxy for Svelte component ${id}`)\n }\n\n return r.proxy\n}\n","export { makeApplyHmr } from './hot-api.js'\n","/* eslint-env browser */\n\nconst removeElement = el => el && el.parentNode && el.parentNode.removeChild(el)\n\nconst ErrorOverlay = () => {\n let errors = []\n let compileError = null\n\n const errorsTitle = 'Failed to init component'\n const compileErrorTitle = 'Failed to compile'\n\n const style = {\n section: `\n position: fixed;\n top: 0;\n bottom: 0;\n left: 0;\n right: 0;\n padding: 32px;\n background: rgba(0, 0, 0, .85);\n font-family: Menlo, Consolas, monospace;\n font-size: large;\n color: rgb(232, 232, 232);\n overflow: auto;\n z-index: 2147483647;\n `,\n h1: `\n margin-top: 0;\n color: #E36049;\n font-size: large;\n font-weight: normal;\n `,\n h2: `\n margin: 32px 0 0;\n font-size: large;\n font-weight: normal;\n `,\n pre: ``,\n }\n\n const createOverlay = () => {\n const h1 = document.createElement('h1')\n h1.style = style.h1\n const section = document.createElement('section')\n section.appendChild(h1)\n section.style = style.section\n const body = document.createElement('div')\n section.appendChild(body)\n return { h1, el: section, body }\n }\n\n const setTitle = title => {\n overlay.h1.textContent = title\n }\n\n const show = () => {\n const { el } = overlay\n if (!el.parentNode) {\n const target = document.body\n target.appendChild(overlay.el)\n }\n }\n\n const hide = () => {\n const { el } = overlay\n if (el.parentNode) {\n overlay.el.remove()\n }\n }\n\n const update = () => {\n if (compileError) {\n overlay.body.innerHTML = ''\n setTitle(compileErrorTitle)\n const errorEl = renderError(compileError)\n overlay.body.appendChild(errorEl)\n show()\n } else if (errors.length > 0) {\n overlay.body.innerHTML = ''\n setTitle(errorsTitle)\n errors.forEach(({ title, message }) => {\n const errorEl = renderError(message, title)\n overlay.body.appendChild(errorEl)\n })\n show()\n } else {\n hide()\n }\n }\n\n const renderError = (message, title) => {\n const div = document.createElement('div')\n if (title) {\n const h2 = document.createElement('h2')\n h2.textContent = title\n h2.style = style.h2\n div.appendChild(h2)\n }\n const pre = document.createElement('pre')\n pre.textContent = message\n div.appendChild(pre)\n return div\n }\n\n const addError = (error, title) => {\n const message = (error && error.stack) || error\n errors.push({ title, message })\n update()\n }\n\n const clearErrors = () => {\n errors.forEach(({ element }) => {\n removeElement(element)\n })\n errors = []\n update()\n }\n\n const setCompileError = message => {\n compileError = message\n update()\n }\n\n const overlay = createOverlay()\n\n return {\n addError,\n clearErrors,\n setCompileError,\n }\n}\n\nexport default ErrorOverlay\n","/* global window, document */\nimport * as svelteInternal from 'svelte/internal'\n// NOTE from 3.38.3 (or so), insert was carrying the hydration logic, that must\n// be used because DOM elements are reused more (and so insertion points are not\n// necessarily added in order); then in 3.40 the logic was moved to\n// insert_hydration, which is the one we must use for HMR\nconst svelteInsert = svelteInternal.insert_hydration || svelteInternal.insert\nif (!svelteInsert) {\n throw new Error(\n 'failed to find insert_hydration and insert in svelte/internal'\n )\n}\n\nimport ErrorOverlay from './overlay.js'\n\nconst removeElement = el => el && el.parentNode && el.parentNode.removeChild(el)\n\nexport const adapter = class ProxyAdapterDom {\n constructor(instance) {\n this.instance = instance\n this.insertionPoint = null\n\n this.afterMount = this.afterMount.bind(this)\n this.rerender = this.rerender.bind(this)\n\n this._noOverlay = !!instance.hotOptions.noOverlay\n }\n\n // NOTE overlay is only created before being actually shown to help test\n // runner (it won't have to account for error overlay when running assertions\n // about the contents of the rendered page)\n static getErrorOverlay(noCreate = false) {\n if (!noCreate && !this.errorOverlay) {\n this.errorOverlay = ErrorOverlay()\n }\n return this.errorOverlay\n }\n\n // TODO this is probably unused now: remove in next breaking release\n static renderCompileError(message) {\n const noCreate = !message\n const overlay = this.getErrorOverlay(noCreate)\n if (!overlay) return\n overlay.setCompileError(message)\n }\n\n dispose() {\n // Component is being destroyed, detaching is not optional in Svelte3's\n // component API, so we can dispose of the insertion point in every case.\n if (this.insertionPoint) {\n removeElement(this.insertionPoint)\n this.insertionPoint = null\n }\n this.clearError()\n }\n\n // NOTE afterMount CAN be called multiple times (e.g. keyed list)\n afterMount(target, anchor) {\n const {\n instance: { debugName },\n } = this\n if (!this.insertionPoint) {\n this.insertionPoint = document.createComment(debugName)\n }\n svelteInsert(target, this.insertionPoint, anchor)\n }\n\n rerender() {\n this.clearError()\n const {\n instance: { refreshComponent },\n insertionPoint,\n } = this\n if (!insertionPoint) {\n throw new Error('Cannot rerender: missing insertion point')\n }\n refreshComponent(insertionPoint.parentNode, insertionPoint)\n }\n\n renderError(err) {\n if (this._noOverlay) return\n const {\n instance: { debugName },\n } = this\n const title = debugName || err.moduleName || 'Error'\n this.constructor.getErrorOverlay().addError(err, title)\n }\n\n clearError() {\n if (this._noOverlay) return\n const overlay = this.constructor.getErrorOverlay(true)\n if (!overlay) return\n overlay.clearErrors()\n }\n}\n\n// TODO this is probably unused now: remove in next breaking release\nif (typeof window !== 'undefined') {\n window.__SVELTE_HMR_ADAPTER = adapter\n}\n\n// mitigate situation with Snowpack remote source pulling latest of runtime,\n// but using previous version of the Node code transform in the plugin\n// see: https://github.com/rixo/svelte-hmr/issues/27\nexport default adapter\n","/* eslint-env browser */\n/**\n * The HMR proxy is a component-like object whose task is to sit in the\n * component tree in place of the proxied component, and rerender each\n * successive versions of said component.\n */\n\nimport { createProxiedComponent } from './svelte-hooks.js'\n\nconst handledMethods = ['constructor', '$destroy']\nconst forwardedMethods = ['$set', '$on']\n\nconst logError = (msg, err) => {\n // eslint-disable-next-line no-console\n console.error('[HMR][Svelte]', msg)\n if (err) {\n // NOTE avoid too much wrapping around user errors\n // eslint-disable-next-line no-console\n console.error(err)\n }\n}\n\nconst posixify = file => file.replace(/[/\\\\]/g, '/')\n\nconst getBaseName = id =>\n id\n .split('/')\n .pop()\n .split('.')\n .slice(0, -1)\n .join('.')\n\nconst capitalize = str => str[0].toUpperCase() + str.slice(1)\n\nconst getFriendlyName = id => capitalize(getBaseName(posixify(id)))\n\nconst getDebugName = id => `<${getFriendlyName(id)}>`\n\nconst relayCalls = (getTarget, names, dest = {}) => {\n for (const key of names) {\n dest[key] = function(...args) {\n const target = getTarget()\n if (!target) {\n return\n }\n return target[key] && target[key].call(this, ...args)\n }\n }\n return dest\n}\n\nconst isInternal = key => key !== '$$' && key.slice(0, 2) === '$$'\n\n// This is intented as a somewhat generic / prospective fix to the situation\n// that arised with the introduction of $$set in Svelte 3.24.1 -- trying to\n// avoid giving full knowledge (like its name) of this implementation detail\n// to the proxy. The $$set method can be present or not on the component, and\n// its presence impacts the behaviour (but with HMR it will be tested if it is\n// present _on the proxy_). So the idea here is to expose exactly the same $$\n// props as the current version of the component and, for those that are\n// functions, proxy the calls to the current component.\nconst relayInternalMethods = (proxy, cmp) => {\n // delete any previously added $$ prop\n Object.keys(proxy)\n .filter(isInternal)\n .forEach(key => {\n delete proxy[key]\n })\n // guard: no component\n if (!cmp) return\n // proxy current $$ props to the actual component\n Object.keys(cmp)\n .filter(isInternal)\n .forEach(key => {\n Object.defineProperty(proxy, key, {\n configurable: true,\n get() {\n const value = cmp[key]\n if (typeof value !== 'function') return value\n return (\n value &&\n function(...args) {\n return value.apply(this, args)\n }\n )\n },\n })\n })\n}\n\n// proxy custom methods\nconst copyComponentProperties = (proxy, cmp, previous) => {\n if (previous) {\n previous.forEach(prop => {\n delete proxy[prop]\n })\n }\n\n const props = Object.getOwnPropertyNames(Object.getPrototypeOf(cmp))\n const wrappedProps = props.filter(prop => {\n if (!handledMethods.includes(prop) && !forwardedMethods.includes(prop)) {\n Object.defineProperty(proxy, prop, {\n configurable: true,\n get() {\n return cmp[prop]\n },\n set(value) {\n // we're changing it on the real component first to see what it\n // gives... if it throws an error, we want to throw the same error in\n // order to most closely follow non-hmr behaviour.\n cmp[prop] = value\n },\n })\n return true\n }\n })\n\n return wrappedProps\n}\n\n// everything in the constructor!\n//\n// so we don't polute the component class with new members\n//\nclass ProxyComponent {\n constructor(\n {\n Adapter,\n id,\n debugName,\n current, // { Component, hotOptions: { preserveLocalState, ... } }\n register,\n },\n options // { target, anchor, ... }\n ) {\n let cmp\n let disposed = false\n let lastError = null\n\n const setComponent = _cmp => {\n cmp = _cmp\n relayInternalMethods(this, cmp)\n }\n\n const getComponent = () => cmp\n\n const destroyComponent = () => {\n // destroyComponent is tolerant (don't crash on no cmp) because it\n // is possible that reload/rerender is called after a previous\n // createComponent has failed (hence we have a proxy, but no cmp)\n if (cmp) {\n cmp.$destroy()\n setComponent(null)\n }\n }\n\n const refreshComponent = (target, anchor, conservativeDestroy) => {\n if (lastError) {\n lastError = null\n adapter.rerender()\n } else {\n try {\n const replaceOptions = {\n target,\n anchor,\n preserveLocalState: current.preserveLocalState,\n }\n if (conservativeDestroy) {\n replaceOptions.conservativeDestroy = true\n }\n cmp.$replace(current.Component, replaceOptions)\n } catch (err) {\n setError(err, target, anchor)\n if (\n !current.hotOptions.optimistic ||\n // non acceptable components (that is components that have to defer\n // to their parent for rerender -- e.g. accessors, named exports)\n // are most tricky, and they havent been considered when most of the\n // code has been written... as a result, they are especially tricky\n // to deal with, it's better to consider any error with them to be\n // fatal to avoid odities\n !current.canAccept ||\n (err && err.hmrFatal)\n ) {\n throw err\n } else {\n // const errString = String((err && err.stack) || err)\n logError(`Error during component init: ${debugName}`, err)\n }\n }\n }\n }\n\n const setError = err => {\n lastError = err\n adapter.renderError(err)\n }\n\n const instance = {\n hotOptions: current.hotOptions,\n proxy: this,\n id,\n debugName,\n refreshComponent,\n }\n\n const adapter = new Adapter(instance)\n\n const { afterMount, rerender } = adapter\n\n // $destroy is not called when a child component is disposed, so we\n // need to hook from fragment.\n const onDestroy = () => {\n // NOTE do NOT call $destroy on the cmp from here; the cmp is already\n // dead, this would not work\n if (!disposed) {\n disposed = true\n adapter.dispose()\n unregister()\n }\n }\n\n // ---- register proxy instance ----\n\n const unregister = register(rerender)\n\n // ---- augmented methods ----\n\n this.$destroy = () => {\n destroyComponent()\n onDestroy()\n }\n\n // ---- forwarded methods ----\n\n relayCalls(getComponent, forwardedMethods, this)\n\n // ---- create & mount target component instance ---\n\n try {\n let lastProperties\n createProxiedComponent(current.Component, options, {\n allowLiveBinding: current.hotOptions.allowLiveBinding,\n onDestroy,\n onMount: afterMount,\n onInstance: comp => {\n setComponent(comp)\n // WARNING the proxy MUST use the same $$ object as its component\n // instance, because a lot of wiring happens during component\n // initialisation... lots of references to $$ and $$.fragment have\n // already been distributed around when the component constructor\n // returns, before we have a chance to wrap them (and so we can't\n // wrap them no more, because existing references would become\n // invalid)\n this.$$ = comp.$$\n lastProperties = copyComponentProperties(this, comp, lastProperties)\n },\n })\n } catch (err) {\n const { target, anchor } = options\n setError(err, target, anchor)\n throw err\n }\n }\n}\n\nconst syncStatics = (component, proxy, previousKeys) => {\n // remove previously copied keys\n if (previousKeys) {\n for (const key of previousKeys) {\n delete proxy[key]\n }\n }\n\n // forward static properties and methods\n const keys = []\n for (const key in component) {\n keys.push(key)\n proxy[key] = component[key]\n }\n\n return keys\n}\n\nconst globalListeners = {}\n\nconst onGlobal = (event, fn) => {\n event = event.toLowerCase()\n if (!globalListeners[event]) globalListeners[event] = []\n globalListeners[event].push(fn)\n}\n\nconst fireGlobal = (event, ...args) => {\n const listeners = globalListeners[event]\n if (!listeners) return\n for (const fn of listeners) {\n fn(...args)\n }\n}\n\nconst fireBeforeUpdate = () => fireGlobal('beforeupdate')\n\nconst fireAfterUpdate = () => fireGlobal('afterupdate')\n\nif (typeof window !== 'undefined') {\n window.__SVELTE_HMR = {\n on: onGlobal,\n }\n window.dispatchEvent(new CustomEvent('svelte-hmr:ready'))\n}\n\nlet fatalError = false\n\nexport const hasFatalError = () => fatalError\n\n/**\n * Creates a HMR proxy and its associated `reload` function that pushes a new\n * version to all existing instances of the component.\n */\nexport function createProxy({\n Adapter,\n id,\n Component,\n hotOptions,\n canAccept,\n preserveLocalState,\n}) {\n const debugName = getDebugName(id)\n const instances = []\n\n // current object will be updated, proxy instances will keep a ref\n const current = {\n Component,\n hotOptions,\n canAccept,\n preserveLocalState,\n }\n\n const name = `Proxy${debugName}`\n\n // this trick gives the dynamic name Proxy to the concrete\n // proxy class... unfortunately, this doesn't shows in dev tools, but\n // it stills allow to inspect cmp.constructor.name to confirm an instance\n // is a proxy\n const proxy = {\n [name]: class extends ProxyComponent {\n constructor(options) {\n try {\n super(\n {\n Adapter,\n id,\n debugName,\n current,\n register: rerender => {\n instances.push(rerender)\n const unregister = () => {\n const i = instances.indexOf(rerender)\n instances.splice(i, 1)\n }\n return unregister\n },\n },\n options\n )\n } catch (err) {\n // If we fail to create a proxy instance, any instance, that means\n // that we won't be able to fix this instance when it is updated.\n // Recovering to normal state will be impossible. HMR's dead.\n //\n // Fatal error will trigger a full reload on next update (reloading\n // right now is kinda pointless since buggy code still exists).\n //\n // NOTE Only report first error to avoid too much polution -- following\n // errors are probably caused by the first one, or they will show up\n // in turn when the first one is fixed ¯\\_(ツ)_/¯\n //\n if (!fatalError) {\n fatalError = true\n logError(\n `Unrecoverable HMR error in ${debugName}: ` +\n `next update will trigger a full reload`\n )\n }\n throw err\n }\n }\n },\n }[name]\n\n // initialize static members\n let previousStatics = syncStatics(current.Component, proxy)\n\n const update = newState => Object.assign(current, newState)\n\n // reload all existing instances of this component\n const reload = () => {\n fireBeforeUpdate()\n\n // copy statics before doing anything because a static prop/method\n // could be used somewhere in the create/render call\n previousStatics = syncStatics(current.Component, proxy, previousStatics)\n\n const errors = []\n\n instances.forEach(rerender => {\n try {\n rerender()\n } catch (err) {\n logError(`Failed to rerender ${debugName}`, err)\n errors.push(err)\n }\n })\n\n if (errors.length > 0) {\n return false\n }\n\n fireAfterUpdate()\n\n return true\n }\n\n const hasFatalError = () => fatalError\n\n return { id, proxy, update, reload, hasFatalError, current }\n}\n","/**\n * Emulates forthcoming HMR hooks in Svelte.\n *\n * All references to private component state ($$) are now isolated in this\n * module.\n */\nimport {\n current_component,\n get_current_component,\n set_current_component,\n} from 'svelte/internal'\n\nconst captureState = cmp => {\n // sanity check: propper behaviour here is to crash noisily so that\n // user knows that they're looking at something broken\n if (!cmp) {\n throw new Error('Missing component')\n }\n if (!cmp.$$) {\n throw new Error('Invalid component')\n }\n\n const {\n $$: { callbacks, bound, ctx, props },\n } = cmp\n\n const state = cmp.$capture_state()\n\n // capturing current value of props (or we'll recreate the component with the\n // initial prop values, that may have changed -- and would not be reflected in\n // options.props)\n const hmr_props_values = {}\n Object.keys(cmp.$$.props).forEach(prop => {\n hmr_props_values[prop] = ctx[props[prop]]\n })\n\n return {\n ctx,\n props,\n callbacks,\n bound,\n state,\n hmr_props_values,\n }\n}\n\n// remapping all existing bindings (including hmr_future_foo ones) to the\n// new version's props indexes, and refresh them with the new value from\n// context\nconst restoreBound = (cmp, restore) => {\n // reverse prop:ctxIndex in $$.props to ctxIndex:prop\n //\n // ctxIndex can be either a regular index in $$.ctx or a hmr_future_ prop\n //\n const propsByIndex = {}\n for (const [name, i] of Object.entries(restore.props)) {\n propsByIndex[i] = name\n }\n\n // NOTE $$.bound cannot change in the HMR lifetime of a component, because\n // if bindings changes, that means the parent component has changed,\n // which means the child (current) component will be wholly recreated\n for (const [oldIndex, updateBinding] of Object.entries(restore.bound)) {\n // can be either regular prop, or future_hmr_ prop\n const propName = propsByIndex[oldIndex]\n\n // this should never happen if remembering of future props is enabled...\n // in any case, there's nothing we can do about it if we have lost prop\n // name knowledge at this point\n if (propName == null) continue\n\n // NOTE $$.props[propName] also propagates knowledge of a possible\n // future prop to the new $$.props (via $$.props being a Proxy)\n const newIndex = cmp.$$.props[propName]\n cmp.$$.bound[newIndex] = updateBinding\n\n // NOTE if the prop doesn't exist or doesn't exist anymore in the new\n // version of the component, clearing the binding is the expected\n // behaviour (since that's what would happen in non HMR code)\n const newValue = cmp.$$.ctx[newIndex]\n updateBinding(newValue)\n }\n}\n\n// restoreState\n//\n// It is too late to restore context at this point because component instance\n// function has already been called (and so context has already been read).\n// Instead, we rely on setting current_component to the same value it has when\n// the component was first rendered -- which fix support for context, and is\n// also generally more respectful of normal operation.\n//\nconst restoreState = (cmp, restore) => {\n if (!restore) return\n\n if (restore.callbacks) {\n cmp.$$.callbacks = restore.callbacks\n }\n\n if (restore.bound) {\n restoreBound(cmp, restore)\n }\n\n // props, props.$$slots are restored at component creation (works\n // better -- well, at all actually)\n}\n\nconst get_current_component_safe = () => {\n // NOTE relying on dynamic bindings (current_component) makes us dependent on\n // bundler config (and apparently it does not work in demo-svelte-nollup)\n try {\n // unfortunately, unlike current_component, get_current_component() can\n // crash in the normal path (when there is really no parent)\n return get_current_component()\n } catch (err) {\n // ... so we need to consider that this error means that there is no parent\n //\n // that makes us tightly coupled to the error message but, at least, we\n // won't mute an unexpected error, which is quite a horrible thing to do\n if (err.message === 'Function called outside component initialization') {\n // who knows...\n return current_component\n } else {\n throw err\n }\n }\n}\n\nexport const createProxiedComponent = (\n Component,\n initialOptions,\n { allowLiveBinding, onInstance, onMount, onDestroy }\n) => {\n let cmp\n let options = initialOptions\n\n const isCurrent = _cmp => cmp === _cmp\n\n const assignOptions = (target, anchor, restore, preserveLocalState) => {\n const props = Object.assign({}, options.props)\n\n // Filtering props to avoid \"unexpected prop\" warning\n // NOTE this is based on props present in initial options, but it should\n // always works, because props that are passed from the parent can't\n // change without a code change to the parent itself -- hence, the\n // child component will be fully recreated, and initial options should\n // always represent props that are currnetly passed by the parent\n if (options.props && restore.hmr_props_values) {\n for (const prop of Object.keys(options.props)) {\n if (restore.hmr_props_values.hasOwnProperty(prop)) {\n props[prop] = restore.hmr_props_values[prop]\n }\n }\n }\n\n if (preserveLocalState && restore.state) {\n if (Array.isArray(preserveLocalState)) {\n // form ['a', 'b'] => preserve only 'a' and 'b'\n props.$$inject = {}\n for (const key of preserveLocalState) {\n props.$$inject[key] = restore.state[key]\n }\n } else {\n props.$$inject = restore.state\n }\n } else {\n delete props.$$inject\n }\n options = Object.assign({}, initialOptions, {\n target,\n anchor,\n props,\n hydrate: false,\n })\n }\n\n // Preserving knowledge of \"future props\" -- very hackish version (maybe\n // there should be an option to opt out of this)\n //\n // The use case is bind:something where something doesn't exist yet in the\n // target component, but comes to exist later, after a HMR update.\n //\n // If Svelte can't map a prop in the current version of the component, it\n // will just completely discard it:\n // https://github.com/sveltejs/svelte/blob/1632bca34e4803d6b0e0b0abd652ab5968181860/src/runtime/internal/Component.ts#L46\n //\n const rememberFutureProps = cmp => {\n if (typeof Proxy === 'undefined') return\n\n cmp.$$.props = new Proxy(cmp.$$.props, {\n get(target, name) {\n if (target[name] === undefined) {\n target[name] = 'hmr_future_' + name\n }\n return target[name]\n },\n set(target, name, value) {\n target[name] = value\n },\n })\n }\n\n const instrument = targetCmp => {\n const createComponent = (Component, restore, previousCmp) => {\n set_current_component(parentComponent || previousCmp)\n const comp = new Component(options)\n // NOTE must be instrumented before restoreState, because restoring\n // bindings relies on hacked $$.props\n instrument(comp)\n restoreState(comp, restore)\n return comp\n }\n\n rememberFutureProps(targetCmp)\n\n targetCmp.$$.on_hmr = []\n\n // `conservative: true` means we want to be sure that the new component has\n // actually been successfuly created before destroying the old instance.\n // This could be useful for preventing runtime errors in component init to\n // bring down the whole HMR. Unfortunately the implementation bellow is\n // broken (FIXME), but that remains an interesting target for when HMR hooks\n // will actually land in Svelte itself.\n //\n // The goal would be to render an error inplace in case of error, to avoid\n // losing the navigation stack (especially annoying in native, that is not\n // based on URL navigation, so we lose the current page on each error).\n //\n targetCmp.$replace = (\n Component,\n {\n target = options.target,\n anchor = options.anchor,\n preserveLocalState,\n conservative = false,\n }\n ) => {\n const restore = captureState(targetCmp)\n assignOptions(\n target || options.target,\n anchor,\n restore,\n preserveLocalState\n )\n\n const callbacks = cmp ? cmp.$$.on_hmr : []\n\n const afterCallbacks = callbacks.map(fn => fn(cmp)).filter(Boolean)\n\n const previous = cmp\n if (conservative) {\n try {\n const next = createComponent(Component, restore, previous)\n // prevents on_destroy from firing on non-final cmp instance\n cmp = null\n previous.$destroy()\n cmp = next\n } catch (err) {\n cmp = previous\n throw err\n }\n } else {\n // prevents on_destroy from firing on non-final cmp instance\n cmp = null\n if (previous) {\n // previous can be null if last constructor has crashed\n previous.$destroy()\n }\n cmp = createComponent(Component, restore, cmp)\n }\n\n cmp.$$.hmr_cmp = cmp\n\n for (const fn of afterCallbacks) {\n fn(cmp)\n }\n\n cmp.$$.on_hmr = callbacks\n\n return cmp\n }\n\n // NOTE onMount must provide target & anchor (for us to be able to determinate\n // \t\t\tactual DOM insertion point)\n //\n // \t\t\tAnd also, to support keyed list, it needs to be called each time the\n // \t\t\tcomponent is moved (same as $$.fragment.m)\n if (onMount) {\n const m = targetCmp.$$.fragment.m\n targetCmp.$$.fragment.m = (...args) => {\n const result = m(...args)\n onMount(...args)\n return result\n }\n }\n\n // NOTE onDestroy must be called even if the call doesn't pass through the\n // component's $destroy method (that we can hook onto by ourselves, since\n // it's public API) -- this happens a lot in svelte's internals, that\n // manipulates cmp.$$.fragment directly, often binding to fragment.d,\n // for example\n if (onDestroy) {\n targetCmp.$$.on_destroy.push(() => {\n if (isCurrent(targetCmp)) {\n onDestroy()\n }\n })\n }\n\n if (onInstance) {\n onInstance(targetCmp)\n }\n\n // Svelte 3 creates and mount components from their constructor if\n // options.target is present.\n //\n // This means that at this point, the component's `fragment.c` and,\n // most notably, `fragment.m` will already have been called _from inside\n // createComponent_. That is: before we have a chance to hook on it.\n //\n // Proxy's constructor\n // -> createComponent\n // -> component constructor\n // -> component.$$.fragment.c(...) (or l, if hydrate:true)\n // -> component.$$.fragment.m(...)\n //\n // -> you are here <-\n //\n if (onMount) {\n const { target, anchor } = options\n if (target) {\n onMount(target, anchor)\n }\n }\n }\n\n const parentComponent = allowLiveBinding\n ? current_component\n : get_current_component_safe()\n\n cmp = new Component(options)\n cmp.$$.hmr_cmp = cmp\n\n instrument(cmp)\n\n return cmp\n}\n","\n\n\n
    \n {#if inline}\n
    \n {:else}\n \n {/if}\n
    ","\n\n\n\n\n\n\n
    \n \n
    \n\n
    \n {#if Stages.is(stage, Stages.Stage.INPUT)}\n \n {:else if Stages.is(stage, Stages.Stage.SEARCH)}\n \n {:else if Stages.is(stage, Stages.Stage.BOOK_DATA)}\n \n {:else if Stages.is(stage, Stages.Stage.EDIT_DATA)}\n \n {:else if Stages.is(stage, Stages.Stage.FIND_CHAPTERS)}\n \n {:else if Stages.is(stage, Stages.Stage.DOWNLOAD_CHAPTERS)}\n \n {:else if Stages.is(stage, Stages.Stage.RESULT)}\n \n {:else if Stages.is(stage, Stages.Stage.SETTINGS)}\n \n {:else if Stages.is(stage, Stages.Stage._404)}\n

    Page not found

    \n

    Sorry, the requested page could not be found

    \n {/if}\n
    \n\n
    \n
    ","\n\n\n

    \n \n

    \n","\n\n\n{#if backToSearch}\n Back to Search\n{/if}","\n\n\n\n\n","\n\n\n\n\n\n

    back

    \n
    \n
    \n Title\n \n
    \n {#if url !== undefined}\n
    \n URL\n \n
    \n {/if}\n {#if $config.useTiny}\n \n \n {:else}\n \n {/if}\n {#if canFetch}\n \n {/if}\n
    \n \n \n
    ","\n\n\n\n\n
    \n
    \n {title}\n {#if !empty}{decoded}{/if}\n
    \n
    \n \n
    \n
    ","\n\n\n\n\n
    \n \n
    ","\n\n\n\n\n

    \n {#each errors as err}\n Sorry, can't process that{err ? ': ' : ''}{err.message || err}\n {/each}\n

    \n\n\n\n{#if back}\n back\n{/if}","\n\n\n
    \n
    \n

    Loading...

    \n
    ","\n\n\n\n\n
    \n {#each options as opt (opt.value)}\n \n {/each}\n
    ","\n\n\n\n\n\n

    Title

    \n

    \n {#if !edit}\n {decode(title)}\n {:else}\n \n {/if}\n

    \n

    Author

    \n

    \n {#if !edit}\n {decode(author)}\n {:else}\n \n {/if}\n

    \n {#if $$slots.default}\n

    Chapters

    \n
    \n \n
    \n {/if}\n
    ","\n\n\n\n\n
    \n

    \n Made by @cpiber.\n Source Code & bug tracker: cpiber/hfy-epub.\n \n Version {VERSION}.\n showPrivacy = !showPrivacy}\">Privacy.\n

    \n\n {#if showPrivacy}\n

    \n This website (https://cpiber.github.io/hfy-epub) does not, and will not, collect any data from its users.\n Any actions taken on this page are purely in the user's browser; there is no server-side component.\n No data is ever sent away.\n For collecting the chapter data, this site contacts {redditApiBase} only. The book is generated in the browser.\n

    \n {/if}\n\n {#if !Stages.is($store.stage, Stages.Stage.SETTINGS)}\n \n {/if}\n
    ","\n\n\n\n\n
    \n

    r/HFY epub generator Help

    \n Due to recent API changes on reddit, creating ebooks has become limited. If you run into a \"Too many requests\" error, please wait 10 minutes before trying again.\n
    ","\n\n\n\n
    stage.next(search || '')}\" bind:this=\"{formRef}\">\n

    \n Search:\n \n \n

    \n\n {#if open}\n {#await searchSeries(series, search) then all}\n
    \n {#each all as series}\n stage.next(series.url)}\">{series.title}\n {/each}\n
    \n {/await}\n {/if}\n
    \n{#if search !== undefined && !search.trim().length}\n

    Please enter a search string

    \n{/if}\n\n\n
    \n {#if open}
    {/if}\n

    You can:

    \n
      \n
    • Search for a series title on the r/HFY wiki
    • \n
    • Enter a series link to the r/HFY wiki
    • \n
    • Enter a link to any reddit post
    • \n
    \n
    ","\n\n\n{#await fetchPromise}\n Please wait, fetching results...\n{:then searchResults}\n

    The search for '{search}' returned these results:

    \n \n

    Please select one.

    \n{:catch error}\n fetchPromise = fetchSearch()} />\n{/await}","\n\n\n\n\n{#await fetchPromise}\n Please wait, fetching data...\n{:then data}\n Got the following series:\n\n
    \n \n

    Found {data.chapters.length}\n showChapters = !showChapters}\">{#if !showChapters}show{:else}hide{/if}\n \n \n {#if typeof stage.newChapters === \"number\"}\n stage.newChapters = undefined}\">Found {stage.newChapters} new\n {/if}\n

    \n\n {#if showChapters}\n
    \n {#each data.chapters as chapter (chapter.id)}\n {decode(chapter.title)}\n {/each}\n
    \n {/if}\n
    \n
    \n\n {#if data.chapters.find(c => c.needsFetching !== false)} \n \n {:else}\n \n {/if}\n \n \n \n{:catch error}\n fetchPromise = fetchData()} />\n \n{/await}","\n\n\n\n\nYou are editing:\n\n
    \n
    \n stage.next(data)}>\n
    \n {#each chapterSlice as chapter, i (chapter.id)}\n selectedChapterIndex = absIdx(i)}\n moveUp={(page > 0 || i > 0) && moveUp.bind(null, absIdx(i))}\n moveDown={(page < maxPage || i < chapterSlice.length - 1) && moveDown.bind(null, absIdx(i))}\n remove={remove.bind(null, absIdx(i))}\n />\n {/each}\n
    \n \n
    \n
    \n {#if selectedChapterIndex >= 0}\n
    {hide = true; float = false}}\"\n on:outrostart=\"{() => {float = true}}\" on:outroend=\"{() => {hide = false}}\" class:float\n >\n selectedChapterIndex = -1}\n moveUp={(page > 0 || selectedChapterIndex > 0) && moveUp.bind(null, selectedChapterIndex)}\n moveDown={(page < maxPage || selectedChapterIndex < chapterSlice.length - 1) && moveDown.bind(null, selectedChapterIndex)}\n remove={remove.bind(null, selectedChapterIndex)}\n />\n
    \n {/if}\n
    \n\n\n stage.next(odata)}\">Cancel","\n\n\n\n\n{#await fetchPromise}\n Please wait, fetching chapters...\n\n
    \n {#each newchapters as chapter}\n

    {chapter.from}: Found {chapter.url}

    \n {/each}\n
    \n{:then newData}\n {stage.next(newData, newchapters.length)}\n{:catch error}\n fetchPromise = fetchMore()} back=\"{() => stage.next({ ...stage.bookData, chapters }, newchapters.length)}\" />\n{/await}\n","\n\n\n\n\n{#await fetchPromise}\n Please wait, fetching chapters...\n{:then finishedData}\n {#if !errors.length}{stage.next(finishedData)}{/if}\n{/await}\n\n
    \n {#each finishedChapters as chapter}\n {#if chapter && chapter.new === true}\n

    {chapter.title}

    \n {/if}\n {/each}\n
    \n\n{#if errors.length}\n {#key errors}\n fetchPromise = fetchChapters()} back=\"{() => stage.next({ ...stage.bookData, chapters: finishedChapters })}\" />\n {/key}\n{/if}","\n\n\n\n\n{#await promise}\n Please wait, generating e-book...\n\n
    \n {#each logs as [type, msg]}\n

    {msg}

    \n {/each}\n
    \n{:then book}\n

    Your e-book is ready!

    \n \n \n \n\n {#if logs.find(([type]) => type === 'warn')}\n
    \n {#each logs as [type, msg]}\n {#if type === 'warn'}\n

    {msg}

    \n {/if}\n {/each}\n
    \n {/if}\n{:catch error}\n promise = generate()} />\n \n \n{/await}","\n\n\n\n\n
    \n \n

    Editor

    \n
    \n \n
    \n\n

    Next chapter

    \n
    \n

    Specify how next chapter links are extracted.

    \n \n\n {#if cur.nextLink === NextLinkType.DEFAULT}\n Finds a \"First\" link, with fallback to other links that aren't \"Previous\" or \"Index\" or \"First\"\n {:else if cur.nextLink === NextLinkType.REGEXP}\n \n {:else if cur.nextLink === NextLinkType.FUNCTION}\n \n {/if}\n
    \n\n

    Chapter transform

    \n
    \n

    Automatically transform chapter contents.

    \n \n\n {#if cur.transform === ChapterTransformType.REGEXP}\n \n {:else if cur.transform === ChapterTransformType.SELECTOR}\n \n {:else if cur.transform === ChapterTransformType.FUNCTION}\n \n {/if}\n
    \n
    \n
    \n\n\n{#if disableSave && cur.nextLink === NextLinkType.REGEXP && nextLinkError}\n Chapter Regex invalid: {nextLinkError}\n{:else if disableSave && cur.nextLink === NextLinkType.FUNCTION && nextLinkError}\n Chapter Function invalid: {nextLinkError}\n{:else if disableSave && cur.transform === ChapterTransformType.REGEXP && tranformError}\n Transform Regex invalid: {tranformError}\n{:else if disableSave && cur.transform === ChapterTransformType.SELECTOR && tranformError}\n Transform Selector invalid: {tranformError}\n{:else if disableSave && cur.transform === ChapterTransformType.FUNCTION && tranformError}\n Transform Function invalid: {tranformError}\n{/if}","\n\n","\n\n\t\n\t\n\n\n","\r\n\r\n\r\n","import { makeApplyHmr } from 'svelte-hmr/runtime';\r\n\r\n// eslint-disable-next-line no-undef\r\nconst g = typeof window !== 'undefined' ? window : global;\r\n\r\nconst globalKey =\r\n\ttypeof Symbol !== 'undefined'\r\n\t\t? Symbol('SVELTE_LOADER_HOT')\r\n\t\t: '__SVELTE_LOADER_HOT';\r\n\r\nif (!g[globalKey]) {\r\n\t// do updating refs counting to know when a full update has been applied\r\n\tlet updatingCount = 0;\r\n\r\n\tconst notifyStart = () => {\r\n\t\tupdatingCount++;\r\n\t};\r\n\r\n\tconst notifyError = reload => err => {\r\n\t\tconst errString = (err && err.stack) || err;\r\n\t\t// eslint-disable-next-line no-console\r\n\t\tconsole.error(\r\n\t\t\t'[HMR] Failed to accept update (nollup compat mode)',\r\n\t\t\terrString\r\n\t\t);\r\n\t\treload();\r\n\t\tnotifyEnd();\r\n\t};\r\n\r\n\tconst notifyEnd = () => {\r\n\t\tupdatingCount--;\r\n\t\tif (updatingCount === 0) {\r\n\t\t\t// NOTE this message is important for timing in tests\r\n\t\t\t// eslint-disable-next-line no-console\r\n\t\t\tconsole.log('[HMR:Svelte] Up to date');\r\n\t\t}\r\n\t};\r\n\r\n\tg[globalKey] = {\r\n\t\thotStates: {},\r\n\t\tnotifyStart,\r\n\t\tnotifyError,\r\n\t\tnotifyEnd,\r\n\t};\r\n}\r\n\r\nconst runAcceptHandlers = acceptHandlers => {\r\n\tconst queue = [...acceptHandlers];\r\n\tconst next = () => {\r\n\t\tconst cur = queue.shift();\r\n\t\tif (cur) {\r\n\t\t\treturn cur(null).then(next);\r\n\t\t} else {\r\n\t\t\treturn Promise.resolve(null);\r\n\t\t}\r\n\t};\r\n\treturn next();\r\n};\r\n\r\nexport const applyHmr = makeApplyHmr(args => {\r\n\tconst { notifyStart, notifyError, notifyEnd } = g[globalKey];\r\n\tconst { m, reload } = args;\r\n\r\n\tlet acceptHandlers = (m.hot.data && m.hot.data.acceptHandlers) || [];\r\n\tlet nextAcceptHandlers = [];\r\n\r\n\tm.hot.dispose(data => {\r\n\t\tdata.acceptHandlers = nextAcceptHandlers;\r\n\t});\r\n\r\n\tconst dispose = (...args) => m.hot.dispose(...args);\r\n\r\n\tconst accept = handler => {\r\n\t\tif (nextAcceptHandlers.length === 0) {\r\n\t\t\tm.hot.accept();\r\n\t\t}\r\n\t\tnextAcceptHandlers.push(handler);\r\n\t};\r\n\r\n\tconst check = status => {\r\n\t\tif (status === 'ready') {\r\n\t\t\tnotifyStart();\r\n\t\t} else if (status === 'idle') {\r\n\t\t\trunAcceptHandlers(acceptHandlers)\r\n\t\t\t\t.then(notifyEnd)\r\n\t\t\t\t.catch(notifyError(reload));\r\n\t\t}\r\n\t};\r\n\r\n\tm.hot.addStatusHandler(check);\r\n\r\n\tm.hot.dispose(() => {\r\n\t\tm.hot.removeStatusHandler(check);\r\n\t});\r\n\r\n\tconst hot = {\r\n\t\tdata: m.hot.data,\r\n\t\tdispose,\r\n\t\taccept,\r\n\t};\r\n\r\n\treturn { ...args, hot };\r\n});\r\n","import { writable } from 'svelte/store';\n\nexport enum NextLinkType {\n DEFAULT,\n REGEXP,\n FUNCTION,\n};\nexport enum ChapterTransformType {\n NONE,\n REGEXP,\n SELECTOR,\n FUNCTION,\n};\n\nexport const defaultConfig = {\n useTiny: true,\n nextLink: NextLinkType.DEFAULT,\n nextLinkRegex: `href=\"([^\"]+)\"[^>]*>\\\\s*Next`,\n nextLinkFn: `return \"https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/\"`,\n transform: ChapterTransformType.NONE,\n transformRegex: '.md',\n transformSelector: '',\n transformFn: `title = \"P'Thok Eats an Ice Cream Cone\"\nhtml = \"https://www.reddit.com/r/HFY/comments/f94rak/oc_pthok_eats_an_ice_cream_cone/\"`,\n};\nexport type Config = typeof defaultConfig;\nexport const config = writable(defaultConfig);\nexport const toValidConfig = (nconf?: any) => {\n if (!nconf || '' + nconf !== \"[object Object]\") return defaultConfig;\n const nk = Object.keys(nconf), dk = Object.keys(defaultConfig) as Array;\n for (const k of dk) {\n if (!nk.includes(k)) nconf[k] = defaultConfig[k];\n if (typeof defaultConfig[k] !== typeof nconf[k]) nconf[k] = defaultConfig[k];\n }\n return nconf;\n};\nexport const loadConfig = () => {\n try {\n const nconf = JSON.parse(localStorage.getItem('config'));\n config.set(toValidConfig(nconf));\n } catch { }\n};","\nconst fetchable = async (url: string, timeout: number) => {\n const controller = typeof AbortController !== \"undefined\" ? new AbortController() : {} as AbortController;\n const out = setTimeout(() => controller.abort && controller.abort(), timeout);\n\n try {\n return await fetch(url, { signal: controller.signal });\n } finally {\n clearTimeout(out);\n }\n};\n\nexport const retryFetch = async (url: string, timeout = 10000, retry = 3) => {\n for (let i = 0; i < retry - 1; i++) {\n try {\n return await fetchable(url, timeout);\n } catch {\n console.log(`Failed to fetch \\`${url}\\` ${i+1} ${i === 0 ? 'time' : 'times'}. Retrying...`);\n }\n }\n // last try, no catching\n return fetchable(url, timeout);\n}","import { nanoid } from 'nanoid';\nimport { stringToDocument } from '../util';\n\nexport const getGenericData = (content: string): Bookdata => {\n const doc = stringToDocument(content);\n return {\n title: doc.title,\n author: 'unkown',\n chapters: Array.from(doc.querySelectorAll('ul a, ol a')).map(item => ({\n apiUrl: item.href,\n id: nanoid(),\n title: item.textContent,\n })),\n };\n};","// https://blog.risingstack.com/writing-a-javascript-framework-sandboxed-code-evaluation/\ntype Ctx = Record;\nexport const sandboxFn = (fn: string) => {\n const code = `with (sandbox) {${fn}}`;\n const func = new Function('sandbox', code);\n const ctx = Object.create(null);\n ctx['console'] = { log: console.log, table: console.table, error: console.error, assert: console.assert };\n const proxy = new Proxy(ctx, { has, get });\n return (closure?: Parameters[1]) => {\n Object.defineProperties(proxy, closure);\n return { proxy, ret: func(proxy) };\n };\n};\n\nfunction has(target: Ctx, key: string | symbol) {\n return true;\n}\n\nfunction get(target: Ctx, key: string | symbol) {\n if (key === Symbol.unscopables) return undefined;\n return target[key];\n}","import { nanoid } from 'nanoid';\nimport { retryFetch } from '../fetch';\nimport { decode, redditApiBase, toApiCall } from '../util';\nimport { commentLink } from './re';\n\nconst seriesPageMatch = /^https?:\\/\\/(?:[^.]+\\.)?reddit\\.com\\/r\\/hfy\\/wiki\\/series\\//i;\n\nexport const isSeriesPage = (search: string) => !!search.match(seriesPageMatch);\n\nexport const getSeriesPageData = ({ data: { content_md, content_html } }: reddit.wikipage): Bookdata => {\n const content = new DOMParser().parseFromString(decode(content_html), 'text/html');\n const links = content.querySelectorAll('a[href]');\n\n return ({\n author: content_md.match(/\\[\\*\\*(?:Author\\s*[-:]\\s*)?([^*\\]]+)\\*\\*\\]|A Story By \\[(?:\\*\\*)?([^\\]]+?)(?:\\*\\*)?\\]/i).slice(1).find(Boolean)?.trim(),\n title: content_md.match(/##?\\s*\\*\\*(.+)\\*\\*/)?.[1]?.trim(),\n chapters: Array.from(links).filter(n => n.getAttribute('href').match(commentLink)).map(n => {\n const url = n.getAttribute('href').startsWith('http') ? n.getAttribute('href') : `https://www.reddit.com${n.getAttribute('href')}`;\n return ({\n id: nanoid(), // posts from here should be overwritten later when fetching, but we need an id before that or in case the user edits\n title: n.textContent.trim(),\n apiUrl: toApiCall(url),\n displayUrl: url,\n });\n })\n });\n};\n\nexport const getAllSeries = async (search?: string) => {\n const res = await retryFetch(`https://${redditApiBase}/r/hfy/wiki/series.json`);\n const json = await res.json();\n if (!res.ok) throw json.message;\n const content = json.data.content_md;\n const all = [...content.matchAll(/\\[([^\\]]+)\\]\\s*\\(((?:https?:\\/\\/(?:[^.]+\\.)?reddit\\.com)?\\/r\\/hfy\\/wiki\\/series\\/[^)]+)\\)\\s*(?:\\[\\*([^\\]]+)\\*\\])?/igm)].map(matches => ({\n title: matches[1],\n author: matches[3],\n url: toApiCall(matches[2].startsWith('http') ? matches[2] : `https://${redditApiBase}${matches[2]}`),\n }));\n\n if (!search) return all;\n const searchSmall = search.toLowerCase();\n return all.filter(s => s.title.toLowerCase().indexOf(searchSmall) !== -1);\n};","import { ChapterTransformType, config, NextLinkType, type Config } from '../configstore';\nimport { retryFetch } from '../fetch';\nimport { isString } from '../util';\nimport { getGenericData } from './cors';\nimport { sandboxFn } from './fn';\nimport { getSeriesPageData as getHFYSeriesPageData, isSeriesPage as isHFYSeriesPage } from './hfy';\nimport { getPostData, isPost } from './post';\nimport { commentLinkHTML } from './re';\n\nexport { getPostContent } from './post';\n\nexport enum Source {\n HFY_SERIES,\n POST,\n GENERIC,\n SEARCH,\n};\nconst parser = new DOMParser();\n\nexport const getSourceType = (search: string): Source => {\n try {\n new URL(search); // verify that it is a valid url\n if (isHFYSeriesPage(search))\n return Source.HFY_SERIES;\n if (isPost(search))\n return Source.POST;\n return Source.GENERIC;\n } catch { }\n return Source.SEARCH;\n};\n\nexport const requestToResource = (series: Series, res: Response): Promise => {\n if (series.type == Source.GENERIC) return res.text();\n return res.json();\n};\n\nexport const getDataFromSource = (source: Source, json: any): Bookdata | undefined => {\n switch (source) {\n case Source.HFY_SERIES:\n return getHFYSeriesPageData(json);\n case Source.POST:\n return getPostData(json);\n case Source.GENERIC:\n return getGenericData(json);\n }\n throw new Error(`Getting data from source type \\`${Source[source]}\\` not supported, this should never happen`);\n};\n\nexport const findNextLinkDefault = (html: string) => {\n const next = html.match(/href=\"([^\"]+)\"[^>]*>\\s*Next/i);\n if (next) return next[1];\n const posts = [...html.matchAll(commentLinkHTML)];\n // don't use \"First Chapter\", \"Previous Chapter\" or \"Index\" links\n const post = posts.reverse().find(match => {\n const t = match[3].toLowerCase();\n return !t.startsWith('first') && !t.startsWith('prev') && !t.startsWith('index');\n });\n if (post) return post[1];\n};\nlet userNextRegex: RegExp;\nexport const findNextLinkRegexp = (html: string) => {\n const next = html.match(userNextRegex);\n if (next && next.length > 1) return next[1];\n};\nlet userNextFn: ReturnType;\nexport const findNextLinkFn = (html: string) => {\n let doc: Document;\n const closure: Parameters[0] = {\n document: {\n get() { return doc = doc ?? parser.parseFromString(html, 'text/html'); },\n configurable: true,\n },\n html: {\n writable: false,\n value: html,\n configurable: true,\n },\n };\n return userNextFn(closure).ret;\n};\nexport const findNextLink = (config: Config, html: string): string => {\n switch (config.nextLink) {\n case NextLinkType.DEFAULT: return findNextLinkDefault(html);\n case NextLinkType.REGEXP: return findNextLinkRegexp(html);\n case NextLinkType.FUNCTION: return findNextLinkFn(html);\n }\n};\n\nlet userTransformRegex: RegExp;\nexport const transformChapterRegexp = (html: string) => {\n const next = html.match(userTransformRegex);\n if (next && next.length > 1) html = next[1];\n return html;\n};\nexport const transformChapterSelector = (sel: string, html: string) => {\n return parser.parseFromString(html, 'text/html').querySelector(sel)?.innerHTML;\n};\nlet userTransformFn: ReturnType;\nexport const transformChapterFn = (chapter: Chapter): Chapter => {\n let doc: Document;\n const closure: Parameters[0] = {\n document: {\n get() { return doc = doc ?? parser.parseFromString(chapter.content || '', 'text/html'); },\n configurable: true,\n },\n title: {\n writable: true,\n value: chapter.title,\n configurable: true,\n },\n html: {\n writable: true,\n value: chapter.content,\n configurable: true,\n },\n url: {\n writable: true,\n value: chapter.displayUrl,\n configurable: true,\n },\n };\n const { proxy } = userTransformFn(closure);\n return {\n ...chapter,\n title: isString(proxy.title) ? proxy.title : chapter.title,\n content: isString(proxy.html) ? proxy.html : chapter.content,\n displayUrl: isString(proxy.url) ? proxy.url : chapter.displayUrl,\n };\n};\nexport const transformChapter = (config: Config, chapter: Chapter): Chapter => {\n switch (config.transform) {\n case ChapterTransformType.NONE: return { ...chapter };\n case ChapterTransformType.REGEXP: return { ...chapter, content: transformChapterRegexp(chapter.content || '') };\n case ChapterTransformType.SELECTOR: return { ...chapter, content: transformChapterSelector(config.transformSelector, chapter.content || '') };\n case ChapterTransformType.FUNCTION: return transformChapterFn(chapter);\n }\n};\nexport const transformChapters = (config: Config, chapters: Bookdata['chapters']): Bookdata['chapters'] => chapters.map(transformChapter.bind(null, config));\n\nconfig.subscribe(conf => {\n userNextRegex = new RegExp(conf.nextLinkRegex, 'i');\n userNextFn = sandboxFn(conf.nextLinkFn);\n userTransformRegex = new RegExp(conf.transformRegex, 'i');\n userTransformFn = sandboxFn(conf.transformFn);\n});\n\nexport const fetchBookData = async (series: Series) => {\n const res = await retryFetch(series.url);\n const json = await requestToResource(series, res);\n if (!res.ok) throw '' + (json.message ?? json);\n\n const data = getDataFromSource(series.type, json);\n\n if (!data?.chapters?.length)\n throw new Error('No chapters found');\n return data;\n};","import { decode, toApiCall } from '../util';\n\nconst postMatch = /^https?:\\/\\/(?:[^.]+\\.)?reddit\\.com\\/r\\/([^/]+)\\/comments\\//i;\n\nexport const isPost = (search: string) => !!search.match(postMatch);\n\nexport const getPostContent = (json: reddit.post): Chapter =>\n({\n id: json[0].data.children[0].data.id,\n title: (json[0].data.children[0].data.title),\n content: decode(json[0].data.children[0].data.selftext_html),\n apiUrl: toApiCall(json[0].data.children[0].data.url),\n displayUrl: json[0].data.children[0].data.url,\n needsFetching: false,\n});\nexport const getPostData = (json: reddit.post): Bookdata =>\n({\n author: json[0].data.children[0].data.author,\n title: (json[0].data.children[0].data.title),\n chapters: [getPostContent(json)],\n});","\nexport const commentLink = /(?:https?:\\/\\/(?:[^.]+\\.)?reddit\\.com)?\\/r\\/([^\\/]+)\\/comments\\/.+/i;\nexport const commentLinkMD = /\\[([^\\]]+)\\]\\s*\\(((?:https?:\\/\\/(?:[^.]+\\.)?reddit\\.com)?\\/r\\/([^\\/]+)\\/comments\\/[^)]+)\\)/igm;\nexport const commentLinkHTML = /href=\"((?:https?:\\/\\/(?:[^.]+\\.)?reddit\\.com)?\\/r\\/([^\\/]+)\\/comments\\/[^\"]+)\"[^>]*>\\s*([^<]+)/igm;","import { writable } from 'svelte/store';\nimport { getSourceType, Source } from './sources';\nimport { toApiCall } from './util';\n\nexport enum Stage {\n INPUT,\n SEARCH,\n\n BOOK_DATA,\n EDIT_DATA,\n FIND_CHAPTERS,\n DOWNLOAD_CHAPTERS,\n\n RESULT,\n\n SETTINGS,\n _404,\n};\nconst toUrl = (stage: Stage) => stage === Stage.INPUT ? __webpack_public_path__ : `${__webpack_public_path__}${Stage[stage].toLowerCase().replace(/_/g, '-')}`;\nexport abstract class StageData {\n stage: Stage;\n from?: StageData;\n needsSaving?: boolean;\n abstract next(...args: any[]): void;\n dump(): any[] { return []; }\n}\ntype StageDataCtor = { new(...a: any[]): StageData; };\nexport type StageStore = {\n stage: StageData;\n search?: string;\n series?: Series;\n};\n\nexport class Input extends StageData {\n stage: Stage.INPUT = Stage.INPUT;\n next(search: string) {\n const input = getSourceType(search);\n store.update(s => ({ ...s, search, series: input !== Source.SEARCH ? { url: toApiCall(search), type: input } : s.series }));\n switch (input) {\n case Source.SEARCH:\n return next(Search);\n default:\n return next(BookData);\n }\n }\n}\nexport class Search extends StageData {\n stage: Stage.SEARCH = Stage.SEARCH;\n next(series: Series) {\n store.update(s => ({ ...s, series }));\n return next(BookData);\n }\n}\nexport class BookData extends StageData {\n stage: Stage.BOOK_DATA = Stage.BOOK_DATA;\n constructor(public bookData: Immutable = undefined, public newChapters: number = undefined) { super(); }\n next(data: Bookdata) { return next(Result, data); }\n edit(data: Bookdata) { return next(EditData, data); }\n findMore(data: Bookdata) { return next(FindChapters, data); }\n downloadAll(data: Bookdata) { return next(DownloadChapters, data); }\n dump(): any[] { return [this.bookData, this.newChapters]; }\n}\nexport class EditData extends StageData {\n stage: Stage.EDIT_DATA = Stage.EDIT_DATA;\n needsSaving = true;\n constructor(public bookData: Immutable) { super(); if (!bookData) throw new Error('bookData must be defined'); }\n next(data: Bookdata) { return next(BookData, data); }\n dump(): any[] { return [this.bookData]; }\n}\nexport class FindChapters extends StageData {\n stage: Stage.FIND_CHAPTERS = Stage.FIND_CHAPTERS;\n needsSaving = true;\n constructor(public bookData: Immutable) { super(); if (!bookData) throw new Error('bookData must be defined'); }\n next(data: Bookdata, n: number) { return next(BookData, data, n); }\n dump(): any[] { return [this.bookData]; }\n}\nexport class DownloadChapters extends StageData {\n stage: Stage.DOWNLOAD_CHAPTERS = Stage.DOWNLOAD_CHAPTERS;\n needsSaving = true;\n constructor(public bookData: Immutable) { super(); if (!bookData) throw new Error('bookData must be defined'); }\n next(data: Bookdata) { return next(BookData, data); }\n dump(): any[] { return [this.bookData]; }\n}\nexport class Result extends StageData {\n stage: Stage.RESULT = Stage.RESULT;\n constructor(public bookData: Immutable) { super(); if (!bookData) throw new Error('bookData must be defined'); }\n next() { return next(BookData, this.bookData); }\n dump(): any[] { return [this.bookData]; }\n}\nexport class Settings extends StageData {\n stage: Stage.SETTINGS = Stage.SETTINGS;\n next() { return back(); }\n}\nexport class _404 extends StageData {\n stage: Stage._404 = Stage._404;\n next() { return back(); }\n}\n\nconst StageMapping = {\n [Stage.INPUT]: Input,\n [Stage.SEARCH]: Search,\n [Stage.BOOK_DATA]: BookData,\n [Stage.EDIT_DATA]: EditData,\n [Stage.FIND_CHAPTERS]: FindChapters,\n [Stage.DOWNLOAD_CHAPTERS]: DownloadChapters,\n [Stage.RESULT]: Result,\n [Stage.SETTINGS]: Settings,\n [Stage._404]: _404,\n} as const;\nexport function next(typ: T, ...args: ConstructorParameters) {\n store.update(s => {\n const n = new typ(...args);\n n.from = s.stage;\n try {\n history.pushState({ data: n.dump(), search: s.search, series: s.series }, '', toUrl(n.stage));\n } catch {\n history.pushState({ data: [], search: s.search, series: s.series }, '', toUrl(n.stage));\n console.error('Data too large! Caution, forwards/backwards won\\'t work as expected!');\n }\n return { ...s, stage: n };\n });\n};\nfunction nextFromEnum(typ: Stage, { data, search, series }: { data?: any[], search?: string, series?: Series; } = {}) {\n data = data || [];\n store.update(s => {\n try {\n // @ts-ignore\n const n = new StageMapping[typ](...data);\n if (n.stage === s.stage.stage) return s; // no need to move if already here\n n.from = s.stage;\n return { ...s, search, series, stage: n };\n } catch (e) {\n console.group('Failed to update page');\n console.error(e);\n console.log('Parameters:', typ, data, search);\n console.groupEnd();\n history.pushState({ data: [], search: s.search, series: s.series }, '', '/');\n return s;\n }\n });\n}\nexport function back() {\n history.back();\n}\nexport function is(stage: StageData, type: S): stage is InstanceType {\n return !!stage && stage.stage === type;\n}\nexport const store = writable({ stage: new Input() });\n\nconst pathRegex = new RegExp('^' + __webpack_public_path__.replace('/', '\\/'));\nexport const loadFromHistory = () => {\n window.removeEventListener('popstate', handlePopState);\n window.addEventListener('popstate', handlePopState);\n handlePopState();\n};\nconst loadStateFromLocalStorage = () => {\n try {\n return JSON.parse(localStorage.getItem('state'));\n } catch {\n return undefined;\n }\n};\nconst handlePopState = () => {\n const path = location.pathname.replace(pathRegex, '').split('/')[0] || '';\n if (path.length > 60) return;\n if (path === \"\") return nextFromEnum(Stage.INPUT);\n const stage = path.toUpperCase().replace(/-/g, '_');\n const state = history.state || loadStateFromLocalStorage() || {};\n if (stage in Stage) return nextFromEnum(Stage[stage as keyof typeof Stage], state);\n return nextFromEnum(Stage._404);\n};","import { cubicOut } from 'svelte/easing';\nimport type { ScaleParams, TransitionConfig } from 'svelte/transition';\n\nexport const redditApiBase = 'www.reddit.com';\n\nexport const toApiCall = (url: URL | string) => {\n if (!(url instanceof URL)) url = new URL(url);\n url.hostname = redditApiBase;\n if (url.pathname.endsWith('/'))\n url.pathname = `${url.pathname.slice(0, url.pathname.length - 1)}.json`;\n else if (!url.pathname.endsWith('.json'))\n url.pathname += '.json';\n url.protocol = 'https';\n url.search = '';\n url.hash = '';\n return url.toString();\n};\n\nexport const apiToRegular = (url: string) => url.slice(0, -5).replace('https://api', 'https://www');\n\n// https://stackoverflow.com/a/34064434/\nexport const decode = (() => {\n const parser = new DOMParser();\n return (text: string) => parser.parseFromString(text, 'text/html').documentElement.textContent;\n})();\n\nexport const stringToDocument = (() => {\n const parser = new DOMParser();\n return (text: string) => parser.parseFromString(text, 'text/html');\n})();\n\nexport const copyData = (bookData: Immutable): Bookdata => ({ ...bookData, chapters: bookData.chapters.map(c => ({ ...c })) });\n\nexport function isString(input: unknown): input is string { return typeof input === \"string\" || input instanceof String; }\n\nexport function fold(node: Element, {\n delay = 0,\n duration = 200,\n prop = 'height',\n easing = cubicOut,\n}: ScaleParams & { prop?: keyof CSSStyleDeclaration; } = {}): TransitionConfig {\n const style = getComputedStyle(node);\n const curval = style[prop];\n if (!isString(curval) || !curval.endsWith('px')) throw new Error(`invalid property '${prop}' does not return pixels`);\n const px = +curval.slice(0, -2);\n\n return {\n delay,\n duration,\n easing,\n css: t => `overflow: hidden; ${prop}: ${t * px}px`\n };\n}","export { urlAlphabet } from './url-alphabet/index.js'\nexport let random = bytes => crypto.getRandomValues(new Uint8Array(bytes))\nexport let customRandom = (alphabet, defaultSize, getRandom) => {\n let mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1\n let step = -~((1.6 * mask * defaultSize) / alphabet.length)\n return (size = defaultSize) => {\n let id = ''\n while (true) {\n let bytes = getRandom(step)\n let j = step\n while (j--) {\n id += alphabet[bytes[j] & mask] || ''\n if (id.length === size) return id\n }\n }\n }\n}\nexport let customAlphabet = (alphabet, size = 21) =>\n customRandom(alphabet, size, random)\nexport let nanoid = (size = 21) =>\n crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {\n byte &= 63\n if (byte < 36) {\n id += byte.toString(36)\n } else if (byte < 62) {\n id += (byte - 26).toString(36).toUpperCase()\n } else if (byte > 62) {\n id += '-'\n } else {\n id += '_'\n }\n return id\n }, '')\n","export const urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\n","export { identity as linear } from '../internal/index.mjs';\n\n/*\nAdapted from https://github.com/mattdesl\nDistributed under MIT License https://github.com/mattdesl/eases/blob/master/LICENSE.md\n*/\nfunction backInOut(t) {\n const s = 1.70158 * 1.525;\n if ((t *= 2) < 1)\n return 0.5 * (t * t * ((s + 1) * t - s));\n return 0.5 * ((t -= 2) * t * ((s + 1) * t + s) + 2);\n}\nfunction backIn(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n}\nfunction backOut(t) {\n const s = 1.70158;\n return --t * t * ((s + 1) * t + s) + 1;\n}\nfunction bounceOut(t) {\n const a = 4.0 / 11.0;\n const b = 8.0 / 11.0;\n const c = 9.0 / 10.0;\n const ca = 4356.0 / 361.0;\n const cb = 35442.0 / 1805.0;\n const cc = 16061.0 / 1805.0;\n const t2 = t * t;\n return t < a\n ? 7.5625 * t2\n : t < b\n ? 9.075 * t2 - 9.9 * t + 3.4\n : t < c\n ? ca * t2 - cb * t + cc\n : 10.8 * t * t - 20.52 * t + 10.72;\n}\nfunction bounceInOut(t) {\n return t < 0.5\n ? 0.5 * (1.0 - bounceOut(1.0 - t * 2.0))\n : 0.5 * bounceOut(t * 2.0 - 1.0) + 0.5;\n}\nfunction bounceIn(t) {\n return 1.0 - bounceOut(1.0 - t);\n}\nfunction circInOut(t) {\n if ((t *= 2) < 1)\n return -0.5 * (Math.sqrt(1 - t * t) - 1);\n return 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1);\n}\nfunction circIn(t) {\n return 1.0 - Math.sqrt(1.0 - t * t);\n}\nfunction circOut(t) {\n return Math.sqrt(1 - --t * t);\n}\nfunction cubicInOut(t) {\n return t < 0.5 ? 4.0 * t * t * t : 0.5 * Math.pow(2.0 * t - 2.0, 3.0) + 1.0;\n}\nfunction cubicIn(t) {\n return t * t * t;\n}\nfunction cubicOut(t) {\n const f = t - 1.0;\n return f * f * f + 1.0;\n}\nfunction elasticInOut(t) {\n return t < 0.5\n ? 0.5 *\n Math.sin(((+13.0 * Math.PI) / 2) * 2.0 * t) *\n Math.pow(2.0, 10.0 * (2.0 * t - 1.0))\n : 0.5 *\n Math.sin(((-13.0 * Math.PI) / 2) * (2.0 * t - 1.0 + 1.0)) *\n Math.pow(2.0, -10.0 * (2.0 * t - 1.0)) +\n 1.0;\n}\nfunction elasticIn(t) {\n return Math.sin((13.0 * t * Math.PI) / 2) * Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction elasticOut(t) {\n return (Math.sin((-13.0 * (t + 1.0) * Math.PI) / 2) * Math.pow(2.0, -10.0 * t) + 1.0);\n}\nfunction expoInOut(t) {\n return t === 0.0 || t === 1.0\n ? t\n : t < 0.5\n ? +0.5 * Math.pow(2.0, 20.0 * t - 10.0)\n : -0.5 * Math.pow(2.0, 10.0 - t * 20.0) + 1.0;\n}\nfunction expoIn(t) {\n return t === 0.0 ? t : Math.pow(2.0, 10.0 * (t - 1.0));\n}\nfunction expoOut(t) {\n return t === 1.0 ? t : 1.0 - Math.pow(2.0, -10.0 * t);\n}\nfunction quadInOut(t) {\n t /= 0.5;\n if (t < 1)\n return 0.5 * t * t;\n t--;\n return -0.5 * (t * (t - 2) - 1);\n}\nfunction quadIn(t) {\n return t * t;\n}\nfunction quadOut(t) {\n return -t * (t - 2.0);\n}\nfunction quartInOut(t) {\n return t < 0.5\n ? +8.0 * Math.pow(t, 4.0)\n : -8.0 * Math.pow(t - 1.0, 4.0) + 1.0;\n}\nfunction quartIn(t) {\n return Math.pow(t, 4.0);\n}\nfunction quartOut(t) {\n return Math.pow(t - 1.0, 3.0) * (1.0 - t) + 1.0;\n}\nfunction quintInOut(t) {\n if ((t *= 2) < 1)\n return 0.5 * t * t * t * t * t;\n return 0.5 * ((t -= 2) * t * t * t * t + 2);\n}\nfunction quintIn(t) {\n return t * t * t * t * t;\n}\nfunction quintOut(t) {\n return --t * t * t * t * t + 1;\n}\nfunction sineInOut(t) {\n return -0.5 * (Math.cos(Math.PI * t) - 1);\n}\nfunction sineIn(t) {\n const v = Math.cos(t * Math.PI * 0.5);\n if (Math.abs(v) < 1e-14)\n return 1;\n else\n return 1 - v;\n}\nfunction sineOut(t) {\n return Math.sin((t * Math.PI) / 2);\n}\n\nexport { backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, cubicIn, cubicInOut, cubicOut, elasticIn, elasticInOut, elasticOut, expoIn, expoInOut, expoOut, quadIn, quadInOut, quadOut, quartIn, quartInOut, quartOut, quintIn, quintInOut, quintOut, sineIn, sineInOut, sineOut };\n","export { SvelteComponentDev as SvelteComponent, SvelteComponentTyped, afterUpdate, beforeUpdate, createEventDispatcher, getAllContexts, getContext, hasContext, onDestroy, onMount, setContext, tick } from './internal/index.mjs';\n","function noop() { }\nconst identity = x => x;\nfunction assign(tar, src) {\n // @ts-ignore\n for (const k in src)\n tar[k] = src[k];\n return tar;\n}\nfunction is_promise(value) {\n return value && typeof value === 'object' && typeof value.then === 'function';\n}\nfunction add_location(element, file, line, column, char) {\n element.__svelte_meta = {\n loc: { file, line, column, char }\n };\n}\nfunction run(fn) {\n return fn();\n}\nfunction blank_object() {\n return Object.create(null);\n}\nfunction run_all(fns) {\n fns.forEach(run);\n}\nfunction is_function(thing) {\n return typeof thing === 'function';\n}\nfunction safe_not_equal(a, b) {\n return a != a ? b == b : a !== b || ((a && typeof a === 'object') || typeof a === 'function');\n}\nlet src_url_equal_anchor;\nfunction src_url_equal(element_src, url) {\n if (!src_url_equal_anchor) {\n src_url_equal_anchor = document.createElement('a');\n }\n src_url_equal_anchor.href = url;\n return element_src === src_url_equal_anchor.href;\n}\nfunction not_equal(a, b) {\n return a != a ? b == b : a !== b;\n}\nfunction is_empty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction validate_store(store, name) {\n if (store != null && typeof store.subscribe !== 'function') {\n throw new Error(`'${name}' is not a store with a 'subscribe' method`);\n }\n}\nfunction subscribe(store, ...callbacks) {\n if (store == null) {\n return noop;\n }\n const unsub = store.subscribe(...callbacks);\n return unsub.unsubscribe ? () => unsub.unsubscribe() : unsub;\n}\nfunction get_store_value(store) {\n let value;\n subscribe(store, _ => value = _)();\n return value;\n}\nfunction component_subscribe(component, store, callback) {\n component.$$.on_destroy.push(subscribe(store, callback));\n}\nfunction create_slot(definition, ctx, $$scope, fn) {\n if (definition) {\n const slot_ctx = get_slot_context(definition, ctx, $$scope, fn);\n return definition[0](slot_ctx);\n }\n}\nfunction get_slot_context(definition, ctx, $$scope, fn) {\n return definition[1] && fn\n ? assign($$scope.ctx.slice(), definition[1](fn(ctx)))\n : $$scope.ctx;\n}\nfunction get_slot_changes(definition, $$scope, dirty, fn) {\n if (definition[2] && fn) {\n const lets = definition[2](fn(dirty));\n if ($$scope.dirty === undefined) {\n return lets;\n }\n if (typeof lets === 'object') {\n const merged = [];\n const len = Math.max($$scope.dirty.length, lets.length);\n for (let i = 0; i < len; i += 1) {\n merged[i] = $$scope.dirty[i] | lets[i];\n }\n return merged;\n }\n return $$scope.dirty | lets;\n }\n return $$scope.dirty;\n}\nfunction update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn) {\n if (slot_changes) {\n const slot_context = get_slot_context(slot_definition, ctx, $$scope, get_slot_context_fn);\n slot.p(slot_context, slot_changes);\n }\n}\nfunction update_slot(slot, slot_definition, ctx, $$scope, dirty, get_slot_changes_fn, get_slot_context_fn) {\n const slot_changes = get_slot_changes(slot_definition, $$scope, dirty, get_slot_changes_fn);\n update_slot_base(slot, slot_definition, ctx, $$scope, slot_changes, get_slot_context_fn);\n}\nfunction get_all_dirty_from_scope($$scope) {\n if ($$scope.ctx.length > 32) {\n const dirty = [];\n const length = $$scope.ctx.length / 32;\n for (let i = 0; i < length; i++) {\n dirty[i] = -1;\n }\n return dirty;\n }\n return -1;\n}\nfunction exclude_internal_props(props) {\n const result = {};\n for (const k in props)\n if (k[0] !== '$')\n result[k] = props[k];\n return result;\n}\nfunction compute_rest_props(props, keys) {\n const rest = {};\n keys = new Set(keys);\n for (const k in props)\n if (!keys.has(k) && k[0] !== '$')\n rest[k] = props[k];\n return rest;\n}\nfunction compute_slots(slots) {\n const result = {};\n for (const key in slots) {\n result[key] = true;\n }\n return result;\n}\nfunction once(fn) {\n let ran = false;\n return function (...args) {\n if (ran)\n return;\n ran = true;\n fn.call(this, ...args);\n };\n}\nfunction null_to_empty(value) {\n return value == null ? '' : value;\n}\nfunction set_store_value(store, ret, value) {\n store.set(value);\n return ret;\n}\nconst has_prop = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop);\nfunction action_destroyer(action_result) {\n return action_result && is_function(action_result.destroy) ? action_result.destroy : noop;\n}\n\nconst is_client = typeof window !== 'undefined';\nlet now = is_client\n ? () => window.performance.now()\n : () => Date.now();\nlet raf = is_client ? cb => requestAnimationFrame(cb) : noop;\n// used internally for testing\nfunction set_now(fn) {\n now = fn;\n}\nfunction set_raf(fn) {\n raf = fn;\n}\n\nconst tasks = new Set();\nfunction run_tasks(now) {\n tasks.forEach(task => {\n if (!task.c(now)) {\n tasks.delete(task);\n task.f();\n }\n });\n if (tasks.size !== 0)\n raf(run_tasks);\n}\n/**\n * For testing purposes only!\n */\nfunction clear_loops() {\n tasks.clear();\n}\n/**\n * Creates a new task that runs on each raf frame\n * until it returns a falsy value or is aborted\n */\nfunction loop(callback) {\n let task;\n if (tasks.size === 0)\n raf(run_tasks);\n return {\n promise: new Promise(fulfill => {\n tasks.add(task = { c: callback, f: fulfill });\n }),\n abort() {\n tasks.delete(task);\n }\n };\n}\n\n// Track which nodes are claimed during hydration. Unclaimed nodes can then be removed from the DOM\n// at the end of hydration without touching the remaining nodes.\nlet is_hydrating = false;\nfunction start_hydrating() {\n is_hydrating = true;\n}\nfunction end_hydrating() {\n is_hydrating = false;\n}\nfunction upper_bound(low, high, key, value) {\n // Return first index of value larger than input value in the range [low, high)\n while (low < high) {\n const mid = low + ((high - low) >> 1);\n if (key(mid) <= value) {\n low = mid + 1;\n }\n else {\n high = mid;\n }\n }\n return low;\n}\nfunction init_hydrate(target) {\n if (target.hydrate_init)\n return;\n target.hydrate_init = true;\n // We know that all children have claim_order values since the unclaimed have been detached if target is not \n let children = target.childNodes;\n // If target is , there may be children without claim_order\n if (target.nodeName === 'HEAD') {\n const myChildren = [];\n for (let i = 0; i < children.length; i++) {\n const node = children[i];\n if (node.claim_order !== undefined) {\n myChildren.push(node);\n }\n }\n children = myChildren;\n }\n /*\n * Reorder claimed children optimally.\n * We can reorder claimed children optimally by finding the longest subsequence of\n * nodes that are already claimed in order and only moving the rest. The longest\n * subsequence subsequence of nodes that are claimed in order can be found by\n * computing the longest increasing subsequence of .claim_order values.\n *\n * This algorithm is optimal in generating the least amount of reorder operations\n * possible.\n *\n * Proof:\n * We know that, given a set of reordering operations, the nodes that do not move\n * always form an increasing subsequence, since they do not move among each other\n * meaning that they must be already ordered among each other. Thus, the maximal\n * set of nodes that do not move form a longest increasing subsequence.\n */\n // Compute longest increasing subsequence\n // m: subsequence length j => index k of smallest value that ends an increasing subsequence of length j\n const m = new Int32Array(children.length + 1);\n // Predecessor indices + 1\n const p = new Int32Array(children.length);\n m[0] = -1;\n let longest = 0;\n for (let i = 0; i < children.length; i++) {\n const current = children[i].claim_order;\n // Find the largest subsequence length such that it ends in a value less than our current value\n // upper_bound returns first greater value, so we subtract one\n // with fast path for when we are on the current longest subsequence\n const seqLen = ((longest > 0 && children[m[longest]].claim_order <= current) ? longest + 1 : upper_bound(1, longest, idx => children[m[idx]].claim_order, current)) - 1;\n p[i] = m[seqLen] + 1;\n const newLen = seqLen + 1;\n // We can guarantee that current is the smallest value. Otherwise, we would have generated a longer sequence.\n m[newLen] = i;\n longest = Math.max(newLen, longest);\n }\n // The longest increasing subsequence of nodes (initially reversed)\n const lis = [];\n // The rest of the nodes, nodes that will be moved\n const toMove = [];\n let last = children.length - 1;\n for (let cur = m[longest] + 1; cur != 0; cur = p[cur - 1]) {\n lis.push(children[cur - 1]);\n for (; last >= cur; last--) {\n toMove.push(children[last]);\n }\n last--;\n }\n for (; last >= 0; last--) {\n toMove.push(children[last]);\n }\n lis.reverse();\n // We sort the nodes being moved to guarantee that their insertion order matches the claim order\n toMove.sort((a, b) => a.claim_order - b.claim_order);\n // Finally, we move the nodes\n for (let i = 0, j = 0; i < toMove.length; i++) {\n while (j < lis.length && toMove[i].claim_order >= lis[j].claim_order) {\n j++;\n }\n const anchor = j < lis.length ? lis[j] : null;\n target.insertBefore(toMove[i], anchor);\n }\n}\nfunction append(target, node) {\n target.appendChild(node);\n}\nfunction append_styles(target, style_sheet_id, styles) {\n const append_styles_to = get_root_for_style(target);\n if (!append_styles_to.getElementById(style_sheet_id)) {\n const style = element('style');\n style.id = style_sheet_id;\n style.textContent = styles;\n append_stylesheet(append_styles_to, style);\n }\n}\nfunction get_root_for_style(node) {\n if (!node)\n return document;\n const root = node.getRootNode ? node.getRootNode() : node.ownerDocument;\n if (root && root.host) {\n return root;\n }\n return node.ownerDocument;\n}\nfunction append_empty_stylesheet(node) {\n const style_element = element('style');\n append_stylesheet(get_root_for_style(node), style_element);\n return style_element.sheet;\n}\nfunction append_stylesheet(node, style) {\n append(node.head || node, style);\n}\nfunction append_hydration(target, node) {\n if (is_hydrating) {\n init_hydrate(target);\n if ((target.actual_end_child === undefined) || ((target.actual_end_child !== null) && (target.actual_end_child.parentElement !== target))) {\n target.actual_end_child = target.firstChild;\n }\n // Skip nodes of undefined ordering\n while ((target.actual_end_child !== null) && (target.actual_end_child.claim_order === undefined)) {\n target.actual_end_child = target.actual_end_child.nextSibling;\n }\n if (node !== target.actual_end_child) {\n // We only insert if the ordering of this node should be modified or the parent node is not target\n if (node.claim_order !== undefined || node.parentNode !== target) {\n target.insertBefore(node, target.actual_end_child);\n }\n }\n else {\n target.actual_end_child = node.nextSibling;\n }\n }\n else if (node.parentNode !== target || node.nextSibling !== null) {\n target.appendChild(node);\n }\n}\nfunction insert(target, node, anchor) {\n target.insertBefore(node, anchor || null);\n}\nfunction insert_hydration(target, node, anchor) {\n if (is_hydrating && !anchor) {\n append_hydration(target, node);\n }\n else if (node.parentNode !== target || node.nextSibling != anchor) {\n target.insertBefore(node, anchor || null);\n }\n}\nfunction detach(node) {\n node.parentNode.removeChild(node);\n}\nfunction destroy_each(iterations, detaching) {\n for (let i = 0; i < iterations.length; i += 1) {\n if (iterations[i])\n iterations[i].d(detaching);\n }\n}\nfunction element(name) {\n return document.createElement(name);\n}\nfunction element_is(name, is) {\n return document.createElement(name, { is });\n}\nfunction object_without_properties(obj, exclude) {\n const target = {};\n for (const k in obj) {\n if (has_prop(obj, k)\n // @ts-ignore\n && exclude.indexOf(k) === -1) {\n // @ts-ignore\n target[k] = obj[k];\n }\n }\n return target;\n}\nfunction svg_element(name) {\n return document.createElementNS('http://www.w3.org/2000/svg', name);\n}\nfunction text(data) {\n return document.createTextNode(data);\n}\nfunction space() {\n return text(' ');\n}\nfunction empty() {\n return text('');\n}\nfunction listen(node, event, handler, options) {\n node.addEventListener(event, handler, options);\n return () => node.removeEventListener(event, handler, options);\n}\nfunction prevent_default(fn) {\n return function (event) {\n event.preventDefault();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction stop_propagation(fn) {\n return function (event) {\n event.stopPropagation();\n // @ts-ignore\n return fn.call(this, event);\n };\n}\nfunction self(fn) {\n return function (event) {\n // @ts-ignore\n if (event.target === this)\n fn.call(this, event);\n };\n}\nfunction trusted(fn) {\n return function (event) {\n // @ts-ignore\n if (event.isTrusted)\n fn.call(this, event);\n };\n}\nfunction attr(node, attribute, value) {\n if (value == null)\n node.removeAttribute(attribute);\n else if (node.getAttribute(attribute) !== value)\n node.setAttribute(attribute, value);\n}\nfunction set_attributes(node, attributes) {\n // @ts-ignore\n const descriptors = Object.getOwnPropertyDescriptors(node.__proto__);\n for (const key in attributes) {\n if (attributes[key] == null) {\n node.removeAttribute(key);\n }\n else if (key === 'style') {\n node.style.cssText = attributes[key];\n }\n else if (key === '__value') {\n node.value = node[key] = attributes[key];\n }\n else if (descriptors[key] && descriptors[key].set) {\n node[key] = attributes[key];\n }\n else {\n attr(node, key, attributes[key]);\n }\n }\n}\nfunction set_svg_attributes(node, attributes) {\n for (const key in attributes) {\n attr(node, key, attributes[key]);\n }\n}\nfunction set_custom_element_data(node, prop, value) {\n if (prop in node) {\n node[prop] = typeof node[prop] === 'boolean' && value === '' ? true : value;\n }\n else {\n attr(node, prop, value);\n }\n}\nfunction xlink_attr(node, attribute, value) {\n node.setAttributeNS('http://www.w3.org/1999/xlink', attribute, value);\n}\nfunction get_binding_group_value(group, __value, checked) {\n const value = new Set();\n for (let i = 0; i < group.length; i += 1) {\n if (group[i].checked)\n value.add(group[i].__value);\n }\n if (!checked) {\n value.delete(__value);\n }\n return Array.from(value);\n}\nfunction to_number(value) {\n return value === '' ? null : +value;\n}\nfunction time_ranges_to_array(ranges) {\n const array = [];\n for (let i = 0; i < ranges.length; i += 1) {\n array.push({ start: ranges.start(i), end: ranges.end(i) });\n }\n return array;\n}\nfunction children(element) {\n return Array.from(element.childNodes);\n}\nfunction init_claim_info(nodes) {\n if (nodes.claim_info === undefined) {\n nodes.claim_info = { last_index: 0, total_claimed: 0 };\n }\n}\nfunction claim_node(nodes, predicate, processNode, createNode, dontUpdateLastIndex = false) {\n // Try to find nodes in an order such that we lengthen the longest increasing subsequence\n init_claim_info(nodes);\n const resultNode = (() => {\n // We first try to find an element after the previous one\n for (let i = nodes.claim_info.last_index; i < nodes.length; i++) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n return node;\n }\n }\n // Otherwise, we try to find one before\n // We iterate in reverse so that we don't go too far back\n for (let i = nodes.claim_info.last_index - 1; i >= 0; i--) {\n const node = nodes[i];\n if (predicate(node)) {\n const replacement = processNode(node);\n if (replacement === undefined) {\n nodes.splice(i, 1);\n }\n else {\n nodes[i] = replacement;\n }\n if (!dontUpdateLastIndex) {\n nodes.claim_info.last_index = i;\n }\n else if (replacement === undefined) {\n // Since we spliced before the last_index, we decrease it\n nodes.claim_info.last_index--;\n }\n return node;\n }\n }\n // If we can't find any matching node, we create a new one\n return createNode();\n })();\n resultNode.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n return resultNode;\n}\nfunction claim_element_base(nodes, name, attributes, create_element) {\n return claim_node(nodes, (node) => node.nodeName === name, (node) => {\n const remove = [];\n for (let j = 0; j < node.attributes.length; j++) {\n const attribute = node.attributes[j];\n if (!attributes[attribute.name]) {\n remove.push(attribute.name);\n }\n }\n remove.forEach(v => node.removeAttribute(v));\n return undefined;\n }, () => create_element(name));\n}\nfunction claim_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, element);\n}\nfunction claim_svg_element(nodes, name, attributes) {\n return claim_element_base(nodes, name, attributes, svg_element);\n}\nfunction claim_text(nodes, data) {\n return claim_node(nodes, (node) => node.nodeType === 3, (node) => {\n const dataStr = '' + data;\n if (node.data.startsWith(dataStr)) {\n if (node.data.length !== dataStr.length) {\n return node.splitText(dataStr.length);\n }\n }\n else {\n node.data = dataStr;\n }\n }, () => text(data), true // Text nodes should not update last index since it is likely not worth it to eliminate an increasing subsequence of actual elements\n );\n}\nfunction claim_space(nodes) {\n return claim_text(nodes, ' ');\n}\nfunction find_comment(nodes, text, start) {\n for (let i = start; i < nodes.length; i += 1) {\n const node = nodes[i];\n if (node.nodeType === 8 /* comment node */ && node.textContent.trim() === text) {\n return i;\n }\n }\n return nodes.length;\n}\nfunction claim_html_tag(nodes, is_svg) {\n // find html opening tag\n const start_index = find_comment(nodes, 'HTML_TAG_START', 0);\n const end_index = find_comment(nodes, 'HTML_TAG_END', start_index);\n if (start_index === end_index) {\n return new HtmlTagHydration(undefined, is_svg);\n }\n init_claim_info(nodes);\n const html_tag_nodes = nodes.splice(start_index, end_index - start_index + 1);\n detach(html_tag_nodes[0]);\n detach(html_tag_nodes[html_tag_nodes.length - 1]);\n const claimed_nodes = html_tag_nodes.slice(1, html_tag_nodes.length - 1);\n for (const n of claimed_nodes) {\n n.claim_order = nodes.claim_info.total_claimed;\n nodes.claim_info.total_claimed += 1;\n }\n return new HtmlTagHydration(claimed_nodes, is_svg);\n}\nfunction set_data(text, data) {\n data = '' + data;\n if (text.wholeText !== data)\n text.data = data;\n}\nfunction set_input_value(input, value) {\n input.value = value == null ? '' : value;\n}\nfunction set_input_type(input, type) {\n try {\n input.type = type;\n }\n catch (e) {\n // do nothing\n }\n}\nfunction set_style(node, key, value, important) {\n if (value === null) {\n node.style.removeProperty(key);\n }\n else {\n node.style.setProperty(key, value, important ? 'important' : '');\n }\n}\nfunction select_option(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n if (option.__value === value) {\n option.selected = true;\n return;\n }\n }\n select.selectedIndex = -1; // no option should be selected\n}\nfunction select_options(select, value) {\n for (let i = 0; i < select.options.length; i += 1) {\n const option = select.options[i];\n option.selected = ~value.indexOf(option.__value);\n }\n}\nfunction select_value(select) {\n const selected_option = select.querySelector(':checked') || select.options[0];\n return selected_option && selected_option.__value;\n}\nfunction select_multiple_value(select) {\n return [].map.call(select.querySelectorAll(':checked'), option => option.__value);\n}\n// unfortunately this can't be a constant as that wouldn't be tree-shakeable\n// so we cache the result instead\nlet crossorigin;\nfunction is_crossorigin() {\n if (crossorigin === undefined) {\n crossorigin = false;\n try {\n if (typeof window !== 'undefined' && window.parent) {\n void window.parent.document;\n }\n }\n catch (error) {\n crossorigin = true;\n }\n }\n return crossorigin;\n}\nfunction add_resize_listener(node, fn) {\n const computed_style = getComputedStyle(node);\n if (computed_style.position === 'static') {\n node.style.position = 'relative';\n }\n const iframe = element('iframe');\n iframe.setAttribute('style', 'display: block; position: absolute; top: 0; left: 0; width: 100%; height: 100%; ' +\n 'overflow: hidden; border: 0; opacity: 0; pointer-events: none; z-index: -1;');\n iframe.setAttribute('aria-hidden', 'true');\n iframe.tabIndex = -1;\n const crossorigin = is_crossorigin();\n let unsubscribe;\n if (crossorigin) {\n iframe.src = \"data:text/html,\";\n unsubscribe = listen(window, 'message', (event) => {\n if (event.source === iframe.contentWindow)\n fn();\n });\n }\n else {\n iframe.src = 'about:blank';\n iframe.onload = () => {\n unsubscribe = listen(iframe.contentWindow, 'resize', fn);\n };\n }\n append(node, iframe);\n return () => {\n if (crossorigin) {\n unsubscribe();\n }\n else if (unsubscribe && iframe.contentWindow) {\n unsubscribe();\n }\n detach(iframe);\n };\n}\nfunction toggle_class(element, name, toggle) {\n element.classList[toggle ? 'add' : 'remove'](name);\n}\nfunction custom_event(type, detail, { bubbles = false, cancelable = false } = {}) {\n const e = document.createEvent('CustomEvent');\n e.initCustomEvent(type, bubbles, cancelable, detail);\n return e;\n}\nfunction query_selector_all(selector, parent = document.body) {\n return Array.from(parent.querySelectorAll(selector));\n}\nclass HtmlTag {\n constructor(is_svg = false) {\n this.is_svg = false;\n this.is_svg = is_svg;\n this.e = this.n = null;\n }\n c(html) {\n this.h(html);\n }\n m(html, target, anchor = null) {\n if (!this.e) {\n if (this.is_svg)\n this.e = svg_element(target.nodeName);\n else\n this.e = element(target.nodeName);\n this.t = target;\n this.c(html);\n }\n this.i(anchor);\n }\n h(html) {\n this.e.innerHTML = html;\n this.n = Array.from(this.e.childNodes);\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert(this.t, this.n[i], anchor);\n }\n }\n p(html) {\n this.d();\n this.h(html);\n this.i(this.a);\n }\n d() {\n this.n.forEach(detach);\n }\n}\nclass HtmlTagHydration extends HtmlTag {\n constructor(claimed_nodes, is_svg = false) {\n super(is_svg);\n this.e = this.n = null;\n this.l = claimed_nodes;\n }\n c(html) {\n if (this.l) {\n this.n = this.l;\n }\n else {\n super.c(html);\n }\n }\n i(anchor) {\n for (let i = 0; i < this.n.length; i += 1) {\n insert_hydration(this.t, this.n[i], anchor);\n }\n }\n}\nfunction attribute_to_object(attributes) {\n const result = {};\n for (const attribute of attributes) {\n result[attribute.name] = attribute.value;\n }\n return result;\n}\nfunction get_custom_elements_slots(element) {\n const result = {};\n element.childNodes.forEach((node) => {\n result[node.slot || 'default'] = true;\n });\n return result;\n}\n\n// we need to store the information for multiple documents because a Svelte application could also contain iframes\n// https://github.com/sveltejs/svelte/issues/3624\nconst managed_styles = new Map();\nlet active = 0;\n// https://github.com/darkskyapp/string-hash/blob/master/index.js\nfunction hash(str) {\n let hash = 5381;\n let i = str.length;\n while (i--)\n hash = ((hash << 5) - hash) ^ str.charCodeAt(i);\n return hash >>> 0;\n}\nfunction create_style_information(doc, node) {\n const info = { stylesheet: append_empty_stylesheet(node), rules: {} };\n managed_styles.set(doc, info);\n return info;\n}\nfunction create_rule(node, a, b, duration, delay, ease, fn, uid = 0) {\n const step = 16.666 / duration;\n let keyframes = '{\\n';\n for (let p = 0; p <= 1; p += step) {\n const t = a + (b - a) * ease(p);\n keyframes += p * 100 + `%{${fn(t, 1 - t)}}\\n`;\n }\n const rule = keyframes + `100% {${fn(b, 1 - b)}}\\n}`;\n const name = `__svelte_${hash(rule)}_${uid}`;\n const doc = get_root_for_style(node);\n const { stylesheet, rules } = managed_styles.get(doc) || create_style_information(doc, node);\n if (!rules[name]) {\n rules[name] = true;\n stylesheet.insertRule(`@keyframes ${name} ${rule}`, stylesheet.cssRules.length);\n }\n const animation = node.style.animation || '';\n node.style.animation = `${animation ? `${animation}, ` : ''}${name} ${duration}ms linear ${delay}ms 1 both`;\n active += 1;\n return name;\n}\nfunction delete_rule(node, name) {\n const previous = (node.style.animation || '').split(', ');\n const next = previous.filter(name\n ? anim => anim.indexOf(name) < 0 // remove specific animation\n : anim => anim.indexOf('__svelte') === -1 // remove all Svelte animations\n );\n const deleted = previous.length - next.length;\n if (deleted) {\n node.style.animation = next.join(', ');\n active -= deleted;\n if (!active)\n clear_rules();\n }\n}\nfunction clear_rules() {\n raf(() => {\n if (active)\n return;\n managed_styles.forEach(info => {\n const { stylesheet } = info;\n let i = stylesheet.cssRules.length;\n while (i--)\n stylesheet.deleteRule(i);\n info.rules = {};\n });\n managed_styles.clear();\n });\n}\n\nfunction create_animation(node, from, fn, params) {\n if (!from)\n return noop;\n const to = node.getBoundingClientRect();\n if (from.left === to.left && from.right === to.right && from.top === to.top && from.bottom === to.bottom)\n return noop;\n const { delay = 0, duration = 300, easing = identity, \n // @ts-ignore todo: should this be separated from destructuring? Or start/end added to public api and documentation?\n start: start_time = now() + delay, \n // @ts-ignore todo:\n end = start_time + duration, tick = noop, css } = fn(node, { from, to }, params);\n let running = true;\n let started = false;\n let name;\n function start() {\n if (css) {\n name = create_rule(node, 0, 1, duration, delay, easing, css);\n }\n if (!delay) {\n started = true;\n }\n }\n function stop() {\n if (css)\n delete_rule(node, name);\n running = false;\n }\n loop(now => {\n if (!started && now >= start_time) {\n started = true;\n }\n if (started && now >= end) {\n tick(1, 0);\n stop();\n }\n if (!running) {\n return false;\n }\n if (started) {\n const p = now - start_time;\n const t = 0 + 1 * easing(p / duration);\n tick(t, 1 - t);\n }\n return true;\n });\n start();\n tick(0, 1);\n return stop;\n}\nfunction fix_position(node) {\n const style = getComputedStyle(node);\n if (style.position !== 'absolute' && style.position !== 'fixed') {\n const { width, height } = style;\n const a = node.getBoundingClientRect();\n node.style.position = 'absolute';\n node.style.width = width;\n node.style.height = height;\n add_transform(node, a);\n }\n}\nfunction add_transform(node, a) {\n const b = node.getBoundingClientRect();\n if (a.left !== b.left || a.top !== b.top) {\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n node.style.transform = `${transform} translate(${a.left - b.left}px, ${a.top - b.top}px)`;\n }\n}\n\nlet current_component;\nfunction set_current_component(component) {\n current_component = component;\n}\nfunction get_current_component() {\n if (!current_component)\n throw new Error('Function called outside component initialization');\n return current_component;\n}\nfunction beforeUpdate(fn) {\n get_current_component().$$.before_update.push(fn);\n}\nfunction onMount(fn) {\n get_current_component().$$.on_mount.push(fn);\n}\nfunction afterUpdate(fn) {\n get_current_component().$$.after_update.push(fn);\n}\nfunction onDestroy(fn) {\n get_current_component().$$.on_destroy.push(fn);\n}\nfunction createEventDispatcher() {\n const component = get_current_component();\n return (type, detail, { cancelable = false } = {}) => {\n const callbacks = component.$$.callbacks[type];\n if (callbacks) {\n // TODO are there situations where events could be dispatched\n // in a server (non-DOM) environment?\n const event = custom_event(type, detail, { cancelable });\n callbacks.slice().forEach(fn => {\n fn.call(component, event);\n });\n return !event.defaultPrevented;\n }\n return true;\n };\n}\nfunction setContext(key, context) {\n get_current_component().$$.context.set(key, context);\n return context;\n}\nfunction getContext(key) {\n return get_current_component().$$.context.get(key);\n}\nfunction getAllContexts() {\n return get_current_component().$$.context;\n}\nfunction hasContext(key) {\n return get_current_component().$$.context.has(key);\n}\n// TODO figure out if we still want to support\n// shorthand events, or if we want to implement\n// a real bubbling mechanism\nfunction bubble(component, event) {\n const callbacks = component.$$.callbacks[event.type];\n if (callbacks) {\n // @ts-ignore\n callbacks.slice().forEach(fn => fn.call(this, event));\n }\n}\n\nconst dirty_components = [];\nconst intros = { enabled: false };\nconst binding_callbacks = [];\nconst render_callbacks = [];\nconst flush_callbacks = [];\nconst resolved_promise = Promise.resolve();\nlet update_scheduled = false;\nfunction schedule_update() {\n if (!update_scheduled) {\n update_scheduled = true;\n resolved_promise.then(flush);\n }\n}\nfunction tick() {\n schedule_update();\n return resolved_promise;\n}\nfunction add_render_callback(fn) {\n render_callbacks.push(fn);\n}\nfunction add_flush_callback(fn) {\n flush_callbacks.push(fn);\n}\n// flush() calls callbacks in this order:\n// 1. All beforeUpdate callbacks, in order: parents before children\n// 2. All bind:this callbacks, in reverse order: children before parents.\n// 3. All afterUpdate callbacks, in order: parents before children. EXCEPT\n// for afterUpdates called during the initial onMount, which are called in\n// reverse order: children before parents.\n// Since callbacks might update component values, which could trigger another\n// call to flush(), the following steps guard against this:\n// 1. During beforeUpdate, any updated components will be added to the\n// dirty_components array and will cause a reentrant call to flush(). Because\n// the flush index is kept outside the function, the reentrant call will pick\n// up where the earlier call left off and go through all dirty components. The\n// current_component value is saved and restored so that the reentrant call will\n// not interfere with the \"parent\" flush() call.\n// 2. bind:this callbacks cannot trigger new flush() calls.\n// 3. During afterUpdate, any updated components will NOT have their afterUpdate\n// callback called a second time; the seen_callbacks set, outside the flush()\n// function, guarantees this behavior.\nconst seen_callbacks = new Set();\nlet flushidx = 0; // Do *not* move this inside the flush() function\nfunction flush() {\n const saved_component = current_component;\n do {\n // first, call beforeUpdate functions\n // and update components\n while (flushidx < dirty_components.length) {\n const component = dirty_components[flushidx];\n flushidx++;\n set_current_component(component);\n update(component.$$);\n }\n set_current_component(null);\n dirty_components.length = 0;\n flushidx = 0;\n while (binding_callbacks.length)\n binding_callbacks.pop()();\n // then, once components are updated, call\n // afterUpdate functions. This may cause\n // subsequent updates...\n for (let i = 0; i < render_callbacks.length; i += 1) {\n const callback = render_callbacks[i];\n if (!seen_callbacks.has(callback)) {\n // ...so guard against infinite loops\n seen_callbacks.add(callback);\n callback();\n }\n }\n render_callbacks.length = 0;\n } while (dirty_components.length);\n while (flush_callbacks.length) {\n flush_callbacks.pop()();\n }\n update_scheduled = false;\n seen_callbacks.clear();\n set_current_component(saved_component);\n}\nfunction update($$) {\n if ($$.fragment !== null) {\n $$.update();\n run_all($$.before_update);\n const dirty = $$.dirty;\n $$.dirty = [-1];\n $$.fragment && $$.fragment.p($$.ctx, dirty);\n $$.after_update.forEach(add_render_callback);\n }\n}\n\nlet promise;\nfunction wait() {\n if (!promise) {\n promise = Promise.resolve();\n promise.then(() => {\n promise = null;\n });\n }\n return promise;\n}\nfunction dispatch(node, direction, kind) {\n node.dispatchEvent(custom_event(`${direction ? 'intro' : 'outro'}${kind}`));\n}\nconst outroing = new Set();\nlet outros;\nfunction group_outros() {\n outros = {\n r: 0,\n c: [],\n p: outros // parent group\n };\n}\nfunction check_outros() {\n if (!outros.r) {\n run_all(outros.c);\n }\n outros = outros.p;\n}\nfunction transition_in(block, local) {\n if (block && block.i) {\n outroing.delete(block);\n block.i(local);\n }\n}\nfunction transition_out(block, local, detach, callback) {\n if (block && block.o) {\n if (outroing.has(block))\n return;\n outroing.add(block);\n outros.c.push(() => {\n outroing.delete(block);\n if (callback) {\n if (detach)\n block.d(1);\n callback();\n }\n });\n block.o(local);\n }\n else if (callback) {\n callback();\n }\n}\nconst null_transition = { duration: 0 };\nfunction create_in_transition(node, fn, params) {\n let config = fn(node, params);\n let running = false;\n let animation_name;\n let task;\n let uid = 0;\n function cleanup() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 0, 1, duration, delay, easing, css, uid++);\n tick(0, 1);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n if (task)\n task.abort();\n running = true;\n add_render_callback(() => dispatch(node, true, 'start'));\n task = loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(1, 0);\n dispatch(node, true, 'end');\n cleanup();\n return running = false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(t, 1 - t);\n }\n }\n return running;\n });\n }\n let started = false;\n return {\n start() {\n if (started)\n return;\n started = true;\n delete_rule(node);\n if (is_function(config)) {\n config = config();\n wait().then(go);\n }\n else {\n go();\n }\n },\n invalidate() {\n started = false;\n },\n end() {\n if (running) {\n cleanup();\n running = false;\n }\n }\n };\n}\nfunction create_out_transition(node, fn, params) {\n let config = fn(node, params);\n let running = true;\n let animation_name;\n const group = outros;\n group.r += 1;\n function go() {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n if (css)\n animation_name = create_rule(node, 1, 0, duration, delay, easing, css);\n const start_time = now() + delay;\n const end_time = start_time + duration;\n add_render_callback(() => dispatch(node, false, 'start'));\n loop(now => {\n if (running) {\n if (now >= end_time) {\n tick(0, 1);\n dispatch(node, false, 'end');\n if (!--group.r) {\n // this will result in `end()` being called,\n // so we don't need to clean up here\n run_all(group.c);\n }\n return false;\n }\n if (now >= start_time) {\n const t = easing((now - start_time) / duration);\n tick(1 - t, t);\n }\n }\n return running;\n });\n }\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go();\n });\n }\n else {\n go();\n }\n return {\n end(reset) {\n if (reset && config.tick) {\n config.tick(1, 0);\n }\n if (running) {\n if (animation_name)\n delete_rule(node, animation_name);\n running = false;\n }\n }\n };\n}\nfunction create_bidirectional_transition(node, fn, params, intro) {\n let config = fn(node, params);\n let t = intro ? 0 : 1;\n let running_program = null;\n let pending_program = null;\n let animation_name = null;\n function clear_animation() {\n if (animation_name)\n delete_rule(node, animation_name);\n }\n function init(program, duration) {\n const d = (program.b - t);\n duration *= Math.abs(d);\n return {\n a: t,\n b: program.b,\n d,\n duration,\n start: program.start,\n end: program.start + duration,\n group: program.group\n };\n }\n function go(b) {\n const { delay = 0, duration = 300, easing = identity, tick = noop, css } = config || null_transition;\n const program = {\n start: now() + delay,\n b\n };\n if (!b) {\n // @ts-ignore todo: improve typings\n program.group = outros;\n outros.r += 1;\n }\n if (running_program || pending_program) {\n pending_program = program;\n }\n else {\n // if this is an intro, and there's a delay, we need to do\n // an initial tick and/or apply CSS animation immediately\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, b, duration, delay, easing, css);\n }\n if (b)\n tick(0, 1);\n running_program = init(program, duration);\n add_render_callback(() => dispatch(node, b, 'start'));\n loop(now => {\n if (pending_program && now > pending_program.start) {\n running_program = init(pending_program, duration);\n pending_program = null;\n dispatch(node, running_program.b, 'start');\n if (css) {\n clear_animation();\n animation_name = create_rule(node, t, running_program.b, running_program.duration, 0, easing, config.css);\n }\n }\n if (running_program) {\n if (now >= running_program.end) {\n tick(t = running_program.b, 1 - t);\n dispatch(node, running_program.b, 'end');\n if (!pending_program) {\n // we're done\n if (running_program.b) {\n // intro — we can tidy up immediately\n clear_animation();\n }\n else {\n // outro — needs to be coordinated\n if (!--running_program.group.r)\n run_all(running_program.group.c);\n }\n }\n running_program = null;\n }\n else if (now >= running_program.start) {\n const p = now - running_program.start;\n t = running_program.a + running_program.d * easing(p / running_program.duration);\n tick(t, 1 - t);\n }\n }\n return !!(running_program || pending_program);\n });\n }\n }\n return {\n run(b) {\n if (is_function(config)) {\n wait().then(() => {\n // @ts-ignore\n config = config();\n go(b);\n });\n }\n else {\n go(b);\n }\n },\n end() {\n clear_animation();\n running_program = pending_program = null;\n }\n };\n}\n\nfunction handle_promise(promise, info) {\n const token = info.token = {};\n function update(type, index, key, value) {\n if (info.token !== token)\n return;\n info.resolved = value;\n let child_ctx = info.ctx;\n if (key !== undefined) {\n child_ctx = child_ctx.slice();\n child_ctx[key] = value;\n }\n const block = type && (info.current = type)(child_ctx);\n let needs_flush = false;\n if (info.block) {\n if (info.blocks) {\n info.blocks.forEach((block, i) => {\n if (i !== index && block) {\n group_outros();\n transition_out(block, 1, 1, () => {\n if (info.blocks[i] === block) {\n info.blocks[i] = null;\n }\n });\n check_outros();\n }\n });\n }\n else {\n info.block.d(1);\n }\n block.c();\n transition_in(block, 1);\n block.m(info.mount(), info.anchor);\n needs_flush = true;\n }\n info.block = block;\n if (info.blocks)\n info.blocks[index] = block;\n if (needs_flush) {\n flush();\n }\n }\n if (is_promise(promise)) {\n const current_component = get_current_component();\n promise.then(value => {\n set_current_component(current_component);\n update(info.then, 1, info.value, value);\n set_current_component(null);\n }, error => {\n set_current_component(current_component);\n update(info.catch, 2, info.error, error);\n set_current_component(null);\n if (!info.hasCatch) {\n throw error;\n }\n });\n // if we previously had a then/catch block, destroy it\n if (info.current !== info.pending) {\n update(info.pending, 0);\n return true;\n }\n }\n else {\n if (info.current !== info.then) {\n update(info.then, 1, info.value, promise);\n return true;\n }\n info.resolved = promise;\n }\n}\nfunction update_await_block_branch(info, ctx, dirty) {\n const child_ctx = ctx.slice();\n const { resolved } = info;\n if (info.current === info.then) {\n child_ctx[info.value] = resolved;\n }\n if (info.current === info.catch) {\n child_ctx[info.error] = resolved;\n }\n info.block.p(child_ctx, dirty);\n}\n\nconst globals = (typeof window !== 'undefined'\n ? window\n : typeof globalThis !== 'undefined'\n ? globalThis\n : global);\n\nfunction destroy_block(block, lookup) {\n block.d(1);\n lookup.delete(block.key);\n}\nfunction outro_and_destroy_block(block, lookup) {\n transition_out(block, 1, 1, () => {\n lookup.delete(block.key);\n });\n}\nfunction fix_and_destroy_block(block, lookup) {\n block.f();\n destroy_block(block, lookup);\n}\nfunction fix_and_outro_and_destroy_block(block, lookup) {\n block.f();\n outro_and_destroy_block(block, lookup);\n}\nfunction update_keyed_each(old_blocks, dirty, get_key, dynamic, ctx, list, lookup, node, destroy, create_each_block, next, get_context) {\n let o = old_blocks.length;\n let n = list.length;\n let i = o;\n const old_indexes = {};\n while (i--)\n old_indexes[old_blocks[i].key] = i;\n const new_blocks = [];\n const new_lookup = new Map();\n const deltas = new Map();\n i = n;\n while (i--) {\n const child_ctx = get_context(ctx, list, i);\n const key = get_key(child_ctx);\n let block = lookup.get(key);\n if (!block) {\n block = create_each_block(key, child_ctx);\n block.c();\n }\n else if (dynamic) {\n block.p(child_ctx, dirty);\n }\n new_lookup.set(key, new_blocks[i] = block);\n if (key in old_indexes)\n deltas.set(key, Math.abs(i - old_indexes[key]));\n }\n const will_move = new Set();\n const did_move = new Set();\n function insert(block) {\n transition_in(block, 1);\n block.m(node, next);\n lookup.set(block.key, block);\n next = block.first;\n n--;\n }\n while (o && n) {\n const new_block = new_blocks[n - 1];\n const old_block = old_blocks[o - 1];\n const new_key = new_block.key;\n const old_key = old_block.key;\n if (new_block === old_block) {\n // do nothing\n next = new_block.first;\n o--;\n n--;\n }\n else if (!new_lookup.has(old_key)) {\n // remove old block\n destroy(old_block, lookup);\n o--;\n }\n else if (!lookup.has(new_key) || will_move.has(new_key)) {\n insert(new_block);\n }\n else if (did_move.has(old_key)) {\n o--;\n }\n else if (deltas.get(new_key) > deltas.get(old_key)) {\n did_move.add(new_key);\n insert(new_block);\n }\n else {\n will_move.add(old_key);\n o--;\n }\n }\n while (o--) {\n const old_block = old_blocks[o];\n if (!new_lookup.has(old_block.key))\n destroy(old_block, lookup);\n }\n while (n)\n insert(new_blocks[n - 1]);\n return new_blocks;\n}\nfunction validate_each_keys(ctx, list, get_context, get_key) {\n const keys = new Set();\n for (let i = 0; i < list.length; i++) {\n const key = get_key(get_context(ctx, list, i));\n if (keys.has(key)) {\n throw new Error('Cannot have duplicate keys in a keyed each');\n }\n keys.add(key);\n }\n}\n\nfunction get_spread_update(levels, updates) {\n const update = {};\n const to_null_out = {};\n const accounted_for = { $$scope: 1 };\n let i = levels.length;\n while (i--) {\n const o = levels[i];\n const n = updates[i];\n if (n) {\n for (const key in o) {\n if (!(key in n))\n to_null_out[key] = 1;\n }\n for (const key in n) {\n if (!accounted_for[key]) {\n update[key] = n[key];\n accounted_for[key] = 1;\n }\n }\n levels[i] = n;\n }\n else {\n for (const key in o) {\n accounted_for[key] = 1;\n }\n }\n }\n for (const key in to_null_out) {\n if (!(key in update))\n update[key] = undefined;\n }\n return update;\n}\nfunction get_spread_object(spread_props) {\n return typeof spread_props === 'object' && spread_props !== null ? spread_props : {};\n}\n\n// source: https://html.spec.whatwg.org/multipage/indices.html\nconst boolean_attributes = new Set([\n 'allowfullscreen',\n 'allowpaymentrequest',\n 'async',\n 'autofocus',\n 'autoplay',\n 'checked',\n 'controls',\n 'default',\n 'defer',\n 'disabled',\n 'formnovalidate',\n 'hidden',\n 'ismap',\n 'loop',\n 'multiple',\n 'muted',\n 'nomodule',\n 'novalidate',\n 'open',\n 'playsinline',\n 'readonly',\n 'required',\n 'reversed',\n 'selected'\n]);\n\nconst void_element_names = /^(?:area|base|br|col|command|embed|hr|img|input|keygen|link|meta|param|source|track|wbr)$/;\nfunction is_void(name) {\n return void_element_names.test(name) || name.toLowerCase() === '!doctype';\n}\n\nconst invalid_attribute_name_character = /[\\s'\">/=\\u{FDD0}-\\u{FDEF}\\u{FFFE}\\u{FFFF}\\u{1FFFE}\\u{1FFFF}\\u{2FFFE}\\u{2FFFF}\\u{3FFFE}\\u{3FFFF}\\u{4FFFE}\\u{4FFFF}\\u{5FFFE}\\u{5FFFF}\\u{6FFFE}\\u{6FFFF}\\u{7FFFE}\\u{7FFFF}\\u{8FFFE}\\u{8FFFF}\\u{9FFFE}\\u{9FFFF}\\u{AFFFE}\\u{AFFFF}\\u{BFFFE}\\u{BFFFF}\\u{CFFFE}\\u{CFFFF}\\u{DFFFE}\\u{DFFFF}\\u{EFFFE}\\u{EFFFF}\\u{FFFFE}\\u{FFFFF}\\u{10FFFE}\\u{10FFFF}]/u;\n// https://html.spec.whatwg.org/multipage/syntax.html#attributes-2\n// https://infra.spec.whatwg.org/#noncharacter\nfunction spread(args, attrs_to_add) {\n const attributes = Object.assign({}, ...args);\n if (attrs_to_add) {\n const classes_to_add = attrs_to_add.classes;\n const styles_to_add = attrs_to_add.styles;\n if (classes_to_add) {\n if (attributes.class == null) {\n attributes.class = classes_to_add;\n }\n else {\n attributes.class += ' ' + classes_to_add;\n }\n }\n if (styles_to_add) {\n if (attributes.style == null) {\n attributes.style = style_object_to_string(styles_to_add);\n }\n else {\n attributes.style = style_object_to_string(merge_ssr_styles(attributes.style, styles_to_add));\n }\n }\n }\n let str = '';\n Object.keys(attributes).forEach(name => {\n if (invalid_attribute_name_character.test(name))\n return;\n const value = attributes[name];\n if (value === true)\n str += ' ' + name;\n else if (boolean_attributes.has(name.toLowerCase())) {\n if (value)\n str += ' ' + name;\n }\n else if (value != null) {\n str += ` ${name}=\"${value}\"`;\n }\n });\n return str;\n}\nfunction merge_ssr_styles(style_attribute, style_directive) {\n const style_object = {};\n for (const individual_style of style_attribute.split(';')) {\n const colon_index = individual_style.indexOf(':');\n const name = individual_style.slice(0, colon_index).trim();\n const value = individual_style.slice(colon_index + 1).trim();\n if (!name)\n continue;\n style_object[name] = value;\n }\n for (const name in style_directive) {\n const value = style_directive[name];\n if (value) {\n style_object[name] = value;\n }\n else {\n delete style_object[name];\n }\n }\n return style_object;\n}\nconst ATTR_REGEX = /[&\"]/g;\nconst CONTENT_REGEX = /[&<]/g;\n/**\n * Note: this method is performance sensitive and has been optimized\n * https://github.com/sveltejs/svelte/pull/5701\n */\nfunction escape(value, is_attr = false) {\n const str = String(value);\n const pattern = is_attr ? ATTR_REGEX : CONTENT_REGEX;\n pattern.lastIndex = 0;\n let escaped = '';\n let last = 0;\n while (pattern.test(str)) {\n const i = pattern.lastIndex - 1;\n const ch = str[i];\n escaped += str.substring(last, i) + (ch === '&' ? '&' : (ch === '\"' ? '"' : '<'));\n last = i + 1;\n }\n return escaped + str.substring(last);\n}\nfunction escape_attribute_value(value) {\n // keep booleans, null, and undefined for the sake of `spread`\n const should_escape = typeof value === 'string' || (value && typeof value === 'object');\n return should_escape ? escape(value, true) : value;\n}\nfunction escape_object(obj) {\n const result = {};\n for (const key in obj) {\n result[key] = escape_attribute_value(obj[key]);\n }\n return result;\n}\nfunction each(items, fn) {\n let str = '';\n for (let i = 0; i < items.length; i += 1) {\n str += fn(items[i], i);\n }\n return str;\n}\nconst missing_component = {\n $$render: () => ''\n};\nfunction validate_component(component, name) {\n if (!component || !component.$$render) {\n if (name === 'svelte:component')\n name += ' this={...}';\n throw new Error(`<${name}> is not a valid SSR component. You may need to review your build config to ensure that dependencies are compiled, rather than imported as pre-compiled modules`);\n }\n return component;\n}\nfunction debug(file, line, column, values) {\n console.log(`{@debug} ${file ? file + ' ' : ''}(${line}:${column})`); // eslint-disable-line no-console\n console.log(values); // eslint-disable-line no-console\n return '';\n}\nlet on_destroy;\nfunction create_ssr_component(fn) {\n function $$render(result, props, bindings, slots, context) {\n const parent_component = current_component;\n const $$ = {\n on_destroy,\n context: new Map(context || (parent_component ? parent_component.$$.context : [])),\n // these will be immediately discarded\n on_mount: [],\n before_update: [],\n after_update: [],\n callbacks: blank_object()\n };\n set_current_component({ $$ });\n const html = fn(result, props, bindings, slots);\n set_current_component(parent_component);\n return html;\n }\n return {\n render: (props = {}, { $$slots = {}, context = new Map() } = {}) => {\n on_destroy = [];\n const result = { title: '', head: '', css: new Set() };\n const html = $$render(result, props, {}, $$slots, context);\n run_all(on_destroy);\n return {\n html,\n css: {\n code: Array.from(result.css).map(css => css.code).join('\\n'),\n map: null // TODO\n },\n head: result.title + result.head\n };\n },\n $$render\n };\n}\nfunction add_attribute(name, value, boolean) {\n if (value == null || (boolean && !value))\n return '';\n const assignment = (boolean && value === true) ? '' : `=\"${escape(value, true)}\"`;\n return ` ${name}${assignment}`;\n}\nfunction add_classes(classes) {\n return classes ? ` class=\"${classes}\"` : '';\n}\nfunction style_object_to_string(style_object) {\n return Object.keys(style_object)\n .filter(key => style_object[key])\n .map(key => `${key}: ${style_object[key]};`)\n .join(' ');\n}\nfunction add_styles(style_object) {\n const styles = style_object_to_string(style_object);\n return styles ? ` style=\"${styles}\"` : '';\n}\n\nfunction bind(component, name, callback) {\n const index = component.$$.props[name];\n if (index !== undefined) {\n component.$$.bound[index] = callback;\n callback(component.$$.ctx[index]);\n }\n}\nfunction create_component(block) {\n block && block.c();\n}\nfunction claim_component(block, parent_nodes) {\n block && block.l(parent_nodes);\n}\nfunction mount_component(component, target, anchor, customElement) {\n const { fragment, on_mount, on_destroy, after_update } = component.$$;\n fragment && fragment.m(target, anchor);\n if (!customElement) {\n // onMount happens before the initial afterUpdate\n add_render_callback(() => {\n const new_on_destroy = on_mount.map(run).filter(is_function);\n if (on_destroy) {\n on_destroy.push(...new_on_destroy);\n }\n else {\n // Edge case - component was destroyed immediately,\n // most likely as a result of a binding initialising\n run_all(new_on_destroy);\n }\n component.$$.on_mount = [];\n });\n }\n after_update.forEach(add_render_callback);\n}\nfunction destroy_component(component, detaching) {\n const $$ = component.$$;\n if ($$.fragment !== null) {\n run_all($$.on_destroy);\n $$.fragment && $$.fragment.d(detaching);\n // TODO null out other refs, including component.$$ (but need to\n // preserve final state?)\n $$.on_destroy = $$.fragment = null;\n $$.ctx = [];\n }\n}\nfunction make_dirty(component, i) {\n if (component.$$.dirty[0] === -1) {\n dirty_components.push(component);\n schedule_update();\n component.$$.dirty.fill(0);\n }\n component.$$.dirty[(i / 31) | 0] |= (1 << (i % 31));\n}\nfunction init(component, options, instance, create_fragment, not_equal, props, append_styles, dirty = [-1]) {\n const parent_component = current_component;\n set_current_component(component);\n const $$ = component.$$ = {\n fragment: null,\n ctx: null,\n // state\n props,\n update: noop,\n not_equal,\n bound: blank_object(),\n // lifecycle\n on_mount: [],\n on_destroy: [],\n on_disconnect: [],\n before_update: [],\n after_update: [],\n context: new Map(options.context || (parent_component ? parent_component.$$.context : [])),\n // everything else\n callbacks: blank_object(),\n dirty,\n skip_bound: false,\n root: options.target || parent_component.$$.root\n };\n append_styles && append_styles($$.root);\n let ready = false;\n $$.ctx = instance\n ? instance(component, options.props || {}, (i, ret, ...rest) => {\n const value = rest.length ? rest[0] : ret;\n if ($$.ctx && not_equal($$.ctx[i], $$.ctx[i] = value)) {\n if (!$$.skip_bound && $$.bound[i])\n $$.bound[i](value);\n if (ready)\n make_dirty(component, i);\n }\n return ret;\n })\n : [];\n $$.update();\n ready = true;\n run_all($$.before_update);\n // `false` as a special case of no DOM component\n $$.fragment = create_fragment ? create_fragment($$.ctx) : false;\n if (options.target) {\n if (options.hydrate) {\n start_hydrating();\n const nodes = children(options.target);\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.l(nodes);\n nodes.forEach(detach);\n }\n else {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n $$.fragment && $$.fragment.c();\n }\n if (options.intro)\n transition_in(component.$$.fragment);\n mount_component(component, options.target, options.anchor, options.customElement);\n end_hydrating();\n flush();\n }\n set_current_component(parent_component);\n}\nlet SvelteElement;\nif (typeof HTMLElement === 'function') {\n SvelteElement = class extends HTMLElement {\n constructor() {\n super();\n this.attachShadow({ mode: 'open' });\n }\n connectedCallback() {\n const { on_mount } = this.$$;\n this.$$.on_disconnect = on_mount.map(run).filter(is_function);\n // @ts-ignore todo: improve typings\n for (const key in this.$$.slotted) {\n // @ts-ignore todo: improve typings\n this.appendChild(this.$$.slotted[key]);\n }\n }\n attributeChangedCallback(attr, _oldValue, newValue) {\n this[attr] = newValue;\n }\n disconnectedCallback() {\n run_all(this.$$.on_disconnect);\n }\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n // TODO should this delegate to addEventListener?\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n };\n}\n/**\n * Base class for Svelte components. Used when dev=false.\n */\nclass SvelteComponent {\n $destroy() {\n destroy_component(this, 1);\n this.$destroy = noop;\n }\n $on(type, callback) {\n const callbacks = (this.$$.callbacks[type] || (this.$$.callbacks[type] = []));\n callbacks.push(callback);\n return () => {\n const index = callbacks.indexOf(callback);\n if (index !== -1)\n callbacks.splice(index, 1);\n };\n }\n $set($$props) {\n if (this.$$set && !is_empty($$props)) {\n this.$$.skip_bound = true;\n this.$$set($$props);\n this.$$.skip_bound = false;\n }\n }\n}\n\nfunction dispatch_dev(type, detail) {\n document.dispatchEvent(custom_event(type, Object.assign({ version: '3.49.0' }, detail), { bubbles: true }));\n}\nfunction append_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append(target, node);\n}\nfunction append_hydration_dev(target, node) {\n dispatch_dev('SvelteDOMInsert', { target, node });\n append_hydration(target, node);\n}\nfunction insert_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert(target, node, anchor);\n}\nfunction insert_hydration_dev(target, node, anchor) {\n dispatch_dev('SvelteDOMInsert', { target, node, anchor });\n insert_hydration(target, node, anchor);\n}\nfunction detach_dev(node) {\n dispatch_dev('SvelteDOMRemove', { node });\n detach(node);\n}\nfunction detach_between_dev(before, after) {\n while (before.nextSibling && before.nextSibling !== after) {\n detach_dev(before.nextSibling);\n }\n}\nfunction detach_before_dev(after) {\n while (after.previousSibling) {\n detach_dev(after.previousSibling);\n }\n}\nfunction detach_after_dev(before) {\n while (before.nextSibling) {\n detach_dev(before.nextSibling);\n }\n}\nfunction listen_dev(node, event, handler, options, has_prevent_default, has_stop_propagation) {\n const modifiers = options === true ? ['capture'] : options ? Array.from(Object.keys(options)) : [];\n if (has_prevent_default)\n modifiers.push('preventDefault');\n if (has_stop_propagation)\n modifiers.push('stopPropagation');\n dispatch_dev('SvelteDOMAddEventListener', { node, event, handler, modifiers });\n const dispose = listen(node, event, handler, options);\n return () => {\n dispatch_dev('SvelteDOMRemoveEventListener', { node, event, handler, modifiers });\n dispose();\n };\n}\nfunction attr_dev(node, attribute, value) {\n attr(node, attribute, value);\n if (value == null)\n dispatch_dev('SvelteDOMRemoveAttribute', { node, attribute });\n else\n dispatch_dev('SvelteDOMSetAttribute', { node, attribute, value });\n}\nfunction prop_dev(node, property, value) {\n node[property] = value;\n dispatch_dev('SvelteDOMSetProperty', { node, property, value });\n}\nfunction dataset_dev(node, property, value) {\n node.dataset[property] = value;\n dispatch_dev('SvelteDOMSetDataset', { node, property, value });\n}\nfunction set_data_dev(text, data) {\n data = '' + data;\n if (text.wholeText === data)\n return;\n dispatch_dev('SvelteDOMSetData', { node: text, data });\n text.data = data;\n}\nfunction validate_each_argument(arg) {\n if (typeof arg !== 'string' && !(arg && typeof arg === 'object' && 'length' in arg)) {\n let msg = '{#each} only iterates over array-like objects.';\n if (typeof Symbol === 'function' && arg && Symbol.iterator in arg) {\n msg += ' You can use a spread to convert this iterable into an array.';\n }\n throw new Error(msg);\n }\n}\nfunction validate_slots(name, slot, keys) {\n for (const slot_key of Object.keys(slot)) {\n if (!~keys.indexOf(slot_key)) {\n console.warn(`<${name}> received an unexpected slot \"${slot_key}\".`);\n }\n }\n}\nfunction validate_dynamic_element(tag) {\n const is_string = typeof tag === 'string';\n if (tag && !is_string) {\n throw new Error(' expects \"this\" attribute to be a string.');\n }\n}\nfunction validate_void_dynamic_element(tag) {\n if (tag && is_void(tag)) {\n throw new Error(` is self-closing and cannot have content.`);\n }\n}\n/**\n * Base class for Svelte components with some minor dev-enhancements. Used when dev=true.\n */\nclass SvelteComponentDev extends SvelteComponent {\n constructor(options) {\n if (!options || (!options.target && !options.$$inline)) {\n throw new Error(\"'target' is a required option\");\n }\n super();\n }\n $destroy() {\n super.$destroy();\n this.$destroy = () => {\n console.warn('Component was already destroyed'); // eslint-disable-line no-console\n };\n }\n $capture_state() { }\n $inject_state() { }\n}\n/**\n * Base class to create strongly typed Svelte components.\n * This only exists for typing purposes and should be used in `.d.ts` files.\n *\n * ### Example:\n *\n * You have component library on npm called `component-library`, from which\n * you export a component called `MyComponent`. For Svelte+TypeScript users,\n * you want to provide typings. Therefore you create a `index.d.ts`:\n * ```ts\n * import { SvelteComponentTyped } from \"svelte\";\n * export class MyComponent extends SvelteComponentTyped<{foo: string}> {}\n * ```\n * Typing this makes it possible for IDEs like VS Code with the Svelte extension\n * to provide intellisense and to use the component like this in a Svelte file\n * with TypeScript:\n * ```svelte\n * \n * \n * ```\n *\n * #### Why not make this part of `SvelteComponent(Dev)`?\n * Because\n * ```ts\n * class ASubclassOfSvelteComponent extends SvelteComponent<{foo: string}> {}\n * const component: typeof SvelteComponent = ASubclassOfSvelteComponent;\n * ```\n * will throw a type error, so we need to separate the more strictly typed class.\n */\nclass SvelteComponentTyped extends SvelteComponentDev {\n constructor(options) {\n super(options);\n }\n}\nfunction loop_guard(timeout) {\n const start = Date.now();\n return () => {\n if (Date.now() - start > timeout) {\n throw new Error('Infinite loop detected');\n }\n };\n}\n\nexport { HtmlTag, HtmlTagHydration, SvelteComponent, SvelteComponentDev, SvelteComponentTyped, SvelteElement, action_destroyer, add_attribute, add_classes, add_flush_callback, add_location, add_render_callback, add_resize_listener, add_styles, add_transform, afterUpdate, append, append_dev, append_empty_stylesheet, append_hydration, append_hydration_dev, append_styles, assign, attr, attr_dev, attribute_to_object, beforeUpdate, bind, binding_callbacks, blank_object, bubble, check_outros, children, claim_component, claim_element, claim_html_tag, claim_space, claim_svg_element, claim_text, clear_loops, component_subscribe, compute_rest_props, compute_slots, createEventDispatcher, create_animation, create_bidirectional_transition, create_component, create_in_transition, create_out_transition, create_slot, create_ssr_component, current_component, custom_event, dataset_dev, debug, destroy_block, destroy_component, destroy_each, detach, detach_after_dev, detach_before_dev, detach_between_dev, detach_dev, dirty_components, dispatch_dev, each, element, element_is, empty, end_hydrating, escape, escape_attribute_value, escape_object, exclude_internal_props, fix_and_destroy_block, fix_and_outro_and_destroy_block, fix_position, flush, getAllContexts, getContext, get_all_dirty_from_scope, get_binding_group_value, get_current_component, get_custom_elements_slots, get_root_for_style, get_slot_changes, get_spread_object, get_spread_update, get_store_value, globals, group_outros, handle_promise, hasContext, has_prop, identity, init, insert, insert_dev, insert_hydration, insert_hydration_dev, intros, invalid_attribute_name_character, is_client, is_crossorigin, is_empty, is_function, is_promise, is_void, listen, listen_dev, loop, loop_guard, merge_ssr_styles, missing_component, mount_component, noop, not_equal, now, null_to_empty, object_without_properties, onDestroy, onMount, once, outro_and_destroy_block, prevent_default, prop_dev, query_selector_all, raf, run, run_all, safe_not_equal, schedule_update, select_multiple_value, select_option, select_options, select_value, self, setContext, set_attributes, set_current_component, set_custom_element_data, set_data, set_data_dev, set_input_type, set_input_value, set_now, set_raf, set_store_value, set_style, set_svg_attributes, space, spread, src_url_equal, start_hydrating, stop_propagation, subscribe, svg_element, text, tick, time_ranges_to_array, to_number, toggle_class, transition_in, transition_out, trusted, update_await_block_branch, update_keyed_each, update_slot, update_slot_base, validate_component, validate_dynamic_element, validate_each_argument, validate_each_keys, validate_slots, validate_store, validate_void_dynamic_element, xlink_attr };\n","import { noop, safe_not_equal, subscribe, run_all, is_function } from '../internal/index.mjs';\nexport { get_store_value as get } from '../internal/index.mjs';\n\nconst subscriber_queue = [];\n/**\n * Creates a `Readable` store that allows reading by subscription.\n * @param value initial value\n * @param {StartStopNotifier}start start and stop notifications for subscriptions\n */\nfunction readable(value, start) {\n return {\n subscribe: writable(value, start).subscribe\n };\n}\n/**\n * Create a `Writable` store that allows both updating and reading by subscription.\n * @param {*=}value initial value\n * @param {StartStopNotifier=}start start and stop notifications for subscriptions\n */\nfunction writable(value, start = noop) {\n let stop;\n const subscribers = new Set();\n function set(new_value) {\n if (safe_not_equal(value, new_value)) {\n value = new_value;\n if (stop) { // store is ready\n const run_queue = !subscriber_queue.length;\n for (const subscriber of subscribers) {\n subscriber[1]();\n subscriber_queue.push(subscriber, value);\n }\n if (run_queue) {\n for (let i = 0; i < subscriber_queue.length; i += 2) {\n subscriber_queue[i][0](subscriber_queue[i + 1]);\n }\n subscriber_queue.length = 0;\n }\n }\n }\n }\n function update(fn) {\n set(fn(value));\n }\n function subscribe(run, invalidate = noop) {\n const subscriber = [run, invalidate];\n subscribers.add(subscriber);\n if (subscribers.size === 1) {\n stop = start(set) || noop;\n }\n run(value);\n return () => {\n subscribers.delete(subscriber);\n if (subscribers.size === 0) {\n stop();\n stop = null;\n }\n };\n }\n return { set, update, subscribe };\n}\nfunction derived(stores, fn, initial_value) {\n const single = !Array.isArray(stores);\n const stores_array = single\n ? [stores]\n : stores;\n const auto = fn.length < 2;\n return readable(initial_value, (set) => {\n let inited = false;\n const values = [];\n let pending = 0;\n let cleanup = noop;\n const sync = () => {\n if (pending) {\n return;\n }\n cleanup();\n const result = fn(single ? values[0] : values, set);\n if (auto) {\n set(result);\n }\n else {\n cleanup = is_function(result) ? result : noop;\n }\n };\n const unsubscribers = stores_array.map((store, i) => subscribe(store, (value) => {\n values[i] = value;\n pending &= ~(1 << i);\n if (inited) {\n sync();\n }\n }, () => {\n pending |= (1 << i);\n }));\n inited = true;\n sync();\n return function stop() {\n run_all(unsubscribers);\n cleanup();\n };\n });\n}\n\nexport { derived, readable, writable };\n","import { cubicInOut, linear, cubicOut } from '../easing/index.mjs';\nimport { is_function, assign } from '../internal/index.mjs';\n\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\n\nfunction blur(node, { delay = 0, duration = 400, easing = cubicInOut, amount = 5, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const f = style.filter === 'none' ? '' : style.filter;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `opacity: ${target_opacity - (od * u)}; filter: ${f} blur(${u * amount}px);`\n };\n}\nfunction fade(node, { delay = 0, duration = 400, easing = linear } = {}) {\n const o = +getComputedStyle(node).opacity;\n return {\n delay,\n duration,\n easing,\n css: t => `opacity: ${t * o}`\n };\n}\nfunction fly(node, { delay = 0, duration = 400, easing = cubicOut, x = 0, y = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `\n\t\t\ttransform: ${transform} translate(${(1 - t) * x}px, ${(1 - t) * y}px);\n\t\t\topacity: ${target_opacity - (od * u)}`\n };\n}\nfunction slide(node, { delay = 0, duration = 400, easing = cubicOut } = {}) {\n const style = getComputedStyle(node);\n const opacity = +style.opacity;\n const height = parseFloat(style.height);\n const padding_top = parseFloat(style.paddingTop);\n const padding_bottom = parseFloat(style.paddingBottom);\n const margin_top = parseFloat(style.marginTop);\n const margin_bottom = parseFloat(style.marginBottom);\n const border_top_width = parseFloat(style.borderTopWidth);\n const border_bottom_width = parseFloat(style.borderBottomWidth);\n return {\n delay,\n duration,\n easing,\n css: t => 'overflow: hidden;' +\n `opacity: ${Math.min(t * 20, 1) * opacity};` +\n `height: ${t * height}px;` +\n `padding-top: ${t * padding_top}px;` +\n `padding-bottom: ${t * padding_bottom}px;` +\n `margin-top: ${t * margin_top}px;` +\n `margin-bottom: ${t * margin_bottom}px;` +\n `border-top-width: ${t * border_top_width}px;` +\n `border-bottom-width: ${t * border_bottom_width}px;`\n };\n}\nfunction scale(node, { delay = 0, duration = 400, easing = cubicOut, start = 0, opacity = 0 } = {}) {\n const style = getComputedStyle(node);\n const target_opacity = +style.opacity;\n const transform = style.transform === 'none' ? '' : style.transform;\n const sd = 1 - start;\n const od = target_opacity * (1 - opacity);\n return {\n delay,\n duration,\n easing,\n css: (_t, u) => `\n\t\t\ttransform: ${transform} scale(${1 - (sd * u)});\n\t\t\topacity: ${target_opacity - (od * u)}\n\t\t`\n };\n}\nfunction draw(node, { delay = 0, speed, duration, easing = cubicInOut } = {}) {\n let len = node.getTotalLength();\n const style = getComputedStyle(node);\n if (style.strokeLinecap !== 'butt') {\n len += parseInt(style.strokeWidth);\n }\n if (duration === undefined) {\n if (speed === undefined) {\n duration = 800;\n }\n else {\n duration = len / speed;\n }\n }\n else if (typeof duration === 'function') {\n duration = duration(len);\n }\n return {\n delay,\n duration,\n easing,\n css: (t, u) => `stroke-dasharray: ${t * len} ${u * len}`\n };\n}\nfunction crossfade(_a) {\n var { fallback } = _a, defaults = __rest(_a, [\"fallback\"]);\n const to_receive = new Map();\n const to_send = new Map();\n function crossfade(from, node, params) {\n const { delay = 0, duration = d => Math.sqrt(d) * 30, easing = cubicOut } = assign(assign({}, defaults), params);\n const to = node.getBoundingClientRect();\n const dx = from.left - to.left;\n const dy = from.top - to.top;\n const dw = from.width / to.width;\n const dh = from.height / to.height;\n const d = Math.sqrt(dx * dx + dy * dy);\n const style = getComputedStyle(node);\n const transform = style.transform === 'none' ? '' : style.transform;\n const opacity = +style.opacity;\n return {\n delay,\n duration: is_function(duration) ? duration(d) : duration,\n easing,\n css: (t, u) => `\n\t\t\t\topacity: ${t * opacity};\n\t\t\t\ttransform-origin: top left;\n\t\t\t\ttransform: ${transform} translate(${u * dx}px,${u * dy}px) scale(${t + (1 - t) * dw}, ${t + (1 - t) * dh});\n\t\t\t`\n };\n }\n function transition(items, counterparts, intro) {\n return (node, params) => {\n items.set(params.key, {\n rect: node.getBoundingClientRect()\n });\n return () => {\n if (counterparts.has(params.key)) {\n const { rect } = counterparts.get(params.key);\n counterparts.delete(params.key);\n return crossfade(rect, node, params);\n }\n // if the node is disappearing altogether\n // (i.e. wasn't claimed by the other list)\n // then we need to supply an outro\n items.delete(params.key);\n return fallback && fallback(node, params, intro);\n };\n };\n }\n return [\n transition(to_send, to_receive, false),\n transition(to_receive, to_send, true)\n ];\n}\n\nexport { blur, crossfade, draw, fade, fly, scale, slide };\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","__webpack_require__.F = {};\n__webpack_require__.E = (chunkId) => {\n\tObject.keys(__webpack_require__.F).map((key) => {\n\t\t__webpack_require__.F[key](chunkId);\n\t});\n}","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".js\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.hmd = (module) => {\n\tmodule = Object.create(module);\n\tif (!module.children) module.children = [];\n\tObject.defineProperty(module, 'exports', {\n\t\tenumerable: true,\n\t\tset: () => {\n\t\t\tthrow new Error('ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: ' + module.id);\n\t\t}\n\t});\n\treturn module;\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","var inProgress = {};\nvar dataWebpackPrefix = \"hfy-epub:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\t;\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t\"main\": 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n__webpack_require__.F.j = (chunkId) => {\n\tif((!__webpack_require__.o(installedChunks, chunkId) || installedChunks[chunkId] === undefined) && true) {\n\t\tinstalledChunks[chunkId] = null;\n\t\tvar link = document.createElement('link');\n\n\t\tif (__webpack_require__.nc) {\n\t\t\tlink.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tlink.rel = \"prefetch\";\n\t\tlink.as = \"script\";\n\t\tlink.href = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\tdocument.head.appendChild(link);\n\t}\n};\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkhfy_epub\"] = self[\"webpackChunkhfy_epub\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.O(0, [\"main\"], () => {\n\t__webpack_require__.E(\"vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js\");\n\t__webpack_require__.E(\"_c581\");\n}, 5);","import App from \"./App.svelte\";\nlet app;\ntry {\n app = new App({\n target: document.body,\n });\n} catch (err) {\n const errorNode = document.createElement('div');\n errorNode.className = 'fatal-error';\n errorNode.ariaLabel = 'error';\n errorNode.appendChild(document.createElement('h1')).textContent = 'Something went wrong:';\n errorNode.appendChild(document.createElement('code')).textContent = err;\n document.body.appendChild(errorNode);\n}\nexport default app;\n"],"names":[],"sourceRoot":""} \ No newline at end of file diff --git a/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js b/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js new file mode 100644 index 0000000..26460a0 --- /dev/null +++ b/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js @@ -0,0 +1,8694 @@ +(self["webpackChunkhfy_epub"] = self["webpackChunkhfy_epub"] || []).push([["vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js"],{ + +/***/ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js": +/*!***********************************************************************************************!*\ + !*** ./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js ***! + \***********************************************************************************************/ +/***/ ((module, exports) => { + +"use strict"; + +/// +/// +/// +Object.defineProperty(exports, "__esModule", ({ value: true })); +const typedArrayTypeNames = [ + 'Int8Array', + 'Uint8Array', + 'Uint8ClampedArray', + 'Int16Array', + 'Uint16Array', + 'Int32Array', + 'Uint32Array', + 'Float32Array', + 'Float64Array', + 'BigInt64Array', + 'BigUint64Array' +]; +function isTypedArrayName(name) { + return typedArrayTypeNames.includes(name); +} +const objectTypeNames = [ + 'Function', + 'Generator', + 'AsyncGenerator', + 'GeneratorFunction', + 'AsyncGeneratorFunction', + 'AsyncFunction', + 'Observable', + 'Array', + 'Buffer', + 'Object', + 'RegExp', + 'Date', + 'Error', + 'Map', + 'Set', + 'WeakMap', + 'WeakSet', + 'ArrayBuffer', + 'SharedArrayBuffer', + 'DataView', + 'Promise', + 'URL', + 'FormData', + 'URLSearchParams', + 'HTMLElement', + ...typedArrayTypeNames +]; +function isObjectTypeName(name) { + return objectTypeNames.includes(name); +} +const primitiveTypeNames = [ + 'null', + 'undefined', + 'string', + 'number', + 'bigint', + 'boolean', + 'symbol' +]; +function isPrimitiveTypeName(name) { + return primitiveTypeNames.includes(name); +} +// eslint-disable-next-line @typescript-eslint/ban-types +function isOfType(type) { + return (value) => typeof value === type; +} +const { toString } = Object.prototype; +const getObjectType = (value) => { + const objectTypeName = toString.call(value).slice(8, -1); + if (/HTML\w+Element/.test(objectTypeName) && is.domElement(value)) { + return 'HTMLElement'; + } + if (isObjectTypeName(objectTypeName)) { + return objectTypeName; + } + return undefined; +}; +const isObjectOfType = (type) => (value) => getObjectType(value) === type; +function is(value) { + if (value === null) { + return 'null'; + } + switch (typeof value) { + case 'undefined': + return 'undefined'; + case 'string': + return 'string'; + case 'number': + return 'number'; + case 'boolean': + return 'boolean'; + case 'function': + return 'Function'; + case 'bigint': + return 'bigint'; + case 'symbol': + return 'symbol'; + default: + } + if (is.observable(value)) { + return 'Observable'; + } + if (is.array(value)) { + return 'Array'; + } + if (is.buffer(value)) { + return 'Buffer'; + } + const tagType = getObjectType(value); + if (tagType) { + return tagType; + } + if (value instanceof String || value instanceof Boolean || value instanceof Number) { + throw new TypeError('Please don\'t use object wrappers for primitive types'); + } + return 'Object'; +} +is.undefined = isOfType('undefined'); +is.string = isOfType('string'); +const isNumberType = isOfType('number'); +is.number = (value) => isNumberType(value) && !is.nan(value); +is.bigint = isOfType('bigint'); +// eslint-disable-next-line @typescript-eslint/ban-types +is.function_ = isOfType('function'); +is.null_ = (value) => value === null; +is.class_ = (value) => is.function_(value) && value.toString().startsWith('class '); +is.boolean = (value) => value === true || value === false; +is.symbol = isOfType('symbol'); +is.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value)); +is.array = (value, assertion) => { + if (!Array.isArray(value)) { + return false; + } + if (!is.function_(assertion)) { + return true; + } + return value.every(assertion); +}; +is.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; }; +is.nullOrUndefined = (value) => is.null_(value) || is.undefined(value); +is.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value)); +is.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); }; +is.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); }; +is.generator = (value) => is.iterable(value) && is.function_(value.next) && is.function_(value.throw); +is.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw); +is.nativePromise = (value) => isObjectOfType('Promise')(value); +const hasPromiseAPI = (value) => { + var _a, _b; + return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) && + is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch); +}; +is.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value); +is.generatorFunction = isObjectOfType('GeneratorFunction'); +is.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction'; +is.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction'; +// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types +is.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype'); +is.regExp = isObjectOfType('RegExp'); +is.date = isObjectOfType('Date'); +is.error = isObjectOfType('Error'); +is.map = (value) => isObjectOfType('Map')(value); +is.set = (value) => isObjectOfType('Set')(value); +is.weakMap = (value) => isObjectOfType('WeakMap')(value); +is.weakSet = (value) => isObjectOfType('WeakSet')(value); +is.int8Array = isObjectOfType('Int8Array'); +is.uint8Array = isObjectOfType('Uint8Array'); +is.uint8ClampedArray = isObjectOfType('Uint8ClampedArray'); +is.int16Array = isObjectOfType('Int16Array'); +is.uint16Array = isObjectOfType('Uint16Array'); +is.int32Array = isObjectOfType('Int32Array'); +is.uint32Array = isObjectOfType('Uint32Array'); +is.float32Array = isObjectOfType('Float32Array'); +is.float64Array = isObjectOfType('Float64Array'); +is.bigInt64Array = isObjectOfType('BigInt64Array'); +is.bigUint64Array = isObjectOfType('BigUint64Array'); +is.arrayBuffer = isObjectOfType('ArrayBuffer'); +is.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer'); +is.dataView = isObjectOfType('DataView'); +is.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype; +is.urlInstance = (value) => isObjectOfType('URL')(value); +is.urlString = (value) => { + if (!is.string(value)) { + return false; + } + try { + new URL(value); // eslint-disable-line no-new + return true; + } + catch (_a) { + return false; + } +}; +// TODO: Use the `not` operator with a type guard here when it's available. +// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);` +is.truthy = (value) => Boolean(value); +// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);` +is.falsy = (value) => !value; +is.nan = (value) => Number.isNaN(value); +is.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value); +is.integer = (value) => Number.isInteger(value); +is.safeInteger = (value) => Number.isSafeInteger(value); +is.plainObject = (value) => { + // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js + if (toString.call(value) !== '[object Object]') { + return false; + } + const prototype = Object.getPrototypeOf(value); + return prototype === null || prototype === Object.getPrototypeOf({}); +}; +is.typedArray = (value) => isTypedArrayName(getObjectType(value)); +const isValidLength = (value) => is.safeInteger(value) && value >= 0; +is.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length); +is.inRange = (value, range) => { + if (is.number(range)) { + return value >= Math.min(0, range) && value <= Math.max(range, 0); + } + if (is.array(range) && range.length === 2) { + return value >= Math.min(...range) && value <= Math.max(...range); + } + throw new TypeError(`Invalid range: ${JSON.stringify(range)}`); +}; +const NODE_TYPE_ELEMENT = 1; +const DOM_PROPERTIES_TO_CHECK = [ + 'innerHTML', + 'ownerDocument', + 'style', + 'attributes', + 'nodeValue' +]; +is.domElement = (value) => { + return is.object(value) && + value.nodeType === NODE_TYPE_ELEMENT && + is.string(value.nodeName) && + !is.plainObject(value) && + DOM_PROPERTIES_TO_CHECK.every(property => property in value); +}; +is.observable = (value) => { + var _a, _b, _c, _d; + if (!value) { + return false; + } + // eslint-disable-next-line no-use-extend-native/no-use-extend-native + if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) { + return true; + } + if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) { + return true; + } + return false; +}; +is.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value); +is.infinite = (value) => value === Infinity || value === -Infinity; +const isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder; +is.evenInteger = isAbsoluteMod2(0); +is.oddInteger = isAbsoluteMod2(1); +is.emptyArray = (value) => is.array(value) && value.length === 0; +is.nonEmptyArray = (value) => is.array(value) && value.length > 0; +is.emptyString = (value) => is.string(value) && value.length === 0; +// TODO: Use `not ''` when the `not` operator is available. +is.nonEmptyString = (value) => is.string(value) && value.length > 0; +const isWhiteSpaceString = (value) => is.string(value) && !/\S/.test(value); +is.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value); +is.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0; +// TODO: Use `not` operator here to remove `Map` and `Set` from type guard: +// - https://github.com/Microsoft/TypeScript/pull/29317 +is.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0; +is.emptySet = (value) => is.set(value) && value.size === 0; +is.nonEmptySet = (value) => is.set(value) && value.size > 0; +is.emptyMap = (value) => is.map(value) && value.size === 0; +is.nonEmptyMap = (value) => is.map(value) && value.size > 0; +// `PropertyKey` is any value that can be used as an object key (string, number, or symbol) +is.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value); +is.formData = (value) => isObjectOfType('FormData')(value); +is.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value); +const predicateOnArray = (method, predicate, values) => { + if (!is.function_(predicate)) { + throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`); + } + if (values.length === 0) { + throw new TypeError('Invalid number of values'); + } + return method.call(values, predicate); +}; +is.any = (predicate, ...values) => { + const predicates = is.array(predicate) ? predicate : [predicate]; + return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values)); +}; +is.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values); +const assertType = (condition, description, value, options = {}) => { + if (!condition) { + const { multipleValues } = options; + const valuesMessage = multipleValues ? + `received values of types ${[ + ...new Set(value.map(singleValue => `\`${is(singleValue)}\``)) + ].join(', ')}` : + `received value of type \`${is(value)}\``; + throw new TypeError(`Expected value which is \`${description}\`, ${valuesMessage}.`); + } +}; +exports.assert = { + // Unknowns. + undefined: (value) => assertType(is.undefined(value), 'undefined', value), + string: (value) => assertType(is.string(value), 'string', value), + number: (value) => assertType(is.number(value), 'number', value), + bigint: (value) => assertType(is.bigint(value), 'bigint', value), + // eslint-disable-next-line @typescript-eslint/ban-types + function_: (value) => assertType(is.function_(value), 'Function', value), + null_: (value) => assertType(is.null_(value), 'null', value), + class_: (value) => assertType(is.class_(value), "Class" /* class_ */, value), + boolean: (value) => assertType(is.boolean(value), 'boolean', value), + symbol: (value) => assertType(is.symbol(value), 'symbol', value), + numericString: (value) => assertType(is.numericString(value), "string with a number" /* numericString */, value), + array: (value, assertion) => { + const assert = assertType; + assert(is.array(value), 'Array', value); + if (assertion) { + value.forEach(assertion); + } + }, + buffer: (value) => assertType(is.buffer(value), 'Buffer', value), + nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), "null or undefined" /* nullOrUndefined */, value), + object: (value) => assertType(is.object(value), 'Object', value), + iterable: (value) => assertType(is.iterable(value), "Iterable" /* iterable */, value), + asyncIterable: (value) => assertType(is.asyncIterable(value), "AsyncIterable" /* asyncIterable */, value), + generator: (value) => assertType(is.generator(value), 'Generator', value), + asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value), + nativePromise: (value) => assertType(is.nativePromise(value), "native Promise" /* nativePromise */, value), + promise: (value) => assertType(is.promise(value), 'Promise', value), + generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value), + asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value), + // eslint-disable-next-line @typescript-eslint/ban-types + boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value), + regExp: (value) => assertType(is.regExp(value), 'RegExp', value), + date: (value) => assertType(is.date(value), 'Date', value), + error: (value) => assertType(is.error(value), 'Error', value), + map: (value) => assertType(is.map(value), 'Map', value), + set: (value) => assertType(is.set(value), 'Set', value), + weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value), + weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value), + int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value), + uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value), + uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value), + int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value), + uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value), + int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value), + uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value), + float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value), + float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value), + bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value), + bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value), + arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value), + sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value), + dataView: (value) => assertType(is.dataView(value), 'DataView', value), + urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value), + urlString: (value) => assertType(is.urlString(value), "string with a URL" /* urlString */, value), + truthy: (value) => assertType(is.truthy(value), "truthy" /* truthy */, value), + falsy: (value) => assertType(is.falsy(value), "falsy" /* falsy */, value), + nan: (value) => assertType(is.nan(value), "NaN" /* nan */, value), + primitive: (value) => assertType(is.primitive(value), "primitive" /* primitive */, value), + integer: (value) => assertType(is.integer(value), "integer" /* integer */, value), + safeInteger: (value) => assertType(is.safeInteger(value), "integer" /* safeInteger */, value), + plainObject: (value) => assertType(is.plainObject(value), "plain object" /* plainObject */, value), + typedArray: (value) => assertType(is.typedArray(value), "TypedArray" /* typedArray */, value), + arrayLike: (value) => assertType(is.arrayLike(value), "array-like" /* arrayLike */, value), + domElement: (value) => assertType(is.domElement(value), "HTMLElement" /* domElement */, value), + observable: (value) => assertType(is.observable(value), 'Observable', value), + nodeStream: (value) => assertType(is.nodeStream(value), "Node.js Stream" /* nodeStream */, value), + infinite: (value) => assertType(is.infinite(value), "infinite number" /* infinite */, value), + emptyArray: (value) => assertType(is.emptyArray(value), "empty array" /* emptyArray */, value), + nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), "non-empty array" /* nonEmptyArray */, value), + emptyString: (value) => assertType(is.emptyString(value), "empty string" /* emptyString */, value), + nonEmptyString: (value) => assertType(is.nonEmptyString(value), "non-empty string" /* nonEmptyString */, value), + emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), "empty string or whitespace" /* emptyStringOrWhitespace */, value), + emptyObject: (value) => assertType(is.emptyObject(value), "empty object" /* emptyObject */, value), + nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), "non-empty object" /* nonEmptyObject */, value), + emptySet: (value) => assertType(is.emptySet(value), "empty set" /* emptySet */, value), + nonEmptySet: (value) => assertType(is.nonEmptySet(value), "non-empty set" /* nonEmptySet */, value), + emptyMap: (value) => assertType(is.emptyMap(value), "empty map" /* emptyMap */, value), + nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), "non-empty map" /* nonEmptyMap */, value), + propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value), + formData: (value) => assertType(is.formData(value), 'FormData', value), + urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value), + // Numbers. + evenInteger: (value) => assertType(is.evenInteger(value), "even integer" /* evenInteger */, value), + oddInteger: (value) => assertType(is.oddInteger(value), "odd integer" /* oddInteger */, value), + // Two arguments. + directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), "T" /* directInstanceOf */, instance), + inRange: (value, range) => assertType(is.inRange(value, range), "in range" /* inRange */, value), + // Variadic functions. + any: (predicate, ...values) => { + return assertType(is.any(predicate, ...values), "predicate returns truthy for any value" /* any */, values, { multipleValues: true }); + }, + all: (predicate, ...values) => assertType(is.all(predicate, ...values), "predicate returns truthy for all values" /* all */, values, { multipleValues: true }) +}; +// Some few keywords are reserved, but we'll populate them for Node.js users +// See https://github.com/Microsoft/TypeScript/issues/2536 +Object.defineProperties(is, { + class: { + value: is.class_ + }, + function: { + value: is.function_ + }, + null: { + value: is.null_ + } +}); +Object.defineProperties(exports.assert, { + class: { + value: exports.assert.class_ + }, + function: { + value: exports.assert.function_ + }, + null: { + value: exports.assert.null_ + } +}); +exports["default"] = is; +// For CommonJS default export support +module.exports = is; +module.exports["default"] = is; +module.exports.assert = exports.assert; + + +/***/ }), + +/***/ "./node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js": +/*!****************************************************************************!*\ + !*** ./node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; + + +const callsites = () => { + const _prepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = (_, stack) => stack; + const stack = new Error().stack.slice(1); + Error.prepareStackTrace = _prepareStackTrace; + return stack; +}; + +module.exports = callsites; +// TODO: Remove this for the next major release +module.exports["default"] = callsites; + + +/***/ }), + +/***/ "./node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js": +/*!******************************************************************************!*\ + !*** ./node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +exports.remove = removeDiacritics; + +var replacementList = [ + { + base: ' ', + chars: "\u00A0", + }, { + base: '0', + chars: "\u07C0", + }, { + base: 'A', + chars: "\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F", + }, { + base: 'AA', + chars: "\uA732", + }, { + base: 'AE', + chars: "\u00C6\u01FC\u01E2", + }, { + base: 'AO', + chars: "\uA734", + }, { + base: 'AU', + chars: "\uA736", + }, { + base: 'AV', + chars: "\uA738\uA73A", + }, { + base: 'AY', + chars: "\uA73C", + }, { + base: 'B', + chars: "\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0181", + }, { + base: 'C', + chars: "\u24b8\uff23\uA73E\u1E08\u0106\u0043\u0108\u010A\u010C\u00C7\u0187\u023B", + }, { + base: 'D', + chars: "\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018A\u0189\u1D05\uA779", + }, { + base: 'Dh', + chars: "\u00D0", + }, { + base: 'DZ', + chars: "\u01F1\u01C4", + }, { + base: 'Dz', + chars: "\u01F2\u01C5", + }, { + base: 'E', + chars: "\u025B\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E\u1D07", + }, { + base: 'F', + chars: "\uA77C\u24BB\uFF26\u1E1E\u0191\uA77B", + }, { + base: 'G', + chars: "\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E\u0262", + }, { + base: 'H', + chars: "\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D", + }, { + base: 'I', + chars: "\u24BE\uFF29\xCC\xCD\xCE\u0128\u012A\u012C\u0130\xCF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197", + }, { + base: 'J', + chars: "\u24BF\uFF2A\u0134\u0248\u0237", + }, { + base: 'K', + chars: "\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2", + }, { + base: 'L', + chars: "\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780", + }, { + base: 'LJ', + chars: "\u01C7", + }, { + base: 'Lj', + chars: "\u01C8", + }, { + base: 'M', + chars: "\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C\u03FB", + }, { + base: 'N', + chars: "\uA7A4\u0220\u24C3\uFF2E\u01F8\u0143\xD1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u019D\uA790\u1D0E", + }, { + base: 'NJ', + chars: "\u01CA", + }, { + base: 'Nj', + chars: "\u01CB", + }, { + base: 'O', + chars: "\u24C4\uFF2F\xD2\xD3\xD4\u1ED2\u1ED0\u1ED6\u1ED4\xD5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\xD6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\xD8\u01FE\u0186\u019F\uA74A\uA74C", + }, { + base: 'OE', + chars: "\u0152", + }, { + base: 'OI', + chars: "\u01A2", + }, { + base: 'OO', + chars: "\uA74E", + }, { + base: 'OU', + chars: "\u0222", + }, { + base: 'P', + chars: "\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754", + }, { + base: 'Q', + chars: "\u24C6\uFF31\uA756\uA758\u024A", + }, { + base: 'R', + chars: "\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782", + }, { + base: 'S', + chars: "\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784", + }, { + base: 'T', + chars: "\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786", + }, { + base: 'Th', + chars: "\u00DE", + }, { + base: 'TZ', + chars: "\uA728", + }, { + base: 'U', + chars: "\u24CA\uFF35\xD9\xDA\xDB\u0168\u1E78\u016A\u1E7A\u016C\xDC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244", + }, { + base: 'V', + chars: "\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245", + }, { + base: 'VY', + chars: "\uA760", + }, { + base: 'W', + chars: "\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72", + }, { + base: 'X', + chars: "\u24CD\uFF38\u1E8A\u1E8C", + }, { + base: 'Y', + chars: "\u24CE\uFF39\u1EF2\xDD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE", + }, { + base: 'Z', + chars: "\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762", + }, { + base: 'a', + chars: "\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250\u0251", + }, { + base: 'aa', + chars: "\uA733", + }, { + base: 'ae', + chars: "\u00E6\u01FD\u01E3", + }, { + base: 'ao', + chars: "\uA735", + }, { + base: 'au', + chars: "\uA737", + }, { + base: 'av', + chars: "\uA739\uA73B", + }, { + base: 'ay', + chars: "\uA73D", + }, { + base: 'b', + chars: "\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253\u0182", + }, { + base: 'c', + chars: "\uFF43\u24D2\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184", + }, { + base: 'd', + chars: "\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\u018B\u13E7\u0501\uA7AA", + }, { + base: 'dh', + chars: "\u00F0", + }, { + base: 'dz', + chars: "\u01F3\u01C6", + }, { + base: 'e', + chars: "\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u01DD", + }, { + base: 'f', + chars: "\u24D5\uFF46\u1E1F\u0192", + }, { + base: 'ff', + chars: "\uFB00", + }, { + base: 'fi', + chars: "\uFB01", + }, { + base: 'fl', + chars: "\uFB02", + }, { + base: 'ffi', + chars: "\uFB03", + }, { + base: 'ffl', + chars: "\uFB04", + }, { + base: 'g', + chars: "\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\uA77F\u1D79", + }, { + base: 'h', + chars: "\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265", + }, { + base: 'hv', + chars: "\u0195", + }, { + base: 'i', + chars: "\u24D8\uFF49\xEC\xED\xEE\u0129\u012B\u012D\xEF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131", + }, { + base: 'j', + chars: "\u24D9\uFF4A\u0135\u01F0\u0249", + }, { + base: 'k', + chars: "\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3", + }, { + base: 'l', + chars: "\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747\u026D", + }, { + base: 'lj', + chars: "\u01C9", + }, { + base: 'm', + chars: "\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F", + }, { + base: 'n', + chars: "\u24DD\uFF4E\u01F9\u0144\xF1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5\u043B\u0509", + }, { + base: 'nj', + chars: "\u01CC", + }, { + base: 'o', + chars: "\u24DE\uFF4F\xF2\xF3\xF4\u1ED3\u1ED1\u1ED7\u1ED5\xF5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\xF6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\xF8\u01FF\uA74B\uA74D\u0275\u0254\u1D11", + }, { + base: 'oe', + chars: "\u0153", + }, { + base: 'oi', + chars: "\u01A3", + }, { + base: 'oo', + chars: "\uA74F", + }, { + base: 'ou', + chars: "\u0223", + }, { + base: 'p', + chars: "\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755\u03C1", + }, { + base: 'q', + chars: "\u24E0\uFF51\u024B\uA757\uA759", + }, { + base: 'r', + chars: "\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783", + }, { + base: 's', + chars: "\u24E2\uFF53\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B\u0282", + }, { + base: 'ss', + chars: "\xDF", + }, { + base: 't', + chars: "\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787", + }, { + base: 'th', + chars: "\u00FE", + }, { + base: 'tz', + chars: "\uA729", + }, { + base: 'u', + chars: "\u24E4\uFF55\xF9\xFA\xFB\u0169\u1E79\u016B\u1E7B\u016D\xFC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289", + }, { + base: 'v', + chars: "\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C", + }, { + base: 'vy', + chars: "\uA761", + }, { + base: 'w', + chars: "\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73", + }, { + base: 'x', + chars: "\u24E7\uFF58\u1E8B\u1E8D", + }, { + base: 'y', + chars: "\u24E8\uFF59\u1EF3\xFD\u0177\u1EF9\u0233\u1E8F\xFF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF", + }, { + base: 'z', + chars: "\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763", + } +]; + +var diacriticsMap = {}; +for (var i = 0; i < replacementList.length; i += 1) { + var chars = replacementList[i].chars; + for (var j = 0; j < chars.length; j += 1) { + diacriticsMap[chars[j]] = replacementList[i].base; + } +} + +function removeDiacritics(str) { + return str.replace(/[^\u0000-\u007e]/g, function(c) { + return diacriticsMap[c] || c; + }); +} + +exports.replacementList = replacementList; +exports.diacriticsMap = diacriticsMap; + + +/***/ }), + +/***/ "./node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js": +/*!**************************************************************************!*\ + !*** ./node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js ***! + \**************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + +const isObj = __webpack_require__(/*! is-obj */ "./node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js"); + +const disallowedKeys = new Set([ + '__proto__', + 'prototype', + 'constructor' +]); + +const isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.has(segment)); + +function getPathSegments(path) { + const pathArray = path.split('.'); + const parts = []; + + for (let i = 0; i < pathArray.length; i++) { + let p = pathArray[i]; + + while (p[p.length - 1] === '\\' && pathArray[i + 1] !== undefined) { + p = p.slice(0, -1) + '.'; + p += pathArray[++i]; + } + + parts.push(p); + } + + if (!isValidPath(parts)) { + return []; + } + + return parts; +} + +module.exports = { + get(object, path, value) { + if (!isObj(object) || typeof path !== 'string') { + return value === undefined ? object : value; + } + + const pathArray = getPathSegments(path); + if (pathArray.length === 0) { + return; + } + + for (let i = 0; i < pathArray.length; i++) { + object = object[pathArray[i]]; + + if (object === undefined || object === null) { + // `object` is either `undefined` or `null` so we want to stop the loop, and + // if this is not the last bit of the path, and + // if it did't return `undefined` + // it would return `null` if `object` is `null` + // but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null` + if (i !== pathArray.length - 1) { + return value; + } + + break; + } + } + + return object === undefined ? value : object; + }, + + set(object, path, value) { + if (!isObj(object) || typeof path !== 'string') { + return object; + } + + const root = object; + const pathArray = getPathSegments(path); + + for (let i = 0; i < pathArray.length; i++) { + const p = pathArray[i]; + + if (!isObj(object[p])) { + object[p] = {}; + } + + if (i === pathArray.length - 1) { + object[p] = value; + } + + object = object[p]; + } + + return root; + }, + + delete(object, path) { + if (!isObj(object) || typeof path !== 'string') { + return false; + } + + const pathArray = getPathSegments(path); + + for (let i = 0; i < pathArray.length; i++) { + const p = pathArray[i]; + + if (i === pathArray.length - 1) { + delete object[p]; + return true; + } + + object = object[p]; + + if (!isObj(object)) { + return false; + } + } + }, + + has(object, path) { + if (!isObj(object) || typeof path !== 'string') { + return false; + } + + const pathArray = getPathSegments(path); + if (pathArray.length === 0) { + return false; + } + + // eslint-disable-next-line unicorn/no-for-loop + for (let i = 0; i < pathArray.length; i++) { + if (isObj(object)) { + if (!(pathArray[i] in object)) { + return false; + } + + object = object[pathArray[i]]; + } else { + return false; + } + } + + return true; + } +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/ejs.js": +/*!******************************************************************!*\ + !*** ./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/ejs.js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +/* + * EJS Embedded JavaScript templates + * Copyright 2112 Matthew Eernisse (mde@fleegix.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ + + + +/** + * @file Embedded JavaScript templating engine. {@link http://ejs.co} + * @author Matthew Eernisse + * @author Tiancheng "Timothy" Gu + * @project EJS + * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0} + */ + +/** + * EJS internal functions. + * + * Technically this "module" lies in the same file as {@link module:ejs}, for + * the sake of organization all the private functions re grouped into this + * module. + * + * @module ejs-internal + * @private + */ + +/** + * Embedded JavaScript templating engine. + * + * @module ejs + * @public + */ + +var fs = __webpack_require__(/*! fs */ "?c581"); +var path = __webpack_require__(/*! path */ "./node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js"); +var utils = __webpack_require__(/*! ./utils */ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/utils.js"); + +var scopeOptionWarned = false; +/** @type {string} */ +var _VERSION_STRING = (__webpack_require__(/*! ../package.json */ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/package.json").version); +var _DEFAULT_OPEN_DELIMITER = '<'; +var _DEFAULT_CLOSE_DELIMITER = '>'; +var _DEFAULT_DELIMITER = '%'; +var _DEFAULT_LOCALS_NAME = 'locals'; +var _NAME = 'ejs'; +var _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)'; +var _OPTS_PASSABLE_WITH_DATA = ['delimiter', 'scope', 'context', 'debug', 'compileDebug', + 'client', '_with', 'rmWhitespace', 'strict', 'filename', 'async']; +// We don't allow 'cache' option to be passed in the data obj for +// the normal `render` call, but this is where Express 2 & 3 put it +// so we make an exception for `renderFile` +var _OPTS_PASSABLE_WITH_DATA_EXPRESS = _OPTS_PASSABLE_WITH_DATA.concat('cache'); +var _BOM = /^\uFEFF/; + +/** + * EJS template function cache. This can be a LRU object from lru-cache NPM + * module. By default, it is {@link module:utils.cache}, a simple in-process + * cache that grows continuously. + * + * @type {Cache} + */ + +exports.cache = utils.cache; + +/** + * Custom file loader. Useful for template preprocessing or restricting access + * to a certain part of the filesystem. + * + * @type {fileLoader} + */ + +exports.fileLoader = fs.readFileSync; + +/** + * Name of the object containing the locals. + * + * This variable is overridden by {@link Options}`.localsName` if it is not + * `undefined`. + * + * @type {String} + * @public + */ + +exports.localsName = _DEFAULT_LOCALS_NAME; + +/** + * Promise implementation -- defaults to the native implementation if available + * This is mostly just for testability + * + * @type {PromiseConstructorLike} + * @public + */ + +exports.promiseImpl = (new Function('return this;'))().Promise; + +/** + * Get the path to the included file from the parent file path and the + * specified path. + * + * @param {String} name specified path + * @param {String} filename parent file path + * @param {Boolean} [isDir=false] whether the parent file path is a directory + * @return {String} + */ +exports.resolveInclude = function(name, filename, isDir) { + var dirname = path.dirname; + var extname = path.extname; + var resolve = path.resolve; + var includePath = resolve(isDir ? filename : dirname(filename), name); + var ext = extname(name); + if (!ext) { + includePath += '.ejs'; + } + return includePath; +}; + +/** + * Try to resolve file path on multiple directories + * + * @param {String} name specified path + * @param {Array} paths list of possible parent directory paths + * @return {String} + */ +function resolvePaths(name, paths) { + var filePath; + if (paths.some(function (v) { + filePath = exports.resolveInclude(name, v, true); + return fs.existsSync(filePath); + })) { + return filePath; + } +} + +/** + * Get the path to the included file by Options + * + * @param {String} path specified path + * @param {Options} options compilation options + * @return {String} + */ +function getIncludePath(path, options) { + var includePath; + var filePath; + var views = options.views; + var match = /^[A-Za-z]+:\\|^\//.exec(path); + + // Abs path + if (match && match.length) { + path = path.replace(/^\/*/, ''); + if (Array.isArray(options.root)) { + includePath = resolvePaths(path, options.root); + } else { + includePath = exports.resolveInclude(path, options.root || '/', true); + } + } + // Relative paths + else { + // Look relative to a passed filename first + if (options.filename) { + filePath = exports.resolveInclude(path, options.filename); + if (fs.existsSync(filePath)) { + includePath = filePath; + } + } + // Then look in any views directories + if (!includePath && Array.isArray(views)) { + includePath = resolvePaths(path, views); + } + if (!includePath && typeof options.includer !== 'function') { + throw new Error('Could not find the include file "' + + options.escapeFunction(path) + '"'); + } + } + return includePath; +} + +/** + * Get the template from a string or a file, either compiled on-the-fly or + * read from cache (if enabled), and cache the template if needed. + * + * If `template` is not set, the file specified in `options.filename` will be + * read. + * + * If `options.cache` is true, this function reads the file from + * `options.filename` so it must be set prior to calling this function. + * + * @memberof module:ejs-internal + * @param {Options} options compilation options + * @param {String} [template] template source + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned. + * @static + */ + +function handleCache(options, template) { + var func; + var filename = options.filename; + var hasTemplate = arguments.length > 1; + + if (options.cache) { + if (!filename) { + throw new Error('cache option requires a filename'); + } + func = exports.cache.get(filename); + if (func) { + return func; + } + if (!hasTemplate) { + template = fileLoader(filename).toString().replace(_BOM, ''); + } + } + else if (!hasTemplate) { + // istanbul ignore if: should not happen at all + if (!filename) { + throw new Error('Internal EJS error: no file name or template ' + + 'provided'); + } + template = fileLoader(filename).toString().replace(_BOM, ''); + } + func = exports.compile(template, options); + if (options.cache) { + exports.cache.set(filename, func); + } + return func; +} + +/** + * Try calling handleCache with the given options and data and call the + * callback with the result. If an error occurs, call the callback with + * the error. Used by renderFile(). + * + * @memberof module:ejs-internal + * @param {Options} options compilation options + * @param {Object} data template data + * @param {RenderFileCallback} cb callback + * @static + */ + +function tryHandleCache(options, data, cb) { + var result; + if (!cb) { + if (typeof exports.promiseImpl == 'function') { + return new exports.promiseImpl(function (resolve, reject) { + try { + result = handleCache(options)(data); + resolve(result); + } + catch (err) { + reject(err); + } + }); + } + else { + throw new Error('Please provide a callback function'); + } + } + else { + try { + result = handleCache(options)(data); + } + catch (err) { + return cb(err); + } + + cb(null, result); + } +} + +/** + * fileLoader is independent + * + * @param {String} filePath ejs file path. + * @return {String} The contents of the specified file. + * @static + */ + +function fileLoader(filePath){ + return exports.fileLoader(filePath); +} + +/** + * Get the template function. + * + * If `options.cache` is `true`, then the template is cached. + * + * @memberof module:ejs-internal + * @param {String} path path for the specified file + * @param {Options} options compilation options + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `options.client`, either type might be returned + * @static + */ + +function includeFile(path, options) { + var opts = utils.shallowCopy({}, options); + opts.filename = getIncludePath(path, opts); + if (typeof options.includer === 'function') { + var includerResult = options.includer(path, opts.filename); + if (includerResult) { + if (includerResult.filename) { + opts.filename = includerResult.filename; + } + if (includerResult.template) { + return handleCache(opts, includerResult.template); + } + } + } + return handleCache(opts); +} + +/** + * Re-throw the given `err` in context to the `str` of ejs, `filename`, and + * `lineno`. + * + * @implements {RethrowCallback} + * @memberof module:ejs-internal + * @param {Error} err Error object + * @param {String} str EJS source + * @param {String} flnm file name of the EJS file + * @param {Number} lineno line number of the error + * @param {EscapeCallback} esc + * @static + */ + +function rethrow(err, str, flnm, lineno, esc) { + var lines = str.split('\n'); + var start = Math.max(lineno - 3, 0); + var end = Math.min(lines.length, lineno + 3); + var filename = esc(flnm); + // Error context + var context = lines.slice(start, end).map(function (line, i){ + var curr = i + start + 1; + return (curr == lineno ? ' >> ' : ' ') + + curr + + '| ' + + line; + }).join('\n'); + + // Alter exception message + err.path = filename; + err.message = (filename || 'ejs') + ':' + + lineno + '\n' + + context + '\n\n' + + err.message; + + throw err; +} + +function stripSemi(str){ + return str.replace(/;(\s*$)/, '$1'); +} + +/** + * Compile the given `str` of ejs into a template function. + * + * @param {String} template EJS template + * + * @param {Options} [opts] compilation options + * + * @return {(TemplateFunction|ClientFunction)} + * Depending on the value of `opts.client`, either type might be returned. + * Note that the return type of the function also depends on the value of `opts.async`. + * @public + */ + +exports.compile = function compile(template, opts) { + var templ; + + // v1 compat + // 'scope' is 'context' + // FIXME: Remove this in a future version + if (opts && opts.scope) { + if (!scopeOptionWarned){ + console.warn('`scope` option is deprecated and will be removed in EJS 3'); + scopeOptionWarned = true; + } + if (!opts.context) { + opts.context = opts.scope; + } + delete opts.scope; + } + templ = new Template(template, opts); + return templ.compile(); +}; + +/** + * Render the given `template` of ejs. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} template EJS template + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @return {(String|Promise)} + * Return value type depends on `opts.async`. + * @public + */ + +exports.render = function (template, d, o) { + var data = d || {}; + var opts = o || {}; + + // No options object -- if there are optiony names + // in the data, copy them to options + if (arguments.length == 2) { + utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA); + } + + return handleCache(opts, template)(data); +}; + +/** + * Render an EJS file at the given `path` and callback `cb(err, str)`. + * + * If you would like to include options but not data, you need to explicitly + * call this function with `data` being an empty object or `null`. + * + * @param {String} path path to the EJS file + * @param {Object} [data={}] template data + * @param {Options} [opts={}] compilation and rendering options + * @param {RenderFileCallback} cb callback + * @public + */ + +exports.renderFile = function () { + var args = Array.prototype.slice.call(arguments); + var filename = args.shift(); + var cb; + var opts = {filename: filename}; + var data; + var viewOpts; + + // Do we have a callback? + if (typeof arguments[arguments.length - 1] == 'function') { + cb = args.pop(); + } + // Do we have data/opts? + if (args.length) { + // Should always have data obj + data = args.shift(); + // Normal passed opts (data obj + opts obj) + if (args.length) { + // Use shallowCopy so we don't pollute passed in opts obj with new vals + utils.shallowCopy(opts, args.pop()); + } + // Special casing for Express (settings + opts-in-data) + else { + // Express 3 and 4 + if (data.settings) { + // Pull a few things from known locations + if (data.settings.views) { + opts.views = data.settings.views; + } + if (data.settings['view cache']) { + opts.cache = true; + } + // Undocumented after Express 2, but still usable, esp. for + // items that are unsafe to be passed along with data, like `root` + viewOpts = data.settings['view options']; + if (viewOpts) { + utils.shallowCopy(opts, viewOpts); + } + } + // Express 2 and lower, values set in app.locals, or people who just + // want to pass options in their data. NOTE: These values will override + // anything previously set in settings or settings['view options'] + utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA_EXPRESS); + } + opts.filename = filename; + } + else { + data = {}; + } + + return tryHandleCache(opts, data, cb); +}; + +/** + * Clear intermediate JavaScript cache. Calls {@link Cache#reset}. + * @public + */ + +/** + * EJS template class + * @public + */ +exports.Template = Template; + +exports.clearCache = function () { + exports.cache.reset(); +}; + +function Template(text, opts) { + opts = opts || {}; + var options = {}; + this.templateText = text; + /** @type {string | null} */ + this.mode = null; + this.truncate = false; + this.currentLine = 1; + this.source = ''; + options.client = opts.client || false; + options.escapeFunction = opts.escape || opts.escapeFunction || utils.escapeXML; + options.compileDebug = opts.compileDebug !== false; + options.debug = !!opts.debug; + options.filename = opts.filename; + options.openDelimiter = opts.openDelimiter || exports.openDelimiter || _DEFAULT_OPEN_DELIMITER; + options.closeDelimiter = opts.closeDelimiter || exports.closeDelimiter || _DEFAULT_CLOSE_DELIMITER; + options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER; + options.strict = opts.strict || false; + options.context = opts.context; + options.cache = opts.cache || false; + options.rmWhitespace = opts.rmWhitespace; + options.root = opts.root; + options.includer = opts.includer; + options.outputFunctionName = opts.outputFunctionName; + options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME; + options.views = opts.views; + options.async = opts.async; + options.destructuredLocals = opts.destructuredLocals; + options.legacyInclude = typeof opts.legacyInclude != 'undefined' ? !!opts.legacyInclude : true; + + if (options.strict) { + options._with = false; + } + else { + options._with = typeof opts._with != 'undefined' ? opts._with : true; + } + + this.opts = options; + + this.regex = this.createRegex(); +} + +Template.modes = { + EVAL: 'eval', + ESCAPED: 'escaped', + RAW: 'raw', + COMMENT: 'comment', + LITERAL: 'literal' +}; + +Template.prototype = { + createRegex: function () { + var str = _REGEX_STRING; + var delim = utils.escapeRegExpChars(this.opts.delimiter); + var open = utils.escapeRegExpChars(this.opts.openDelimiter); + var close = utils.escapeRegExpChars(this.opts.closeDelimiter); + str = str.replace(/%/g, delim) + .replace(//g, close); + return new RegExp(str); + }, + + compile: function () { + /** @type {string} */ + var src; + /** @type {ClientFunction} */ + var fn; + var opts = this.opts; + var prepended = ''; + var appended = ''; + /** @type {EscapeCallback} */ + var escapeFn = opts.escapeFunction; + /** @type {FunctionConstructor} */ + var ctor; + /** @type {string} */ + var sanitizedFilename = opts.filename ? JSON.stringify(opts.filename) : 'undefined'; + + if (!this.source) { + this.generateSource(); + prepended += + ' var __output = "";\n' + + ' function __append(s) { if (s !== undefined && s !== null) __output += s }\n'; + if (opts.outputFunctionName) { + prepended += ' var ' + opts.outputFunctionName + ' = __append;' + '\n'; + } + if (opts.destructuredLocals && opts.destructuredLocals.length) { + var destructuring = ' var __locals = (' + opts.localsName + ' || {}),\n'; + for (var i = 0; i < opts.destructuredLocals.length; i++) { + var name = opts.destructuredLocals[i]; + if (i > 0) { + destructuring += ',\n '; + } + destructuring += name + ' = __locals.' + name; + } + prepended += destructuring + ';\n'; + } + if (opts._with !== false) { + prepended += ' with (' + opts.localsName + ' || {}) {' + '\n'; + appended += ' }' + '\n'; + } + appended += ' return __output;' + '\n'; + this.source = prepended + this.source + appended; + } + + if (opts.compileDebug) { + src = 'var __line = 1' + '\n' + + ' , __lines = ' + JSON.stringify(this.templateText) + '\n' + + ' , __filename = ' + sanitizedFilename + ';' + '\n' + + 'try {' + '\n' + + this.source + + '} catch (e) {' + '\n' + + ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\n' + + '}' + '\n'; + } + else { + src = this.source; + } + + if (opts.client) { + src = 'escapeFn = escapeFn || ' + escapeFn.toString() + ';' + '\n' + src; + if (opts.compileDebug) { + src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\n' + src; + } + } + + if (opts.strict) { + src = '"use strict";\n' + src; + } + if (opts.debug) { + console.log(src); + } + if (opts.compileDebug && opts.filename) { + src = src + '\n' + + '//# sourceURL=' + sanitizedFilename + '\n'; + } + + try { + if (opts.async) { + // Have to use generated function for this, since in envs without support, + // it breaks in parsing + try { + ctor = (new Function('return (async function(){}).constructor;'))(); + } + catch(e) { + if (e instanceof SyntaxError) { + throw new Error('This environment does not support async/await'); + } + else { + throw e; + } + } + } + else { + ctor = Function; + } + fn = new ctor(opts.localsName + ', escapeFn, include, rethrow', src); + } + catch(e) { + // istanbul ignore else + if (e instanceof SyntaxError) { + if (opts.filename) { + e.message += ' in ' + opts.filename; + } + e.message += ' while compiling ejs\n\n'; + e.message += 'If the above error is not helpful, you may want to try EJS-Lint:\n'; + e.message += 'https://github.com/RyanZim/EJS-Lint'; + if (!opts.async) { + e.message += '\n'; + e.message += 'Or, if you meant to create an async function, pass `async: true` as an option.'; + } + } + throw e; + } + + // Return a callable function which will execute the function + // created by the source-code, with the passed data as locals + // Adds a local `include` function which allows full recursive include + var returnedFn = opts.client ? fn : function anonymous(data) { + var include = function (path, includeData) { + var d = utils.shallowCopy({}, data); + if (includeData) { + d = utils.shallowCopy(d, includeData); + } + return includeFile(path, opts)(d); + }; + return fn.apply(opts.context, [data || {}, escapeFn, include, rethrow]); + }; + if (opts.filename && typeof Object.defineProperty === 'function') { + var filename = opts.filename; + var basename = path.basename(filename, path.extname(filename)); + try { + Object.defineProperty(returnedFn, 'name', { + value: basename, + writable: false, + enumerable: false, + configurable: true + }); + } catch (e) {/* ignore */} + } + return returnedFn; + }, + + generateSource: function () { + var opts = this.opts; + + if (opts.rmWhitespace) { + // Have to use two separate replace here as `^` and `$` operators don't + // work well with `\r` and empty lines don't work well with the `m` flag. + this.templateText = + this.templateText.replace(/[\r\n]+/g, '\n').replace(/^\s+|\s+$/gm, ''); + } + + // Slurp spaces and tabs before <%_ and after _%> + this.templateText = + this.templateText.replace(/[ \t]*<%_/gm, '<%_').replace(/_%>[ \t]*/gm, '_%>'); + + var self = this; + var matches = this.parseTemplateText(); + var d = this.opts.delimiter; + var o = this.opts.openDelimiter; + var c = this.opts.closeDelimiter; + + if (matches && matches.length) { + matches.forEach(function (line, index) { + var closing; + // If this is an opening tag, check for closing tags + // FIXME: May end up with some false positives here + // Better to store modes as k/v with openDelimiter + delimiter as key + // Then this can simply check against the map + if ( line.indexOf(o + d) === 0 // If it is a tag + && line.indexOf(o + d + d) !== 0) { // and is not escaped + closing = matches[index + 2]; + if (!(closing == d + c || closing == '-' + d + c || closing == '_' + d + c)) { + throw new Error('Could not find matching close tag for "' + line + '".'); + } + } + self.scanLine(line); + }); + } + + }, + + parseTemplateText: function () { + var str = this.templateText; + var pat = this.regex; + var result = pat.exec(str); + var arr = []; + var firstPos; + + while (result) { + firstPos = result.index; + + if (firstPos !== 0) { + arr.push(str.substring(0, firstPos)); + str = str.slice(firstPos); + } + + arr.push(result[0]); + str = str.slice(result[0].length); + result = pat.exec(str); + } + + if (str) { + arr.push(str); + } + + return arr; + }, + + _addOutput: function (line) { + if (this.truncate) { + // Only replace single leading linebreak in the line after + // -%> tag -- this is the single, trailing linebreak + // after the tag that the truncation mode replaces + // Handle Win / Unix / old Mac linebreaks -- do the \r\n + // combo first in the regex-or + line = line.replace(/^(?:\r\n|\r|\n)/, ''); + this.truncate = false; + } + if (!line) { + return line; + } + + // Preserve literal slashes + line = line.replace(/\\/g, '\\\\'); + + // Convert linebreaks + line = line.replace(/\n/g, '\\n'); + line = line.replace(/\r/g, '\\r'); + + // Escape double-quotes + // - this will be the delimiter during execution + line = line.replace(/"/g, '\\"'); + this.source += ' ; __append("' + line + '")' + '\n'; + }, + + scanLine: function (line) { + var self = this; + var d = this.opts.delimiter; + var o = this.opts.openDelimiter; + var c = this.opts.closeDelimiter; + var newLineCount = 0; + + newLineCount = (line.split('\n').length - 1); + + switch (line) { + case o + d: + case o + d + '_': + this.mode = Template.modes.EVAL; + break; + case o + d + '=': + this.mode = Template.modes.ESCAPED; + break; + case o + d + '-': + this.mode = Template.modes.RAW; + break; + case o + d + '#': + this.mode = Template.modes.COMMENT; + break; + case o + d + d: + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace(o + d + d, o + d) + '")' + '\n'; + break; + case d + d + c: + this.mode = Template.modes.LITERAL; + this.source += ' ; __append("' + line.replace(d + d + c, d + c) + '")' + '\n'; + break; + case d + c: + case '-' + d + c: + case '_' + d + c: + if (this.mode == Template.modes.LITERAL) { + this._addOutput(line); + } + + this.mode = null; + this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0; + break; + default: + // In script mode, depends on type of tag + if (this.mode) { + // If '//' is found without a line break, add a line break. + switch (this.mode) { + case Template.modes.EVAL: + case Template.modes.ESCAPED: + case Template.modes.RAW: + if (line.lastIndexOf('//') > line.lastIndexOf('\n')) { + line += '\n'; + } + } + switch (this.mode) { + // Just executing code + case Template.modes.EVAL: + this.source += ' ; ' + line + '\n'; + break; + // Exec, esc, and output + case Template.modes.ESCAPED: + this.source += ' ; __append(escapeFn(' + stripSemi(line) + '))' + '\n'; + break; + // Exec and output + case Template.modes.RAW: + this.source += ' ; __append(' + stripSemi(line) + ')' + '\n'; + break; + case Template.modes.COMMENT: + // Do nothing + break; + // Literal <%% mode, append as raw output + case Template.modes.LITERAL: + this._addOutput(line); + break; + } + } + // In string mode, just add the output + else { + this._addOutput(line); + } + } + + if (self.opts.compileDebug && newLineCount) { + this.currentLine += newLineCount; + this.source += ' ; __line = ' + this.currentLine + '\n'; + } + } +}; + +/** + * Escape characters reserved in XML. + * + * This is simply an export of {@link module:utils.escapeXML}. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @param {String} markup Input string + * @return {String} Escaped string + * @public + * @func + * */ +exports.escapeXML = utils.escapeXML; + +/** + * Express.js support. + * + * This is an alias for {@link module:ejs.renderFile}, in order to support + * Express.js out-of-the-box. + * + * @func + */ + +exports.__express = exports.renderFile; + +/** + * Version of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.VERSION = _VERSION_STRING; + +/** + * Name for detection of EJS. + * + * @readonly + * @type {String} + * @public + */ + +exports.name = _NAME; + +/* istanbul ignore if */ +if (typeof window != 'undefined') { + window.ejs = exports; +} + + +/***/ }), + +/***/ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/utils.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/utils.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; +/* + * EJS Embedded JavaScript templates + * Copyright 2112 Matthew Eernisse (mde@fleegix.org) + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * +*/ + +/** + * Private utility functions + * @module utils + * @private + */ + + + +var regExpChars = /[|\\{}()[\]^$+*?.]/g; + +/** + * Escape characters reserved in regular expressions. + * + * If `string` is `undefined` or `null`, the empty string is returned. + * + * @param {String} string Input string + * @return {String} Escaped string + * @static + * @private + */ +exports.escapeRegExpChars = function (string) { + // istanbul ignore if + if (!string) { + return ''; + } + return String(string).replace(regExpChars, '\\$&'); +}; + +var _ENCODE_HTML_RULES = { + '&': '&', + '<': '<', + '>': '>', + '"': '"', + "'": ''' +}; +var _MATCH_HTML = /[&<>'"]/g; + +function encode_char(c) { + return _ENCODE_HTML_RULES[c] || c; +} + +/** + * Stringified version of constants used by {@link module:utils.escapeXML}. + * + * It is used in the process of generating {@link ClientFunction}s. + * + * @readonly + * @type {String} + */ + +var escapeFuncStr = + 'var _ENCODE_HTML_RULES = {\n' ++ ' "&": "&"\n' ++ ' , "<": "<"\n' ++ ' , ">": ">"\n' ++ ' , \'"\': """\n' ++ ' , "\'": "'"\n' ++ ' }\n' ++ ' , _MATCH_HTML = /[&<>\'"]/g;\n' ++ 'function encode_char(c) {\n' ++ ' return _ENCODE_HTML_RULES[c] || c;\n' ++ '};\n'; + +/** + * Escape characters reserved in XML. + * + * If `markup` is `undefined` or `null`, the empty string is returned. + * + * @implements {EscapeCallback} + * @param {String} markup Input string + * @return {String} Escaped string + * @static + * @private + */ + +exports.escapeXML = function (markup) { + return markup == undefined + ? '' + : String(markup) + .replace(_MATCH_HTML, encode_char); +}; +exports.escapeXML.toString = function () { + return Function.prototype.toString.call(this) + ';\n' + escapeFuncStr; +}; + +/** + * Naive copy of properties from one object to another. + * Does not recurse into non-scalar properties + * Does not check to see if the property has a value before copying + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopy = function (to, from) { + from = from || {}; + for (var p in from) { + to[p] = from[p]; + } + return to; +}; + +/** + * Naive copy of a list of key names, from one object to another. + * Only copies property if it is actually defined + * Does not recurse into non-scalar properties + * + * @param {Object} to Destination object + * @param {Object} from Source object + * @param {Array} list List of properties to copy + * @return {Object} Destination object + * @static + * @private + */ +exports.shallowCopyFromList = function (to, from, list) { + for (var i = 0; i < list.length; i++) { + var p = list[i]; + if (typeof from[p] != 'undefined') { + to[p] = from[p]; + } + } + return to; +}; + +/** + * Simple in-process cache implementation. Does not implement limits of any + * sort. + * + * @implements {Cache} + * @static + * @private + */ +exports.cache = { + _data: {}, + set: function (key, val) { + this._data[key] = val; + }, + get: function (key) { + return this._data[key]; + }, + remove: function (key) { + delete this._data[key]; + }, + reset: function () { + this._data = {}; + } +}; + +/** + * Transforms hyphen case variable into camel case. + * + * @param {String} string Hyphen case string + * @return {String} Camel case string + * @static + * @private + */ +exports.hyphenToCamel = function (str) { + return str.replace(/-[a-z]/g, function (match) { return match[1].toUpperCase(); }); +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/index.js": +/*!*************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/index.js ***! + \*************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.EPub = exports.chapterDefaults = exports.optionsDefaults = void 0; +var ejs_1 = __webpack_require__(/*! ejs */ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/ejs.js"); +var jszip_1 = __importDefault(__webpack_require__(/*! jszip */ "./node_modules/.pnpm/jszip@3.7.1/node_modules/jszip/dist/jszip.min.js")); +var mime_1 = __webpack_require__(/*! mime */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js"); +var ow_1 = __importDefault(__webpack_require__(/*! ow */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js")); +var util_1 = __webpack_require__(/*! ./util */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/index.js"); +Object.defineProperty(exports, "chapterDefaults", ({ enumerable: true, get: function () { return util_1.chapterDefaults; } })); +Object.defineProperty(exports, "optionsDefaults", ({ enumerable: true, get: function () { return util_1.optionsDefaults; } })); +var EPub = /** @class */ (function () { + function EPub(options, content) { + this.images = []; + this.options = (0, util_1.validateAndNormalizeOptions)(options); + switch (this.options.verbose) { + case true: + this.log = console.log.bind(console); + this.warn = console.warn.bind(console); + break; + case false: + this.log = this.warn = function () { }; + break; + default: + this.log = this.options.verbose.bind(null, 'log'); + this.warn = this.options.verbose.bind(null, 'warn'); + break; + } + this.uuid = (0, util_1.uuid)(); + this.content = util_1.validateAndNormalizeChapters.call(this, content); + this.zip = new jszip_1.default(); + this.zip.file('mimetype', 'application/epub+zip', { compression: 'STORE' }); + if (this.options.cover) { + var mediaType = (0, mime_1.getType)(this.options.cover); + var extension = (0, mime_1.getExtension)(mediaType || ''); + if (mediaType && extension) + this.cover = { mediaType: mediaType, extension: extension }; + } + } + EPub.prototype.render = function () { + return __awaiter(this, void 0, void 0, function () { + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + this.log('Generating Template Files...'); + return [4 /*yield*/, this.generateTemplateFiles()]; + case 1: + _a.sent(); + this.log('Downloading fonts...'); + return [4 /*yield*/, this.downloadAllFonts()]; + case 2: + _a.sent(); + this.log('Downloading images...'); + return [4 /*yield*/, this.downloadAllImages()]; + case 3: + _a.sent(); + this.log('Making cover...'); + return [4 /*yield*/, this.makeCover()]; + case 4: + _a.sent(); + this.log('Finishing up...'); + return [2 /*return*/, this]; + } + }); + }); + }; + EPub.prototype.genEpub = function () { + return __awaiter(this, void 0, void 0, function () { + var content; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: return [4 /*yield*/, this.render()]; + case 1: + _a.sent(); + content = this.zip.generateAsync({ + type: util_1.type, + mimeType: 'application/epub+zip', + compression: 'DEFLATE', + compressionOptions: { + level: 9, + }, + }); + this.log('Done'); + return [2 /*return*/, content]; + } + }); + }); + }; + EPub.prototype.generateAsync = function (options) { + return this.zip.generateAsync(options); + }; + EPub.prototype.generateTemplateFiles = function () { + return __awaiter(this, void 0, void 0, function () { + var oebps, metainf, opt; + var _this = this; + return __generator(this, function (_a) { + oebps = this.zip.folder('OEBPS'); + oebps.file('style.css', this.options.css); + this.content.forEach(function (chapter) { + var rendered = (0, ejs_1.render)(_this.options.chapterXHTML, __assign({ lang: _this.options.lang, prependChapterTitles: _this.options.prependChapterTitles }, chapter)); + oebps.file(chapter.filename, rendered); + }); + metainf = this.zip.folder('META-INF'); + metainf.file('container.xml', ''); + if (this.options.version === 2) { + // write meta-inf/com.apple.ibooks.display-options.xml [from pedrosanta:xhtml#6] + metainf.file('com.apple.ibooks.display-options.xml', ''); + } + opt = __assign(__assign({}, this.options), { id: this.uuid, images: this.images, cover: this.cover, content: this.content }); + oebps.file('content.opf', (0, ejs_1.render)(this.options.contentOPF, opt)); + oebps.file('toc.ncx', (0, ejs_1.render)(this.options.tocNCX, opt)); + oebps.file('toc.xhtml', (0, ejs_1.render)(this.options.tocXHTML, opt)); + return [2 /*return*/]; + }); + }); + }; + EPub.prototype.downloadAllFonts = function () { + return __awaiter(this, void 0, void 0, function () { + var oebps, fonts, i, fontContents; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.options.fonts.length) + return [2 /*return*/, this.log('No fonts to download')]; + oebps = this.zip.folder('OEBPS'); + fonts = oebps.folder('fonts'); + i = 0; + _a.label = 1; + case 1: + if (!(i < this.options.fonts.length)) return [3 /*break*/, 4]; + return [4 /*yield*/, Promise.all(this.options.fonts.slice(i, i + this.options.batchSize).map(function (font) { + var d = (0, util_1.retryFetch)(font.url, _this.options.fetchTimeout, _this.options.retryTimes, _this.log) + .then(function (res) { return (_this.log("Downloaded font " + font.url), __assign(__assign({}, font), { data: res })); }); + return _this.options.ignoreFailedDownloads + ? d.catch(function (reason) { return (_this.warn("Warning (font " + font.url + "): Download failed", reason), __assign(__assign({}, font), { data: '' })); }) + : d; + }))]; + case 2: + fontContents = _a.sent(); + fontContents.forEach(function (font) { return fonts.file(font.filename, font.data); }); + _a.label = 3; + case 3: + i += this.options.batchSize; + return [3 /*break*/, 1]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + EPub.prototype.downloadAllImages = function () { + return __awaiter(this, void 0, void 0, function () { + var oebps, images, i, imageContents; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.images.length) + return [2 /*return*/, this.log('No images to download')]; + oebps = this.zip.folder('OEBPS'); + images = oebps.folder('images'); + i = 0; + _a.label = 1; + case 1: + if (!(i < this.images.length)) return [3 /*break*/, 4]; + return [4 /*yield*/, Promise.all(this.images.slice(i, i + this.options.batchSize).map(function (image) { + var d = (0, util_1.retryFetch)(image.url, _this.options.fetchTimeout, _this.options.retryTimes, _this.log) + .then(function (res) { return (_this.log("Downloaded image " + image.url), __assign(__assign({}, image), { data: res })); }); + return _this.options.ignoreFailedDownloads + ? d.catch(function (reason) { return (_this.warn("Warning (image " + image.url + "): Download failed", reason), __assign(__assign({}, image), { data: '' })); }) + : d; + }))]; + case 2: + imageContents = _a.sent(); + imageContents.forEach(function (image) { return images.file(image.id + "." + image.extension, image.data); }); + _a.label = 3; + case 3: + i += this.options.batchSize; + return [3 /*break*/, 1]; + case 4: return [2 /*return*/]; + } + }); + }); + }; + EPub.prototype.makeCover = function () { + return __awaiter(this, void 0, void 0, function () { + var oebps, coverContent; + var _this = this; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + if (!this.cover) + return [2 /*return*/, this.log('No cover to download')]; + oebps = this.zip.folder('OEBPS'); + return [4 /*yield*/, (0, util_1.retryFetch)(this.options.cover, this.options.fetchTimeout, this.options.retryTimes, this.log) + .catch(function (reason) { return (_this.warn("Warning (cover " + _this.options.cover + "): Download failed", reason), ''); })]; + case 1: + coverContent = _a.sent(); + oebps.file("cover." + this.cover.extension, coverContent); + return [2 /*return*/]; + } + }); + }); + }; + return EPub; +}()); +exports.EPub = EPub; +var epub = function (optionsOrTitle, content) { + var args = []; + for (var _i = 2; _i < arguments.length; _i++) { + args[_i - 2] = arguments[_i]; + } + (0, ow_1.default)(optionsOrTitle, ow_1.default.any(util_1.optionsPredicate, ow_1.default.string)); + var options = ow_1.default.isValid(optionsOrTitle, ow_1.default.string) ? { title: optionsOrTitle } : optionsOrTitle; + (0, ow_1.default)(args, ow_1.default.array.ofType(ow_1.default.any(ow_1.default.boolean, ow_1.default.number))); + args.forEach(function (arg) { + if (ow_1.default.isValid(arg, ow_1.default.boolean)) + options.verbose = arg; + else + options.version = arg; + }); + return new EPub(options, content).genEpub(); +}; +exports["default"] = epub; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/chapter.xhtml.ejs.js": +/*!*****************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/chapter.xhtml.ejs.js ***! + \*****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\" lang=\"<%= lang %>\">\n\n <%= title %>\n \n\n\n <% if (prependChapterTitles) { %>\n

    <%= title %>

    \n <% if (author.length) { %>\n

    <%= author.join(', ') %>

    \n <% } %>\n <% if (url) { %>\n

    \"><%= url %>

    \n <% } %>\n <% } %>\n <%- content %>\n\n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/content.opf.ejs.js": +/*!***************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/content.opf.ejs.js ***! + \***************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\n \n\n <%= id %>\n <%= title %>\n <%= description %>\n <%= publisher %>\n \"><%= author.join(\",\") %>\n <%= date %>\n <%= lang %>\n <% if(cover) { %>\n \n <% } %>\n \n\n \n\n \n \n \n \n\n <% if(cover) { %>\n \" media-type=\"<%= cover.mediaType %>\" />\n <% } %>\n \n <% images.forEach(function(image, index){ %>\n \" href=\"images/<%= image.id %>.<%= image.extension %>\" media-type=\"<%= image.mediaType %>\" />\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n _<%= content.id %>\" href=\"<%= content.filename %>\" media-type=\"application/xhtml+xml\" />\n <% }) %>\n\n <% fonts.forEach(function(font, index) { %>\n \" href=\"fonts/<%= font.filename %>\" media-type=\"<%= font.mediaType %>\" />\n <% }) %>\n \n\n \n <% content.forEach(function(content, index){ %>\n <% if(content.beforeToc){ %>\n _<%= content.id %>\"/>\n <% } %>\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n <% if(!content.beforeToc){ %>\n _<%= content.id %>\"/>\n <% } %>\n <% }) %>\n \n \n \" href=\"toc.xhtml\" />\n \n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/toc.xhtml.ejs.js": +/*!*************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/toc.xhtml.ejs.js ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\" xmlns=\"http://www.w3.org/1999/xhtml\">\n\n <%= title %>\n \n\n\n

    <%= tocTitle %>

    \n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc){ %>\n

    \n \"><%= (numberChaptersInTOC ? (1+index) + \". \" : \"\") + content.title %>\n <% if(content.author.length){ %>\n - <%= content.author.join(\",\") %>\n <% } %>\n <% if(content.url){ %><%= content.url %><% }%>\n \n

    \n <% } %>\n <% }) %>\n\n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/chapter.xhtml.ejs.js": +/*!*****************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/chapter.xhtml.ejs.js ***! + \*****************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\" lang=\"<%= lang %>\">\n\n \n <%= title %>\n \n\n\n <% if (prependChapterTitles) { %>\n

    <%= title %>

    \n <% if (author.length) { %>\n

    <%= author.join(', ') %>

    \n <% } %>\n <% if (url) { %>\n

    \"><%= url %>

    \n <% } %>\n <% } %>\n <%- content %>\n\n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/content.opf.ejs.js": +/*!***************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/content.opf.ejs.js ***! + \***************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\n \n\n <%= id %>\n 22\n BookId\n <%= title %>\n <%= title %>\n <%= lang %>\n <%= lang %>\n <%= (new Date()).toISOString().split(\".\")[0]+ \"Z\" %>\n <%= author.join(\",\") %>\n <%= author.join(\",\") %>\n <%= publisher %>\n <%= publisher %>\n <%= date %>\n <%= date %>\n All rights reserved\n Copyright © <%= (new Date()).getFullYear() %> by <%= publisher %>\n <% if(cover) { %>\n \n <% } %>\n \n true\n\n \n\n \n \n \n \n\n <% if(cover) { %>\n \" media-type=\"<%= cover.mediaType %>\" />\n <% } %>\n \n <% images.forEach(function(image, index){ %>\n \" href=\"images/<%= image.id %>.<%= image.extension %>\" media-type=\"<%= image.mediaType %>\" />\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n _<%= content.id %>\" href=\"<%= content.filename %>\" media-type=\"application/xhtml+xml\" />\n <% }) %>\n\n <% fonts.forEach(function(font, index){%>\n \" href=\"fonts/<%= font.filename %>\" media-type=\"<%= font.mediaType %>\" />\n <%})%>\n \n\n \n <% content.forEach(function(content, index){ %>\n <% if(content.beforeToc){ %>\n _<%= content.id %>\"/>\n <% } %>\n <% }) %>\n \n <% content.forEach(function(content, index){ %>\n <% if(!content.beforeToc){ %>\n _<%= content.id %>\"/>\n <% } %>\n <% }) %>\n \n \n \n \n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/toc.xhtml.ejs.js": +/*!*************************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/toc.xhtml.ejs.js ***! + \*************************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n\" lang=\"<%- lang %>\">\n\n <%= title %>\n \n \n\n\n

    <%= tocTitle %>

    \n \n\n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/template.css.js": +/*!******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/template.css.js ***! + \******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = ".epub-author {\n color: #555;\n}\n\n.epub-link {\n margin-bottom: 30px;\n}\n\n.epub-link a {\n color: #666;\n font-size: 90%;\n}\n\n.toc-author {\n font-size: 90%;\n color: #555;\n}\n\n.toc-link {\n color: #999;\n font-size: 85%;\n display: block;\n}\n\nhr {\n border: 0;\n border-bottom: 1px solid #dedede;\n margin: 60px 10%;\n}"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/toc.ncx.ejs.js": +/*!*****************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/toc.ncx.ejs.js ***! + \*****************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = "\n\n \n \" />\n \n \n \n \n \n \n <%= title %>\n \n \n <%= author %>\n \n \n <% var _index = 0; %>\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc && content.beforeToc){ %>\n _<%= content.id %>\" playOrder=\"<%= _index++ %>\" class=\"chapter\">\n \n <%= (numberChaptersInTOC ? (1+index) + \". \" : \"\") + content.title %>\n \n \"/>\n \n <% } %>\n <% }) %>\n \n <% if (tocInTOC){ %>\n \" class=\"chapter\">\n \n <%= tocTitle %>\n \n \n \n <% } %>\n\n <% content.forEach(function(content, index){ %>\n <% if(!content.excludeFromToc && !content.beforeToc){ %>\n _<%= content.id %>\" playOrder=\"<%= _index++ %>\" class=\"chapter\">\n \n <%= (numberChaptersInTOC ? (1+index) + \". \" : \"\") + content.title %>\n \n \"/>\n \n <% } %>\n <% }) %>\n \n"; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/constants.js": +/*!**********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/constants.js ***! + \**********************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.allowedXhtml11Tags = exports.allowedAttributes = void 0; +exports.allowedAttributes = ["content", "alt", "id", "title", "src", "href", "about", "accesskey", "aria-activedescendant", "aria-atomic", "aria-autocomplete", "aria-busy", "aria-checked", "aria-controls", "aria-describedat", "aria-describedby", "aria-disabled", "aria-dropeffect", "aria-expanded", "aria-flowto", "aria-grabbed", "aria-haspopup", "aria-hidden", "aria-invalid", "aria-label", "aria-labelledby", "aria-level", "aria-live", "aria-multiline", "aria-multiselectable", "aria-orientation", "aria-owns", "aria-posinset", "aria-pressed", "aria-readonly", "aria-relevant", "aria-required", "aria-selected", "aria-setsize", "aria-sort", "aria-valuemax", "aria-valuemin", "aria-valuenow", "aria-valuetext", "class", "content", "contenteditable", "contextmenu", "datatype", "dir", "draggable", "dropzone", "hidden", "hreflang", "id", "inlist", "itemid", "itemref", "itemscope", "itemtype", "lang", "media", "ns1:type", "ns2:alphabet", "ns2:ph", "onabort", "onblur", "oncanplay", "oncanplaythrough", "onchange", "onclick", "oncontextmenu", "ondblclick", "ondrag", "ondragend", "ondragenter", "ondragleave", "ondragover", "ondragstart", "ondrop", "ondurationchange", "onemptied", "onended", "onerror", "onfocus", "oninput", "oninvalid", "onkeydown", "onkeypress", "onkeyup", "onload", "onloadeddata", "onloadedmetadata", "onloadstart", "onmousedown", "onmousemove", "onmouseout", "onmouseover", "onmouseup", "onmousewheel", "onpause", "onplay", "onplaying", "onprogress", "onratechange", "onreadystatechange", "onreset", "onscroll", "onseeked", "onseeking", "onselect", "onshow", "onstalled", "onsubmit", "onsuspend", "ontimeupdate", "onvolumechange", "onwaiting", "prefix", "property", "rel", "resource", "rev", "role", "spellcheck", "style", "tabindex", "target", "title", "type", "typeof", "vocab", "xml:base", "xml:lang", "xml:space", "colspan", "rowspan", "epub:type", "epub:prefix"]; +exports.allowedXhtml11Tags = ["div", "p", "h1", "h2", "h3", "h4", "h5", "h6", "ul", "ol", "li", "dl", "dt", "dd", "address", "hr", "pre", "blockquote", "center", "ins", "del", "a", "span", "bdo", "br", "em", "strong", "dfn", "code", "samp", "kbd", "bar", "cite", "abbr", "acronym", "q", "sub", "sup", "tt", "i", "b", "big", "small", "u", "s", "strike", "basefont", "font", "object", "param", "img", "table", "caption", "colgroup", "col", "thead", "tfoot", "tbody", "tr", "th", "td", "embed", "applet", "iframe", "img", "map", "noscript", "ns:svg", "object", "script", "table", "tt", "var"]; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/fetchable-browser.js": +/*!******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/fetchable-browser.js ***! + \******************************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports) { + +"use strict"; + +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.type = void 0; +/// +exports.type = 'blob'; +var fetchable = function (url, timeout) { return __awaiter(void 0, void 0, void 0, function () { + var controller, out, res; + return __generator(this, function (_a) { + switch (_a.label) { + case 0: + controller = typeof AbortController !== "undefined" ? new AbortController() : {}; + out = setTimeout(function () { return controller.abort && controller.abort(); }, timeout); + _a.label = 1; + case 1: + _a.trys.push([1, , 3, 4]); + return [4 /*yield*/, fetch(url, { signal: controller.signal })]; + case 2: + res = _a.sent(); + if (!res.ok) + throw new Error("Got error " + res.status + " (" + res.statusText + ") while fetching " + url); + return [2 /*return*/, res.blob()]; + case 3: + clearTimeout(out); + return [7 /*endfinally*/]; + case 4: return [2 /*return*/]; + } + }); +}); }; +exports["default"] = fetchable; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html-parse-browser.js": +/*!*******************************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html-parse-browser.js ***! + \*******************************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +/// +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.fixHTML = void 0; +var constants_1 = __webpack_require__(/*! ./constants */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/constants.js"); +var allowedXhtml11Tags = constants_1.allowedXhtml11Tags.map(function (t) { return t.toUpperCase(); }); +function fixHTML(index, html, imgCB) { + var _this = this; + var document = new DOMParser().parseFromString(html, 'text/html'); + // reverse to make sure we transform innermost first + Array.from(document.body.querySelectorAll('*')).reverse().forEach(function (element) { + for (var _i = 0, _a = Array.from(element.attributes); _i < _a.length; _i++) { + var a = _a[_i]; + if (constants_1.allowedAttributes.indexOf(a.name) === -1) { + _this.warn("Warning (content[" + index + "]): attribute " + a.name + " isn't allowed."); + element.removeAttribute(a.name); + } + } + if (_this.options.version === 2 && allowedXhtml11Tags.indexOf(element.tagName) === -1) { + _this.warn("Warning (content[" + index + "]): tag " + element.tagName + " isn't allowed in EPUB 2/XHTML 1.1 DTD."); + var div = document.createElement('div'); + for (var _b = 0, _c = Array.from(element.attributes); _b < _c.length; _b++) { + var a = _c[_b]; + div.setAttribute(a.name, a.value); + } + div.innerHTML = element.innerHTML; + element.replaceWith(div); + } + }); + // record images and change where they point + document.body.querySelectorAll('img').forEach(function (element) { + element.alt || (element.alt = "image-placeholder"); + if (!element.src) + element.remove(); + else + element.src = imgCB.call(_this, element.src); + }); + return new XMLSerializer().serializeToString(document.body); +} +exports.fixHTML = fixHTML; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html.js": +/*!*****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html.js ***! + \*****************************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.normalizeHTML = void 0; +var mime_1 = __webpack_require__(/*! mime */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js"); +var html_parse_1 = __webpack_require__(/*! ./html-parse */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html-parse-browser.js"); +var other_1 = __webpack_require__(/*! ./other */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/other.js"); +function imgSrc(url) { + var image = this.images.find(function (i) { return i.url === url; }); + if (!image) { + var mediaType = (0, mime_1.getType)(url.replace(/\?.*/, "")) || ''; + image = { + url: url, + mediaType: mediaType, + id: (0, other_1.uuid)(), + extension: (0, mime_1.getExtension)(mediaType) || '', + }; + this.images.push(image); + } + return "images/" + image.id + "." + image.extension; +} +function normalizeHTML(index, data) { + return html_parse_1.fixHTML.call(this, index, data, imgSrc).replace(/^|<\/body>$/g, ''); +} +exports.normalizeHTML = normalizeHTML; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/index.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/index.js ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __assign = (this && this.__assign) || function () { + __assign = Object.assign || function(t) { + for (var s, i = 1, n = arguments.length; i < n; i++) { + s = arguments[i]; + for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) + t[p] = s[p]; + } + return t; + }; + return __assign.apply(this, arguments); +}; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.validateAndNormalizeChapter = exports.validateAndNormalizeChapters = exports.validateAndNormalizeOptions = exports.normName = exports.chapterDefaults = exports.optionsDefaults = exports.chapterPredicate = exports.optionsPredicate = void 0; +var diacritics_1 = __webpack_require__(/*! diacritics */ "./node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js"); +var mime_1 = __webpack_require__(/*! mime */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js"); +var ow_1 = __importDefault(__webpack_require__(/*! ow */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js")); +var chapter_xhtml_ejs_1 = __importDefault(__webpack_require__(/*! ../templates/epub2/chapter.xhtml.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/chapter.xhtml.ejs.js")); +var content_opf_ejs_1 = __importDefault(__webpack_require__(/*! ../templates/epub2/content.opf.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/content.opf.ejs.js")); +var toc_xhtml_ejs_1 = __importDefault(__webpack_require__(/*! ../templates/epub2/toc.xhtml.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/toc.xhtml.ejs.js")); +var chapter_xhtml_ejs_2 = __importDefault(__webpack_require__(/*! ../templates/epub3/chapter.xhtml.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/chapter.xhtml.ejs.js")); +var content_opf_ejs_2 = __importDefault(__webpack_require__(/*! ../templates/epub3/content.opf.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/content.opf.ejs.js")); +var toc_xhtml_ejs_2 = __importDefault(__webpack_require__(/*! ../templates/epub3/toc.xhtml.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/toc.xhtml.ejs.js")); +var template_css_1 = __importDefault(__webpack_require__(/*! ../templates/template.css */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/template.css.js")); +var toc_ncx_ejs_1 = __importDefault(__webpack_require__(/*! ../templates/toc.ncx.ejs */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/toc.ncx.ejs.js")); +var uslug_1 = __importDefault(__webpack_require__(/*! uslug */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/index.js")); +var html_1 = __webpack_require__(/*! ./html */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html.js"); +var validate_1 = __webpack_require__(/*! ./validate */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/validate.js"); +Object.defineProperty(exports, "chapterPredicate", ({ enumerable: true, get: function () { return validate_1.chapterPredicate; } })); +Object.defineProperty(exports, "optionsPredicate", ({ enumerable: true, get: function () { return validate_1.optionsPredicate; } })); +__exportStar(__webpack_require__(/*! ./html */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html.js"), exports); +__exportStar(__webpack_require__(/*! ./other */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/other.js"), exports); +var optionsDefaults = function (version) { + if (version === void 0) { version = 3; } + return ({ + description: '', + author: ['anonymous'], + publisher: 'anonymous', + tocTitle: 'Table of Contents', + tocInTOC: true, + numberChaptersInTOC: true, + prependChapterTitles: true, + date: new Date().toISOString(), + lang: "en", + css: template_css_1.default, + chapterXHTML: version === 2 ? chapter_xhtml_ejs_1.default : chapter_xhtml_ejs_2.default, + contentOPF: version === 2 ? content_opf_ejs_1.default : content_opf_ejs_2.default, + tocNCX: toc_ncx_ejs_1.default, + tocXHTML: version === 2 ? toc_xhtml_ejs_1.default : toc_xhtml_ejs_2.default, + fonts: [], + version: version, + fetchTimeout: 20000, + retryTimes: 3, + batchSize: 100, + ignoreFailedDownloads: false, + verbose: false, + }); +}; +exports.optionsDefaults = optionsDefaults; +var chapterDefaults = function (index) { return ({ + title: "Chapter " + (index + 1), + id: "item_" + index, + url: '', + excludeFromToc: false, + beforeToc: false, +}); }; +exports.chapterDefaults = chapterDefaults; +var normName = function (name) { return ow_1.default.isValid(name, ow_1.default.string) ? [name] : (name || []); }; +exports.normName = normName; +var validateAndNormalizeOptions = function (options) { + (0, ow_1.default)(options, 'options', validate_1.optionsPredicate); + // put defaults + var opt = __assign(__assign({}, (0, exports.optionsDefaults)(options.version || 3)), options); + opt.author = (0, exports.normName)(opt.author); + opt.fonts = opt.fonts.map(function (font) { return (__assign(__assign({}, font), { mediaType: (0, mime_1.getType)(font.filename) })); }); + opt.date = new Date(opt.date).toISOString(); + opt.lang = (0, diacritics_1.remove)(opt.lang); + return opt; +}; +exports.validateAndNormalizeOptions = validateAndNormalizeOptions; +function validateAndNormalizeChapters(chapters) { + var _this = this; + (0, ow_1.default)(chapters, 'content', ow_1.default.array.ofType(validate_1.chapterPredicate)); + var afterTOC = false; + return chapters.map(function (chapter, index) { + var ch = (0, exports.validateAndNormalizeChapter)(chapter, index); + ch.content = html_1.normalizeHTML.call(_this, index, chapter.content); + if (afterTOC && ch.beforeToc) + _this.warn("Warning (content[" + index + "]): Got `beforeToc=true` after at least one `beforeToc=false`. Chapters will be out of order."); + if (!ch.beforeToc) + afterTOC = true; + return ch; + }); +} +exports.validateAndNormalizeChapters = validateAndNormalizeChapters; +var validateAndNormalizeChapter = function (chapter, index) { + var ch = __assign(__assign({}, (0, exports.chapterDefaults)(index)), chapter); + var slug = (0, uslug_1.default)((0, diacritics_1.remove)(ch.title)); + if (!ch.filename) { + ch.filename = index + "_" + slug + ".xhtml"; + } + else if (!ch.filename.endsWith('.xhtml')) { + ch.filename = ch.filename + ".xhtml"; + } + ch.author = (0, exports.normName)(ch.author); + return ch; +}; +exports.validateAndNormalizeChapter = validateAndNormalizeChapter; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/other.js": +/*!******************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/other.js ***! + \******************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +var __generator = (this && this.__generator) || function (thisArg, body) { + var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g; + return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g; + function verb(n) { return function (v) { return step([n, v]); }; } + function step(op) { + if (f) throw new TypeError("Generator is already executing."); + while (_) try { + if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t; + if (y = 0, t) op = [op[0] & 2, t.value]; + switch (op[0]) { + case 0: case 1: t = op; break; + case 4: _.label++; return { value: op[1], done: false }; + case 5: _.label++; y = op[1]; op = [0]; continue; + case 7: op = _.ops.pop(); _.trys.pop(); continue; + default: + if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; } + if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; } + if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; } + if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; } + if (t[2]) _.ops.pop(); + _.trys.pop(); continue; + } + op = body.call(thisArg, _); + } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; } + if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true }; + } +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.retryFetch = exports.uuid = void 0; +var fetchable_1 = __importDefault(__webpack_require__(/*! ./fetchable */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/fetchable-browser.js")); +__exportStar(__webpack_require__(/*! ./fetchable */ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/fetchable-browser.js"), exports); +var uuid = function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx' + .replace(/[xy]/g, function (c) { + var r = Math.random() * 16 | 0; + return (c === 'x' ? r : r & 0x3 | 0x8).toString(16); +}); }; +exports.uuid = uuid; +var retryFetch = function (url, timeout, retry, log) { return __awaiter(void 0, void 0, void 0, function () { + var i, _a; + return __generator(this, function (_b) { + switch (_b.label) { + case 0: + i = 0; + _b.label = 1; + case 1: + if (!(i < retry - 1)) return [3 /*break*/, 6]; + _b.label = 2; + case 2: + _b.trys.push([2, 4, , 5]); + return [4 /*yield*/, (0, fetchable_1.default)(url, timeout)]; + case 3: return [2 /*return*/, _b.sent()]; + case 4: + _a = _b.sent(); + log("Failed to fetch `" + url + "` " + (i + 1) + " " + (i === 0 ? 'time' : 'times') + ". Retrying..."); + return [3 /*break*/, 5]; + case 5: + i++; + return [3 /*break*/, 1]; + case 6: + // last try, no catching + return [2 /*return*/, (0, fetchable_1.default)(url, timeout)]; + } + }); +}); }; +exports.retryFetch = retryFetch; + + +/***/ }), + +/***/ "./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/validate.js": +/*!*********************************************************************************************************!*\ + !*** ./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/validate.js ***! + \*********************************************************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.optionsPredicate = exports.fontPredicate = exports.chapterPredicate = void 0; +var ow_1 = __importDefault(__webpack_require__(/*! ow */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js")); +var name = ow_1.default.optional.any(ow_1.default.string, ow_1.default.array.ofType(ow_1.default.string), ow_1.default.undefined); +var filename = ow_1.default.optional.string.is(function (s) { return (s.indexOf('/') === -1 && s.indexOf('\\') === -1) || "Filename must not include slashes, got `" + s + "`"; }); +var filenameReq = ow_1.default.string.is(function (s) { return (s.indexOf('/') === -1 && s.indexOf('\\') === -1) || "Filename must not include slashes, got `" + s + "`"; }); +exports.chapterPredicate = ow_1.default.object.partialShape({ + title: ow_1.default.optional.string, + author: name, + content: ow_1.default.string, + excludeFromToc: ow_1.default.optional.boolean, + beforeToc: ow_1.default.optional.boolean, + filename: filename, + url: ow_1.default.optional.string, +}); +exports.fontPredicate = ow_1.default.object.partialShape({ + filename: filenameReq, + url: ow_1.default.string, +}); +exports.optionsPredicate = ow_1.default.object.partialShape({ + title: ow_1.default.string, + author: name, + publisher: ow_1.default.optional.string, + description: ow_1.default.optional.string, + cover: ow_1.default.optional.string, + tocTitle: ow_1.default.optional.string, + tocInTOC: ow_1.default.optional.boolean, + numberChaptersInTOC: ow_1.default.optional.boolean, + prependChapterTitles: ow_1.default.optional.boolean, + date: ow_1.default.optional.string, + lang: ow_1.default.optional.string, + css: ow_1.default.optional.string, + chapterXHTML: ow_1.default.optional.string, + contentOPF: ow_1.default.optional.string, + tocNCX: ow_1.default.optional.string, + tocXHTML: ow_1.default.optional.string, + fonts: ow_1.default.optional.any(ow_1.default.array.ofType(exports.fontPredicate), ow_1.default.undefined), + version: ow_1.default.optional.number.is(function (x) { return x === 3 || x === 2 || + "Expected version to be 3 or 2, got `" + x + "`"; }), + fetchTimeout: ow_1.default.optional.number.positive, + retryTimes: ow_1.default.optional.number.positive, + batchSize: ow_1.default.optional.number.positive, + ignoreFailedDownloads: ow_1.default.optional.boolean, + verbose: ow_1.default.optional.any(ow_1.default.boolean, ow_1.default.function), +}); + + +/***/ }), + +/***/ "./node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js": +/*!**********************************************************************!*\ + !*** ./node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js ***! + \**********************************************************************/ +/***/ ((module) => { + +"use strict"; + + +module.exports = value => { + const type = typeof value; + return value !== null && (type === 'object' || type === 'function'); +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/jszip@3.7.1/node_modules/jszip/dist/jszip.min.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/.pnpm/jszip@3.7.1/node_modules/jszip/dist/jszip.min.js ***! + \*****************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/*! + +JSZip v3.7.1 - A JavaScript class for generating and reading zip files + + +(c) 2009-2016 Stuart Knightley +Dual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown. + +JSZip uses the library pako released under the MIT license : +https://github.com/nodeca/pako/blob/master/LICENSE +*/ + +!function(t){if(true)module.exports=t();else {}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=undefined;if(!t&&e)return require(r,!0);if(l)return l(r,!0);var i=new Error("Cannot find module '"+r+"'");throw i.code="MODULE_NOT_FOUND",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=undefined,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{"./support":30,"./utils":32}],2:[function(t,e,r){"use strict";var i=t("./external"),n=t("./stream/DataWorker"),s=t("./stream/Crc32Probe"),a=t("./stream/DataLengthProbe");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a("data_length")),e=this;return t.on("end",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a("uncompressedSize")).pipe(e.compressWorker(r)).pipe(new a("compressedSize")).withStreamInfo("compression",e)},e.exports=o},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(t,e,r){"use strict";var i=t("./stream/GenericWorker");r.STORE={magic:"\0\0",compressWorker:function(t){return new i("STORE compression")},uncompressWorker:function(){return new i("STORE decompression")}},r.DEFLATE=t("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(t,e,r){"use strict";var i=t("./utils");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?"string"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{"./utils":32}],5:[function(t,e,r){"use strict";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){"use strict";var i=null;i="undefined"!=typeof Promise?Promise:t("lie"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){"use strict";var i="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,n=t("pako"),s=t("./utils"),a=t("./stream/GenericWorker"),o=i?"uint8array":"array";function h(t,e){a.call(this,"FlateWorker/"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic="\b\0",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h("Deflate",t)},r.uncompressWorker=function(){return new h("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(t,e,r){"use strict";function A(t,e){var r,i="";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo("string",s(h.name)),d=I.transformTo("string",O.utf8encode(h.name)),c=h.comment,p=I.transformTo("string",s(c)),m=I.transformTo("string",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b="",v="",y="",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),"UNIX"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+="up"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+="uc"+A(y.length,2)+y);var E="";return E+="\n\0",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+"\0\0\0\0"+A(z,4)+A(i,4)+f+b+p}}var I=t("../utils"),n=t("../stream/GenericWorker"),O=t("../utf8"),B=t("../crc32"),R=t("../signature");function s(t,e,r,i){n.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo("string",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{"../utils":32}],19:[function(t,e,r){"use strict";var i=t("./Uint8ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(t,e,r){"use strict";var i=t("./DataReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./DataReader":18}],21:[function(t,e,r){"use strict";var i=t("./ArrayReader");function n(t){i.call(this,t)}t("../utils").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{"../utils":32,"./ArrayReader":17}],22:[function(t,e,r){"use strict";var i=t("../utils"),n=t("../support"),s=t("./ArrayReader"),a=t("./StringReader"),o=t("./NodeBufferReader"),h=t("./Uint8ArrayReader");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),"string"!==e||n.uint8array?"nodebuffer"===e?new o(t):n.uint8array?new h(i.transformTo("uint8array",t)):new s(i.transformTo("array",t)):new a(t)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(t,e,r){"use strict";r.LOCAL_FILE_HEADER="PK",r.CENTRAL_FILE_HEADER="PK",r.CENTRAL_DIRECTORY_END="PK",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",r.ZIP64_CENTRAL_DIRECTORY_END="PK",r.DATA_DESCRIPTOR="PK\b"},{}],24:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../utils");function s(t){i.call(this,"ConvertWorker to "+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{"../utils":32,"./GenericWorker":28}],25:[function(t,e,r){"use strict";var i=t("./GenericWorker"),n=t("../crc32");function s(){i.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}t("../utils").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataLengthProbe for "+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{"../utils":32,"./GenericWorker":28}],27:[function(t,e,r){"use strict";var i=t("../utils"),n=t("./GenericWorker");function s(t){n.call(this,"DataWorker");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":t=this.data.substring(this.index,e);break;case"uint8array":t=this.data.subarray(this.index,e);break;case"array":case"nodebuffer":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{"../utils":32,"./GenericWorker":28}],28:[function(t,e,r){"use strict";function i(t){this.name=t||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit("data",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit("error",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit("error",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r "+t:t}},e.exports=i},{}],29:[function(t,e,r){"use strict";var h=t("../utils"),n=t("./ConvertWorker"),s=t("./GenericWorker"),u=t("../base64"),i=t("../support"),a=t("../external"),o=null;if(i.nodestream)try{o=t("../nodejs/NodejsStreamOutputAdapter")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on("data",function(t,e){i.push(t),o&&o(e)}).on("error",function(t){i=[],r(t)}).on("end",function(){try{var t=function(t,e,r){switch(t){case"blob":return h.newBlob(h.transformTo("arraybuffer",e),r);case"base64":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo("nodebuffer",t).toString("utf-8"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?"uint8array":"array",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?"uint8array":"array",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(t,e,a){"use strict";var o=t("./support"),h=t("./base64"),r=t("./nodejsUtils"),i=t("set-immediate-shim"),u=t("./external");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{"./common":41}],43:[function(t,e,r){"use strict";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){"use strict";var h,d=t("../utils/common"),u=t("./trees"),c=t("./adler32"),p=t("./crc32"),i=t("./messages"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg="incorrect header check",r.mode=30;break}if(8!=(15&u)){t.msg="unknown compression method",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg="invalid window size",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg="invalid block type",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg="invalid stored block lengths",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid code lengths set",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg="invalid bit length repeat",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg="invalid bit length repeat",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg="invalid code -- missing end-of-block",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg="invalid literal/lengths set",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg="invalid distances set",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg="invalid literal/length code",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg="invalid distance code",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg="invalid distance too far back",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg="invalid distance too far back",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{"../utils/common":41}],53:[function(t,e,r){"use strict";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){"use strict";e.exports="function"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)}); + +/***/ }), + +/***/ "./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js ***! + \**************************************************************************************/ +/***/ ((module, exports, __webpack_require__) => { + +/* module decorator */ module = __webpack_require__.nmd(module); +/** + * Lodash (Custom Build) + * Build: `lodash modularize exports="npm" -o ./` + * Copyright JS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ + +/** Used as the size to enable large array optimizations. */ +var LARGE_ARRAY_SIZE = 200; + +/** Used to stand-in for `undefined` hash values. */ +var HASH_UNDEFINED = '__lodash_hash_undefined__'; + +/** Used to compose bitmasks for value comparisons. */ +var COMPARE_PARTIAL_FLAG = 1, + COMPARE_UNORDERED_FLAG = 2; + +/** Used as references for various `Number` constants. */ +var MAX_SAFE_INTEGER = 9007199254740991; + +/** `Object#toString` result references. */ +var argsTag = '[object Arguments]', + arrayTag = '[object Array]', + asyncTag = '[object AsyncFunction]', + boolTag = '[object Boolean]', + dateTag = '[object Date]', + errorTag = '[object Error]', + funcTag = '[object Function]', + genTag = '[object GeneratorFunction]', + mapTag = '[object Map]', + numberTag = '[object Number]', + nullTag = '[object Null]', + objectTag = '[object Object]', + promiseTag = '[object Promise]', + proxyTag = '[object Proxy]', + regexpTag = '[object RegExp]', + setTag = '[object Set]', + stringTag = '[object String]', + symbolTag = '[object Symbol]', + undefinedTag = '[object Undefined]', + weakMapTag = '[object WeakMap]'; + +var arrayBufferTag = '[object ArrayBuffer]', + dataViewTag = '[object DataView]', + float32Tag = '[object Float32Array]', + float64Tag = '[object Float64Array]', + int8Tag = '[object Int8Array]', + int16Tag = '[object Int16Array]', + int32Tag = '[object Int32Array]', + uint8Tag = '[object Uint8Array]', + uint8ClampedTag = '[object Uint8ClampedArray]', + uint16Tag = '[object Uint16Array]', + uint32Tag = '[object Uint32Array]'; + +/** + * Used to match `RegExp` + * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). + */ +var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; + +/** Used to detect host constructors (Safari). */ +var reIsHostCtor = /^\[object .+?Constructor\]$/; + +/** Used to detect unsigned integer values. */ +var reIsUint = /^(?:0|[1-9]\d*)$/; + +/** Used to identify `toStringTag` values of typed arrays. */ +var typedArrayTags = {}; +typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = +typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = +typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = +typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = +typedArrayTags[uint32Tag] = true; +typedArrayTags[argsTag] = typedArrayTags[arrayTag] = +typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = +typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = +typedArrayTags[errorTag] = typedArrayTags[funcTag] = +typedArrayTags[mapTag] = typedArrayTags[numberTag] = +typedArrayTags[objectTag] = typedArrayTags[regexpTag] = +typedArrayTags[setTag] = typedArrayTags[stringTag] = +typedArrayTags[weakMapTag] = false; + +/** Detect free variable `global` from Node.js. */ +var freeGlobal = typeof __webpack_require__.g == 'object' && __webpack_require__.g && __webpack_require__.g.Object === Object && __webpack_require__.g; + +/** Detect free variable `self`. */ +var freeSelf = typeof self == 'object' && self && self.Object === Object && self; + +/** Used as a reference to the global object. */ +var root = freeGlobal || freeSelf || Function('return this')(); + +/** Detect free variable `exports`. */ +var freeExports = true && exports && !exports.nodeType && exports; + +/** Detect free variable `module`. */ +var freeModule = freeExports && "object" == 'object' && module && !module.nodeType && module; + +/** Detect the popular CommonJS extension `module.exports`. */ +var moduleExports = freeModule && freeModule.exports === freeExports; + +/** Detect free variable `process` from Node.js. */ +var freeProcess = moduleExports && freeGlobal.process; + +/** Used to access faster Node.js helpers. */ +var nodeUtil = (function() { + try { + return freeProcess && freeProcess.binding && freeProcess.binding('util'); + } catch (e) {} +}()); + +/* Node.js helper references. */ +var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; + +/** + * A specialized version of `_.filter` for arrays without support for + * iteratee shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {Array} Returns the new filtered array. + */ +function arrayFilter(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length, + resIndex = 0, + result = []; + + while (++index < length) { + var value = array[index]; + if (predicate(value, index, array)) { + result[resIndex++] = value; + } + } + return result; +} + +/** + * Appends the elements of `values` to `array`. + * + * @private + * @param {Array} array The array to modify. + * @param {Array} values The values to append. + * @returns {Array} Returns `array`. + */ +function arrayPush(array, values) { + var index = -1, + length = values.length, + offset = array.length; + + while (++index < length) { + array[offset + index] = values[index]; + } + return array; +} + +/** + * A specialized version of `_.some` for arrays without support for iteratee + * shorthands. + * + * @private + * @param {Array} [array] The array to iterate over. + * @param {Function} predicate The function invoked per iteration. + * @returns {boolean} Returns `true` if any element passes the predicate check, + * else `false`. + */ +function arraySome(array, predicate) { + var index = -1, + length = array == null ? 0 : array.length; + + while (++index < length) { + if (predicate(array[index], index, array)) { + return true; + } + } + return false; +} + +/** + * The base implementation of `_.times` without support for iteratee shorthands + * or max array length checks. + * + * @private + * @param {number} n The number of times to invoke `iteratee`. + * @param {Function} iteratee The function invoked per iteration. + * @returns {Array} Returns the array of results. + */ +function baseTimes(n, iteratee) { + var index = -1, + result = Array(n); + + while (++index < n) { + result[index] = iteratee(index); + } + return result; +} + +/** + * The base implementation of `_.unary` without support for storing metadata. + * + * @private + * @param {Function} func The function to cap arguments for. + * @returns {Function} Returns the new capped function. + */ +function baseUnary(func) { + return function(value) { + return func(value); + }; +} + +/** + * Checks if a `cache` value for `key` exists. + * + * @private + * @param {Object} cache The cache to query. + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function cacheHas(cache, key) { + return cache.has(key); +} + +/** + * Gets the value at `key` of `object`. + * + * @private + * @param {Object} [object] The object to query. + * @param {string} key The key of the property to get. + * @returns {*} Returns the property value. + */ +function getValue(object, key) { + return object == null ? undefined : object[key]; +} + +/** + * Converts `map` to its key-value pairs. + * + * @private + * @param {Object} map The map to convert. + * @returns {Array} Returns the key-value pairs. + */ +function mapToArray(map) { + var index = -1, + result = Array(map.size); + + map.forEach(function(value, key) { + result[++index] = [key, value]; + }); + return result; +} + +/** + * Creates a unary function that invokes `func` with its argument transformed. + * + * @private + * @param {Function} func The function to wrap. + * @param {Function} transform The argument transform. + * @returns {Function} Returns the new function. + */ +function overArg(func, transform) { + return function(arg) { + return func(transform(arg)); + }; +} + +/** + * Converts `set` to an array of its values. + * + * @private + * @param {Object} set The set to convert. + * @returns {Array} Returns the values. + */ +function setToArray(set) { + var index = -1, + result = Array(set.size); + + set.forEach(function(value) { + result[++index] = value; + }); + return result; +} + +/** Used for built-in method references. */ +var arrayProto = Array.prototype, + funcProto = Function.prototype, + objectProto = Object.prototype; + +/** Used to detect overreaching core-js shims. */ +var coreJsData = root['__core-js_shared__']; + +/** Used to resolve the decompiled source of functions. */ +var funcToString = funcProto.toString; + +/** Used to check objects for own properties. */ +var hasOwnProperty = objectProto.hasOwnProperty; + +/** Used to detect methods masquerading as native. */ +var maskSrcKey = (function() { + var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); + return uid ? ('Symbol(src)_1.' + uid) : ''; +}()); + +/** + * Used to resolve the + * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) + * of values. + */ +var nativeObjectToString = objectProto.toString; + +/** Used to detect if a method is native. */ +var reIsNative = RegExp('^' + + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') + .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' +); + +/** Built-in value references. */ +var Buffer = moduleExports ? root.Buffer : undefined, + Symbol = root.Symbol, + Uint8Array = root.Uint8Array, + propertyIsEnumerable = objectProto.propertyIsEnumerable, + splice = arrayProto.splice, + symToStringTag = Symbol ? Symbol.toStringTag : undefined; + +/* Built-in method references for those with the same name as other `lodash` methods. */ +var nativeGetSymbols = Object.getOwnPropertySymbols, + nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined, + nativeKeys = overArg(Object.keys, Object); + +/* Built-in method references that are verified to be native. */ +var DataView = getNative(root, 'DataView'), + Map = getNative(root, 'Map'), + Promise = getNative(root, 'Promise'), + Set = getNative(root, 'Set'), + WeakMap = getNative(root, 'WeakMap'), + nativeCreate = getNative(Object, 'create'); + +/** Used to detect maps, sets, and weakmaps. */ +var dataViewCtorString = toSource(DataView), + mapCtorString = toSource(Map), + promiseCtorString = toSource(Promise), + setCtorString = toSource(Set), + weakMapCtorString = toSource(WeakMap); + +/** Used to convert symbols to primitives and strings. */ +var symbolProto = Symbol ? Symbol.prototype : undefined, + symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; + +/** + * Creates a hash object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Hash(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the hash. + * + * @private + * @name clear + * @memberOf Hash + */ +function hashClear() { + this.__data__ = nativeCreate ? nativeCreate(null) : {}; + this.size = 0; +} + +/** + * Removes `key` and its value from the hash. + * + * @private + * @name delete + * @memberOf Hash + * @param {Object} hash The hash to modify. + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function hashDelete(key) { + var result = this.has(key) && delete this.__data__[key]; + this.size -= result ? 1 : 0; + return result; +} + +/** + * Gets the hash value for `key`. + * + * @private + * @name get + * @memberOf Hash + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function hashGet(key) { + var data = this.__data__; + if (nativeCreate) { + var result = data[key]; + return result === HASH_UNDEFINED ? undefined : result; + } + return hasOwnProperty.call(data, key) ? data[key] : undefined; +} + +/** + * Checks if a hash value for `key` exists. + * + * @private + * @name has + * @memberOf Hash + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function hashHas(key) { + var data = this.__data__; + return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); +} + +/** + * Sets the hash `key` to `value`. + * + * @private + * @name set + * @memberOf Hash + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the hash instance. + */ +function hashSet(key, value) { + var data = this.__data__; + this.size += this.has(key) ? 0 : 1; + data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; + return this; +} + +// Add methods to `Hash`. +Hash.prototype.clear = hashClear; +Hash.prototype['delete'] = hashDelete; +Hash.prototype.get = hashGet; +Hash.prototype.has = hashHas; +Hash.prototype.set = hashSet; + +/** + * Creates an list cache object. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function ListCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the list cache. + * + * @private + * @name clear + * @memberOf ListCache + */ +function listCacheClear() { + this.__data__ = []; + this.size = 0; +} + +/** + * Removes `key` and its value from the list cache. + * + * @private + * @name delete + * @memberOf ListCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function listCacheDelete(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + return false; + } + var lastIndex = data.length - 1; + if (index == lastIndex) { + data.pop(); + } else { + splice.call(data, index, 1); + } + --this.size; + return true; +} + +/** + * Gets the list cache value for `key`. + * + * @private + * @name get + * @memberOf ListCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function listCacheGet(key) { + var data = this.__data__, + index = assocIndexOf(data, key); + + return index < 0 ? undefined : data[index][1]; +} + +/** + * Checks if a list cache value for `key` exists. + * + * @private + * @name has + * @memberOf ListCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function listCacheHas(key) { + return assocIndexOf(this.__data__, key) > -1; +} + +/** + * Sets the list cache `key` to `value`. + * + * @private + * @name set + * @memberOf ListCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the list cache instance. + */ +function listCacheSet(key, value) { + var data = this.__data__, + index = assocIndexOf(data, key); + + if (index < 0) { + ++this.size; + data.push([key, value]); + } else { + data[index][1] = value; + } + return this; +} + +// Add methods to `ListCache`. +ListCache.prototype.clear = listCacheClear; +ListCache.prototype['delete'] = listCacheDelete; +ListCache.prototype.get = listCacheGet; +ListCache.prototype.has = listCacheHas; +ListCache.prototype.set = listCacheSet; + +/** + * Creates a map cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function MapCache(entries) { + var index = -1, + length = entries == null ? 0 : entries.length; + + this.clear(); + while (++index < length) { + var entry = entries[index]; + this.set(entry[0], entry[1]); + } +} + +/** + * Removes all key-value entries from the map. + * + * @private + * @name clear + * @memberOf MapCache + */ +function mapCacheClear() { + this.size = 0; + this.__data__ = { + 'hash': new Hash, + 'map': new (Map || ListCache), + 'string': new Hash + }; +} + +/** + * Removes `key` and its value from the map. + * + * @private + * @name delete + * @memberOf MapCache + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function mapCacheDelete(key) { + var result = getMapData(this, key)['delete'](key); + this.size -= result ? 1 : 0; + return result; +} + +/** + * Gets the map value for `key`. + * + * @private + * @name get + * @memberOf MapCache + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function mapCacheGet(key) { + return getMapData(this, key).get(key); +} + +/** + * Checks if a map value for `key` exists. + * + * @private + * @name has + * @memberOf MapCache + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function mapCacheHas(key) { + return getMapData(this, key).has(key); +} + +/** + * Sets the map `key` to `value`. + * + * @private + * @name set + * @memberOf MapCache + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the map cache instance. + */ +function mapCacheSet(key, value) { + var data = getMapData(this, key), + size = data.size; + + data.set(key, value); + this.size += data.size == size ? 0 : 1; + return this; +} + +// Add methods to `MapCache`. +MapCache.prototype.clear = mapCacheClear; +MapCache.prototype['delete'] = mapCacheDelete; +MapCache.prototype.get = mapCacheGet; +MapCache.prototype.has = mapCacheHas; +MapCache.prototype.set = mapCacheSet; + +/** + * + * Creates an array cache object to store unique values. + * + * @private + * @constructor + * @param {Array} [values] The values to cache. + */ +function SetCache(values) { + var index = -1, + length = values == null ? 0 : values.length; + + this.__data__ = new MapCache; + while (++index < length) { + this.add(values[index]); + } +} + +/** + * Adds `value` to the array cache. + * + * @private + * @name add + * @memberOf SetCache + * @alias push + * @param {*} value The value to cache. + * @returns {Object} Returns the cache instance. + */ +function setCacheAdd(value) { + this.__data__.set(value, HASH_UNDEFINED); + return this; +} + +/** + * Checks if `value` is in the array cache. + * + * @private + * @name has + * @memberOf SetCache + * @param {*} value The value to search for. + * @returns {number} Returns `true` if `value` is found, else `false`. + */ +function setCacheHas(value) { + return this.__data__.has(value); +} + +// Add methods to `SetCache`. +SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; +SetCache.prototype.has = setCacheHas; + +/** + * Creates a stack cache object to store key-value pairs. + * + * @private + * @constructor + * @param {Array} [entries] The key-value pairs to cache. + */ +function Stack(entries) { + var data = this.__data__ = new ListCache(entries); + this.size = data.size; +} + +/** + * Removes all key-value entries from the stack. + * + * @private + * @name clear + * @memberOf Stack + */ +function stackClear() { + this.__data__ = new ListCache; + this.size = 0; +} + +/** + * Removes `key` and its value from the stack. + * + * @private + * @name delete + * @memberOf Stack + * @param {string} key The key of the value to remove. + * @returns {boolean} Returns `true` if the entry was removed, else `false`. + */ +function stackDelete(key) { + var data = this.__data__, + result = data['delete'](key); + + this.size = data.size; + return result; +} + +/** + * Gets the stack value for `key`. + * + * @private + * @name get + * @memberOf Stack + * @param {string} key The key of the value to get. + * @returns {*} Returns the entry value. + */ +function stackGet(key) { + return this.__data__.get(key); +} + +/** + * Checks if a stack value for `key` exists. + * + * @private + * @name has + * @memberOf Stack + * @param {string} key The key of the entry to check. + * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. + */ +function stackHas(key) { + return this.__data__.has(key); +} + +/** + * Sets the stack `key` to `value`. + * + * @private + * @name set + * @memberOf Stack + * @param {string} key The key of the value to set. + * @param {*} value The value to set. + * @returns {Object} Returns the stack cache instance. + */ +function stackSet(key, value) { + var data = this.__data__; + if (data instanceof ListCache) { + var pairs = data.__data__; + if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { + pairs.push([key, value]); + this.size = ++data.size; + return this; + } + data = this.__data__ = new MapCache(pairs); + } + data.set(key, value); + this.size = data.size; + return this; +} + +// Add methods to `Stack`. +Stack.prototype.clear = stackClear; +Stack.prototype['delete'] = stackDelete; +Stack.prototype.get = stackGet; +Stack.prototype.has = stackHas; +Stack.prototype.set = stackSet; + +/** + * Creates an array of the enumerable property names of the array-like `value`. + * + * @private + * @param {*} value The value to query. + * @param {boolean} inherited Specify returning inherited property names. + * @returns {Array} Returns the array of property names. + */ +function arrayLikeKeys(value, inherited) { + var isArr = isArray(value), + isArg = !isArr && isArguments(value), + isBuff = !isArr && !isArg && isBuffer(value), + isType = !isArr && !isArg && !isBuff && isTypedArray(value), + skipIndexes = isArr || isArg || isBuff || isType, + result = skipIndexes ? baseTimes(value.length, String) : [], + length = result.length; + + for (var key in value) { + if ((inherited || hasOwnProperty.call(value, key)) && + !(skipIndexes && ( + // Safari 9 has enumerable `arguments.length` in strict mode. + key == 'length' || + // Node.js 0.10 has enumerable non-index properties on buffers. + (isBuff && (key == 'offset' || key == 'parent')) || + // PhantomJS 2 has enumerable non-index properties on typed arrays. + (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || + // Skip index properties. + isIndex(key, length) + ))) { + result.push(key); + } + } + return result; +} + +/** + * Gets the index at which the `key` is found in `array` of key-value pairs. + * + * @private + * @param {Array} array The array to inspect. + * @param {*} key The key to search for. + * @returns {number} Returns the index of the matched value, else `-1`. + */ +function assocIndexOf(array, key) { + var length = array.length; + while (length--) { + if (eq(array[length][0], key)) { + return length; + } + } + return -1; +} + +/** + * The base implementation of `getAllKeys` and `getAllKeysIn` which uses + * `keysFunc` and `symbolsFunc` to get the enumerable property names and + * symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {Function} keysFunc The function to get the keys of `object`. + * @param {Function} symbolsFunc The function to get the symbols of `object`. + * @returns {Array} Returns the array of property names and symbols. + */ +function baseGetAllKeys(object, keysFunc, symbolsFunc) { + var result = keysFunc(object); + return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); +} + +/** + * The base implementation of `getTag` without fallbacks for buggy environments. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +function baseGetTag(value) { + if (value == null) { + return value === undefined ? undefinedTag : nullTag; + } + return (symToStringTag && symToStringTag in Object(value)) + ? getRawTag(value) + : objectToString(value); +} + +/** + * The base implementation of `_.isArguments`. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + */ +function baseIsArguments(value) { + return isObjectLike(value) && baseGetTag(value) == argsTag; +} + +/** + * The base implementation of `_.isEqual` which supports partial comparisons + * and tracks traversed objects. + * + * @private + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @param {boolean} bitmask The bitmask flags. + * 1 - Unordered comparison + * 2 - Partial comparison + * @param {Function} [customizer] The function to customize comparisons. + * @param {Object} [stack] Tracks traversed `value` and `other` objects. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + */ +function baseIsEqual(value, other, bitmask, customizer, stack) { + if (value === other) { + return true; + } + if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { + return value !== value && other !== other; + } + return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); +} + +/** + * A specialized version of `baseIsEqual` for arrays and objects which performs + * deep comparisons and tracks traversed objects enabling objects with circular + * references to be compared. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} [stack] Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { + var objIsArr = isArray(object), + othIsArr = isArray(other), + objTag = objIsArr ? arrayTag : getTag(object), + othTag = othIsArr ? arrayTag : getTag(other); + + objTag = objTag == argsTag ? objectTag : objTag; + othTag = othTag == argsTag ? objectTag : othTag; + + var objIsObj = objTag == objectTag, + othIsObj = othTag == objectTag, + isSameTag = objTag == othTag; + + if (isSameTag && isBuffer(object)) { + if (!isBuffer(other)) { + return false; + } + objIsArr = true; + objIsObj = false; + } + if (isSameTag && !objIsObj) { + stack || (stack = new Stack); + return (objIsArr || isTypedArray(object)) + ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) + : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); + } + if (!(bitmask & COMPARE_PARTIAL_FLAG)) { + var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), + othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); + + if (objIsWrapped || othIsWrapped) { + var objUnwrapped = objIsWrapped ? object.value() : object, + othUnwrapped = othIsWrapped ? other.value() : other; + + stack || (stack = new Stack); + return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); + } + } + if (!isSameTag) { + return false; + } + stack || (stack = new Stack); + return equalObjects(object, other, bitmask, customizer, equalFunc, stack); +} + +/** + * The base implementation of `_.isNative` without bad shim checks. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a native function, + * else `false`. + */ +function baseIsNative(value) { + if (!isObject(value) || isMasked(value)) { + return false; + } + var pattern = isFunction(value) ? reIsNative : reIsHostCtor; + return pattern.test(toSource(value)); +} + +/** + * The base implementation of `_.isTypedArray` without Node.js optimizations. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + */ +function baseIsTypedArray(value) { + return isObjectLike(value) && + isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; +} + +/** + * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + */ +function baseKeys(object) { + if (!isPrototype(object)) { + return nativeKeys(object); + } + var result = []; + for (var key in Object(object)) { + if (hasOwnProperty.call(object, key) && key != 'constructor') { + result.push(key); + } + } + return result; +} + +/** + * A specialized version of `baseIsEqualDeep` for arrays with support for + * partial deep comparisons. + * + * @private + * @param {Array} array The array to compare. + * @param {Array} other The other array to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `array` and `other` objects. + * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. + */ +function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + arrLength = array.length, + othLength = other.length; + + if (arrLength != othLength && !(isPartial && othLength > arrLength)) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(array); + if (stacked && stack.get(other)) { + return stacked == other; + } + var index = -1, + result = true, + seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; + + stack.set(array, other); + stack.set(other, array); + + // Ignore non-index properties. + while (++index < arrLength) { + var arrValue = array[index], + othValue = other[index]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, arrValue, index, other, array, stack) + : customizer(arrValue, othValue, index, array, other, stack); + } + if (compared !== undefined) { + if (compared) { + continue; + } + result = false; + break; + } + // Recursively compare arrays (susceptible to call stack limits). + if (seen) { + if (!arraySome(other, function(othValue, othIndex) { + if (!cacheHas(seen, othIndex) && + (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { + return seen.push(othIndex); + } + })) { + result = false; + break; + } + } else if (!( + arrValue === othValue || + equalFunc(arrValue, othValue, bitmask, customizer, stack) + )) { + result = false; + break; + } + } + stack['delete'](array); + stack['delete'](other); + return result; +} + +/** + * A specialized version of `baseIsEqualDeep` for comparing objects of + * the same `toStringTag`. + * + * **Note:** This function only supports comparing values with tags of + * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {string} tag The `toStringTag` of the objects to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { + switch (tag) { + case dataViewTag: + if ((object.byteLength != other.byteLength) || + (object.byteOffset != other.byteOffset)) { + return false; + } + object = object.buffer; + other = other.buffer; + + case arrayBufferTag: + if ((object.byteLength != other.byteLength) || + !equalFunc(new Uint8Array(object), new Uint8Array(other))) { + return false; + } + return true; + + case boolTag: + case dateTag: + case numberTag: + // Coerce booleans to `1` or `0` and dates to milliseconds. + // Invalid dates are coerced to `NaN`. + return eq(+object, +other); + + case errorTag: + return object.name == other.name && object.message == other.message; + + case regexpTag: + case stringTag: + // Coerce regexes to strings and treat strings, primitives and objects, + // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring + // for more details. + return object == (other + ''); + + case mapTag: + var convert = mapToArray; + + case setTag: + var isPartial = bitmask & COMPARE_PARTIAL_FLAG; + convert || (convert = setToArray); + + if (object.size != other.size && !isPartial) { + return false; + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked) { + return stacked == other; + } + bitmask |= COMPARE_UNORDERED_FLAG; + + // Recursively compare objects (susceptible to call stack limits). + stack.set(object, other); + var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); + stack['delete'](object); + return result; + + case symbolTag: + if (symbolValueOf) { + return symbolValueOf.call(object) == symbolValueOf.call(other); + } + } + return false; +} + +/** + * A specialized version of `baseIsEqualDeep` for objects with support for + * partial deep comparisons. + * + * @private + * @param {Object} object The object to compare. + * @param {Object} other The other object to compare. + * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. + * @param {Function} customizer The function to customize comparisons. + * @param {Function} equalFunc The function to determine equivalents of values. + * @param {Object} stack Tracks traversed `object` and `other` objects. + * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. + */ +function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { + var isPartial = bitmask & COMPARE_PARTIAL_FLAG, + objProps = getAllKeys(object), + objLength = objProps.length, + othProps = getAllKeys(other), + othLength = othProps.length; + + if (objLength != othLength && !isPartial) { + return false; + } + var index = objLength; + while (index--) { + var key = objProps[index]; + if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { + return false; + } + } + // Assume cyclic values are equal. + var stacked = stack.get(object); + if (stacked && stack.get(other)) { + return stacked == other; + } + var result = true; + stack.set(object, other); + stack.set(other, object); + + var skipCtor = isPartial; + while (++index < objLength) { + key = objProps[index]; + var objValue = object[key], + othValue = other[key]; + + if (customizer) { + var compared = isPartial + ? customizer(othValue, objValue, key, other, object, stack) + : customizer(objValue, othValue, key, object, other, stack); + } + // Recursively compare objects (susceptible to call stack limits). + if (!(compared === undefined + ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) + : compared + )) { + result = false; + break; + } + skipCtor || (skipCtor = key == 'constructor'); + } + if (result && !skipCtor) { + var objCtor = object.constructor, + othCtor = other.constructor; + + // Non `Object` object instances with different constructors are not equal. + if (objCtor != othCtor && + ('constructor' in object && 'constructor' in other) && + !(typeof objCtor == 'function' && objCtor instanceof objCtor && + typeof othCtor == 'function' && othCtor instanceof othCtor)) { + result = false; + } + } + stack['delete'](object); + stack['delete'](other); + return result; +} + +/** + * Creates an array of own enumerable property names and symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names and symbols. + */ +function getAllKeys(object) { + return baseGetAllKeys(object, keys, getSymbols); +} + +/** + * Gets the data for `map`. + * + * @private + * @param {Object} map The map to query. + * @param {string} key The reference key. + * @returns {*} Returns the map data. + */ +function getMapData(map, key) { + var data = map.__data__; + return isKeyable(key) + ? data[typeof key == 'string' ? 'string' : 'hash'] + : data.map; +} + +/** + * Gets the native function at `key` of `object`. + * + * @private + * @param {Object} object The object to query. + * @param {string} key The key of the method to get. + * @returns {*} Returns the function if it's native, else `undefined`. + */ +function getNative(object, key) { + var value = getValue(object, key); + return baseIsNative(value) ? value : undefined; +} + +/** + * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the raw `toStringTag`. + */ +function getRawTag(value) { + var isOwn = hasOwnProperty.call(value, symToStringTag), + tag = value[symToStringTag]; + + try { + value[symToStringTag] = undefined; + var unmasked = true; + } catch (e) {} + + var result = nativeObjectToString.call(value); + if (unmasked) { + if (isOwn) { + value[symToStringTag] = tag; + } else { + delete value[symToStringTag]; + } + } + return result; +} + +/** + * Creates an array of the own enumerable symbols of `object`. + * + * @private + * @param {Object} object The object to query. + * @returns {Array} Returns the array of symbols. + */ +var getSymbols = !nativeGetSymbols ? stubArray : function(object) { + if (object == null) { + return []; + } + object = Object(object); + return arrayFilter(nativeGetSymbols(object), function(symbol) { + return propertyIsEnumerable.call(object, symbol); + }); +}; + +/** + * Gets the `toStringTag` of `value`. + * + * @private + * @param {*} value The value to query. + * @returns {string} Returns the `toStringTag`. + */ +var getTag = baseGetTag; + +// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. +if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || + (Map && getTag(new Map) != mapTag) || + (Promise && getTag(Promise.resolve()) != promiseTag) || + (Set && getTag(new Set) != setTag) || + (WeakMap && getTag(new WeakMap) != weakMapTag)) { + getTag = function(value) { + var result = baseGetTag(value), + Ctor = result == objectTag ? value.constructor : undefined, + ctorString = Ctor ? toSource(Ctor) : ''; + + if (ctorString) { + switch (ctorString) { + case dataViewCtorString: return dataViewTag; + case mapCtorString: return mapTag; + case promiseCtorString: return promiseTag; + case setCtorString: return setTag; + case weakMapCtorString: return weakMapTag; + } + } + return result; + }; +} + +/** + * Checks if `value` is a valid array-like index. + * + * @private + * @param {*} value The value to check. + * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. + * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. + */ +function isIndex(value, length) { + length = length == null ? MAX_SAFE_INTEGER : length; + return !!length && + (typeof value == 'number' || reIsUint.test(value)) && + (value > -1 && value % 1 == 0 && value < length); +} + +/** + * Checks if `value` is suitable for use as unique object key. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is suitable, else `false`. + */ +function isKeyable(value) { + var type = typeof value; + return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') + ? (value !== '__proto__') + : (value === null); +} + +/** + * Checks if `func` has its source masked. + * + * @private + * @param {Function} func The function to check. + * @returns {boolean} Returns `true` if `func` is masked, else `false`. + */ +function isMasked(func) { + return !!maskSrcKey && (maskSrcKey in func); +} + +/** + * Checks if `value` is likely a prototype object. + * + * @private + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. + */ +function isPrototype(value) { + var Ctor = value && value.constructor, + proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; + + return value === proto; +} + +/** + * Converts `value` to a string using `Object.prototype.toString`. + * + * @private + * @param {*} value The value to convert. + * @returns {string} Returns the converted string. + */ +function objectToString(value) { + return nativeObjectToString.call(value); +} + +/** + * Converts `func` to its source code. + * + * @private + * @param {Function} func The function to convert. + * @returns {string} Returns the source code. + */ +function toSource(func) { + if (func != null) { + try { + return funcToString.call(func); + } catch (e) {} + try { + return (func + ''); + } catch (e) {} + } + return ''; +} + +/** + * Performs a + * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) + * comparison between two values to determine if they are equivalent. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.eq(object, object); + * // => true + * + * _.eq(object, other); + * // => false + * + * _.eq('a', 'a'); + * // => true + * + * _.eq('a', Object('a')); + * // => false + * + * _.eq(NaN, NaN); + * // => true + */ +function eq(value, other) { + return value === other || (value !== value && other !== other); +} + +/** + * Checks if `value` is likely an `arguments` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an `arguments` object, + * else `false`. + * @example + * + * _.isArguments(function() { return arguments; }()); + * // => true + * + * _.isArguments([1, 2, 3]); + * // => false + */ +var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { + return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && + !propertyIsEnumerable.call(value, 'callee'); +}; + +/** + * Checks if `value` is classified as an `Array` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an array, else `false`. + * @example + * + * _.isArray([1, 2, 3]); + * // => true + * + * _.isArray(document.body.children); + * // => false + * + * _.isArray('abc'); + * // => false + * + * _.isArray(_.noop); + * // => false + */ +var isArray = Array.isArray; + +/** + * Checks if `value` is array-like. A value is considered array-like if it's + * not a function and has a `value.length` that's an integer greater than or + * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is array-like, else `false`. + * @example + * + * _.isArrayLike([1, 2, 3]); + * // => true + * + * _.isArrayLike(document.body.children); + * // => true + * + * _.isArrayLike('abc'); + * // => true + * + * _.isArrayLike(_.noop); + * // => false + */ +function isArrayLike(value) { + return value != null && isLength(value.length) && !isFunction(value); +} + +/** + * Checks if `value` is a buffer. + * + * @static + * @memberOf _ + * @since 4.3.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. + * @example + * + * _.isBuffer(new Buffer(2)); + * // => true + * + * _.isBuffer(new Uint8Array(2)); + * // => false + */ +var isBuffer = nativeIsBuffer || stubFalse; + +/** + * Performs a deep comparison between two values to determine if they are + * equivalent. + * + * **Note:** This method supports comparing arrays, array buffers, booleans, + * date objects, error objects, maps, numbers, `Object` objects, regexes, + * sets, strings, symbols, and typed arrays. `Object` objects are compared + * by their own, not inherited, enumerable properties. Functions and DOM + * nodes are compared by strict equality, i.e. `===`. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to compare. + * @param {*} other The other value to compare. + * @returns {boolean} Returns `true` if the values are equivalent, else `false`. + * @example + * + * var object = { 'a': 1 }; + * var other = { 'a': 1 }; + * + * _.isEqual(object, other); + * // => true + * + * object === other; + * // => false + */ +function isEqual(value, other) { + return baseIsEqual(value, other); +} + +/** + * Checks if `value` is classified as a `Function` object. + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a function, else `false`. + * @example + * + * _.isFunction(_); + * // => true + * + * _.isFunction(/abc/); + * // => false + */ +function isFunction(value) { + if (!isObject(value)) { + return false; + } + // The use of `Object#toString` avoids issues with the `typeof` operator + // in Safari 9 which returns 'object' for typed arrays and other constructors. + var tag = baseGetTag(value); + return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; +} + +/** + * Checks if `value` is a valid array-like length. + * + * **Note:** This method is loosely based on + * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. + * @example + * + * _.isLength(3); + * // => true + * + * _.isLength(Number.MIN_VALUE); + * // => false + * + * _.isLength(Infinity); + * // => false + * + * _.isLength('3'); + * // => false + */ +function isLength(value) { + return typeof value == 'number' && + value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; +} + +/** + * Checks if `value` is the + * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) + * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) + * + * @static + * @memberOf _ + * @since 0.1.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is an object, else `false`. + * @example + * + * _.isObject({}); + * // => true + * + * _.isObject([1, 2, 3]); + * // => true + * + * _.isObject(_.noop); + * // => true + * + * _.isObject(null); + * // => false + */ +function isObject(value) { + var type = typeof value; + return value != null && (type == 'object' || type == 'function'); +} + +/** + * Checks if `value` is object-like. A value is object-like if it's not `null` + * and has a `typeof` result of "object". + * + * @static + * @memberOf _ + * @since 4.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is object-like, else `false`. + * @example + * + * _.isObjectLike({}); + * // => true + * + * _.isObjectLike([1, 2, 3]); + * // => true + * + * _.isObjectLike(_.noop); + * // => false + * + * _.isObjectLike(null); + * // => false + */ +function isObjectLike(value) { + return value != null && typeof value == 'object'; +} + +/** + * Checks if `value` is classified as a typed array. + * + * @static + * @memberOf _ + * @since 3.0.0 + * @category Lang + * @param {*} value The value to check. + * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. + * @example + * + * _.isTypedArray(new Uint8Array); + * // => true + * + * _.isTypedArray([]); + * // => false + */ +var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; + +/** + * Creates an array of the own enumerable property names of `object`. + * + * **Note:** Non-object values are coerced to objects. See the + * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) + * for more details. + * + * @static + * @since 0.1.0 + * @memberOf _ + * @category Object + * @param {Object} object The object to query. + * @returns {Array} Returns the array of property names. + * @example + * + * function Foo() { + * this.a = 1; + * this.b = 2; + * } + * + * Foo.prototype.c = 3; + * + * _.keys(new Foo); + * // => ['a', 'b'] (iteration order is not guaranteed) + * + * _.keys('hi'); + * // => ['0', '1'] + */ +function keys(object) { + return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); +} + +/** + * This method returns a new empty array. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {Array} Returns the new empty array. + * @example + * + * var arrays = _.times(2, _.stubArray); + * + * console.log(arrays); + * // => [[], []] + * + * console.log(arrays[0] === arrays[1]); + * // => false + */ +function stubArray() { + return []; +} + +/** + * This method returns `false`. + * + * @static + * @memberOf _ + * @since 4.13.0 + * @category Util + * @returns {boolean} Returns `false`. + * @example + * + * _.times(2, _.stubFalse); + * // => [false, false] + */ +function stubFalse() { + return false; +} + +module.exports = isEqual; + + +/***/ }), + +/***/ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/Mime.js": +/*!*****************************************************************!*\ + !*** ./node_modules/.pnpm/mime@2.5.2/node_modules/mime/Mime.js ***! + \*****************************************************************/ +/***/ ((module) => { + +"use strict"; + + +/** + * @param typeMap [Object] Map of MIME type -> Array[extensions] + * @param ... + */ +function Mime() { + this._types = Object.create(null); + this._extensions = Object.create(null); + + for (let i = 0; i < arguments.length; i++) { + this.define(arguments[i]); + } + + this.define = this.define.bind(this); + this.getType = this.getType.bind(this); + this.getExtension = this.getExtension.bind(this); +} + +/** + * Define mimetype -> extension mappings. Each key is a mime-type that maps + * to an array of extensions associated with the type. The first extension is + * used as the default extension for the type. + * + * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']}); + * + * If a type declares an extension that has already been defined, an error will + * be thrown. To suppress this error and force the extension to be associated + * with the new type, pass `force`=true. Alternatively, you may prefix the + * extension with "*" to map the type to extension, without mapping the + * extension to the type. + * + * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']}); + * + * + * @param map (Object) type definitions + * @param force (Boolean) if true, force overriding of existing definitions + */ +Mime.prototype.define = function(typeMap, force) { + for (let type in typeMap) { + let extensions = typeMap[type].map(function(t) { + return t.toLowerCase(); + }); + type = type.toLowerCase(); + + for (let i = 0; i < extensions.length; i++) { + const ext = extensions[i]; + + // '*' prefix = not the preferred type for this extension. So fixup the + // extension, and skip it. + if (ext[0] === '*') { + continue; + } + + if (!force && (ext in this._types)) { + throw new Error( + 'Attempt to change mapping for "' + ext + + '" extension from "' + this._types[ext] + '" to "' + type + + '". Pass `force=true` to allow this, otherwise remove "' + ext + + '" from the list of extensions for "' + type + '".' + ); + } + + this._types[ext] = type; + } + + // Use first extension as default + if (force || !this._extensions[type]) { + const ext = extensions[0]; + this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1); + } + } +}; + +/** + * Lookup a mime type based on extension + */ +Mime.prototype.getType = function(path) { + path = String(path); + let last = path.replace(/^.*[/\\]/, '').toLowerCase(); + let ext = last.replace(/^.*\./, '').toLowerCase(); + + let hasPath = last.length < path.length; + let hasDot = ext.length < last.length - 1; + + return (hasDot || !hasPath) && this._types[ext] || null; +}; + +/** + * Return file extension associated with a mime type + */ +Mime.prototype.getExtension = function(type) { + type = /^\s*([^;\s]*)/.test(type) && RegExp.$1; + return type && this._extensions[type.toLowerCase()] || null; +}; + +module.exports = Mime; + + +/***/ }), + +/***/ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js": +/*!******************************************************************!*\ + !*** ./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js ***! + \******************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +let Mime = __webpack_require__(/*! ./Mime */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/Mime.js"); +module.exports = new Mime(__webpack_require__(/*! ./types/standard */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/standard.js"), __webpack_require__(/*! ./types/other */ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/other.js")); + + +/***/ }), + +/***/ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/other.js": +/*!************************************************************************!*\ + !*** ./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/other.js ***! + \************************************************************************/ +/***/ ((module) => { + +module.exports = {"application/prs.cww":["cww"],"application/vnd.1000minds.decision-model+xml":["1km"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.keynote":["key"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.numbers":["numbers"],"application/vnd.apple.pages":["pages"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.balsamiq.bmml+xml":["bmml"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.citationstyles.style+xml":["csl"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dbf":["dbf"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["*stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.ac+xml":["*ac"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openblox.game+xml":["obgx"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openstreetmap.data+xml":["osm"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.rar":["rar"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.software602.filler.form+xml":["fo"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.syncml.dmddf+xml":["ddf"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":["*dmg"],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":["*bdoc"],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["*deb","udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":["*iso"],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-keepass2":["kdbx"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":["*exe"],"application/x-msdownload":["*exe","*dll","com","bat","*msi"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["*wmf","*wmz","*emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":["*prc","*pdb"],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["*rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["*obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["*xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":["*m4a"],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":["*ra"],"audio/x-wav":["*wav"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"image/prs.btif":["btif"],"image/prs.pti":["pti"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.airzip.accelerator.azv":["azv"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":["*sub"],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.microsoft.icon":["ico"],"image/vnd.ms-dds":["dds"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.pco.b16":["b16"],"image/vnd.tencent.tap":["tap"],"image/vnd.valve.source.texture":["vtf"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/vnd.zbrush.pcx":["pcx"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["*ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":["*bmp"],"image/x-pcx":["*pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/vnd.wfa.wsc":["wsc"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.opengex":["ogex"],"model/vnd.parasolid.transmit.binary":["x_b"],"model/vnd.parasolid.transmit.text":["x_t"],"model/vnd.usdz+zip":["usdz"],"model/vnd.valve.source.compiled-map":["bsp"],"model/vnd.vtu":["vtu"],"text/prs.lines.tag":["dsc"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":["*org"],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}; + +/***/ }), + +/***/ "./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/standard.js": +/*!***************************************************************************!*\ + !*** ./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/standard.js ***! + \***************************************************************************/ +/***/ ((module) => { + +module.exports = {"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomdeleted+xml":["atomdeleted"],"application/atomsvc+xml":["atomsvc"],"application/atsc-dwd+xml":["dwd"],"application/atsc-held+xml":["held"],"application/atsc-rsat+xml":["rsat"],"application/bdoc":["bdoc"],"application/calendar+xml":["xcs"],"application/ccxml+xml":["ccxml"],"application/cdfx+xml":["cdfx"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma","es"],"application/emma+xml":["emma"],"application/emotionml+xml":["emotionml"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/fdt+xml":["fdt"],"application/font-tdpfr":["pfr"],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hjson":["hjson"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/its+xml":["its"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lgr+xml":["lgr"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mmt-aei+xml":["maei"],"application/mmt-usd+xml":["musd"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/mrb-consumer+xml":["*xdf"],"application/mrb-publish+xml":["*xdf"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/n-quads":["nq"],"application/n-triples":["nt"],"application/node":["cjs"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/p2p-overlay+xml":["relo"],"application/patch-ops-error+xml":["*xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/provenance+xml":["provx"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf","owl"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/route-apd+xml":["rapd"],"application/route-s-tsid+xml":["sls"],"application/route-usd+xml":["rusd"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/senml+xml":["senmlx"],"application/sensml+xml":["sensmlx"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/sieve":["siv","sieve"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/swid+xml":["swidtag"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/toml":["toml"],"application/ttml+xml":["ttml"],"application/ubjson":["ubj"],"application/urc-ressheet+xml":["rsheet"],"application/urc-targetdesc+xml":["td"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/xaml+xml":["xaml"],"application/xcap-att+xml":["xav"],"application/xcap-caps+xml":["xca"],"application/xcap-diff+xml":["xdf"],"application/xcap-el+xml":["xel"],"application/xcap-error+xml":["xer"],"application/xcap-ns+xml":["xns"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xliff+xml":["xlf"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["*xsl","xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":["*3gpp"],"audio/adpcm":["adp"],"audio/amr":["amr"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mobile-xmf":["mxmf"],"audio/mp3":["*mp3"],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx","opus"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/wav":["wav"],"audio/wave":["*wav"],"audio/webm":["weba"],"audio/xm":["xm"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/aces":["exr"],"image/apng":["apng"],"image/avif":["avif"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/dicom-rle":["drle"],"image/emf":["emf"],"image/fits":["fits"],"image/g3fax":["g3"],"image/gif":["gif"],"image/heic":["heic"],"image/heic-sequence":["heics"],"image/heif":["heif"],"image/heif-sequence":["heifs"],"image/hej2k":["hej2"],"image/hsj2":["hsj2"],"image/ief":["ief"],"image/jls":["jls"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jph":["jph"],"image/jphc":["jhc"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/jxr":["jxr"],"image/jxra":["jxra"],"image/jxrs":["jxrs"],"image/jxs":["jxs"],"image/jxsc":["jxsc"],"image/jxsi":["jxsi"],"image/jxss":["jxss"],"image/ktx":["ktx"],"image/ktx2":["ktx2"],"image/png":["png"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/t38":["t38"],"image/tiff":["tif","tiff"],"image/tiff-fx":["tfx"],"image/webp":["webp"],"image/wmf":["wmf"],"message/disposition-notification":["disposition-notification"],"message/global":["u8msg"],"message/global-delivery-status":["u8dsn"],"message/global-disposition-notification":["u8mdn"],"message/global-headers":["u8hdr"],"message/rfc822":["eml","mime"],"model/3mf":["3mf"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/mtl":["mtl"],"model/obj":["obj"],"model/stl":["stl"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["*x3db","x3dbz"],"model/x3d+fastinfoset":["x3db"],"model/x3d+vrml":["*x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"model/x3d-vrml":["x3dv"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/mdx":["mdx"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/richtext":["rtx"],"text/rtf":["*rtf"],"text/sgml":["sgml","sgm"],"text/shex":["shex"],"text/slim":["slim","slm"],"text/spdx":["spdx"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vtt":["vtt"],"text/xml":["*xml"],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/iso.segment":["m4s"],"video/jpeg":["jpgv"],"video/jpm":["*jpm","jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/webm":["webm"]}; + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ArgumentError = void 0; +const generate_stack_1 = __webpack_require__(/*! ./utils/generate-stack */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-stack.js"); +const wrapStackTrace = (error, stack) => `${error.name}: ${error.message}\n${stack}`; +/** +@hidden +*/ +class ArgumentError extends Error { + constructor(message, context, errors = new Map()) { + super(message); + Object.defineProperty(this, "validationErrors", { + enumerable: true, + configurable: true, + writable: true, + value: void 0 + }); + this.name = 'ArgumentError'; + if (Error.captureStackTrace) { + Error.captureStackTrace(this, context); + } + else { + this.stack = wrapStackTrace(this, (0, generate_stack_1.generateStackTrace)()); + } + this.validationErrors = errors; + } +} +exports.ArgumentError = ArgumentError; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js ***! + \********************************************************************/ +/***/ (function(__unused_webpack_module, exports, __webpack_require__) { + +"use strict"; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ArgumentError = exports.Predicate = void 0; +const callsites_1 = __webpack_require__(/*! callsites */ "./node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js"); +const infer_label_1 = __webpack_require__(/*! ./utils/infer-label */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/infer-label.browser.js"); +const predicate_1 = __webpack_require__(/*! ./predicates/predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +Object.defineProperty(exports, "Predicate", ({ enumerable: true, get: function () { return predicate_1.Predicate; } })); +const base_predicate_1 = __webpack_require__(/*! ./predicates/base-predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js"); +const modifiers_1 = __webpack_require__(/*! ./modifiers */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/modifiers.js"); +const predicates_1 = __webpack_require__(/*! ./predicates */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js"); +const test_1 = __webpack_require__(/*! ./test */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js"); +const ow = (value, labelOrPredicate, predicate) => { + if (!(0, base_predicate_1.isPredicate)(labelOrPredicate) && typeof labelOrPredicate !== 'string') { + throw new TypeError(`Expected second argument to be a predicate or a string, got \`${typeof labelOrPredicate}\``); + } + if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) { + // If the second argument is a predicate, infer the label + const stackFrames = (0, callsites_1.default)(); + (0, test_1.default)(value, () => (0, infer_label_1.inferLabel)(stackFrames), labelOrPredicate); + return; + } + (0, test_1.default)(value, labelOrPredicate, predicate); +}; +Object.defineProperties(ow, { + isValid: { + value: (value, predicate) => { + try { + (0, test_1.default)(value, '', predicate); + return true; + } + catch { + return false; + } + } + }, + create: { + value: (labelOrPredicate, predicate) => (value, label) => { + if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) { + const stackFrames = (0, callsites_1.default)(); + (0, test_1.default)(value, label !== null && label !== void 0 ? label : (() => (0, infer_label_1.inferLabel)(stackFrames)), labelOrPredicate); + return; + } + (0, test_1.default)(value, label !== null && label !== void 0 ? label : (labelOrPredicate), predicate); + } + } +}); +// Can't use `export default predicates(modifiers(ow)) as Ow` because the variable needs a type annotation to avoid a compiler error when used: +// Assertions require every name in the call target to be declared with an explicit type annotation.ts(2775) +// See https://github.com/microsoft/TypeScript/issues/36931 for more details. +const _ow = (0, predicates_1.default)((0, modifiers_1.default)(ow)); +exports["default"] = _ow; +__exportStar(__webpack_require__(/*! ./predicates */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js"), exports); +var argument_error_1 = __webpack_require__(/*! ./argument-error */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js"); +Object.defineProperty(exports, "ArgumentError", ({ enumerable: true, get: function () { return argument_error_1.ArgumentError; } })); + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/modifiers.js": +/*!************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/modifiers.js ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const predicates_1 = __webpack_require__(/*! ./predicates */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js"); +exports["default"] = (object) => { + Object.defineProperties(object, { + optional: { + get: () => (0, predicates_1.default)({}, { optional: true }) + } + }); + return object; +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/operators/not.js": +/*!****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/operators/not.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.not = void 0; +const random_id_1 = __webpack_require__(/*! ../utils/random-id */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/random-id.js"); +const predicate_1 = __webpack_require__(/*! ../predicates/predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +/** +Operator which inverts the following validation. + +@hidden + +@param predictate - Predicate to wrap inside the operator. +*/ +const not = (predicate) => { + const originalAddValidator = predicate.addValidator; + predicate.addValidator = (validator) => { + const { validator: fn, message, negatedMessage } = validator; + const placeholder = (0, random_id_1.default)(); + validator.message = (value, label) => (negatedMessage ? + negatedMessage(value, label) : + message(value, placeholder).replace(/ to /, '$¬ ').replace(placeholder, label)); + validator.validator = (value) => !fn(value); + predicate[predicate_1.validatorSymbol].push(validator); + predicate.addValidator = originalAddValidator; + return predicate; + }; + return predicate; +}; +exports.not = not; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js": +/*!*************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js ***! + \*************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AnyPredicate = exports.DataViewPredicate = exports.ArrayBufferPredicate = exports.TypedArrayPredicate = exports.WeakSetPredicate = exports.SetPredicate = exports.WeakMapPredicate = exports.MapPredicate = exports.ErrorPredicate = exports.DatePredicate = exports.ObjectPredicate = exports.ArrayPredicate = exports.BooleanPredicate = exports.BigIntPredicate = exports.NumberPredicate = exports.StringPredicate = void 0; +const string_1 = __webpack_require__(/*! ./predicates/string */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/string.js"); +Object.defineProperty(exports, "StringPredicate", ({ enumerable: true, get: function () { return string_1.StringPredicate; } })); +const number_1 = __webpack_require__(/*! ./predicates/number */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/number.js"); +Object.defineProperty(exports, "NumberPredicate", ({ enumerable: true, get: function () { return number_1.NumberPredicate; } })); +const bigint_1 = __webpack_require__(/*! ./predicates/bigint */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/bigint.js"); +Object.defineProperty(exports, "BigIntPredicate", ({ enumerable: true, get: function () { return bigint_1.BigIntPredicate; } })); +const boolean_1 = __webpack_require__(/*! ./predicates/boolean */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/boolean.js"); +Object.defineProperty(exports, "BooleanPredicate", ({ enumerable: true, get: function () { return boolean_1.BooleanPredicate; } })); +const predicate_1 = __webpack_require__(/*! ./predicates/predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +const array_1 = __webpack_require__(/*! ./predicates/array */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array.js"); +Object.defineProperty(exports, "ArrayPredicate", ({ enumerable: true, get: function () { return array_1.ArrayPredicate; } })); +const object_1 = __webpack_require__(/*! ./predicates/object */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/object.js"); +Object.defineProperty(exports, "ObjectPredicate", ({ enumerable: true, get: function () { return object_1.ObjectPredicate; } })); +const date_1 = __webpack_require__(/*! ./predicates/date */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/date.js"); +Object.defineProperty(exports, "DatePredicate", ({ enumerable: true, get: function () { return date_1.DatePredicate; } })); +const error_1 = __webpack_require__(/*! ./predicates/error */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/error.js"); +Object.defineProperty(exports, "ErrorPredicate", ({ enumerable: true, get: function () { return error_1.ErrorPredicate; } })); +const map_1 = __webpack_require__(/*! ./predicates/map */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/map.js"); +Object.defineProperty(exports, "MapPredicate", ({ enumerable: true, get: function () { return map_1.MapPredicate; } })); +const weak_map_1 = __webpack_require__(/*! ./predicates/weak-map */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-map.js"); +Object.defineProperty(exports, "WeakMapPredicate", ({ enumerable: true, get: function () { return weak_map_1.WeakMapPredicate; } })); +const set_1 = __webpack_require__(/*! ./predicates/set */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/set.js"); +Object.defineProperty(exports, "SetPredicate", ({ enumerable: true, get: function () { return set_1.SetPredicate; } })); +const weak_set_1 = __webpack_require__(/*! ./predicates/weak-set */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-set.js"); +Object.defineProperty(exports, "WeakSetPredicate", ({ enumerable: true, get: function () { return weak_set_1.WeakSetPredicate; } })); +const typed_array_1 = __webpack_require__(/*! ./predicates/typed-array */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/typed-array.js"); +Object.defineProperty(exports, "TypedArrayPredicate", ({ enumerable: true, get: function () { return typed_array_1.TypedArrayPredicate; } })); +const array_buffer_1 = __webpack_require__(/*! ./predicates/array-buffer */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array-buffer.js"); +Object.defineProperty(exports, "ArrayBufferPredicate", ({ enumerable: true, get: function () { return array_buffer_1.ArrayBufferPredicate; } })); +const data_view_1 = __webpack_require__(/*! ./predicates/data-view */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/data-view.js"); +Object.defineProperty(exports, "DataViewPredicate", ({ enumerable: true, get: function () { return data_view_1.DataViewPredicate; } })); +const any_1 = __webpack_require__(/*! ./predicates/any */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/any.js"); +Object.defineProperty(exports, "AnyPredicate", ({ enumerable: true, get: function () { return any_1.AnyPredicate; } })); +exports["default"] = (object, options) => { + Object.defineProperties(object, { + string: { + get: () => new string_1.StringPredicate(options) + }, + number: { + get: () => new number_1.NumberPredicate(options) + }, + bigint: { + get: () => new bigint_1.BigIntPredicate(options) + }, + boolean: { + get: () => new boolean_1.BooleanPredicate(options) + }, + undefined: { + get: () => new predicate_1.Predicate('undefined', options) + }, + null: { + get: () => new predicate_1.Predicate('null', options) + }, + nullOrUndefined: { + get: () => new predicate_1.Predicate('nullOrUndefined', options) + }, + nan: { + get: () => new predicate_1.Predicate('nan', options) + }, + symbol: { + get: () => new predicate_1.Predicate('symbol', options) + }, + array: { + get: () => new array_1.ArrayPredicate(options) + }, + object: { + get: () => new object_1.ObjectPredicate(options) + }, + date: { + get: () => new date_1.DatePredicate(options) + }, + error: { + get: () => new error_1.ErrorPredicate(options) + }, + map: { + get: () => new map_1.MapPredicate(options) + }, + weakMap: { + get: () => new weak_map_1.WeakMapPredicate(options) + }, + set: { + get: () => new set_1.SetPredicate(options) + }, + weakSet: { + get: () => new weak_set_1.WeakSetPredicate(options) + }, + function: { + get: () => new predicate_1.Predicate('Function', options) + }, + buffer: { + get: () => new predicate_1.Predicate('Buffer', options) + }, + regExp: { + get: () => new predicate_1.Predicate('RegExp', options) + }, + promise: { + get: () => new predicate_1.Predicate('Promise', options) + }, + typedArray: { + get: () => new typed_array_1.TypedArrayPredicate('TypedArray', options) + }, + int8Array: { + get: () => new typed_array_1.TypedArrayPredicate('Int8Array', options) + }, + uint8Array: { + get: () => new typed_array_1.TypedArrayPredicate('Uint8Array', options) + }, + uint8ClampedArray: { + get: () => new typed_array_1.TypedArrayPredicate('Uint8ClampedArray', options) + }, + int16Array: { + get: () => new typed_array_1.TypedArrayPredicate('Int16Array', options) + }, + uint16Array: { + get: () => new typed_array_1.TypedArrayPredicate('Uint16Array', options) + }, + int32Array: { + get: () => new typed_array_1.TypedArrayPredicate('Int32Array', options) + }, + uint32Array: { + get: () => new typed_array_1.TypedArrayPredicate('Uint32Array', options) + }, + float32Array: { + get: () => new typed_array_1.TypedArrayPredicate('Float32Array', options) + }, + float64Array: { + get: () => new typed_array_1.TypedArrayPredicate('Float64Array', options) + }, + arrayBuffer: { + get: () => new array_buffer_1.ArrayBufferPredicate('ArrayBuffer', options) + }, + sharedArrayBuffer: { + get: () => new array_buffer_1.ArrayBufferPredicate('SharedArrayBuffer', options) + }, + dataView: { + get: () => new data_view_1.DataViewPredicate(options) + }, + iterable: { + get: () => new predicate_1.Predicate('Iterable', options) + }, + any: { + value: (...predicates) => new any_1.AnyPredicate(predicates, options) + } + }); + return object; +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/any.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/any.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AnyPredicate = void 0; +const argument_error_1 = __webpack_require__(/*! ../argument-error */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js"); +const base_predicate_1 = __webpack_require__(/*! ./base-predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js"); +const generate_argument_error_message_1 = __webpack_require__(/*! ../utils/generate-argument-error-message */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-argument-error-message.js"); +/** +@hidden +*/ +class AnyPredicate { + constructor(predicates, options = {}) { + Object.defineProperty(this, "predicates", { + enumerable: true, + configurable: true, + writable: true, + value: predicates + }); + Object.defineProperty(this, "options", { + enumerable: true, + configurable: true, + writable: true, + value: options + }); + } + [base_predicate_1.testSymbol](value, main, label, idLabel) { + const errors = new Map(); + for (const predicate of this.predicates) { + try { + main(value, label, predicate, idLabel); + return; + } + catch (error) { + if (value === undefined && this.options.optional === true) { + return; + } + // If we received an ArgumentError, then.. + if (error instanceof argument_error_1.ArgumentError) { + // Iterate through every error reported. + for (const [key, value] of error.validationErrors.entries()) { + // Get the current errors set, if any. + const alreadyPresent = errors.get(key); + // Add all errors under the same key + errors.set(key, new Set([...alreadyPresent !== null && alreadyPresent !== void 0 ? alreadyPresent : [], ...value])); + } + } + } + } + if (errors.size > 0) { + // Generate the `error.message` property. + const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors, true); + throw new argument_error_1.ArgumentError(`Any predicate failed with the following errors:\n${message}`, main, errors); + } + } +} +exports.AnyPredicate = AnyPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array-buffer.js": +/*!**************************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array-buffer.js ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ArrayBufferPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class ArrayBufferPredicate extends predicate_1.Predicate { + /** + Test an array buffer to have a specific byte length. + + @param byteLength - The byte length of the array buffer. + */ + byteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength === byteLength + }); + } + /** + Test an array buffer to have a minimum byte length. + + @param byteLength - The minimum byte length of the array buffer. + */ + minByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength >= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength - 1}\`, got \`${value.byteLength}\`` + }); + } + /** + Test an array buffer to have a minimum byte length. + + @param length - The minimum byte length of the array buffer. + */ + maxByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength <= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength + 1}\`, got \`${value.byteLength}\`` + }); + } +} +exports.ArrayBufferPredicate = ArrayBufferPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ArrayPredicate = void 0; +const isEqual = __webpack_require__(/*! lodash.isequal */ "./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +const match_shape_1 = __webpack_require__(/*! ../utils/match-shape */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/match-shape.js"); +const of_type_1 = __webpack_require__(/*! ../utils/of-type */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js"); +class ArrayPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('array', options); + } + /** + Test an array to have a specific length. + + @param length - The length of the array. + */ + length(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``, + validator: value => value.length === length + }); + } + /** + Test an array to have a minimum length. + + @param length - The minimum length of the array. + */ + minLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``, + validator: value => value.length >= length, + negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\`` + }); + } + /** + Test an array to have a maximum length. + + @param length - The maximum length of the array. + */ + maxLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``, + validator: value => value.length <= length, + negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\`` + }); + } + /** + Test an array to start with a specific value. The value is tested by identity, not structure. + + @param searchElement - The value that should be the start of the array. + */ + startsWith(searchElement) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to start with \`${searchElement}\`, got \`${value[0]}\``, + validator: value => value[0] === searchElement + }); + } + /** + Test an array to end with a specific value. The value is tested by identity, not structure. + + @param searchElement - The value that should be the end of the array. + */ + endsWith(searchElement) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to end with \`${searchElement}\`, got \`${value[value.length - 1]}\``, + validator: value => value[value.length - 1] === searchElement + }); + } + /** + Test an array to include all the provided elements. The values are tested by identity, not structure. + + @param searchElements - The values that should be included in the array. + */ + includes(...searchElements) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to include all elements of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``, + validator: value => searchElements.every(element => value.includes(element)) + }); + } + /** + Test an array to include any of the provided elements. The values are tested by identity, not structure. + + @param searchElements - The values that should be included in the array. + */ + includesAny(...searchElements) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to include any element of \`${JSON.stringify(searchElements)}\`, got \`${JSON.stringify(value)}\``, + validator: value => searchElements.some(element => value.includes(element)) + }); + } + /** + Test an array to be empty. + */ + get empty() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be empty, got \`${JSON.stringify(value)}\``, + validator: value => value.length === 0 + }); + } + /** + Test an array to be not empty. + */ + get nonEmpty() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to not be empty`, + validator: value => value.length > 0 + }); + } + /** + Test an array to be deeply equal to the provided array. + + @param expected - Expected value to match. + */ + deepEqual(expected) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(value)}\``, + validator: value => isEqual(value, expected) + }); + } + /** + Test all elements in the array to match to provided predicate. + + @param predicate - The predicate that should be applied against every individual item. + + @example + ``` + ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number))); + ``` + */ + ofType(predicate) { + // TODO [typescript@>=5] If higher-kinded types are supported natively by typescript, refactor `addValidator` to use them to avoid the usage of `any`. Otherwise, bump or remove this TODO. + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: value => (0, of_type_1.default)(value, 'values', predicate) + }); + } + /** + Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array. + + @param predicates - Predicates to test the array against. Describes what the tested array should look like. + + @example + ``` + ow(['1', 2], ow.array.exactShape([ow.string, ow.number])); + ``` + */ + exactShape(predicates) { + const shape = predicates; + return this.addValidator({ + message: (_, label, message) => `${message.replace('Expected', 'Expected element')} in ${label}`, + validator: object => (0, match_shape_1.exact)(object, shape, undefined, true) + }); + } +} +exports.ArrayPredicate = ArrayPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.isPredicate = exports.testSymbol = void 0; +/** +@hidden +*/ +exports.testSymbol = Symbol('test'); +/** +@hidden +*/ +const isPredicate = (value) => Boolean(value[exports.testSymbol]); +exports.isPredicate = isPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/bigint.js": +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/bigint.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BigIntPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class BigIntPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('bigint', options); + } +} +exports.BigIntPredicate = BigIntPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/boolean.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/boolean.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BooleanPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class BooleanPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('boolean', options); + } + /** + Test a boolean to be true. + */ + get true() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be true, got ${value}`, + validator: value => value + }); + } + /** + Test a boolean to be false. + */ + get false() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be false, got ${value}`, + validator: value => !value + }); + } +} +exports.BooleanPredicate = BooleanPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/data-view.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/data-view.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DataViewPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class DataViewPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('DataView', options); + } + /** + Test a DataView to have a specific byte length. + + @param byteLength - The byte length of the DataView. + */ + byteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength === byteLength + }); + } + /** + Test a DataView to have a minimum byte length. + + @param byteLength - The minimum byte length of the DataView. + */ + minByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength >= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength - 1}\`, got \`${value.byteLength}\`` + }); + } + /** + Test a DataView to have a minimum byte length. + + @param length - The minimum byte length of the DataView. + */ + maxByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength <= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength + 1}\`, got \`${value.byteLength}\`` + }); + } +} +exports.DataViewPredicate = DataViewPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/date.js": +/*!******************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/date.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.DatePredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class DatePredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('date', options); + } + /** + Test a date to be before another date. + + @param date - Maximum value. + */ + before(date) { + return this.addValidator({ + message: (value, label) => `Expected ${label} ${value.toISOString()} to be before ${date.toISOString()}`, + validator: value => value.getTime() < date.getTime() + }); + } + /** + Test a date to be before another date. + + @param date - Minimum value. + */ + after(date) { + return this.addValidator({ + message: (value, label) => `Expected ${label} ${value.toISOString()} to be after ${date.toISOString()}`, + validator: value => value.getTime() > date.getTime() + }); + } +} +exports.DatePredicate = DatePredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/error.js": +/*!*******************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/error.js ***! + \*******************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ErrorPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class ErrorPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('error', options); + } + /** + Test an error to have a specific name. + + @param expected - Expected name of the Error. + */ + name(expected) { + return this.addValidator({ + message: (error, label) => `Expected ${label} to have name \`${expected}\`, got \`${error.name}\``, + validator: error => error.name === expected + }); + } + /** + Test an error to have a specific message. + + @param expected - Expected message of the Error. + */ + message(expected) { + return this.addValidator({ + message: (error, label) => `Expected ${label} message to be \`${expected}\`, got \`${error.message}\``, + validator: error => error.message === expected + }); + } + /** + Test the error message to include a specific message. + + @param message - Message that should be included in the error. + */ + messageIncludes(message) { + return this.addValidator({ + message: (error, label) => `Expected ${label} message to include \`${message}\`, got \`${error.message}\``, + validator: error => error.message.includes(message) + }); + } + /** + Test the error object to have specific keys. + + @param keys - One or more keys which should be part of the error object. + */ + hasKeys(...keys) { + return this.addValidator({ + message: (_, label) => `Expected ${label} message to have keys \`${keys.join('`, `')}\``, + validator: error => keys.every(key => Object.prototype.hasOwnProperty.call(error, key)) + }); + } + /** + Test an error to be of a specific instance type. + + @param instance - The expected instance type of the error. + */ + instanceOf(instance) { + return this.addValidator({ + message: (error, label) => `Expected ${label} \`${error.name}\` to be of type \`${instance.name}\``, + validator: error => error instanceof instance + }); + } + /** + Test an Error to be a TypeError. + */ + get typeError() { + return this.instanceOf(TypeError); + } + /** + Test an Error to be an EvalError. + */ + get evalError() { + return this.instanceOf(EvalError); + } + /** + Test an Error to be a RangeError. + */ + get rangeError() { + return this.instanceOf(RangeError); + } + /** + Test an Error to be a ReferenceError. + */ + get referenceError() { + return this.instanceOf(ReferenceError); + } + /** + Test an Error to be a SyntaxError. + */ + get syntaxError() { + return this.instanceOf(SyntaxError); + } + /** + Test an Error to be a URIError. + */ + get uriError() { + return this.instanceOf(URIError); + } +} +exports.ErrorPredicate = ErrorPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/map.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/map.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.MapPredicate = void 0; +const isEqual = __webpack_require__(/*! lodash.isequal */ "./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"); +const has_items_1 = __webpack_require__(/*! ../utils/has-items */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js"); +const of_type_1 = __webpack_require__(/*! ../utils/of-type */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class MapPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('Map', options); + } + /** + Test a Map to have a specific size. + + @param size - The size of the Map. + */ + size(size) { + return this.addValidator({ + message: (map, label) => `Expected ${label} to have size \`${size}\`, got \`${map.size}\``, + validator: map => map.size === size + }); + } + /** + Test an Map to have a minimum size. + + @param size - The minimum size of the Map. + */ + minSize(size) { + return this.addValidator({ + message: (map, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${map.size}\``, + validator: map => map.size >= size, + negatedMessage: (map, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${map.size}\`` + }); + } + /** + Test an Map to have a maximum size. + + @param size - The maximum size of the Map. + */ + maxSize(size) { + return this.addValidator({ + message: (map, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${map.size}\``, + validator: map => map.size <= size, + negatedMessage: (map, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${map.size}\`` + }); + } + /** + Test a Map to include all the provided keys. The keys are tested by identity, not structure. + + @param keys - The keys that should be a key in the Map. + */ + hasKeys(...keys) { + return this.addValidator({ + message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``, + validator: map => (0, has_items_1.default)(map, keys) + }); + } + /** + Test a Map to include any of the provided keys. The keys are tested by identity, not structure. + + @param keys - The keys that could be a key in the Map. + */ + hasAnyKeys(...keys) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``, + validator: map => keys.some(key => map.has(key)) + }); + } + /** + Test a Map to include all the provided values. The values are tested by identity, not structure. + + @param values - The values that should be a value in the Map. + */ + hasValues(...values) { + return this.addValidator({ + message: (_, label, missingValues) => `Expected ${label} to have values \`${JSON.stringify(missingValues)}\``, + validator: map => (0, has_items_1.default)(new Set(map.values()), values) + }); + } + /** + Test a Map to include any of the provided values. The values are tested by identity, not structure. + + @param values - The values that could be a value in the Map. + */ + hasAnyValues(...values) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any value of \`${JSON.stringify(values)}\``, + validator: map => { + const valueSet = new Set(map.values()); + return values.some(key => valueSet.has(key)); + } + }); + } + /** + Test all the keys in the Map to match the provided predicate. + + @param predicate - The predicate that should be applied against every key in the Map. + */ + keysOfType(predicate) { + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: map => (0, of_type_1.default)(map.keys(), 'keys', predicate) + }); + } + /** + Test all the values in the Map to match the provided predicate. + + @param predicate - The predicate that should be applied against every value in the Map. + */ + valuesOfType(predicate) { + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: map => (0, of_type_1.default)(map.values(), 'values', predicate) + }); + } + /** + Test a Map to be empty. + */ + get empty() { + return this.addValidator({ + message: (map, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...map])}\``, + validator: map => map.size === 0 + }); + } + /** + Test a Map to be not empty. + */ + get nonEmpty() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to not be empty`, + validator: map => map.size > 0 + }); + } + /** + Test a Map to be deeply equal to the provided Map. + + @param expected - Expected Map to match. + */ + deepEqual(expected) { + return this.addValidator({ + message: (map, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...map])}\``, + validator: map => isEqual(map, expected) + }); + } +} +exports.MapPredicate = MapPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/number.js": +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/number.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.NumberPredicate = void 0; +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class NumberPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('number', options); + } + /** + Test a number to be in a specified range. + + @param start - Start of the range. + @param end - End of the range. + */ + inRange(start, end) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be in range [${start}..${end}], got ${value}`, + validator: value => is_1.default.inRange(value, [start, end]) + }); + } + /** + Test a number to be greater than the provided value. + + @param number - Minimum value. + */ + greaterThan(number) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be greater than ${number}, got ${value}`, + validator: value => value > number + }); + } + /** + Test a number to be greater than or equal to the provided value. + + @param number - Minimum value. + */ + greaterThanOrEqual(number) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be greater than or equal to ${number}, got ${value}`, + validator: value => value >= number + }); + } + /** + Test a number to be less than the provided value. + + @param number - Maximum value. + */ + lessThan(number) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be less than ${number}, got ${value}`, + validator: value => value < number + }); + } + /** + Test a number to be less than or equal to the provided value. + + @param number - Minimum value. + */ + lessThanOrEqual(number) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be less than or equal to ${number}, got ${value}`, + validator: value => value <= number + }); + } + /** + Test a number to be equal to a specified number. + + @param expected - Expected value to match. + */ + equal(expected) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be equal to ${expected}, got ${value}`, + validator: value => value === expected + }); + } + /** + Test if a number is an element of the provided list. + + @param list - List of possible values. + */ + oneOf(list) { + return this.addValidator({ + message: (value, label) => { + let printedList = JSON.stringify(list); + if (list.length > 10) { + const overflow = list.length - 10; + printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,…+${overflow} more]`); + } + return `Expected ${label} to be one of \`${printedList}\`, got ${value}`; + }, + validator: value => list.includes(value) + }); + } + /** + Test a number to be an integer. + */ + get integer() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be an integer, got ${value}`, + validator: value => is_1.default.integer(value) + }); + } + /** + Test a number to be finite. + */ + get finite() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be finite, got ${value}`, + validator: value => !is_1.default.infinite(value) + }); + } + /** + Test a number to be infinite. + */ + get infinite() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be infinite, got ${value}`, + validator: value => is_1.default.infinite(value) + }); + } + /** + Test a number to be positive. + */ + get positive() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be positive, got ${value}`, + validator: value => value > 0 + }); + } + /** + Test a number to be negative. + */ + get negative() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be negative, got ${value}`, + validator: value => value < 0 + }); + } + /** + Test a number to be an integer or infinite. + */ + get integerOrInfinite() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be an integer or infinite, got ${value}`, + validator: value => is_1.default.integer(value) || is_1.default.infinite(value) + }); + } + /** + Test a number to be in a valid range for a 8-bit unsigned integer. + */ + get uint8() { + return this.integer.inRange(0, 255); + } + /** + Test a number to be in a valid range for a 16-bit unsigned integer. + */ + get uint16() { + return this.integer.inRange(0, 65535); + } + /** + Test a number to be in a valid range for a 32-bit unsigned integer. + */ + get uint32() { + return this.integer.inRange(0, 4294967295); + } + /** + Test a number to be in a valid range for a 8-bit signed integer. + */ + get int8() { + return this.integer.inRange(-128, 127); + } + /** + Test a number to be in a valid range for a 16-bit signed integer. + */ + get int16() { + return this.integer.inRange(-32768, 32767); + } + /** + Test a number to be in a valid range for a 32-bit signed integer. + */ + get int32() { + return this.integer.inRange(-2147483648, 2147483647); + } +} +exports.NumberPredicate = NumberPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/object.js": +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/object.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ObjectPredicate = void 0; +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const dotProp = __webpack_require__(/*! dot-prop */ "./node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js"); +const isEqual = __webpack_require__(/*! lodash.isequal */ "./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"); +const has_items_1 = __webpack_require__(/*! ../utils/has-items */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js"); +const of_type_1 = __webpack_require__(/*! ../utils/of-type */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js"); +const of_type_deep_1 = __webpack_require__(/*! ../utils/of-type-deep */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type-deep.js"); +const match_shape_1 = __webpack_require__(/*! ../utils/match-shape */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/match-shape.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class ObjectPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('object', options); + } + /** + Test if an Object is a plain object. + */ + get plain() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to be a plain object`, + validator: object => is_1.default.plainObject(object) + }); + } + /** + Test an object to be empty. + */ + get empty() { + return this.addValidator({ + message: (object, label) => `Expected ${label} to be empty, got \`${JSON.stringify(object)}\``, + validator: object => Object.keys(object).length === 0 + }); + } + /** + Test an object to be not empty. + */ + get nonEmpty() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to not be empty`, + validator: object => Object.keys(object).length > 0 + }); + } + /** + Test all the values in the object to match the provided predicate. + + @param predicate - The predicate that should be applied against every value in the object. + */ + valuesOfType(predicate) { + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: object => (0, of_type_1.default)(Object.values(object), 'values', predicate) + }); + } + /** + Test all the values in the object deeply to match the provided predicate. + + @param predicate - The predicate that should be applied against every value in the object. + */ + deepValuesOfType(predicate) { + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: object => (0, of_type_deep_1.default)(object, predicate) + }); + } + /** + Test an object to be deeply equal to the provided object. + + @param expected - Expected object to match. + */ + deepEqual(expected) { + return this.addValidator({ + message: (object, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify(expected)}\`, got \`${JSON.stringify(object)}\``, + validator: object => isEqual(object, expected) + }); + } + /** + Test an object to be of a specific instance type. + + @param instance - The expected instance type of the object. + */ + instanceOf(instance) { + return this.addValidator({ + message: (object, label) => { + var _a; + let { name } = (_a = object === null || object === void 0 ? void 0 : object.constructor) !== null && _a !== void 0 ? _a : {}; + if (!name || name === 'Object') { + name = JSON.stringify(object); + } + return `Expected ${label} \`${name}\` to be of type \`${instance.name}\``; + }, + validator: object => object instanceof instance + }); + } + /** + Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties. + + @param keys - The keys that should be present in the object. + */ + hasKeys(...keys) { + return this.addValidator({ + message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``, + validator: object => (0, has_items_1.default)({ + has: item => dotProp.has(object, item) + }, keys) + }); + } + /** + Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties. + + @param keys - The keys that could be a key in the object. + */ + hasAnyKeys(...keys) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``, + validator: object => keys.some(key => dotProp.has(object, key)) + }); + } + /** + Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep. + + The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates. + + @param shape - Shape to test the object against. + + @example + ``` + import ow from 'ow'; + + const object = { + unicorn: '🦄', + rainbow: '🌈' + }; + + ow(object, ow.object.partialShape({ + unicorn: ow.string + })); + ``` + */ + partialShape(shape) { + return this.addValidator({ + // TODO: Improve this when message handling becomes smarter + message: (_, label, message) => `${message.replace('Expected', 'Expected property')} in ${label}`, + validator: object => (0, match_shape_1.partial)(object, shape) + }); + } + /** + Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep. + + The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates. + + @param shape - Shape to test the object against. + + @example + ``` + import ow from 'ow'; + + ow({unicorn: '🦄'}, ow.object.exactShape({ + unicorn: ow.string + })); + ``` + */ + exactShape(shape) { + // TODO [typescript@>=5] If higher-kinded types are supported natively by typescript, refactor `addValidator` to use them to avoid the usage of `any`. Otherwise, bump or remove this TODO. + return this.addValidator({ + // TODO: Improve this when message handling becomes smarter + message: (_, label, message) => `${message.replace('Expected', 'Expected property')} in ${label}`, + validator: object => (0, match_shape_1.exact)(object, shape) + }); + } +} +exports.ObjectPredicate = ObjectPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Predicate = exports.validatorSymbol = void 0; +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const argument_error_1 = __webpack_require__(/*! ../argument-error */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js"); +const not_1 = __webpack_require__(/*! ../operators/not */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/operators/not.js"); +const base_predicate_1 = __webpack_require__(/*! ./base-predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js"); +const generate_argument_error_message_1 = __webpack_require__(/*! ../utils/generate-argument-error-message */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-argument-error-message.js"); +/** +@hidden +*/ +exports.validatorSymbol = Symbol('validators'); +/** +@hidden +*/ +class Predicate { + constructor(type, options = {}) { + Object.defineProperty(this, "type", { + enumerable: true, + configurable: true, + writable: true, + value: type + }); + Object.defineProperty(this, "options", { + enumerable: true, + configurable: true, + writable: true, + value: options + }); + Object.defineProperty(this, "context", { + enumerable: true, + configurable: true, + writable: true, + value: { + validators: [] + } + }); + this.context = { + ...this.context, + ...this.options + }; + const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1); + this.addValidator({ + message: (value, label) => { + // We do not include type in this label as we do for other messages, because it would be redundant. + const label_ = label === null || label === void 0 ? void 0 : label.slice(this.type.length + 1); + // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing + return `Expected ${label_ || 'argument'} to be of type \`${this.type}\` but received type \`${(0, is_1.default)(value)}\``; + }, + validator: value => is_1.default[typeString](value) + }); + } + /** + @hidden + */ + [base_predicate_1.testSymbol](value, main, label, idLabel) { + // Create a map of labels -> received errors. + const errors = new Map(); + for (const { validator, message } of this.context.validators) { + if (this.options.optional === true && value === undefined) { + continue; + } + let result; + try { + result = validator(value); + } + catch (error) { + // Any errors caught means validators couldn't process the input. + result = error; + } + if (result === true) { + continue; + } + const label2 = is_1.default.function_(label) ? label() : label; + const labelWithTick = (label2 && idLabel) ? `\`${label2}\`` : label2; + const label_ = labelWithTick ? + `${this.type} ${labelWithTick}` : + this.type; + const mapKey = label2 || this.type; + // Get the current errors encountered for this label. + const currentErrors = errors.get(mapKey); + // Pre-generate the error message that will be reported to the user. + const errorMessage = message(value, label_, result); + // If we already have any errors for this label. + if (currentErrors) { + // If we don't already have this error logged, add it. + currentErrors.add(errorMessage); + } + else { + // Set this label and error in the full map. + errors.set(mapKey, new Set([errorMessage])); + } + } + // If we have any errors to report, throw. + if (errors.size > 0) { + // Generate the `error.message` property. + const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors); + throw new argument_error_1.ArgumentError(message, main, errors); + } + } + /** + @hidden + */ + get [exports.validatorSymbol]() { + return this.context.validators; + } + /** + Invert the following validators. + */ + get not() { + return (0, not_1.not)(this); + } + /** + Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message. + + @param customValidator - Custom validation function. + */ + validate(customValidator) { + return this.addValidator({ + message: (_, label, error) => typeof error === 'string' ? + `(${label}) ${error}` : + error(label), + validator: value => { + const { message, validator } = customValidator(value); + if (validator) { + return true; + } + return message; + } + }); + } + /** + Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message. + + @param validator - Validation function. + */ + is(validator) { + return this.addValidator({ + message: (value, label, error) => (error ? + `(${label}) ${error}` : + `Expected ${label} \`${value}\` to pass custom validation function`), + validator + }); + } + /** + Provide a new error message to be thrown when the validation fails. + + @param newMessage - Either a string containing the new message or a function returning the new message. + + @example + ``` + ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow')); + //=> ArgumentError: Expected unicorn, got rainbow + ``` + + @example + ``` + ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \`${value}\``)); + //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈` + ``` + */ + message(newMessage) { + const { validators } = this.context; + validators[validators.length - 1].message = (value, label) => { + if (typeof newMessage === 'function') { + return newMessage(value, label); + } + return newMessage; + }; + return this; + } + /** + Register a new validator. + + @param validator - Validator to register. + */ + addValidator(validator) { + this.context.validators.push(validator); + return this; + } +} +exports.Predicate = Predicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/set.js": +/*!*****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/set.js ***! + \*****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SetPredicate = void 0; +const isEqual = __webpack_require__(/*! lodash.isequal */ "./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js"); +const has_items_1 = __webpack_require__(/*! ../utils/has-items */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js"); +const of_type_1 = __webpack_require__(/*! ../utils/of-type */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class SetPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('Set', options); + } + /** + Test a Set to have a specific size. + + @param size - The size of the Set. + */ + size(size) { + return this.addValidator({ + message: (set, label) => `Expected ${label} to have size \`${size}\`, got \`${set.size}\``, + validator: set => set.size === size + }); + } + /** + Test a Set to have a minimum size. + + @param size - The minimum size of the Set. + */ + minSize(size) { + return this.addValidator({ + message: (set, label) => `Expected ${label} to have a minimum size of \`${size}\`, got \`${set.size}\``, + validator: set => set.size >= size, + negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \`${size - 1}\`, got \`${set.size}\`` + }); + } + /** + Test a Set to have a maximum size. + + @param size - The maximum size of the Set. + */ + maxSize(size) { + return this.addValidator({ + message: (set, label) => `Expected ${label} to have a maximum size of \`${size}\`, got \`${set.size}\``, + validator: set => set.size <= size, + negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \`${size + 1}\`, got \`${set.size}\`` + }); + } + /** + Test a Set to include all the provided items. The items are tested by identity, not structure. + + @param items - The items that should be a item in the Set. + */ + has(...items) { + return this.addValidator({ + message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``, + validator: set => (0, has_items_1.default)(set, items) + }); + } + /** + Test a Set to include any of the provided items. The items are tested by identity, not structure. + + @param items - The items that could be a item in the Set. + */ + hasAny(...items) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``, + validator: set => items.some(item => set.has(item)) + }); + } + /** + Test all the items in the Set to match the provided predicate. + + @param predicate - The predicate that should be applied against every item in the Set. + */ + ofType(predicate) { + return this.addValidator({ + message: (_, label, error) => `(${label}) ${error}`, + validator: set => (0, of_type_1.default)(set, 'values', predicate) + }); + } + /** + Test a Set to be empty. + */ + get empty() { + return this.addValidator({ + message: (set, label) => `Expected ${label} to be empty, got \`${JSON.stringify([...set])}\``, + validator: set => set.size === 0 + }); + } + /** + Test a Set to be not empty. + */ + get nonEmpty() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to not be empty`, + validator: set => set.size > 0 + }); + } + /** + Test a Set to be deeply equal to the provided Set. + + @param expected - Expected Set to match. + */ + deepEqual(expected) { + return this.addValidator({ + message: (set, label) => `Expected ${label} to be deeply equal to \`${JSON.stringify([...expected])}\`, got \`${JSON.stringify([...set])}\``, + validator: set => isEqual(set, expected) + }); + } +} +exports.SetPredicate = SetPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/string.js": +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/string.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.StringPredicate = void 0; +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const valiDate = __webpack_require__(/*! vali-date */ "./node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class StringPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('string', options); + } + /** + Test a string to have a specific length. + + @param length - The length of the string. + */ + length(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value}\``, + validator: value => value.length === length + }); + } + /** + Test a string to have a minimum length. + + @param length - The minimum length of the string. + */ + minLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value}\``, + validator: value => value.length >= length, + negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value}\`` + }); + } + /** + Test a string to have a maximum length. + + @param length - The maximum length of the string. + */ + maxLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value}\``, + validator: value => value.length <= length, + negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value}\`` + }); + } + /** + Test a string against a regular expression. + + @param regex - The regular expression to match the value with. + */ + matches(regex) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to match \`${regex}\`, got \`${value}\``, + validator: value => regex.test(value) + }); + } + /** + Test a string to start with a specific value. + + @param searchString - The value that should be the start of the string. + */ + startsWith(searchString) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to start with \`${searchString}\`, got \`${value}\``, + validator: value => value.startsWith(searchString) + }); + } + /** + Test a string to end with a specific value. + + @param searchString - The value that should be the end of the string. + */ + endsWith(searchString) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to end with \`${searchString}\`, got \`${value}\``, + validator: value => value.endsWith(searchString) + }); + } + /** + Test a string to include a specific value. + + @param searchString - The value that should be included in the string. + */ + includes(searchString) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to include \`${searchString}\`, got \`${value}\``, + validator: value => value.includes(searchString) + }); + } + /** + Test if the string is an element of the provided list. + + @param list - List of possible values. + */ + oneOf(list) { + return this.addValidator({ + message: (value, label) => { + let printedList = JSON.stringify(list); + if (list.length > 10) { + const overflow = list.length - 10; + printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,…+${overflow} more]`); + } + return `Expected ${label} to be one of \`${printedList}\`, got \`${value}\``; + }, + validator: value => list.includes(value) + }); + } + /** + Test a string to be empty. + */ + get empty() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be empty, got \`${value}\``, + validator: value => value === '' + }); + } + /** + Test a string to be not empty. + */ + get nonEmpty() { + return this.addValidator({ + message: (_, label) => `Expected ${label} to not be empty`, + validator: value => value !== '' + }); + } + /** + Test a string to be equal to a specified string. + + @param expected - Expected value to match. + */ + equals(expected) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be equal to \`${expected}\`, got \`${value}\``, + validator: value => value === expected + }); + } + /** + Test a string to be alphanumeric. + */ + get alphanumeric() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be alphanumeric, got \`${value}\``, + validator: value => /^[a-z\d]+$/i.test(value) + }); + } + /** + Test a string to be alphabetical. + */ + get alphabetical() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be alphabetical, got \`${value}\``, + validator: value => /^[a-z]+$/gi.test(value) + }); + } + /** + Test a string to be numeric. + */ + get numeric() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be numeric, got \`${value}\``, + validator: value => /^[+-]?\d+$/i.test(value) + }); + } + /** + Test a string to be a valid date. + */ + get date() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be a date, got \`${value}\``, + validator: valiDate + }); + } + /** + Test a non-empty string to be lowercase. Matching both alphabetical & numbers. + */ + get lowercase() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be lowercase, got \`${value}\``, + validator: value => value.trim() !== '' && value === value.toLowerCase() + }); + } + /** + Test a non-empty string to be uppercase. Matching both alphabetical & numbers. + */ + get uppercase() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be uppercase, got \`${value}\``, + validator: value => value.trim() !== '' && value === value.toUpperCase() + }); + } + /** + Test a string to be a valid URL. + */ + get url() { + return this.addValidator({ + message: (value, label) => `Expected ${label} to be a URL, got \`${value}\``, + validator: is_1.default.urlString + }); + } +} +exports.StringPredicate = StringPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/typed-array.js": +/*!*************************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/typed-array.js ***! + \*************************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TypedArrayPredicate = void 0; +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class TypedArrayPredicate extends predicate_1.Predicate { + /** + Test a typed array to have a specific byte length. + + @param byteLength - The byte length of the typed array. + */ + byteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength === byteLength + }); + } + /** + Test a typed array to have a minimum byte length. + + @param byteLength - The minimum byte length of the typed array. + */ + minByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength >= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength - 1}\`, got \`${value.byteLength}\`` + }); + } + /** + Test a typed array to have a minimum byte length. + + @param length - The minimum byte length of the typed array. + */ + maxByteLength(byteLength) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum byte length of \`${byteLength}\`, got \`${value.byteLength}\``, + validator: value => value.byteLength <= byteLength, + negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \`${byteLength + 1}\`, got \`${value.byteLength}\`` + }); + } + /** + Test a typed array to have a specific length. + + @param length - The length of the typed array. + */ + length(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have length \`${length}\`, got \`${value.length}\``, + validator: value => value.length === length + }); + } + /** + Test a typed array to have a minimum length. + + @param length - The minimum length of the typed array. + */ + minLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a minimum length of \`${length}\`, got \`${value.length}\``, + validator: value => value.length >= length, + negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \`${length - 1}\`, got \`${value.length}\`` + }); + } + /** + Test a typed array to have a maximum length. + + @param length - The maximum length of the typed array. + */ + maxLength(length) { + return this.addValidator({ + message: (value, label) => `Expected ${label} to have a maximum length of \`${length}\`, got \`${value.length}\``, + validator: value => value.length <= length, + negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \`${length + 1}\`, got \`${value.length}\`` + }); + } +} +exports.TypedArrayPredicate = TypedArrayPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-map.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-map.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.WeakMapPredicate = void 0; +const has_items_1 = __webpack_require__(/*! ../utils/has-items */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class WeakMapPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('WeakMap', options); + } + /** + Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure. + + @param keys - The keys that should be a key in the WeakMap. + */ + hasKeys(...keys) { + return this.addValidator({ + message: (_, label, missingKeys) => `Expected ${label} to have keys \`${JSON.stringify(missingKeys)}\``, + validator: map => (0, has_items_1.default)(map, keys) + }); + } + /** + Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure. + + @param keys - The keys that could be a key in the WeakMap. + */ + hasAnyKeys(...keys) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any key of \`${JSON.stringify(keys)}\``, + validator: map => keys.some(key => map.has(key)) + }); + } +} +exports.WeakMapPredicate = WeakMapPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-set.js": +/*!**********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-set.js ***! + \**********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.WeakSetPredicate = void 0; +const has_items_1 = __webpack_require__(/*! ../utils/has-items */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js"); +const predicate_1 = __webpack_require__(/*! ./predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js"); +class WeakSetPredicate extends predicate_1.Predicate { + /** + @hidden + */ + constructor(options) { + super('WeakSet', options); + } + /** + Test a WeakSet to include all the provided items. The items are tested by identity, not structure. + + @param items - The items that should be a item in the WeakSet. + */ + has(...items) { + return this.addValidator({ + message: (_, label, missingItems) => `Expected ${label} to have items \`${JSON.stringify(missingItems)}\``, + validator: set => (0, has_items_1.default)(set, items) + }); + } + /** + Test a WeakSet to include any of the provided items. The items are tested by identity, not structure. + + @param items - The items that could be a item in the WeakSet. + */ + hasAny(...items) { + return this.addValidator({ + message: (_, label) => `Expected ${label} to have any item of \`${JSON.stringify(items)}\``, + validator: set => items.some(item => set.has(item)) + }); + } +} +exports.WeakSetPredicate = WeakSetPredicate; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js": +/*!*******************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js ***! + \*******************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const base_predicate_1 = __webpack_require__(/*! ./predicates/base-predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js"); +/** +Validate the value against the provided predicate. + +@hidden + +@param value - Value to test. +@param label - Label which should be used in error messages. +@param predicate - Predicate to test to value against. +@param idLabel - If true, the label is a variable or type. Default: true. +*/ +function test(value, label, predicate, idLabel = true) { + predicate[base_predicate_1.testSymbol](value, test, label, idLabel); +} +exports["default"] = test; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-argument-error-message.js": +/*!****************************************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-argument-error-message.js ***! + \****************************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.generateArgumentErrorMessage = void 0; +/** +Generates a complete message from all errors generated by predicates. + +@param errors - The errors generated by the predicates. +@param isAny - If this function is called from the any argument. +@hidden +*/ +const generateArgumentErrorMessage = (errors, isAny = false) => { + const message = []; + const errorArray = [...errors.entries()]; + const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1); + // If only one error "key" is present, enumerate all of those errors only. + if (errorArray.length === 1) { + const [, returnedErrors] = errorArray[0]; + if (!isAny && returnedErrors.size === 1) { + const [errorMessage] = returnedErrors; + return errorMessage; + } + for (const entry of returnedErrors) { + message.push(`${isAny ? ' - ' : ''}${entry}`); + } + return message.join('\n'); + } + // If every predicate returns just one error, enumerate them as is. + if (!anyErrorWithoutOneItemOnly) { + return errorArray.map(([, [item]]) => ` - ${item}`).join('\n'); + } + // Else, iterate through all the errors and enumerate them. + for (const [key, value] of errorArray) { + message.push(`Errors from the "${key}" predicate:`); + for (const entry of value) { + message.push(` - ${entry}`); + } + } + return message.join('\n'); +}; +exports.generateArgumentErrorMessage = generateArgumentErrorMessage; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-stack.js": +/*!***********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-stack.js ***! + \***********************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.generateStackTrace = void 0; +/** +Generates a useful stacktrace that points to the user's code where the error happened on platforms without the `Error.captureStackTrace()` method. + +@hidden +*/ +const generateStackTrace = () => { + const stack = new RangeError('INTERNAL_OW_ERROR').stack; + return stack; +}; +exports.generateStackTrace = generateStackTrace; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js": +/*!******************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +/** +Retrieve the missing values in a collection based on an array of items. + +@hidden + +@param source - Source collection to search through. +@param items - Items to search for. +@param maxValues - Maximum number of values after the search process is stopped. Default: 5. +*/ +exports["default"] = (source, items, maxValues = 5) => { + const missingValues = []; + for (const value of items) { + if (source.has(value)) { + continue; + } + missingValues.push(value); + if (missingValues.length === maxValues) { + return missingValues; + } + } + return missingValues.length === 0 ? true : missingValues; +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/infer-label.browser.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/infer-label.browser.js ***! + \****************************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.inferLabel = void 0; +const inferLabel = () => { }; +exports.inferLabel = inferLabel; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/match-shape.js": +/*!********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/match-shape.js ***! + \********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.exact = exports.partial = void 0; +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const test_1 = __webpack_require__(/*! ../test */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js"); +const base_predicate_1 = __webpack_require__(/*! ../predicates/base-predicate */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js"); +/** +Test if the `object` matches the `shape` partially. + +@hidden + +@param object - Object to test against the provided shape. +@param shape - Shape to test the object against. +@param parent - Name of the parent property. +*/ +function partial(object, shape, parent) { + try { + for (const key of Object.keys(shape)) { + const label = parent ? `${parent}.${key}` : key; + if ((0, base_predicate_1.isPredicate)(shape[key])) { + (0, test_1.default)(object[key], label, shape[key]); + } + else if (is_1.default.plainObject(shape[key])) { + const result = partial(object[key], shape[key], label); + if (result !== true) { + return result; + } + } + } + return true; + } + catch (error) { + return error.message; + } +} +exports.partial = partial; +/** +Test if the `object` matches the `shape` exactly. + +@hidden + +@param object - Object to test against the provided shape. +@param shape - Shape to test the object against. +@param parent - Name of the parent property. +*/ +function exact(object, shape, parent, isArray) { + try { + const objectKeys = new Set(Object.keys(object)); + for (const key of Object.keys(shape)) { + objectKeys.delete(key); + const label = parent ? `${parent}.${key}` : key; + if ((0, base_predicate_1.isPredicate)(shape[key])) { + (0, test_1.default)(object[key], label, shape[key]); + } + else if (is_1.default.plainObject(shape[key])) { + if (!Object.prototype.hasOwnProperty.call(object, key)) { + return `Expected \`${label}\` to exist`; + } + const result = exact(object[key], shape[key], label); + if (result !== true) { + return result; + } + } + } + if (objectKeys.size > 0) { + const firstKey = [...objectKeys.keys()][0]; + const label = parent ? `${parent}.${firstKey}` : firstKey; + return `Did not expect ${isArray ? 'element' : 'property'} \`${label}\` to exist, got \`${object[firstKey]}\``; + } + return true; + } + catch (error) { + return error.message; + } +} +exports.exact = exact; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type-deep.js": +/*!*********************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type-deep.js ***! + \*********************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const is_1 = __webpack_require__(/*! @sindresorhus/is */ "./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js"); +const test_1 = __webpack_require__(/*! ../test */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js"); +const ofTypeDeep = (object, predicate) => { + if (!is_1.default.plainObject(object)) { + (0, test_1.default)(object, 'deep values', predicate, false); + return true; + } + return Object.values(object).every(value => ofTypeDeep(value, predicate)); +}; +/** +Test all the values in the object against a provided predicate. + +@hidden + +@param predicate - Predicate to test every value in the given object against. +*/ +exports["default"] = (object, predicate) => { + try { + return ofTypeDeep(object, predicate); + } + catch (error) { + return error.message; + } +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js": +/*!****************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js ***! + \****************************************************************************/ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const test_1 = __webpack_require__(/*! ../test */ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js"); +/** +Test all the values in the collection against a provided predicate. + +@hidden +@param source Source collection to test. +@param name The name to call the collection of values, such as `values` or `keys`. +@param predicate Predicate to test every item in the source collection against. +*/ +exports["default"] = (source, name, predicate) => { + try { + for (const item of source) { + (0, test_1.default)(item, name, predicate, false); + } + return true; + } + catch (error) { + return error.message; + } +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/random-id.js": +/*!******************************************************************************!*\ + !*** ./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/random-id.js ***! + \******************************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports["default"] = () => Math.random().toString(16).slice(2); + + +/***/ }), + +/***/ "./node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js": +/*!****************************************************************************************!*\ + !*** ./node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js ***! + \****************************************************************************************/ +/***/ ((module) => { + +"use strict"; +// 'path' module extracted from Node.js v8.11.1 (only the posix part) +// transplited with Babel + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + + + +function assertPath(path) { + if (typeof path !== 'string') { + throw new TypeError('Path must be a string. Received ' + JSON.stringify(path)); + } +} + +// Resolves . and .. elements in a path with directory names +function normalizeStringPosix(path, allowAboveRoot) { + var res = ''; + var lastSegmentLength = 0; + var lastSlash = -1; + var dots = 0; + var code; + for (var i = 0; i <= path.length; ++i) { + if (i < path.length) + code = path.charCodeAt(i); + else if (code === 47 /*/*/) + break; + else + code = 47 /*/*/; + if (code === 47 /*/*/) { + if (lastSlash === i - 1 || dots === 1) { + // NOOP + } else if (lastSlash !== i - 1 && dots === 2) { + if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) { + if (res.length > 2) { + var lastSlashIndex = res.lastIndexOf('/'); + if (lastSlashIndex !== res.length - 1) { + if (lastSlashIndex === -1) { + res = ''; + lastSegmentLength = 0; + } else { + res = res.slice(0, lastSlashIndex); + lastSegmentLength = res.length - 1 - res.lastIndexOf('/'); + } + lastSlash = i; + dots = 0; + continue; + } + } else if (res.length === 2 || res.length === 1) { + res = ''; + lastSegmentLength = 0; + lastSlash = i; + dots = 0; + continue; + } + } + if (allowAboveRoot) { + if (res.length > 0) + res += '/..'; + else + res = '..'; + lastSegmentLength = 2; + } + } else { + if (res.length > 0) + res += '/' + path.slice(lastSlash + 1, i); + else + res = path.slice(lastSlash + 1, i); + lastSegmentLength = i - lastSlash - 1; + } + lastSlash = i; + dots = 0; + } else if (code === 46 /*.*/ && dots !== -1) { + ++dots; + } else { + dots = -1; + } + } + return res; +} + +function _format(sep, pathObject) { + var dir = pathObject.dir || pathObject.root; + var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || ''); + if (!dir) { + return base; + } + if (dir === pathObject.root) { + return dir + base; + } + return dir + sep + base; +} + +var posix = { + // path.resolve([from ...], to) + resolve: function resolve() { + var resolvedPath = ''; + var resolvedAbsolute = false; + var cwd; + + for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) { + var path; + if (i >= 0) + path = arguments[i]; + else { + if (cwd === undefined) + cwd = process.cwd(); + path = cwd; + } + + assertPath(path); + + // Skip empty entries + if (path.length === 0) { + continue; + } + + resolvedPath = path + '/' + resolvedPath; + resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/; + } + + // At this point the path should be resolved to a full absolute path, but + // handle relative paths to be safe (might happen when process.cwd() fails) + + // Normalize the path + resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute); + + if (resolvedAbsolute) { + if (resolvedPath.length > 0) + return '/' + resolvedPath; + else + return '/'; + } else if (resolvedPath.length > 0) { + return resolvedPath; + } else { + return '.'; + } + }, + + normalize: function normalize(path) { + assertPath(path); + + if (path.length === 0) return '.'; + + var isAbsolute = path.charCodeAt(0) === 47 /*/*/; + var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/; + + // Normalize the path + path = normalizeStringPosix(path, !isAbsolute); + + if (path.length === 0 && !isAbsolute) path = '.'; + if (path.length > 0 && trailingSeparator) path += '/'; + + if (isAbsolute) return '/' + path; + return path; + }, + + isAbsolute: function isAbsolute(path) { + assertPath(path); + return path.length > 0 && path.charCodeAt(0) === 47 /*/*/; + }, + + join: function join() { + if (arguments.length === 0) + return '.'; + var joined; + for (var i = 0; i < arguments.length; ++i) { + var arg = arguments[i]; + assertPath(arg); + if (arg.length > 0) { + if (joined === undefined) + joined = arg; + else + joined += '/' + arg; + } + } + if (joined === undefined) + return '.'; + return posix.normalize(joined); + }, + + relative: function relative(from, to) { + assertPath(from); + assertPath(to); + + if (from === to) return ''; + + from = posix.resolve(from); + to = posix.resolve(to); + + if (from === to) return ''; + + // Trim any leading backslashes + var fromStart = 1; + for (; fromStart < from.length; ++fromStart) { + if (from.charCodeAt(fromStart) !== 47 /*/*/) + break; + } + var fromEnd = from.length; + var fromLen = fromEnd - fromStart; + + // Trim any leading backslashes + var toStart = 1; + for (; toStart < to.length; ++toStart) { + if (to.charCodeAt(toStart) !== 47 /*/*/) + break; + } + var toEnd = to.length; + var toLen = toEnd - toStart; + + // Compare paths to find the longest common path from root + var length = fromLen < toLen ? fromLen : toLen; + var lastCommonSep = -1; + var i = 0; + for (; i <= length; ++i) { + if (i === length) { + if (toLen > length) { + if (to.charCodeAt(toStart + i) === 47 /*/*/) { + // We get here if `from` is the exact base path for `to`. + // For example: from='/foo/bar'; to='/foo/bar/baz' + return to.slice(toStart + i + 1); + } else if (i === 0) { + // We get here if `from` is the root + // For example: from='/'; to='/foo' + return to.slice(toStart + i); + } + } else if (fromLen > length) { + if (from.charCodeAt(fromStart + i) === 47 /*/*/) { + // We get here if `to` is the exact base path for `from`. + // For example: from='/foo/bar/baz'; to='/foo/bar' + lastCommonSep = i; + } else if (i === 0) { + // We get here if `to` is the root. + // For example: from='/foo'; to='/' + lastCommonSep = 0; + } + } + break; + } + var fromCode = from.charCodeAt(fromStart + i); + var toCode = to.charCodeAt(toStart + i); + if (fromCode !== toCode) + break; + else if (fromCode === 47 /*/*/) + lastCommonSep = i; + } + + var out = ''; + // Generate the relative path based on the path difference between `to` + // and `from` + for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) { + if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) { + if (out.length === 0) + out += '..'; + else + out += '/..'; + } + } + + // Lastly, append the rest of the destination (`to`) path that comes after + // the common path parts + if (out.length > 0) + return out + to.slice(toStart + lastCommonSep); + else { + toStart += lastCommonSep; + if (to.charCodeAt(toStart) === 47 /*/*/) + ++toStart; + return to.slice(toStart); + } + }, + + _makeLong: function _makeLong(path) { + return path; + }, + + dirname: function dirname(path) { + assertPath(path); + if (path.length === 0) return '.'; + var code = path.charCodeAt(0); + var hasRoot = code === 47 /*/*/; + var end = -1; + var matchedSlash = true; + for (var i = path.length - 1; i >= 1; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + if (!matchedSlash) { + end = i; + break; + } + } else { + // We saw the first non-path separator + matchedSlash = false; + } + } + + if (end === -1) return hasRoot ? '/' : '.'; + if (hasRoot && end === 1) return '//'; + return path.slice(0, end); + }, + + basename: function basename(path, ext) { + if (ext !== undefined && typeof ext !== 'string') throw new TypeError('"ext" argument must be a string'); + assertPath(path); + + var start = 0; + var end = -1; + var matchedSlash = true; + var i; + + if (ext !== undefined && ext.length > 0 && ext.length <= path.length) { + if (ext.length === path.length && ext === path) return ''; + var extIdx = ext.length - 1; + var firstNonSlashEnd = -1; + for (i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else { + if (firstNonSlashEnd === -1) { + // We saw the first non-path separator, remember this index in case + // we need it if the extension ends up not matching + matchedSlash = false; + firstNonSlashEnd = i + 1; + } + if (extIdx >= 0) { + // Try to match the explicit extension + if (code === ext.charCodeAt(extIdx)) { + if (--extIdx === -1) { + // We matched the extension, so mark this as the end of our path + // component + end = i; + } + } else { + // Extension does not match, so our result is the entire path + // component + extIdx = -1; + end = firstNonSlashEnd; + } + } + } + } + + if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length; + return path.slice(start, end); + } else { + for (i = path.length - 1; i >= 0; --i) { + if (path.charCodeAt(i) === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + start = i + 1; + break; + } + } else if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // path component + matchedSlash = false; + end = i + 1; + } + } + + if (end === -1) return ''; + return path.slice(start, end); + } + }, + + extname: function extname(path) { + assertPath(path); + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + for (var i = path.length - 1; i >= 0; --i) { + var code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) + startDot = i; + else if (preDotState !== 1) + preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + return ''; + } + return path.slice(startDot, end); + }, + + format: function format(pathObject) { + if (pathObject === null || typeof pathObject !== 'object') { + throw new TypeError('The "pathObject" argument must be of type Object. Received type ' + typeof pathObject); + } + return _format('/', pathObject); + }, + + parse: function parse(path) { + assertPath(path); + + var ret = { root: '', dir: '', base: '', ext: '', name: '' }; + if (path.length === 0) return ret; + var code = path.charCodeAt(0); + var isAbsolute = code === 47 /*/*/; + var start; + if (isAbsolute) { + ret.root = '/'; + start = 1; + } else { + start = 0; + } + var startDot = -1; + var startPart = 0; + var end = -1; + var matchedSlash = true; + var i = path.length - 1; + + // Track the state of characters (if any) we see before our first dot and + // after any path separator we find + var preDotState = 0; + + // Get non-dir info + for (; i >= start; --i) { + code = path.charCodeAt(i); + if (code === 47 /*/*/) { + // If we reached a path separator that was not part of a set of path + // separators at the end of the string, stop now + if (!matchedSlash) { + startPart = i + 1; + break; + } + continue; + } + if (end === -1) { + // We saw the first non-path separator, mark this as the end of our + // extension + matchedSlash = false; + end = i + 1; + } + if (code === 46 /*.*/) { + // If this is our first dot, mark it as the start of our extension + if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1; + } else if (startDot !== -1) { + // We saw a non-dot and non-path separator before our dot, so we should + // have a good chance at having a non-empty extension + preDotState = -1; + } + } + + if (startDot === -1 || end === -1 || + // We saw a non-dot character immediately before the dot + preDotState === 0 || + // The (right-most) trimmed path component is exactly '..' + preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) { + if (end !== -1) { + if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end); + } + } else { + if (startPart === 0 && isAbsolute) { + ret.name = path.slice(1, startDot); + ret.base = path.slice(1, end); + } else { + ret.name = path.slice(startPart, startDot); + ret.base = path.slice(startPart, end); + } + ret.ext = path.slice(startDot, end); + } + + if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/'; + + return ret; + }, + + sep: '/', + delimiter: ':', + win32: null, + posix: null +}; + +posix.posix = posix; + +module.exports = posix; + + +/***/ }), + +/***/ "./node_modules/.pnpm/unorm@1.6.0/node_modules/unorm/lib/unorm.js": +/*!************************************************************************!*\ + !*** ./node_modules/.pnpm/unorm@1.6.0/node_modules/unorm/lib/unorm.js ***! + \************************************************************************/ +/***/ (function(module) { + +(function (root) { + "use strict"; + +/***** unorm.js *****/ + +/* + * UnicodeNormalizer 1.0.0 + * Copyright (c) 2008 Matsuza + * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses. + * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $ + * $Rev: 13309 $ + */ + + var DEFAULT_FEATURE = [null, 0, {}]; + var CACHE_THRESHOLD = 10; + var SBase = 0xAC00, LBase = 0x1100, VBase = 0x1161, TBase = 0x11A7, LCount = 19, VCount = 21, TCount = 28; + var NCount = VCount * TCount; // 588 + var SCount = LCount * NCount; // 11172 + + var UChar = function(cp, feature){ + this.codepoint = cp; + this.feature = feature; + }; + + // Strategies + var cache = {}; + var cacheCounter = []; + for (var i = 0; i <= 0xFF; ++i){ + cacheCounter[i] = 0; + } + + function fromCache(next, cp, needFeature){ + var ret = cache[cp]; + if(!ret){ + ret = next(cp, needFeature); + if(!!ret.feature && ++cacheCounter[(cp >> 8) & 0xFF] > CACHE_THRESHOLD){ + cache[cp] = ret; + } + } + return ret; + } + + function fromData(next, cp, needFeature){ + var hash = cp & 0xFF00; + var dunit = UChar.udata[hash] || {}; + var f = dunit[cp]; + return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE); + } + function fromCpOnly(next, cp, needFeature){ + return !!needFeature ? next(cp, needFeature) : new UChar(cp, null); + } + function fromRuleBasedJamo(next, cp, needFeature){ + var j; + if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){ + return next(cp, needFeature); + } + if(LBase <= cp && cp < LBase + LCount){ + var c = {}; + var base = (cp - LBase) * VCount; + for (j = 0; j < VCount; ++j){ + c[VBase + j] = SBase + TCount * (j + base); + } + return new UChar(cp, [,,c]); + } + + var SIndex = cp - SBase; + var TIndex = SIndex % TCount; + var feature = []; + if(TIndex !== 0){ + feature[0] = [SBase + SIndex - TIndex, TBase + TIndex]; + } else { + feature[0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)]; + feature[2] = {}; + for (j = 1; j < TCount; ++j){ + feature[2][TBase + j] = cp + j; + } + } + return new UChar(cp, feature); + } + function fromCpFilter(next, cp, needFeature){ + return cp < 60 || 13311 < cp && cp < 42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature); + } + + var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData]; + + UChar.fromCharCode = strategies.reduceRight(function (next, strategy) { + return function (cp, needFeature) { + return strategy(next, cp, needFeature); + }; + }, null); + + UChar.isHighSurrogate = function(cp){ + return cp >= 0xD800 && cp <= 0xDBFF; + }; + UChar.isLowSurrogate = function(cp){ + return cp >= 0xDC00 && cp <= 0xDFFF; + }; + + UChar.prototype.prepFeature = function(){ + if(!this.feature){ + this.feature = UChar.fromCharCode(this.codepoint, true).feature; + } + }; + + UChar.prototype.toString = function(){ + if(this.codepoint < 0x10000){ + return String.fromCharCode(this.codepoint); + } else { + var x = this.codepoint - 0x10000; + return String.fromCharCode(Math.floor(x / 0x400) + 0xD800, x % 0x400 + 0xDC00); + } + }; + + UChar.prototype.getDecomp = function(){ + this.prepFeature(); + return this.feature[0] || null; + }; + + UChar.prototype.isCompatibility = function(){ + this.prepFeature(); + return !!this.feature[1] && (this.feature[1] & (1 << 8)); + }; + UChar.prototype.isExclude = function(){ + this.prepFeature(); + return !!this.feature[1] && (this.feature[1] & (1 << 9)); + }; + UChar.prototype.getCanonicalClass = function(){ + this.prepFeature(); + return !!this.feature[1] ? (this.feature[1] & 0xff) : 0; + }; + UChar.prototype.getComposite = function(following){ + this.prepFeature(); + if(!this.feature[2]){ + return null; + } + var cp = this.feature[2][following.codepoint]; + return cp ? UChar.fromCharCode(cp) : null; + }; + + var UCharIterator = function(str){ + this.str = str; + this.cursor = 0; + }; + UCharIterator.prototype.next = function(){ + if(!!this.str && this.cursor < this.str.length){ + var cp = this.str.charCodeAt(this.cursor++); + var d; + if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){ + cp = (cp - 0xD800) * 0x400 + (d -0xDC00) + 0x10000; + ++this.cursor; + } + return UChar.fromCharCode(cp); + } else { + this.str = null; + return null; + } + }; + + var RecursDecompIterator = function(it, cano){ + this.it = it; + this.canonical = cano; + this.resBuf = []; + }; + + RecursDecompIterator.prototype.next = function(){ + function recursiveDecomp(cano, uchar){ + var decomp = uchar.getDecomp(); + if(!!decomp && !(cano && uchar.isCompatibility())){ + var ret = []; + for(var i = 0; i < decomp.length; ++i){ + var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i])); + ret = ret.concat(a); + } + return ret; + } else { + return [uchar]; + } + } + if(this.resBuf.length === 0){ + var uchar = this.it.next(); + if(!uchar){ + return null; + } + this.resBuf = recursiveDecomp(this.canonical, uchar); + } + return this.resBuf.shift(); + }; + + var DecompIterator = function(it){ + this.it = it; + this.resBuf = []; + }; + + DecompIterator.prototype.next = function(){ + var cc; + if(this.resBuf.length === 0){ + do{ + var uchar = this.it.next(); + if(!uchar){ + break; + } + cc = uchar.getCanonicalClass(); + var inspt = this.resBuf.length; + if(cc !== 0){ + for(; inspt > 0; --inspt){ + var uchar2 = this.resBuf[inspt - 1]; + var cc2 = uchar2.getCanonicalClass(); + if(cc2 <= cc){ + break; + } + } + } + this.resBuf.splice(inspt, 0, uchar); + } while(cc !== 0); + } + return this.resBuf.shift(); + }; + + var CompIterator = function(it){ + this.it = it; + this.procBuf = []; + this.resBuf = []; + this.lastClass = null; + }; + + CompIterator.prototype.next = function(){ + while(this.resBuf.length === 0){ + var uchar = this.it.next(); + if(!uchar){ + this.resBuf = this.procBuf; + this.procBuf = []; + break; + } + if(this.procBuf.length === 0){ + this.lastClass = uchar.getCanonicalClass(); + this.procBuf.push(uchar); + } else { + var starter = this.procBuf[0]; + var composite = starter.getComposite(uchar); + var cc = uchar.getCanonicalClass(); + if(!!composite && (this.lastClass < cc || this.lastClass === 0)){ + this.procBuf[0] = composite; + } else { + if(cc === 0){ + this.resBuf = this.procBuf; + this.procBuf = []; + } + this.lastClass = cc; + this.procBuf.push(uchar); + } + } + } + return this.resBuf.shift(); + }; + + var createIterator = function(mode, str){ + switch(mode){ + case "NFD": + return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)); + case "NFKD": + return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)); + case "NFC": + return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true))); + case "NFKC": + return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false))); + } + throw mode + " is invalid"; + }; + var normalize = function(mode, str){ + var it = createIterator(mode, str); + var ret = ""; + var uchar; + while(!!(uchar = it.next())){ + ret += uchar.toString(); + } + return ret; + }; + + /* API functions */ + function nfd(str){ + return normalize("NFD", str); + } + + function nfkd(str){ + return normalize("NFKD", str); + } + + function nfc(str){ + return normalize("NFC", str); + } + + function nfkc(str){ + return normalize("NFKC", str); + } + +/* Unicode data */ +UChar.udata={ +0:{60:[,,{824:8814}],61:[,,{824:8800}],62:[,,{824:8815}],65:[,,{768:192,769:193,770:194,771:195,772:256,774:258,775:550,776:196,777:7842,778:197,780:461,783:512,785:514,803:7840,805:7680,808:260}],66:[,,{775:7682,803:7684,817:7686}],67:[,,{769:262,770:264,775:266,780:268,807:199}],68:[,,{775:7690,780:270,803:7692,807:7696,813:7698,817:7694}],69:[,,{768:200,769:201,770:202,771:7868,772:274,774:276,775:278,776:203,777:7866,780:282,783:516,785:518,803:7864,807:552,808:280,813:7704,816:7706}],70:[,,{775:7710}],71:[,,{769:500,770:284,772:7712,774:286,775:288,780:486,807:290}],72:[,,{770:292,775:7714,776:7718,780:542,803:7716,807:7720,814:7722}],73:[,,{768:204,769:205,770:206,771:296,772:298,774:300,775:304,776:207,777:7880,780:463,783:520,785:522,803:7882,808:302,816:7724}],74:[,,{770:308}],75:[,,{769:7728,780:488,803:7730,807:310,817:7732}],76:[,,{769:313,780:317,803:7734,807:315,813:7740,817:7738}],77:[,,{769:7742,775:7744,803:7746}],78:[,,{768:504,769:323,771:209,775:7748,780:327,803:7750,807:325,813:7754,817:7752}],79:[,,{768:210,769:211,770:212,771:213,772:332,774:334,775:558,776:214,777:7886,779:336,780:465,783:524,785:526,795:416,803:7884,808:490}],80:[,,{769:7764,775:7766}],82:[,,{769:340,775:7768,780:344,783:528,785:530,803:7770,807:342,817:7774}],83:[,,{769:346,770:348,775:7776,780:352,803:7778,806:536,807:350}],84:[,,{775:7786,780:356,803:7788,806:538,807:354,813:7792,817:7790}],85:[,,{768:217,769:218,770:219,771:360,772:362,774:364,776:220,777:7910,778:366,779:368,780:467,783:532,785:534,795:431,803:7908,804:7794,808:370,813:7798,816:7796}],86:[,,{771:7804,803:7806}],87:[,,{768:7808,769:7810,770:372,775:7814,776:7812,803:7816}],88:[,,{775:7818,776:7820}],89:[,,{768:7922,769:221,770:374,771:7928,772:562,775:7822,776:376,777:7926,803:7924}],90:[,,{769:377,770:7824,775:379,780:381,803:7826,817:7828}],97:[,,{768:224,769:225,770:226,771:227,772:257,774:259,775:551,776:228,777:7843,778:229,780:462,783:513,785:515,803:7841,805:7681,808:261}],98:[,,{775:7683,803:7685,817:7687}],99:[,,{769:263,770:265,775:267,780:269,807:231}],100:[,,{775:7691,780:271,803:7693,807:7697,813:7699,817:7695}],101:[,,{768:232,769:233,770:234,771:7869,772:275,774:277,775:279,776:235,777:7867,780:283,783:517,785:519,803:7865,807:553,808:281,813:7705,816:7707}],102:[,,{775:7711}],103:[,,{769:501,770:285,772:7713,774:287,775:289,780:487,807:291}],104:[,,{770:293,775:7715,776:7719,780:543,803:7717,807:7721,814:7723,817:7830}],105:[,,{768:236,769:237,770:238,771:297,772:299,774:301,776:239,777:7881,780:464,783:521,785:523,803:7883,808:303,816:7725}],106:[,,{770:309,780:496}],107:[,,{769:7729,780:489,803:7731,807:311,817:7733}],108:[,,{769:314,780:318,803:7735,807:316,813:7741,817:7739}],109:[,,{769:7743,775:7745,803:7747}],110:[,,{768:505,769:324,771:241,775:7749,780:328,803:7751,807:326,813:7755,817:7753}],111:[,,{768:242,769:243,770:244,771:245,772:333,774:335,775:559,776:246,777:7887,779:337,780:466,783:525,785:527,795:417,803:7885,808:491}],112:[,,{769:7765,775:7767}],114:[,,{769:341,775:7769,780:345,783:529,785:531,803:7771,807:343,817:7775}],115:[,,{769:347,770:349,775:7777,780:353,803:7779,806:537,807:351}],116:[,,{775:7787,776:7831,780:357,803:7789,806:539,807:355,813:7793,817:7791}],117:[,,{768:249,769:250,770:251,771:361,772:363,774:365,776:252,777:7911,778:367,779:369,780:468,783:533,785:535,795:432,803:7909,804:7795,808:371,813:7799,816:7797}],118:[,,{771:7805,803:7807}],119:[,,{768:7809,769:7811,770:373,775:7815,776:7813,778:7832,803:7817}],120:[,,{775:7819,776:7821}],121:[,,{768:7923,769:253,770:375,771:7929,772:563,775:7823,776:255,777:7927,778:7833,803:7925}],122:[,,{769:378,770:7825,775:380,780:382,803:7827,817:7829}],160:[[32],256],168:[[32,776],256,{768:8173,769:901,834:8129}],170:[[97],256],175:[[32,772],256],178:[[50],256],179:[[51],256],180:[[32,769],256],181:[[956],256],184:[[32,807],256],185:[[49],256],186:[[111],256],188:[[49,8260,52],256],189:[[49,8260,50],256],190:[[51,8260,52],256],192:[[65,768]],193:[[65,769]],194:[[65,770],,{768:7846,769:7844,771:7850,777:7848}],195:[[65,771]],196:[[65,776],,{772:478}],197:[[65,778],,{769:506}],198:[,,{769:508,772:482}],199:[[67,807],,{769:7688}],200:[[69,768]],201:[[69,769]],202:[[69,770],,{768:7872,769:7870,771:7876,777:7874}],203:[[69,776]],204:[[73,768]],205:[[73,769]],206:[[73,770]],207:[[73,776],,{769:7726}],209:[[78,771]],210:[[79,768]],211:[[79,769]],212:[[79,770],,{768:7890,769:7888,771:7894,777:7892}],213:[[79,771],,{769:7756,772:556,776:7758}],214:[[79,776],,{772:554}],216:[,,{769:510}],217:[[85,768]],218:[[85,769]],219:[[85,770]],220:[[85,776],,{768:475,769:471,772:469,780:473}],221:[[89,769]],224:[[97,768]],225:[[97,769]],226:[[97,770],,{768:7847,769:7845,771:7851,777:7849}],227:[[97,771]],228:[[97,776],,{772:479}],229:[[97,778],,{769:507}],230:[,,{769:509,772:483}],231:[[99,807],,{769:7689}],232:[[101,768]],233:[[101,769]],234:[[101,770],,{768:7873,769:7871,771:7877,777:7875}],235:[[101,776]],236:[[105,768]],237:[[105,769]],238:[[105,770]],239:[[105,776],,{769:7727}],241:[[110,771]],242:[[111,768]],243:[[111,769]],244:[[111,770],,{768:7891,769:7889,771:7895,777:7893}],245:[[111,771],,{769:7757,772:557,776:7759}],246:[[111,776],,{772:555}],248:[,,{769:511}],249:[[117,768]],250:[[117,769]],251:[[117,770]],252:[[117,776],,{768:476,769:472,772:470,780:474}],253:[[121,769]],255:[[121,776]]}, +256:{256:[[65,772]],257:[[97,772]],258:[[65,774],,{768:7856,769:7854,771:7860,777:7858}],259:[[97,774],,{768:7857,769:7855,771:7861,777:7859}],260:[[65,808]],261:[[97,808]],262:[[67,769]],263:[[99,769]],264:[[67,770]],265:[[99,770]],266:[[67,775]],267:[[99,775]],268:[[67,780]],269:[[99,780]],270:[[68,780]],271:[[100,780]],274:[[69,772],,{768:7700,769:7702}],275:[[101,772],,{768:7701,769:7703}],276:[[69,774]],277:[[101,774]],278:[[69,775]],279:[[101,775]],280:[[69,808]],281:[[101,808]],282:[[69,780]],283:[[101,780]],284:[[71,770]],285:[[103,770]],286:[[71,774]],287:[[103,774]],288:[[71,775]],289:[[103,775]],290:[[71,807]],291:[[103,807]],292:[[72,770]],293:[[104,770]],296:[[73,771]],297:[[105,771]],298:[[73,772]],299:[[105,772]],300:[[73,774]],301:[[105,774]],302:[[73,808]],303:[[105,808]],304:[[73,775]],306:[[73,74],256],307:[[105,106],256],308:[[74,770]],309:[[106,770]],310:[[75,807]],311:[[107,807]],313:[[76,769]],314:[[108,769]],315:[[76,807]],316:[[108,807]],317:[[76,780]],318:[[108,780]],319:[[76,183],256],320:[[108,183],256],323:[[78,769]],324:[[110,769]],325:[[78,807]],326:[[110,807]],327:[[78,780]],328:[[110,780]],329:[[700,110],256],332:[[79,772],,{768:7760,769:7762}],333:[[111,772],,{768:7761,769:7763}],334:[[79,774]],335:[[111,774]],336:[[79,779]],337:[[111,779]],340:[[82,769]],341:[[114,769]],342:[[82,807]],343:[[114,807]],344:[[82,780]],345:[[114,780]],346:[[83,769],,{775:7780}],347:[[115,769],,{775:7781}],348:[[83,770]],349:[[115,770]],350:[[83,807]],351:[[115,807]],352:[[83,780],,{775:7782}],353:[[115,780],,{775:7783}],354:[[84,807]],355:[[116,807]],356:[[84,780]],357:[[116,780]],360:[[85,771],,{769:7800}],361:[[117,771],,{769:7801}],362:[[85,772],,{776:7802}],363:[[117,772],,{776:7803}],364:[[85,774]],365:[[117,774]],366:[[85,778]],367:[[117,778]],368:[[85,779]],369:[[117,779]],370:[[85,808]],371:[[117,808]],372:[[87,770]],373:[[119,770]],374:[[89,770]],375:[[121,770]],376:[[89,776]],377:[[90,769]],378:[[122,769]],379:[[90,775]],380:[[122,775]],381:[[90,780]],382:[[122,780]],383:[[115],256,{775:7835}],416:[[79,795],,{768:7900,769:7898,771:7904,777:7902,803:7906}],417:[[111,795],,{768:7901,769:7899,771:7905,777:7903,803:7907}],431:[[85,795],,{768:7914,769:7912,771:7918,777:7916,803:7920}],432:[[117,795],,{768:7915,769:7913,771:7919,777:7917,803:7921}],439:[,,{780:494}],452:[[68,381],256],453:[[68,382],256],454:[[100,382],256],455:[[76,74],256],456:[[76,106],256],457:[[108,106],256],458:[[78,74],256],459:[[78,106],256],460:[[110,106],256],461:[[65,780]],462:[[97,780]],463:[[73,780]],464:[[105,780]],465:[[79,780]],466:[[111,780]],467:[[85,780]],468:[[117,780]],469:[[220,772]],470:[[252,772]],471:[[220,769]],472:[[252,769]],473:[[220,780]],474:[[252,780]],475:[[220,768]],476:[[252,768]],478:[[196,772]],479:[[228,772]],480:[[550,772]],481:[[551,772]],482:[[198,772]],483:[[230,772]],486:[[71,780]],487:[[103,780]],488:[[75,780]],489:[[107,780]],490:[[79,808],,{772:492}],491:[[111,808],,{772:493}],492:[[490,772]],493:[[491,772]],494:[[439,780]],495:[[658,780]],496:[[106,780]],497:[[68,90],256],498:[[68,122],256],499:[[100,122],256],500:[[71,769]],501:[[103,769]],504:[[78,768]],505:[[110,768]],506:[[197,769]],507:[[229,769]],508:[[198,769]],509:[[230,769]],510:[[216,769]],511:[[248,769]],66045:[,220]}, +512:{512:[[65,783]],513:[[97,783]],514:[[65,785]],515:[[97,785]],516:[[69,783]],517:[[101,783]],518:[[69,785]],519:[[101,785]],520:[[73,783]],521:[[105,783]],522:[[73,785]],523:[[105,785]],524:[[79,783]],525:[[111,783]],526:[[79,785]],527:[[111,785]],528:[[82,783]],529:[[114,783]],530:[[82,785]],531:[[114,785]],532:[[85,783]],533:[[117,783]],534:[[85,785]],535:[[117,785]],536:[[83,806]],537:[[115,806]],538:[[84,806]],539:[[116,806]],542:[[72,780]],543:[[104,780]],550:[[65,775],,{772:480}],551:[[97,775],,{772:481}],552:[[69,807],,{774:7708}],553:[[101,807],,{774:7709}],554:[[214,772]],555:[[246,772]],556:[[213,772]],557:[[245,772]],558:[[79,775],,{772:560}],559:[[111,775],,{772:561}],560:[[558,772]],561:[[559,772]],562:[[89,772]],563:[[121,772]],658:[,,{780:495}],688:[[104],256],689:[[614],256],690:[[106],256],691:[[114],256],692:[[633],256],693:[[635],256],694:[[641],256],695:[[119],256],696:[[121],256],728:[[32,774],256],729:[[32,775],256],730:[[32,778],256],731:[[32,808],256],732:[[32,771],256],733:[[32,779],256],736:[[611],256],737:[[108],256],738:[[115],256],739:[[120],256],740:[[661],256],66272:[,220]}, +768:{768:[,230],769:[,230],770:[,230],771:[,230],772:[,230],773:[,230],774:[,230],775:[,230],776:[,230,{769:836}],777:[,230],778:[,230],779:[,230],780:[,230],781:[,230],782:[,230],783:[,230],784:[,230],785:[,230],786:[,230],787:[,230],788:[,230],789:[,232],790:[,220],791:[,220],792:[,220],793:[,220],794:[,232],795:[,216],796:[,220],797:[,220],798:[,220],799:[,220],800:[,220],801:[,202],802:[,202],803:[,220],804:[,220],805:[,220],806:[,220],807:[,202],808:[,202],809:[,220],810:[,220],811:[,220],812:[,220],813:[,220],814:[,220],815:[,220],816:[,220],817:[,220],818:[,220],819:[,220],820:[,1],821:[,1],822:[,1],823:[,1],824:[,1],825:[,220],826:[,220],827:[,220],828:[,220],829:[,230],830:[,230],831:[,230],832:[[768],230],833:[[769],230],834:[,230],835:[[787],230],836:[[776,769],230],837:[,240],838:[,230],839:[,220],840:[,220],841:[,220],842:[,230],843:[,230],844:[,230],845:[,220],846:[,220],848:[,230],849:[,230],850:[,230],851:[,220],852:[,220],853:[,220],854:[,220],855:[,230],856:[,232],857:[,220],858:[,220],859:[,230],860:[,233],861:[,234],862:[,234],863:[,233],864:[,234],865:[,234],866:[,233],867:[,230],868:[,230],869:[,230],870:[,230],871:[,230],872:[,230],873:[,230],874:[,230],875:[,230],876:[,230],877:[,230],878:[,230],879:[,230],884:[[697]],890:[[32,837],256],894:[[59]],900:[[32,769],256],901:[[168,769]],902:[[913,769]],903:[[183]],904:[[917,769]],905:[[919,769]],906:[[921,769]],908:[[927,769]],910:[[933,769]],911:[[937,769]],912:[[970,769]],913:[,,{768:8122,769:902,772:8121,774:8120,787:7944,788:7945,837:8124}],917:[,,{768:8136,769:904,787:7960,788:7961}],919:[,,{768:8138,769:905,787:7976,788:7977,837:8140}],921:[,,{768:8154,769:906,772:8153,774:8152,776:938,787:7992,788:7993}],927:[,,{768:8184,769:908,787:8008,788:8009}],929:[,,{788:8172}],933:[,,{768:8170,769:910,772:8169,774:8168,776:939,788:8025}],937:[,,{768:8186,769:911,787:8040,788:8041,837:8188}],938:[[921,776]],939:[[933,776]],940:[[945,769],,{837:8116}],941:[[949,769]],942:[[951,769],,{837:8132}],943:[[953,769]],944:[[971,769]],945:[,,{768:8048,769:940,772:8113,774:8112,787:7936,788:7937,834:8118,837:8115}],949:[,,{768:8050,769:941,787:7952,788:7953}],951:[,,{768:8052,769:942,787:7968,788:7969,834:8134,837:8131}],953:[,,{768:8054,769:943,772:8145,774:8144,776:970,787:7984,788:7985,834:8150}],959:[,,{768:8056,769:972,787:8000,788:8001}],961:[,,{787:8164,788:8165}],965:[,,{768:8058,769:973,772:8161,774:8160,776:971,787:8016,788:8017,834:8166}],969:[,,{768:8060,769:974,787:8032,788:8033,834:8182,837:8179}],970:[[953,776],,{768:8146,769:912,834:8151}],971:[[965,776],,{768:8162,769:944,834:8167}],972:[[959,769]],973:[[965,769]],974:[[969,769],,{837:8180}],976:[[946],256],977:[[952],256],978:[[933],256,{769:979,776:980}],979:[[978,769]],980:[[978,776]],981:[[966],256],982:[[960],256],1008:[[954],256],1009:[[961],256],1010:[[962],256],1012:[[920],256],1013:[[949],256],1017:[[931],256],66422:[,230],66423:[,230],66424:[,230],66425:[,230],66426:[,230]}, +1024:{1024:[[1045,768]],1025:[[1045,776]],1027:[[1043,769]],1030:[,,{776:1031}],1031:[[1030,776]],1036:[[1050,769]],1037:[[1048,768]],1038:[[1059,774]],1040:[,,{774:1232,776:1234}],1043:[,,{769:1027}],1045:[,,{768:1024,774:1238,776:1025}],1046:[,,{774:1217,776:1244}],1047:[,,{776:1246}],1048:[,,{768:1037,772:1250,774:1049,776:1252}],1049:[[1048,774]],1050:[,,{769:1036}],1054:[,,{776:1254}],1059:[,,{772:1262,774:1038,776:1264,779:1266}],1063:[,,{776:1268}],1067:[,,{776:1272}],1069:[,,{776:1260}],1072:[,,{774:1233,776:1235}],1075:[,,{769:1107}],1077:[,,{768:1104,774:1239,776:1105}],1078:[,,{774:1218,776:1245}],1079:[,,{776:1247}],1080:[,,{768:1117,772:1251,774:1081,776:1253}],1081:[[1080,774]],1082:[,,{769:1116}],1086:[,,{776:1255}],1091:[,,{772:1263,774:1118,776:1265,779:1267}],1095:[,,{776:1269}],1099:[,,{776:1273}],1101:[,,{776:1261}],1104:[[1077,768]],1105:[[1077,776]],1107:[[1075,769]],1110:[,,{776:1111}],1111:[[1110,776]],1116:[[1082,769]],1117:[[1080,768]],1118:[[1091,774]],1140:[,,{783:1142}],1141:[,,{783:1143}],1142:[[1140,783]],1143:[[1141,783]],1155:[,230],1156:[,230],1157:[,230],1158:[,230],1159:[,230],1217:[[1046,774]],1218:[[1078,774]],1232:[[1040,774]],1233:[[1072,774]],1234:[[1040,776]],1235:[[1072,776]],1238:[[1045,774]],1239:[[1077,774]],1240:[,,{776:1242}],1241:[,,{776:1243}],1242:[[1240,776]],1243:[[1241,776]],1244:[[1046,776]],1245:[[1078,776]],1246:[[1047,776]],1247:[[1079,776]],1250:[[1048,772]],1251:[[1080,772]],1252:[[1048,776]],1253:[[1080,776]],1254:[[1054,776]],1255:[[1086,776]],1256:[,,{776:1258}],1257:[,,{776:1259}],1258:[[1256,776]],1259:[[1257,776]],1260:[[1069,776]],1261:[[1101,776]],1262:[[1059,772]],1263:[[1091,772]],1264:[[1059,776]],1265:[[1091,776]],1266:[[1059,779]],1267:[[1091,779]],1268:[[1063,776]],1269:[[1095,776]],1272:[[1067,776]],1273:[[1099,776]]}, +1280:{1415:[[1381,1410],256],1425:[,220],1426:[,230],1427:[,230],1428:[,230],1429:[,230],1430:[,220],1431:[,230],1432:[,230],1433:[,230],1434:[,222],1435:[,220],1436:[,230],1437:[,230],1438:[,230],1439:[,230],1440:[,230],1441:[,230],1442:[,220],1443:[,220],1444:[,220],1445:[,220],1446:[,220],1447:[,220],1448:[,230],1449:[,230],1450:[,220],1451:[,230],1452:[,230],1453:[,222],1454:[,228],1455:[,230],1456:[,10],1457:[,11],1458:[,12],1459:[,13],1460:[,14],1461:[,15],1462:[,16],1463:[,17],1464:[,18],1465:[,19],1466:[,19],1467:[,20],1468:[,21],1469:[,22],1471:[,23],1473:[,24],1474:[,25],1476:[,230],1477:[,220],1479:[,18]}, +1536:{1552:[,230],1553:[,230],1554:[,230],1555:[,230],1556:[,230],1557:[,230],1558:[,230],1559:[,230],1560:[,30],1561:[,31],1562:[,32],1570:[[1575,1619]],1571:[[1575,1620]],1572:[[1608,1620]],1573:[[1575,1621]],1574:[[1610,1620]],1575:[,,{1619:1570,1620:1571,1621:1573}],1608:[,,{1620:1572}],1610:[,,{1620:1574}],1611:[,27],1612:[,28],1613:[,29],1614:[,30],1615:[,31],1616:[,32],1617:[,33],1618:[,34],1619:[,230],1620:[,230],1621:[,220],1622:[,220],1623:[,230],1624:[,230],1625:[,230],1626:[,230],1627:[,230],1628:[,220],1629:[,230],1630:[,230],1631:[,220],1648:[,35],1653:[[1575,1652],256],1654:[[1608,1652],256],1655:[[1735,1652],256],1656:[[1610,1652],256],1728:[[1749,1620]],1729:[,,{1620:1730}],1730:[[1729,1620]],1746:[,,{1620:1747}],1747:[[1746,1620]],1749:[,,{1620:1728}],1750:[,230],1751:[,230],1752:[,230],1753:[,230],1754:[,230],1755:[,230],1756:[,230],1759:[,230],1760:[,230],1761:[,230],1762:[,230],1763:[,220],1764:[,230],1767:[,230],1768:[,230],1770:[,220],1771:[,230],1772:[,230],1773:[,220]}, +1792:{1809:[,36],1840:[,230],1841:[,220],1842:[,230],1843:[,230],1844:[,220],1845:[,230],1846:[,230],1847:[,220],1848:[,220],1849:[,220],1850:[,230],1851:[,220],1852:[,220],1853:[,230],1854:[,220],1855:[,230],1856:[,230],1857:[,230],1858:[,220],1859:[,230],1860:[,220],1861:[,230],1862:[,220],1863:[,230],1864:[,220],1865:[,230],1866:[,230],2027:[,230],2028:[,230],2029:[,230],2030:[,230],2031:[,230],2032:[,230],2033:[,230],2034:[,220],2035:[,230]}, +2048:{2070:[,230],2071:[,230],2072:[,230],2073:[,230],2075:[,230],2076:[,230],2077:[,230],2078:[,230],2079:[,230],2080:[,230],2081:[,230],2082:[,230],2083:[,230],2085:[,230],2086:[,230],2087:[,230],2089:[,230],2090:[,230],2091:[,230],2092:[,230],2093:[,230],2137:[,220],2138:[,220],2139:[,220],2276:[,230],2277:[,230],2278:[,220],2279:[,230],2280:[,230],2281:[,220],2282:[,230],2283:[,230],2284:[,230],2285:[,220],2286:[,220],2287:[,220],2288:[,27],2289:[,28],2290:[,29],2291:[,230],2292:[,230],2293:[,230],2294:[,220],2295:[,230],2296:[,230],2297:[,220],2298:[,220],2299:[,230],2300:[,230],2301:[,230],2302:[,230],2303:[,230]}, +2304:{2344:[,,{2364:2345}],2345:[[2344,2364]],2352:[,,{2364:2353}],2353:[[2352,2364]],2355:[,,{2364:2356}],2356:[[2355,2364]],2364:[,7],2381:[,9],2385:[,230],2386:[,220],2387:[,230],2388:[,230],2392:[[2325,2364],512],2393:[[2326,2364],512],2394:[[2327,2364],512],2395:[[2332,2364],512],2396:[[2337,2364],512],2397:[[2338,2364],512],2398:[[2347,2364],512],2399:[[2351,2364],512],2492:[,7],2503:[,,{2494:2507,2519:2508}],2507:[[2503,2494]],2508:[[2503,2519]],2509:[,9],2524:[[2465,2492],512],2525:[[2466,2492],512],2527:[[2479,2492],512]}, +2560:{2611:[[2610,2620],512],2614:[[2616,2620],512],2620:[,7],2637:[,9],2649:[[2582,2620],512],2650:[[2583,2620],512],2651:[[2588,2620],512],2654:[[2603,2620],512],2748:[,7],2765:[,9],68109:[,220],68111:[,230],68152:[,230],68153:[,1],68154:[,220],68159:[,9],68325:[,230],68326:[,220]}, +2816:{2876:[,7],2887:[,,{2878:2891,2902:2888,2903:2892}],2888:[[2887,2902]],2891:[[2887,2878]],2892:[[2887,2903]],2893:[,9],2908:[[2849,2876],512],2909:[[2850,2876],512],2962:[,,{3031:2964}],2964:[[2962,3031]],3014:[,,{3006:3018,3031:3020}],3015:[,,{3006:3019}],3018:[[3014,3006]],3019:[[3015,3006]],3020:[[3014,3031]],3021:[,9]}, +3072:{3142:[,,{3158:3144}],3144:[[3142,3158]],3149:[,9],3157:[,84],3158:[,91],3260:[,7],3263:[,,{3285:3264}],3264:[[3263,3285]],3270:[,,{3266:3274,3285:3271,3286:3272}],3271:[[3270,3285]],3272:[[3270,3286]],3274:[[3270,3266],,{3285:3275}],3275:[[3274,3285]],3277:[,9]}, +3328:{3398:[,,{3390:3402,3415:3404}],3399:[,,{3390:3403}],3402:[[3398,3390]],3403:[[3399,3390]],3404:[[3398,3415]],3405:[,9],3530:[,9],3545:[,,{3530:3546,3535:3548,3551:3550}],3546:[[3545,3530]],3548:[[3545,3535],,{3530:3549}],3549:[[3548,3530]],3550:[[3545,3551]]}, +3584:{3635:[[3661,3634],256],3640:[,103],3641:[,103],3642:[,9],3656:[,107],3657:[,107],3658:[,107],3659:[,107],3763:[[3789,3762],256],3768:[,118],3769:[,118],3784:[,122],3785:[,122],3786:[,122],3787:[,122],3804:[[3755,3737],256],3805:[[3755,3745],256]}, +3840:{3852:[[3851],256],3864:[,220],3865:[,220],3893:[,220],3895:[,220],3897:[,216],3907:[[3906,4023],512],3917:[[3916,4023],512],3922:[[3921,4023],512],3927:[[3926,4023],512],3932:[[3931,4023],512],3945:[[3904,4021],512],3953:[,129],3954:[,130],3955:[[3953,3954],512],3956:[,132],3957:[[3953,3956],512],3958:[[4018,3968],512],3959:[[4018,3969],256],3960:[[4019,3968],512],3961:[[4019,3969],256],3962:[,130],3963:[,130],3964:[,130],3965:[,130],3968:[,130],3969:[[3953,3968],512],3970:[,230],3971:[,230],3972:[,9],3974:[,230],3975:[,230],3987:[[3986,4023],512],3997:[[3996,4023],512],4002:[[4001,4023],512],4007:[[4006,4023],512],4012:[[4011,4023],512],4025:[[3984,4021],512],4038:[,220]}, +4096:{4133:[,,{4142:4134}],4134:[[4133,4142]],4151:[,7],4153:[,9],4154:[,9],4237:[,220],4348:[[4316],256],69702:[,9],69759:[,9],69785:[,,{69818:69786}],69786:[[69785,69818]],69787:[,,{69818:69788}],69788:[[69787,69818]],69797:[,,{69818:69803}],69803:[[69797,69818]],69817:[,9],69818:[,7]}, +4352:{69888:[,230],69889:[,230],69890:[,230],69934:[[69937,69927]],69935:[[69938,69927]],69937:[,,{69927:69934}],69938:[,,{69927:69935}],69939:[,9],69940:[,9],70003:[,7],70080:[,9]}, +4608:{70197:[,9],70198:[,7],70377:[,7],70378:[,9]}, +4864:{4957:[,230],4958:[,230],4959:[,230],70460:[,7],70471:[,,{70462:70475,70487:70476}],70475:[[70471,70462]],70476:[[70471,70487]],70477:[,9],70502:[,230],70503:[,230],70504:[,230],70505:[,230],70506:[,230],70507:[,230],70508:[,230],70512:[,230],70513:[,230],70514:[,230],70515:[,230],70516:[,230]}, +5120:{70841:[,,{70832:70844,70842:70843,70845:70846}],70843:[[70841,70842]],70844:[[70841,70832]],70846:[[70841,70845]],70850:[,9],70851:[,7]}, +5376:{71096:[,,{71087:71098}],71097:[,,{71087:71099}],71098:[[71096,71087]],71099:[[71097,71087]],71103:[,9],71104:[,7]}, +5632:{71231:[,9],71350:[,9],71351:[,7]}, +5888:{5908:[,9],5940:[,9],6098:[,9],6109:[,230]}, +6144:{6313:[,228]}, +6400:{6457:[,222],6458:[,230],6459:[,220]}, +6656:{6679:[,230],6680:[,220],6752:[,9],6773:[,230],6774:[,230],6775:[,230],6776:[,230],6777:[,230],6778:[,230],6779:[,230],6780:[,230],6783:[,220],6832:[,230],6833:[,230],6834:[,230],6835:[,230],6836:[,230],6837:[,220],6838:[,220],6839:[,220],6840:[,220],6841:[,220],6842:[,220],6843:[,230],6844:[,230],6845:[,220]}, +6912:{6917:[,,{6965:6918}],6918:[[6917,6965]],6919:[,,{6965:6920}],6920:[[6919,6965]],6921:[,,{6965:6922}],6922:[[6921,6965]],6923:[,,{6965:6924}],6924:[[6923,6965]],6925:[,,{6965:6926}],6926:[[6925,6965]],6929:[,,{6965:6930}],6930:[[6929,6965]],6964:[,7],6970:[,,{6965:6971}],6971:[[6970,6965]],6972:[,,{6965:6973}],6973:[[6972,6965]],6974:[,,{6965:6976}],6975:[,,{6965:6977}],6976:[[6974,6965]],6977:[[6975,6965]],6978:[,,{6965:6979}],6979:[[6978,6965]],6980:[,9],7019:[,230],7020:[,220],7021:[,230],7022:[,230],7023:[,230],7024:[,230],7025:[,230],7026:[,230],7027:[,230],7082:[,9],7083:[,9],7142:[,7],7154:[,9],7155:[,9]}, +7168:{7223:[,7],7376:[,230],7377:[,230],7378:[,230],7380:[,1],7381:[,220],7382:[,220],7383:[,220],7384:[,220],7385:[,220],7386:[,230],7387:[,230],7388:[,220],7389:[,220],7390:[,220],7391:[,220],7392:[,230],7394:[,1],7395:[,1],7396:[,1],7397:[,1],7398:[,1],7399:[,1],7400:[,1],7405:[,220],7412:[,230],7416:[,230],7417:[,230]}, +7424:{7468:[[65],256],7469:[[198],256],7470:[[66],256],7472:[[68],256],7473:[[69],256],7474:[[398],256],7475:[[71],256],7476:[[72],256],7477:[[73],256],7478:[[74],256],7479:[[75],256],7480:[[76],256],7481:[[77],256],7482:[[78],256],7484:[[79],256],7485:[[546],256],7486:[[80],256],7487:[[82],256],7488:[[84],256],7489:[[85],256],7490:[[87],256],7491:[[97],256],7492:[[592],256],7493:[[593],256],7494:[[7426],256],7495:[[98],256],7496:[[100],256],7497:[[101],256],7498:[[601],256],7499:[[603],256],7500:[[604],256],7501:[[103],256],7503:[[107],256],7504:[[109],256],7505:[[331],256],7506:[[111],256],7507:[[596],256],7508:[[7446],256],7509:[[7447],256],7510:[[112],256],7511:[[116],256],7512:[[117],256],7513:[[7453],256],7514:[[623],256],7515:[[118],256],7516:[[7461],256],7517:[[946],256],7518:[[947],256],7519:[[948],256],7520:[[966],256],7521:[[967],256],7522:[[105],256],7523:[[114],256],7524:[[117],256],7525:[[118],256],7526:[[946],256],7527:[[947],256],7528:[[961],256],7529:[[966],256],7530:[[967],256],7544:[[1085],256],7579:[[594],256],7580:[[99],256],7581:[[597],256],7582:[[240],256],7583:[[604],256],7584:[[102],256],7585:[[607],256],7586:[[609],256],7587:[[613],256],7588:[[616],256],7589:[[617],256],7590:[[618],256],7591:[[7547],256],7592:[[669],256],7593:[[621],256],7594:[[7557],256],7595:[[671],256],7596:[[625],256],7597:[[624],256],7598:[[626],256],7599:[[627],256],7600:[[628],256],7601:[[629],256],7602:[[632],256],7603:[[642],256],7604:[[643],256],7605:[[427],256],7606:[[649],256],7607:[[650],256],7608:[[7452],256],7609:[[651],256],7610:[[652],256],7611:[[122],256],7612:[[656],256],7613:[[657],256],7614:[[658],256],7615:[[952],256],7616:[,230],7617:[,230],7618:[,220],7619:[,230],7620:[,230],7621:[,230],7622:[,230],7623:[,230],7624:[,230],7625:[,230],7626:[,220],7627:[,230],7628:[,230],7629:[,234],7630:[,214],7631:[,220],7632:[,202],7633:[,230],7634:[,230],7635:[,230],7636:[,230],7637:[,230],7638:[,230],7639:[,230],7640:[,230],7641:[,230],7642:[,230],7643:[,230],7644:[,230],7645:[,230],7646:[,230],7647:[,230],7648:[,230],7649:[,230],7650:[,230],7651:[,230],7652:[,230],7653:[,230],7654:[,230],7655:[,230],7656:[,230],7657:[,230],7658:[,230],7659:[,230],7660:[,230],7661:[,230],7662:[,230],7663:[,230],7664:[,230],7665:[,230],7666:[,230],7667:[,230],7668:[,230],7669:[,230],7676:[,233],7677:[,220],7678:[,230],7679:[,220]}, +7680:{7680:[[65,805]],7681:[[97,805]],7682:[[66,775]],7683:[[98,775]],7684:[[66,803]],7685:[[98,803]],7686:[[66,817]],7687:[[98,817]],7688:[[199,769]],7689:[[231,769]],7690:[[68,775]],7691:[[100,775]],7692:[[68,803]],7693:[[100,803]],7694:[[68,817]],7695:[[100,817]],7696:[[68,807]],7697:[[100,807]],7698:[[68,813]],7699:[[100,813]],7700:[[274,768]],7701:[[275,768]],7702:[[274,769]],7703:[[275,769]],7704:[[69,813]],7705:[[101,813]],7706:[[69,816]],7707:[[101,816]],7708:[[552,774]],7709:[[553,774]],7710:[[70,775]],7711:[[102,775]],7712:[[71,772]],7713:[[103,772]],7714:[[72,775]],7715:[[104,775]],7716:[[72,803]],7717:[[104,803]],7718:[[72,776]],7719:[[104,776]],7720:[[72,807]],7721:[[104,807]],7722:[[72,814]],7723:[[104,814]],7724:[[73,816]],7725:[[105,816]],7726:[[207,769]],7727:[[239,769]],7728:[[75,769]],7729:[[107,769]],7730:[[75,803]],7731:[[107,803]],7732:[[75,817]],7733:[[107,817]],7734:[[76,803],,{772:7736}],7735:[[108,803],,{772:7737}],7736:[[7734,772]],7737:[[7735,772]],7738:[[76,817]],7739:[[108,817]],7740:[[76,813]],7741:[[108,813]],7742:[[77,769]],7743:[[109,769]],7744:[[77,775]],7745:[[109,775]],7746:[[77,803]],7747:[[109,803]],7748:[[78,775]],7749:[[110,775]],7750:[[78,803]],7751:[[110,803]],7752:[[78,817]],7753:[[110,817]],7754:[[78,813]],7755:[[110,813]],7756:[[213,769]],7757:[[245,769]],7758:[[213,776]],7759:[[245,776]],7760:[[332,768]],7761:[[333,768]],7762:[[332,769]],7763:[[333,769]],7764:[[80,769]],7765:[[112,769]],7766:[[80,775]],7767:[[112,775]],7768:[[82,775]],7769:[[114,775]],7770:[[82,803],,{772:7772}],7771:[[114,803],,{772:7773}],7772:[[7770,772]],7773:[[7771,772]],7774:[[82,817]],7775:[[114,817]],7776:[[83,775]],7777:[[115,775]],7778:[[83,803],,{775:7784}],7779:[[115,803],,{775:7785}],7780:[[346,775]],7781:[[347,775]],7782:[[352,775]],7783:[[353,775]],7784:[[7778,775]],7785:[[7779,775]],7786:[[84,775]],7787:[[116,775]],7788:[[84,803]],7789:[[116,803]],7790:[[84,817]],7791:[[116,817]],7792:[[84,813]],7793:[[116,813]],7794:[[85,804]],7795:[[117,804]],7796:[[85,816]],7797:[[117,816]],7798:[[85,813]],7799:[[117,813]],7800:[[360,769]],7801:[[361,769]],7802:[[362,776]],7803:[[363,776]],7804:[[86,771]],7805:[[118,771]],7806:[[86,803]],7807:[[118,803]],7808:[[87,768]],7809:[[119,768]],7810:[[87,769]],7811:[[119,769]],7812:[[87,776]],7813:[[119,776]],7814:[[87,775]],7815:[[119,775]],7816:[[87,803]],7817:[[119,803]],7818:[[88,775]],7819:[[120,775]],7820:[[88,776]],7821:[[120,776]],7822:[[89,775]],7823:[[121,775]],7824:[[90,770]],7825:[[122,770]],7826:[[90,803]],7827:[[122,803]],7828:[[90,817]],7829:[[122,817]],7830:[[104,817]],7831:[[116,776]],7832:[[119,778]],7833:[[121,778]],7834:[[97,702],256],7835:[[383,775]],7840:[[65,803],,{770:7852,774:7862}],7841:[[97,803],,{770:7853,774:7863}],7842:[[65,777]],7843:[[97,777]],7844:[[194,769]],7845:[[226,769]],7846:[[194,768]],7847:[[226,768]],7848:[[194,777]],7849:[[226,777]],7850:[[194,771]],7851:[[226,771]],7852:[[7840,770]],7853:[[7841,770]],7854:[[258,769]],7855:[[259,769]],7856:[[258,768]],7857:[[259,768]],7858:[[258,777]],7859:[[259,777]],7860:[[258,771]],7861:[[259,771]],7862:[[7840,774]],7863:[[7841,774]],7864:[[69,803],,{770:7878}],7865:[[101,803],,{770:7879}],7866:[[69,777]],7867:[[101,777]],7868:[[69,771]],7869:[[101,771]],7870:[[202,769]],7871:[[234,769]],7872:[[202,768]],7873:[[234,768]],7874:[[202,777]],7875:[[234,777]],7876:[[202,771]],7877:[[234,771]],7878:[[7864,770]],7879:[[7865,770]],7880:[[73,777]],7881:[[105,777]],7882:[[73,803]],7883:[[105,803]],7884:[[79,803],,{770:7896}],7885:[[111,803],,{770:7897}],7886:[[79,777]],7887:[[111,777]],7888:[[212,769]],7889:[[244,769]],7890:[[212,768]],7891:[[244,768]],7892:[[212,777]],7893:[[244,777]],7894:[[212,771]],7895:[[244,771]],7896:[[7884,770]],7897:[[7885,770]],7898:[[416,769]],7899:[[417,769]],7900:[[416,768]],7901:[[417,768]],7902:[[416,777]],7903:[[417,777]],7904:[[416,771]],7905:[[417,771]],7906:[[416,803]],7907:[[417,803]],7908:[[85,803]],7909:[[117,803]],7910:[[85,777]],7911:[[117,777]],7912:[[431,769]],7913:[[432,769]],7914:[[431,768]],7915:[[432,768]],7916:[[431,777]],7917:[[432,777]],7918:[[431,771]],7919:[[432,771]],7920:[[431,803]],7921:[[432,803]],7922:[[89,768]],7923:[[121,768]],7924:[[89,803]],7925:[[121,803]],7926:[[89,777]],7927:[[121,777]],7928:[[89,771]],7929:[[121,771]]}, +7936:{7936:[[945,787],,{768:7938,769:7940,834:7942,837:8064}],7937:[[945,788],,{768:7939,769:7941,834:7943,837:8065}],7938:[[7936,768],,{837:8066}],7939:[[7937,768],,{837:8067}],7940:[[7936,769],,{837:8068}],7941:[[7937,769],,{837:8069}],7942:[[7936,834],,{837:8070}],7943:[[7937,834],,{837:8071}],7944:[[913,787],,{768:7946,769:7948,834:7950,837:8072}],7945:[[913,788],,{768:7947,769:7949,834:7951,837:8073}],7946:[[7944,768],,{837:8074}],7947:[[7945,768],,{837:8075}],7948:[[7944,769],,{837:8076}],7949:[[7945,769],,{837:8077}],7950:[[7944,834],,{837:8078}],7951:[[7945,834],,{837:8079}],7952:[[949,787],,{768:7954,769:7956}],7953:[[949,788],,{768:7955,769:7957}],7954:[[7952,768]],7955:[[7953,768]],7956:[[7952,769]],7957:[[7953,769]],7960:[[917,787],,{768:7962,769:7964}],7961:[[917,788],,{768:7963,769:7965}],7962:[[7960,768]],7963:[[7961,768]],7964:[[7960,769]],7965:[[7961,769]],7968:[[951,787],,{768:7970,769:7972,834:7974,837:8080}],7969:[[951,788],,{768:7971,769:7973,834:7975,837:8081}],7970:[[7968,768],,{837:8082}],7971:[[7969,768],,{837:8083}],7972:[[7968,769],,{837:8084}],7973:[[7969,769],,{837:8085}],7974:[[7968,834],,{837:8086}],7975:[[7969,834],,{837:8087}],7976:[[919,787],,{768:7978,769:7980,834:7982,837:8088}],7977:[[919,788],,{768:7979,769:7981,834:7983,837:8089}],7978:[[7976,768],,{837:8090}],7979:[[7977,768],,{837:8091}],7980:[[7976,769],,{837:8092}],7981:[[7977,769],,{837:8093}],7982:[[7976,834],,{837:8094}],7983:[[7977,834],,{837:8095}],7984:[[953,787],,{768:7986,769:7988,834:7990}],7985:[[953,788],,{768:7987,769:7989,834:7991}],7986:[[7984,768]],7987:[[7985,768]],7988:[[7984,769]],7989:[[7985,769]],7990:[[7984,834]],7991:[[7985,834]],7992:[[921,787],,{768:7994,769:7996,834:7998}],7993:[[921,788],,{768:7995,769:7997,834:7999}],7994:[[7992,768]],7995:[[7993,768]],7996:[[7992,769]],7997:[[7993,769]],7998:[[7992,834]],7999:[[7993,834]],8000:[[959,787],,{768:8002,769:8004}],8001:[[959,788],,{768:8003,769:8005}],8002:[[8000,768]],8003:[[8001,768]],8004:[[8000,769]],8005:[[8001,769]],8008:[[927,787],,{768:8010,769:8012}],8009:[[927,788],,{768:8011,769:8013}],8010:[[8008,768]],8011:[[8009,768]],8012:[[8008,769]],8013:[[8009,769]],8016:[[965,787],,{768:8018,769:8020,834:8022}],8017:[[965,788],,{768:8019,769:8021,834:8023}],8018:[[8016,768]],8019:[[8017,768]],8020:[[8016,769]],8021:[[8017,769]],8022:[[8016,834]],8023:[[8017,834]],8025:[[933,788],,{768:8027,769:8029,834:8031}],8027:[[8025,768]],8029:[[8025,769]],8031:[[8025,834]],8032:[[969,787],,{768:8034,769:8036,834:8038,837:8096}],8033:[[969,788],,{768:8035,769:8037,834:8039,837:8097}],8034:[[8032,768],,{837:8098}],8035:[[8033,768],,{837:8099}],8036:[[8032,769],,{837:8100}],8037:[[8033,769],,{837:8101}],8038:[[8032,834],,{837:8102}],8039:[[8033,834],,{837:8103}],8040:[[937,787],,{768:8042,769:8044,834:8046,837:8104}],8041:[[937,788],,{768:8043,769:8045,834:8047,837:8105}],8042:[[8040,768],,{837:8106}],8043:[[8041,768],,{837:8107}],8044:[[8040,769],,{837:8108}],8045:[[8041,769],,{837:8109}],8046:[[8040,834],,{837:8110}],8047:[[8041,834],,{837:8111}],8048:[[945,768],,{837:8114}],8049:[[940]],8050:[[949,768]],8051:[[941]],8052:[[951,768],,{837:8130}],8053:[[942]],8054:[[953,768]],8055:[[943]],8056:[[959,768]],8057:[[972]],8058:[[965,768]],8059:[[973]],8060:[[969,768],,{837:8178}],8061:[[974]],8064:[[7936,837]],8065:[[7937,837]],8066:[[7938,837]],8067:[[7939,837]],8068:[[7940,837]],8069:[[7941,837]],8070:[[7942,837]],8071:[[7943,837]],8072:[[7944,837]],8073:[[7945,837]],8074:[[7946,837]],8075:[[7947,837]],8076:[[7948,837]],8077:[[7949,837]],8078:[[7950,837]],8079:[[7951,837]],8080:[[7968,837]],8081:[[7969,837]],8082:[[7970,837]],8083:[[7971,837]],8084:[[7972,837]],8085:[[7973,837]],8086:[[7974,837]],8087:[[7975,837]],8088:[[7976,837]],8089:[[7977,837]],8090:[[7978,837]],8091:[[7979,837]],8092:[[7980,837]],8093:[[7981,837]],8094:[[7982,837]],8095:[[7983,837]],8096:[[8032,837]],8097:[[8033,837]],8098:[[8034,837]],8099:[[8035,837]],8100:[[8036,837]],8101:[[8037,837]],8102:[[8038,837]],8103:[[8039,837]],8104:[[8040,837]],8105:[[8041,837]],8106:[[8042,837]],8107:[[8043,837]],8108:[[8044,837]],8109:[[8045,837]],8110:[[8046,837]],8111:[[8047,837]],8112:[[945,774]],8113:[[945,772]],8114:[[8048,837]],8115:[[945,837]],8116:[[940,837]],8118:[[945,834],,{837:8119}],8119:[[8118,837]],8120:[[913,774]],8121:[[913,772]],8122:[[913,768]],8123:[[902]],8124:[[913,837]],8125:[[32,787],256],8126:[[953]],8127:[[32,787],256,{768:8141,769:8142,834:8143}],8128:[[32,834],256],8129:[[168,834]],8130:[[8052,837]],8131:[[951,837]],8132:[[942,837]],8134:[[951,834],,{837:8135}],8135:[[8134,837]],8136:[[917,768]],8137:[[904]],8138:[[919,768]],8139:[[905]],8140:[[919,837]],8141:[[8127,768]],8142:[[8127,769]],8143:[[8127,834]],8144:[[953,774]],8145:[[953,772]],8146:[[970,768]],8147:[[912]],8150:[[953,834]],8151:[[970,834]],8152:[[921,774]],8153:[[921,772]],8154:[[921,768]],8155:[[906]],8157:[[8190,768]],8158:[[8190,769]],8159:[[8190,834]],8160:[[965,774]],8161:[[965,772]],8162:[[971,768]],8163:[[944]],8164:[[961,787]],8165:[[961,788]],8166:[[965,834]],8167:[[971,834]],8168:[[933,774]],8169:[[933,772]],8170:[[933,768]],8171:[[910]],8172:[[929,788]],8173:[[168,768]],8174:[[901]],8175:[[96]],8178:[[8060,837]],8179:[[969,837]],8180:[[974,837]],8182:[[969,834],,{837:8183}],8183:[[8182,837]],8184:[[927,768]],8185:[[908]],8186:[[937,768]],8187:[[911]],8188:[[937,837]],8189:[[180]],8190:[[32,788],256,{768:8157,769:8158,834:8159}]}, +8192:{8192:[[8194]],8193:[[8195]],8194:[[32],256],8195:[[32],256],8196:[[32],256],8197:[[32],256],8198:[[32],256],8199:[[32],256],8200:[[32],256],8201:[[32],256],8202:[[32],256],8209:[[8208],256],8215:[[32,819],256],8228:[[46],256],8229:[[46,46],256],8230:[[46,46,46],256],8239:[[32],256],8243:[[8242,8242],256],8244:[[8242,8242,8242],256],8246:[[8245,8245],256],8247:[[8245,8245,8245],256],8252:[[33,33],256],8254:[[32,773],256],8263:[[63,63],256],8264:[[63,33],256],8265:[[33,63],256],8279:[[8242,8242,8242,8242],256],8287:[[32],256],8304:[[48],256],8305:[[105],256],8308:[[52],256],8309:[[53],256],8310:[[54],256],8311:[[55],256],8312:[[56],256],8313:[[57],256],8314:[[43],256],8315:[[8722],256],8316:[[61],256],8317:[[40],256],8318:[[41],256],8319:[[110],256],8320:[[48],256],8321:[[49],256],8322:[[50],256],8323:[[51],256],8324:[[52],256],8325:[[53],256],8326:[[54],256],8327:[[55],256],8328:[[56],256],8329:[[57],256],8330:[[43],256],8331:[[8722],256],8332:[[61],256],8333:[[40],256],8334:[[41],256],8336:[[97],256],8337:[[101],256],8338:[[111],256],8339:[[120],256],8340:[[601],256],8341:[[104],256],8342:[[107],256],8343:[[108],256],8344:[[109],256],8345:[[110],256],8346:[[112],256],8347:[[115],256],8348:[[116],256],8360:[[82,115],256],8400:[,230],8401:[,230],8402:[,1],8403:[,1],8404:[,230],8405:[,230],8406:[,230],8407:[,230],8408:[,1],8409:[,1],8410:[,1],8411:[,230],8412:[,230],8417:[,230],8421:[,1],8422:[,1],8423:[,230],8424:[,220],8425:[,230],8426:[,1],8427:[,1],8428:[,220],8429:[,220],8430:[,220],8431:[,220],8432:[,230]}, +8448:{8448:[[97,47,99],256],8449:[[97,47,115],256],8450:[[67],256],8451:[[176,67],256],8453:[[99,47,111],256],8454:[[99,47,117],256],8455:[[400],256],8457:[[176,70],256],8458:[[103],256],8459:[[72],256],8460:[[72],256],8461:[[72],256],8462:[[104],256],8463:[[295],256],8464:[[73],256],8465:[[73],256],8466:[[76],256],8467:[[108],256],8469:[[78],256],8470:[[78,111],256],8473:[[80],256],8474:[[81],256],8475:[[82],256],8476:[[82],256],8477:[[82],256],8480:[[83,77],256],8481:[[84,69,76],256],8482:[[84,77],256],8484:[[90],256],8486:[[937]],8488:[[90],256],8490:[[75]],8491:[[197]],8492:[[66],256],8493:[[67],256],8495:[[101],256],8496:[[69],256],8497:[[70],256],8499:[[77],256],8500:[[111],256],8501:[[1488],256],8502:[[1489],256],8503:[[1490],256],8504:[[1491],256],8505:[[105],256],8507:[[70,65,88],256],8508:[[960],256],8509:[[947],256],8510:[[915],256],8511:[[928],256],8512:[[8721],256],8517:[[68],256],8518:[[100],256],8519:[[101],256],8520:[[105],256],8521:[[106],256],8528:[[49,8260,55],256],8529:[[49,8260,57],256],8530:[[49,8260,49,48],256],8531:[[49,8260,51],256],8532:[[50,8260,51],256],8533:[[49,8260,53],256],8534:[[50,8260,53],256],8535:[[51,8260,53],256],8536:[[52,8260,53],256],8537:[[49,8260,54],256],8538:[[53,8260,54],256],8539:[[49,8260,56],256],8540:[[51,8260,56],256],8541:[[53,8260,56],256],8542:[[55,8260,56],256],8543:[[49,8260],256],8544:[[73],256],8545:[[73,73],256],8546:[[73,73,73],256],8547:[[73,86],256],8548:[[86],256],8549:[[86,73],256],8550:[[86,73,73],256],8551:[[86,73,73,73],256],8552:[[73,88],256],8553:[[88],256],8554:[[88,73],256],8555:[[88,73,73],256],8556:[[76],256],8557:[[67],256],8558:[[68],256],8559:[[77],256],8560:[[105],256],8561:[[105,105],256],8562:[[105,105,105],256],8563:[[105,118],256],8564:[[118],256],8565:[[118,105],256],8566:[[118,105,105],256],8567:[[118,105,105,105],256],8568:[[105,120],256],8569:[[120],256],8570:[[120,105],256],8571:[[120,105,105],256],8572:[[108],256],8573:[[99],256],8574:[[100],256],8575:[[109],256],8585:[[48,8260,51],256],8592:[,,{824:8602}],8594:[,,{824:8603}],8596:[,,{824:8622}],8602:[[8592,824]],8603:[[8594,824]],8622:[[8596,824]],8653:[[8656,824]],8654:[[8660,824]],8655:[[8658,824]],8656:[,,{824:8653}],8658:[,,{824:8655}],8660:[,,{824:8654}]}, +8704:{8707:[,,{824:8708}],8708:[[8707,824]],8712:[,,{824:8713}],8713:[[8712,824]],8715:[,,{824:8716}],8716:[[8715,824]],8739:[,,{824:8740}],8740:[[8739,824]],8741:[,,{824:8742}],8742:[[8741,824]],8748:[[8747,8747],256],8749:[[8747,8747,8747],256],8751:[[8750,8750],256],8752:[[8750,8750,8750],256],8764:[,,{824:8769}],8769:[[8764,824]],8771:[,,{824:8772}],8772:[[8771,824]],8773:[,,{824:8775}],8775:[[8773,824]],8776:[,,{824:8777}],8777:[[8776,824]],8781:[,,{824:8813}],8800:[[61,824]],8801:[,,{824:8802}],8802:[[8801,824]],8804:[,,{824:8816}],8805:[,,{824:8817}],8813:[[8781,824]],8814:[[60,824]],8815:[[62,824]],8816:[[8804,824]],8817:[[8805,824]],8818:[,,{824:8820}],8819:[,,{824:8821}],8820:[[8818,824]],8821:[[8819,824]],8822:[,,{824:8824}],8823:[,,{824:8825}],8824:[[8822,824]],8825:[[8823,824]],8826:[,,{824:8832}],8827:[,,{824:8833}],8828:[,,{824:8928}],8829:[,,{824:8929}],8832:[[8826,824]],8833:[[8827,824]],8834:[,,{824:8836}],8835:[,,{824:8837}],8836:[[8834,824]],8837:[[8835,824]],8838:[,,{824:8840}],8839:[,,{824:8841}],8840:[[8838,824]],8841:[[8839,824]],8849:[,,{824:8930}],8850:[,,{824:8931}],8866:[,,{824:8876}],8872:[,,{824:8877}],8873:[,,{824:8878}],8875:[,,{824:8879}],8876:[[8866,824]],8877:[[8872,824]],8878:[[8873,824]],8879:[[8875,824]],8882:[,,{824:8938}],8883:[,,{824:8939}],8884:[,,{824:8940}],8885:[,,{824:8941}],8928:[[8828,824]],8929:[[8829,824]],8930:[[8849,824]],8931:[[8850,824]],8938:[[8882,824]],8939:[[8883,824]],8940:[[8884,824]],8941:[[8885,824]]}, +8960:{9001:[[12296]],9002:[[12297]]}, +9216:{9312:[[49],256],9313:[[50],256],9314:[[51],256],9315:[[52],256],9316:[[53],256],9317:[[54],256],9318:[[55],256],9319:[[56],256],9320:[[57],256],9321:[[49,48],256],9322:[[49,49],256],9323:[[49,50],256],9324:[[49,51],256],9325:[[49,52],256],9326:[[49,53],256],9327:[[49,54],256],9328:[[49,55],256],9329:[[49,56],256],9330:[[49,57],256],9331:[[50,48],256],9332:[[40,49,41],256],9333:[[40,50,41],256],9334:[[40,51,41],256],9335:[[40,52,41],256],9336:[[40,53,41],256],9337:[[40,54,41],256],9338:[[40,55,41],256],9339:[[40,56,41],256],9340:[[40,57,41],256],9341:[[40,49,48,41],256],9342:[[40,49,49,41],256],9343:[[40,49,50,41],256],9344:[[40,49,51,41],256],9345:[[40,49,52,41],256],9346:[[40,49,53,41],256],9347:[[40,49,54,41],256],9348:[[40,49,55,41],256],9349:[[40,49,56,41],256],9350:[[40,49,57,41],256],9351:[[40,50,48,41],256],9352:[[49,46],256],9353:[[50,46],256],9354:[[51,46],256],9355:[[52,46],256],9356:[[53,46],256],9357:[[54,46],256],9358:[[55,46],256],9359:[[56,46],256],9360:[[57,46],256],9361:[[49,48,46],256],9362:[[49,49,46],256],9363:[[49,50,46],256],9364:[[49,51,46],256],9365:[[49,52,46],256],9366:[[49,53,46],256],9367:[[49,54,46],256],9368:[[49,55,46],256],9369:[[49,56,46],256],9370:[[49,57,46],256],9371:[[50,48,46],256],9372:[[40,97,41],256],9373:[[40,98,41],256],9374:[[40,99,41],256],9375:[[40,100,41],256],9376:[[40,101,41],256],9377:[[40,102,41],256],9378:[[40,103,41],256],9379:[[40,104,41],256],9380:[[40,105,41],256],9381:[[40,106,41],256],9382:[[40,107,41],256],9383:[[40,108,41],256],9384:[[40,109,41],256],9385:[[40,110,41],256],9386:[[40,111,41],256],9387:[[40,112,41],256],9388:[[40,113,41],256],9389:[[40,114,41],256],9390:[[40,115,41],256],9391:[[40,116,41],256],9392:[[40,117,41],256],9393:[[40,118,41],256],9394:[[40,119,41],256],9395:[[40,120,41],256],9396:[[40,121,41],256],9397:[[40,122,41],256],9398:[[65],256],9399:[[66],256],9400:[[67],256],9401:[[68],256],9402:[[69],256],9403:[[70],256],9404:[[71],256],9405:[[72],256],9406:[[73],256],9407:[[74],256],9408:[[75],256],9409:[[76],256],9410:[[77],256],9411:[[78],256],9412:[[79],256],9413:[[80],256],9414:[[81],256],9415:[[82],256],9416:[[83],256],9417:[[84],256],9418:[[85],256],9419:[[86],256],9420:[[87],256],9421:[[88],256],9422:[[89],256],9423:[[90],256],9424:[[97],256],9425:[[98],256],9426:[[99],256],9427:[[100],256],9428:[[101],256],9429:[[102],256],9430:[[103],256],9431:[[104],256],9432:[[105],256],9433:[[106],256],9434:[[107],256],9435:[[108],256],9436:[[109],256],9437:[[110],256],9438:[[111],256],9439:[[112],256],9440:[[113],256],9441:[[114],256],9442:[[115],256],9443:[[116],256],9444:[[117],256],9445:[[118],256],9446:[[119],256],9447:[[120],256],9448:[[121],256],9449:[[122],256],9450:[[48],256]}, +10752:{10764:[[8747,8747,8747,8747],256],10868:[[58,58,61],256],10869:[[61,61],256],10870:[[61,61,61],256],10972:[[10973,824],512]}, +11264:{11388:[[106],256],11389:[[86],256],11503:[,230],11504:[,230],11505:[,230]}, +11520:{11631:[[11617],256],11647:[,9],11744:[,230],11745:[,230],11746:[,230],11747:[,230],11748:[,230],11749:[,230],11750:[,230],11751:[,230],11752:[,230],11753:[,230],11754:[,230],11755:[,230],11756:[,230],11757:[,230],11758:[,230],11759:[,230],11760:[,230],11761:[,230],11762:[,230],11763:[,230],11764:[,230],11765:[,230],11766:[,230],11767:[,230],11768:[,230],11769:[,230],11770:[,230],11771:[,230],11772:[,230],11773:[,230],11774:[,230],11775:[,230]}, +11776:{11935:[[27597],256],12019:[[40863],256]}, +12032:{12032:[[19968],256],12033:[[20008],256],12034:[[20022],256],12035:[[20031],256],12036:[[20057],256],12037:[[20101],256],12038:[[20108],256],12039:[[20128],256],12040:[[20154],256],12041:[[20799],256],12042:[[20837],256],12043:[[20843],256],12044:[[20866],256],12045:[[20886],256],12046:[[20907],256],12047:[[20960],256],12048:[[20981],256],12049:[[20992],256],12050:[[21147],256],12051:[[21241],256],12052:[[21269],256],12053:[[21274],256],12054:[[21304],256],12055:[[21313],256],12056:[[21340],256],12057:[[21353],256],12058:[[21378],256],12059:[[21430],256],12060:[[21448],256],12061:[[21475],256],12062:[[22231],256],12063:[[22303],256],12064:[[22763],256],12065:[[22786],256],12066:[[22794],256],12067:[[22805],256],12068:[[22823],256],12069:[[22899],256],12070:[[23376],256],12071:[[23424],256],12072:[[23544],256],12073:[[23567],256],12074:[[23586],256],12075:[[23608],256],12076:[[23662],256],12077:[[23665],256],12078:[[24027],256],12079:[[24037],256],12080:[[24049],256],12081:[[24062],256],12082:[[24178],256],12083:[[24186],256],12084:[[24191],256],12085:[[24308],256],12086:[[24318],256],12087:[[24331],256],12088:[[24339],256],12089:[[24400],256],12090:[[24417],256],12091:[[24435],256],12092:[[24515],256],12093:[[25096],256],12094:[[25142],256],12095:[[25163],256],12096:[[25903],256],12097:[[25908],256],12098:[[25991],256],12099:[[26007],256],12100:[[26020],256],12101:[[26041],256],12102:[[26080],256],12103:[[26085],256],12104:[[26352],256],12105:[[26376],256],12106:[[26408],256],12107:[[27424],256],12108:[[27490],256],12109:[[27513],256],12110:[[27571],256],12111:[[27595],256],12112:[[27604],256],12113:[[27611],256],12114:[[27663],256],12115:[[27668],256],12116:[[27700],256],12117:[[28779],256],12118:[[29226],256],12119:[[29238],256],12120:[[29243],256],12121:[[29247],256],12122:[[29255],256],12123:[[29273],256],12124:[[29275],256],12125:[[29356],256],12126:[[29572],256],12127:[[29577],256],12128:[[29916],256],12129:[[29926],256],12130:[[29976],256],12131:[[29983],256],12132:[[29992],256],12133:[[30000],256],12134:[[30091],256],12135:[[30098],256],12136:[[30326],256],12137:[[30333],256],12138:[[30382],256],12139:[[30399],256],12140:[[30446],256],12141:[[30683],256],12142:[[30690],256],12143:[[30707],256],12144:[[31034],256],12145:[[31160],256],12146:[[31166],256],12147:[[31348],256],12148:[[31435],256],12149:[[31481],256],12150:[[31859],256],12151:[[31992],256],12152:[[32566],256],12153:[[32593],256],12154:[[32650],256],12155:[[32701],256],12156:[[32769],256],12157:[[32780],256],12158:[[32786],256],12159:[[32819],256],12160:[[32895],256],12161:[[32905],256],12162:[[33251],256],12163:[[33258],256],12164:[[33267],256],12165:[[33276],256],12166:[[33292],256],12167:[[33307],256],12168:[[33311],256],12169:[[33390],256],12170:[[33394],256],12171:[[33400],256],12172:[[34381],256],12173:[[34411],256],12174:[[34880],256],12175:[[34892],256],12176:[[34915],256],12177:[[35198],256],12178:[[35211],256],12179:[[35282],256],12180:[[35328],256],12181:[[35895],256],12182:[[35910],256],12183:[[35925],256],12184:[[35960],256],12185:[[35997],256],12186:[[36196],256],12187:[[36208],256],12188:[[36275],256],12189:[[36523],256],12190:[[36554],256],12191:[[36763],256],12192:[[36784],256],12193:[[36789],256],12194:[[37009],256],12195:[[37193],256],12196:[[37318],256],12197:[[37324],256],12198:[[37329],256],12199:[[38263],256],12200:[[38272],256],12201:[[38428],256],12202:[[38582],256],12203:[[38585],256],12204:[[38632],256],12205:[[38737],256],12206:[[38750],256],12207:[[38754],256],12208:[[38761],256],12209:[[38859],256],12210:[[38893],256],12211:[[38899],256],12212:[[38913],256],12213:[[39080],256],12214:[[39131],256],12215:[[39135],256],12216:[[39318],256],12217:[[39321],256],12218:[[39340],256],12219:[[39592],256],12220:[[39640],256],12221:[[39647],256],12222:[[39717],256],12223:[[39727],256],12224:[[39730],256],12225:[[39740],256],12226:[[39770],256],12227:[[40165],256],12228:[[40565],256],12229:[[40575],256],12230:[[40613],256],12231:[[40635],256],12232:[[40643],256],12233:[[40653],256],12234:[[40657],256],12235:[[40697],256],12236:[[40701],256],12237:[[40718],256],12238:[[40723],256],12239:[[40736],256],12240:[[40763],256],12241:[[40778],256],12242:[[40786],256],12243:[[40845],256],12244:[[40860],256],12245:[[40864],256]}, +12288:{12288:[[32],256],12330:[,218],12331:[,228],12332:[,232],12333:[,222],12334:[,224],12335:[,224],12342:[[12306],256],12344:[[21313],256],12345:[[21316],256],12346:[[21317],256],12358:[,,{12441:12436}],12363:[,,{12441:12364}],12364:[[12363,12441]],12365:[,,{12441:12366}],12366:[[12365,12441]],12367:[,,{12441:12368}],12368:[[12367,12441]],12369:[,,{12441:12370}],12370:[[12369,12441]],12371:[,,{12441:12372}],12372:[[12371,12441]],12373:[,,{12441:12374}],12374:[[12373,12441]],12375:[,,{12441:12376}],12376:[[12375,12441]],12377:[,,{12441:12378}],12378:[[12377,12441]],12379:[,,{12441:12380}],12380:[[12379,12441]],12381:[,,{12441:12382}],12382:[[12381,12441]],12383:[,,{12441:12384}],12384:[[12383,12441]],12385:[,,{12441:12386}],12386:[[12385,12441]],12388:[,,{12441:12389}],12389:[[12388,12441]],12390:[,,{12441:12391}],12391:[[12390,12441]],12392:[,,{12441:12393}],12393:[[12392,12441]],12399:[,,{12441:12400,12442:12401}],12400:[[12399,12441]],12401:[[12399,12442]],12402:[,,{12441:12403,12442:12404}],12403:[[12402,12441]],12404:[[12402,12442]],12405:[,,{12441:12406,12442:12407}],12406:[[12405,12441]],12407:[[12405,12442]],12408:[,,{12441:12409,12442:12410}],12409:[[12408,12441]],12410:[[12408,12442]],12411:[,,{12441:12412,12442:12413}],12412:[[12411,12441]],12413:[[12411,12442]],12436:[[12358,12441]],12441:[,8],12442:[,8],12443:[[32,12441],256],12444:[[32,12442],256],12445:[,,{12441:12446}],12446:[[12445,12441]],12447:[[12424,12426],256],12454:[,,{12441:12532}],12459:[,,{12441:12460}],12460:[[12459,12441]],12461:[,,{12441:12462}],12462:[[12461,12441]],12463:[,,{12441:12464}],12464:[[12463,12441]],12465:[,,{12441:12466}],12466:[[12465,12441]],12467:[,,{12441:12468}],12468:[[12467,12441]],12469:[,,{12441:12470}],12470:[[12469,12441]],12471:[,,{12441:12472}],12472:[[12471,12441]],12473:[,,{12441:12474}],12474:[[12473,12441]],12475:[,,{12441:12476}],12476:[[12475,12441]],12477:[,,{12441:12478}],12478:[[12477,12441]],12479:[,,{12441:12480}],12480:[[12479,12441]],12481:[,,{12441:12482}],12482:[[12481,12441]],12484:[,,{12441:12485}],12485:[[12484,12441]],12486:[,,{12441:12487}],12487:[[12486,12441]],12488:[,,{12441:12489}],12489:[[12488,12441]],12495:[,,{12441:12496,12442:12497}],12496:[[12495,12441]],12497:[[12495,12442]],12498:[,,{12441:12499,12442:12500}],12499:[[12498,12441]],12500:[[12498,12442]],12501:[,,{12441:12502,12442:12503}],12502:[[12501,12441]],12503:[[12501,12442]],12504:[,,{12441:12505,12442:12506}],12505:[[12504,12441]],12506:[[12504,12442]],12507:[,,{12441:12508,12442:12509}],12508:[[12507,12441]],12509:[[12507,12442]],12527:[,,{12441:12535}],12528:[,,{12441:12536}],12529:[,,{12441:12537}],12530:[,,{12441:12538}],12532:[[12454,12441]],12535:[[12527,12441]],12536:[[12528,12441]],12537:[[12529,12441]],12538:[[12530,12441]],12541:[,,{12441:12542}],12542:[[12541,12441]],12543:[[12467,12488],256]}, +12544:{12593:[[4352],256],12594:[[4353],256],12595:[[4522],256],12596:[[4354],256],12597:[[4524],256],12598:[[4525],256],12599:[[4355],256],12600:[[4356],256],12601:[[4357],256],12602:[[4528],256],12603:[[4529],256],12604:[[4530],256],12605:[[4531],256],12606:[[4532],256],12607:[[4533],256],12608:[[4378],256],12609:[[4358],256],12610:[[4359],256],12611:[[4360],256],12612:[[4385],256],12613:[[4361],256],12614:[[4362],256],12615:[[4363],256],12616:[[4364],256],12617:[[4365],256],12618:[[4366],256],12619:[[4367],256],12620:[[4368],256],12621:[[4369],256],12622:[[4370],256],12623:[[4449],256],12624:[[4450],256],12625:[[4451],256],12626:[[4452],256],12627:[[4453],256],12628:[[4454],256],12629:[[4455],256],12630:[[4456],256],12631:[[4457],256],12632:[[4458],256],12633:[[4459],256],12634:[[4460],256],12635:[[4461],256],12636:[[4462],256],12637:[[4463],256],12638:[[4464],256],12639:[[4465],256],12640:[[4466],256],12641:[[4467],256],12642:[[4468],256],12643:[[4469],256],12644:[[4448],256],12645:[[4372],256],12646:[[4373],256],12647:[[4551],256],12648:[[4552],256],12649:[[4556],256],12650:[[4558],256],12651:[[4563],256],12652:[[4567],256],12653:[[4569],256],12654:[[4380],256],12655:[[4573],256],12656:[[4575],256],12657:[[4381],256],12658:[[4382],256],12659:[[4384],256],12660:[[4386],256],12661:[[4387],256],12662:[[4391],256],12663:[[4393],256],12664:[[4395],256],12665:[[4396],256],12666:[[4397],256],12667:[[4398],256],12668:[[4399],256],12669:[[4402],256],12670:[[4406],256],12671:[[4416],256],12672:[[4423],256],12673:[[4428],256],12674:[[4593],256],12675:[[4594],256],12676:[[4439],256],12677:[[4440],256],12678:[[4441],256],12679:[[4484],256],12680:[[4485],256],12681:[[4488],256],12682:[[4497],256],12683:[[4498],256],12684:[[4500],256],12685:[[4510],256],12686:[[4513],256],12690:[[19968],256],12691:[[20108],256],12692:[[19977],256],12693:[[22235],256],12694:[[19978],256],12695:[[20013],256],12696:[[19979],256],12697:[[30002],256],12698:[[20057],256],12699:[[19993],256],12700:[[19969],256],12701:[[22825],256],12702:[[22320],256],12703:[[20154],256]}, +12800:{12800:[[40,4352,41],256],12801:[[40,4354,41],256],12802:[[40,4355,41],256],12803:[[40,4357,41],256],12804:[[40,4358,41],256],12805:[[40,4359,41],256],12806:[[40,4361,41],256],12807:[[40,4363,41],256],12808:[[40,4364,41],256],12809:[[40,4366,41],256],12810:[[40,4367,41],256],12811:[[40,4368,41],256],12812:[[40,4369,41],256],12813:[[40,4370,41],256],12814:[[40,4352,4449,41],256],12815:[[40,4354,4449,41],256],12816:[[40,4355,4449,41],256],12817:[[40,4357,4449,41],256],12818:[[40,4358,4449,41],256],12819:[[40,4359,4449,41],256],12820:[[40,4361,4449,41],256],12821:[[40,4363,4449,41],256],12822:[[40,4364,4449,41],256],12823:[[40,4366,4449,41],256],12824:[[40,4367,4449,41],256],12825:[[40,4368,4449,41],256],12826:[[40,4369,4449,41],256],12827:[[40,4370,4449,41],256],12828:[[40,4364,4462,41],256],12829:[[40,4363,4457,4364,4453,4523,41],256],12830:[[40,4363,4457,4370,4462,41],256],12832:[[40,19968,41],256],12833:[[40,20108,41],256],12834:[[40,19977,41],256],12835:[[40,22235,41],256],12836:[[40,20116,41],256],12837:[[40,20845,41],256],12838:[[40,19971,41],256],12839:[[40,20843,41],256],12840:[[40,20061,41],256],12841:[[40,21313,41],256],12842:[[40,26376,41],256],12843:[[40,28779,41],256],12844:[[40,27700,41],256],12845:[[40,26408,41],256],12846:[[40,37329,41],256],12847:[[40,22303,41],256],12848:[[40,26085,41],256],12849:[[40,26666,41],256],12850:[[40,26377,41],256],12851:[[40,31038,41],256],12852:[[40,21517,41],256],12853:[[40,29305,41],256],12854:[[40,36001,41],256],12855:[[40,31069,41],256],12856:[[40,21172,41],256],12857:[[40,20195,41],256],12858:[[40,21628,41],256],12859:[[40,23398,41],256],12860:[[40,30435,41],256],12861:[[40,20225,41],256],12862:[[40,36039,41],256],12863:[[40,21332,41],256],12864:[[40,31085,41],256],12865:[[40,20241,41],256],12866:[[40,33258,41],256],12867:[[40,33267,41],256],12868:[[21839],256],12869:[[24188],256],12870:[[25991],256],12871:[[31631],256],12880:[[80,84,69],256],12881:[[50,49],256],12882:[[50,50],256],12883:[[50,51],256],12884:[[50,52],256],12885:[[50,53],256],12886:[[50,54],256],12887:[[50,55],256],12888:[[50,56],256],12889:[[50,57],256],12890:[[51,48],256],12891:[[51,49],256],12892:[[51,50],256],12893:[[51,51],256],12894:[[51,52],256],12895:[[51,53],256],12896:[[4352],256],12897:[[4354],256],12898:[[4355],256],12899:[[4357],256],12900:[[4358],256],12901:[[4359],256],12902:[[4361],256],12903:[[4363],256],12904:[[4364],256],12905:[[4366],256],12906:[[4367],256],12907:[[4368],256],12908:[[4369],256],12909:[[4370],256],12910:[[4352,4449],256],12911:[[4354,4449],256],12912:[[4355,4449],256],12913:[[4357,4449],256],12914:[[4358,4449],256],12915:[[4359,4449],256],12916:[[4361,4449],256],12917:[[4363,4449],256],12918:[[4364,4449],256],12919:[[4366,4449],256],12920:[[4367,4449],256],12921:[[4368,4449],256],12922:[[4369,4449],256],12923:[[4370,4449],256],12924:[[4366,4449,4535,4352,4457],256],12925:[[4364,4462,4363,4468],256],12926:[[4363,4462],256],12928:[[19968],256],12929:[[20108],256],12930:[[19977],256],12931:[[22235],256],12932:[[20116],256],12933:[[20845],256],12934:[[19971],256],12935:[[20843],256],12936:[[20061],256],12937:[[21313],256],12938:[[26376],256],12939:[[28779],256],12940:[[27700],256],12941:[[26408],256],12942:[[37329],256],12943:[[22303],256],12944:[[26085],256],12945:[[26666],256],12946:[[26377],256],12947:[[31038],256],12948:[[21517],256],12949:[[29305],256],12950:[[36001],256],12951:[[31069],256],12952:[[21172],256],12953:[[31192],256],12954:[[30007],256],12955:[[22899],256],12956:[[36969],256],12957:[[20778],256],12958:[[21360],256],12959:[[27880],256],12960:[[38917],256],12961:[[20241],256],12962:[[20889],256],12963:[[27491],256],12964:[[19978],256],12965:[[20013],256],12966:[[19979],256],12967:[[24038],256],12968:[[21491],256],12969:[[21307],256],12970:[[23447],256],12971:[[23398],256],12972:[[30435],256],12973:[[20225],256],12974:[[36039],256],12975:[[21332],256],12976:[[22812],256],12977:[[51,54],256],12978:[[51,55],256],12979:[[51,56],256],12980:[[51,57],256],12981:[[52,48],256],12982:[[52,49],256],12983:[[52,50],256],12984:[[52,51],256],12985:[[52,52],256],12986:[[52,53],256],12987:[[52,54],256],12988:[[52,55],256],12989:[[52,56],256],12990:[[52,57],256],12991:[[53,48],256],12992:[[49,26376],256],12993:[[50,26376],256],12994:[[51,26376],256],12995:[[52,26376],256],12996:[[53,26376],256],12997:[[54,26376],256],12998:[[55,26376],256],12999:[[56,26376],256],13000:[[57,26376],256],13001:[[49,48,26376],256],13002:[[49,49,26376],256],13003:[[49,50,26376],256],13004:[[72,103],256],13005:[[101,114,103],256],13006:[[101,86],256],13007:[[76,84,68],256],13008:[[12450],256],13009:[[12452],256],13010:[[12454],256],13011:[[12456],256],13012:[[12458],256],13013:[[12459],256],13014:[[12461],256],13015:[[12463],256],13016:[[12465],256],13017:[[12467],256],13018:[[12469],256],13019:[[12471],256],13020:[[12473],256],13021:[[12475],256],13022:[[12477],256],13023:[[12479],256],13024:[[12481],256],13025:[[12484],256],13026:[[12486],256],13027:[[12488],256],13028:[[12490],256],13029:[[12491],256],13030:[[12492],256],13031:[[12493],256],13032:[[12494],256],13033:[[12495],256],13034:[[12498],256],13035:[[12501],256],13036:[[12504],256],13037:[[12507],256],13038:[[12510],256],13039:[[12511],256],13040:[[12512],256],13041:[[12513],256],13042:[[12514],256],13043:[[12516],256],13044:[[12518],256],13045:[[12520],256],13046:[[12521],256],13047:[[12522],256],13048:[[12523],256],13049:[[12524],256],13050:[[12525],256],13051:[[12527],256],13052:[[12528],256],13053:[[12529],256],13054:[[12530],256]}, +13056:{13056:[[12450,12497,12540,12488],256],13057:[[12450,12523,12501,12449],256],13058:[[12450,12531,12506,12450],256],13059:[[12450,12540,12523],256],13060:[[12452,12491,12531,12464],256],13061:[[12452,12531,12481],256],13062:[[12454,12457,12531],256],13063:[[12456,12473,12463,12540,12489],256],13064:[[12456,12540,12459,12540],256],13065:[[12458,12531,12473],256],13066:[[12458,12540,12512],256],13067:[[12459,12452,12522],256],13068:[[12459,12521,12483,12488],256],13069:[[12459,12525,12522,12540],256],13070:[[12460,12525,12531],256],13071:[[12460,12531,12510],256],13072:[[12462,12460],256],13073:[[12462,12491,12540],256],13074:[[12461,12517,12522,12540],256],13075:[[12462,12523,12480,12540],256],13076:[[12461,12525],256],13077:[[12461,12525,12464,12521,12512],256],13078:[[12461,12525,12513,12540,12488,12523],256],13079:[[12461,12525,12527,12483,12488],256],13080:[[12464,12521,12512],256],13081:[[12464,12521,12512,12488,12531],256],13082:[[12463,12523,12476,12452,12525],256],13083:[[12463,12525,12540,12493],256],13084:[[12465,12540,12473],256],13085:[[12467,12523,12490],256],13086:[[12467,12540,12509],256],13087:[[12469,12452,12463,12523],256],13088:[[12469,12531,12481,12540,12512],256],13089:[[12471,12522,12531,12464],256],13090:[[12475,12531,12481],256],13091:[[12475,12531,12488],256],13092:[[12480,12540,12473],256],13093:[[12487,12471],256],13094:[[12489,12523],256],13095:[[12488,12531],256],13096:[[12490,12494],256],13097:[[12494,12483,12488],256],13098:[[12495,12452,12484],256],13099:[[12497,12540,12475,12531,12488],256],13100:[[12497,12540,12484],256],13101:[[12496,12540,12524,12523],256],13102:[[12500,12450,12473,12488,12523],256],13103:[[12500,12463,12523],256],13104:[[12500,12467],256],13105:[[12499,12523],256],13106:[[12501,12449,12521,12483,12489],256],13107:[[12501,12451,12540,12488],256],13108:[[12502,12483,12471,12455,12523],256],13109:[[12501,12521,12531],256],13110:[[12504,12463,12479,12540,12523],256],13111:[[12506,12477],256],13112:[[12506,12491,12498],256],13113:[[12504,12523,12484],256],13114:[[12506,12531,12473],256],13115:[[12506,12540,12472],256],13116:[[12505,12540,12479],256],13117:[[12509,12452,12531,12488],256],13118:[[12508,12523,12488],256],13119:[[12507,12531],256],13120:[[12509,12531,12489],256],13121:[[12507,12540,12523],256],13122:[[12507,12540,12531],256],13123:[[12510,12452,12463,12525],256],13124:[[12510,12452,12523],256],13125:[[12510,12483,12495],256],13126:[[12510,12523,12463],256],13127:[[12510,12531,12471,12519,12531],256],13128:[[12511,12463,12525,12531],256],13129:[[12511,12522],256],13130:[[12511,12522,12496,12540,12523],256],13131:[[12513,12460],256],13132:[[12513,12460,12488,12531],256],13133:[[12513,12540,12488,12523],256],13134:[[12516,12540,12489],256],13135:[[12516,12540,12523],256],13136:[[12518,12450,12531],256],13137:[[12522,12483,12488,12523],256],13138:[[12522,12521],256],13139:[[12523,12500,12540],256],13140:[[12523,12540,12502,12523],256],13141:[[12524,12512],256],13142:[[12524,12531,12488,12466,12531],256],13143:[[12527,12483,12488],256],13144:[[48,28857],256],13145:[[49,28857],256],13146:[[50,28857],256],13147:[[51,28857],256],13148:[[52,28857],256],13149:[[53,28857],256],13150:[[54,28857],256],13151:[[55,28857],256],13152:[[56,28857],256],13153:[[57,28857],256],13154:[[49,48,28857],256],13155:[[49,49,28857],256],13156:[[49,50,28857],256],13157:[[49,51,28857],256],13158:[[49,52,28857],256],13159:[[49,53,28857],256],13160:[[49,54,28857],256],13161:[[49,55,28857],256],13162:[[49,56,28857],256],13163:[[49,57,28857],256],13164:[[50,48,28857],256],13165:[[50,49,28857],256],13166:[[50,50,28857],256],13167:[[50,51,28857],256],13168:[[50,52,28857],256],13169:[[104,80,97],256],13170:[[100,97],256],13171:[[65,85],256],13172:[[98,97,114],256],13173:[[111,86],256],13174:[[112,99],256],13175:[[100,109],256],13176:[[100,109,178],256],13177:[[100,109,179],256],13178:[[73,85],256],13179:[[24179,25104],256],13180:[[26157,21644],256],13181:[[22823,27491],256],13182:[[26126,27835],256],13183:[[26666,24335,20250,31038],256],13184:[[112,65],256],13185:[[110,65],256],13186:[[956,65],256],13187:[[109,65],256],13188:[[107,65],256],13189:[[75,66],256],13190:[[77,66],256],13191:[[71,66],256],13192:[[99,97,108],256],13193:[[107,99,97,108],256],13194:[[112,70],256],13195:[[110,70],256],13196:[[956,70],256],13197:[[956,103],256],13198:[[109,103],256],13199:[[107,103],256],13200:[[72,122],256],13201:[[107,72,122],256],13202:[[77,72,122],256],13203:[[71,72,122],256],13204:[[84,72,122],256],13205:[[956,8467],256],13206:[[109,8467],256],13207:[[100,8467],256],13208:[[107,8467],256],13209:[[102,109],256],13210:[[110,109],256],13211:[[956,109],256],13212:[[109,109],256],13213:[[99,109],256],13214:[[107,109],256],13215:[[109,109,178],256],13216:[[99,109,178],256],13217:[[109,178],256],13218:[[107,109,178],256],13219:[[109,109,179],256],13220:[[99,109,179],256],13221:[[109,179],256],13222:[[107,109,179],256],13223:[[109,8725,115],256],13224:[[109,8725,115,178],256],13225:[[80,97],256],13226:[[107,80,97],256],13227:[[77,80,97],256],13228:[[71,80,97],256],13229:[[114,97,100],256],13230:[[114,97,100,8725,115],256],13231:[[114,97,100,8725,115,178],256],13232:[[112,115],256],13233:[[110,115],256],13234:[[956,115],256],13235:[[109,115],256],13236:[[112,86],256],13237:[[110,86],256],13238:[[956,86],256],13239:[[109,86],256],13240:[[107,86],256],13241:[[77,86],256],13242:[[112,87],256],13243:[[110,87],256],13244:[[956,87],256],13245:[[109,87],256],13246:[[107,87],256],13247:[[77,87],256],13248:[[107,937],256],13249:[[77,937],256],13250:[[97,46,109,46],256],13251:[[66,113],256],13252:[[99,99],256],13253:[[99,100],256],13254:[[67,8725,107,103],256],13255:[[67,111,46],256],13256:[[100,66],256],13257:[[71,121],256],13258:[[104,97],256],13259:[[72,80],256],13260:[[105,110],256],13261:[[75,75],256],13262:[[75,77],256],13263:[[107,116],256],13264:[[108,109],256],13265:[[108,110],256],13266:[[108,111,103],256],13267:[[108,120],256],13268:[[109,98],256],13269:[[109,105,108],256],13270:[[109,111,108],256],13271:[[80,72],256],13272:[[112,46,109,46],256],13273:[[80,80,77],256],13274:[[80,82],256],13275:[[115,114],256],13276:[[83,118],256],13277:[[87,98],256],13278:[[86,8725,109],256],13279:[[65,8725,109],256],13280:[[49,26085],256],13281:[[50,26085],256],13282:[[51,26085],256],13283:[[52,26085],256],13284:[[53,26085],256],13285:[[54,26085],256],13286:[[55,26085],256],13287:[[56,26085],256],13288:[[57,26085],256],13289:[[49,48,26085],256],13290:[[49,49,26085],256],13291:[[49,50,26085],256],13292:[[49,51,26085],256],13293:[[49,52,26085],256],13294:[[49,53,26085],256],13295:[[49,54,26085],256],13296:[[49,55,26085],256],13297:[[49,56,26085],256],13298:[[49,57,26085],256],13299:[[50,48,26085],256],13300:[[50,49,26085],256],13301:[[50,50,26085],256],13302:[[50,51,26085],256],13303:[[50,52,26085],256],13304:[[50,53,26085],256],13305:[[50,54,26085],256],13306:[[50,55,26085],256],13307:[[50,56,26085],256],13308:[[50,57,26085],256],13309:[[51,48,26085],256],13310:[[51,49,26085],256],13311:[[103,97,108],256]}, +27136:{92912:[,1],92913:[,1],92914:[,1],92915:[,1],92916:[,1]}, +27392:{92976:[,230],92977:[,230],92978:[,230],92979:[,230],92980:[,230],92981:[,230],92982:[,230]}, +42496:{42607:[,230],42612:[,230],42613:[,230],42614:[,230],42615:[,230],42616:[,230],42617:[,230],42618:[,230],42619:[,230],42620:[,230],42621:[,230],42652:[[1098],256],42653:[[1100],256],42655:[,230],42736:[,230],42737:[,230]}, +42752:{42864:[[42863],256],43000:[[294],256],43001:[[339],256]}, +43008:{43014:[,9],43204:[,9],43232:[,230],43233:[,230],43234:[,230],43235:[,230],43236:[,230],43237:[,230],43238:[,230],43239:[,230],43240:[,230],43241:[,230],43242:[,230],43243:[,230],43244:[,230],43245:[,230],43246:[,230],43247:[,230],43248:[,230],43249:[,230]}, +43264:{43307:[,220],43308:[,220],43309:[,220],43347:[,9],43443:[,7],43456:[,9]}, +43520:{43696:[,230],43698:[,230],43699:[,230],43700:[,220],43703:[,230],43704:[,230],43710:[,230],43711:[,230],43713:[,230],43766:[,9]}, +43776:{43868:[[42791],256],43869:[[43831],256],43870:[[619],256],43871:[[43858],256],44013:[,9]}, +48128:{113822:[,1]}, +53504:{119134:[[119127,119141],512],119135:[[119128,119141],512],119136:[[119135,119150],512],119137:[[119135,119151],512],119138:[[119135,119152],512],119139:[[119135,119153],512],119140:[[119135,119154],512],119141:[,216],119142:[,216],119143:[,1],119144:[,1],119145:[,1],119149:[,226],119150:[,216],119151:[,216],119152:[,216],119153:[,216],119154:[,216],119163:[,220],119164:[,220],119165:[,220],119166:[,220],119167:[,220],119168:[,220],119169:[,220],119170:[,220],119173:[,230],119174:[,230],119175:[,230],119176:[,230],119177:[,230],119178:[,220],119179:[,220],119210:[,230],119211:[,230],119212:[,230],119213:[,230],119227:[[119225,119141],512],119228:[[119226,119141],512],119229:[[119227,119150],512],119230:[[119228,119150],512],119231:[[119227,119151],512],119232:[[119228,119151],512]}, +53760:{119362:[,230],119363:[,230],119364:[,230]}, +54272:{119808:[[65],256],119809:[[66],256],119810:[[67],256],119811:[[68],256],119812:[[69],256],119813:[[70],256],119814:[[71],256],119815:[[72],256],119816:[[73],256],119817:[[74],256],119818:[[75],256],119819:[[76],256],119820:[[77],256],119821:[[78],256],119822:[[79],256],119823:[[80],256],119824:[[81],256],119825:[[82],256],119826:[[83],256],119827:[[84],256],119828:[[85],256],119829:[[86],256],119830:[[87],256],119831:[[88],256],119832:[[89],256],119833:[[90],256],119834:[[97],256],119835:[[98],256],119836:[[99],256],119837:[[100],256],119838:[[101],256],119839:[[102],256],119840:[[103],256],119841:[[104],256],119842:[[105],256],119843:[[106],256],119844:[[107],256],119845:[[108],256],119846:[[109],256],119847:[[110],256],119848:[[111],256],119849:[[112],256],119850:[[113],256],119851:[[114],256],119852:[[115],256],119853:[[116],256],119854:[[117],256],119855:[[118],256],119856:[[119],256],119857:[[120],256],119858:[[121],256],119859:[[122],256],119860:[[65],256],119861:[[66],256],119862:[[67],256],119863:[[68],256],119864:[[69],256],119865:[[70],256],119866:[[71],256],119867:[[72],256],119868:[[73],256],119869:[[74],256],119870:[[75],256],119871:[[76],256],119872:[[77],256],119873:[[78],256],119874:[[79],256],119875:[[80],256],119876:[[81],256],119877:[[82],256],119878:[[83],256],119879:[[84],256],119880:[[85],256],119881:[[86],256],119882:[[87],256],119883:[[88],256],119884:[[89],256],119885:[[90],256],119886:[[97],256],119887:[[98],256],119888:[[99],256],119889:[[100],256],119890:[[101],256],119891:[[102],256],119892:[[103],256],119894:[[105],256],119895:[[106],256],119896:[[107],256],119897:[[108],256],119898:[[109],256],119899:[[110],256],119900:[[111],256],119901:[[112],256],119902:[[113],256],119903:[[114],256],119904:[[115],256],119905:[[116],256],119906:[[117],256],119907:[[118],256],119908:[[119],256],119909:[[120],256],119910:[[121],256],119911:[[122],256],119912:[[65],256],119913:[[66],256],119914:[[67],256],119915:[[68],256],119916:[[69],256],119917:[[70],256],119918:[[71],256],119919:[[72],256],119920:[[73],256],119921:[[74],256],119922:[[75],256],119923:[[76],256],119924:[[77],256],119925:[[78],256],119926:[[79],256],119927:[[80],256],119928:[[81],256],119929:[[82],256],119930:[[83],256],119931:[[84],256],119932:[[85],256],119933:[[86],256],119934:[[87],256],119935:[[88],256],119936:[[89],256],119937:[[90],256],119938:[[97],256],119939:[[98],256],119940:[[99],256],119941:[[100],256],119942:[[101],256],119943:[[102],256],119944:[[103],256],119945:[[104],256],119946:[[105],256],119947:[[106],256],119948:[[107],256],119949:[[108],256],119950:[[109],256],119951:[[110],256],119952:[[111],256],119953:[[112],256],119954:[[113],256],119955:[[114],256],119956:[[115],256],119957:[[116],256],119958:[[117],256],119959:[[118],256],119960:[[119],256],119961:[[120],256],119962:[[121],256],119963:[[122],256],119964:[[65],256],119966:[[67],256],119967:[[68],256],119970:[[71],256],119973:[[74],256],119974:[[75],256],119977:[[78],256],119978:[[79],256],119979:[[80],256],119980:[[81],256],119982:[[83],256],119983:[[84],256],119984:[[85],256],119985:[[86],256],119986:[[87],256],119987:[[88],256],119988:[[89],256],119989:[[90],256],119990:[[97],256],119991:[[98],256],119992:[[99],256],119993:[[100],256],119995:[[102],256],119997:[[104],256],119998:[[105],256],119999:[[106],256],120000:[[107],256],120001:[[108],256],120002:[[109],256],120003:[[110],256],120005:[[112],256],120006:[[113],256],120007:[[114],256],120008:[[115],256],120009:[[116],256],120010:[[117],256],120011:[[118],256],120012:[[119],256],120013:[[120],256],120014:[[121],256],120015:[[122],256],120016:[[65],256],120017:[[66],256],120018:[[67],256],120019:[[68],256],120020:[[69],256],120021:[[70],256],120022:[[71],256],120023:[[72],256],120024:[[73],256],120025:[[74],256],120026:[[75],256],120027:[[76],256],120028:[[77],256],120029:[[78],256],120030:[[79],256],120031:[[80],256],120032:[[81],256],120033:[[82],256],120034:[[83],256],120035:[[84],256],120036:[[85],256],120037:[[86],256],120038:[[87],256],120039:[[88],256],120040:[[89],256],120041:[[90],256],120042:[[97],256],120043:[[98],256],120044:[[99],256],120045:[[100],256],120046:[[101],256],120047:[[102],256],120048:[[103],256],120049:[[104],256],120050:[[105],256],120051:[[106],256],120052:[[107],256],120053:[[108],256],120054:[[109],256],120055:[[110],256],120056:[[111],256],120057:[[112],256],120058:[[113],256],120059:[[114],256],120060:[[115],256],120061:[[116],256],120062:[[117],256],120063:[[118],256]}, +54528:{120064:[[119],256],120065:[[120],256],120066:[[121],256],120067:[[122],256],120068:[[65],256],120069:[[66],256],120071:[[68],256],120072:[[69],256],120073:[[70],256],120074:[[71],256],120077:[[74],256],120078:[[75],256],120079:[[76],256],120080:[[77],256],120081:[[78],256],120082:[[79],256],120083:[[80],256],120084:[[81],256],120086:[[83],256],120087:[[84],256],120088:[[85],256],120089:[[86],256],120090:[[87],256],120091:[[88],256],120092:[[89],256],120094:[[97],256],120095:[[98],256],120096:[[99],256],120097:[[100],256],120098:[[101],256],120099:[[102],256],120100:[[103],256],120101:[[104],256],120102:[[105],256],120103:[[106],256],120104:[[107],256],120105:[[108],256],120106:[[109],256],120107:[[110],256],120108:[[111],256],120109:[[112],256],120110:[[113],256],120111:[[114],256],120112:[[115],256],120113:[[116],256],120114:[[117],256],120115:[[118],256],120116:[[119],256],120117:[[120],256],120118:[[121],256],120119:[[122],256],120120:[[65],256],120121:[[66],256],120123:[[68],256],120124:[[69],256],120125:[[70],256],120126:[[71],256],120128:[[73],256],120129:[[74],256],120130:[[75],256],120131:[[76],256],120132:[[77],256],120134:[[79],256],120138:[[83],256],120139:[[84],256],120140:[[85],256],120141:[[86],256],120142:[[87],256],120143:[[88],256],120144:[[89],256],120146:[[97],256],120147:[[98],256],120148:[[99],256],120149:[[100],256],120150:[[101],256],120151:[[102],256],120152:[[103],256],120153:[[104],256],120154:[[105],256],120155:[[106],256],120156:[[107],256],120157:[[108],256],120158:[[109],256],120159:[[110],256],120160:[[111],256],120161:[[112],256],120162:[[113],256],120163:[[114],256],120164:[[115],256],120165:[[116],256],120166:[[117],256],120167:[[118],256],120168:[[119],256],120169:[[120],256],120170:[[121],256],120171:[[122],256],120172:[[65],256],120173:[[66],256],120174:[[67],256],120175:[[68],256],120176:[[69],256],120177:[[70],256],120178:[[71],256],120179:[[72],256],120180:[[73],256],120181:[[74],256],120182:[[75],256],120183:[[76],256],120184:[[77],256],120185:[[78],256],120186:[[79],256],120187:[[80],256],120188:[[81],256],120189:[[82],256],120190:[[83],256],120191:[[84],256],120192:[[85],256],120193:[[86],256],120194:[[87],256],120195:[[88],256],120196:[[89],256],120197:[[90],256],120198:[[97],256],120199:[[98],256],120200:[[99],256],120201:[[100],256],120202:[[101],256],120203:[[102],256],120204:[[103],256],120205:[[104],256],120206:[[105],256],120207:[[106],256],120208:[[107],256],120209:[[108],256],120210:[[109],256],120211:[[110],256],120212:[[111],256],120213:[[112],256],120214:[[113],256],120215:[[114],256],120216:[[115],256],120217:[[116],256],120218:[[117],256],120219:[[118],256],120220:[[119],256],120221:[[120],256],120222:[[121],256],120223:[[122],256],120224:[[65],256],120225:[[66],256],120226:[[67],256],120227:[[68],256],120228:[[69],256],120229:[[70],256],120230:[[71],256],120231:[[72],256],120232:[[73],256],120233:[[74],256],120234:[[75],256],120235:[[76],256],120236:[[77],256],120237:[[78],256],120238:[[79],256],120239:[[80],256],120240:[[81],256],120241:[[82],256],120242:[[83],256],120243:[[84],256],120244:[[85],256],120245:[[86],256],120246:[[87],256],120247:[[88],256],120248:[[89],256],120249:[[90],256],120250:[[97],256],120251:[[98],256],120252:[[99],256],120253:[[100],256],120254:[[101],256],120255:[[102],256],120256:[[103],256],120257:[[104],256],120258:[[105],256],120259:[[106],256],120260:[[107],256],120261:[[108],256],120262:[[109],256],120263:[[110],256],120264:[[111],256],120265:[[112],256],120266:[[113],256],120267:[[114],256],120268:[[115],256],120269:[[116],256],120270:[[117],256],120271:[[118],256],120272:[[119],256],120273:[[120],256],120274:[[121],256],120275:[[122],256],120276:[[65],256],120277:[[66],256],120278:[[67],256],120279:[[68],256],120280:[[69],256],120281:[[70],256],120282:[[71],256],120283:[[72],256],120284:[[73],256],120285:[[74],256],120286:[[75],256],120287:[[76],256],120288:[[77],256],120289:[[78],256],120290:[[79],256],120291:[[80],256],120292:[[81],256],120293:[[82],256],120294:[[83],256],120295:[[84],256],120296:[[85],256],120297:[[86],256],120298:[[87],256],120299:[[88],256],120300:[[89],256],120301:[[90],256],120302:[[97],256],120303:[[98],256],120304:[[99],256],120305:[[100],256],120306:[[101],256],120307:[[102],256],120308:[[103],256],120309:[[104],256],120310:[[105],256],120311:[[106],256],120312:[[107],256],120313:[[108],256],120314:[[109],256],120315:[[110],256],120316:[[111],256],120317:[[112],256],120318:[[113],256],120319:[[114],256]}, +54784:{120320:[[115],256],120321:[[116],256],120322:[[117],256],120323:[[118],256],120324:[[119],256],120325:[[120],256],120326:[[121],256],120327:[[122],256],120328:[[65],256],120329:[[66],256],120330:[[67],256],120331:[[68],256],120332:[[69],256],120333:[[70],256],120334:[[71],256],120335:[[72],256],120336:[[73],256],120337:[[74],256],120338:[[75],256],120339:[[76],256],120340:[[77],256],120341:[[78],256],120342:[[79],256],120343:[[80],256],120344:[[81],256],120345:[[82],256],120346:[[83],256],120347:[[84],256],120348:[[85],256],120349:[[86],256],120350:[[87],256],120351:[[88],256],120352:[[89],256],120353:[[90],256],120354:[[97],256],120355:[[98],256],120356:[[99],256],120357:[[100],256],120358:[[101],256],120359:[[102],256],120360:[[103],256],120361:[[104],256],120362:[[105],256],120363:[[106],256],120364:[[107],256],120365:[[108],256],120366:[[109],256],120367:[[110],256],120368:[[111],256],120369:[[112],256],120370:[[113],256],120371:[[114],256],120372:[[115],256],120373:[[116],256],120374:[[117],256],120375:[[118],256],120376:[[119],256],120377:[[120],256],120378:[[121],256],120379:[[122],256],120380:[[65],256],120381:[[66],256],120382:[[67],256],120383:[[68],256],120384:[[69],256],120385:[[70],256],120386:[[71],256],120387:[[72],256],120388:[[73],256],120389:[[74],256],120390:[[75],256],120391:[[76],256],120392:[[77],256],120393:[[78],256],120394:[[79],256],120395:[[80],256],120396:[[81],256],120397:[[82],256],120398:[[83],256],120399:[[84],256],120400:[[85],256],120401:[[86],256],120402:[[87],256],120403:[[88],256],120404:[[89],256],120405:[[90],256],120406:[[97],256],120407:[[98],256],120408:[[99],256],120409:[[100],256],120410:[[101],256],120411:[[102],256],120412:[[103],256],120413:[[104],256],120414:[[105],256],120415:[[106],256],120416:[[107],256],120417:[[108],256],120418:[[109],256],120419:[[110],256],120420:[[111],256],120421:[[112],256],120422:[[113],256],120423:[[114],256],120424:[[115],256],120425:[[116],256],120426:[[117],256],120427:[[118],256],120428:[[119],256],120429:[[120],256],120430:[[121],256],120431:[[122],256],120432:[[65],256],120433:[[66],256],120434:[[67],256],120435:[[68],256],120436:[[69],256],120437:[[70],256],120438:[[71],256],120439:[[72],256],120440:[[73],256],120441:[[74],256],120442:[[75],256],120443:[[76],256],120444:[[77],256],120445:[[78],256],120446:[[79],256],120447:[[80],256],120448:[[81],256],120449:[[82],256],120450:[[83],256],120451:[[84],256],120452:[[85],256],120453:[[86],256],120454:[[87],256],120455:[[88],256],120456:[[89],256],120457:[[90],256],120458:[[97],256],120459:[[98],256],120460:[[99],256],120461:[[100],256],120462:[[101],256],120463:[[102],256],120464:[[103],256],120465:[[104],256],120466:[[105],256],120467:[[106],256],120468:[[107],256],120469:[[108],256],120470:[[109],256],120471:[[110],256],120472:[[111],256],120473:[[112],256],120474:[[113],256],120475:[[114],256],120476:[[115],256],120477:[[116],256],120478:[[117],256],120479:[[118],256],120480:[[119],256],120481:[[120],256],120482:[[121],256],120483:[[122],256],120484:[[305],256],120485:[[567],256],120488:[[913],256],120489:[[914],256],120490:[[915],256],120491:[[916],256],120492:[[917],256],120493:[[918],256],120494:[[919],256],120495:[[920],256],120496:[[921],256],120497:[[922],256],120498:[[923],256],120499:[[924],256],120500:[[925],256],120501:[[926],256],120502:[[927],256],120503:[[928],256],120504:[[929],256],120505:[[1012],256],120506:[[931],256],120507:[[932],256],120508:[[933],256],120509:[[934],256],120510:[[935],256],120511:[[936],256],120512:[[937],256],120513:[[8711],256],120514:[[945],256],120515:[[946],256],120516:[[947],256],120517:[[948],256],120518:[[949],256],120519:[[950],256],120520:[[951],256],120521:[[952],256],120522:[[953],256],120523:[[954],256],120524:[[955],256],120525:[[956],256],120526:[[957],256],120527:[[958],256],120528:[[959],256],120529:[[960],256],120530:[[961],256],120531:[[962],256],120532:[[963],256],120533:[[964],256],120534:[[965],256],120535:[[966],256],120536:[[967],256],120537:[[968],256],120538:[[969],256],120539:[[8706],256],120540:[[1013],256],120541:[[977],256],120542:[[1008],256],120543:[[981],256],120544:[[1009],256],120545:[[982],256],120546:[[913],256],120547:[[914],256],120548:[[915],256],120549:[[916],256],120550:[[917],256],120551:[[918],256],120552:[[919],256],120553:[[920],256],120554:[[921],256],120555:[[922],256],120556:[[923],256],120557:[[924],256],120558:[[925],256],120559:[[926],256],120560:[[927],256],120561:[[928],256],120562:[[929],256],120563:[[1012],256],120564:[[931],256],120565:[[932],256],120566:[[933],256],120567:[[934],256],120568:[[935],256],120569:[[936],256],120570:[[937],256],120571:[[8711],256],120572:[[945],256],120573:[[946],256],120574:[[947],256],120575:[[948],256]}, +55040:{120576:[[949],256],120577:[[950],256],120578:[[951],256],120579:[[952],256],120580:[[953],256],120581:[[954],256],120582:[[955],256],120583:[[956],256],120584:[[957],256],120585:[[958],256],120586:[[959],256],120587:[[960],256],120588:[[961],256],120589:[[962],256],120590:[[963],256],120591:[[964],256],120592:[[965],256],120593:[[966],256],120594:[[967],256],120595:[[968],256],120596:[[969],256],120597:[[8706],256],120598:[[1013],256],120599:[[977],256],120600:[[1008],256],120601:[[981],256],120602:[[1009],256],120603:[[982],256],120604:[[913],256],120605:[[914],256],120606:[[915],256],120607:[[916],256],120608:[[917],256],120609:[[918],256],120610:[[919],256],120611:[[920],256],120612:[[921],256],120613:[[922],256],120614:[[923],256],120615:[[924],256],120616:[[925],256],120617:[[926],256],120618:[[927],256],120619:[[928],256],120620:[[929],256],120621:[[1012],256],120622:[[931],256],120623:[[932],256],120624:[[933],256],120625:[[934],256],120626:[[935],256],120627:[[936],256],120628:[[937],256],120629:[[8711],256],120630:[[945],256],120631:[[946],256],120632:[[947],256],120633:[[948],256],120634:[[949],256],120635:[[950],256],120636:[[951],256],120637:[[952],256],120638:[[953],256],120639:[[954],256],120640:[[955],256],120641:[[956],256],120642:[[957],256],120643:[[958],256],120644:[[959],256],120645:[[960],256],120646:[[961],256],120647:[[962],256],120648:[[963],256],120649:[[964],256],120650:[[965],256],120651:[[966],256],120652:[[967],256],120653:[[968],256],120654:[[969],256],120655:[[8706],256],120656:[[1013],256],120657:[[977],256],120658:[[1008],256],120659:[[981],256],120660:[[1009],256],120661:[[982],256],120662:[[913],256],120663:[[914],256],120664:[[915],256],120665:[[916],256],120666:[[917],256],120667:[[918],256],120668:[[919],256],120669:[[920],256],120670:[[921],256],120671:[[922],256],120672:[[923],256],120673:[[924],256],120674:[[925],256],120675:[[926],256],120676:[[927],256],120677:[[928],256],120678:[[929],256],120679:[[1012],256],120680:[[931],256],120681:[[932],256],120682:[[933],256],120683:[[934],256],120684:[[935],256],120685:[[936],256],120686:[[937],256],120687:[[8711],256],120688:[[945],256],120689:[[946],256],120690:[[947],256],120691:[[948],256],120692:[[949],256],120693:[[950],256],120694:[[951],256],120695:[[952],256],120696:[[953],256],120697:[[954],256],120698:[[955],256],120699:[[956],256],120700:[[957],256],120701:[[958],256],120702:[[959],256],120703:[[960],256],120704:[[961],256],120705:[[962],256],120706:[[963],256],120707:[[964],256],120708:[[965],256],120709:[[966],256],120710:[[967],256],120711:[[968],256],120712:[[969],256],120713:[[8706],256],120714:[[1013],256],120715:[[977],256],120716:[[1008],256],120717:[[981],256],120718:[[1009],256],120719:[[982],256],120720:[[913],256],120721:[[914],256],120722:[[915],256],120723:[[916],256],120724:[[917],256],120725:[[918],256],120726:[[919],256],120727:[[920],256],120728:[[921],256],120729:[[922],256],120730:[[923],256],120731:[[924],256],120732:[[925],256],120733:[[926],256],120734:[[927],256],120735:[[928],256],120736:[[929],256],120737:[[1012],256],120738:[[931],256],120739:[[932],256],120740:[[933],256],120741:[[934],256],120742:[[935],256],120743:[[936],256],120744:[[937],256],120745:[[8711],256],120746:[[945],256],120747:[[946],256],120748:[[947],256],120749:[[948],256],120750:[[949],256],120751:[[950],256],120752:[[951],256],120753:[[952],256],120754:[[953],256],120755:[[954],256],120756:[[955],256],120757:[[956],256],120758:[[957],256],120759:[[958],256],120760:[[959],256],120761:[[960],256],120762:[[961],256],120763:[[962],256],120764:[[963],256],120765:[[964],256],120766:[[965],256],120767:[[966],256],120768:[[967],256],120769:[[968],256],120770:[[969],256],120771:[[8706],256],120772:[[1013],256],120773:[[977],256],120774:[[1008],256],120775:[[981],256],120776:[[1009],256],120777:[[982],256],120778:[[988],256],120779:[[989],256],120782:[[48],256],120783:[[49],256],120784:[[50],256],120785:[[51],256],120786:[[52],256],120787:[[53],256],120788:[[54],256],120789:[[55],256],120790:[[56],256],120791:[[57],256],120792:[[48],256],120793:[[49],256],120794:[[50],256],120795:[[51],256],120796:[[52],256],120797:[[53],256],120798:[[54],256],120799:[[55],256],120800:[[56],256],120801:[[57],256],120802:[[48],256],120803:[[49],256],120804:[[50],256],120805:[[51],256],120806:[[52],256],120807:[[53],256],120808:[[54],256],120809:[[55],256],120810:[[56],256],120811:[[57],256],120812:[[48],256],120813:[[49],256],120814:[[50],256],120815:[[51],256],120816:[[52],256],120817:[[53],256],120818:[[54],256],120819:[[55],256],120820:[[56],256],120821:[[57],256],120822:[[48],256],120823:[[49],256],120824:[[50],256],120825:[[51],256],120826:[[52],256],120827:[[53],256],120828:[[54],256],120829:[[55],256],120830:[[56],256],120831:[[57],256]}, +59392:{125136:[,220],125137:[,220],125138:[,220],125139:[,220],125140:[,220],125141:[,220],125142:[,220]}, +60928:{126464:[[1575],256],126465:[[1576],256],126466:[[1580],256],126467:[[1583],256],126469:[[1608],256],126470:[[1586],256],126471:[[1581],256],126472:[[1591],256],126473:[[1610],256],126474:[[1603],256],126475:[[1604],256],126476:[[1605],256],126477:[[1606],256],126478:[[1587],256],126479:[[1593],256],126480:[[1601],256],126481:[[1589],256],126482:[[1602],256],126483:[[1585],256],126484:[[1588],256],126485:[[1578],256],126486:[[1579],256],126487:[[1582],256],126488:[[1584],256],126489:[[1590],256],126490:[[1592],256],126491:[[1594],256],126492:[[1646],256],126493:[[1722],256],126494:[[1697],256],126495:[[1647],256],126497:[[1576],256],126498:[[1580],256],126500:[[1607],256],126503:[[1581],256],126505:[[1610],256],126506:[[1603],256],126507:[[1604],256],126508:[[1605],256],126509:[[1606],256],126510:[[1587],256],126511:[[1593],256],126512:[[1601],256],126513:[[1589],256],126514:[[1602],256],126516:[[1588],256],126517:[[1578],256],126518:[[1579],256],126519:[[1582],256],126521:[[1590],256],126523:[[1594],256],126530:[[1580],256],126535:[[1581],256],126537:[[1610],256],126539:[[1604],256],126541:[[1606],256],126542:[[1587],256],126543:[[1593],256],126545:[[1589],256],126546:[[1602],256],126548:[[1588],256],126551:[[1582],256],126553:[[1590],256],126555:[[1594],256],126557:[[1722],256],126559:[[1647],256],126561:[[1576],256],126562:[[1580],256],126564:[[1607],256],126567:[[1581],256],126568:[[1591],256],126569:[[1610],256],126570:[[1603],256],126572:[[1605],256],126573:[[1606],256],126574:[[1587],256],126575:[[1593],256],126576:[[1601],256],126577:[[1589],256],126578:[[1602],256],126580:[[1588],256],126581:[[1578],256],126582:[[1579],256],126583:[[1582],256],126585:[[1590],256],126586:[[1592],256],126587:[[1594],256],126588:[[1646],256],126590:[[1697],256],126592:[[1575],256],126593:[[1576],256],126594:[[1580],256],126595:[[1583],256],126596:[[1607],256],126597:[[1608],256],126598:[[1586],256],126599:[[1581],256],126600:[[1591],256],126601:[[1610],256],126603:[[1604],256],126604:[[1605],256],126605:[[1606],256],126606:[[1587],256],126607:[[1593],256],126608:[[1601],256],126609:[[1589],256],126610:[[1602],256],126611:[[1585],256],126612:[[1588],256],126613:[[1578],256],126614:[[1579],256],126615:[[1582],256],126616:[[1584],256],126617:[[1590],256],126618:[[1592],256],126619:[[1594],256],126625:[[1576],256],126626:[[1580],256],126627:[[1583],256],126629:[[1608],256],126630:[[1586],256],126631:[[1581],256],126632:[[1591],256],126633:[[1610],256],126635:[[1604],256],126636:[[1605],256],126637:[[1606],256],126638:[[1587],256],126639:[[1593],256],126640:[[1601],256],126641:[[1589],256],126642:[[1602],256],126643:[[1585],256],126644:[[1588],256],126645:[[1578],256],126646:[[1579],256],126647:[[1582],256],126648:[[1584],256],126649:[[1590],256],126650:[[1592],256],126651:[[1594],256]}, +61696:{127232:[[48,46],256],127233:[[48,44],256],127234:[[49,44],256],127235:[[50,44],256],127236:[[51,44],256],127237:[[52,44],256],127238:[[53,44],256],127239:[[54,44],256],127240:[[55,44],256],127241:[[56,44],256],127242:[[57,44],256],127248:[[40,65,41],256],127249:[[40,66,41],256],127250:[[40,67,41],256],127251:[[40,68,41],256],127252:[[40,69,41],256],127253:[[40,70,41],256],127254:[[40,71,41],256],127255:[[40,72,41],256],127256:[[40,73,41],256],127257:[[40,74,41],256],127258:[[40,75,41],256],127259:[[40,76,41],256],127260:[[40,77,41],256],127261:[[40,78,41],256],127262:[[40,79,41],256],127263:[[40,80,41],256],127264:[[40,81,41],256],127265:[[40,82,41],256],127266:[[40,83,41],256],127267:[[40,84,41],256],127268:[[40,85,41],256],127269:[[40,86,41],256],127270:[[40,87,41],256],127271:[[40,88,41],256],127272:[[40,89,41],256],127273:[[40,90,41],256],127274:[[12308,83,12309],256],127275:[[67],256],127276:[[82],256],127277:[[67,68],256],127278:[[87,90],256],127280:[[65],256],127281:[[66],256],127282:[[67],256],127283:[[68],256],127284:[[69],256],127285:[[70],256],127286:[[71],256],127287:[[72],256],127288:[[73],256],127289:[[74],256],127290:[[75],256],127291:[[76],256],127292:[[77],256],127293:[[78],256],127294:[[79],256],127295:[[80],256],127296:[[81],256],127297:[[82],256],127298:[[83],256],127299:[[84],256],127300:[[85],256],127301:[[86],256],127302:[[87],256],127303:[[88],256],127304:[[89],256],127305:[[90],256],127306:[[72,86],256],127307:[[77,86],256],127308:[[83,68],256],127309:[[83,83],256],127310:[[80,80,86],256],127311:[[87,67],256],127338:[[77,67],256],127339:[[77,68],256],127376:[[68,74],256]}, +61952:{127488:[[12411,12363],256],127489:[[12467,12467],256],127490:[[12469],256],127504:[[25163],256],127505:[[23383],256],127506:[[21452],256],127507:[[12487],256],127508:[[20108],256],127509:[[22810],256],127510:[[35299],256],127511:[[22825],256],127512:[[20132],256],127513:[[26144],256],127514:[[28961],256],127515:[[26009],256],127516:[[21069],256],127517:[[24460],256],127518:[[20877],256],127519:[[26032],256],127520:[[21021],256],127521:[[32066],256],127522:[[29983],256],127523:[[36009],256],127524:[[22768],256],127525:[[21561],256],127526:[[28436],256],127527:[[25237],256],127528:[[25429],256],127529:[[19968],256],127530:[[19977],256],127531:[[36938],256],127532:[[24038],256],127533:[[20013],256],127534:[[21491],256],127535:[[25351],256],127536:[[36208],256],127537:[[25171],256],127538:[[31105],256],127539:[[31354],256],127540:[[21512],256],127541:[[28288],256],127542:[[26377],256],127543:[[26376],256],127544:[[30003],256],127545:[[21106],256],127546:[[21942],256],127552:[[12308,26412,12309],256],127553:[[12308,19977,12309],256],127554:[[12308,20108,12309],256],127555:[[12308,23433,12309],256],127556:[[12308,28857,12309],256],127557:[[12308,25171,12309],256],127558:[[12308,30423,12309],256],127559:[[12308,21213,12309],256],127560:[[12308,25943,12309],256],127568:[[24471],256],127569:[[21487],256]}, +63488:{194560:[[20029]],194561:[[20024]],194562:[[20033]],194563:[[131362]],194564:[[20320]],194565:[[20398]],194566:[[20411]],194567:[[20482]],194568:[[20602]],194569:[[20633]],194570:[[20711]],194571:[[20687]],194572:[[13470]],194573:[[132666]],194574:[[20813]],194575:[[20820]],194576:[[20836]],194577:[[20855]],194578:[[132380]],194579:[[13497]],194580:[[20839]],194581:[[20877]],194582:[[132427]],194583:[[20887]],194584:[[20900]],194585:[[20172]],194586:[[20908]],194587:[[20917]],194588:[[168415]],194589:[[20981]],194590:[[20995]],194591:[[13535]],194592:[[21051]],194593:[[21062]],194594:[[21106]],194595:[[21111]],194596:[[13589]],194597:[[21191]],194598:[[21193]],194599:[[21220]],194600:[[21242]],194601:[[21253]],194602:[[21254]],194603:[[21271]],194604:[[21321]],194605:[[21329]],194606:[[21338]],194607:[[21363]],194608:[[21373]],194609:[[21375]],194610:[[21375]],194611:[[21375]],194612:[[133676]],194613:[[28784]],194614:[[21450]],194615:[[21471]],194616:[[133987]],194617:[[21483]],194618:[[21489]],194619:[[21510]],194620:[[21662]],194621:[[21560]],194622:[[21576]],194623:[[21608]],194624:[[21666]],194625:[[21750]],194626:[[21776]],194627:[[21843]],194628:[[21859]],194629:[[21892]],194630:[[21892]],194631:[[21913]],194632:[[21931]],194633:[[21939]],194634:[[21954]],194635:[[22294]],194636:[[22022]],194637:[[22295]],194638:[[22097]],194639:[[22132]],194640:[[20999]],194641:[[22766]],194642:[[22478]],194643:[[22516]],194644:[[22541]],194645:[[22411]],194646:[[22578]],194647:[[22577]],194648:[[22700]],194649:[[136420]],194650:[[22770]],194651:[[22775]],194652:[[22790]],194653:[[22810]],194654:[[22818]],194655:[[22882]],194656:[[136872]],194657:[[136938]],194658:[[23020]],194659:[[23067]],194660:[[23079]],194661:[[23000]],194662:[[23142]],194663:[[14062]],194664:[[14076]],194665:[[23304]],194666:[[23358]],194667:[[23358]],194668:[[137672]],194669:[[23491]],194670:[[23512]],194671:[[23527]],194672:[[23539]],194673:[[138008]],194674:[[23551]],194675:[[23558]],194676:[[24403]],194677:[[23586]],194678:[[14209]],194679:[[23648]],194680:[[23662]],194681:[[23744]],194682:[[23693]],194683:[[138724]],194684:[[23875]],194685:[[138726]],194686:[[23918]],194687:[[23915]],194688:[[23932]],194689:[[24033]],194690:[[24034]],194691:[[14383]],194692:[[24061]],194693:[[24104]],194694:[[24125]],194695:[[24169]],194696:[[14434]],194697:[[139651]],194698:[[14460]],194699:[[24240]],194700:[[24243]],194701:[[24246]],194702:[[24266]],194703:[[172946]],194704:[[24318]],194705:[[140081]],194706:[[140081]],194707:[[33281]],194708:[[24354]],194709:[[24354]],194710:[[14535]],194711:[[144056]],194712:[[156122]],194713:[[24418]],194714:[[24427]],194715:[[14563]],194716:[[24474]],194717:[[24525]],194718:[[24535]],194719:[[24569]],194720:[[24705]],194721:[[14650]],194722:[[14620]],194723:[[24724]],194724:[[141012]],194725:[[24775]],194726:[[24904]],194727:[[24908]],194728:[[24910]],194729:[[24908]],194730:[[24954]],194731:[[24974]],194732:[[25010]],194733:[[24996]],194734:[[25007]],194735:[[25054]],194736:[[25074]],194737:[[25078]],194738:[[25104]],194739:[[25115]],194740:[[25181]],194741:[[25265]],194742:[[25300]],194743:[[25424]],194744:[[142092]],194745:[[25405]],194746:[[25340]],194747:[[25448]],194748:[[25475]],194749:[[25572]],194750:[[142321]],194751:[[25634]],194752:[[25541]],194753:[[25513]],194754:[[14894]],194755:[[25705]],194756:[[25726]],194757:[[25757]],194758:[[25719]],194759:[[14956]],194760:[[25935]],194761:[[25964]],194762:[[143370]],194763:[[26083]],194764:[[26360]],194765:[[26185]],194766:[[15129]],194767:[[26257]],194768:[[15112]],194769:[[15076]],194770:[[20882]],194771:[[20885]],194772:[[26368]],194773:[[26268]],194774:[[32941]],194775:[[17369]],194776:[[26391]],194777:[[26395]],194778:[[26401]],194779:[[26462]],194780:[[26451]],194781:[[144323]],194782:[[15177]],194783:[[26618]],194784:[[26501]],194785:[[26706]],194786:[[26757]],194787:[[144493]],194788:[[26766]],194789:[[26655]],194790:[[26900]],194791:[[15261]],194792:[[26946]],194793:[[27043]],194794:[[27114]],194795:[[27304]],194796:[[145059]],194797:[[27355]],194798:[[15384]],194799:[[27425]],194800:[[145575]],194801:[[27476]],194802:[[15438]],194803:[[27506]],194804:[[27551]],194805:[[27578]],194806:[[27579]],194807:[[146061]],194808:[[138507]],194809:[[146170]],194810:[[27726]],194811:[[146620]],194812:[[27839]],194813:[[27853]],194814:[[27751]],194815:[[27926]]}, +63744:{63744:[[35912]],63745:[[26356]],63746:[[36554]],63747:[[36040]],63748:[[28369]],63749:[[20018]],63750:[[21477]],63751:[[40860]],63752:[[40860]],63753:[[22865]],63754:[[37329]],63755:[[21895]],63756:[[22856]],63757:[[25078]],63758:[[30313]],63759:[[32645]],63760:[[34367]],63761:[[34746]],63762:[[35064]],63763:[[37007]],63764:[[27138]],63765:[[27931]],63766:[[28889]],63767:[[29662]],63768:[[33853]],63769:[[37226]],63770:[[39409]],63771:[[20098]],63772:[[21365]],63773:[[27396]],63774:[[29211]],63775:[[34349]],63776:[[40478]],63777:[[23888]],63778:[[28651]],63779:[[34253]],63780:[[35172]],63781:[[25289]],63782:[[33240]],63783:[[34847]],63784:[[24266]],63785:[[26391]],63786:[[28010]],63787:[[29436]],63788:[[37070]],63789:[[20358]],63790:[[20919]],63791:[[21214]],63792:[[25796]],63793:[[27347]],63794:[[29200]],63795:[[30439]],63796:[[32769]],63797:[[34310]],63798:[[34396]],63799:[[36335]],63800:[[38706]],63801:[[39791]],63802:[[40442]],63803:[[30860]],63804:[[31103]],63805:[[32160]],63806:[[33737]],63807:[[37636]],63808:[[40575]],63809:[[35542]],63810:[[22751]],63811:[[24324]],63812:[[31840]],63813:[[32894]],63814:[[29282]],63815:[[30922]],63816:[[36034]],63817:[[38647]],63818:[[22744]],63819:[[23650]],63820:[[27155]],63821:[[28122]],63822:[[28431]],63823:[[32047]],63824:[[32311]],63825:[[38475]],63826:[[21202]],63827:[[32907]],63828:[[20956]],63829:[[20940]],63830:[[31260]],63831:[[32190]],63832:[[33777]],63833:[[38517]],63834:[[35712]],63835:[[25295]],63836:[[27138]],63837:[[35582]],63838:[[20025]],63839:[[23527]],63840:[[24594]],63841:[[29575]],63842:[[30064]],63843:[[21271]],63844:[[30971]],63845:[[20415]],63846:[[24489]],63847:[[19981]],63848:[[27852]],63849:[[25976]],63850:[[32034]],63851:[[21443]],63852:[[22622]],63853:[[30465]],63854:[[33865]],63855:[[35498]],63856:[[27578]],63857:[[36784]],63858:[[27784]],63859:[[25342]],63860:[[33509]],63861:[[25504]],63862:[[30053]],63863:[[20142]],63864:[[20841]],63865:[[20937]],63866:[[26753]],63867:[[31975]],63868:[[33391]],63869:[[35538]],63870:[[37327]],63871:[[21237]],63872:[[21570]],63873:[[22899]],63874:[[24300]],63875:[[26053]],63876:[[28670]],63877:[[31018]],63878:[[38317]],63879:[[39530]],63880:[[40599]],63881:[[40654]],63882:[[21147]],63883:[[26310]],63884:[[27511]],63885:[[36706]],63886:[[24180]],63887:[[24976]],63888:[[25088]],63889:[[25754]],63890:[[28451]],63891:[[29001]],63892:[[29833]],63893:[[31178]],63894:[[32244]],63895:[[32879]],63896:[[36646]],63897:[[34030]],63898:[[36899]],63899:[[37706]],63900:[[21015]],63901:[[21155]],63902:[[21693]],63903:[[28872]],63904:[[35010]],63905:[[35498]],63906:[[24265]],63907:[[24565]],63908:[[25467]],63909:[[27566]],63910:[[31806]],63911:[[29557]],63912:[[20196]],63913:[[22265]],63914:[[23527]],63915:[[23994]],63916:[[24604]],63917:[[29618]],63918:[[29801]],63919:[[32666]],63920:[[32838]],63921:[[37428]],63922:[[38646]],63923:[[38728]],63924:[[38936]],63925:[[20363]],63926:[[31150]],63927:[[37300]],63928:[[38584]],63929:[[24801]],63930:[[20102]],63931:[[20698]],63932:[[23534]],63933:[[23615]],63934:[[26009]],63935:[[27138]],63936:[[29134]],63937:[[30274]],63938:[[34044]],63939:[[36988]],63940:[[40845]],63941:[[26248]],63942:[[38446]],63943:[[21129]],63944:[[26491]],63945:[[26611]],63946:[[27969]],63947:[[28316]],63948:[[29705]],63949:[[30041]],63950:[[30827]],63951:[[32016]],63952:[[39006]],63953:[[20845]],63954:[[25134]],63955:[[38520]],63956:[[20523]],63957:[[23833]],63958:[[28138]],63959:[[36650]],63960:[[24459]],63961:[[24900]],63962:[[26647]],63963:[[29575]],63964:[[38534]],63965:[[21033]],63966:[[21519]],63967:[[23653]],63968:[[26131]],63969:[[26446]],63970:[[26792]],63971:[[27877]],63972:[[29702]],63973:[[30178]],63974:[[32633]],63975:[[35023]],63976:[[35041]],63977:[[37324]],63978:[[38626]],63979:[[21311]],63980:[[28346]],63981:[[21533]],63982:[[29136]],63983:[[29848]],63984:[[34298]],63985:[[38563]],63986:[[40023]],63987:[[40607]],63988:[[26519]],63989:[[28107]],63990:[[33256]],63991:[[31435]],63992:[[31520]],63993:[[31890]],63994:[[29376]],63995:[[28825]],63996:[[35672]],63997:[[20160]],63998:[[33590]],63999:[[21050]],194816:[[27966]],194817:[[28023]],194818:[[27969]],194819:[[28009]],194820:[[28024]],194821:[[28037]],194822:[[146718]],194823:[[27956]],194824:[[28207]],194825:[[28270]],194826:[[15667]],194827:[[28363]],194828:[[28359]],194829:[[147153]],194830:[[28153]],194831:[[28526]],194832:[[147294]],194833:[[147342]],194834:[[28614]],194835:[[28729]],194836:[[28702]],194837:[[28699]],194838:[[15766]],194839:[[28746]],194840:[[28797]],194841:[[28791]],194842:[[28845]],194843:[[132389]],194844:[[28997]],194845:[[148067]],194846:[[29084]],194847:[[148395]],194848:[[29224]],194849:[[29237]],194850:[[29264]],194851:[[149000]],194852:[[29312]],194853:[[29333]],194854:[[149301]],194855:[[149524]],194856:[[29562]],194857:[[29579]],194858:[[16044]],194859:[[29605]],194860:[[16056]],194861:[[16056]],194862:[[29767]],194863:[[29788]],194864:[[29809]],194865:[[29829]],194866:[[29898]],194867:[[16155]],194868:[[29988]],194869:[[150582]],194870:[[30014]],194871:[[150674]],194872:[[30064]],194873:[[139679]],194874:[[30224]],194875:[[151457]],194876:[[151480]],194877:[[151620]],194878:[[16380]],194879:[[16392]],194880:[[30452]],194881:[[151795]],194882:[[151794]],194883:[[151833]],194884:[[151859]],194885:[[30494]],194886:[[30495]],194887:[[30495]],194888:[[30538]],194889:[[16441]],194890:[[30603]],194891:[[16454]],194892:[[16534]],194893:[[152605]],194894:[[30798]],194895:[[30860]],194896:[[30924]],194897:[[16611]],194898:[[153126]],194899:[[31062]],194900:[[153242]],194901:[[153285]],194902:[[31119]],194903:[[31211]],194904:[[16687]],194905:[[31296]],194906:[[31306]],194907:[[31311]],194908:[[153980]],194909:[[154279]],194910:[[154279]],194911:[[31470]],194912:[[16898]],194913:[[154539]],194914:[[31686]],194915:[[31689]],194916:[[16935]],194917:[[154752]],194918:[[31954]],194919:[[17056]],194920:[[31976]],194921:[[31971]],194922:[[32000]],194923:[[155526]],194924:[[32099]],194925:[[17153]],194926:[[32199]],194927:[[32258]],194928:[[32325]],194929:[[17204]],194930:[[156200]],194931:[[156231]],194932:[[17241]],194933:[[156377]],194934:[[32634]],194935:[[156478]],194936:[[32661]],194937:[[32762]],194938:[[32773]],194939:[[156890]],194940:[[156963]],194941:[[32864]],194942:[[157096]],194943:[[32880]],194944:[[144223]],194945:[[17365]],194946:[[32946]],194947:[[33027]],194948:[[17419]],194949:[[33086]],194950:[[23221]],194951:[[157607]],194952:[[157621]],194953:[[144275]],194954:[[144284]],194955:[[33281]],194956:[[33284]],194957:[[36766]],194958:[[17515]],194959:[[33425]],194960:[[33419]],194961:[[33437]],194962:[[21171]],194963:[[33457]],194964:[[33459]],194965:[[33469]],194966:[[33510]],194967:[[158524]],194968:[[33509]],194969:[[33565]],194970:[[33635]],194971:[[33709]],194972:[[33571]],194973:[[33725]],194974:[[33767]],194975:[[33879]],194976:[[33619]],194977:[[33738]],194978:[[33740]],194979:[[33756]],194980:[[158774]],194981:[[159083]],194982:[[158933]],194983:[[17707]],194984:[[34033]],194985:[[34035]],194986:[[34070]],194987:[[160714]],194988:[[34148]],194989:[[159532]],194990:[[17757]],194991:[[17761]],194992:[[159665]],194993:[[159954]],194994:[[17771]],194995:[[34384]],194996:[[34396]],194997:[[34407]],194998:[[34409]],194999:[[34473]],195000:[[34440]],195001:[[34574]],195002:[[34530]],195003:[[34681]],195004:[[34600]],195005:[[34667]],195006:[[34694]],195007:[[17879]],195008:[[34785]],195009:[[34817]],195010:[[17913]],195011:[[34912]],195012:[[34915]],195013:[[161383]],195014:[[35031]],195015:[[35038]],195016:[[17973]],195017:[[35066]],195018:[[13499]],195019:[[161966]],195020:[[162150]],195021:[[18110]],195022:[[18119]],195023:[[35488]],195024:[[35565]],195025:[[35722]],195026:[[35925]],195027:[[162984]],195028:[[36011]],195029:[[36033]],195030:[[36123]],195031:[[36215]],195032:[[163631]],195033:[[133124]],195034:[[36299]],195035:[[36284]],195036:[[36336]],195037:[[133342]],195038:[[36564]],195039:[[36664]],195040:[[165330]],195041:[[165357]],195042:[[37012]],195043:[[37105]],195044:[[37137]],195045:[[165678]],195046:[[37147]],195047:[[37432]],195048:[[37591]],195049:[[37592]],195050:[[37500]],195051:[[37881]],195052:[[37909]],195053:[[166906]],195054:[[38283]],195055:[[18837]],195056:[[38327]],195057:[[167287]],195058:[[18918]],195059:[[38595]],195060:[[23986]],195061:[[38691]],195062:[[168261]],195063:[[168474]],195064:[[19054]],195065:[[19062]],195066:[[38880]],195067:[[168970]],195068:[[19122]],195069:[[169110]],195070:[[38923]],195071:[[38923]]}, +64000:{64000:[[20999]],64001:[[24230]],64002:[[25299]],64003:[[31958]],64004:[[23429]],64005:[[27934]],64006:[[26292]],64007:[[36667]],64008:[[34892]],64009:[[38477]],64010:[[35211]],64011:[[24275]],64012:[[20800]],64013:[[21952]],64016:[[22618]],64018:[[26228]],64021:[[20958]],64022:[[29482]],64023:[[30410]],64024:[[31036]],64025:[[31070]],64026:[[31077]],64027:[[31119]],64028:[[38742]],64029:[[31934]],64030:[[32701]],64032:[[34322]],64034:[[35576]],64037:[[36920]],64038:[[37117]],64042:[[39151]],64043:[[39164]],64044:[[39208]],64045:[[40372]],64046:[[37086]],64047:[[38583]],64048:[[20398]],64049:[[20711]],64050:[[20813]],64051:[[21193]],64052:[[21220]],64053:[[21329]],64054:[[21917]],64055:[[22022]],64056:[[22120]],64057:[[22592]],64058:[[22696]],64059:[[23652]],64060:[[23662]],64061:[[24724]],64062:[[24936]],64063:[[24974]],64064:[[25074]],64065:[[25935]],64066:[[26082]],64067:[[26257]],64068:[[26757]],64069:[[28023]],64070:[[28186]],64071:[[28450]],64072:[[29038]],64073:[[29227]],64074:[[29730]],64075:[[30865]],64076:[[31038]],64077:[[31049]],64078:[[31048]],64079:[[31056]],64080:[[31062]],64081:[[31069]],64082:[[31117]],64083:[[31118]],64084:[[31296]],64085:[[31361]],64086:[[31680]],64087:[[32244]],64088:[[32265]],64089:[[32321]],64090:[[32626]],64091:[[32773]],64092:[[33261]],64093:[[33401]],64094:[[33401]],64095:[[33879]],64096:[[35088]],64097:[[35222]],64098:[[35585]],64099:[[35641]],64100:[[36051]],64101:[[36104]],64102:[[36790]],64103:[[36920]],64104:[[38627]],64105:[[38911]],64106:[[38971]],64107:[[24693]],64108:[[148206]],64109:[[33304]],64112:[[20006]],64113:[[20917]],64114:[[20840]],64115:[[20352]],64116:[[20805]],64117:[[20864]],64118:[[21191]],64119:[[21242]],64120:[[21917]],64121:[[21845]],64122:[[21913]],64123:[[21986]],64124:[[22618]],64125:[[22707]],64126:[[22852]],64127:[[22868]],64128:[[23138]],64129:[[23336]],64130:[[24274]],64131:[[24281]],64132:[[24425]],64133:[[24493]],64134:[[24792]],64135:[[24910]],64136:[[24840]],64137:[[24974]],64138:[[24928]],64139:[[25074]],64140:[[25140]],64141:[[25540]],64142:[[25628]],64143:[[25682]],64144:[[25942]],64145:[[26228]],64146:[[26391]],64147:[[26395]],64148:[[26454]],64149:[[27513]],64150:[[27578]],64151:[[27969]],64152:[[28379]],64153:[[28363]],64154:[[28450]],64155:[[28702]],64156:[[29038]],64157:[[30631]],64158:[[29237]],64159:[[29359]],64160:[[29482]],64161:[[29809]],64162:[[29958]],64163:[[30011]],64164:[[30237]],64165:[[30239]],64166:[[30410]],64167:[[30427]],64168:[[30452]],64169:[[30538]],64170:[[30528]],64171:[[30924]],64172:[[31409]],64173:[[31680]],64174:[[31867]],64175:[[32091]],64176:[[32244]],64177:[[32574]],64178:[[32773]],64179:[[33618]],64180:[[33775]],64181:[[34681]],64182:[[35137]],64183:[[35206]],64184:[[35222]],64185:[[35519]],64186:[[35576]],64187:[[35531]],64188:[[35585]],64189:[[35582]],64190:[[35565]],64191:[[35641]],64192:[[35722]],64193:[[36104]],64194:[[36664]],64195:[[36978]],64196:[[37273]],64197:[[37494]],64198:[[38524]],64199:[[38627]],64200:[[38742]],64201:[[38875]],64202:[[38911]],64203:[[38923]],64204:[[38971]],64205:[[39698]],64206:[[40860]],64207:[[141386]],64208:[[141380]],64209:[[144341]],64210:[[15261]],64211:[[16408]],64212:[[16441]],64213:[[152137]],64214:[[154832]],64215:[[163539]],64216:[[40771]],64217:[[40846]],195072:[[38953]],195073:[[169398]],195074:[[39138]],195075:[[19251]],195076:[[39209]],195077:[[39335]],195078:[[39362]],195079:[[39422]],195080:[[19406]],195081:[[170800]],195082:[[39698]],195083:[[40000]],195084:[[40189]],195085:[[19662]],195086:[[19693]],195087:[[40295]],195088:[[172238]],195089:[[19704]],195090:[[172293]],195091:[[172558]],195092:[[172689]],195093:[[40635]],195094:[[19798]],195095:[[40697]],195096:[[40702]],195097:[[40709]],195098:[[40719]],195099:[[40726]],195100:[[40763]],195101:[[173568]]}, +64256:{64256:[[102,102],256],64257:[[102,105],256],64258:[[102,108],256],64259:[[102,102,105],256],64260:[[102,102,108],256],64261:[[383,116],256],64262:[[115,116],256],64275:[[1396,1398],256],64276:[[1396,1381],256],64277:[[1396,1387],256],64278:[[1406,1398],256],64279:[[1396,1389],256],64285:[[1497,1460],512],64286:[,26],64287:[[1522,1463],512],64288:[[1506],256],64289:[[1488],256],64290:[[1491],256],64291:[[1492],256],64292:[[1499],256],64293:[[1500],256],64294:[[1501],256],64295:[[1512],256],64296:[[1514],256],64297:[[43],256],64298:[[1513,1473],512],64299:[[1513,1474],512],64300:[[64329,1473],512],64301:[[64329,1474],512],64302:[[1488,1463],512],64303:[[1488,1464],512],64304:[[1488,1468],512],64305:[[1489,1468],512],64306:[[1490,1468],512],64307:[[1491,1468],512],64308:[[1492,1468],512],64309:[[1493,1468],512],64310:[[1494,1468],512],64312:[[1496,1468],512],64313:[[1497,1468],512],64314:[[1498,1468],512],64315:[[1499,1468],512],64316:[[1500,1468],512],64318:[[1502,1468],512],64320:[[1504,1468],512],64321:[[1505,1468],512],64323:[[1507,1468],512],64324:[[1508,1468],512],64326:[[1510,1468],512],64327:[[1511,1468],512],64328:[[1512,1468],512],64329:[[1513,1468],512],64330:[[1514,1468],512],64331:[[1493,1465],512],64332:[[1489,1471],512],64333:[[1499,1471],512],64334:[[1508,1471],512],64335:[[1488,1500],256],64336:[[1649],256],64337:[[1649],256],64338:[[1659],256],64339:[[1659],256],64340:[[1659],256],64341:[[1659],256],64342:[[1662],256],64343:[[1662],256],64344:[[1662],256],64345:[[1662],256],64346:[[1664],256],64347:[[1664],256],64348:[[1664],256],64349:[[1664],256],64350:[[1658],256],64351:[[1658],256],64352:[[1658],256],64353:[[1658],256],64354:[[1663],256],64355:[[1663],256],64356:[[1663],256],64357:[[1663],256],64358:[[1657],256],64359:[[1657],256],64360:[[1657],256],64361:[[1657],256],64362:[[1700],256],64363:[[1700],256],64364:[[1700],256],64365:[[1700],256],64366:[[1702],256],64367:[[1702],256],64368:[[1702],256],64369:[[1702],256],64370:[[1668],256],64371:[[1668],256],64372:[[1668],256],64373:[[1668],256],64374:[[1667],256],64375:[[1667],256],64376:[[1667],256],64377:[[1667],256],64378:[[1670],256],64379:[[1670],256],64380:[[1670],256],64381:[[1670],256],64382:[[1671],256],64383:[[1671],256],64384:[[1671],256],64385:[[1671],256],64386:[[1677],256],64387:[[1677],256],64388:[[1676],256],64389:[[1676],256],64390:[[1678],256],64391:[[1678],256],64392:[[1672],256],64393:[[1672],256],64394:[[1688],256],64395:[[1688],256],64396:[[1681],256],64397:[[1681],256],64398:[[1705],256],64399:[[1705],256],64400:[[1705],256],64401:[[1705],256],64402:[[1711],256],64403:[[1711],256],64404:[[1711],256],64405:[[1711],256],64406:[[1715],256],64407:[[1715],256],64408:[[1715],256],64409:[[1715],256],64410:[[1713],256],64411:[[1713],256],64412:[[1713],256],64413:[[1713],256],64414:[[1722],256],64415:[[1722],256],64416:[[1723],256],64417:[[1723],256],64418:[[1723],256],64419:[[1723],256],64420:[[1728],256],64421:[[1728],256],64422:[[1729],256],64423:[[1729],256],64424:[[1729],256],64425:[[1729],256],64426:[[1726],256],64427:[[1726],256],64428:[[1726],256],64429:[[1726],256],64430:[[1746],256],64431:[[1746],256],64432:[[1747],256],64433:[[1747],256],64467:[[1709],256],64468:[[1709],256],64469:[[1709],256],64470:[[1709],256],64471:[[1735],256],64472:[[1735],256],64473:[[1734],256],64474:[[1734],256],64475:[[1736],256],64476:[[1736],256],64477:[[1655],256],64478:[[1739],256],64479:[[1739],256],64480:[[1733],256],64481:[[1733],256],64482:[[1737],256],64483:[[1737],256],64484:[[1744],256],64485:[[1744],256],64486:[[1744],256],64487:[[1744],256],64488:[[1609],256],64489:[[1609],256],64490:[[1574,1575],256],64491:[[1574,1575],256],64492:[[1574,1749],256],64493:[[1574,1749],256],64494:[[1574,1608],256],64495:[[1574,1608],256],64496:[[1574,1735],256],64497:[[1574,1735],256],64498:[[1574,1734],256],64499:[[1574,1734],256],64500:[[1574,1736],256],64501:[[1574,1736],256],64502:[[1574,1744],256],64503:[[1574,1744],256],64504:[[1574,1744],256],64505:[[1574,1609],256],64506:[[1574,1609],256],64507:[[1574,1609],256],64508:[[1740],256],64509:[[1740],256],64510:[[1740],256],64511:[[1740],256]}, +64512:{64512:[[1574,1580],256],64513:[[1574,1581],256],64514:[[1574,1605],256],64515:[[1574,1609],256],64516:[[1574,1610],256],64517:[[1576,1580],256],64518:[[1576,1581],256],64519:[[1576,1582],256],64520:[[1576,1605],256],64521:[[1576,1609],256],64522:[[1576,1610],256],64523:[[1578,1580],256],64524:[[1578,1581],256],64525:[[1578,1582],256],64526:[[1578,1605],256],64527:[[1578,1609],256],64528:[[1578,1610],256],64529:[[1579,1580],256],64530:[[1579,1605],256],64531:[[1579,1609],256],64532:[[1579,1610],256],64533:[[1580,1581],256],64534:[[1580,1605],256],64535:[[1581,1580],256],64536:[[1581,1605],256],64537:[[1582,1580],256],64538:[[1582,1581],256],64539:[[1582,1605],256],64540:[[1587,1580],256],64541:[[1587,1581],256],64542:[[1587,1582],256],64543:[[1587,1605],256],64544:[[1589,1581],256],64545:[[1589,1605],256],64546:[[1590,1580],256],64547:[[1590,1581],256],64548:[[1590,1582],256],64549:[[1590,1605],256],64550:[[1591,1581],256],64551:[[1591,1605],256],64552:[[1592,1605],256],64553:[[1593,1580],256],64554:[[1593,1605],256],64555:[[1594,1580],256],64556:[[1594,1605],256],64557:[[1601,1580],256],64558:[[1601,1581],256],64559:[[1601,1582],256],64560:[[1601,1605],256],64561:[[1601,1609],256],64562:[[1601,1610],256],64563:[[1602,1581],256],64564:[[1602,1605],256],64565:[[1602,1609],256],64566:[[1602,1610],256],64567:[[1603,1575],256],64568:[[1603,1580],256],64569:[[1603,1581],256],64570:[[1603,1582],256],64571:[[1603,1604],256],64572:[[1603,1605],256],64573:[[1603,1609],256],64574:[[1603,1610],256],64575:[[1604,1580],256],64576:[[1604,1581],256],64577:[[1604,1582],256],64578:[[1604,1605],256],64579:[[1604,1609],256],64580:[[1604,1610],256],64581:[[1605,1580],256],64582:[[1605,1581],256],64583:[[1605,1582],256],64584:[[1605,1605],256],64585:[[1605,1609],256],64586:[[1605,1610],256],64587:[[1606,1580],256],64588:[[1606,1581],256],64589:[[1606,1582],256],64590:[[1606,1605],256],64591:[[1606,1609],256],64592:[[1606,1610],256],64593:[[1607,1580],256],64594:[[1607,1605],256],64595:[[1607,1609],256],64596:[[1607,1610],256],64597:[[1610,1580],256],64598:[[1610,1581],256],64599:[[1610,1582],256],64600:[[1610,1605],256],64601:[[1610,1609],256],64602:[[1610,1610],256],64603:[[1584,1648],256],64604:[[1585,1648],256],64605:[[1609,1648],256],64606:[[32,1612,1617],256],64607:[[32,1613,1617],256],64608:[[32,1614,1617],256],64609:[[32,1615,1617],256],64610:[[32,1616,1617],256],64611:[[32,1617,1648],256],64612:[[1574,1585],256],64613:[[1574,1586],256],64614:[[1574,1605],256],64615:[[1574,1606],256],64616:[[1574,1609],256],64617:[[1574,1610],256],64618:[[1576,1585],256],64619:[[1576,1586],256],64620:[[1576,1605],256],64621:[[1576,1606],256],64622:[[1576,1609],256],64623:[[1576,1610],256],64624:[[1578,1585],256],64625:[[1578,1586],256],64626:[[1578,1605],256],64627:[[1578,1606],256],64628:[[1578,1609],256],64629:[[1578,1610],256],64630:[[1579,1585],256],64631:[[1579,1586],256],64632:[[1579,1605],256],64633:[[1579,1606],256],64634:[[1579,1609],256],64635:[[1579,1610],256],64636:[[1601,1609],256],64637:[[1601,1610],256],64638:[[1602,1609],256],64639:[[1602,1610],256],64640:[[1603,1575],256],64641:[[1603,1604],256],64642:[[1603,1605],256],64643:[[1603,1609],256],64644:[[1603,1610],256],64645:[[1604,1605],256],64646:[[1604,1609],256],64647:[[1604,1610],256],64648:[[1605,1575],256],64649:[[1605,1605],256],64650:[[1606,1585],256],64651:[[1606,1586],256],64652:[[1606,1605],256],64653:[[1606,1606],256],64654:[[1606,1609],256],64655:[[1606,1610],256],64656:[[1609,1648],256],64657:[[1610,1585],256],64658:[[1610,1586],256],64659:[[1610,1605],256],64660:[[1610,1606],256],64661:[[1610,1609],256],64662:[[1610,1610],256],64663:[[1574,1580],256],64664:[[1574,1581],256],64665:[[1574,1582],256],64666:[[1574,1605],256],64667:[[1574,1607],256],64668:[[1576,1580],256],64669:[[1576,1581],256],64670:[[1576,1582],256],64671:[[1576,1605],256],64672:[[1576,1607],256],64673:[[1578,1580],256],64674:[[1578,1581],256],64675:[[1578,1582],256],64676:[[1578,1605],256],64677:[[1578,1607],256],64678:[[1579,1605],256],64679:[[1580,1581],256],64680:[[1580,1605],256],64681:[[1581,1580],256],64682:[[1581,1605],256],64683:[[1582,1580],256],64684:[[1582,1605],256],64685:[[1587,1580],256],64686:[[1587,1581],256],64687:[[1587,1582],256],64688:[[1587,1605],256],64689:[[1589,1581],256],64690:[[1589,1582],256],64691:[[1589,1605],256],64692:[[1590,1580],256],64693:[[1590,1581],256],64694:[[1590,1582],256],64695:[[1590,1605],256],64696:[[1591,1581],256],64697:[[1592,1605],256],64698:[[1593,1580],256],64699:[[1593,1605],256],64700:[[1594,1580],256],64701:[[1594,1605],256],64702:[[1601,1580],256],64703:[[1601,1581],256],64704:[[1601,1582],256],64705:[[1601,1605],256],64706:[[1602,1581],256],64707:[[1602,1605],256],64708:[[1603,1580],256],64709:[[1603,1581],256],64710:[[1603,1582],256],64711:[[1603,1604],256],64712:[[1603,1605],256],64713:[[1604,1580],256],64714:[[1604,1581],256],64715:[[1604,1582],256],64716:[[1604,1605],256],64717:[[1604,1607],256],64718:[[1605,1580],256],64719:[[1605,1581],256],64720:[[1605,1582],256],64721:[[1605,1605],256],64722:[[1606,1580],256],64723:[[1606,1581],256],64724:[[1606,1582],256],64725:[[1606,1605],256],64726:[[1606,1607],256],64727:[[1607,1580],256],64728:[[1607,1605],256],64729:[[1607,1648],256],64730:[[1610,1580],256],64731:[[1610,1581],256],64732:[[1610,1582],256],64733:[[1610,1605],256],64734:[[1610,1607],256],64735:[[1574,1605],256],64736:[[1574,1607],256],64737:[[1576,1605],256],64738:[[1576,1607],256],64739:[[1578,1605],256],64740:[[1578,1607],256],64741:[[1579,1605],256],64742:[[1579,1607],256],64743:[[1587,1605],256],64744:[[1587,1607],256],64745:[[1588,1605],256],64746:[[1588,1607],256],64747:[[1603,1604],256],64748:[[1603,1605],256],64749:[[1604,1605],256],64750:[[1606,1605],256],64751:[[1606,1607],256],64752:[[1610,1605],256],64753:[[1610,1607],256],64754:[[1600,1614,1617],256],64755:[[1600,1615,1617],256],64756:[[1600,1616,1617],256],64757:[[1591,1609],256],64758:[[1591,1610],256],64759:[[1593,1609],256],64760:[[1593,1610],256],64761:[[1594,1609],256],64762:[[1594,1610],256],64763:[[1587,1609],256],64764:[[1587,1610],256],64765:[[1588,1609],256],64766:[[1588,1610],256],64767:[[1581,1609],256]}, +64768:{64768:[[1581,1610],256],64769:[[1580,1609],256],64770:[[1580,1610],256],64771:[[1582,1609],256],64772:[[1582,1610],256],64773:[[1589,1609],256],64774:[[1589,1610],256],64775:[[1590,1609],256],64776:[[1590,1610],256],64777:[[1588,1580],256],64778:[[1588,1581],256],64779:[[1588,1582],256],64780:[[1588,1605],256],64781:[[1588,1585],256],64782:[[1587,1585],256],64783:[[1589,1585],256],64784:[[1590,1585],256],64785:[[1591,1609],256],64786:[[1591,1610],256],64787:[[1593,1609],256],64788:[[1593,1610],256],64789:[[1594,1609],256],64790:[[1594,1610],256],64791:[[1587,1609],256],64792:[[1587,1610],256],64793:[[1588,1609],256],64794:[[1588,1610],256],64795:[[1581,1609],256],64796:[[1581,1610],256],64797:[[1580,1609],256],64798:[[1580,1610],256],64799:[[1582,1609],256],64800:[[1582,1610],256],64801:[[1589,1609],256],64802:[[1589,1610],256],64803:[[1590,1609],256],64804:[[1590,1610],256],64805:[[1588,1580],256],64806:[[1588,1581],256],64807:[[1588,1582],256],64808:[[1588,1605],256],64809:[[1588,1585],256],64810:[[1587,1585],256],64811:[[1589,1585],256],64812:[[1590,1585],256],64813:[[1588,1580],256],64814:[[1588,1581],256],64815:[[1588,1582],256],64816:[[1588,1605],256],64817:[[1587,1607],256],64818:[[1588,1607],256],64819:[[1591,1605],256],64820:[[1587,1580],256],64821:[[1587,1581],256],64822:[[1587,1582],256],64823:[[1588,1580],256],64824:[[1588,1581],256],64825:[[1588,1582],256],64826:[[1591,1605],256],64827:[[1592,1605],256],64828:[[1575,1611],256],64829:[[1575,1611],256],64848:[[1578,1580,1605],256],64849:[[1578,1581,1580],256],64850:[[1578,1581,1580],256],64851:[[1578,1581,1605],256],64852:[[1578,1582,1605],256],64853:[[1578,1605,1580],256],64854:[[1578,1605,1581],256],64855:[[1578,1605,1582],256],64856:[[1580,1605,1581],256],64857:[[1580,1605,1581],256],64858:[[1581,1605,1610],256],64859:[[1581,1605,1609],256],64860:[[1587,1581,1580],256],64861:[[1587,1580,1581],256],64862:[[1587,1580,1609],256],64863:[[1587,1605,1581],256],64864:[[1587,1605,1581],256],64865:[[1587,1605,1580],256],64866:[[1587,1605,1605],256],64867:[[1587,1605,1605],256],64868:[[1589,1581,1581],256],64869:[[1589,1581,1581],256],64870:[[1589,1605,1605],256],64871:[[1588,1581,1605],256],64872:[[1588,1581,1605],256],64873:[[1588,1580,1610],256],64874:[[1588,1605,1582],256],64875:[[1588,1605,1582],256],64876:[[1588,1605,1605],256],64877:[[1588,1605,1605],256],64878:[[1590,1581,1609],256],64879:[[1590,1582,1605],256],64880:[[1590,1582,1605],256],64881:[[1591,1605,1581],256],64882:[[1591,1605,1581],256],64883:[[1591,1605,1605],256],64884:[[1591,1605,1610],256],64885:[[1593,1580,1605],256],64886:[[1593,1605,1605],256],64887:[[1593,1605,1605],256],64888:[[1593,1605,1609],256],64889:[[1594,1605,1605],256],64890:[[1594,1605,1610],256],64891:[[1594,1605,1609],256],64892:[[1601,1582,1605],256],64893:[[1601,1582,1605],256],64894:[[1602,1605,1581],256],64895:[[1602,1605,1605],256],64896:[[1604,1581,1605],256],64897:[[1604,1581,1610],256],64898:[[1604,1581,1609],256],64899:[[1604,1580,1580],256],64900:[[1604,1580,1580],256],64901:[[1604,1582,1605],256],64902:[[1604,1582,1605],256],64903:[[1604,1605,1581],256],64904:[[1604,1605,1581],256],64905:[[1605,1581,1580],256],64906:[[1605,1581,1605],256],64907:[[1605,1581,1610],256],64908:[[1605,1580,1581],256],64909:[[1605,1580,1605],256],64910:[[1605,1582,1580],256],64911:[[1605,1582,1605],256],64914:[[1605,1580,1582],256],64915:[[1607,1605,1580],256],64916:[[1607,1605,1605],256],64917:[[1606,1581,1605],256],64918:[[1606,1581,1609],256],64919:[[1606,1580,1605],256],64920:[[1606,1580,1605],256],64921:[[1606,1580,1609],256],64922:[[1606,1605,1610],256],64923:[[1606,1605,1609],256],64924:[[1610,1605,1605],256],64925:[[1610,1605,1605],256],64926:[[1576,1582,1610],256],64927:[[1578,1580,1610],256],64928:[[1578,1580,1609],256],64929:[[1578,1582,1610],256],64930:[[1578,1582,1609],256],64931:[[1578,1605,1610],256],64932:[[1578,1605,1609],256],64933:[[1580,1605,1610],256],64934:[[1580,1581,1609],256],64935:[[1580,1605,1609],256],64936:[[1587,1582,1609],256],64937:[[1589,1581,1610],256],64938:[[1588,1581,1610],256],64939:[[1590,1581,1610],256],64940:[[1604,1580,1610],256],64941:[[1604,1605,1610],256],64942:[[1610,1581,1610],256],64943:[[1610,1580,1610],256],64944:[[1610,1605,1610],256],64945:[[1605,1605,1610],256],64946:[[1602,1605,1610],256],64947:[[1606,1581,1610],256],64948:[[1602,1605,1581],256],64949:[[1604,1581,1605],256],64950:[[1593,1605,1610],256],64951:[[1603,1605,1610],256],64952:[[1606,1580,1581],256],64953:[[1605,1582,1610],256],64954:[[1604,1580,1605],256],64955:[[1603,1605,1605],256],64956:[[1604,1580,1605],256],64957:[[1606,1580,1581],256],64958:[[1580,1581,1610],256],64959:[[1581,1580,1610],256],64960:[[1605,1580,1610],256],64961:[[1601,1605,1610],256],64962:[[1576,1581,1610],256],64963:[[1603,1605,1605],256],64964:[[1593,1580,1605],256],64965:[[1589,1605,1605],256],64966:[[1587,1582,1610],256],64967:[[1606,1580,1610],256],65008:[[1589,1604,1746],256],65009:[[1602,1604,1746],256],65010:[[1575,1604,1604,1607],256],65011:[[1575,1603,1576,1585],256],65012:[[1605,1581,1605,1583],256],65013:[[1589,1604,1593,1605],256],65014:[[1585,1587,1608,1604],256],65015:[[1593,1604,1610,1607],256],65016:[[1608,1587,1604,1605],256],65017:[[1589,1604,1609],256],65018:[[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605],256],65019:[[1580,1604,32,1580,1604,1575,1604,1607],256],65020:[[1585,1740,1575,1604],256]}, +65024:{65040:[[44],256],65041:[[12289],256],65042:[[12290],256],65043:[[58],256],65044:[[59],256],65045:[[33],256],65046:[[63],256],65047:[[12310],256],65048:[[12311],256],65049:[[8230],256],65056:[,230],65057:[,230],65058:[,230],65059:[,230],65060:[,230],65061:[,230],65062:[,230],65063:[,220],65064:[,220],65065:[,220],65066:[,220],65067:[,220],65068:[,220],65069:[,220],65072:[[8229],256],65073:[[8212],256],65074:[[8211],256],65075:[[95],256],65076:[[95],256],65077:[[40],256],65078:[[41],256],65079:[[123],256],65080:[[125],256],65081:[[12308],256],65082:[[12309],256],65083:[[12304],256],65084:[[12305],256],65085:[[12298],256],65086:[[12299],256],65087:[[12296],256],65088:[[12297],256],65089:[[12300],256],65090:[[12301],256],65091:[[12302],256],65092:[[12303],256],65095:[[91],256],65096:[[93],256],65097:[[8254],256],65098:[[8254],256],65099:[[8254],256],65100:[[8254],256],65101:[[95],256],65102:[[95],256],65103:[[95],256],65104:[[44],256],65105:[[12289],256],65106:[[46],256],65108:[[59],256],65109:[[58],256],65110:[[63],256],65111:[[33],256],65112:[[8212],256],65113:[[40],256],65114:[[41],256],65115:[[123],256],65116:[[125],256],65117:[[12308],256],65118:[[12309],256],65119:[[35],256],65120:[[38],256],65121:[[42],256],65122:[[43],256],65123:[[45],256],65124:[[60],256],65125:[[62],256],65126:[[61],256],65128:[[92],256],65129:[[36],256],65130:[[37],256],65131:[[64],256],65136:[[32,1611],256],65137:[[1600,1611],256],65138:[[32,1612],256],65140:[[32,1613],256],65142:[[32,1614],256],65143:[[1600,1614],256],65144:[[32,1615],256],65145:[[1600,1615],256],65146:[[32,1616],256],65147:[[1600,1616],256],65148:[[32,1617],256],65149:[[1600,1617],256],65150:[[32,1618],256],65151:[[1600,1618],256],65152:[[1569],256],65153:[[1570],256],65154:[[1570],256],65155:[[1571],256],65156:[[1571],256],65157:[[1572],256],65158:[[1572],256],65159:[[1573],256],65160:[[1573],256],65161:[[1574],256],65162:[[1574],256],65163:[[1574],256],65164:[[1574],256],65165:[[1575],256],65166:[[1575],256],65167:[[1576],256],65168:[[1576],256],65169:[[1576],256],65170:[[1576],256],65171:[[1577],256],65172:[[1577],256],65173:[[1578],256],65174:[[1578],256],65175:[[1578],256],65176:[[1578],256],65177:[[1579],256],65178:[[1579],256],65179:[[1579],256],65180:[[1579],256],65181:[[1580],256],65182:[[1580],256],65183:[[1580],256],65184:[[1580],256],65185:[[1581],256],65186:[[1581],256],65187:[[1581],256],65188:[[1581],256],65189:[[1582],256],65190:[[1582],256],65191:[[1582],256],65192:[[1582],256],65193:[[1583],256],65194:[[1583],256],65195:[[1584],256],65196:[[1584],256],65197:[[1585],256],65198:[[1585],256],65199:[[1586],256],65200:[[1586],256],65201:[[1587],256],65202:[[1587],256],65203:[[1587],256],65204:[[1587],256],65205:[[1588],256],65206:[[1588],256],65207:[[1588],256],65208:[[1588],256],65209:[[1589],256],65210:[[1589],256],65211:[[1589],256],65212:[[1589],256],65213:[[1590],256],65214:[[1590],256],65215:[[1590],256],65216:[[1590],256],65217:[[1591],256],65218:[[1591],256],65219:[[1591],256],65220:[[1591],256],65221:[[1592],256],65222:[[1592],256],65223:[[1592],256],65224:[[1592],256],65225:[[1593],256],65226:[[1593],256],65227:[[1593],256],65228:[[1593],256],65229:[[1594],256],65230:[[1594],256],65231:[[1594],256],65232:[[1594],256],65233:[[1601],256],65234:[[1601],256],65235:[[1601],256],65236:[[1601],256],65237:[[1602],256],65238:[[1602],256],65239:[[1602],256],65240:[[1602],256],65241:[[1603],256],65242:[[1603],256],65243:[[1603],256],65244:[[1603],256],65245:[[1604],256],65246:[[1604],256],65247:[[1604],256],65248:[[1604],256],65249:[[1605],256],65250:[[1605],256],65251:[[1605],256],65252:[[1605],256],65253:[[1606],256],65254:[[1606],256],65255:[[1606],256],65256:[[1606],256],65257:[[1607],256],65258:[[1607],256],65259:[[1607],256],65260:[[1607],256],65261:[[1608],256],65262:[[1608],256],65263:[[1609],256],65264:[[1609],256],65265:[[1610],256],65266:[[1610],256],65267:[[1610],256],65268:[[1610],256],65269:[[1604,1570],256],65270:[[1604,1570],256],65271:[[1604,1571],256],65272:[[1604,1571],256],65273:[[1604,1573],256],65274:[[1604,1573],256],65275:[[1604,1575],256],65276:[[1604,1575],256]}, +65280:{65281:[[33],256],65282:[[34],256],65283:[[35],256],65284:[[36],256],65285:[[37],256],65286:[[38],256],65287:[[39],256],65288:[[40],256],65289:[[41],256],65290:[[42],256],65291:[[43],256],65292:[[44],256],65293:[[45],256],65294:[[46],256],65295:[[47],256],65296:[[48],256],65297:[[49],256],65298:[[50],256],65299:[[51],256],65300:[[52],256],65301:[[53],256],65302:[[54],256],65303:[[55],256],65304:[[56],256],65305:[[57],256],65306:[[58],256],65307:[[59],256],65308:[[60],256],65309:[[61],256],65310:[[62],256],65311:[[63],256],65312:[[64],256],65313:[[65],256],65314:[[66],256],65315:[[67],256],65316:[[68],256],65317:[[69],256],65318:[[70],256],65319:[[71],256],65320:[[72],256],65321:[[73],256],65322:[[74],256],65323:[[75],256],65324:[[76],256],65325:[[77],256],65326:[[78],256],65327:[[79],256],65328:[[80],256],65329:[[81],256],65330:[[82],256],65331:[[83],256],65332:[[84],256],65333:[[85],256],65334:[[86],256],65335:[[87],256],65336:[[88],256],65337:[[89],256],65338:[[90],256],65339:[[91],256],65340:[[92],256],65341:[[93],256],65342:[[94],256],65343:[[95],256],65344:[[96],256],65345:[[97],256],65346:[[98],256],65347:[[99],256],65348:[[100],256],65349:[[101],256],65350:[[102],256],65351:[[103],256],65352:[[104],256],65353:[[105],256],65354:[[106],256],65355:[[107],256],65356:[[108],256],65357:[[109],256],65358:[[110],256],65359:[[111],256],65360:[[112],256],65361:[[113],256],65362:[[114],256],65363:[[115],256],65364:[[116],256],65365:[[117],256],65366:[[118],256],65367:[[119],256],65368:[[120],256],65369:[[121],256],65370:[[122],256],65371:[[123],256],65372:[[124],256],65373:[[125],256],65374:[[126],256],65375:[[10629],256],65376:[[10630],256],65377:[[12290],256],65378:[[12300],256],65379:[[12301],256],65380:[[12289],256],65381:[[12539],256],65382:[[12530],256],65383:[[12449],256],65384:[[12451],256],65385:[[12453],256],65386:[[12455],256],65387:[[12457],256],65388:[[12515],256],65389:[[12517],256],65390:[[12519],256],65391:[[12483],256],65392:[[12540],256],65393:[[12450],256],65394:[[12452],256],65395:[[12454],256],65396:[[12456],256],65397:[[12458],256],65398:[[12459],256],65399:[[12461],256],65400:[[12463],256],65401:[[12465],256],65402:[[12467],256],65403:[[12469],256],65404:[[12471],256],65405:[[12473],256],65406:[[12475],256],65407:[[12477],256],65408:[[12479],256],65409:[[12481],256],65410:[[12484],256],65411:[[12486],256],65412:[[12488],256],65413:[[12490],256],65414:[[12491],256],65415:[[12492],256],65416:[[12493],256],65417:[[12494],256],65418:[[12495],256],65419:[[12498],256],65420:[[12501],256],65421:[[12504],256],65422:[[12507],256],65423:[[12510],256],65424:[[12511],256],65425:[[12512],256],65426:[[12513],256],65427:[[12514],256],65428:[[12516],256],65429:[[12518],256],65430:[[12520],256],65431:[[12521],256],65432:[[12522],256],65433:[[12523],256],65434:[[12524],256],65435:[[12525],256],65436:[[12527],256],65437:[[12531],256],65438:[[12441],256],65439:[[12442],256],65440:[[12644],256],65441:[[12593],256],65442:[[12594],256],65443:[[12595],256],65444:[[12596],256],65445:[[12597],256],65446:[[12598],256],65447:[[12599],256],65448:[[12600],256],65449:[[12601],256],65450:[[12602],256],65451:[[12603],256],65452:[[12604],256],65453:[[12605],256],65454:[[12606],256],65455:[[12607],256],65456:[[12608],256],65457:[[12609],256],65458:[[12610],256],65459:[[12611],256],65460:[[12612],256],65461:[[12613],256],65462:[[12614],256],65463:[[12615],256],65464:[[12616],256],65465:[[12617],256],65466:[[12618],256],65467:[[12619],256],65468:[[12620],256],65469:[[12621],256],65470:[[12622],256],65474:[[12623],256],65475:[[12624],256],65476:[[12625],256],65477:[[12626],256],65478:[[12627],256],65479:[[12628],256],65482:[[12629],256],65483:[[12630],256],65484:[[12631],256],65485:[[12632],256],65486:[[12633],256],65487:[[12634],256],65490:[[12635],256],65491:[[12636],256],65492:[[12637],256],65493:[[12638],256],65494:[[12639],256],65495:[[12640],256],65498:[[12641],256],65499:[[12642],256],65500:[[12643],256],65504:[[162],256],65505:[[163],256],65506:[[172],256],65507:[[175],256],65508:[[166],256],65509:[[165],256],65510:[[8361],256],65512:[[9474],256],65513:[[8592],256],65514:[[8593],256],65515:[[8594],256],65516:[[8595],256],65517:[[9632],256],65518:[[9675],256]} + +}; + + /***** Module to export */ + var unorm = { + nfc: nfc, + nfd: nfd, + nfkc: nfkc, + nfkd: nfkd + }; + + /*globals module:true,define:true*/ + + // CommonJS + if (true) { + module.exports = unorm; + + // AMD + } else {} + + /***** Export as shim for String::normalize method *****/ + /* + http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21 + + 21.1.3.12 String.prototype.normalize(form="NFC") + When the normalize method is called with one argument form, the following steps are taken: + + 1. Let O be CheckObjectCoercible(this value). + 2. Let S be ToString(O). + 3. ReturnIfAbrupt(S). + 4. If form is not provided or undefined let form be "NFC". + 5. Let f be ToString(form). + 6. ReturnIfAbrupt(f). + 7. If f is not one of "NFC", "NFD", "NFKC", or "NFKD", then throw a RangeError Exception. + 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #15, UnicodeNormalizatoin Forms. + 9. Return ns. + + The length property of the normalize method is 0. + + *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method. + */ + unorm.shimApplied = false; + + if (!String.prototype.normalize) { + Object.defineProperty(String.prototype, "normalize", { + enumerable: false, + configurable: true, + writable: true, + value: function normalize (/*form*/) { + + var str = "" + this; + var form = arguments[0] === undefined ? "NFC" : arguments[0]; + + if (this === null || this === undefined) { + throw new TypeError("Cannot call method on " + Object.prototype.toString.call(this)); + } + + if (form === "NFC") { + return unorm.nfc(str); + } else if (form === "NFD") { + return unorm.nfd(str); + } else if (form === "NFKC") { + return unorm.nfkc(str); + } else if (form === "NFKD") { + return unorm.nfkd(str); + } else { + throw new RangeError("Invalid normalization form: " + form); + } + } + }); + + unorm.shimApplied = true; + } +}(this)); + + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/index.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/index.js ***! + \********************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +module.exports = __webpack_require__(/*! ./lib/uslug */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/uslug.js"); + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/L.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/L.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +/* + * List of Unicode code that are flagged as letter. + * + * Contains Unicode code of: + * - Lu = Letter, uppercase + * - Ll = Letter, lowercase + * - Lt = Letter, titlecase + * - Lm = Letter, modifier + * - Lo = Letter, other + * + * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt + * + */ + +exports.L = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 170, 181, 186, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 736, 737, 738, 739, 740, 748, 750, 880, 881, 882, 883, 884, 886, 887, 890, 891, 892, 893, 895, 902, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1369, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1520, 1521, 1522, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1646, 1647, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1765, 1766, 1774, 1775, 1786, 1787, 1788, 1791, 1808, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1969, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2036, 2037, 2042, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2074, 2084, 2088, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2384, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2447, 2448, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2482, 2486, 2487, 2488, 2489, 2493, 2510, 2524, 2525, 2527, 2528, 2529, 2544, 2545, 2565, 2566, 2567, 2568, 2569, 2570, 2575, 2576, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2650, 2651, 2652, 2654, 2674, 2675, 2676, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2703, 2704, 2705, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2738, 2739, 2741, 2742, 2743, 2744, 2745, 2749, 2768, 2784, 2785, 2809, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2831, 2832, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2866, 2867, 2869, 2870, 2871, 2872, 2873, 2877, 2908, 2909, 2911, 2912, 2913, 2929, 2947, 2949, 2950, 2951, 2952, 2953, 2954, 2958, 2959, 2960, 2962, 2963, 2964, 2965, 2969, 2970, 2972, 2974, 2975, 2979, 2980, 2984, 2985, 2986, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3024, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3086, 3087, 3088, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3133, 3160, 3161, 3162, 3168, 3169, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3214, 3215, 3216, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3253, 3254, 3255, 3256, 3257, 3261, 3294, 3296, 3297, 3313, 3314, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3342, 3343, 3344, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3389, 3406, 3423, 3424, 3425, 3450, 3451, 3452, 3453, 3454, 3455, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3517, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3634, 3635, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3713, 3714, 3716, 3719, 3720, 3722, 3725, 3732, 3733, 3734, 3735, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3745, 3746, 3747, 3749, 3751, 3754, 3755, 3757, 3758, 3759, 3760, 3762, 3763, 3773, 3776, 3777, 3778, 3779, 3780, 3782, 3804, 3805, 3806, 3807, 3840, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3976, 3977, 3978, 3979, 3980, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4159, 4176, 4177, 4178, 4179, 4180, 4181, 4186, 4187, 4188, 4189, 4193, 4197, 4198, 4206, 4207, 4208, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4238, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4295, 4301, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4682, 4683, 4684, 4685, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4696, 4698, 4699, 4700, 4701, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4746, 4747, 4748, 4749, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4786, 4787, 4788, 4789, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4800, 4802, 4803, 4804, 4805, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4882, 4883, 4884, 4885, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5112, 5113, 5114, 5115, 5116, 5117, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5902, 5903, 5904, 5905, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5998, 5999, 6000, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6103, 6108, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6314, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6512, 6513, 6514, 6515, 6516, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6823, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7086, 7087, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7245, 7246, 7247, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7401, 7402, 7403, 7404, 7406, 7407, 7408, 7409, 7413, 7414, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7960, 7961, 7962, 7963, 7964, 7965, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8008, 8009, 8010, 8011, 8012, 8013, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8025, 8027, 8029, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8126, 8130, 8131, 8132, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8144, 8145, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8178, 8179, 8180, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8305, 8319, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8450, 8455, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8469, 8473, 8474, 8475, 8476, 8477, 8484, 8486, 8488, 8490, 8491, 8492, 8493, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8508, 8509, 8510, 8511, 8517, 8518, 8519, 8520, 8521, 8526, 8579, 8580, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11499, 11500, 11501, 11502, 11506, 11507, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11559, 11565, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11631, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11823, 12293, 12294, 12337, 12338, 12339, 12340, 12341, 12347, 12348, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12445, 12446, 12447, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12540, 12541, 12542, 12543, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 13312, 19893, 19968, 40917, 40960, 40961, 40962, 40963, 40964, 40965, 40966, 40967, 40968, 40969, 40970, 40971, 40972, 40973, 40974, 40975, 40976, 40977, 40978, 40979, 40980, 40981, 40982, 40983, 40984, 40985, 40986, 40987, 40988, 40989, 40990, 40991, 40992, 40993, 40994, 40995, 40996, 40997, 40998, 40999, 41000, 41001, 41002, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 41013, 41014, 41015, 41016, 41017, 41018, 41019, 41020, 41021, 41022, 41023, 41024, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038, 41039, 41040, 41041, 41042, 41043, 41044, 41045, 41046, 41047, 41048, 41049, 41050, 41051, 41052, 41053, 41054, 41055, 41056, 41057, 41058, 41059, 41060, 41061, 41062, 41063, 41064, 41065, 41066, 41067, 41068, 41069, 41070, 41071, 41072, 41073, 41074, 41075, 41076, 41077, 41078, 41079, 41080, 41081, 41082, 41083, 41084, 41085, 41086, 41087, 41088, 41089, 41090, 41091, 41092, 41093, 41094, 41095, 41096, 41097, 41098, 41099, 41100, 41101, 41102, 41103, 41104, 41105, 41106, 41107, 41108, 41109, 41110, 41111, 41112, 41113, 41114, 41115, 41116, 41117, 41118, 41119, 41120, 41121, 41122, 41123, 41124, 41125, 41126, 41127, 41128, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 41137, 41138, 41139, 41140, 41141, 41142, 41143, 41144, 41145, 41146, 41147, 41148, 41149, 41150, 41151, 41152, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, 41166, 41167, 41168, 41169, 41170, 41171, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 41179, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 41187, 41188, 41189, 41190, 41191, 41192, 41193, 41194, 41195, 41196, 41197, 41198, 41199, 41200, 41201, 41202, 41203, 41204, 41205, 41206, 41207, 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41215, 41216, 41217, 41218, 41219, 41220, 41221, 41222, 41223, 41224, 41225, 41226, 41227, 41228, 41229, 41230, 41231, 41232, 41233, 41234, 41235, 41236, 41237, 41238, 41239, 41240, 41241, 41242, 41243, 41244, 41245, 41246, 41247, 41248, 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41256, 41257, 41258, 41259, 41260, 41261, 41262, 41263, 41264, 41265, 41266, 41267, 41268, 41269, 41270, 41271, 41272, 41273, 41274, 41275, 41276, 41277, 41278, 41279, 41280, 41281, 41282, 41283, 41284, 41285, 41286, 41287, 41288, 41289, 41290, 41291, 41292, 41293, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 41302, 41303, 41304, 41305, 41306, 41307, 41308, 41309, 41310, 41311, 41312, 41313, 41314, 41315, 41316, 41317, 41318, 41319, 41320, 41321, 41322, 41323, 41324, 41325, 41326, 41327, 41328, 41329, 41330, 41331, 41332, 41333, 41334, 41335, 41336, 41337, 41338, 41339, 41340, 41341, 41342, 41343, 41344, 41345, 41346, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 41355, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 41367, 41368, 41369, 41370, 41371, 41372, 41373, 41374, 41375, 41376, 41377, 41378, 41379, 41380, 41381, 41382, 41383, 41384, 41385, 41386, 41387, 41388, 41389, 41390, 41391, 41392, 41393, 41394, 41395, 41396, 41397, 41398, 41399, 41400, 41401, 41402, 41403, 41404, 41405, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41413, 41414, 41415, 41416, 41417, 41418, 41419, 41420, 41421, 41422, 41423, 41424, 41425, 41426, 41427, 41428, 41429, 41430, 41431, 41432, 41433, 41434, 41435, 41436, 41437, 41438, 41439, 41440, 41441, 41442, 41443, 41444, 41445, 41446, 41447, 41448, 41449, 41450, 41451, 41452, 41453, 41454, 41455, 41456, 41457, 41458, 41459, 41460, 41461, 41462, 41463, 41464, 41465, 41466, 41467, 41468, 41469, 41470, 41471, 41472, 41473, 41474, 41475, 41476, 41477, 41478, 41479, 41480, 41481, 41482, 41483, 41484, 41485, 41486, 41487, 41488, 41489, 41490, 41491, 41492, 41493, 41494, 41495, 41496, 41497, 41498, 41499, 41500, 41501, 41502, 41503, 41504, 41505, 41506, 41507, 41508, 41509, 41510, 41511, 41512, 41513, 41514, 41515, 41516, 41517, 41518, 41519, 41520, 41521, 41522, 41523, 41524, 41525, 41526, 41527, 41528, 41529, 41530, 41531, 41532, 41533, 41534, 41535, 41536, 41537, 41538, 41539, 41540, 41541, 41542, 41543, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 41553, 41554, 41555, 41556, 41557, 41558, 41559, 41560, 41561, 41562, 41563, 41564, 41565, 41566, 41567, 41568, 41569, 41570, 41571, 41572, 41573, 41574, 41575, 41576, 41577, 41578, 41579, 41580, 41581, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 41589, 41590, 41591, 41592, 41593, 41594, 41595, 41596, 41597, 41598, 41599, 41600, 41601, 41602, 41603, 41604, 41605, 41606, 41607, 41608, 41609, 41610, 41611, 41612, 41613, 41614, 41615, 41616, 41617, 41618, 41619, 41620, 41621, 41622, 41623, 41624, 41625, 41626, 41627, 41628, 41629, 41630, 41631, 41632, 41633, 41634, 41635, 41636, 41637, 41638, 41639, 41640, 41641, 41642, 41643, 41644, 41645, 41646, 41647, 41648, 41649, 41650, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 41659, 41660, 41661, 41662, 41663, 41664, 41665, 41666, 41667, 41668, 41669, 41670, 41671, 41672, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 41682, 41683, 41684, 41685, 41686, 41687, 41688, 41689, 41690, 41691, 41692, 41693, 41694, 41695, 41696, 41697, 41698, 41699, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 41710, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 41721, 41722, 41723, 41724, 41725, 41726, 41727, 41728, 41729, 41730, 41731, 41732, 41733, 41734, 41735, 41736, 41737, 41738, 41739, 41740, 41741, 41742, 41743, 41744, 41745, 41746, 41747, 41748, 41749, 41750, 41751, 41752, 41753, 41754, 41755, 41756, 41757, 41758, 41759, 41760, 41761, 41762, 41763, 41764, 41765, 41766, 41767, 41768, 41769, 41770, 41771, 41772, 41773, 41774, 41775, 41776, 41777, 41778, 41779, 41780, 41781, 41782, 41783, 41784, 41785, 41786, 41787, 41788, 41789, 41790, 41791, 41792, 41793, 41794, 41795, 41796, 41797, 41798, 41799, 41800, 41801, 41802, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41811, 41812, 41813, 41814, 41815, 41816, 41817, 41818, 41819, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 41831, 41832, 41833, 41834, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 41852, 41853, 41854, 41855, 41856, 41857, 41858, 41859, 41860, 41861, 41862, 41863, 41864, 41865, 41866, 41867, 41868, 41869, 41870, 41871, 41872, 41873, 41874, 41875, 41876, 41877, 41878, 41879, 41880, 41881, 41882, 41883, 41884, 41885, 41886, 41887, 41888, 41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 41984, 41985, 41986, 41987, 41988, 41989, 41990, 41991, 41992, 41993, 41994, 41995, 41996, 41997, 41998, 41999, 42000, 42001, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009, 42010, 42011, 42012, 42013, 42014, 42015, 42016, 42017, 42018, 42019, 42020, 42021, 42022, 42023, 42024, 42025, 42026, 42027, 42028, 42029, 42030, 42031, 42032, 42033, 42034, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, 42048, 42049, 42050, 42051, 42052, 42053, 42054, 42055, 42056, 42057, 42058, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 42067, 42068, 42069, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, 42078, 42079, 42080, 42081, 42082, 42083, 42084, 42085, 42086, 42087, 42088, 42089, 42090, 42091, 42092, 42093, 42094, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 42105, 42106, 42107, 42108, 42109, 42110, 42111, 42112, 42113, 42114, 42115, 42116, 42117, 42118, 42119, 42120, 42121, 42122, 42123, 42124, 42192, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 42200, 42201, 42202, 42203, 42204, 42205, 42206, 42207, 42208, 42209, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 42220, 42221, 42222, 42223, 42224, 42225, 42226, 42227, 42228, 42229, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42240, 42241, 42242, 42243, 42244, 42245, 42246, 42247, 42248, 42249, 42250, 42251, 42252, 42253, 42254, 42255, 42256, 42257, 42258, 42259, 42260, 42261, 42262, 42263, 42264, 42265, 42266, 42267, 42268, 42269, 42270, 42271, 42272, 42273, 42274, 42275, 42276, 42277, 42278, 42279, 42280, 42281, 42282, 42283, 42284, 42285, 42286, 42287, 42288, 42289, 42290, 42291, 42292, 42293, 42294, 42295, 42296, 42297, 42298, 42299, 42300, 42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309, 42310, 42311, 42312, 42313, 42314, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 42322, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, 42349, 42350, 42351, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 42359, 42360, 42361, 42362, 42363, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 42372, 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, 42385, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, 42397, 42398, 42399, 42400, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 42489, 42490, 42491, 42492, 42493, 42494, 42495, 42496, 42497, 42498, 42499, 42500, 42501, 42502, 42503, 42504, 42505, 42506, 42507, 42508, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42524, 42525, 42526, 42527, 42538, 42539, 42560, 42561, 42562, 42563, 42564, 42565, 42566, 42567, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588, 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605, 42606, 42623, 42624, 42625, 42626, 42627, 42628, 42629, 42630, 42631, 42632, 42633, 42634, 42635, 42636, 42637, 42638, 42639, 42640, 42641, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42656, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 42664, 42665, 42666, 42667, 42668, 42669, 42670, 42671, 42672, 42673, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 42681, 42682, 42683, 42684, 42685, 42686, 42687, 42688, 42689, 42690, 42691, 42692, 42693, 42694, 42695, 42696, 42697, 42698, 42699, 42700, 42701, 42702, 42703, 42704, 42705, 42706, 42707, 42708, 42709, 42710, 42711, 42712, 42713, 42714, 42715, 42716, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42725, 42775, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42786, 42787, 42788, 42789, 42790, 42791, 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42800, 42801, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810, 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 42872, 42873, 42874, 42875, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 42887, 42888, 42891, 42892, 42893, 42894, 42895, 42896, 42897, 42898, 42899, 42900, 42901, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 42909, 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 42923, 42924, 42925, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 43006, 43007, 43008, 43009, 43011, 43012, 43013, 43015, 43016, 43017, 43018, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 43035, 43036, 43037, 43038, 43039, 43040, 43041, 43042, 43072, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 43080, 43081, 43082, 43083, 43084, 43085, 43086, 43087, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 43182, 43183, 43184, 43185, 43186, 43187, 43250, 43251, 43252, 43253, 43254, 43255, 43259, 43261, 43274, 43275, 43276, 43277, 43278, 43279, 43280, 43281, 43282, 43283, 43284, 43285, 43286, 43287, 43288, 43289, 43290, 43291, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 43300, 43301, 43312, 43313, 43314, 43315, 43316, 43317, 43318, 43319, 43320, 43321, 43322, 43323, 43324, 43325, 43326, 43327, 43328, 43329, 43330, 43331, 43332, 43333, 43334, 43360, 43361, 43362, 43363, 43364, 43365, 43366, 43367, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 43379, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 43396, 43397, 43398, 43399, 43400, 43401, 43402, 43403, 43404, 43405, 43406, 43407, 43408, 43409, 43410, 43411, 43412, 43413, 43414, 43415, 43416, 43417, 43418, 43419, 43420, 43421, 43422, 43423, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 43440, 43441, 43442, 43471, 43488, 43489, 43490, 43491, 43492, 43494, 43495, 43496, 43497, 43498, 43499, 43500, 43501, 43502, 43503, 43514, 43515, 43516, 43517, 43518, 43520, 43521, 43522, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 43530, 43531, 43532, 43533, 43534, 43535, 43536, 43537, 43538, 43539, 43540, 43541, 43542, 43543, 43544, 43545, 43546, 43547, 43548, 43549, 43550, 43551, 43552, 43553, 43554, 43555, 43556, 43557, 43558, 43559, 43560, 43584, 43585, 43586, 43588, 43589, 43590, 43591, 43592, 43593, 43594, 43595, 43616, 43617, 43618, 43619, 43620, 43621, 43622, 43623, 43624, 43625, 43626, 43627, 43628, 43629, 43630, 43631, 43632, 43633, 43634, 43635, 43636, 43637, 43638, 43642, 43646, 43647, 43648, 43649, 43650, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43697, 43701, 43702, 43705, 43706, 43707, 43708, 43709, 43712, 43714, 43739, 43740, 43741, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43762, 43763, 43764, 43777, 43778, 43779, 43780, 43781, 43782, 43785, 43786, 43787, 43788, 43789, 43790, 43793, 43794, 43795, 43796, 43797, 43798, 43808, 43809, 43810, 43811, 43812, 43813, 43814, 43816, 43817, 43818, 43819, 43820, 43821, 43822, 43824, 43825, 43826, 43827, 43828, 43829, 43830, 43831, 43832, 43833, 43834, 43835, 43836, 43837, 43838, 43839, 43840, 43841, 43842, 43843, 43844, 43845, 43846, 43847, 43848, 43849, 43850, 43851, 43852, 43853, 43854, 43855, 43856, 43857, 43858, 43859, 43860, 43861, 43862, 43863, 43864, 43865, 43866, 43868, 43869, 43870, 43871, 43872, 43873, 43874, 43875, 43876, 43877, 43888, 43889, 43890, 43891, 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, 43903, 43904, 43905, 43906, 43907, 43908, 43909, 43910, 43911, 43912, 43913, 43914, 43915, 43916, 43917, 43918, 43919, 43920, 43921, 43922, 43923, 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931, 43932, 43933, 43934, 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 43973, 43974, 43975, 43976, 43977, 43978, 43979, 43980, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44032, 55203, 55216, 55217, 55218, 55219, 55220, 55221, 55222, 55223, 55224, 55225, 55226, 55227, 55228, 55229, 55230, 55231, 55232, 55233, 55234, 55235, 55236, 55237, 55238, 55243, 55244, 55245, 55246, 55247, 55248, 55249, 55250, 55251, 55252, 55253, 55254, 55255, 55256, 55257, 55258, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 55274, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 55283, 55284, 55285, 55286, 55287, 55288, 55289, 55290, 55291, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 63757, 63758, 63759, 63760, 63761, 63762, 63763, 63764, 63765, 63766, 63767, 63768, 63769, 63770, 63771, 63772, 63773, 63774, 63775, 63776, 63777, 63778, 63779, 63780, 63781, 63782, 63783, 63784, 63785, 63786, 63787, 63788, 63789, 63790, 63791, 63792, 63793, 63794, 63795, 63796, 63797, 63798, 63799, 63800, 63801, 63802, 63803, 63804, 63805, 63806, 63807, 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 63826, 63827, 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, 63836, 63837, 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, 63872, 63873, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, 63888, 63889, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 64000, 64001, 64002, 64003, 64004, 64005, 64006, 64007, 64008, 64009, 64010, 64011, 64012, 64013, 64014, 64015, 64016, 64017, 64018, 64019, 64020, 64021, 64022, 64023, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 64031, 64032, 64033, 64034, 64035, 64036, 64037, 64038, 64039, 64040, 64041, 64042, 64043, 64044, 64045, 64046, 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, 64214, 64215, 64216, 64217, 64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279, 64285, 64287, 64288, 64289, 64290, 64291, 64292, 64293, 64294, 64295, 64296, 64298, 64299, 64300, 64301, 64302, 64303, 64304, 64305, 64306, 64307, 64308, 64309, 64310, 64312, 64313, 64314, 64315, 64316, 64318, 64320, 64321, 64323, 64324, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, 64335, 64336, 64337, 64338, 64339, 64340, 64341, 64342, 64343, 64344, 64345, 64346, 64347, 64348, 64349, 64350, 64351, 64352, 64353, 64354, 64355, 64356, 64357, 64358, 64359, 64360, 64361, 64362, 64363, 64364, 64365, 64366, 64367, 64368, 64369, 64370, 64371, 64372, 64373, 64374, 64375, 64376, 64377, 64378, 64379, 64380, 64381, 64382, 64383, 64384, 64385, 64386, 64387, 64388, 64389, 64390, 64391, 64392, 64393, 64394, 64395, 64396, 64397, 64398, 64399, 64400, 64401, 64402, 64403, 64404, 64405, 64406, 64407, 64408, 64409, 64410, 64411, 64412, 64413, 64414, 64415, 64416, 64417, 64418, 64419, 64420, 64421, 64422, 64423, 64424, 64425, 64426, 64427, 64428, 64429, 64430, 64431, 64432, 64433, 64467, 64468, 64469, 64470, 64471, 64472, 64473, 64474, 64475, 64476, 64477, 64478, 64479, 64480, 64481, 64482, 64483, 64484, 64485, 64486, 64487, 64488, 64489, 64490, 64491, 64492, 64493, 64494, 64495, 64496, 64497, 64498, 64499, 64500, 64501, 64502, 64503, 64504, 64505, 64506, 64507, 64508, 64509, 64510, 64511, 64512, 64513, 64514, 64515, 64516, 64517, 64518, 64519, 64520, 64521, 64522, 64523, 64524, 64525, 64526, 64527, 64528, 64529, 64530, 64531, 64532, 64533, 64534, 64535, 64536, 64537, 64538, 64539, 64540, 64541, 64542, 64543, 64544, 64545, 64546, 64547, 64548, 64549, 64550, 64551, 64552, 64553, 64554, 64555, 64556, 64557, 64558, 64559, 64560, 64561, 64562, 64563, 64564, 64565, 64566, 64567, 64568, 64569, 64570, 64571, 64572, 64573, 64574, 64575, 64576, 64577, 64578, 64579, 64580, 64581, 64582, 64583, 64584, 64585, 64586, 64587, 64588, 64589, 64590, 64591, 64592, 64593, 64594, 64595, 64596, 64597, 64598, 64599, 64600, 64601, 64602, 64603, 64604, 64605, 64606, 64607, 64608, 64609, 64610, 64611, 64612, 64613, 64614, 64615, 64616, 64617, 64618, 64619, 64620, 64621, 64622, 64623, 64624, 64625, 64626, 64627, 64628, 64629, 64630, 64631, 64632, 64633, 64634, 64635, 64636, 64637, 64638, 64639, 64640, 64641, 64642, 64643, 64644, 64645, 64646, 64647, 64648, 64649, 64650, 64651, 64652, 64653, 64654, 64655, 64656, 64657, 64658, 64659, 64660, 64661, 64662, 64663, 64664, 64665, 64666, 64667, 64668, 64669, 64670, 64671, 64672, 64673, 64674, 64675, 64676, 64677, 64678, 64679, 64680, 64681, 64682, 64683, 64684, 64685, 64686, 64687, 64688, 64689, 64690, 64691, 64692, 64693, 64694, 64695, 64696, 64697, 64698, 64699, 64700, 64701, 64702, 64703, 64704, 64705, 64706, 64707, 64708, 64709, 64710, 64711, 64712, 64713, 64714, 64715, 64716, 64717, 64718, 64719, 64720, 64721, 64722, 64723, 64724, 64725, 64726, 64727, 64728, 64729, 64730, 64731, 64732, 64733, 64734, 64735, 64736, 64737, 64738, 64739, 64740, 64741, 64742, 64743, 64744, 64745, 64746, 64747, 64748, 64749, 64750, 64751, 64752, 64753, 64754, 64755, 64756, 64757, 64758, 64759, 64760, 64761, 64762, 64763, 64764, 64765, 64766, 64767, 64768, 64769, 64770, 64771, 64772, 64773, 64774, 64775, 64776, 64777, 64778, 64779, 64780, 64781, 64782, 64783, 64784, 64785, 64786, 64787, 64788, 64789, 64790, 64791, 64792, 64793, 64794, 64795, 64796, 64797, 64798, 64799, 64800, 64801, 64802, 64803, 64804, 64805, 64806, 64807, 64808, 64809, 64810, 64811, 64812, 64813, 64814, 64815, 64816, 64817, 64818, 64819, 64820, 64821, 64822, 64823, 64824, 64825, 64826, 64827, 64828, 64829, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 64856, 64857, 64858, 64859, 64860, 64861, 64862, 64863, 64864, 64865, 64866, 64867, 64868, 64869, 64870, 64871, 64872, 64873, 64874, 64875, 64876, 64877, 64878, 64879, 64880, 64881, 64882, 64883, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 64891, 64892, 64893, 64894, 64895, 64896, 64897, 64898, 64899, 64900, 64901, 64902, 64903, 64904, 64905, 64906, 64907, 64908, 64909, 64910, 64911, 64914, 64915, 64916, 64917, 64918, 64919, 64920, 64921, 64922, 64923, 64924, 64925, 64926, 64927, 64928, 64929, 64930, 64931, 64932, 64933, 64934, 64935, 64936, 64937, 64938, 64939, 64940, 64941, 64942, 64943, 64944, 64945, 64946, 64947, 64948, 64949, 64950, 64951, 64952, 64953, 64954, 64955, 64956, 64957, 64958, 64959, 64960, 64961, 64962, 64963, 64964, 64965, 64966, 64967, 65008, 65009, 65010, 65011, 65012, 65013, 65014, 65015, 65016, 65017, 65018, 65019, 65136, 65137, 65138, 65139, 65140, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151, 65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167, 65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183, 65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199, 65200, 65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216, 65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232, 65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248, 65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264, 65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65474, 65475, 65476, 65477, 65478, 65479, 65482, 65483, 65484, 65485, 65486, 65487, 65490, 65491, 65492, 65493, 65494, 65495, 65498, 65499, 65500, 65536, 65537, 65538, 65539, 65540, 65541, 65542, 65543, 65544, 65545, 65546, 65547, 65549, 65550, 65551, 65552, 65553, 65554, 65555, 65556, 65557, 65558, 65559, 65560, 65561, 65562, 65563, 65564, 65565, 65566, 65567, 65568, 65569, 65570, 65571, 65572, 65573, 65574, 65576, 65577, 65578, 65579, 65580, 65581, 65582, 65583, 65584, 65585, 65586, 65587, 65588, 65589, 65590, 65591, 65592, 65593, 65594, 65596, 65597, 65599, 65600, 65601, 65602, 65603, 65604, 65605, 65606, 65607, 65608, 65609, 65610, 65611, 65612, 65613, 65616, 65617, 65618, 65619, 65620, 65621, 65622, 65623, 65624, 65625, 65626, 65627, 65628, 65629, 65664, 65665, 65666, 65667, 65668, 65669, 65670, 65671, 65672, 65673, 65674, 65675, 65676, 65677, 65678, 65679, 65680, 65681, 65682, 65683, 65684, 65685, 65686, 65687, 65688, 65689, 65690, 65691, 65692, 65693, 65694, 65695, 65696, 65697, 65698, 65699, 65700, 65701, 65702, 65703, 65704, 65705, 65706, 65707, 65708, 65709, 65710, 65711, 65712, 65713, 65714, 65715, 65716, 65717, 65718, 65719, 65720, 65721, 65722, 65723, 65724, 65725, 65726, 65727, 65728, 65729, 65730, 65731, 65732, 65733, 65734, 65735, 65736, 65737, 65738, 65739, 65740, 65741, 65742, 65743, 65744, 65745, 65746, 65747, 65748, 65749, 65750, 65751, 65752, 65753, 65754, 65755, 65756, 65757, 65758, 65759, 65760, 65761, 65762, 65763, 65764, 65765, 65766, 65767, 65768, 65769, 65770, 65771, 65772, 65773, 65774, 65775, 65776, 65777, 65778, 65779, 65780, 65781, 65782, 65783, 65784, 65785, 65786, 66176, 66177, 66178, 66179, 66180, 66181, 66182, 66183, 66184, 66185, 66186, 66187, 66188, 66189, 66190, 66191, 66192, 66193, 66194, 66195, 66196, 66197, 66198, 66199, 66200, 66201, 66202, 66203, 66204, 66208, 66209, 66210, 66211, 66212, 66213, 66214, 66215, 66216, 66217, 66218, 66219, 66220, 66221, 66222, 66223, 66224, 66225, 66226, 66227, 66228, 66229, 66230, 66231, 66232, 66233, 66234, 66235, 66236, 66237, 66238, 66239, 66240, 66241, 66242, 66243, 66244, 66245, 66246, 66247, 66248, 66249, 66250, 66251, 66252, 66253, 66254, 66255, 66256, 66304, 66305, 66306, 66307, 66308, 66309, 66310, 66311, 66312, 66313, 66314, 66315, 66316, 66317, 66318, 66319, 66320, 66321, 66322, 66323, 66324, 66325, 66326, 66327, 66328, 66329, 66330, 66331, 66332, 66333, 66334, 66335, 66352, 66353, 66354, 66355, 66356, 66357, 66358, 66359, 66360, 66361, 66362, 66363, 66364, 66365, 66366, 66367, 66368, 66370, 66371, 66372, 66373, 66374, 66375, 66376, 66377, 66384, 66385, 66386, 66387, 66388, 66389, 66390, 66391, 66392, 66393, 66394, 66395, 66396, 66397, 66398, 66399, 66400, 66401, 66402, 66403, 66404, 66405, 66406, 66407, 66408, 66409, 66410, 66411, 66412, 66413, 66414, 66415, 66416, 66417, 66418, 66419, 66420, 66421, 66432, 66433, 66434, 66435, 66436, 66437, 66438, 66439, 66440, 66441, 66442, 66443, 66444, 66445, 66446, 66447, 66448, 66449, 66450, 66451, 66452, 66453, 66454, 66455, 66456, 66457, 66458, 66459, 66460, 66461, 66464, 66465, 66466, 66467, 66468, 66469, 66470, 66471, 66472, 66473, 66474, 66475, 66476, 66477, 66478, 66479, 66480, 66481, 66482, 66483, 66484, 66485, 66486, 66487, 66488, 66489, 66490, 66491, 66492, 66493, 66494, 66495, 66496, 66497, 66498, 66499, 66504, 66505, 66506, 66507, 66508, 66509, 66510, 66511, 66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 66598, 66599, 66600, 66601, 66602, 66603, 66604, 66605, 66606, 66607, 66608, 66609, 66610, 66611, 66612, 66613, 66614, 66615, 66616, 66617, 66618, 66619, 66620, 66621, 66622, 66623, 66624, 66625, 66626, 66627, 66628, 66629, 66630, 66631, 66632, 66633, 66634, 66635, 66636, 66637, 66638, 66639, 66640, 66641, 66642, 66643, 66644, 66645, 66646, 66647, 66648, 66649, 66650, 66651, 66652, 66653, 66654, 66655, 66656, 66657, 66658, 66659, 66660, 66661, 66662, 66663, 66664, 66665, 66666, 66667, 66668, 66669, 66670, 66671, 66672, 66673, 66674, 66675, 66676, 66677, 66678, 66679, 66680, 66681, 66682, 66683, 66684, 66685, 66686, 66687, 66688, 66689, 66690, 66691, 66692, 66693, 66694, 66695, 66696, 66697, 66698, 66699, 66700, 66701, 66702, 66703, 66704, 66705, 66706, 66707, 66708, 66709, 66710, 66711, 66712, 66713, 66714, 66715, 66716, 66717, 66816, 66817, 66818, 66819, 66820, 66821, 66822, 66823, 66824, 66825, 66826, 66827, 66828, 66829, 66830, 66831, 66832, 66833, 66834, 66835, 66836, 66837, 66838, 66839, 66840, 66841, 66842, 66843, 66844, 66845, 66846, 66847, 66848, 66849, 66850, 66851, 66852, 66853, 66854, 66855, 66864, 66865, 66866, 66867, 66868, 66869, 66870, 66871, 66872, 66873, 66874, 66875, 66876, 66877, 66878, 66879, 66880, 66881, 66882, 66883, 66884, 66885, 66886, 66887, 66888, 66889, 66890, 66891, 66892, 66893, 66894, 66895, 66896, 66897, 66898, 66899, 66900, 66901, 66902, 66903, 66904, 66905, 66906, 66907, 66908, 66909, 66910, 66911, 66912, 66913, 66914, 66915, 67072, 67073, 67074, 67075, 67076, 67077, 67078, 67079, 67080, 67081, 67082, 67083, 67084, 67085, 67086, 67087, 67088, 67089, 67090, 67091, 67092, 67093, 67094, 67095, 67096, 67097, 67098, 67099, 67100, 67101, 67102, 67103, 67104, 67105, 67106, 67107, 67108, 67109, 67110, 67111, 67112, 67113, 67114, 67115, 67116, 67117, 67118, 67119, 67120, 67121, 67122, 67123, 67124, 67125, 67126, 67127, 67128, 67129, 67130, 67131, 67132, 67133, 67134, 67135, 67136, 67137, 67138, 67139, 67140, 67141, 67142, 67143, 67144, 67145, 67146, 67147, 67148, 67149, 67150, 67151, 67152, 67153, 67154, 67155, 67156, 67157, 67158, 67159, 67160, 67161, 67162, 67163, 67164, 67165, 67166, 67167, 67168, 67169, 67170, 67171, 67172, 67173, 67174, 67175, 67176, 67177, 67178, 67179, 67180, 67181, 67182, 67183, 67184, 67185, 67186, 67187, 67188, 67189, 67190, 67191, 67192, 67193, 67194, 67195, 67196, 67197, 67198, 67199, 67200, 67201, 67202, 67203, 67204, 67205, 67206, 67207, 67208, 67209, 67210, 67211, 67212, 67213, 67214, 67215, 67216, 67217, 67218, 67219, 67220, 67221, 67222, 67223, 67224, 67225, 67226, 67227, 67228, 67229, 67230, 67231, 67232, 67233, 67234, 67235, 67236, 67237, 67238, 67239, 67240, 67241, 67242, 67243, 67244, 67245, 67246, 67247, 67248, 67249, 67250, 67251, 67252, 67253, 67254, 67255, 67256, 67257, 67258, 67259, 67260, 67261, 67262, 67263, 67264, 67265, 67266, 67267, 67268, 67269, 67270, 67271, 67272, 67273, 67274, 67275, 67276, 67277, 67278, 67279, 67280, 67281, 67282, 67283, 67284, 67285, 67286, 67287, 67288, 67289, 67290, 67291, 67292, 67293, 67294, 67295, 67296, 67297, 67298, 67299, 67300, 67301, 67302, 67303, 67304, 67305, 67306, 67307, 67308, 67309, 67310, 67311, 67312, 67313, 67314, 67315, 67316, 67317, 67318, 67319, 67320, 67321, 67322, 67323, 67324, 67325, 67326, 67327, 67328, 67329, 67330, 67331, 67332, 67333, 67334, 67335, 67336, 67337, 67338, 67339, 67340, 67341, 67342, 67343, 67344, 67345, 67346, 67347, 67348, 67349, 67350, 67351, 67352, 67353, 67354, 67355, 67356, 67357, 67358, 67359, 67360, 67361, 67362, 67363, 67364, 67365, 67366, 67367, 67368, 67369, 67370, 67371, 67372, 67373, 67374, 67375, 67376, 67377, 67378, 67379, 67380, 67381, 67382, 67392, 67393, 67394, 67395, 67396, 67397, 67398, 67399, 67400, 67401, 67402, 67403, 67404, 67405, 67406, 67407, 67408, 67409, 67410, 67411, 67412, 67413, 67424, 67425, 67426, 67427, 67428, 67429, 67430, 67431, 67584, 67585, 67586, 67587, 67588, 67589, 67592, 67594, 67595, 67596, 67597, 67598, 67599, 67600, 67601, 67602, 67603, 67604, 67605, 67606, 67607, 67608, 67609, 67610, 67611, 67612, 67613, 67614, 67615, 67616, 67617, 67618, 67619, 67620, 67621, 67622, 67623, 67624, 67625, 67626, 67627, 67628, 67629, 67630, 67631, 67632, 67633, 67634, 67635, 67636, 67637, 67639, 67640, 67644, 67647, 67648, 67649, 67650, 67651, 67652, 67653, 67654, 67655, 67656, 67657, 67658, 67659, 67660, 67661, 67662, 67663, 67664, 67665, 67666, 67667, 67668, 67669, 67680, 67681, 67682, 67683, 67684, 67685, 67686, 67687, 67688, 67689, 67690, 67691, 67692, 67693, 67694, 67695, 67696, 67697, 67698, 67699, 67700, 67701, 67702, 67712, 67713, 67714, 67715, 67716, 67717, 67718, 67719, 67720, 67721, 67722, 67723, 67724, 67725, 67726, 67727, 67728, 67729, 67730, 67731, 67732, 67733, 67734, 67735, 67736, 67737, 67738, 67739, 67740, 67741, 67742, 67808, 67809, 67810, 67811, 67812, 67813, 67814, 67815, 67816, 67817, 67818, 67819, 67820, 67821, 67822, 67823, 67824, 67825, 67826, 67828, 67829, 67840, 67841, 67842, 67843, 67844, 67845, 67846, 67847, 67848, 67849, 67850, 67851, 67852, 67853, 67854, 67855, 67856, 67857, 67858, 67859, 67860, 67861, 67872, 67873, 67874, 67875, 67876, 67877, 67878, 67879, 67880, 67881, 67882, 67883, 67884, 67885, 67886, 67887, 67888, 67889, 67890, 67891, 67892, 67893, 67894, 67895, 67896, 67897, 67968, 67969, 67970, 67971, 67972, 67973, 67974, 67975, 67976, 67977, 67978, 67979, 67980, 67981, 67982, 67983, 67984, 67985, 67986, 67987, 67988, 67989, 67990, 67991, 67992, 67993, 67994, 67995, 67996, 67997, 67998, 67999, 68000, 68001, 68002, 68003, 68004, 68005, 68006, 68007, 68008, 68009, 68010, 68011, 68012, 68013, 68014, 68015, 68016, 68017, 68018, 68019, 68020, 68021, 68022, 68023, 68030, 68031, 68096, 68112, 68113, 68114, 68115, 68117, 68118, 68119, 68121, 68122, 68123, 68124, 68125, 68126, 68127, 68128, 68129, 68130, 68131, 68132, 68133, 68134, 68135, 68136, 68137, 68138, 68139, 68140, 68141, 68142, 68143, 68144, 68145, 68146, 68147, 68192, 68193, 68194, 68195, 68196, 68197, 68198, 68199, 68200, 68201, 68202, 68203, 68204, 68205, 68206, 68207, 68208, 68209, 68210, 68211, 68212, 68213, 68214, 68215, 68216, 68217, 68218, 68219, 68220, 68224, 68225, 68226, 68227, 68228, 68229, 68230, 68231, 68232, 68233, 68234, 68235, 68236, 68237, 68238, 68239, 68240, 68241, 68242, 68243, 68244, 68245, 68246, 68247, 68248, 68249, 68250, 68251, 68252, 68288, 68289, 68290, 68291, 68292, 68293, 68294, 68295, 68297, 68298, 68299, 68300, 68301, 68302, 68303, 68304, 68305, 68306, 68307, 68308, 68309, 68310, 68311, 68312, 68313, 68314, 68315, 68316, 68317, 68318, 68319, 68320, 68321, 68322, 68323, 68324, 68352, 68353, 68354, 68355, 68356, 68357, 68358, 68359, 68360, 68361, 68362, 68363, 68364, 68365, 68366, 68367, 68368, 68369, 68370, 68371, 68372, 68373, 68374, 68375, 68376, 68377, 68378, 68379, 68380, 68381, 68382, 68383, 68384, 68385, 68386, 68387, 68388, 68389, 68390, 68391, 68392, 68393, 68394, 68395, 68396, 68397, 68398, 68399, 68400, 68401, 68402, 68403, 68404, 68405, 68416, 68417, 68418, 68419, 68420, 68421, 68422, 68423, 68424, 68425, 68426, 68427, 68428, 68429, 68430, 68431, 68432, 68433, 68434, 68435, 68436, 68437, 68448, 68449, 68450, 68451, 68452, 68453, 68454, 68455, 68456, 68457, 68458, 68459, 68460, 68461, 68462, 68463, 68464, 68465, 68466, 68480, 68481, 68482, 68483, 68484, 68485, 68486, 68487, 68488, 68489, 68490, 68491, 68492, 68493, 68494, 68495, 68496, 68497, 68608, 68609, 68610, 68611, 68612, 68613, 68614, 68615, 68616, 68617, 68618, 68619, 68620, 68621, 68622, 68623, 68624, 68625, 68626, 68627, 68628, 68629, 68630, 68631, 68632, 68633, 68634, 68635, 68636, 68637, 68638, 68639, 68640, 68641, 68642, 68643, 68644, 68645, 68646, 68647, 68648, 68649, 68650, 68651, 68652, 68653, 68654, 68655, 68656, 68657, 68658, 68659, 68660, 68661, 68662, 68663, 68664, 68665, 68666, 68667, 68668, 68669, 68670, 68671, 68672, 68673, 68674, 68675, 68676, 68677, 68678, 68679, 68680, 68736, 68737, 68738, 68739, 68740, 68741, 68742, 68743, 68744, 68745, 68746, 68747, 68748, 68749, 68750, 68751, 68752, 68753, 68754, 68755, 68756, 68757, 68758, 68759, 68760, 68761, 68762, 68763, 68764, 68765, 68766, 68767, 68768, 68769, 68770, 68771, 68772, 68773, 68774, 68775, 68776, 68777, 68778, 68779, 68780, 68781, 68782, 68783, 68784, 68785, 68786, 68800, 68801, 68802, 68803, 68804, 68805, 68806, 68807, 68808, 68809, 68810, 68811, 68812, 68813, 68814, 68815, 68816, 68817, 68818, 68819, 68820, 68821, 68822, 68823, 68824, 68825, 68826, 68827, 68828, 68829, 68830, 68831, 68832, 68833, 68834, 68835, 68836, 68837, 68838, 68839, 68840, 68841, 68842, 68843, 68844, 68845, 68846, 68847, 68848, 68849, 68850, 69635, 69636, 69637, 69638, 69639, 69640, 69641, 69642, 69643, 69644, 69645, 69646, 69647, 69648, 69649, 69650, 69651, 69652, 69653, 69654, 69655, 69656, 69657, 69658, 69659, 69660, 69661, 69662, 69663, 69664, 69665, 69666, 69667, 69668, 69669, 69670, 69671, 69672, 69673, 69674, 69675, 69676, 69677, 69678, 69679, 69680, 69681, 69682, 69683, 69684, 69685, 69686, 69687, 69763, 69764, 69765, 69766, 69767, 69768, 69769, 69770, 69771, 69772, 69773, 69774, 69775, 69776, 69777, 69778, 69779, 69780, 69781, 69782, 69783, 69784, 69785, 69786, 69787, 69788, 69789, 69790, 69791, 69792, 69793, 69794, 69795, 69796, 69797, 69798, 69799, 69800, 69801, 69802, 69803, 69804, 69805, 69806, 69807, 69840, 69841, 69842, 69843, 69844, 69845, 69846, 69847, 69848, 69849, 69850, 69851, 69852, 69853, 69854, 69855, 69856, 69857, 69858, 69859, 69860, 69861, 69862, 69863, 69864, 69891, 69892, 69893, 69894, 69895, 69896, 69897, 69898, 69899, 69900, 69901, 69902, 69903, 69904, 69905, 69906, 69907, 69908, 69909, 69910, 69911, 69912, 69913, 69914, 69915, 69916, 69917, 69918, 69919, 69920, 69921, 69922, 69923, 69924, 69925, 69926, 69968, 69969, 69970, 69971, 69972, 69973, 69974, 69975, 69976, 69977, 69978, 69979, 69980, 69981, 69982, 69983, 69984, 69985, 69986, 69987, 69988, 69989, 69990, 69991, 69992, 69993, 69994, 69995, 69996, 69997, 69998, 69999, 70000, 70001, 70002, 70006, 70019, 70020, 70021, 70022, 70023, 70024, 70025, 70026, 70027, 70028, 70029, 70030, 70031, 70032, 70033, 70034, 70035, 70036, 70037, 70038, 70039, 70040, 70041, 70042, 70043, 70044, 70045, 70046, 70047, 70048, 70049, 70050, 70051, 70052, 70053, 70054, 70055, 70056, 70057, 70058, 70059, 70060, 70061, 70062, 70063, 70064, 70065, 70066, 70081, 70082, 70083, 70084, 70106, 70108, 70144, 70145, 70146, 70147, 70148, 70149, 70150, 70151, 70152, 70153, 70154, 70155, 70156, 70157, 70158, 70159, 70160, 70161, 70163, 70164, 70165, 70166, 70167, 70168, 70169, 70170, 70171, 70172, 70173, 70174, 70175, 70176, 70177, 70178, 70179, 70180, 70181, 70182, 70183, 70184, 70185, 70186, 70187, 70272, 70273, 70274, 70275, 70276, 70277, 70278, 70280, 70282, 70283, 70284, 70285, 70287, 70288, 70289, 70290, 70291, 70292, 70293, 70294, 70295, 70296, 70297, 70298, 70299, 70300, 70301, 70303, 70304, 70305, 70306, 70307, 70308, 70309, 70310, 70311, 70312, 70320, 70321, 70322, 70323, 70324, 70325, 70326, 70327, 70328, 70329, 70330, 70331, 70332, 70333, 70334, 70335, 70336, 70337, 70338, 70339, 70340, 70341, 70342, 70343, 70344, 70345, 70346, 70347, 70348, 70349, 70350, 70351, 70352, 70353, 70354, 70355, 70356, 70357, 70358, 70359, 70360, 70361, 70362, 70363, 70364, 70365, 70366, 70405, 70406, 70407, 70408, 70409, 70410, 70411, 70412, 70415, 70416, 70419, 70420, 70421, 70422, 70423, 70424, 70425, 70426, 70427, 70428, 70429, 70430, 70431, 70432, 70433, 70434, 70435, 70436, 70437, 70438, 70439, 70440, 70442, 70443, 70444, 70445, 70446, 70447, 70448, 70450, 70451, 70453, 70454, 70455, 70456, 70457, 70461, 70480, 70493, 70494, 70495, 70496, 70497, 70784, 70785, 70786, 70787, 70788, 70789, 70790, 70791, 70792, 70793, 70794, 70795, 70796, 70797, 70798, 70799, 70800, 70801, 70802, 70803, 70804, 70805, 70806, 70807, 70808, 70809, 70810, 70811, 70812, 70813, 70814, 70815, 70816, 70817, 70818, 70819, 70820, 70821, 70822, 70823, 70824, 70825, 70826, 70827, 70828, 70829, 70830, 70831, 70852, 70853, 70855, 71040, 71041, 71042, 71043, 71044, 71045, 71046, 71047, 71048, 71049, 71050, 71051, 71052, 71053, 71054, 71055, 71056, 71057, 71058, 71059, 71060, 71061, 71062, 71063, 71064, 71065, 71066, 71067, 71068, 71069, 71070, 71071, 71072, 71073, 71074, 71075, 71076, 71077, 71078, 71079, 71080, 71081, 71082, 71083, 71084, 71085, 71086, 71128, 71129, 71130, 71131, 71168, 71169, 71170, 71171, 71172, 71173, 71174, 71175, 71176, 71177, 71178, 71179, 71180, 71181, 71182, 71183, 71184, 71185, 71186, 71187, 71188, 71189, 71190, 71191, 71192, 71193, 71194, 71195, 71196, 71197, 71198, 71199, 71200, 71201, 71202, 71203, 71204, 71205, 71206, 71207, 71208, 71209, 71210, 71211, 71212, 71213, 71214, 71215, 71236, 71296, 71297, 71298, 71299, 71300, 71301, 71302, 71303, 71304, 71305, 71306, 71307, 71308, 71309, 71310, 71311, 71312, 71313, 71314, 71315, 71316, 71317, 71318, 71319, 71320, 71321, 71322, 71323, 71324, 71325, 71326, 71327, 71328, 71329, 71330, 71331, 71332, 71333, 71334, 71335, 71336, 71337, 71338, 71424, 71425, 71426, 71427, 71428, 71429, 71430, 71431, 71432, 71433, 71434, 71435, 71436, 71437, 71438, 71439, 71440, 71441, 71442, 71443, 71444, 71445, 71446, 71447, 71448, 71449, 71840, 71841, 71842, 71843, 71844, 71845, 71846, 71847, 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, 71864, 71865, 71866, 71867, 71868, 71869, 71870, 71871, 71872, 71873, 71874, 71875, 71876, 71877, 71878, 71879, 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, 71896, 71897, 71898, 71899, 71900, 71901, 71902, 71903, 71935, 72384, 72385, 72386, 72387, 72388, 72389, 72390, 72391, 72392, 72393, 72394, 72395, 72396, 72397, 72398, 72399, 72400, 72401, 72402, 72403, 72404, 72405, 72406, 72407, 72408, 72409, 72410, 72411, 72412, 72413, 72414, 72415, 72416, 72417, 72418, 72419, 72420, 72421, 72422, 72423, 72424, 72425, 72426, 72427, 72428, 72429, 72430, 72431, 72432, 72433, 72434, 72435, 72436, 72437, 72438, 72439, 72440, 73728, 73729, 73730, 73731, 73732, 73733, 73734, 73735, 73736, 73737, 73738, 73739, 73740, 73741, 73742, 73743, 73744, 73745, 73746, 73747, 73748, 73749, 73750, 73751, 73752, 73753, 73754, 73755, 73756, 73757, 73758, 73759, 73760, 73761, 73762, 73763, 73764, 73765, 73766, 73767, 73768, 73769, 73770, 73771, 73772, 73773, 73774, 73775, 73776, 73777, 73778, 73779, 73780, 73781, 73782, 73783, 73784, 73785, 73786, 73787, 73788, 73789, 73790, 73791, 73792, 73793, 73794, 73795, 73796, 73797, 73798, 73799, 73800, 73801, 73802, 73803, 73804, 73805, 73806, 73807, 73808, 73809, 73810, 73811, 73812, 73813, 73814, 73815, 73816, 73817, 73818, 73819, 73820, 73821, 73822, 73823, 73824, 73825, 73826, 73827, 73828, 73829, 73830, 73831, 73832, 73833, 73834, 73835, 73836, 73837, 73838, 73839, 73840, 73841, 73842, 73843, 73844, 73845, 73846, 73847, 73848, 73849, 73850, 73851, 73852, 73853, 73854, 73855, 73856, 73857, 73858, 73859, 73860, 73861, 73862, 73863, 73864, 73865, 73866, 73867, 73868, 73869, 73870, 73871, 73872, 73873, 73874, 73875, 73876, 73877, 73878, 73879, 73880, 73881, 73882, 73883, 73884, 73885, 73886, 73887, 73888, 73889, 73890, 73891, 73892, 73893, 73894, 73895, 73896, 73897, 73898, 73899, 73900, 73901, 73902, 73903, 73904, 73905, 73906, 73907, 73908, 73909, 73910, 73911, 73912, 73913, 73914, 73915, 73916, 73917, 73918, 73919, 73920, 73921, 73922, 73923, 73924, 73925, 73926, 73927, 73928, 73929, 73930, 73931, 73932, 73933, 73934, 73935, 73936, 73937, 73938, 73939, 73940, 73941, 73942, 73943, 73944, 73945, 73946, 73947, 73948, 73949, 73950, 73951, 73952, 73953, 73954, 73955, 73956, 73957, 73958, 73959, 73960, 73961, 73962, 73963, 73964, 73965, 73966, 73967, 73968, 73969, 73970, 73971, 73972, 73973, 73974, 73975, 73976, 73977, 73978, 73979, 73980, 73981, 73982, 73983, 73984, 73985, 73986, 73987, 73988, 73989, 73990, 73991, 73992, 73993, 73994, 73995, 73996, 73997, 73998, 73999, 74000, 74001, 74002, 74003, 74004, 74005, 74006, 74007, 74008, 74009, 74010, 74011, 74012, 74013, 74014, 74015, 74016, 74017, 74018, 74019, 74020, 74021, 74022, 74023, 74024, 74025, 74026, 74027, 74028, 74029, 74030, 74031, 74032, 74033, 74034, 74035, 74036, 74037, 74038, 74039, 74040, 74041, 74042, 74043, 74044, 74045, 74046, 74047, 74048, 74049, 74050, 74051, 74052, 74053, 74054, 74055, 74056, 74057, 74058, 74059, 74060, 74061, 74062, 74063, 74064, 74065, 74066, 74067, 74068, 74069, 74070, 74071, 74072, 74073, 74074, 74075, 74076, 74077, 74078, 74079, 74080, 74081, 74082, 74083, 74084, 74085, 74086, 74087, 74088, 74089, 74090, 74091, 74092, 74093, 74094, 74095, 74096, 74097, 74098, 74099, 74100, 74101, 74102, 74103, 74104, 74105, 74106, 74107, 74108, 74109, 74110, 74111, 74112, 74113, 74114, 74115, 74116, 74117, 74118, 74119, 74120, 74121, 74122, 74123, 74124, 74125, 74126, 74127, 74128, 74129, 74130, 74131, 74132, 74133, 74134, 74135, 74136, 74137, 74138, 74139, 74140, 74141, 74142, 74143, 74144, 74145, 74146, 74147, 74148, 74149, 74150, 74151, 74152, 74153, 74154, 74155, 74156, 74157, 74158, 74159, 74160, 74161, 74162, 74163, 74164, 74165, 74166, 74167, 74168, 74169, 74170, 74171, 74172, 74173, 74174, 74175, 74176, 74177, 74178, 74179, 74180, 74181, 74182, 74183, 74184, 74185, 74186, 74187, 74188, 74189, 74190, 74191, 74192, 74193, 74194, 74195, 74196, 74197, 74198, 74199, 74200, 74201, 74202, 74203, 74204, 74205, 74206, 74207, 74208, 74209, 74210, 74211, 74212, 74213, 74214, 74215, 74216, 74217, 74218, 74219, 74220, 74221, 74222, 74223, 74224, 74225, 74226, 74227, 74228, 74229, 74230, 74231, 74232, 74233, 74234, 74235, 74236, 74237, 74238, 74239, 74240, 74241, 74242, 74243, 74244, 74245, 74246, 74247, 74248, 74249, 74250, 74251, 74252, 74253, 74254, 74255, 74256, 74257, 74258, 74259, 74260, 74261, 74262, 74263, 74264, 74265, 74266, 74267, 74268, 74269, 74270, 74271, 74272, 74273, 74274, 74275, 74276, 74277, 74278, 74279, 74280, 74281, 74282, 74283, 74284, 74285, 74286, 74287, 74288, 74289, 74290, 74291, 74292, 74293, 74294, 74295, 74296, 74297, 74298, 74299, 74300, 74301, 74302, 74303, 74304, 74305, 74306, 74307, 74308, 74309, 74310, 74311, 74312, 74313, 74314, 74315, 74316, 74317, 74318, 74319, 74320, 74321, 74322, 74323, 74324, 74325, 74326, 74327, 74328, 74329, 74330, 74331, 74332, 74333, 74334, 74335, 74336, 74337, 74338, 74339, 74340, 74341, 74342, 74343, 74344, 74345, 74346, 74347, 74348, 74349, 74350, 74351, 74352, 74353, 74354, 74355, 74356, 74357, 74358, 74359, 74360, 74361, 74362, 74363, 74364, 74365, 74366, 74367, 74368, 74369, 74370, 74371, 74372, 74373, 74374, 74375, 74376, 74377, 74378, 74379, 74380, 74381, 74382, 74383, 74384, 74385, 74386, 74387, 74388, 74389, 74390, 74391, 74392, 74393, 74394, 74395, 74396, 74397, 74398, 74399, 74400, 74401, 74402, 74403, 74404, 74405, 74406, 74407, 74408, 74409, 74410, 74411, 74412, 74413, 74414, 74415, 74416, 74417, 74418, 74419, 74420, 74421, 74422, 74423, 74424, 74425, 74426, 74427, 74428, 74429, 74430, 74431, 74432, 74433, 74434, 74435, 74436, 74437, 74438, 74439, 74440, 74441, 74442, 74443, 74444, 74445, 74446, 74447, 74448, 74449, 74450, 74451, 74452, 74453, 74454, 74455, 74456, 74457, 74458, 74459, 74460, 74461, 74462, 74463, 74464, 74465, 74466, 74467, 74468, 74469, 74470, 74471, 74472, 74473, 74474, 74475, 74476, 74477, 74478, 74479, 74480, 74481, 74482, 74483, 74484, 74485, 74486, 74487, 74488, 74489, 74490, 74491, 74492, 74493, 74494, 74495, 74496, 74497, 74498, 74499, 74500, 74501, 74502, 74503, 74504, 74505, 74506, 74507, 74508, 74509, 74510, 74511, 74512, 74513, 74514, 74515, 74516, 74517, 74518, 74519, 74520, 74521, 74522, 74523, 74524, 74525, 74526, 74527, 74528, 74529, 74530, 74531, 74532, 74533, 74534, 74535, 74536, 74537, 74538, 74539, 74540, 74541, 74542, 74543, 74544, 74545, 74546, 74547, 74548, 74549, 74550, 74551, 74552, 74553, 74554, 74555, 74556, 74557, 74558, 74559, 74560, 74561, 74562, 74563, 74564, 74565, 74566, 74567, 74568, 74569, 74570, 74571, 74572, 74573, 74574, 74575, 74576, 74577, 74578, 74579, 74580, 74581, 74582, 74583, 74584, 74585, 74586, 74587, 74588, 74589, 74590, 74591, 74592, 74593, 74594, 74595, 74596, 74597, 74598, 74599, 74600, 74601, 74602, 74603, 74604, 74605, 74606, 74607, 74608, 74609, 74610, 74611, 74612, 74613, 74614, 74615, 74616, 74617, 74618, 74619, 74620, 74621, 74622, 74623, 74624, 74625, 74626, 74627, 74628, 74629, 74630, 74631, 74632, 74633, 74634, 74635, 74636, 74637, 74638, 74639, 74640, 74641, 74642, 74643, 74644, 74645, 74646, 74647, 74648, 74649, 74880, 74881, 74882, 74883, 74884, 74885, 74886, 74887, 74888, 74889, 74890, 74891, 74892, 74893, 74894, 74895, 74896, 74897, 74898, 74899, 74900, 74901, 74902, 74903, 74904, 74905, 74906, 74907, 74908, 74909, 74910, 74911, 74912, 74913, 74914, 74915, 74916, 74917, 74918, 74919, 74920, 74921, 74922, 74923, 74924, 74925, 74926, 74927, 74928, 74929, 74930, 74931, 74932, 74933, 74934, 74935, 74936, 74937, 74938, 74939, 74940, 74941, 74942, 74943, 74944, 74945, 74946, 74947, 74948, 74949, 74950, 74951, 74952, 74953, 74954, 74955, 74956, 74957, 74958, 74959, 74960, 74961, 74962, 74963, 74964, 74965, 74966, 74967, 74968, 74969, 74970, 74971, 74972, 74973, 74974, 74975, 74976, 74977, 74978, 74979, 74980, 74981, 74982, 74983, 74984, 74985, 74986, 74987, 74988, 74989, 74990, 74991, 74992, 74993, 74994, 74995, 74996, 74997, 74998, 74999, 75000, 75001, 75002, 75003, 75004, 75005, 75006, 75007, 75008, 75009, 75010, 75011, 75012, 75013, 75014, 75015, 75016, 75017, 75018, 75019, 75020, 75021, 75022, 75023, 75024, 75025, 75026, 75027, 75028, 75029, 75030, 75031, 75032, 75033, 75034, 75035, 75036, 75037, 75038, 75039, 75040, 75041, 75042, 75043, 75044, 75045, 75046, 75047, 75048, 75049, 75050, 75051, 75052, 75053, 75054, 75055, 75056, 75057, 75058, 75059, 75060, 75061, 75062, 75063, 75064, 75065, 75066, 75067, 75068, 75069, 75070, 75071, 75072, 75073, 75074, 75075, 77824, 77825, 77826, 77827, 77828, 77829, 77830, 77831, 77832, 77833, 77834, 77835, 77836, 77837, 77838, 77839, 77840, 77841, 77842, 77843, 77844, 77845, 77846, 77847, 77848, 77849, 77850, 77851, 77852, 77853, 77854, 77855, 77856, 77857, 77858, 77859, 77860, 77861, 77862, 77863, 77864, 77865, 77866, 77867, 77868, 77869, 77870, 77871, 77872, 77873, 77874, 77875, 77876, 77877, 77878, 77879, 77880, 77881, 77882, 77883, 77884, 77885, 77886, 77887, 77888, 77889, 77890, 77891, 77892, 77893, 77894, 77895, 77896, 77897, 77898, 77899, 77900, 77901, 77902, 77903, 77904, 77905, 77906, 77907, 77908, 77909, 77910, 77911, 77912, 77913, 77914, 77915, 77916, 77917, 77918, 77919, 77920, 77921, 77922, 77923, 77924, 77925, 77926, 77927, 77928, 77929, 77930, 77931, 77932, 77933, 77934, 77935, 77936, 77937, 77938, 77939, 77940, 77941, 77942, 77943, 77944, 77945, 77946, 77947, 77948, 77949, 77950, 77951, 77952, 77953, 77954, 77955, 77956, 77957, 77958, 77959, 77960, 77961, 77962, 77963, 77964, 77965, 77966, 77967, 77968, 77969, 77970, 77971, 77972, 77973, 77974, 77975, 77976, 77977, 77978, 77979, 77980, 77981, 77982, 77983, 77984, 77985, 77986, 77987, 77988, 77989, 77990, 77991, 77992, 77993, 77994, 77995, 77996, 77997, 77998, 77999, 78000, 78001, 78002, 78003, 78004, 78005, 78006, 78007, 78008, 78009, 78010, 78011, 78012, 78013, 78014, 78015, 78016, 78017, 78018, 78019, 78020, 78021, 78022, 78023, 78024, 78025, 78026, 78027, 78028, 78029, 78030, 78031, 78032, 78033, 78034, 78035, 78036, 78037, 78038, 78039, 78040, 78041, 78042, 78043, 78044, 78045, 78046, 78047, 78048, 78049, 78050, 78051, 78052, 78053, 78054, 78055, 78056, 78057, 78058, 78059, 78060, 78061, 78062, 78063, 78064, 78065, 78066, 78067, 78068, 78069, 78070, 78071, 78072, 78073, 78074, 78075, 78076, 78077, 78078, 78079, 78080, 78081, 78082, 78083, 78084, 78085, 78086, 78087, 78088, 78089, 78090, 78091, 78092, 78093, 78094, 78095, 78096, 78097, 78098, 78099, 78100, 78101, 78102, 78103, 78104, 78105, 78106, 78107, 78108, 78109, 78110, 78111, 78112, 78113, 78114, 78115, 78116, 78117, 78118, 78119, 78120, 78121, 78122, 78123, 78124, 78125, 78126, 78127, 78128, 78129, 78130, 78131, 78132, 78133, 78134, 78135, 78136, 78137, 78138, 78139, 78140, 78141, 78142, 78143, 78144, 78145, 78146, 78147, 78148, 78149, 78150, 78151, 78152, 78153, 78154, 78155, 78156, 78157, 78158, 78159, 78160, 78161, 78162, 78163, 78164, 78165, 78166, 78167, 78168, 78169, 78170, 78171, 78172, 78173, 78174, 78175, 78176, 78177, 78178, 78179, 78180, 78181, 78182, 78183, 78184, 78185, 78186, 78187, 78188, 78189, 78190, 78191, 78192, 78193, 78194, 78195, 78196, 78197, 78198, 78199, 78200, 78201, 78202, 78203, 78204, 78205, 78206, 78207, 78208, 78209, 78210, 78211, 78212, 78213, 78214, 78215, 78216, 78217, 78218, 78219, 78220, 78221, 78222, 78223, 78224, 78225, 78226, 78227, 78228, 78229, 78230, 78231, 78232, 78233, 78234, 78235, 78236, 78237, 78238, 78239, 78240, 78241, 78242, 78243, 78244, 78245, 78246, 78247, 78248, 78249, 78250, 78251, 78252, 78253, 78254, 78255, 78256, 78257, 78258, 78259, 78260, 78261, 78262, 78263, 78264, 78265, 78266, 78267, 78268, 78269, 78270, 78271, 78272, 78273, 78274, 78275, 78276, 78277, 78278, 78279, 78280, 78281, 78282, 78283, 78284, 78285, 78286, 78287, 78288, 78289, 78290, 78291, 78292, 78293, 78294, 78295, 78296, 78297, 78298, 78299, 78300, 78301, 78302, 78303, 78304, 78305, 78306, 78307, 78308, 78309, 78310, 78311, 78312, 78313, 78314, 78315, 78316, 78317, 78318, 78319, 78320, 78321, 78322, 78323, 78324, 78325, 78326, 78327, 78328, 78329, 78330, 78331, 78332, 78333, 78334, 78335, 78336, 78337, 78338, 78339, 78340, 78341, 78342, 78343, 78344, 78345, 78346, 78347, 78348, 78349, 78350, 78351, 78352, 78353, 78354, 78355, 78356, 78357, 78358, 78359, 78360, 78361, 78362, 78363, 78364, 78365, 78366, 78367, 78368, 78369, 78370, 78371, 78372, 78373, 78374, 78375, 78376, 78377, 78378, 78379, 78380, 78381, 78382, 78383, 78384, 78385, 78386, 78387, 78388, 78389, 78390, 78391, 78392, 78393, 78394, 78395, 78396, 78397, 78398, 78399, 78400, 78401, 78402, 78403, 78404, 78405, 78406, 78407, 78408, 78409, 78410, 78411, 78412, 78413, 78414, 78415, 78416, 78417, 78418, 78419, 78420, 78421, 78422, 78423, 78424, 78425, 78426, 78427, 78428, 78429, 78430, 78431, 78432, 78433, 78434, 78435, 78436, 78437, 78438, 78439, 78440, 78441, 78442, 78443, 78444, 78445, 78446, 78447, 78448, 78449, 78450, 78451, 78452, 78453, 78454, 78455, 78456, 78457, 78458, 78459, 78460, 78461, 78462, 78463, 78464, 78465, 78466, 78467, 78468, 78469, 78470, 78471, 78472, 78473, 78474, 78475, 78476, 78477, 78478, 78479, 78480, 78481, 78482, 78483, 78484, 78485, 78486, 78487, 78488, 78489, 78490, 78491, 78492, 78493, 78494, 78495, 78496, 78497, 78498, 78499, 78500, 78501, 78502, 78503, 78504, 78505, 78506, 78507, 78508, 78509, 78510, 78511, 78512, 78513, 78514, 78515, 78516, 78517, 78518, 78519, 78520, 78521, 78522, 78523, 78524, 78525, 78526, 78527, 78528, 78529, 78530, 78531, 78532, 78533, 78534, 78535, 78536, 78537, 78538, 78539, 78540, 78541, 78542, 78543, 78544, 78545, 78546, 78547, 78548, 78549, 78550, 78551, 78552, 78553, 78554, 78555, 78556, 78557, 78558, 78559, 78560, 78561, 78562, 78563, 78564, 78565, 78566, 78567, 78568, 78569, 78570, 78571, 78572, 78573, 78574, 78575, 78576, 78577, 78578, 78579, 78580, 78581, 78582, 78583, 78584, 78585, 78586, 78587, 78588, 78589, 78590, 78591, 78592, 78593, 78594, 78595, 78596, 78597, 78598, 78599, 78600, 78601, 78602, 78603, 78604, 78605, 78606, 78607, 78608, 78609, 78610, 78611, 78612, 78613, 78614, 78615, 78616, 78617, 78618, 78619, 78620, 78621, 78622, 78623, 78624, 78625, 78626, 78627, 78628, 78629, 78630, 78631, 78632, 78633, 78634, 78635, 78636, 78637, 78638, 78639, 78640, 78641, 78642, 78643, 78644, 78645, 78646, 78647, 78648, 78649, 78650, 78651, 78652, 78653, 78654, 78655, 78656, 78657, 78658, 78659, 78660, 78661, 78662, 78663, 78664, 78665, 78666, 78667, 78668, 78669, 78670, 78671, 78672, 78673, 78674, 78675, 78676, 78677, 78678, 78679, 78680, 78681, 78682, 78683, 78684, 78685, 78686, 78687, 78688, 78689, 78690, 78691, 78692, 78693, 78694, 78695, 78696, 78697, 78698, 78699, 78700, 78701, 78702, 78703, 78704, 78705, 78706, 78707, 78708, 78709, 78710, 78711, 78712, 78713, 78714, 78715, 78716, 78717, 78718, 78719, 78720, 78721, 78722, 78723, 78724, 78725, 78726, 78727, 78728, 78729, 78730, 78731, 78732, 78733, 78734, 78735, 78736, 78737, 78738, 78739, 78740, 78741, 78742, 78743, 78744, 78745, 78746, 78747, 78748, 78749, 78750, 78751, 78752, 78753, 78754, 78755, 78756, 78757, 78758, 78759, 78760, 78761, 78762, 78763, 78764, 78765, 78766, 78767, 78768, 78769, 78770, 78771, 78772, 78773, 78774, 78775, 78776, 78777, 78778, 78779, 78780, 78781, 78782, 78783, 78784, 78785, 78786, 78787, 78788, 78789, 78790, 78791, 78792, 78793, 78794, 78795, 78796, 78797, 78798, 78799, 78800, 78801, 78802, 78803, 78804, 78805, 78806, 78807, 78808, 78809, 78810, 78811, 78812, 78813, 78814, 78815, 78816, 78817, 78818, 78819, 78820, 78821, 78822, 78823, 78824, 78825, 78826, 78827, 78828, 78829, 78830, 78831, 78832, 78833, 78834, 78835, 78836, 78837, 78838, 78839, 78840, 78841, 78842, 78843, 78844, 78845, 78846, 78847, 78848, 78849, 78850, 78851, 78852, 78853, 78854, 78855, 78856, 78857, 78858, 78859, 78860, 78861, 78862, 78863, 78864, 78865, 78866, 78867, 78868, 78869, 78870, 78871, 78872, 78873, 78874, 78875, 78876, 78877, 78878, 78879, 78880, 78881, 78882, 78883, 78884, 78885, 78886, 78887, 78888, 78889, 78890, 78891, 78892, 78893, 78894, 82944, 82945, 82946, 82947, 82948, 82949, 82950, 82951, 82952, 82953, 82954, 82955, 82956, 82957, 82958, 82959, 82960, 82961, 82962, 82963, 82964, 82965, 82966, 82967, 82968, 82969, 82970, 82971, 82972, 82973, 82974, 82975, 82976, 82977, 82978, 82979, 82980, 82981, 82982, 82983, 82984, 82985, 82986, 82987, 82988, 82989, 82990, 82991, 82992, 82993, 82994, 82995, 82996, 82997, 82998, 82999, 83000, 83001, 83002, 83003, 83004, 83005, 83006, 83007, 83008, 83009, 83010, 83011, 83012, 83013, 83014, 83015, 83016, 83017, 83018, 83019, 83020, 83021, 83022, 83023, 83024, 83025, 83026, 83027, 83028, 83029, 83030, 83031, 83032, 83033, 83034, 83035, 83036, 83037, 83038, 83039, 83040, 83041, 83042, 83043, 83044, 83045, 83046, 83047, 83048, 83049, 83050, 83051, 83052, 83053, 83054, 83055, 83056, 83057, 83058, 83059, 83060, 83061, 83062, 83063, 83064, 83065, 83066, 83067, 83068, 83069, 83070, 83071, 83072, 83073, 83074, 83075, 83076, 83077, 83078, 83079, 83080, 83081, 83082, 83083, 83084, 83085, 83086, 83087, 83088, 83089, 83090, 83091, 83092, 83093, 83094, 83095, 83096, 83097, 83098, 83099, 83100, 83101, 83102, 83103, 83104, 83105, 83106, 83107, 83108, 83109, 83110, 83111, 83112, 83113, 83114, 83115, 83116, 83117, 83118, 83119, 83120, 83121, 83122, 83123, 83124, 83125, 83126, 83127, 83128, 83129, 83130, 83131, 83132, 83133, 83134, 83135, 83136, 83137, 83138, 83139, 83140, 83141, 83142, 83143, 83144, 83145, 83146, 83147, 83148, 83149, 83150, 83151, 83152, 83153, 83154, 83155, 83156, 83157, 83158, 83159, 83160, 83161, 83162, 83163, 83164, 83165, 83166, 83167, 83168, 83169, 83170, 83171, 83172, 83173, 83174, 83175, 83176, 83177, 83178, 83179, 83180, 83181, 83182, 83183, 83184, 83185, 83186, 83187, 83188, 83189, 83190, 83191, 83192, 83193, 83194, 83195, 83196, 83197, 83198, 83199, 83200, 83201, 83202, 83203, 83204, 83205, 83206, 83207, 83208, 83209, 83210, 83211, 83212, 83213, 83214, 83215, 83216, 83217, 83218, 83219, 83220, 83221, 83222, 83223, 83224, 83225, 83226, 83227, 83228, 83229, 83230, 83231, 83232, 83233, 83234, 83235, 83236, 83237, 83238, 83239, 83240, 83241, 83242, 83243, 83244, 83245, 83246, 83247, 83248, 83249, 83250, 83251, 83252, 83253, 83254, 83255, 83256, 83257, 83258, 83259, 83260, 83261, 83262, 83263, 83264, 83265, 83266, 83267, 83268, 83269, 83270, 83271, 83272, 83273, 83274, 83275, 83276, 83277, 83278, 83279, 83280, 83281, 83282, 83283, 83284, 83285, 83286, 83287, 83288, 83289, 83290, 83291, 83292, 83293, 83294, 83295, 83296, 83297, 83298, 83299, 83300, 83301, 83302, 83303, 83304, 83305, 83306, 83307, 83308, 83309, 83310, 83311, 83312, 83313, 83314, 83315, 83316, 83317, 83318, 83319, 83320, 83321, 83322, 83323, 83324, 83325, 83326, 83327, 83328, 83329, 83330, 83331, 83332, 83333, 83334, 83335, 83336, 83337, 83338, 83339, 83340, 83341, 83342, 83343, 83344, 83345, 83346, 83347, 83348, 83349, 83350, 83351, 83352, 83353, 83354, 83355, 83356, 83357, 83358, 83359, 83360, 83361, 83362, 83363, 83364, 83365, 83366, 83367, 83368, 83369, 83370, 83371, 83372, 83373, 83374, 83375, 83376, 83377, 83378, 83379, 83380, 83381, 83382, 83383, 83384, 83385, 83386, 83387, 83388, 83389, 83390, 83391, 83392, 83393, 83394, 83395, 83396, 83397, 83398, 83399, 83400, 83401, 83402, 83403, 83404, 83405, 83406, 83407, 83408, 83409, 83410, 83411, 83412, 83413, 83414, 83415, 83416, 83417, 83418, 83419, 83420, 83421, 83422, 83423, 83424, 83425, 83426, 83427, 83428, 83429, 83430, 83431, 83432, 83433, 83434, 83435, 83436, 83437, 83438, 83439, 83440, 83441, 83442, 83443, 83444, 83445, 83446, 83447, 83448, 83449, 83450, 83451, 83452, 83453, 83454, 83455, 83456, 83457, 83458, 83459, 83460, 83461, 83462, 83463, 83464, 83465, 83466, 83467, 83468, 83469, 83470, 83471, 83472, 83473, 83474, 83475, 83476, 83477, 83478, 83479, 83480, 83481, 83482, 83483, 83484, 83485, 83486, 83487, 83488, 83489, 83490, 83491, 83492, 83493, 83494, 83495, 83496, 83497, 83498, 83499, 83500, 83501, 83502, 83503, 83504, 83505, 83506, 83507, 83508, 83509, 83510, 83511, 83512, 83513, 83514, 83515, 83516, 83517, 83518, 83519, 83520, 83521, 83522, 83523, 83524, 83525, 83526, 92160, 92161, 92162, 92163, 92164, 92165, 92166, 92167, 92168, 92169, 92170, 92171, 92172, 92173, 92174, 92175, 92176, 92177, 92178, 92179, 92180, 92181, 92182, 92183, 92184, 92185, 92186, 92187, 92188, 92189, 92190, 92191, 92192, 92193, 92194, 92195, 92196, 92197, 92198, 92199, 92200, 92201, 92202, 92203, 92204, 92205, 92206, 92207, 92208, 92209, 92210, 92211, 92212, 92213, 92214, 92215, 92216, 92217, 92218, 92219, 92220, 92221, 92222, 92223, 92224, 92225, 92226, 92227, 92228, 92229, 92230, 92231, 92232, 92233, 92234, 92235, 92236, 92237, 92238, 92239, 92240, 92241, 92242, 92243, 92244, 92245, 92246, 92247, 92248, 92249, 92250, 92251, 92252, 92253, 92254, 92255, 92256, 92257, 92258, 92259, 92260, 92261, 92262, 92263, 92264, 92265, 92266, 92267, 92268, 92269, 92270, 92271, 92272, 92273, 92274, 92275, 92276, 92277, 92278, 92279, 92280, 92281, 92282, 92283, 92284, 92285, 92286, 92287, 92288, 92289, 92290, 92291, 92292, 92293, 92294, 92295, 92296, 92297, 92298, 92299, 92300, 92301, 92302, 92303, 92304, 92305, 92306, 92307, 92308, 92309, 92310, 92311, 92312, 92313, 92314, 92315, 92316, 92317, 92318, 92319, 92320, 92321, 92322, 92323, 92324, 92325, 92326, 92327, 92328, 92329, 92330, 92331, 92332, 92333, 92334, 92335, 92336, 92337, 92338, 92339, 92340, 92341, 92342, 92343, 92344, 92345, 92346, 92347, 92348, 92349, 92350, 92351, 92352, 92353, 92354, 92355, 92356, 92357, 92358, 92359, 92360, 92361, 92362, 92363, 92364, 92365, 92366, 92367, 92368, 92369, 92370, 92371, 92372, 92373, 92374, 92375, 92376, 92377, 92378, 92379, 92380, 92381, 92382, 92383, 92384, 92385, 92386, 92387, 92388, 92389, 92390, 92391, 92392, 92393, 92394, 92395, 92396, 92397, 92398, 92399, 92400, 92401, 92402, 92403, 92404, 92405, 92406, 92407, 92408, 92409, 92410, 92411, 92412, 92413, 92414, 92415, 92416, 92417, 92418, 92419, 92420, 92421, 92422, 92423, 92424, 92425, 92426, 92427, 92428, 92429, 92430, 92431, 92432, 92433, 92434, 92435, 92436, 92437, 92438, 92439, 92440, 92441, 92442, 92443, 92444, 92445, 92446, 92447, 92448, 92449, 92450, 92451, 92452, 92453, 92454, 92455, 92456, 92457, 92458, 92459, 92460, 92461, 92462, 92463, 92464, 92465, 92466, 92467, 92468, 92469, 92470, 92471, 92472, 92473, 92474, 92475, 92476, 92477, 92478, 92479, 92480, 92481, 92482, 92483, 92484, 92485, 92486, 92487, 92488, 92489, 92490, 92491, 92492, 92493, 92494, 92495, 92496, 92497, 92498, 92499, 92500, 92501, 92502, 92503, 92504, 92505, 92506, 92507, 92508, 92509, 92510, 92511, 92512, 92513, 92514, 92515, 92516, 92517, 92518, 92519, 92520, 92521, 92522, 92523, 92524, 92525, 92526, 92527, 92528, 92529, 92530, 92531, 92532, 92533, 92534, 92535, 92536, 92537, 92538, 92539, 92540, 92541, 92542, 92543, 92544, 92545, 92546, 92547, 92548, 92549, 92550, 92551, 92552, 92553, 92554, 92555, 92556, 92557, 92558, 92559, 92560, 92561, 92562, 92563, 92564, 92565, 92566, 92567, 92568, 92569, 92570, 92571, 92572, 92573, 92574, 92575, 92576, 92577, 92578, 92579, 92580, 92581, 92582, 92583, 92584, 92585, 92586, 92587, 92588, 92589, 92590, 92591, 92592, 92593, 92594, 92595, 92596, 92597, 92598, 92599, 92600, 92601, 92602, 92603, 92604, 92605, 92606, 92607, 92608, 92609, 92610, 92611, 92612, 92613, 92614, 92615, 92616, 92617, 92618, 92619, 92620, 92621, 92622, 92623, 92624, 92625, 92626, 92627, 92628, 92629, 92630, 92631, 92632, 92633, 92634, 92635, 92636, 92637, 92638, 92639, 92640, 92641, 92642, 92643, 92644, 92645, 92646, 92647, 92648, 92649, 92650, 92651, 92652, 92653, 92654, 92655, 92656, 92657, 92658, 92659, 92660, 92661, 92662, 92663, 92664, 92665, 92666, 92667, 92668, 92669, 92670, 92671, 92672, 92673, 92674, 92675, 92676, 92677, 92678, 92679, 92680, 92681, 92682, 92683, 92684, 92685, 92686, 92687, 92688, 92689, 92690, 92691, 92692, 92693, 92694, 92695, 92696, 92697, 92698, 92699, 92700, 92701, 92702, 92703, 92704, 92705, 92706, 92707, 92708, 92709, 92710, 92711, 92712, 92713, 92714, 92715, 92716, 92717, 92718, 92719, 92720, 92721, 92722, 92723, 92724, 92725, 92726, 92727, 92728, 92736, 92737, 92738, 92739, 92740, 92741, 92742, 92743, 92744, 92745, 92746, 92747, 92748, 92749, 92750, 92751, 92752, 92753, 92754, 92755, 92756, 92757, 92758, 92759, 92760, 92761, 92762, 92763, 92764, 92765, 92766, 92880, 92881, 92882, 92883, 92884, 92885, 92886, 92887, 92888, 92889, 92890, 92891, 92892, 92893, 92894, 92895, 92896, 92897, 92898, 92899, 92900, 92901, 92902, 92903, 92904, 92905, 92906, 92907, 92908, 92909, 92928, 92929, 92930, 92931, 92932, 92933, 92934, 92935, 92936, 92937, 92938, 92939, 92940, 92941, 92942, 92943, 92944, 92945, 92946, 92947, 92948, 92949, 92950, 92951, 92952, 92953, 92954, 92955, 92956, 92957, 92958, 92959, 92960, 92961, 92962, 92963, 92964, 92965, 92966, 92967, 92968, 92969, 92970, 92971, 92972, 92973, 92974, 92975, 92992, 92993, 92994, 92995, 93027, 93028, 93029, 93030, 93031, 93032, 93033, 93034, 93035, 93036, 93037, 93038, 93039, 93040, 93041, 93042, 93043, 93044, 93045, 93046, 93047, 93053, 93054, 93055, 93056, 93057, 93058, 93059, 93060, 93061, 93062, 93063, 93064, 93065, 93066, 93067, 93068, 93069, 93070, 93071, 93952, 93953, 93954, 93955, 93956, 93957, 93958, 93959, 93960, 93961, 93962, 93963, 93964, 93965, 93966, 93967, 93968, 93969, 93970, 93971, 93972, 93973, 93974, 93975, 93976, 93977, 93978, 93979, 93980, 93981, 93982, 93983, 93984, 93985, 93986, 93987, 93988, 93989, 93990, 93991, 93992, 93993, 93994, 93995, 93996, 93997, 93998, 93999, 94000, 94001, 94002, 94003, 94004, 94005, 94006, 94007, 94008, 94009, 94010, 94011, 94012, 94013, 94014, 94015, 94016, 94017, 94018, 94019, 94020, 94032, 94099, 94100, 94101, 94102, 94103, 94104, 94105, 94106, 94107, 94108, 94109, 94110, 94111, 110592, 110593, 113664, 113665, 113666, 113667, 113668, 113669, 113670, 113671, 113672, 113673, 113674, 113675, 113676, 113677, 113678, 113679, 113680, 113681, 113682, 113683, 113684, 113685, 113686, 113687, 113688, 113689, 113690, 113691, 113692, 113693, 113694, 113695, 113696, 113697, 113698, 113699, 113700, 113701, 113702, 113703, 113704, 113705, 113706, 113707, 113708, 113709, 113710, 113711, 113712, 113713, 113714, 113715, 113716, 113717, 113718, 113719, 113720, 113721, 113722, 113723, 113724, 113725, 113726, 113727, 113728, 113729, 113730, 113731, 113732, 113733, 113734, 113735, 113736, 113737, 113738, 113739, 113740, 113741, 113742, 113743, 113744, 113745, 113746, 113747, 113748, 113749, 113750, 113751, 113752, 113753, 113754, 113755, 113756, 113757, 113758, 113759, 113760, 113761, 113762, 113763, 113764, 113765, 113766, 113767, 113768, 113769, 113770, 113776, 113777, 113778, 113779, 113780, 113781, 113782, 113783, 113784, 113785, 113786, 113787, 113788, 113792, 113793, 113794, 113795, 113796, 113797, 113798, 113799, 113800, 113808, 113809, 113810, 113811, 113812, 113813, 113814, 113815, 113816, 113817, 119808, 119809, 119810, 119811, 119812, 119813, 119814, 119815, 119816, 119817, 119818, 119819, 119820, 119821, 119822, 119823, 119824, 119825, 119826, 119827, 119828, 119829, 119830, 119831, 119832, 119833, 119834, 119835, 119836, 119837, 119838, 119839, 119840, 119841, 119842, 119843, 119844, 119845, 119846, 119847, 119848, 119849, 119850, 119851, 119852, 119853, 119854, 119855, 119856, 119857, 119858, 119859, 119860, 119861, 119862, 119863, 119864, 119865, 119866, 119867, 119868, 119869, 119870, 119871, 119872, 119873, 119874, 119875, 119876, 119877, 119878, 119879, 119880, 119881, 119882, 119883, 119884, 119885, 119886, 119887, 119888, 119889, 119890, 119891, 119892, 119894, 119895, 119896, 119897, 119898, 119899, 119900, 119901, 119902, 119903, 119904, 119905, 119906, 119907, 119908, 119909, 119910, 119911, 119912, 119913, 119914, 119915, 119916, 119917, 119918, 119919, 119920, 119921, 119922, 119923, 119924, 119925, 119926, 119927, 119928, 119929, 119930, 119931, 119932, 119933, 119934, 119935, 119936, 119937, 119938, 119939, 119940, 119941, 119942, 119943, 119944, 119945, 119946, 119947, 119948, 119949, 119950, 119951, 119952, 119953, 119954, 119955, 119956, 119957, 119958, 119959, 119960, 119961, 119962, 119963, 119964, 119966, 119967, 119970, 119973, 119974, 119977, 119978, 119979, 119980, 119982, 119983, 119984, 119985, 119986, 119987, 119988, 119989, 119990, 119991, 119992, 119993, 119995, 119997, 119998, 119999, 120000, 120001, 120002, 120003, 120005, 120006, 120007, 120008, 120009, 120010, 120011, 120012, 120013, 120014, 120015, 120016, 120017, 120018, 120019, 120020, 120021, 120022, 120023, 120024, 120025, 120026, 120027, 120028, 120029, 120030, 120031, 120032, 120033, 120034, 120035, 120036, 120037, 120038, 120039, 120040, 120041, 120042, 120043, 120044, 120045, 120046, 120047, 120048, 120049, 120050, 120051, 120052, 120053, 120054, 120055, 120056, 120057, 120058, 120059, 120060, 120061, 120062, 120063, 120064, 120065, 120066, 120067, 120068, 120069, 120071, 120072, 120073, 120074, 120077, 120078, 120079, 120080, 120081, 120082, 120083, 120084, 120086, 120087, 120088, 120089, 120090, 120091, 120092, 120094, 120095, 120096, 120097, 120098, 120099, 120100, 120101, 120102, 120103, 120104, 120105, 120106, 120107, 120108, 120109, 120110, 120111, 120112, 120113, 120114, 120115, 120116, 120117, 120118, 120119, 120120, 120121, 120123, 120124, 120125, 120126, 120128, 120129, 120130, 120131, 120132, 120134, 120138, 120139, 120140, 120141, 120142, 120143, 120144, 120146, 120147, 120148, 120149, 120150, 120151, 120152, 120153, 120154, 120155, 120156, 120157, 120158, 120159, 120160, 120161, 120162, 120163, 120164, 120165, 120166, 120167, 120168, 120169, 120170, 120171, 120172, 120173, 120174, 120175, 120176, 120177, 120178, 120179, 120180, 120181, 120182, 120183, 120184, 120185, 120186, 120187, 120188, 120189, 120190, 120191, 120192, 120193, 120194, 120195, 120196, 120197, 120198, 120199, 120200, 120201, 120202, 120203, 120204, 120205, 120206, 120207, 120208, 120209, 120210, 120211, 120212, 120213, 120214, 120215, 120216, 120217, 120218, 120219, 120220, 120221, 120222, 120223, 120224, 120225, 120226, 120227, 120228, 120229, 120230, 120231, 120232, 120233, 120234, 120235, 120236, 120237, 120238, 120239, 120240, 120241, 120242, 120243, 120244, 120245, 120246, 120247, 120248, 120249, 120250, 120251, 120252, 120253, 120254, 120255, 120256, 120257, 120258, 120259, 120260, 120261, 120262, 120263, 120264, 120265, 120266, 120267, 120268, 120269, 120270, 120271, 120272, 120273, 120274, 120275, 120276, 120277, 120278, 120279, 120280, 120281, 120282, 120283, 120284, 120285, 120286, 120287, 120288, 120289, 120290, 120291, 120292, 120293, 120294, 120295, 120296, 120297, 120298, 120299, 120300, 120301, 120302, 120303, 120304, 120305, 120306, 120307, 120308, 120309, 120310, 120311, 120312, 120313, 120314, 120315, 120316, 120317, 120318, 120319, 120320, 120321, 120322, 120323, 120324, 120325, 120326, 120327, 120328, 120329, 120330, 120331, 120332, 120333, 120334, 120335, 120336, 120337, 120338, 120339, 120340, 120341, 120342, 120343, 120344, 120345, 120346, 120347, 120348, 120349, 120350, 120351, 120352, 120353, 120354, 120355, 120356, 120357, 120358, 120359, 120360, 120361, 120362, 120363, 120364, 120365, 120366, 120367, 120368, 120369, 120370, 120371, 120372, 120373, 120374, 120375, 120376, 120377, 120378, 120379, 120380, 120381, 120382, 120383, 120384, 120385, 120386, 120387, 120388, 120389, 120390, 120391, 120392, 120393, 120394, 120395, 120396, 120397, 120398, 120399, 120400, 120401, 120402, 120403, 120404, 120405, 120406, 120407, 120408, 120409, 120410, 120411, 120412, 120413, 120414, 120415, 120416, 120417, 120418, 120419, 120420, 120421, 120422, 120423, 120424, 120425, 120426, 120427, 120428, 120429, 120430, 120431, 120432, 120433, 120434, 120435, 120436, 120437, 120438, 120439, 120440, 120441, 120442, 120443, 120444, 120445, 120446, 120447, 120448, 120449, 120450, 120451, 120452, 120453, 120454, 120455, 120456, 120457, 120458, 120459, 120460, 120461, 120462, 120463, 120464, 120465, 120466, 120467, 120468, 120469, 120470, 120471, 120472, 120473, 120474, 120475, 120476, 120477, 120478, 120479, 120480, 120481, 120482, 120483, 120484, 120485, 120488, 120489, 120490, 120491, 120492, 120493, 120494, 120495, 120496, 120497, 120498, 120499, 120500, 120501, 120502, 120503, 120504, 120505, 120506, 120507, 120508, 120509, 120510, 120511, 120512, 120514, 120515, 120516, 120517, 120518, 120519, 120520, 120521, 120522, 120523, 120524, 120525, 120526, 120527, 120528, 120529, 120530, 120531, 120532, 120533, 120534, 120535, 120536, 120537, 120538, 120540, 120541, 120542, 120543, 120544, 120545, 120546, 120547, 120548, 120549, 120550, 120551, 120552, 120553, 120554, 120555, 120556, 120557, 120558, 120559, 120560, 120561, 120562, 120563, 120564, 120565, 120566, 120567, 120568, 120569, 120570, 120572, 120573, 120574, 120575, 120576, 120577, 120578, 120579, 120580, 120581, 120582, 120583, 120584, 120585, 120586, 120587, 120588, 120589, 120590, 120591, 120592, 120593, 120594, 120595, 120596, 120598, 120599, 120600, 120601, 120602, 120603, 120604, 120605, 120606, 120607, 120608, 120609, 120610, 120611, 120612, 120613, 120614, 120615, 120616, 120617, 120618, 120619, 120620, 120621, 120622, 120623, 120624, 120625, 120626, 120627, 120628, 120630, 120631, 120632, 120633, 120634, 120635, 120636, 120637, 120638, 120639, 120640, 120641, 120642, 120643, 120644, 120645, 120646, 120647, 120648, 120649, 120650, 120651, 120652, 120653, 120654, 120656, 120657, 120658, 120659, 120660, 120661, 120662, 120663, 120664, 120665, 120666, 120667, 120668, 120669, 120670, 120671, 120672, 120673, 120674, 120675, 120676, 120677, 120678, 120679, 120680, 120681, 120682, 120683, 120684, 120685, 120686, 120688, 120689, 120690, 120691, 120692, 120693, 120694, 120695, 120696, 120697, 120698, 120699, 120700, 120701, 120702, 120703, 120704, 120705, 120706, 120707, 120708, 120709, 120710, 120711, 120712, 120714, 120715, 120716, 120717, 120718, 120719, 120720, 120721, 120722, 120723, 120724, 120725, 120726, 120727, 120728, 120729, 120730, 120731, 120732, 120733, 120734, 120735, 120736, 120737, 120738, 120739, 120740, 120741, 120742, 120743, 120744, 120746, 120747, 120748, 120749, 120750, 120751, 120752, 120753, 120754, 120755, 120756, 120757, 120758, 120759, 120760, 120761, 120762, 120763, 120764, 120765, 120766, 120767, 120768, 120769, 120770, 120772, 120773, 120774, 120775, 120776, 120777, 120778, 120779, 124928, 124929, 124930, 124931, 124932, 124933, 124934, 124935, 124936, 124937, 124938, 124939, 124940, 124941, 124942, 124943, 124944, 124945, 124946, 124947, 124948, 124949, 124950, 124951, 124952, 124953, 124954, 124955, 124956, 124957, 124958, 124959, 124960, 124961, 124962, 124963, 124964, 124965, 124966, 124967, 124968, 124969, 124970, 124971, 124972, 124973, 124974, 124975, 124976, 124977, 124978, 124979, 124980, 124981, 124982, 124983, 124984, 124985, 124986, 124987, 124988, 124989, 124990, 124991, 124992, 124993, 124994, 124995, 124996, 124997, 124998, 124999, 125000, 125001, 125002, 125003, 125004, 125005, 125006, 125007, 125008, 125009, 125010, 125011, 125012, 125013, 125014, 125015, 125016, 125017, 125018, 125019, 125020, 125021, 125022, 125023, 125024, 125025, 125026, 125027, 125028, 125029, 125030, 125031, 125032, 125033, 125034, 125035, 125036, 125037, 125038, 125039, 125040, 125041, 125042, 125043, 125044, 125045, 125046, 125047, 125048, 125049, 125050, 125051, 125052, 125053, 125054, 125055, 125056, 125057, 125058, 125059, 125060, 125061, 125062, 125063, 125064, 125065, 125066, 125067, 125068, 125069, 125070, 125071, 125072, 125073, 125074, 125075, 125076, 125077, 125078, 125079, 125080, 125081, 125082, 125083, 125084, 125085, 125086, 125087, 125088, 125089, 125090, 125091, 125092, 125093, 125094, 125095, 125096, 125097, 125098, 125099, 125100, 125101, 125102, 125103, 125104, 125105, 125106, 125107, 125108, 125109, 125110, 125111, 125112, 125113, 125114, 125115, 125116, 125117, 125118, 125119, 125120, 125121, 125122, 125123, 125124, 126464, 126465, 126466, 126467, 126469, 126470, 126471, 126472, 126473, 126474, 126475, 126476, 126477, 126478, 126479, 126480, 126481, 126482, 126483, 126484, 126485, 126486, 126487, 126488, 126489, 126490, 126491, 126492, 126493, 126494, 126495, 126497, 126498, 126500, 126503, 126505, 126506, 126507, 126508, 126509, 126510, 126511, 126512, 126513, 126514, 126516, 126517, 126518, 126519, 126521, 126523, 126530, 126535, 126537, 126539, 126541, 126542, 126543, 126545, 126546, 126548, 126551, 126553, 126555, 126557, 126559, 126561, 126562, 126564, 126567, 126568, 126569, 126570, 126572, 126573, 126574, 126575, 126576, 126577, 126578, 126580, 126581, 126582, 126583, 126585, 126586, 126587, 126588, 126590, 126592, 126593, 126594, 126595, 126596, 126597, 126598, 126599, 126600, 126601, 126603, 126604, 126605, 126606, 126607, 126608, 126609, 126610, 126611, 126612, 126613, 126614, 126615, 126616, 126617, 126618, 126619, 126625, 126626, 126627, 126629, 126630, 126631, 126632, 126633, 126635, 126636, 126637, 126638, 126639, 126640, 126641, 126642, 126643, 126644, 126645, 126646, 126647, 126648, 126649, 126650, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 194560, 194561, 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, 194570, 194571, 194572, 194573, 194574, 194575, 194576, 194577, 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, 194586, 194587, 194588, 194589, 194590, 194591, 194592, 194593, 194594, 194595, 194596, 194597, 194598, 194599, 194600, 194601, 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, 194610, 194611, 194612, 194613, 194614, 194615, 194616, 194617, 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, 194626, 194627, 194628, 194629, 194630, 194631, 194632, 194633, 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, 194642, 194643, 194644, 194645, 194646, 194647, 194648, 194649, 194650, 194651, 194652, 194653, 194654, 194655, 194656, 194657, 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, 194666, 194667, 194668, 194669, 194670, 194671, 194672, 194673, 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684, 194685, 194686, 194687, 194688, 194689, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, 194698, 194699, 194700, 194701, 194702, 194703, 194704, 194705, 194706, 194707, 194708, 194709, 194710, 194711, 194712, 194713, 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, 194722, 194723, 194724, 194725, 194726, 194727, 194728, 194729, 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, 194738, 194739, 194740, 194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, 194754, 194755, 194756, 194757, 194758, 194759, 194760, 194761, 194762, 194763, 194764, 194765, 194766, 194767, 194768, 194769, 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, 194778, 194779, 194780, 194781, 194782, 194783, 194784, 194785, 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, 194794, 194795, 194796, 194797, 194798, 194799, 194800, 194801, 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, 194810, 194811, 194812, 194813, 194814, 194815, 194816, 194817, 194818, 194819, 194820, 194821, 194822, 194823, 194824, 194825, 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, 194834, 194835, 194836, 194837, 194838, 194839, 194840, 194841, 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, 194850, 194851, 194852, 194853, 194854, 194855, 194856, 194857, 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, 194866, 194867, 194868, 194869, 194870, 194871, 194872, 194873, 194874, 194875, 194876, 194877, 194878, 194879, 194880, 194881, 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, 194890, 194891, 194892, 194893, 194894, 194895, 194896, 194897, 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, 194906, 194907, 194908, 194909, 194910, 194911, 194912, 194913, 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, 194922, 194923, 194924, 194925, 194926, 194927, 194928, 194929, 194930, 194931, 194932, 194933, 194934, 194935, 194936, 194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194947, 194948, 194949, 194950, 194951, 194952, 194953, 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, 194962, 194963, 194964, 194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978, 194979, 194980, 194981, 194982, 194983, 194984, 194985, 194986, 194987, 194988, 194989, 194990, 194991, 194992, 194993, 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, 195002, 195003, 195004, 195005, 195006, 195007, 195008, 195009, 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, 195018, 195019, 195020, 195021, 195022, 195023, 195024, 195025, 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, 195034, 195035, 195036, 195037, 195038, 195039, 195040, 195041, 195042, 195043, 195044, 195045, 195046, 195047, 195048, 195049, 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, 195058, 195059, 195060, 195061, 195062, 195063, 195064, 195065, 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, 195074, 195075, 195076, 195077, 195078, 195079, 195080, 195081, 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, 195090, 195091, 195092, 195093, 195094, 195095, 195096, 195097, 195098, 195099, 195100, 195101]; + + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/M.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/M.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +/* + * List of Unicode code that are flagged as mark. + * + * Contains Unicode code of: + * - Mc = Mark, spacing combining + * - Me = Mark, enclosing + * - Mn = Mark, nonspacing + * + * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt + * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Mc;|;Me;|;Mn;' | cut -d \; -f 1 | xargs -I{} printf '%d, ' 0x{} + * + */ +exports.M = [768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1473, 1474, 1476, 1477, 1479, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1648, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1762, 1763, 1764, 1767, 1768, 1770, 1771, 1772, 1773, 1809, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2085, 2086, 2087, 2089, 2090, 2091, 2092, 2093, 2137, 2138, 2139, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2402, 2403, 2433, 2434, 2435, 2492, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2503, 2504, 2507, 2508, 2509, 2519, 2530, 2531, 2561, 2562, 2563, 2620, 2622, 2623, 2624, 2625, 2626, 2631, 2632, 2635, 2636, 2637, 2641, 2672, 2673, 2677, 2689, 2690, 2691, 2748, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2759, 2760, 2761, 2763, 2764, 2765, 2786, 2787, 2817, 2818, 2819, 2876, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2887, 2888, 2891, 2892, 2893, 2902, 2903, 2914, 2915, 2946, 3006, 3007, 3008, 3009, 3010, 3014, 3015, 3016, 3018, 3019, 3020, 3021, 3031, 3072, 3073, 3074, 3075, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3142, 3143, 3144, 3146, 3147, 3148, 3149, 3157, 3158, 3170, 3171, 3201, 3202, 3203, 3260, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3270, 3271, 3272, 3274, 3275, 3276, 3277, 3285, 3286, 3298, 3299, 3329, 3330, 3331, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3398, 3399, 3400, 3402, 3403, 3404, 3405, 3415, 3426, 3427, 3458, 3459, 3530, 3535, 3536, 3537, 3538, 3539, 3540, 3542, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3570, 3571, 3633, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3761, 3764, 3765, 3766, 3767, 3768, 3769, 3771, 3772, 3784, 3785, 3786, 3787, 3788, 3789, 3864, 3865, 3893, 3895, 3897, 3902, 3903, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3974, 3975, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4038, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4182, 4183, 4184, 4185, 4190, 4191, 4192, 4194, 4195, 4196, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4209, 4210, 4211, 4212, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4239, 4250, 4251, 4252, 4253, 4957, 4958, 4959, 5906, 5907, 5908, 5938, 5939, 5940, 5970, 5971, 6002, 6003, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6109, 6155, 6156, 6157, 6313, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6679, 6680, 6681, 6682, 6683, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6783, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6912, 6913, 6914, 6915, 6916, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7040, 7041, 7042, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7376, 7377, 7378, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7405, 7410, 7411, 7412, 7416, 7417, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7676, 7677, 7678, 7679, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 11503, 11504, 11505, 11647, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 12330, 12331, 12332, 12333, 12334, 12335, 12441, 12442, 42607, 42608, 42609, 42610, 42612, 42613, 42614, 42615, 42616, 42617, 42618, 42619, 42620, 42621, 42654, 42655, 42736, 42737, 43010, 43014, 43019, 43043, 43044, 43045, 43046, 43047, 43136, 43137, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43302, 43303, 43304, 43305, 43306, 43307, 43308, 43309, 43335, 43336, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 43344, 43345, 43346, 43347, 43392, 43393, 43394, 43395, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43493, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43587, 43596, 43597, 43643, 43644, 43645, 43696, 43698, 43699, 43700, 43703, 43704, 43710, 43711, 43713, 43755, 43756, 43757, 43758, 43759, 43765, 43766, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44012, 44013, 64286, 65024, 65025, 65026, 65027, 65028, 65029, 65030, 65031, 65032, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65056, 65057, 65058, 65059, 65060, 65061, 65062, 65063, 65064, 65065, 65066, 65067, 65068, 65069, 65070, 65071, 66045, 66272, 66422, 66423, 66424, 66425, 66426, 68097, 68098, 68099, 68101, 68102, 68108, 68109, 68110, 68111, 68152, 68153, 68154, 68159, 68325, 68326, 69632, 69633, 69634, 69688, 69689, 69690, 69691, 69692, 69693, 69694, 69695, 69696, 69697, 69698, 69699, 69700, 69701, 69702, 69759, 69760, 69761, 69762, 69808, 69809, 69810, 69811, 69812, 69813, 69814, 69815, 69816, 69817, 69818, 69888, 69889, 69890, 69927, 69928, 69929, 69930, 69931, 69932, 69933, 69934, 69935, 69936, 69937, 69938, 69939, 69940, 70003, 70016, 70017, 70018, 70067, 70068, 70069, 70070, 70071, 70072, 70073, 70074, 70075, 70076, 70077, 70078, 70079, 70080, 70090, 70091, 70092, 70188, 70189, 70190, 70191, 70192, 70193, 70194, 70195, 70196, 70197, 70198, 70199, 70367, 70368, 70369, 70370, 70371, 70372, 70373, 70374, 70375, 70376, 70377, 70378, 70400, 70401, 70402, 70403, 70460, 70462, 70463, 70464, 70465, 70466, 70467, 70468, 70471, 70472, 70475, 70476, 70477, 70487, 70498, 70499, 70502, 70503, 70504, 70505, 70506, 70507, 70508, 70512, 70513, 70514, 70515, 70516, 70832, 70833, 70834, 70835, 70836, 70837, 70838, 70839, 70840, 70841, 70842, 70843, 70844, 70845, 70846, 70847, 70848, 70849, 70850, 70851, 71087, 71088, 71089, 71090, 71091, 71092, 71093, 71096, 71097, 71098, 71099, 71100, 71101, 71102, 71103, 71104, 71132, 71133, 71216, 71217, 71218, 71219, 71220, 71221, 71222, 71223, 71224, 71225, 71226, 71227, 71228, 71229, 71230, 71231, 71232, 71339, 71340, 71341, 71342, 71343, 71344, 71345, 71346, 71347, 71348, 71349, 71350, 71351, 71453, 71454, 71455, 71456, 71457, 71458, 71459, 71460, 71461, 71462, 71463, 71464, 71465, 71466, 71467, 92912, 92913, 92914, 92915, 92916, 92976, 92977, 92978, 92979, 92980, 92981, 92982, 94033, 94034, 94035, 94036, 94037, 94038, 94039, 94040, 94041, 94042, 94043, 94044, 94045, 94046, 94047, 94048, 94049, 94050, 94051, 94052, 94053, 94054, 94055, 94056, 94057, 94058, 94059, 94060, 94061, 94062, 94063, 94064, 94065, 94066, 94067, 94068, 94069, 94070, 94071, 94072, 94073, 94074, 94075, 94076, 94077, 94078, 94095, 94096, 94097, 94098, 113821, 113822, 119141, 119142, 119143, 119144, 119145, 119149, 119150, 119151, 119152, 119153, 119154, 119163, 119164, 119165, 119166, 119167, 119168, 119169, 119170, 119173, 119174, 119175, 119176, 119177, 119178, 119179, 119210, 119211, 119212, 119213, 119362, 119363, 119364, 121344, 121345, 121346, 121347, 121348, 121349, 121350, 121351, 121352, 121353, 121354, 121355, 121356, 121357, 121358, 121359, 121360, 121361, 121362, 121363, 121364, 121365, 121366, 121367, 121368, 121369, 121370, 121371, 121372, 121373, 121374, 121375, 121376, 121377, 121378, 121379, 121380, 121381, 121382, 121383, 121384, 121385, 121386, 121387, 121388, 121389, 121390, 121391, 121392, 121393, 121394, 121395, 121396, 121397, 121398, 121403, 121404, 121405, 121406, 121407, 121408, 121409, 121410, 121411, 121412, 121413, 121414, 121415, 121416, 121417, 121418, 121419, 121420, 121421, 121422, 121423, 121424, 121425, 121426, 121427, 121428, 121429, 121430, 121431, 121432, 121433, 121434, 121435, 121436, 121437, 121438, 121439, 121440, 121441, 121442, 121443, 121444, 121445, 121446, 121447, 121448, 121449, 121450, 121451, 121452, 121461, 121476, 121499, 121500, 121501, 121502, 121503, 121505, 121506, 121507, 121508, 121509, 121510, 121511, 121512, 121513, 121514, 121515, 121516, 121517, 121518, 121519, 125136, 125137, 125138, 125139, 125140, 125141, 125142, 917760, 917761, 917762, 917763, 917764, 917765, 917766, 917767, 917768, 917769, 917770, 917771, 917772, 917773, 917774, 917775, 917776, 917777, 917778, 917779, 917780, 917781, 917782, 917783, 917784, 917785, 917786, 917787, 917788, 917789, 917790, 917791, 917792, 917793, 917794, 917795, 917796, 917797, 917798, 917799, 917800, 917801, 917802, 917803, 917804, 917805, 917806, 917807, 917808, 917809, 917810, 917811, 917812, 917813, 917814, 917815, 917816, 917817, 917818, 917819, 917820, 917821, 917822, 917823, 917824, 917825, 917826, 917827, 917828, 917829, 917830, 917831, 917832, 917833, 917834, 917835, 917836, 917837, 917838, 917839, 917840, 917841, 917842, 917843, 917844, 917845, 917846, 917847, 917848, 917849, 917850, 917851, 917852, 917853, 917854, 917855, 917856, 917857, 917858, 917859, 917860, 917861, 917862, 917863, 917864, 917865, 917866, 917867, 917868, 917869, 917870, 917871, 917872, 917873, 917874, 917875, 917876, 917877, 917878, 917879, 917880, 917881, 917882, 917883, 917884, 917885, 917886, 917887, 917888, 917889, 917890, 917891, 917892, 917893, 917894, 917895, 917896, 917897, 917898, 917899, 917900, 917901, 917902, 917903, 917904, 917905, 917906, 917907, 917908, 917909, 917910, 917911, 917912, 917913, 917914, 917915, 917916, 917917, 917918, 917919, 917920, 917921, 917922, 917923, 917924, 917925, 917926, 917927, 917928, 917929, 917930, 917931, 917932, 917933, 917934, 917935, 917936, 917937, 917938, 917939, 917940, 917941, 917942, 917943, 917944, 917945, 917946, 917947, 917948, 917949, 917950, 917951, 917952, 917953, 917954, 917955, 917956, 917957, 917958, 917959, 917960, 917961, 917962, 917963, 917964, 917965, 917966, 917967, 917968, 917969, 917970, 917971, 917972, 917973, 917974, 917975, 917976, 917977, 917978, 917979, 917980, 917981, 917982, 917983, 917984, 917985, 917986, 917987, 917988, 917989, 917990, 917991, 917992, 917993, 917994, 917995, 917996, 917997, 917998, 917999]; + + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/N.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/N.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +/* + * List of Unicode code that are flagged as number. + * + * Contains Unicode code of: + * - Nd = Number, decimal digit + * - Nl = Number, letter + * - No = Number, other + * + * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt + * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Nd;|;Nl;|;No;' | cut -d \; -f 1 | xargs -I{} printf '%d, ' 0x{} + * + */ +exports.N = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 178, 179, 185, 188, 189, 190, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2548, 2549, 2550, 2551, 2552, 2553, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2930, 2931, 2932, 2933, 2934, 2935, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 5870, 5871, 5872, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 8304, 8308, 8309, 8310, 8311, 8312, 8313, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8581, 8582, 8583, 8584, 8585, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 11517, 12295, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12344, 12345, 12346, 12690, 12691, 12692, 12693, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 42535, 42536, 42537, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 43056, 43057, 43058, 43059, 43060, 43061, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43264, 43265, 43266, 43267, 43268, 43269, 43270, 43271, 43272, 43273, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43504, 43505, 43506, 43507, 43508, 43509, 43510, 43511, 43512, 43513, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 44023, 44024, 44025, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65799, 65800, 65801, 65802, 65803, 65804, 65805, 65806, 65807, 65808, 65809, 65810, 65811, 65812, 65813, 65814, 65815, 65816, 65817, 65818, 65819, 65820, 65821, 65822, 65823, 65824, 65825, 65826, 65827, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 65838, 65839, 65840, 65841, 65842, 65843, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 65865, 65866, 65867, 65868, 65869, 65870, 65871, 65872, 65873, 65874, 65875, 65876, 65877, 65878, 65879, 65880, 65881, 65882, 65883, 65884, 65885, 65886, 65887, 65888, 65889, 65890, 65891, 65892, 65893, 65894, 65895, 65896, 65897, 65898, 65899, 65900, 65901, 65902, 65903, 65904, 65905, 65906, 65907, 65908, 65909, 65910, 65911, 65912, 65930, 65931, 66273, 66274, 66275, 66276, 66277, 66278, 66279, 66280, 66281, 66282, 66283, 66284, 66285, 66286, 66287, 66288, 66289, 66290, 66291, 66292, 66293, 66294, 66295, 66296, 66297, 66298, 66299, 66336, 66337, 66338, 66339, 66369, 66378, 66513, 66514, 66515, 66516, 66517, 66720, 66721, 66722, 66723, 66724, 66725, 66726, 66727, 66728, 66729, 67672, 67673, 67674, 67675, 67676, 67677, 67678, 67679, 67705, 67706, 67707, 67708, 67709, 67710, 67711, 67751, 67752, 67753, 67754, 67755, 67756, 67757, 67758, 67759, 67835, 67836, 67837, 67838, 67839, 67862, 67863, 67864, 67865, 67866, 67867, 68028, 68029, 68032, 68033, 68034, 68035, 68036, 68037, 68038, 68039, 68040, 68041, 68042, 68043, 68044, 68045, 68046, 68047, 68050, 68051, 68052, 68053, 68054, 68055, 68056, 68057, 68058, 68059, 68060, 68061, 68062, 68063, 68064, 68065, 68066, 68067, 68068, 68069, 68070, 68071, 68072, 68073, 68074, 68075, 68076, 68077, 68078, 68079, 68080, 68081, 68082, 68083, 68084, 68085, 68086, 68087, 68088, 68089, 68090, 68091, 68092, 68093, 68094, 68095, 68160, 68161, 68162, 68163, 68164, 68165, 68166, 68167, 68221, 68222, 68253, 68254, 68255, 68331, 68332, 68333, 68334, 68335, 68440, 68441, 68442, 68443, 68444, 68445, 68446, 68447, 68472, 68473, 68474, 68475, 68476, 68477, 68478, 68479, 68521, 68522, 68523, 68524, 68525, 68526, 68527, 68858, 68859, 68860, 68861, 68862, 68863, 69216, 69217, 69218, 69219, 69220, 69221, 69222, 69223, 69224, 69225, 69226, 69227, 69228, 69229, 69230, 69231, 69232, 69233, 69234, 69235, 69236, 69237, 69238, 69239, 69240, 69241, 69242, 69243, 69244, 69245, 69246, 69714, 69715, 69716, 69717, 69718, 69719, 69720, 69721, 69722, 69723, 69724, 69725, 69726, 69727, 69728, 69729, 69730, 69731, 69732, 69733, 69734, 69735, 69736, 69737, 69738, 69739, 69740, 69741, 69742, 69743, 69872, 69873, 69874, 69875, 69876, 69877, 69878, 69879, 69880, 69881, 69942, 69943, 69944, 69945, 69946, 69947, 69948, 69949, 69950, 69951, 70096, 70097, 70098, 70099, 70100, 70101, 70102, 70103, 70104, 70105, 70113, 70114, 70115, 70116, 70117, 70118, 70119, 70120, 70121, 70122, 70123, 70124, 70125, 70126, 70127, 70128, 70129, 70130, 70131, 70132, 70384, 70385, 70386, 70387, 70388, 70389, 70390, 70391, 70392, 70393, 70864, 70865, 70866, 70867, 70868, 70869, 70870, 70871, 70872, 70873, 71248, 71249, 71250, 71251, 71252, 71253, 71254, 71255, 71256, 71257, 71360, 71361, 71362, 71363, 71364, 71365, 71366, 71367, 71368, 71369, 71472, 71473, 71474, 71475, 71476, 71477, 71478, 71479, 71480, 71481, 71482, 71483, 71904, 71905, 71906, 71907, 71908, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 71916, 71917, 71918, 71919, 71920, 71921, 71922, 74752, 74753, 74754, 74755, 74756, 74757, 74758, 74759, 74760, 74761, 74762, 74763, 74764, 74765, 74766, 74767, 74768, 74769, 74770, 74771, 74772, 74773, 74774, 74775, 74776, 74777, 74778, 74779, 74780, 74781, 74782, 74783, 74784, 74785, 74786, 74787, 74788, 74789, 74790, 74791, 74792, 74793, 74794, 74795, 74796, 74797, 74798, 74799, 74800, 74801, 74802, 74803, 74804, 74805, 74806, 74807, 74808, 74809, 74810, 74811, 74812, 74813, 74814, 74815, 74816, 74817, 74818, 74819, 74820, 74821, 74822, 74823, 74824, 74825, 74826, 74827, 74828, 74829, 74830, 74831, 74832, 74833, 74834, 74835, 74836, 74837, 74838, 74839, 74840, 74841, 74842, 74843, 74844, 74845, 74846, 74847, 74848, 74849, 74850, 74851, 74852, 74853, 74854, 74855, 74856, 74857, 74858, 74859, 74860, 74861, 74862, 92768, 92769, 92770, 92771, 92772, 92773, 92774, 92775, 92776, 92777, 93008, 93009, 93010, 93011, 93012, 93013, 93014, 93015, 93016, 93017, 93019, 93020, 93021, 93022, 93023, 93024, 93025, 119648, 119649, 119650, 119651, 119652, 119653, 119654, 119655, 119656, 119657, 119658, 119659, 119660, 119661, 119662, 119663, 119664, 119665, 120782, 120783, 120784, 120785, 120786, 120787, 120788, 120789, 120790, 120791, 120792, 120793, 120794, 120795, 120796, 120797, 120798, 120799, 120800, 120801, 120802, 120803, 120804, 120805, 120806, 120807, 120808, 120809, 120810, 120811, 120812, 120813, 120814, 120815, 120816, 120817, 120818, 120819, 120820, 120821, 120822, 120823, 120824, 120825, 120826, 120827, 120828, 120829, 120830, 120831, 125127, 125128, 125129, 125130, 125131, 125132, 125133, 125134, 125135, 127232, 127233, 127234, 127235, 127236, 127237, 127238, 127239, 127240, 127241, 127242, 127243, 127244]; + + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/Z.js": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/Z.js ***! + \********************************************************************/ +/***/ ((__unused_webpack_module, exports) => { + +/* + * List of Unicode code that are flagged as separator. + * + * Contains Unicode code of: + * - Zs = Separator, space + * - Zl = Separator, line + * - Zp = Separator, paragraph + * + * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt + * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Zs;|;Zl;|;Zp;' | cut -d \; -f 1 | xargs -I{} printf '%d, ' 0x{} + * + */ +exports.Z = [32, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288]; + + +/***/ }), + +/***/ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/uslug.js": +/*!************************************************************************!*\ + !*** ./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/uslug.js ***! + \************************************************************************/ +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +(function() { + var L = (__webpack_require__(/*! ./L */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/L.js").L), + N = (__webpack_require__(/*! ./N */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/N.js").N), + Z = (__webpack_require__(/*! ./Z */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/Z.js").Z), + M = (__webpack_require__(/*! ./M */ "./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/M.js").M), + unorm = __webpack_require__(/*! unorm */ "./node_modules/.pnpm/unorm@1.6.0/node_modules/unorm/lib/unorm.js"); + + var _unicodeCategory = function(code) { + if (~L.indexOf(code)) return 'L'; + if (~N.indexOf(code)) return 'N'; + if (~Z.indexOf(code)) return 'Z'; + if (~M.indexOf(code)) return 'M'; + return undefined; + }; + + module.exports = function(string, options) { + string = string || ''; + options = options || {}; + var allowedChars = options.allowedChars || '-_~'; + var lower = typeof options.lower === 'boolean' ? options.lower : true; + var spaces = typeof options.spaces === 'boolean' ? options.spaces : false; + var rv = []; + var chars = unorm.nfkc(string); + for(var i = 0; i < chars.length; i++) { + var c = chars[i]; + var code = c.charCodeAt(0); + // Allow Common CJK Unified Ideographs + // See: http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf - Table 12-2 + if (0x4E00 <= code && code <= 0x9FFF) { + rv.push(c); + continue; + } + + // Allow Hangul + if (0xAC00 <= code && code <= 0xD7A3) { + rv.push(c); + continue; + } + + // Japanese ideographic punctuation + if ((0x3000 <= code && code <= 0x3002) || (0xFF01 <= code && code <= 0xFF02)) { + rv.push(' '); + } + + if (allowedChars.indexOf(c) != -1) { + rv.push(c); + continue; + } + var val = _unicodeCategory(code); + if (val && ~'LNM'.indexOf(val)) rv.push(c); + if (val && ~'Z'.indexOf(val)) rv.push(' '); + } + var slug = rv.join('').replace(/^\s+|\s+$/g, '').replace(/\s+/g,' '); + if (!spaces) slug = slug.replace(/[\s\-]+/g,'-'); + if (lower) slug = slug.toLowerCase(); + return slug; + }; +}()); + +/***/ }), + +/***/ "./node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js": +/*!****************************************************************************!*\ + !*** ./node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js ***! + \****************************************************************************/ +/***/ ((module) => { + +"use strict"; + +module.exports = function (str) { + return !isNaN(Date.parse(str)); +}; + + +/***/ }), + +/***/ "./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/package.json": +/*!********************************************************************!*\ + !*** ./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/package.json ***! + \********************************************************************/ +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"name":"ejs","description":"Embedded JavaScript templates","keywords":["template","engine","ejs"],"version":"3.1.6","author":"Matthew Eernisse (http://fleegix.org)","license":"Apache-2.0","bin":{"ejs":"./bin/cli.js"},"main":"./lib/ejs.js","jsdelivr":"ejs.min.js","unpkg":"ejs.min.js","repository":{"type":"git","url":"git://github.com/mde/ejs.git"},"bugs":"https://github.com/mde/ejs/issues","homepage":"https://github.com/mde/ejs","dependencies":{"jake":"^10.6.1"},"devDependencies":{"browserify":"^16.5.1","eslint":"^6.8.0","git-directory-deploy":"^1.5.1","jsdoc":"^3.6.4","lru-cache":"^4.0.1","mocha":"^7.1.1","uglify-js":"^3.3.16"},"engines":{"node":">=0.10.0"},"scripts":{"test":"mocha"}}'); + +/***/ }) + +}]); +//# sourceMappingURL=vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js.map \ No newline at end of file diff --git a/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js.map b/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js.map new file mode 100644 index 0000000..cf0ae82 --- /dev/null +++ b/vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendors-node_modules_pnpm_epub-gen-memory_1_0_9_node_modules_epub-gen-memory_dist_lib_index_js.js","mappings":";;;;;;;;;AAAa;AACb;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ,WAAW;AACnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,oBAAoB;AAC7C;AACA;AACA,2BAA2B,QAAQ;AACnC,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8HAA8H;AAC9H;AACA,4GAA4G;AAC5G;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uEAAuE;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,sBAAsB;AAChE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,0BAA0B;AAC5E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+DAA+D;AAC/D;AACA,gBAAgB,iBAAiB;AACjC;AACA,wCAAwC;AACxC,yDAAyD,gBAAgB;AACzE,yBAAyB;AACzB,wCAAwC,UAAU;AAClD,yDAAyD,YAAY,MAAM,cAAc;AACzF;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sHAAsH,sBAAsB;AAC5I,KAAK;AACL,2IAA2I,sBAAsB;AACjK;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,CAAC;AACD,kBAAe;AACf;AACA;AACA,yBAAsB;AACtB,qBAAqB;;;;;;;;;;;;AC1aR;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,yBAAsB;;;;;;;;;;;ACZtB,cAAc;;AAEd;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,4BAA4B;AAC5C;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;;AAEA,uBAAuB;AACvB,qBAAqB;;;;;;;;;;;;AC3TR;AACb,cAAc,mBAAO,CAAC,8EAAQ;;AAE9B;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;AACA;AACA,yBAAyB,UAAU;AACnC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;;AAEA,kBAAkB,sBAAsB;AACxC;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA,kBAAkB,sBAAsB;AACxC;AACA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;ACzIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA,iDAAiD;AACjD;AACA;AACA;AACA,aAAa;AACb;;AAEA;AACA;AACA;AACA,uDAAuD,iBAAiB;AACxE;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS,mBAAO,CAAC,iBAAI;AACrB,WAAW,mBAAO,CAAC,8FAAM;AACzB,YAAY,mBAAO,CAAC,6EAAS;;AAE7B;AACA,WAAW,QAAQ;AACnB,sBAAsB,oHAAkC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,8BAA8B,yBAAyB;AACvD;AACA;AACA,UAAU;AACV;;AAEA,aAAa;;AAEb;AACA;AACA;AACA;AACA,UAAU;AACV;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA,mCAAmC,cAAc;AACjD;AACA;AACA,UAAU;AACV;AACA;;AAEA,kBAAkB;;AAElB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,mBAAmB,8BAA8B;;AAEjD;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA,sBAAsB;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,eAAe;AAC3B,YAAY,eAAe;AAC3B,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA,YAAY,SAAS;AACrB,YAAY,SAAS;AACrB,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,YAAY;AACZ;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,QAAQ;AACnB,WAAW,oBAAoB;AAC/B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,SAAS;AACpB,WAAW,SAAS;AACpB,YAAY;AACZ;AACA;AACA;;AAEA;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,gBAAgB;AAC3B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,uBAAuB;AACvB;;AAEA;AACA;AACA;AACA,WAAW,SAAS;AACpB;AACA,WAAW,SAAS;AACpB;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA,eAAe;AACf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,SAAS,QAAQ;AAC5B,WAAW,SAAS,QAAQ;AAC5B,YAAY;AACZ;AACA;AACA;;AAEA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,oBAAoB;AAC/B,WAAW,mBAAmB,QAAQ;AACtC,WAAW,mBAAmB,QAAQ;AACtC,WAAW,oBAAoB;AAC/B;AACA;;AAEA,kBAAkB;AAClB;AACA;AACA;AACA,cAAc;AACd;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,+CAA+C,kBAAkB;AACjE;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;;AAEhB,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,eAAe;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA,eAAe,QAAQ;AACvB;AACA,eAAe,gBAAgB;AAC/B;AACA;AACA;AACA;AACA,eAAe,gBAAgB;AAC/B;AACA,eAAe,qBAAqB;AACpC;AACA,eAAe,QAAQ;AACvB;;AAEA;AACA;AACA;AACA,6BAA6B;AAC7B,kCAAkC,kDAAkD;AACpF;AACA,uEAAuE;AACvE;AACA;AACA,4EAA4E;AAC5E,wBAAwB,oCAAoC;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC;AACvC;AACA;AACA,4DAA4D,GAAG;AAC/D,wBAAwB;AACxB;AACA,qCAAqC;AACrC;AACA;;AAEA;AACA;AACA;AACA,sDAAsD;AACtD,gBAAgB;AAChB;AACA,aAAa,WAAW;AACxB,+DAA+D;AAC/D,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA,gEAAgE;AAChE;AACA,+DAA+D;AAC/D;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,0DAA0D,cAAc;AACxE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,QAAQ,WAAW;AACnB;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B;AAC1B,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA,gCAAgC;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B;AAC5B;AACA;AACA;;AAEA;AACA;AACA;AACA,gCAAgC,6BAA6B;AAC7D;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,iBAAiB;;AAEjB;AACA;AACA;AACA,yBAAyB,4BAA4B;AACrD;AACA;AACA;AACA;;AAEA,iBAAiB;;AAEjB;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,eAAe;;AAEf;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;;AAEA,YAAY;;AAEZ;AACA;AACA;AACA;;;;;;;;;;;;AC16BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,yBAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,aAAa;AACb,YAAY;AACZ,YAAY;AACZ,aAAa;AACb,aAAa;AACb;AACA;;AAEA;AACA;AACA;;AAEA;AACA,6CAA6C,6BAA6B;AAC1E;AACA,4CAA4C,qBAAqB;AACjE;AACA;AACA,UAAU;AACV;;AAEA;AACA,6BAA6B;AAC7B,oBAAoB;AACpB,mBAAmB;AACnB,mBAAmB;AACnB,sBAAsB;AACtB,qBAAqB;AACrB,QAAQ;AACR,iCAAiC;AACjC,4BAA4B;AAC5B,uCAAuC;AACvC,KAAK;;AAEL;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;;AAEA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA,0BAA0B;AAC1B,oDAAoD;AACpD;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,aAAa;AACzB;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,YAAY,QAAQ;AACpB,YAAY,QAAQ;AACpB,YAAY,OAAO;AACnB,YAAY,aAAa;AACzB;AACA;AACA;AACA,2BAA2B;AAC3B,kBAAkB,iBAAiB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA,aAAa;AACb,WAAW;AACX;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,YAAY,QAAQ;AACpB;AACA;AACA;AACA,qBAAqB;AACrB,mDAAmD,gCAAgC;AACnF;;;;;;;;;;;;AClLa;AACb;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY,GAAG,uBAAuB,GAAG,uBAAuB;AAChE,YAAY,mBAAO,CAAC,uEAAK;AACzB,8BAA8B,mBAAO,CAAC,oFAAO;AAC7C,aAAa,mBAAO,CAAC,wEAAM;AAC3B,2BAA2B,mBAAO,CAAC,wEAAI;AACvC,aAAa,mBAAO,CAAC,8GAAQ;AAC7B,mDAAkD,EAAE,qCAAqC,kCAAkC,EAAC;AAC5H,mDAAkD,EAAE,qCAAqC,kCAAkC,EAAC;AAC5H;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D,sBAAsB;AAClF;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B,yBAAyB;AACzB;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4FAA4F,oFAAoF;AAChL;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,mBAAmB,8EAA8E;AAC3I;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,sEAAsE,WAAW,WAAW,KAAK;AAC5J;AACA,kEAAkE,oGAAoG,WAAW,UAAU,KAAK;AAChM;AACA,6BAA6B;AAC7B;AACA;AACA,+DAA+D,8CAA8C;AAC7G;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,wEAAwE,YAAY,WAAW,KAAK;AAC/J;AACA,kEAAkE,sGAAsG,YAAY,UAAU,KAAK;AACnM;AACA,6BAA6B;AAC7B;AACA;AACA,iEAAiE,mEAAmE;AACpI;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2DAA2D,kGAAkG;AAC7J;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA,CAAC;AACD,YAAY;AACZ;AACA;AACA,qBAAqB,uBAAuB;AAC5C;AACA;AACA;AACA,gFAAgF,wBAAwB;AACxG;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,kBAAe;;;;;;;;;;;;AChRF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,iZAAiZ,2DAA2D,0EAA0E,sBAAsB,qFAAqF,WAAW;;;;;;;;;;;;ACF9oB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,mxBAAmxB,0EAA0E,+WAA+W,kIAAkI,gEAAgE,yJAAyJ,qEAAqE,sJAAsJ,yDAAyD,oIAAoI,uGAAuG,0CAA0C,kGAAkG,gBAAgB,8FAA8F,2CAA2C,kGAAkG,gBAAgB;;;;;;;;;;;;ACF/7E;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,2bAA2b,4CAA4C,gOAAgO,0HAA0H,4CAA4C,wDAAwD,yDAAyD,YAAY;;;;;;;;;;;;ACF5+B;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,qYAAqY,2DAA2D,0EAA0E,sBAAsB,qFAAqF,WAAW;;;;;;;;;;;;ACFloB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,wqDAAwqD,0FAA0F,yEAAyE,icAAic,kIAAkI,gEAAgE,yJAAyJ,qEAAqE,sJAAsJ,uDAAuD,kIAAkI,sGAAsG,0CAA0C,kGAAkG,gBAAgB,8FAA8F,2CAA2C,kGAAkG,gBAAgB;;;;;;;;;;;;ACF1/G;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,keAAke,kCAAkC,MAAM,8DAA8D,6DAA6D,oDAAoD,qMAAqM,6IAA6I,oDAAoD,wDAAwD,kFAAkF,oBAAoB;;;;;;;;;;;;ACF/tC;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,kBAAkB,kBAAkB,GAAG,gBAAgB,0BAA0B,GAAG,kBAAkB,kBAAkB,qBAAqB,GAAG,iBAAiB,qBAAqB,kBAAkB,GAAG,eAAe,kBAAkB,qBAAqB,qBAAqB,GAAG,QAAQ,gBAAgB,uCAAuC,uBAAuB,GAAG;;;;;;;;;;;;ACFpX;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe,mmBAAmmB,yDAAyD,qEAAqE,4ZAA4Z,gBAAgB,0CAA0C,sRAAsR,2DAA2D,sEAAsE,4ZAA4Z,gBAAgB;;;;;;;;;;;;ACF5/D;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B,GAAG,yBAAyB;AACtD,yBAAyB;AACzB,0BAA0B;;;;;;;;;;;;ACJb;AACb;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,YAAY;AACZ;AACA,YAAY;AACZ,0CAA0C;AAC1C;AACA;AACA;AACA;AACA;AACA,+CAA+C,gDAAgD;AAC/F;AACA;AACA;AACA,kDAAkD,2BAA2B;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD,kBAAe;;;;;;;;;;;;AChEF;AACb;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe;AACf,kBAAkB,mBAAO,CAAC,uHAAa;AACvC,2EAA2E,yBAAyB;AACpG;AACA;AACA;AACA;AACA;AACA,8DAA8D,gBAAgB;AAC9E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,eAAe;;;;;;;;;;;;ACvCF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,aAAa,mBAAO,CAAC,wEAAM;AAC3B,mBAAmB,mBAAO,CAAC,iIAAc;AACzC,cAAc,mBAAO,CAAC,+GAAS;AAC/B;AACA,gDAAgD,uBAAuB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;;;;;;;;;;ACvBR;AACb;AACA;AACA,iDAAiD,OAAO;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mCAAmC,GAAG,oCAAoC,GAAG,mCAAmC,GAAG,gBAAgB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,wBAAwB,GAAG,wBAAwB;AAC7O,mBAAmB,mBAAO,CAAC,0FAAY;AACvC,aAAa,mBAAO,CAAC,wEAAM;AAC3B,2BAA2B,mBAAO,CAAC,wEAAI;AACvC,0CAA0C,mBAAO,CAAC,mKAAsC;AACxF,wCAAwC,mBAAO,CAAC,+JAAoC;AACpF,sCAAsC,mBAAO,CAAC,2JAAkC;AAChF,0CAA0C,mBAAO,CAAC,mKAAsC;AACxF,wCAAwC,mBAAO,CAAC,+JAAoC;AACpF,sCAAsC,mBAAO,CAAC,2JAAkC;AAChF,qCAAqC,mBAAO,CAAC,6IAA2B;AACxE,oCAAoC,mBAAO,CAAC,2IAA0B;AACtE,8BAA8B,mBAAO,CAAC,2EAAO;AAC7C,aAAa,mBAAO,CAAC,6GAAQ;AAC7B,iBAAiB,mBAAO,CAAC,qHAAY;AACrC,oDAAmD,EAAE,qCAAqC,uCAAuC,EAAC;AAClI,oDAAmD,EAAE,qCAAqC,uCAAuC,EAAC;AAClI,aAAa,mBAAO,CAAC,6GAAQ;AAC7B,aAAa,mBAAO,CAAC,+GAAS;AAC9B;AACA,8BAA8B;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,uBAAuB;AACvB,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,uBAAuB;AACvB,iCAAiC;AACjC,gBAAgB;AAChB;AACA;AACA;AACA,kCAAkC;AAClC;AACA,gDAAgD,4BAA4B,WAAW,+CAA+C,KAAK;AAC3I;AACA;AACA;AACA;AACA,mCAAmC;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,oCAAoC;AACpC;AACA,iCAAiC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC;;;;;;;;;;;;ACxHtB;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,4BAA4B,+DAA+D,iBAAiB;AAC5G;AACA,oCAAoC,MAAM,+BAA+B,YAAY;AACrF,mCAAmC,MAAM,mCAAmC,YAAY;AACxF,gCAAgC;AAChC;AACA,KAAK;AACL;AACA;AACA,cAAc,6BAA6B,0BAA0B,cAAc,qBAAqB;AACxG,iBAAiB,oDAAoD,qEAAqE,cAAc;AACxJ,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA,wCAAwC;AACxC,mCAAmC,SAAS;AAC5C,mCAAmC,WAAW,UAAU;AACxD,0CAA0C,cAAc;AACxD;AACA,8GAA8G,OAAO;AACrH,iFAAiF,iBAAiB;AAClG,yDAAyD,gBAAgB,QAAQ;AACjF,+CAA+C,gBAAgB,gBAAgB;AAC/E;AACA,kCAAkC;AAClC;AACA;AACA,UAAU,YAAY,aAAa,SAAS,UAAU;AACtD,oCAAoC,SAAS;AAC7C;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB,GAAG,YAAY;AACjC,kCAAkC,mBAAO,CAAC,+HAAa;AACvD,aAAa,mBAAO,CAAC,+HAAa;AAClC,yBAAyB;AACzB;AACA;AACA;AACA,CAAC;AACD,YAAY;AACZ,uDAAuD;AACvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,CAAC;AACD,kBAAkB;;;;;;;;;;;;ACvFL;AACb;AACA,6CAA6C;AAC7C;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB,GAAG,qBAAqB,GAAG,wBAAwB;AAC3E,2BAA2B,mBAAO,CAAC,wEAAI;AACvC;AACA,8DAA8D,mHAAmH;AACjL,wDAAwD,mHAAmH;AAC3K,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,qBAAqB;AACrB;AACA;AACA,CAAC;AACD,wBAAwB;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,2DAA2D;AAC3D;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;;AChDY;;AAEb;AACA;AACA;AACA;;;;;;;;;;;ACLA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA,aAAa,GAAG,IAAoD,oBAAoB,KAAK,EAA8K,CAAC,YAAY,yBAAyB,gBAAgB,UAAU,UAAU,MAAM,SAAmC,CAAC,gBAAgB,OAAC,OAAO,oBAAoB,8CAA8C,kCAAkC,YAAY,YAAY,mCAAmC,iBAAiB,eAAe,sBAAsB,oBAAoB,UAAU,SAAmC,KAAK,WAAW,YAAY,SAAS,EAAE,mBAAmB,aAAa,0GAA0G,qBAAqB,0EAA0E,WAAW,+OAA+O,kBAAkB,sBAAsB,kCAAkC,+FAA+F,2DAA2D,yJAAyJ,sDAAsD,WAAW,kMAAkM,UAAU,EAAE,4BAA4B,qBAAqB,aAAa,4GAA4G,sBAAsB,uGAAuG,aAAa,4BAA4B,mIAAmI,6BAA6B,6GAA6G,IAAI,gCAAgC,yPAAyP,oCAAoC,6IAA6I,aAAa,EAAE,+FAA+F,qBAAqB,aAAa,kCAAkC,SAAS,wCAAwC,kCAAkC,6BAA6B,qCAAqC,wBAAwB,EAAE,wCAAwC,qBAAqB,aAAa,mBAAmB,iBAAiB,mBAAmB,MAAM,KAAK,IAAI,YAAY,IAAI,iCAAiC,OAAO,SAAS,GAAG,wBAAwB,wEAAwE,cAAc,MAAM,YAAY,IAAI,4BAA4B,WAAW,qCAAqC,cAAc,MAAM,YAAY,IAAI,uCAAuC,WAAW,sBAAsB,EAAE,aAAa,qBAAqB,aAAa,yKAAyK,GAAG,qBAAqB,aAAa,WAAW,0DAA0D,WAAW,EAAE,OAAO,qBAAqB,aAAa,yLAAyL,gBAAgB,kGAAkG,oEAAoE,mGAAmG,8BAA8B,0FAA0F,gCAAgC,+CAA+C,oCAAoC,oCAAoC,yCAAyC,EAAE,WAAW,8BAA8B,QAAQ,mBAAmB,GAAG,8BAA8B,0BAA0B,+BAA+B,yBAAyB,GAAG,EAAE,iDAAiD,qBAAqB,aAAa,gBAAgB,WAAW,QAAQ,IAAI,yCAAyC,SAAS,wBAAwB,gTAAgT,6CAA6C,iGAAiG,QAAQ,+BAA+B,YAAY,8CAA8C,QAAQ,0CAA0C,4CAA4C,iBAAiB,+QAA+Q,SAAS,iKAAiK,4HAA4H,sGAAsG,oBAAoB,iRAAiR,6CAA6C,mEAAmE,yGAAyG,kBAAkB,8DAA8D,GAAG,sCAAsC,wEAAwE,oCAAoC,MAAM,8EAA8E,WAAW,wBAAwB,WAAW,EAAE,wBAAwB,sCAAsC,mBAAmB,8GAA8G,kDAAkD,iBAAiB,oFAAoF,UAAU,aAAa,EAAE,oBAAoB,wBAAwB,WAAW,EAAE,0BAA0B,uCAAuC,sBAAsB,8BAA8B,gCAAgC,yBAAyB,eAAe,8BAA8B,aAAa,EAAE,gDAAgD,mCAAmC,sFAAsF,iEAAiE,WAAW,aAAa,aAAa,EAAE,0CAA0C,2IAA2I,0CAA0C,sBAAsB,WAAW,+BAA+B,kBAAkB,wBAAwB,sFAAsF,2BAA2B,WAAW,OAAO,+BAA+B,4LAA4L,+BAA+B,oBAAoB,4CAA4C,YAAY,WAAW,QAAQ,cAAc,UAAU,SAAS,6BAA6B,4BAA4B,4BAA4B,WAAW,gBAAgB,aAAa,EAAE,uFAAuF,qBAAqB,aAAa,kDAAkD,iCAAiC,6DAA6D,IAAI,wBAAwB,IAAI,oBAAoB,kBAAkB,gEAAgE,SAAS,8FAA8F,kBAAkB,8CAA8C,4GAA4G,UAAU,mBAAmB,SAAS,WAAW,UAAU,EAAE,wCAAwC,sBAAsB,aAAa,aAAa,qCAAqC,sIAAsI,oFAAoF,YAAY,6DAA6D,UAAU,kJAAkJ,6BAA6B,wCAAwC,EAAE,uEAAuE,sBAAsB,aAAa,uHAAuH,cAAc,mCAAmC,oDAAoD,yBAAyB,KAAK,sBAAsB,6FAA6F,WAAW,EAAE,wBAAwB,WAAW,uBAAuB,EAAE,8FAA8F,6MAA6M,eAAe,mBAAmB,mBAAmB,uCAAuC,4BAA4B,WAAW,oBAAoB,wBAAwB,mBAAmB,kCAAkC,WAAW,KAAK,WAAW,qCAAqC,+MAA+M,EAAE,uDAAuD,GAAG,EAAE,sGAAsG,sBAAsB,aAAa,mDAAmD,gBAAgB,6FAA6F,oDAAoD,WAAW,iDAAiD,QAAQ,aAAa,WAAW,EAAE,yBAAyB,4CAA4C,sBAAsB,uCAAuC,EAAE,8BAA8B,gEAAgE,+BAA+B,iGAAiG,aAAa,EAAE,2CAA2C,sBAAsB,aAAa,oCAAoC,kBAAkB,8BAA8B,WAAW,0BAA0B,qCAAqC,yBAAyB,kBAAkB,sBAAsB,aAAa,EAAE,yDAAyD,sBAAsB,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,WAAW,8DAA8D,sEAAsE,kFAAkF,uBAAuB,yBAAyB,uCAAuC,oBAAoB,mBAAmB,sBAAsB,0BAA0B,sBAAsB,6FAA6F,GAAG,sBAAsB,aAAa,kBAAkB,uCAAuC,IAAI,sVAAsV,iDAAiD,uKAAuK,WAAW,sIAAsI,mBAAmB,gBAAgB,yPAAyP,iDAAiD,yBAAyB,+BAA+B,eAAe,oCAAoC,iBAAiB,gFAAgF,uBAAuB,iBAAiB,cAAc,4DAA4D,OAAO,gBAAgB,8FAA8F,qBAAqB,UAAU,4HAA4H,oBAAoB,SAAS,kCAAkC,kBAAkB,IAAI,sBAAsB,qEAAqE,SAAS,QAAQ,iCAAiC,wBAAwB,EAAE,8BAA8B,wBAAwB,oBAAoB,kBAAkB,yCAAyC,wBAAwB,EAAE,kDAAkD,uBAAuB,oBAAoB,cAAc,oBAAoB,mFAAmF,yCAAyC,oCAAoC,MAAM,WAAW,iCAAiC,YAAY,sBAAsB,8FAA8F,oCAAoC,WAAW,IAAI,oBAAoB,EAAE,sJAAsJ,uKAAuK,+KAA+K,kCAAkC,6BAA6B,SAAS,4BAA4B,4CAA4C,6BAA6B,oDAAoD,kCAAkC,cAAc,iFAAiF,YAAY,EAAE,gNAAgN,sBAAsB,sBAAsB,EAAE,cAAc,sBAAsB,aAAa,wBAAwB,cAAc,eAAe,YAAY,mBAAmB,kBAAkB,2DAA2D,8BAA8B,8CAA8C,gGAAgG,KAAK,uGAAuG,SAAS,+CAA+C,+FAA+F,8CAA8C,kCAAkC,sCAAsC,mEAAmE,uBAAuB,aAAa,EAAE,gCAAgC,sBAAsB,aAAa,oBAAoB,cAAc,0DAA0D,aAAa,wBAAwB,8BAA8B,wBAAwB,6IAA6I,sBAAsB,gCAAgC,kBAAkB,4BAA4B,qBAAqB,qBAAqB,UAAU,yCAAyC,cAAc,4BAA4B,uBAAuB,wBAAwB,gDAAgD,uBAAuB,mCAAmC,oCAAoC,qBAAqB,sBAAsB,8FAA8F,aAAa,EAAE,cAAc,sBAAsB,aAAa,8BAA8B,cAAc,eAAe,6DAA6D,oBAAoB,mEAAmE,uBAAuB,aAAa,EAAE,sCAAsC,sBAAsB,aAAa,wBAAwB,cAAc,eAAe,2DAA2D,yCAAyC,8CAA8C,0CAA0C,+CAA+C,4BAA4B,kCAAkC,oBAAoB,mEAAmE,uBAAuB,aAAa,EAAE,gCAAgC,sBAAsB,aAAa,yBAAyB,cAAc,eAAe,6DAA6D,sDAAsD,sEAAsE,uBAAuB,aAAa,EAAE,iCAAiC,sBAAsB,aAAa,qIAAqI,sBAAsB,qBAAqB,0KAA0K,EAAE,qHAAqH,sBAAsB,aAAa,+LAA+L,GAAG,sBAAsB,aAAa,2CAA2C,cAAc,mDAAmD,qDAAqD,WAAW,qDAAqD,EAAE,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,2CAA2C,aAAa,yDAAyD,iEAAiE,sEAAsE,aAAa,EAAE,gDAAgD,sBAAsB,aAAa,2CAA2C,cAAc,+EAA+E,qDAAqD,MAAM,wCAAwC,+CAA+C,sCAAsC,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,2CAA2C,cAAc,0BAA0B,WAAW,kHAAkH,oGAAoG,aAAa,WAAW,EAAE,+CAA+C,8CAA8C,+BAA+B,kJAAkJ,uCAAuC,qJAAqJ,8BAA8B,2CAA2C,iDAAiD,0CAA0C,kBAAkB,iDAAiD,MAAM,oDAAoD,MAAM,6DAA6D,+BAA+B,aAAa,4CAA4C,EAAE,aAAa,EAAE,mCAAmC,sBAAsB,aAAa,cAAc,yCAAyC,iDAAiD,uEAAuE,wBAAwB,oBAAoB,aAAa,iBAAiB,oBAAoB,gBAAgB,4BAA4B,aAAa,IAAI,mDAAmD,SAAS,qBAAqB,SAAS,mBAAmB,gKAAgK,kBAAkB,uCAAuC,oBAAoB,iFAAiF,oBAAoB,kCAAkC,4BAA4B,uCAAuC,kBAAkB,gCAAgC,8BAA8B,iFAAiF,oEAAoE,WAAW,+BAA+B,kBAAkB,wBAAwB,QAAQ,2BAA2B,WAAW,OAAO,kBAAkB,mGAAmG,mBAAmB,4CAA4C,uBAAuB,4GAA4G,mBAAmB,0BAA0B,aAAa,8BAA8B,6DAA6D,4BAA4B,uHAAuH,iBAAiB,iFAAiF,qDAAqD,qBAAqB,0BAA0B,+CAA+C,aAAa,GAAG,sBAAsB,aAAa,+HAA+H,oBAAoB,2CAA2C,UAAU,gBAAgB,mCAAmC,yDAAyD,0BAA0B,kBAAkB,yBAAyB,UAAU,sBAAsB,IAAI,sBAAsB,UAAU,8DAA8D,gCAAgC,mCAAmC,iBAAiB,qBAAqB,QAAQ,WAAW,mBAAmB,UAAU,+BAA+B,sDAAsD,6CAA6C,WAAW,iCAAiC,SAAS,yCAAyC,8DAA8D,SAAS,KAAK,SAAS,KAAK,KAAK,WAAW,EAAE,kBAAkB,QAAQ,UAAU,4CAA4C,MAAM,wBAAwB,IAAI,kHAAkH,SAAS,mDAAmD,aAAa,uBAAuB,iBAAiB,kBAAkB,WAAW,+CAA+C,wBAAwB,+BAA+B,uBAAuB,OAAO,mBAAmB,yDAAyD,kBAAkB,iCAAiC,4BAA4B,qIAAqI,mBAAmB,2CAA2C,KAAK,aAAa,EAAE,+IAA+I,sBAAsB,aAAa,kPAAkP,KAAK,yBAAyB,IAAI,yBAAyB,uBAAuB,OAAO,SAAS,IAAI,6FAA6F,yDAAyD,SAAS,YAAY,IAAI,6CAA6C,SAAS,iBAAiB,EAAE,qBAAqB,sBAAsB,aAAa,gHAAgH,MAAM,wDAAwD,gBAAgB,aAAa,+CAA+C,aAAa,4BAA4B,yBAAyB,2DAA2D,6BAA6B,QAAQ,IAAI,2JAA2J,wDAAwD,IAAI,6QAA6Q,SAAS,IAAI,0BAA0B,gFAAgF,wCAAwC,UAAU,IAAI,4BAA4B,uCAAuC,KAAK,2BAA2B,SAAS,sBAAsB,yFAAyF,sFAAsF,uDAAuD,sDAAsD,8DAA8D,wCAAwC,iBAAiB,QAAQ,qGAAqG,+BAA+B,mBAAmB,oBAAoB,MAAM,iDAAiD,sBAAsB,KAAK,qCAAqC,QAAQ,oJAAoJ,iCAAiC,EAAE,8BAA8B,iDAAiD,yCAAyC,sBAAsB,2EAA2E,WAAW,sCAAsC,EAAE,sBAAsB,EAAE,2EAA2E,sBAAsB,aAAa,sGAAsG,cAAc,SAAS,gBAAgB,YAAY,WAAW,6BAA6B,SAAS,wBAAwB,uBAAuB,IAAI,qBAAqB,OAAO,EAAE,SAAS,IAAI,6FAA6F,gCAAgC,SAAS,sDAAsD,OAAO,iCAAiC,wBAAwB,iDAAiD,KAAK,IAAI,6KAA6K,kBAAkB,6BAA6B,iBAAiB,WAAW,iCAAiC,SAAS,iBAAiB,sBAAsB,IAAI,kFAAkF,SAAS,UAAU,yBAAyB,IAAI,iFAAiF,SAAS,UAAU,KAAK,cAAc,kCAAkC,2GAA2G,IAAI,KAAK,iCAAiC,SAAS,kBAAkB,4BAA4B,gBAAgB,YAAY,WAAW,cAAc,SAAS,sBAAsB,SAAS,UAAU,2BAA2B,gCAAgC,yBAAyB,qCAAqC,wBAAwB,qCAAqC,wBAAwB,qCAAqC,UAAU,yCAAyC,gCAAgC,wBAAwB,yBAAyB,wBAAwB,2BAA2B,gBAAgB,mBAAmB,4BAA4B,mBAAmB,oDAAoD,sCAAsC,yBAAyB,wBAAwB,2CAA2C,eAAe,2BAA2B,gCAAgC,yBAAyB,gBAAgB,qCAAqC,2BAA2B,eAAe,2BAA2B,gCAAgC,yBAAyB,yCAAyC,wBAAwB,qCAAqC,cAAc,6BAA6B,uBAAuB,kBAAkB,qBAAqB,kBAAkB,yBAAyB,wPAAwP,4BAA4B,+EAA+E,qEAAqE,aAAa,QAAQ,iBAAiB,0EAA0E,SAAS,yBAAyB,aAAa,uBAAuB,EAAE,0BAA0B,cAAc,0CAA0C,qBAAqB,aAAa,QAAQ,mBAAmB,gGAAgG,SAAS,sCAAsC,6CAA6C,kLAAkL,qBAAqB,qBAAqB,mBAAmB,uBAAuB,kBAAkB,wBAAwB,IAAI,mBAAmB,qBAAqB,qHAAqH,sEAAsE,gJAAgJ,GAAG,EAAE,sFAAsF,sBAAsB,aAAa,iHAAiH,cAAc,iCAAiC,aAAa,2BAA2B,0CAA0C,qBAAqB,gCAAgC,2GAA2G,2BAA2B,wBAAwB,wBAAwB,oCAAoC,iCAAiC,kCAAkC,sUAAsU,2GAA2G,mDAAmD,uCAAuC,2XAA2X,8CAA8C,IAAI,0GAA0G,uBAAuB,8CAA8C,2OAA2O,2BAA2B,QAAQ,QAAQ,oBAAoB,yKAAyK,2BAA2B,MAAM,gDAAgD,yDAAyD,WAAW,iBAAiB,oEAAoE,6NAA6N,6BAA6B,gEAAgE,0QAA0Q,wBAAwB,QAAQ,gWAAgW,mLAAmL,ybAAyb,mJAAmJ,gDAAgD,qDAAqD,UAAU,uEAAuE,6EAA6E,2BAA2B,iBAAiB,kBAAkB,2FAA2F,aAAa,EAAE,iGAAiG,sBAAsB,aAAa,2IAA2I,gBAAgB,kCAAkC,aAAa,uBAAuB,2BAA2B,oBAAoB,iCAAiC,2BAA2B,QAAQ,iUAAiU,yBAAyB,kEAAkE,YAAY,+KAA+K,gHAAgH,6BAA6B,8NAA8N,mBAAmB,ySAAyS,mHAAmH,8BAA8B,mDAAmD,4BAA4B,oOAAoO,kCAAkC,wBAAwB,mCAAmC,iUAAiU,6BAA6B,2CAA2C,0CAA0C,EAAE,YAAY,oEAAoE,uBAAuB,cAAc,uBAAuB,wCAAwC,kHAAkH,KAAK,uCAAuC,+BAA+B,KAAK,qCAAqC,oDAAoD,0CAA0C,kCAAkC,KAAK,wCAAwC,yDAAyD,sCAAsC,8BAA8B,MAAM,iBAAiB,uGAAuG,YAAY,yCAAyC,8BAA8B,MAAM,iBAAiB,0GAA0G,aAAa,aAAa,EAAE,sHAAsH,sBAAsB,aAAa,kBAAkB,oMAAoM,mEAAmE,kIAAkI,aAAa,2BAA2B,sBAAsB,IAAI,mDAAmD,iDAAiD,wEAAwE,wBAAwB,oFAAoF,SAAS,4BAA4B,qBAAqB,qBAAqB,4CAA4C,0BAA0B,8DAA8D,+BAA+B,2GAA2G,+BAA+B,sFAAsF,8BAA8B,oHAAoH,2FAA2F,8FAA8F,KAAK,WAAW,wBAAwB,YAAY,EAAE,mHAAmH,sBAAsB,aAAa,aAAa,uDAAuD,MAAM,mDAAmD,aAAa,iBAAiB,eAAe,gBAAgB,yIAAyI,yCAAyC,gCAAgC,iEAAiE,2CAA2C,YAAY,iBAAiB,KAAK,2BAA2B,iCAAiC,wBAAwB,SAAS,aAAa,QAAQ,KAAK,mBAAmB,EAAE,EAAE,kBAAkB,MAAM,QAAQ,WAAW,KAAK,sBAAsB,uBAAuB,gCAAgC,qBAAM,CAAC,qBAAM,mEAAmE,EAAE,GAAG,sBAAsB,aAAa,qBAAqB,cAAc,QAAQ,8CAA8C,cAAc,2EAA2E,gEAAgE,kBAAkB,wLAAwL,kBAAkB,aAAa,MAAM,IAAI,OAAO,SAAS,qBAAqB,qFAAqF,EAAE,cAAc,gBAAgB,yFAAyF,sBAAsB,gBAAgB,SAAS,cAAc,wBAAwB,cAAc,yBAAyB,mBAAmB,OAAO,EAAE,+BAA+B,gBAAgB,SAAS,IAAI,gCAAgC,SAAS,2BAA2B,SAAS,4CAA4C,oCAAoC,uBAAuB,6BAA6B,sCAAsC,SAAS,EAAE,aAAa,sCAAsC,QAAQ,EAAE,EAAE,+BAA+B,yBAAyB,gCAAgC,0FAA0F,8BAA8B,kFAAkF,SAAS,uCAAuC,0BAA0B,4CAA4C,mCAAmC,sCAAsC,yBAAyB,2CAA2C,kCAAkC,yBAAyB,aAAa,iDAAiD,cAAc,YAAY,KAAK,sBAAsB,8BAA8B,MAAM,6BAA6B,SAAS,wBAAwB,sBAAsB,8BAA8B,MAAM,4BAA4B,SAAS,uBAAuB,8BAA8B,gCAAgC,sBAAsB,kBAAkB,qBAAqB,mBAAmB,WAAW,8GAA8G,oBAAoB,8BAA8B,0CAA0C,KAAK,MAAM,WAAW,SAAS,gBAAgB,8BAA8B,yCAAyC,aAAa,wBAAwB,GAAG,oBAAoB,WAAW,8GAA8G,oBAAoB,8BAA8B,uBAAuB,KAAK,MAAM,sCAAsC,yBAAyB,aAAa,wBAAwB,EAAE,MAAM,UAAU,EAAE,aAAa,sBAAsB,aAAa,SAAS,kHAAkH,EAAE,wFAAwF,sBAAsB,aAAa,iKAAiK,cAAc,wCAAwC,uBAAuB,2EAA2E,MAAM,EAAE,mBAAmB,uMAAuM,oFAAoF,+BAA+B,kEAAkE,MAAM,wNAAwN,mBAAmB,gBAAgB,eAAe,4CAA4C,gBAAgB,+BAA+B,6CAA6C,uBAAuB,+KAA+K,GAAG,4IAA4I,2LAA2L,8CAA8C,mHAAmH,gCAAgC,oBAAoB,+BAA+B,+JAA+J,oDAAoD,cAAc,gBAAgB,sBAAsB,cAAc,kBAAkB,EAAE,sGAAsG,sBAAsB,aAAa,+LAA+L,cAAc,wCAAwC,uBAAuB,mCAAmC,MAAM,EAAE,mBAAmB,yVAAyV,6CAA6C,oCAAoC,4DAA4D,gBAAgB,eAAe,4CAA4C,gBAAgB,+BAA+B,oFAAoF,uBAAuB,sMAAsM,GAAG,8WAA8W,+XAA+X,2DAA2D,sLAAsL,gCAAgC,oBAAoB,+BAA+B,oKAAoK,oDAAoD,cAAc,gBAAgB,YAAY,EAAE,iJAAiJ,sBAAsB,aAAa,sGAAsG,qBAAqB,kDAAkD,SAAS,EAAE,gBAAgB,MAAM,kEAAkE,iDAAiD,SAAS,2BAA2B,iEAAiE,OAAO,6BAA6B,qDAAqD,iBAAiB,IAAI,kBAAkB,2BAA2B,gBAAgB,qBAAqB,IAAI,mBAAmB,yCAAyC,IAAI,kCAAkC,UAAU,IAAI,6BAA6B,YAAY,IAAI,kBAAkB,2BAA2B,8BAA8B,uBAAuB,oIAAoI,eAAe,GAAG,sBAAsB,aAAa,8BAA8B,IAAI,oCAAoC,SAAS,KAAK,IAAI,kDAAkD,SAAS,KAAK,8BAA8B,MAAM,wDAAwD,gBAAgB,oGAAoG,iBAAiB,IAAI,iCAAiC,SAAS,yCAAyC,6BAA6B,QAAQ,IAAI,2JAA2J,0BAA0B,IAAI,6QAA6Q,SAAS,6BAA6B,qBAAqB,6BAA6B,8CAA8C,IAAI,yBAAyB,SAAS,4BAA4B,2CAA2C,UAAU,IAAI,4BAA4B,uCAAuC,KAAK,2BAA2B,SAAS,sBAAsB,yFAAyF,cAAc,4BAA4B,MAAM,iDAAiD,sBAAsB,KAAK,sCAAsC,EAAE,cAAc,sBAAsB,aAAa,4BAA4B,yCAAyC,MAAM,EAAE,qBAAqB,yBAAyB,EAAE,kBAAkB,kBAAkB,GAAG,sBAAsB,aAAa,WAAW,+XAA+X,GAAG,sBAAsB,aAAa,iBAAiB,mBAAmB,MAAM,KAAK,IAAI,YAAY,IAAI,iCAAiC,OAAO,SAAS,GAAG,4BAA4B,cAAc,MAAM,YAAY,IAAI,4BAA4B,YAAY,GAAG,sBAAsB,aAAa,8MAA8M,gBAAgB,oBAAoB,cAAc,uBAAuB,cAAc,mBAAmB,OAAO,QAAQ,cAAc,0BAA0B,iNAAiN,gBAAgB,qHAAqH,gBAAgB,6BAA6B,gBAAgB,sEAAsE,gBAAgB,6LAA6L,oEAAoE,GAAG,+DAA+D,SAAS,IAAI,mJAAmJ,wBAAwB,kCAAkC,sBAAsB,4BAA4B,oCAAoC,cAAc,mCAAmC,GAAG,+DAA+D,wGAAwG,uCAAuC,EAAE,UAAU,uCAAuC,EAAE,KAAK,6BAA6B,sZAAsZ,sKAAsK,GAAG,0CAA0C,gBAAgB,aAAa,EAAE,kBAAkB,sCAAsC,yBAAyB,8XAA8X,qBAAqB,+KAA+K,EAAE,aAAa,iJAAiJ,wEAAwE,8CAA8C,sIAAsI,gBAAgB,eAAe,EAAE,kBAAkB,sCAAsC,yBAAyB,yeAAye,wIAAwI,oLAAoL,EAAE,kGAAkG,2BAA2B,iHAAiH,oDAAoD,yNAAyN,sBAAsB,mFAAmF,aAAa,8nCAA8nC,cAAc,MAAM,6MAA6M,cAAc,WAAW,0BAA0B,6SAA6S,YAAY,wBAAwB,eAAe,QAAQ,8GAA8G,aAAa,YAAY,ueAAue,+BAA+B,YAAY,sDAAsD,EAAE,mBAAmB,wCAAwC,yBAAyB,sCAAsC,sBAAsB,kHAAkH,iFAAiF,oHAAoH,0NAA0N,uBAAuB,yFAAyF,4DAA4D,yBAAyB,YAAY,4CAA4C,yGAAyG,mrBAAmrB,KAAK,2BAA2B,qLAAqL,oCAAoC,gBAAgB,0MAA0M,gDAAgD,0IAA0I,iBAAiB,mCAAmC,YAAY,GAAG,mKAAmK,IAAI,MAAM,oFAAoF,aAAa,8GAA8G,iBAAiB,sCAAsC,YAAY,GAAG,mKAAmK,IAAI,MAAM,0FAA0F,aAAa,mGAAmG,kBAAkB,iMAAiM,iDAAiD,yDAAyD,iDAAiD,2DAA2D,mCAAmC,WAAW,EAAE,4CAA4C,kBAAkB,MAAM,kIAAkI,0GAA0G,mCAAmC,4BAA4B,EAAE,mBAAmB,uCAAuC,yBAAyB,0GAA0G,eAAe,IAAI,2GAA2G,gFAAgF,mPAAmP,0GAA0G,2BAA2B,yFAAyF,mMAAmM,6SAA6S,0BAA0B,MAAM,kIAAkI,sCAAsC,+BAA+B,yBAAyB,uEAAuE,gRAAgR,eAAe,EAAE,qCAAqC,yHAAyH,EAAE,kCAAkC,8LAA8L,oDAAoD,EAAE,8EAA8E,sBAAsB,aAAa,qBAAqB,wIAAwI,GAAG,sBAAsB,aAAa,wBAAwB,sDAAsD,yPAAyP,KAAK,qDAAqD,QAAQ,EAAE,wDAAwD,KAAK,YAAY,cAAc,4BAA4B,WAAW,SAAS,UAAU,QAAQ,8CAA8C,QAAQ,6HAA6H,QAAQ,EAAE,4CAA4C,cAAc,4BAA4B,WAAW,wCAAwC,QAAQ,wFAAwF,gDAAgD,QAAQ,0BAA0B,sBAAsB,gDAAgD,QAAQ,kBAAkB,eAAe,SAAS,kBAAkB,EAAE,WAAW,aAAa,sBAAsB,SAAS,kBAAkB,EAAE,YAAY,WAAW,kBAAkB,EAAE,YAAY,oBAAoB,SAAS,kBAAkB,EAAE,UAAU,KAAK,IAAI,gDAAgD,wCAAwC,KAAK,UAAU,mDAAmD,EAAE,wCAAwC,OAAO,OAAO,gBAAgB,yIAAyI,GAAG,sBAAsB,aAAa,+HAA+H,cAAc,8DAA8D,aAAa,+fAA+f,cAAc,MAAM,0QAA0Q,cAAc,MAAM,mEAAmE,gBAAgB,QAAQ,mKAAmK,gBAAgB,QAAQ,8EAA8E,aAAa,cAAc,MAAM,MAAM,6CAA6C,MAAM,eAAe,KAAK,MAAM,eAAe,KAAK,MAAM,eAAe,KAAK,MAAM,eAAe,iCAAiC,OAAO,MAAM,KAAK,eAAe,4BAA4B,OAAO,OAAO,kDAAkD,oBAAoB,gBAAgB,kYAAkY,kFAAkF,eAAe,0CAA0C,2HAA2H,8DAA8D,0IAA0I,QAAQ,gBAAgB,sBAAsB,UAAU,MAAM,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,wBAAwB,0EAA0E,MAAM,6EAA6E,yCAAyC,MAAM,cAAc,6CAA6C,MAAM,gDAAgD,mBAAmB,sCAAsC,MAAM,uDAAuD,MAAM,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,+BAA+B,6CAA6C,MAAM,kBAAkB,2CAA2C,MAAM,8GAA8G,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,yIAAyI,YAAY,KAAK,EAAE,iBAAiB,sBAAsB,8HAA8H,wBAAwB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,gHAAgH,iCAAiC,SAAS,oQAAoQ,oBAAoB,wBAAwB,iBAAiB,QAAQ,mFAAmF,EAAE,+DAA+D,gCAAgC,oBAAoB,wBAAwB,iBAAiB,QAAQ,sFAAsF,EAAE,+DAA+D,mCAAmC,SAAS,uBAAuB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,wBAAwB,sCAAsC,MAAM,MAAM,8EAA8E,MAAM,aAAa,KAAK,EAAE,iBAAiB,sBAAsB,qCAAqC,yGAAyG,4BAA4B,gCAAgC,mBAAmB,0BAA0B,MAAM,KAAK,IAAI,EAAE,iBAAiB,sBAAsB,mCAAmC,iBAAiB,MAAM,qCAAqC,YAAY,QAAQ,iBAAiB,MAAM,4CAA4C,YAAY,MAAM,4BAA4B,KAAK,EAAE,iBAAiB,sBAAsB,8BAA8B,+CAA+C,MAAM,kDAAkD,kBAAkB,uBAAuB,uCAAuC,sDAAsD,MAAM,UAAU,MAAM,aAAa,KAAK,EAAE,iBAAiB,sBAAsB,mHAAmH,sDAAsD,MAAM,mBAAmB,aAAa,eAAe,EAAE,KAAK,IAAI,EAAE,iBAAiB,sBAAsB,oCAAoC,KAAK,UAAU,uBAAuB,qCAAqC,eAAe,6DAA6D,2CAA2C,MAAM,mBAAmB,aAAa,sBAAsB,EAAE,KAAK,wEAAwE,EAAE,iBAAiB,sBAAsB,uCAAuC,KAAK,WAAW,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,2BAA2B,4CAA4C,MAAM,yCAAyC,gBAAgB,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,sCAAsC,KAAK,UAAU,IAAI,EAAE,iBAAiB,sBAAsB,yCAAyC,4BAA4B,4CAA4C,MAAM,KAAK,IAAI,qBAAqB,qBAAqB,oBAAoB,uDAAuD,MAAM,kBAAkB,eAAe,iEAAiE,8CAA8C,MAAM,wCAAwC,gBAAgB,yEAAyE,wCAAwC,MAAM,2BAA2B,kBAAkB,yBAAyB,iMAAiM,MAAM,aAAa,wEAAwE,EAAE,iBAAiB,sBAAsB,kBAAkB,gBAAgB,6EAA6E,EAAE,iBAAiB,sBAAsB,sBAAsB,2CAA2C,UAAU,MAAM,SAAS,oBAAoB,MAAM,SAAS,8CAA8C,MAAM,uBAAuB,oBAAoB,cAAc,IAAI,EAAE,iBAAiB,sBAAsB,mEAAmE,yBAAyB,aAAa,0EAA0E,EAAE,iBAAiB,sBAAsB,eAAe,gBAAgB,8EAA8E,EAAE,iBAAiB,sBAAsB,sBAAsB,+BAA+B,wCAAwC,MAAM,kCAAkC,oBAAoB,cAAc,IAAI,EAAE,iBAAiB,sBAAsB,mEAAmE,oBAAoB,gDAAgD,MAAM,UAAU,yBAAyB,qBAAqB,mCAAmC,gDAAgD,MAAM,iFAAiF,iCAAiC,gCAAgC,kBAAkB,EAAE,0BAA0B,MAAM,yBAAyB,8BAA8B,MAAM,mBAAmB,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,qIAAqI,uCAAuC,MAAM,MAAM,UAAU,4BAA4B,KAAK,KAAK,EAAE,iBAAiB,sBAAsB,6BAA6B,yCAAyC,MAAM,MAAM,UAAU,YAAY,QAAQ,aAAa,QAAQ,iBAAiB,yBAAyB,8dAA8d,0BAA0B,yBAAyB,cAAc,gDAAgD,kCAAkC,MAAM,qEAAqE,sCAAsC,iBAAiB,wIAAwI,oDAAoD,EAAE,gFAAgF,sBAAsB,aAAa,sbAAsb,oCAAoC,iIAAiI,QAAQ,MAAM,WAAW,QAAQ,IAAI,gBAAgB,aAAa,eAAe,KAAK,sEAAsE,QAAQ,cAAc,KAAK,qBAAqB,MAAM,kCAAkC,gCAAgC,eAAe,KAAK,qBAAqB,QAAQ,IAAI,mCAAmC,+IAA+I,MAAM,EAAE,wFAAwF,yCAAyC,EAAE,aAAa,IAAI,OAAO,0CAA0C,eAAe,YAAY,mBAAmB,mCAAmC,yBAAyB,WAAW,+CAA+C,4BAA4B,oDAAoD,EAAE,qBAAqB,sBAAsB,aAAa,WAAW,4KAA4K,GAAG,sBAAsB,aAAa,mCAAmC,cAAc,mBAAmB,OAAO,QAAQ,wUAAwU,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,qBAAqB,KAAK,mBAAmB,KAAK,yBAAyB,sBAAsB,iHAAiH,gBAAgB,iDAAiD,cAAc,iCAAiC,gBAAgB,sEAAsE,kBAAkB,oJAAoJ,kBAAkB,qBAAqB,gBAAgB,YAAY,0BAA0B,EAAE,aAAa,kBAAkB,6BAA6B,QAAQ,KAAK,uBAAuB,QAAQ,KAAK,KAAK,eAAe,6BAA6B,cAAc,MAAM,QAAQ,IAAI,uBAAuB,QAAQ,IAAI,uBAAuB,QAAQ,IAAI,qBAAqB,mEAAmE,cAAc,uGAAuG,oBAAoB,gBAAgB,0CAA0C,kBAAkB,2BAA2B,iGAAiG,+BAA+B,YAAY,kBAAkB,gBAAgB,uBAAuB,wNAAwN,EAAE,SAAS,gBAAgB,kGAAkG,kCAAkC,IAAI,kEAAkE,KAAK,aAAa,gGAAgG,iCAAiC,KAAK,aAAa,QAAQ,wPAAwP,EAAE,6CAA6C,2KAA2K,QAAQ,KAAK,oBAAoB,+CAA+C,IAAI,wKAAwK,UAAU,GAAG,UAAU,kBAAkB,KAAK,wDAAwD,WAAW,QAAQ,MAAM,wBAAwB,MAAM,qFAAqF,wBAAwB,kBAAkB,gCAAgC,8CAA8C,KAAK,sMAAsM,kBAAkB,gCAAgC,2BAA2B,KAAK,2CAA2C,YAAY,wBAAwB,EAAE,0IAA0I,iDAAiD,KAAK,SAAS,oBAAoB,wCAAwC,uFAAuF,WAAW,uBAAuB,eAAe,+BAA+B,UAAU,MAAM,mBAAmB,UAAU,aAAa,mBAAmB,KAAK,mBAAmB,UAAU,aAAa,UAAU,IAAI,sBAAsB,YAAY,iBAAiB,QAAQ,KAAK,WAAW,QAAQ,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,KAAK,OAAO,uBAAuB,mBAAmB,IAAI,6BAA6B,sEAAsE,+HAA+H,0DAA0D,YAAY,+DAA+D,mBAAmB,QAAQ,MAAM,iDAAiD,0EAA0E,SAAS,IAAI,qCAAqC,SAAS,+CAA+C,MAAM,+FAA+F,8BAA8B,KAAK,kCAAkC,oLAAoL,MAAM,2CAA2C,IAAI,+BAA+B,0CAA0C,2FAA2F,6BAA6B,gRAAgR,yBAAyB,8BAA8B,4IAA4I,KAAK,EAAE,qBAAqB,sBAAsB,aAAa,qBAAqB,6LAA6L,GAAG,sBAAsB,aAAa,kEAAkE,gCAAgC,0CAA0C,GAAG,EAAE,GAAG,WAAW;;;;;;;;;;;ACZ7p6F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oCAAoC;;AAEpC;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,wBAAwB,qBAAM,gBAAgB,qBAAM,IAAI,qBAAM,sBAAsB,qBAAM;;AAE1F;AACA;;AAEA;AACA;;AAEA;AACA,kBAAkB,KAA0B;;AAE5C;AACA,gCAAgC,QAAa;;AAE7C;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAI;AACJ,CAAC;;AAED;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,UAAU;AACvB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,SAAS;AACpB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,WAAW,SAAS;AACpB;AACA;AACA,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,OAAO;AAClB,WAAW,OAAO;AAClB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,WAAW,UAAU;AACrB,WAAW,UAAU;AACrB,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,WAAW,QAAQ;AACnB,aAAa,GAAG;AAChB;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,QAAQ;AACnB,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,QAAQ;AACrB;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,UAAU;AACrB,aAAa,QAAQ;AACrB;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA,MAAM;AACN;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA,8BAA8B,mBAAmB;AACjD;AACA;AACA;AACA;AACA;AACA,+CAA+C,mBAAmB;AAClE;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,kBAAkB;AAClB,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,GAAG;AACd,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW,QAAQ;AACnB,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,OAAO;AACpB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;;;;;ACvzDa;;AAEb;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB,sBAAsB;AACxC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,qBAAqB,mCAAmC;AACxD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB,GAAG,wBAAwB;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA,oBAAoB,uBAAuB;AAC3C;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;AACA;;AAEA;;;;;;;;;;;;AChGa;;AAEb,WAAW,mBAAO,CAAC,yEAAQ;AAC3B,0BAA0B,mBAAO,CAAC,6FAAkB,GAAG,mBAAO,CAAC,uFAAe;;;;;;;;;;;ACH9E,kBAAkB;;;;;;;;;;ACAlB,kBAAkB;;;;;;;;;;;ACAL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,yBAAyB,mBAAO,CAAC,2GAAwB;AACzD,4CAA4C,WAAW,IAAI,cAAc,IAAI,MAAM;AACnF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;;;;;;;;;;;;AC3BR;AACb;AACA;AACA,mCAAmC,oCAAoC,gBAAgB;AACvF,CAAC;AACD;AACA;AACA,CAAC;AACD;AACA;AACA;AACA,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,GAAG,iBAAiB;AACzC,oBAAoB,mBAAO,CAAC,uFAAW;AACvC,sBAAsB,mBAAO,CAAC,6GAAqB;AACnD,oBAAoB,mBAAO,CAAC,2GAAwB;AACpD,6CAA4C,EAAE,qCAAqC,iCAAiC,EAAC;AACrH,yBAAyB,mBAAO,CAAC,qHAA6B;AAC9D,oBAAoB,mBAAO,CAAC,qFAAa;AACzC,qBAAqB,mBAAO,CAAC,uFAAc;AAC3C,eAAe,mBAAO,CAAC,2EAAQ;AAC/B;AACA;AACA,6FAA6F,wBAAwB;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA,kBAAe;AACf,aAAa,mBAAO,CAAC,uFAAc;AACnC,uBAAuB,mBAAO,CAAC,+FAAkB;AACjD,iDAAgD,EAAE,qCAAqC,0CAA0C,EAAC;;;;;;;;;;;;AC/DrH;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB,mBAAO,CAAC,uFAAc;AAC3C,kBAAe;AACf;AACA;AACA,mDAAmD,IAAI,gBAAgB;AACvE;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACVa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,WAAW;AACX,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,oBAAoB,mBAAO,CAAC,4GAAyB;AACrD;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,yCAAyC;AACzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;;;;;;;;;;;;AC3BE;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB,GAAG,yBAAyB,GAAG,4BAA4B,GAAG,2BAA2B,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,wBAAwB,GAAG,oBAAoB,GAAG,sBAAsB,GAAG,qBAAqB,GAAG,uBAAuB,GAAG,sBAAsB,GAAG,wBAAwB,GAAG,uBAAuB,GAAG,uBAAuB,GAAG,uBAAuB;AAC9Z,iBAAiB,mBAAO,CAAC,qGAAqB;AAC9C,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,iBAAiB,mBAAO,CAAC,qGAAqB;AAC9C,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,iBAAiB,mBAAO,CAAC,qGAAqB;AAC9C,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,kBAAkB,mBAAO,CAAC,uGAAsB;AAChD,oDAAmD,EAAE,qCAAqC,sCAAsC,EAAC;AACjI,oBAAoB,mBAAO,CAAC,2GAAwB;AACpD,gBAAgB,mBAAO,CAAC,mGAAoB;AAC5C,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,iBAAiB,mBAAO,CAAC,qGAAqB;AAC9C,mDAAkD,EAAE,qCAAqC,oCAAoC,EAAC;AAC9H,eAAe,mBAAO,CAAC,iGAAmB;AAC1C,iDAAgD,EAAE,qCAAqC,gCAAgC,EAAC;AACxH,gBAAgB,mBAAO,CAAC,mGAAoB;AAC5C,kDAAiD,EAAE,qCAAqC,kCAAkC,EAAC;AAC3H,cAAc,mBAAO,CAAC,+FAAkB;AACxC,gDAA+C,EAAE,qCAAqC,8BAA8B,EAAC;AACrH,mBAAmB,mBAAO,CAAC,yGAAuB;AAClD,oDAAmD,EAAE,qCAAqC,uCAAuC,EAAC;AAClI,cAAc,mBAAO,CAAC,+FAAkB;AACxC,gDAA+C,EAAE,qCAAqC,8BAA8B,EAAC;AACrH,mBAAmB,mBAAO,CAAC,yGAAuB;AAClD,oDAAmD,EAAE,qCAAqC,uCAAuC,EAAC;AAClI,sBAAsB,mBAAO,CAAC,+GAA0B;AACxD,uDAAsD,EAAE,qCAAqC,6CAA6C,EAAC;AAC3I,uBAAuB,mBAAO,CAAC,iHAA2B;AAC1D,wDAAuD,EAAE,qCAAqC,+CAA+C,EAAC;AAC9I,oBAAoB,mBAAO,CAAC,2GAAwB;AACpD,qDAAoD,EAAE,qCAAqC,yCAAyC,EAAC;AACrI,cAAc,mBAAO,CAAC,+FAAkB;AACxC,gDAA+C,EAAE,qCAAqC,8BAA8B,EAAC;AACrH,kBAAe;AACf;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,KAAK;AACL;AACA;;;;;;;;;;;;ACpJa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,yBAAyB,mBAAO,CAAC,gGAAmB;AACpD,yBAAyB,mBAAO,CAAC,0GAAkB;AACnD,0CAA0C,mBAAO,CAAC,8IAA0C;AAC5F;AACA;AACA;AACA;AACA,wCAAwC;AACxC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yGAAyG,QAAQ;AACjH;AACA;AACA;AACA,oBAAoB;;;;;;;;;;;;ACtDP;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,4BAA4B;AAC5B,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,2BAA2B,WAAW,YAAY,iBAAiB;AAC7H;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA,4BAA4B;;;;;;;;;;;;ACzCf;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,gBAAgB,mBAAO,CAAC,sGAAgB;AACxC,oBAAoB,mBAAO,CAAC,gGAAa;AACzC,sBAAsB,mBAAO,CAAC,sGAAsB;AACpD,kBAAkB,mBAAO,CAAC,8FAAkB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,mBAAmB,OAAO,YAAY,aAAa;AAC7G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,aAAa;AAC1H;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,aAAa;AACrI,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,aAAa;AAC1H;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,aAAa;AACrI,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,cAAc,YAAY,SAAS;AAC/G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gBAAgB,cAAc,YAAY,wBAAwB;AAC5H;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,+BAA+B,+BAA+B,YAAY,sBAAsB;AAC1J;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,8BAA8B,+BAA+B,YAAY,sBAAsB;AACzJ;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qBAAqB,sBAAsB;AACrG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,0BAA0B,yBAAyB,YAAY,sBAAsB;AAC/I;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,iDAAiD,KAAK,MAAM;AAC3G;AACA,SAAS;AACT;AACA;AACA,sBAAsB;;;;;;;;;;;;AC7JT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,mBAAmB,GAAG,kBAAkB;AACxC;AACA;AACA;AACA,kBAAkB;AAClB;AACA;AACA;AACA;AACA,mBAAmB;;;;;;;;;;;;ACXN;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;ACZV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,MAAM;AAClF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,mBAAmB,MAAM;AACnF;AACA,SAAS;AACT;AACA;AACA,wBAAwB;;;;;;;;;;;;AC9BX;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB;AACzB,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,2BAA2B,WAAW,YAAY,iBAAiB;AAC7H;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA,yBAAyB;;;;;;;;;;;;AC/CZ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,qBAAqB;AACrB,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,EAAE,qBAAqB,eAAe,mBAAmB;AACnH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,EAAE,qBAAqB,cAAc,mBAAmB;AAClH;AACA,SAAS;AACT;AACA;AACA,qBAAqB;;;;;;;;;;;;AClCR;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,sBAAsB;AACtB,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,iBAAiB,SAAS,YAAY,WAAW;AAC3G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,SAAS,YAAY,cAAc;AAC/G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,uBAAuB,QAAQ,YAAY,cAAc;AACnH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,yBAAyB,kBAAkB;AACjG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,IAAI,WAAW,qBAAqB,cAAc;AAC5G;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB;;;;;;;;;;;;ACvGT;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,gBAAgB,mBAAO,CAAC,sGAAgB;AACxC,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,kBAAkB,mBAAO,CAAC,8FAAkB;AAC5C,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,iBAAiB,KAAK,YAAY,SAAS;AACnG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,8BAA8B,KAAK,YAAY,SAAS;AAChH;AACA,wDAAwD,OAAO,8BAA8B,SAAS,YAAY,SAAS;AAC3H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,8BAA8B,KAAK,YAAY,SAAS;AAChH;AACA,wDAAwD,OAAO,8BAA8B,SAAS,YAAY,SAAS;AAC3H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D,OAAO,iBAAiB,4BAA4B;AAChH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,uBAAuB,qBAAqB;AAClG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8DAA8D,OAAO,mBAAmB,8BAA8B;AACtH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,yBAAyB,uBAAuB;AACtG;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,qBAAqB,yBAAyB;AACtG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,0BAA0B,8BAA8B,YAAY,yBAAyB;AACrJ;AACA,SAAS;AACT;AACA;AACA,oBAAoB;;;;;;;;;;;;ACpJP;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,aAAa,mBAAO,CAAC,iHAAkB;AACvC,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,MAAM,IAAI,IAAI,SAAS,MAAM;AACzG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qBAAqB,OAAO,QAAQ,MAAM;AACpG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,iCAAiC,OAAO,QAAQ,MAAM;AAChH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,OAAO,QAAQ,MAAM;AACjG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,8BAA8B,OAAO,QAAQ,MAAM;AAC7G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,iBAAiB,SAAS,QAAQ,MAAM;AAClG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,UAAU;AAClG;AACA,mCAAmC,OAAO,iBAAiB,YAAY,UAAU,MAAM;AACvF,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,wBAAwB,MAAM;AACxF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,oBAAoB,MAAM;AACpF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,sBAAsB,MAAM;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,sBAAsB,MAAM;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,sBAAsB,MAAM;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,oCAAoC,MAAM;AACpG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;;;;;;;;;;;;AC5LV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,aAAa,mBAAO,CAAC,iHAAkB;AACvC,gBAAgB,mBAAO,CAAC,oFAAU;AAClC,gBAAgB,mBAAO,CAAC,sGAAgB;AACxC,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,kBAAkB,mBAAO,CAAC,8FAAkB;AAC5C,uBAAuB,mBAAO,CAAC,wGAAuB;AACtD,sBAAsB,mBAAO,CAAC,sGAAsB;AACpD,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,qBAAqB,uBAAuB;AACvG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,OAAO,0BAA0B,yBAAyB,YAAY,uBAAuB;AACjJ;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsB,OAAO;AAC7B;AACA;AACA;AACA,mCAAmC,OAAO,IAAI,KAAK,qBAAqB,cAAc;AACtF,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D,OAAO,iBAAiB,4BAA4B;AAChH;AACA;AACA,aAAa;AACb,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,uBAAuB,qBAAqB;AAClG;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,+CAA+C,kDAAkD,KAAK,MAAM;AAC5G;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,QAAQ,cAAc;AACtB;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,kDAAkD,KAAK,MAAM;AAC5G;AACA,SAAS;AACT;AACA;AACA,uBAAuB;;;;;;;;;;;;AC7KV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,iBAAiB,GAAG,uBAAuB;AAC3C,aAAa,mBAAO,CAAC,iHAAkB;AACvC,yBAAyB,mBAAO,CAAC,gGAAmB;AACpD,cAAc,mBAAO,CAAC,8FAAkB;AACxC,yBAAyB,mBAAO,CAAC,0GAAkB;AACnD,0CAA0C,mBAAO,CAAC,8IAA0C;AAC5F;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mCAAmC,sBAAsB,kBAAkB,UAAU,yBAAyB,yBAAyB;AACvI,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,qBAAqB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6DAA6D,OAAO;AACpE;AACA,mBAAmB,WAAW,EAAE,cAAc;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM,IAAI,MAAM;AACpC;AACA;AACA,wBAAwB,qBAAqB;AAC7C;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oBAAoB,MAAM,IAAI,MAAM;AACpC,4BAA4B,OAAO,IAAI,MAAM;AAC7C;AACA,SAAS;AACT;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,0EAA0E,MAAM,yCAAyC,MAAM;AAC/H;AACA;AACA;AACA;AACA,gBAAgB,aAAa;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;;;;;;;;;;;;ACrLJ;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oBAAoB;AACpB,gBAAgB,mBAAO,CAAC,sGAAgB;AACxC,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,kBAAkB,mBAAO,CAAC,8FAAkB;AAC5C,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,iBAAiB,KAAK,YAAY,SAAS;AACnG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,8BAA8B,KAAK,YAAY,SAAS;AAChH;AACA,wDAAwD,OAAO,8BAA8B,SAAS,YAAY,SAAS;AAC3H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,8BAA8B,KAAK,YAAY,SAAS;AAChH;AACA,wDAAwD,OAAO,8BAA8B,SAAS,YAAY,SAAS;AAC3H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,OAAO,kBAAkB,6BAA6B;AACnH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,wBAAwB,sBAAsB;AACpG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C,MAAM,IAAI,MAAM;AAC9D;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,qBAAqB,yBAAyB;AACtG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,iDAAiD,OAAO,0BAA0B,8BAA8B,YAAY,yBAAyB;AACrJ;AACA,SAAS;AACT;AACA;AACA,oBAAoB;;;;;;;;;;;;AChHP;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,uBAAuB;AACvB,aAAa,mBAAO,CAAC,iHAAkB;AACvC,iBAAiB,mBAAO,CAAC,uFAAW;AACpC,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,mBAAmB,OAAO,YAAY,MAAM;AACtG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,MAAM;AACnH;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,MAAM;AAC9H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,MAAM;AACnH;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,MAAM;AAC9H,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,aAAa,MAAM,YAAY,MAAM;AAC/F;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,kBAAkB,aAAa,YAAY,MAAM;AAC3G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gBAAgB,aAAa,YAAY,MAAM;AACzG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,eAAe,aAAa,YAAY,MAAM;AACxG;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,wFAAwF,UAAU;AAClG;AACA,mCAAmC,OAAO,iBAAiB,YAAY,YAAY,MAAM;AACzF,aAAa;AACb;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qBAAqB,MAAM;AACrF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,+CAA+C,OAAO;AACtD;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,mBAAmB,SAAS,YAAY,MAAM;AACxG;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,4BAA4B,MAAM;AAC5F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,4BAA4B,MAAM;AAC5F;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,uBAAuB,MAAM;AACvF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,sBAAsB,MAAM;AACtF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,yBAAyB,MAAM;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,yBAAyB,MAAM;AACzF;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qBAAqB,MAAM;AACrF;AACA,SAAS;AACT;AACA;AACA,uBAAuB;;;;;;;;;;;;AC3MV;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,2BAA2B;AAC3B,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,2BAA2B,WAAW,YAAY,iBAAiB;AAC7H;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,qCAAqC,WAAW,YAAY,iBAAiB;AACvI;AACA,0DAA0D,OAAO,qCAAqC,eAAe,YAAY,iBAAiB;AAClJ,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,mBAAmB,OAAO,YAAY,aAAa;AAC7G;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,aAAa;AAC1H;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,aAAa;AACrI,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mDAAmD,OAAO,gCAAgC,OAAO,YAAY,aAAa;AAC1H;AACA,0DAA0D,OAAO,gCAAgC,WAAW,YAAY,aAAa;AACrI,SAAS;AACT;AACA;AACA,2BAA2B;;;;;;;;;;;;AC5Ed;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,4DAA4D,OAAO,iBAAiB,4BAA4B;AAChH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,uBAAuB,qBAAqB;AAClG;AACA,SAAS;AACT;AACA;AACA,wBAAwB;;;;;;;;;;;;ACnCX;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,wBAAwB;AACxB,oBAAoB,mBAAO,CAAC,kGAAoB;AAChD,oBAAoB,mBAAO,CAAC,gGAAa;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,6DAA6D,OAAO,kBAAkB,6BAA6B;AACnH;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,+CAA+C,OAAO,wBAAwB,sBAAsB;AACpG;AACA,SAAS;AACT;AACA;AACA,wBAAwB;;;;;;;;;;;;ACnCX;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,yBAAyB,mBAAO,CAAC,qHAA6B;AAC9D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAe;;;;;;;;;;;;AChBF;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,oCAAoC;AACpC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4BAA4B,oBAAoB,EAAE,MAAM;AACxD;AACA;AACA;AACA;AACA;AACA,qDAAqD,KAAK;AAC1D;AACA;AACA;AACA,yCAAyC,IAAI;AAC7C;AACA,gCAAgC,MAAM;AACtC;AACA;AACA;AACA;AACA,oCAAoC;;;;;;;;;;;;ACvCvB;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,0BAA0B;AAC1B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B;;;;;;;;;;;;ACZb;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACvBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAkB;AAClB;AACA,kBAAkB;;;;;;;;;;;;ACJL;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,GAAG,eAAe;AAC/B,aAAa,mBAAO,CAAC,iHAAkB;AACvC,eAAe,mBAAO,CAAC,4EAAS;AAChC,yBAAyB,mBAAO,CAAC,sHAA8B;AAC/D;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO,GAAG,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO,GAAG,IAAI;AACpD;AACA;AACA;AACA;AACA;AACA,yCAAyC,MAAM;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sCAAsC,OAAO,GAAG,SAAS;AACzD,qCAAqC,kCAAkC,IAAI,MAAM,qBAAqB,iBAAiB;AACvH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;;;;;;;;;;;;AC3EA;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,aAAa,mBAAO,CAAC,iHAAkB;AACvC,eAAe,mBAAO,CAAC,4EAAS;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACzBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,eAAe,mBAAO,CAAC,4EAAS;AAChC;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;ACrBa;AACb,8CAA6C,EAAE,aAAa,EAAC;AAC7D,kBAAe;;;;;;;;;;;;ACFf;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kBAAkB,kBAAkB;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,uCAAuC,8BAA8B;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA,MAAM;AACN;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,oBAAoB,sBAAsB;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,WAAW,yBAAyB;AACpC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,WAAW,qBAAqB;AAChC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,WAAW,aAAa;AACxB;AACA;AACA;AACA;AACA,6CAA6C;AAC7C;AACA,YAAY;AACZ;AACA,sCAAsC;AACtC;AACA;AACA,UAAU;AACV;AACA;AACA,iDAAiD;AACjD;AACA,YAAY;AACZ;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,4CAA4C,cAAc;AAC1D;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,UAAU;AACV;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gDAAgD;AAChD;AACA,MAAM;AACN,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kCAAkC,QAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,WAAW,YAAY;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C;AAC5C,UAAU;AACV;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,oFAAoF;AACpF;AACA,MAAM;AACN;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;AACA;;AAEA,8DAA8D;;AAE9D;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;;;;;;;;;;AChhBA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;AACrC;AACA;AACA,iCAAiC;AACjC,iCAAiC;;AAEjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,WAAW;AAC9B;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA,qBAAqB,YAAY;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,2BAA2B,mBAAmB;AAC9C;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,WAAW;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA,cAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG,OAAO,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,mIAAmI,SAAS,2BAA2B,SAAS,wCAAwC,SAAS,qDAAqD,SAAS,6IAA6I,SAAS,SAAS,SAAS,yDAAyD,SAAS,6DAA6D,SAAS,2HAA2H,SAAS,QAAQ,SAAS,2CAA2C,SAAS,mDAAmD,SAAS,2BAA2B,SAAS,4EAA4E,SAAS,kIAAkI,SAAS,kBAAkB,SAAS,mEAAmE,SAAS,0DAA0D,SAAS,4DAA4D,SAAS,6JAA6J,SAAS,kBAAkB,SAAS,qDAAqD,SAAS,kBAAkB,SAAS,6EAA6E,SAAS,mDAAmD,SAAS,mIAAmI,SAAS,2BAA2B,SAAS,wCAAwC,UAAU,qDAAqD,UAAU,6IAA6I,UAAU,SAAS,UAAU,yDAAyD,UAAU,sEAAsE,UAAU,mHAAmH,UAAU,gBAAgB,UAAU,2CAA2C,UAAU,mDAAmD,UAAU,2BAA2B,UAAU,4EAA4E,UAAU,kIAAkI,UAAU,kBAAkB,UAAU,mEAAmE,UAAU,0DAA0D,UAAU,qEAAqE,UAAU,6JAA6J,UAAU,kBAAkB,UAAU,8DAA8D,UAAU,kBAAkB,UAAU,sFAAsF,UAAU,mDAAmD,oCAAoC,0BAA0B,0QAA0Q,oCAAoC,iCAAiC,QAAQ,kBAAkB,QAAQ,UAAU,gBAAgB,kBAAkB,SAAS,gDAAgD,oCAAoC,8EAA8E,SAAS,+DAA+D,oCAAoC,kBAAkB,0BAA0B,kBAAkB,QAAQ,UAAU,QAAQ,+DAA+D,gCAAgC,+DAA+D,oCAAoC,iCAAiC,QAAQ,kBAAkB,QAAQ,UAAU,gBAAgB,kBAAkB,SAAS,mDAAmD,oCAAoC,mFAAmF,SAAS,mEAAmE,oCAAoC,mBAAmB,0BAA0B,mBAAmB,QAAQ,UAAU,QAAQ,mEAAmE,gCAAgC,kCAAkC;AACptK,KAAK,8CAA8C,oCAAoC,kBAAkB,oCAAoC,uMAAuM,kBAAkB,mBAAmB,kBAAkB,6wBAA6wB,kBAAkB,mBAAmB,kBAAkB,6KAA6K,SAAS,mBAAmB,SAAS,gFAAgF,SAAS,mBAAmB,SAAS,gFAAgF,SAAS,mBAAmB,SAAS,kBAAkB,SAAS,mBAAmB,SAAS,wTAAwT,SAAS,kBAAkB,6CAA6C,mBAAmB,6CAA6C,kBAAkB,6CAA6C,mBAAmB,6CAA6C,UAAU,QAAQ,ulBAAulB,QAAQ,mBAAmB,QAAQ,sTAAsT;AACnsG,KAAK,+dAA+d,QAAQ,kBAAkB,QAAQ,kBAAkB,SAAS,mBAAmB,SAAS,kFAAkF,QAAQ,mBAAmB,QAAQ,yEAAyE,QAAQ,iWAAiW;AACpmC,KAAK,mGAAmG,QAAQ,m1CAAm1C,8DAA8D,UAAU,mCAAmC,UAAU,4CAA4C,UAAU,6DAA6D,UAAU,mCAAmC,UAAU,SAAS,UAAU,oDAAoD,UAAU,4CAA4C,mDAAmD,SAAS,mCAAmC,SAAS,0CAA0C,uEAAuE,UAAU,mCAAmC,UAAU,qDAAqD,UAAU,sEAAsE,UAAU,mCAAmC,UAAU,kBAAkB,UAAU,sEAAsE,UAAU,qDAAqD,mBAAmB,0BAA0B,mBAAmB,0BAA0B,mDAAmD,SAAS,kDAAkD,gBAAgB,yOAAyO;AAC74F,MAAM,+DAA+D,SAAS,mFAAmF,kBAAkB,WAAW,SAAS,WAAW,2BAA2B,WAAW,kBAAkB,WAAW,SAAS,WAAW,oCAAoC,6BAA6B,SAAS,WAAW,SAAS,WAAW,oCAAoC,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,kBAAkB,WAAW,SAAS,WAAW,2BAA2B,WAAW,kBAAkB,WAAW,SAAS,WAAW,oCAAoC,6BAA6B,SAAS,WAAW,SAAS,WAAW,oCAAoC,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,iEAAiE,SAAS,mFAAmF,SAAS,WAAW,SAAS,2PAA2P,SAAS,WAAW,SAAS,mOAAmO,SAAS,WAAW,SAAS,8PAA8P;AAC9xD,MAAM,ymBAAymB;AAC/mB,MAAM,yOAAyO,8BAA8B,WAAW,UAAU,WAAW,UAAU,yXAAyX,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,sOAAsO;AACh/B,MAAM,2bAA2b;AACjc,MAAM,6mBAA6mB;AACnnB,MAAM,SAAS,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,oSAAoS,oBAAoB,uHAAuH;AACxhB,MAAM,sRAAsR;AAC5R,MAAM,mBAAmB,8BAA8B,4HAA4H,UAAU,8BAA8B,oBAAoB,WAAW,UAAU,qEAAqE;AACzU,MAAM,SAAS,UAAU,wEAAwE,UAAU,8BAA8B,8BAA8B,4DAA4D,UAAU,+BAA+B;AAC5Q,MAAM,SAAS,oBAAoB,WAAW,UAAU,wFAAwF,8BAA8B,yCAAyC,UAAU,wCAAwC;AACzQ,MAAM,sPAAsP;AAC5P,MAAM,yqBAAyqB;AAC/qB,MAAM,SAAS,UAAU,iHAAiH,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,8CAA8C;AAChS,MAAM,6FAA6F,YAAY,YAAY,YAAY,8CAA8C;AACrL,MAAM,4CAA4C;AAClD,MAAM,yDAAyD,wBAAwB,qNAAqN;AAC5S,MAAM,UAAU,oCAAoC,0FAA0F;AAC9I,MAAM,UAAU,YAAY,YAAY,YAAY,oEAAoE;AACxH,MAAM,iCAAiC;AACvC,MAAM,0CAA0C;AAChD,MAAM,YAAY;AAClB,MAAM,oCAAoC;AAC1C,MAAM,sTAAsT;AAC5T,MAAM,SAAS,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,wCAAwC,UAAU,8BAA8B,UAAU,8BAA8B,UAAU,WAAW,UAAU,iDAAiD,UAAU,6LAA6L;AAChnB,MAAM,8TAA8T;AACpU,MAAM,8yEAA8yE;AACpzE,MAAM,64BAA64B,SAAS,oBAAoB,SAAS,2kBAA2kB,SAAS,oBAAoB,SAAS,yHAAyH,SAAS,oBAAoB,SAAS,47BAA47B,kBAAkB,mBAAmB,kBAAkB,2YAA2Y,SAAS,oBAAoB,SAAS,mUAAmU,SAAS,oBAAoB,SAAS,yuBAAyuB;AAC/rI,MAAM,kBAAkB,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,kBAAkB,oBAAoB,kBAAkB,4FAA4F,kBAAkB,oBAAoB,kBAAkB,4FAA4F,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,2BAA2B,oBAAoB,2BAA2B,gIAAgI,2BAA2B,oBAAoB,2BAA2B,gIAAgI,kBAAkB,oBAAoB,kBAAkB,4FAA4F,kBAAkB,oBAAoB,kBAAkB,4FAA4F,2BAA2B,oBAAoB,2BAA2B,gIAAgI,2BAA2B,0EAA0E,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,oCAAoC,oBAAoB,oCAAoC,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,qBAAqB,SAAS,oBAAoB,SAAS,+DAA+D,SAAS,2HAA2H,SAAS,u9BAAu9B,SAAS,0JAA0J,2BAA2B,6GAA6G,SAAS,orBAAorB,SAAS,kIAAkI,2BAA2B,EAAE;AAC/zK,MAAM,8/CAA8/C;AACpgD,MAAM,29DAA29D,SAAS,WAAW,SAAS,WAAW,SAAS,uHAAuH,SAAS,WAAW,SAAS,WAAW,SAAS,EAAE;AAC5rE,MAAM,SAAS,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,mIAAmI,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,6BAA6B,SAAS,2BAA2B,SAAS,6BAA6B,SAAS,WAAW,SAAS,iGAAiG,SAAS,WAAW,SAAS,+CAA+C,SAAS,WAAW,SAAS,+CAA+C,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,+CAA+C,SAAS,WAAW,SAAS,+CAA+C,SAAS,WAAW,SAAS,+CAA+C,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,mFAAmF,SAAS,WAAW,SAAS,WAAW,SAAS,WAAW,SAAS,kJAAkJ;AAC98C,MAAM,8BAA8B;AACpC,MAAM,ipFAAipF;AACvpF,OAAO,4HAA4H;AACnI,OAAO,0EAA0E;AACjF,OAAO,+bAA+b;AACtc,OAAO,wCAAwC;AAC/C,OAAO,wrIAAwrI;AAC/rI,OAAO,yLAAyL,YAAY,YAAY,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,kJAAkJ,YAAY,4DAA4D,YAAY,YAAY,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,YAAY,kCAAkC,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,wDAAwD,wBAAwB,wDAAwD,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,YAAY,0HAA0H,YAAY,kDAAkD;AAClyF,OAAO,khEAAkhE;AACzhE,OAAO,+4KAA+4K;AACt5K,OAAO,m3NAAm3N;AAC13N,OAAO,uDAAuD;AAC9D,OAAO,2FAA2F;AAClG,OAAO,4NAA4N;AACnO,OAAO,wDAAwD;AAC/D,OAAO,gQAAgQ;AACvQ,OAAO,wEAAwE;AAC/E,OAAO,gIAAgI;AACvI,OAAO,yFAAyF;AAChG,OAAO,YAAY;AACnB,OAAO,uxBAAuxB;AAC9xB,OAAO,0CAA0C;AACjD,OAAO,m5IAAm5I;AAC15I,OAAO,u5IAAu5I;AAC95I,OAAO,2oJAA2oJ;AAClpJ,OAAO,8rJAA8rJ;AACrsJ,OAAO,kGAAkG;AACzG,OAAO,owFAAowF;AAC3wF,OAAO,ulDAAulD;AAC9lD,OAAO,qyCAAqyC;AAC5yC,OAAO,gyIAAgyI;AACvyI,OAAO,k0QAAk0Q;AACz0Q,OAAO,4sHAA4sH;AACntH,OAAO,miIAAmiI;AAC1iI,OAAO,iiMAAiiM;AACxiM,OAAO,2yKAA2yK;AAClzK,OAAO,shIAAshI;AAC7hI,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,OAAO,IAA0B;AACjC;;AAEA;AACA,KAAK,KAAK,EAQN;;AAEJ;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,8DAA8D;AAC9D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA,cAAc;AACd;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA,CAAC;;;;;;;;;;;ACncD,2HAAuC;;;;;;;;;;ACAvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAAS;;;;;;;;;;;ACdT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,kBAAkB;AACtH;AACA;AACA,SAAS;;;;;;;;;;;ACZT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,kBAAkB;AACtH;AACA;AACA,SAAS;;;;;;;;;;;ACZT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yEAAyE,GAAG,EAAE,GAAG,EAAE,GAAG,cAAc,kBAAkB;AACtH;AACA;AACA,SAAS;;;;;;;;;;;ACZT;AACA,UAAU,kGAAgB;AAC1B,UAAU,kGAAgB;AAC1B,UAAU,kGAAgB;AAC1B,UAAU,kGAAgB;AAC1B,cAAc,mBAAO,CAAC,+EAAO;;AAE7B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;;;;;;;;;;ACzDY;AACb;AACA;AACA","sources":["webpack://hfy-epub/./node_modules/.pnpm/@sindresorhus+is@4.2.0/node_modules/@sindresorhus/is/dist/index.js","webpack://hfy-epub/./node_modules/.pnpm/callsites@3.1.0/node_modules/callsites/index.js","webpack://hfy-epub/./node_modules/.pnpm/diacritics@1.3.0/node_modules/diacritics/index.js","webpack://hfy-epub/./node_modules/.pnpm/dot-prop@6.0.1/node_modules/dot-prop/index.js","webpack://hfy-epub/./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/ejs.js","webpack://hfy-epub/./node_modules/.pnpm/ejs@3.1.6/node_modules/ejs/lib/utils.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/index.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/chapter.xhtml.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/content.opf.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub2/toc.xhtml.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/chapter.xhtml.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/content.opf.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/epub3/toc.xhtml.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/template.css.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/templates/toc.ncx.ejs.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/constants.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/fetchable-browser.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html-parse-browser.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/html.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/index.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/other.js","webpack://hfy-epub/./node_modules/.pnpm/epub-gen-memory@1.0.9/node_modules/epub-gen-memory/dist/lib/util/validate.js","webpack://hfy-epub/./node_modules/.pnpm/is-obj@2.0.0/node_modules/is-obj/index.js","webpack://hfy-epub/./node_modules/.pnpm/jszip@3.7.1/node_modules/jszip/dist/jszip.min.js","webpack://hfy-epub/./node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.js","webpack://hfy-epub/./node_modules/.pnpm/mime@2.5.2/node_modules/mime/Mime.js","webpack://hfy-epub/./node_modules/.pnpm/mime@2.5.2/node_modules/mime/index.js","webpack://hfy-epub/./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/other.js","webpack://hfy-epub/./node_modules/.pnpm/mime@2.5.2/node_modules/mime/types/standard.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/argument-error.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/index.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/modifiers.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/operators/not.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/any.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array-buffer.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/array.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/base-predicate.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/bigint.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/boolean.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/data-view.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/date.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/error.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/map.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/number.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/object.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/predicate.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/set.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/string.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/typed-array.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-map.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/predicates/weak-set.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/test.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-argument-error-message.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/generate-stack.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/has-items.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/infer-label.browser.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/match-shape.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type-deep.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/of-type.js","webpack://hfy-epub/./node_modules/.pnpm/ow@0.28.1/node_modules/ow/dist/utils/random-id.js","webpack://hfy-epub/./node_modules/.pnpm/path-browserify@1.0.1/node_modules/path-browserify/index.js","webpack://hfy-epub/./node_modules/.pnpm/unorm@1.6.0/node_modules/unorm/lib/unorm.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/index.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/L.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/M.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/N.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/Z.js","webpack://hfy-epub/./node_modules/.pnpm/uslug@1.0.4/node_modules/uslug/lib/uslug.js","webpack://hfy-epub/./node_modules/.pnpm/vali-date@1.0.0/node_modules/vali-date/index.js"],"sourcesContent":["\"use strict\";\n/// \n/// \n/// \nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst typedArrayTypeNames = [\n 'Int8Array',\n 'Uint8Array',\n 'Uint8ClampedArray',\n 'Int16Array',\n 'Uint16Array',\n 'Int32Array',\n 'Uint32Array',\n 'Float32Array',\n 'Float64Array',\n 'BigInt64Array',\n 'BigUint64Array'\n];\nfunction isTypedArrayName(name) {\n return typedArrayTypeNames.includes(name);\n}\nconst objectTypeNames = [\n 'Function',\n 'Generator',\n 'AsyncGenerator',\n 'GeneratorFunction',\n 'AsyncGeneratorFunction',\n 'AsyncFunction',\n 'Observable',\n 'Array',\n 'Buffer',\n 'Object',\n 'RegExp',\n 'Date',\n 'Error',\n 'Map',\n 'Set',\n 'WeakMap',\n 'WeakSet',\n 'ArrayBuffer',\n 'SharedArrayBuffer',\n 'DataView',\n 'Promise',\n 'URL',\n 'FormData',\n 'URLSearchParams',\n 'HTMLElement',\n ...typedArrayTypeNames\n];\nfunction isObjectTypeName(name) {\n return objectTypeNames.includes(name);\n}\nconst primitiveTypeNames = [\n 'null',\n 'undefined',\n 'string',\n 'number',\n 'bigint',\n 'boolean',\n 'symbol'\n];\nfunction isPrimitiveTypeName(name) {\n return primitiveTypeNames.includes(name);\n}\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction isOfType(type) {\n return (value) => typeof value === type;\n}\nconst { toString } = Object.prototype;\nconst getObjectType = (value) => {\n const objectTypeName = toString.call(value).slice(8, -1);\n if (/HTML\\w+Element/.test(objectTypeName) && is.domElement(value)) {\n return 'HTMLElement';\n }\n if (isObjectTypeName(objectTypeName)) {\n return objectTypeName;\n }\n return undefined;\n};\nconst isObjectOfType = (type) => (value) => getObjectType(value) === type;\nfunction is(value) {\n if (value === null) {\n return 'null';\n }\n switch (typeof value) {\n case 'undefined':\n return 'undefined';\n case 'string':\n return 'string';\n case 'number':\n return 'number';\n case 'boolean':\n return 'boolean';\n case 'function':\n return 'Function';\n case 'bigint':\n return 'bigint';\n case 'symbol':\n return 'symbol';\n default:\n }\n if (is.observable(value)) {\n return 'Observable';\n }\n if (is.array(value)) {\n return 'Array';\n }\n if (is.buffer(value)) {\n return 'Buffer';\n }\n const tagType = getObjectType(value);\n if (tagType) {\n return tagType;\n }\n if (value instanceof String || value instanceof Boolean || value instanceof Number) {\n throw new TypeError('Please don\\'t use object wrappers for primitive types');\n }\n return 'Object';\n}\nis.undefined = isOfType('undefined');\nis.string = isOfType('string');\nconst isNumberType = isOfType('number');\nis.number = (value) => isNumberType(value) && !is.nan(value);\nis.bigint = isOfType('bigint');\n// eslint-disable-next-line @typescript-eslint/ban-types\nis.function_ = isOfType('function');\nis.null_ = (value) => value === null;\nis.class_ = (value) => is.function_(value) && value.toString().startsWith('class ');\nis.boolean = (value) => value === true || value === false;\nis.symbol = isOfType('symbol');\nis.numericString = (value) => is.string(value) && !is.emptyStringOrWhitespace(value) && !Number.isNaN(Number(value));\nis.array = (value, assertion) => {\n if (!Array.isArray(value)) {\n return false;\n }\n if (!is.function_(assertion)) {\n return true;\n }\n return value.every(assertion);\n};\nis.buffer = (value) => { var _a, _b, _c, _d; return (_d = (_c = (_b = (_a = value) === null || _a === void 0 ? void 0 : _a.constructor) === null || _b === void 0 ? void 0 : _b.isBuffer) === null || _c === void 0 ? void 0 : _c.call(_b, value)) !== null && _d !== void 0 ? _d : false; };\nis.nullOrUndefined = (value) => is.null_(value) || is.undefined(value);\nis.object = (value) => !is.null_(value) && (typeof value === 'object' || is.function_(value));\nis.iterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.iterator]); };\nis.asyncIterable = (value) => { var _a; return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a[Symbol.asyncIterator]); };\nis.generator = (value) => is.iterable(value) && is.function_(value.next) && is.function_(value.throw);\nis.asyncGenerator = (value) => is.asyncIterable(value) && is.function_(value.next) && is.function_(value.throw);\nis.nativePromise = (value) => isObjectOfType('Promise')(value);\nconst hasPromiseAPI = (value) => {\n var _a, _b;\n return is.function_((_a = value) === null || _a === void 0 ? void 0 : _a.then) &&\n is.function_((_b = value) === null || _b === void 0 ? void 0 : _b.catch);\n};\nis.promise = (value) => is.nativePromise(value) || hasPromiseAPI(value);\nis.generatorFunction = isObjectOfType('GeneratorFunction');\nis.asyncGeneratorFunction = (value) => getObjectType(value) === 'AsyncGeneratorFunction';\nis.asyncFunction = (value) => getObjectType(value) === 'AsyncFunction';\n// eslint-disable-next-line no-prototype-builtins, @typescript-eslint/ban-types\nis.boundFunction = (value) => is.function_(value) && !value.hasOwnProperty('prototype');\nis.regExp = isObjectOfType('RegExp');\nis.date = isObjectOfType('Date');\nis.error = isObjectOfType('Error');\nis.map = (value) => isObjectOfType('Map')(value);\nis.set = (value) => isObjectOfType('Set')(value);\nis.weakMap = (value) => isObjectOfType('WeakMap')(value);\nis.weakSet = (value) => isObjectOfType('WeakSet')(value);\nis.int8Array = isObjectOfType('Int8Array');\nis.uint8Array = isObjectOfType('Uint8Array');\nis.uint8ClampedArray = isObjectOfType('Uint8ClampedArray');\nis.int16Array = isObjectOfType('Int16Array');\nis.uint16Array = isObjectOfType('Uint16Array');\nis.int32Array = isObjectOfType('Int32Array');\nis.uint32Array = isObjectOfType('Uint32Array');\nis.float32Array = isObjectOfType('Float32Array');\nis.float64Array = isObjectOfType('Float64Array');\nis.bigInt64Array = isObjectOfType('BigInt64Array');\nis.bigUint64Array = isObjectOfType('BigUint64Array');\nis.arrayBuffer = isObjectOfType('ArrayBuffer');\nis.sharedArrayBuffer = isObjectOfType('SharedArrayBuffer');\nis.dataView = isObjectOfType('DataView');\nis.directInstanceOf = (instance, class_) => Object.getPrototypeOf(instance) === class_.prototype;\nis.urlInstance = (value) => isObjectOfType('URL')(value);\nis.urlString = (value) => {\n if (!is.string(value)) {\n return false;\n }\n try {\n new URL(value); // eslint-disable-line no-new\n return true;\n }\n catch (_a) {\n return false;\n }\n};\n// TODO: Use the `not` operator with a type guard here when it's available.\n// Example: `is.truthy = (value: unknown): value is (not false | not 0 | not '' | not undefined | not null) => Boolean(value);`\nis.truthy = (value) => Boolean(value);\n// Example: `is.falsy = (value: unknown): value is (not true | 0 | '' | undefined | null) => Boolean(value);`\nis.falsy = (value) => !value;\nis.nan = (value) => Number.isNaN(value);\nis.primitive = (value) => is.null_(value) || isPrimitiveTypeName(typeof value);\nis.integer = (value) => Number.isInteger(value);\nis.safeInteger = (value) => Number.isSafeInteger(value);\nis.plainObject = (value) => {\n // From: https://github.com/sindresorhus/is-plain-obj/blob/main/index.js\n if (toString.call(value) !== '[object Object]') {\n return false;\n }\n const prototype = Object.getPrototypeOf(value);\n return prototype === null || prototype === Object.getPrototypeOf({});\n};\nis.typedArray = (value) => isTypedArrayName(getObjectType(value));\nconst isValidLength = (value) => is.safeInteger(value) && value >= 0;\nis.arrayLike = (value) => !is.nullOrUndefined(value) && !is.function_(value) && isValidLength(value.length);\nis.inRange = (value, range) => {\n if (is.number(range)) {\n return value >= Math.min(0, range) && value <= Math.max(range, 0);\n }\n if (is.array(range) && range.length === 2) {\n return value >= Math.min(...range) && value <= Math.max(...range);\n }\n throw new TypeError(`Invalid range: ${JSON.stringify(range)}`);\n};\nconst NODE_TYPE_ELEMENT = 1;\nconst DOM_PROPERTIES_TO_CHECK = [\n 'innerHTML',\n 'ownerDocument',\n 'style',\n 'attributes',\n 'nodeValue'\n];\nis.domElement = (value) => {\n return is.object(value) &&\n value.nodeType === NODE_TYPE_ELEMENT &&\n is.string(value.nodeName) &&\n !is.plainObject(value) &&\n DOM_PROPERTIES_TO_CHECK.every(property => property in value);\n};\nis.observable = (value) => {\n var _a, _b, _c, _d;\n if (!value) {\n return false;\n }\n // eslint-disable-next-line no-use-extend-native/no-use-extend-native\n if (value === ((_b = (_a = value)[Symbol.observable]) === null || _b === void 0 ? void 0 : _b.call(_a))) {\n return true;\n }\n if (value === ((_d = (_c = value)['@@observable']) === null || _d === void 0 ? void 0 : _d.call(_c))) {\n return true;\n }\n return false;\n};\nis.nodeStream = (value) => is.object(value) && is.function_(value.pipe) && !is.observable(value);\nis.infinite = (value) => value === Infinity || value === -Infinity;\nconst isAbsoluteMod2 = (remainder) => (value) => is.integer(value) && Math.abs(value % 2) === remainder;\nis.evenInteger = isAbsoluteMod2(0);\nis.oddInteger = isAbsoluteMod2(1);\nis.emptyArray = (value) => is.array(value) && value.length === 0;\nis.nonEmptyArray = (value) => is.array(value) && value.length > 0;\nis.emptyString = (value) => is.string(value) && value.length === 0;\n// TODO: Use `not ''` when the `not` operator is available.\nis.nonEmptyString = (value) => is.string(value) && value.length > 0;\nconst isWhiteSpaceString = (value) => is.string(value) && !/\\S/.test(value);\nis.emptyStringOrWhitespace = (value) => is.emptyString(value) || isWhiteSpaceString(value);\nis.emptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length === 0;\n// TODO: Use `not` operator here to remove `Map` and `Set` from type guard:\n// - https://github.com/Microsoft/TypeScript/pull/29317\nis.nonEmptyObject = (value) => is.object(value) && !is.map(value) && !is.set(value) && Object.keys(value).length > 0;\nis.emptySet = (value) => is.set(value) && value.size === 0;\nis.nonEmptySet = (value) => is.set(value) && value.size > 0;\nis.emptyMap = (value) => is.map(value) && value.size === 0;\nis.nonEmptyMap = (value) => is.map(value) && value.size > 0;\n// `PropertyKey` is any value that can be used as an object key (string, number, or symbol)\nis.propertyKey = (value) => is.any([is.string, is.number, is.symbol], value);\nis.formData = (value) => isObjectOfType('FormData')(value);\nis.urlSearchParams = (value) => isObjectOfType('URLSearchParams')(value);\nconst predicateOnArray = (method, predicate, values) => {\n if (!is.function_(predicate)) {\n throw new TypeError(`Invalid predicate: ${JSON.stringify(predicate)}`);\n }\n if (values.length === 0) {\n throw new TypeError('Invalid number of values');\n }\n return method.call(values, predicate);\n};\nis.any = (predicate, ...values) => {\n const predicates = is.array(predicate) ? predicate : [predicate];\n return predicates.some(singlePredicate => predicateOnArray(Array.prototype.some, singlePredicate, values));\n};\nis.all = (predicate, ...values) => predicateOnArray(Array.prototype.every, predicate, values);\nconst assertType = (condition, description, value, options = {}) => {\n if (!condition) {\n const { multipleValues } = options;\n const valuesMessage = multipleValues ?\n `received values of types ${[\n ...new Set(value.map(singleValue => `\\`${is(singleValue)}\\``))\n ].join(', ')}` :\n `received value of type \\`${is(value)}\\``;\n throw new TypeError(`Expected value which is \\`${description}\\`, ${valuesMessage}.`);\n }\n};\nexports.assert = {\n // Unknowns.\n undefined: (value) => assertType(is.undefined(value), 'undefined', value),\n string: (value) => assertType(is.string(value), 'string', value),\n number: (value) => assertType(is.number(value), 'number', value),\n bigint: (value) => assertType(is.bigint(value), 'bigint', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n function_: (value) => assertType(is.function_(value), 'Function', value),\n null_: (value) => assertType(is.null_(value), 'null', value),\n class_: (value) => assertType(is.class_(value), \"Class\" /* class_ */, value),\n boolean: (value) => assertType(is.boolean(value), 'boolean', value),\n symbol: (value) => assertType(is.symbol(value), 'symbol', value),\n numericString: (value) => assertType(is.numericString(value), \"string with a number\" /* numericString */, value),\n array: (value, assertion) => {\n const assert = assertType;\n assert(is.array(value), 'Array', value);\n if (assertion) {\n value.forEach(assertion);\n }\n },\n buffer: (value) => assertType(is.buffer(value), 'Buffer', value),\n nullOrUndefined: (value) => assertType(is.nullOrUndefined(value), \"null or undefined\" /* nullOrUndefined */, value),\n object: (value) => assertType(is.object(value), 'Object', value),\n iterable: (value) => assertType(is.iterable(value), \"Iterable\" /* iterable */, value),\n asyncIterable: (value) => assertType(is.asyncIterable(value), \"AsyncIterable\" /* asyncIterable */, value),\n generator: (value) => assertType(is.generator(value), 'Generator', value),\n asyncGenerator: (value) => assertType(is.asyncGenerator(value), 'AsyncGenerator', value),\n nativePromise: (value) => assertType(is.nativePromise(value), \"native Promise\" /* nativePromise */, value),\n promise: (value) => assertType(is.promise(value), 'Promise', value),\n generatorFunction: (value) => assertType(is.generatorFunction(value), 'GeneratorFunction', value),\n asyncGeneratorFunction: (value) => assertType(is.asyncGeneratorFunction(value), 'AsyncGeneratorFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n asyncFunction: (value) => assertType(is.asyncFunction(value), 'AsyncFunction', value),\n // eslint-disable-next-line @typescript-eslint/ban-types\n boundFunction: (value) => assertType(is.boundFunction(value), 'Function', value),\n regExp: (value) => assertType(is.regExp(value), 'RegExp', value),\n date: (value) => assertType(is.date(value), 'Date', value),\n error: (value) => assertType(is.error(value), 'Error', value),\n map: (value) => assertType(is.map(value), 'Map', value),\n set: (value) => assertType(is.set(value), 'Set', value),\n weakMap: (value) => assertType(is.weakMap(value), 'WeakMap', value),\n weakSet: (value) => assertType(is.weakSet(value), 'WeakSet', value),\n int8Array: (value) => assertType(is.int8Array(value), 'Int8Array', value),\n uint8Array: (value) => assertType(is.uint8Array(value), 'Uint8Array', value),\n uint8ClampedArray: (value) => assertType(is.uint8ClampedArray(value), 'Uint8ClampedArray', value),\n int16Array: (value) => assertType(is.int16Array(value), 'Int16Array', value),\n uint16Array: (value) => assertType(is.uint16Array(value), 'Uint16Array', value),\n int32Array: (value) => assertType(is.int32Array(value), 'Int32Array', value),\n uint32Array: (value) => assertType(is.uint32Array(value), 'Uint32Array', value),\n float32Array: (value) => assertType(is.float32Array(value), 'Float32Array', value),\n float64Array: (value) => assertType(is.float64Array(value), 'Float64Array', value),\n bigInt64Array: (value) => assertType(is.bigInt64Array(value), 'BigInt64Array', value),\n bigUint64Array: (value) => assertType(is.bigUint64Array(value), 'BigUint64Array', value),\n arrayBuffer: (value) => assertType(is.arrayBuffer(value), 'ArrayBuffer', value),\n sharedArrayBuffer: (value) => assertType(is.sharedArrayBuffer(value), 'SharedArrayBuffer', value),\n dataView: (value) => assertType(is.dataView(value), 'DataView', value),\n urlInstance: (value) => assertType(is.urlInstance(value), 'URL', value),\n urlString: (value) => assertType(is.urlString(value), \"string with a URL\" /* urlString */, value),\n truthy: (value) => assertType(is.truthy(value), \"truthy\" /* truthy */, value),\n falsy: (value) => assertType(is.falsy(value), \"falsy\" /* falsy */, value),\n nan: (value) => assertType(is.nan(value), \"NaN\" /* nan */, value),\n primitive: (value) => assertType(is.primitive(value), \"primitive\" /* primitive */, value),\n integer: (value) => assertType(is.integer(value), \"integer\" /* integer */, value),\n safeInteger: (value) => assertType(is.safeInteger(value), \"integer\" /* safeInteger */, value),\n plainObject: (value) => assertType(is.plainObject(value), \"plain object\" /* plainObject */, value),\n typedArray: (value) => assertType(is.typedArray(value), \"TypedArray\" /* typedArray */, value),\n arrayLike: (value) => assertType(is.arrayLike(value), \"array-like\" /* arrayLike */, value),\n domElement: (value) => assertType(is.domElement(value), \"HTMLElement\" /* domElement */, value),\n observable: (value) => assertType(is.observable(value), 'Observable', value),\n nodeStream: (value) => assertType(is.nodeStream(value), \"Node.js Stream\" /* nodeStream */, value),\n infinite: (value) => assertType(is.infinite(value), \"infinite number\" /* infinite */, value),\n emptyArray: (value) => assertType(is.emptyArray(value), \"empty array\" /* emptyArray */, value),\n nonEmptyArray: (value) => assertType(is.nonEmptyArray(value), \"non-empty array\" /* nonEmptyArray */, value),\n emptyString: (value) => assertType(is.emptyString(value), \"empty string\" /* emptyString */, value),\n nonEmptyString: (value) => assertType(is.nonEmptyString(value), \"non-empty string\" /* nonEmptyString */, value),\n emptyStringOrWhitespace: (value) => assertType(is.emptyStringOrWhitespace(value), \"empty string or whitespace\" /* emptyStringOrWhitespace */, value),\n emptyObject: (value) => assertType(is.emptyObject(value), \"empty object\" /* emptyObject */, value),\n nonEmptyObject: (value) => assertType(is.nonEmptyObject(value), \"non-empty object\" /* nonEmptyObject */, value),\n emptySet: (value) => assertType(is.emptySet(value), \"empty set\" /* emptySet */, value),\n nonEmptySet: (value) => assertType(is.nonEmptySet(value), \"non-empty set\" /* nonEmptySet */, value),\n emptyMap: (value) => assertType(is.emptyMap(value), \"empty map\" /* emptyMap */, value),\n nonEmptyMap: (value) => assertType(is.nonEmptyMap(value), \"non-empty map\" /* nonEmptyMap */, value),\n propertyKey: (value) => assertType(is.propertyKey(value), 'PropertyKey', value),\n formData: (value) => assertType(is.formData(value), 'FormData', value),\n urlSearchParams: (value) => assertType(is.urlSearchParams(value), 'URLSearchParams', value),\n // Numbers.\n evenInteger: (value) => assertType(is.evenInteger(value), \"even integer\" /* evenInteger */, value),\n oddInteger: (value) => assertType(is.oddInteger(value), \"odd integer\" /* oddInteger */, value),\n // Two arguments.\n directInstanceOf: (instance, class_) => assertType(is.directInstanceOf(instance, class_), \"T\" /* directInstanceOf */, instance),\n inRange: (value, range) => assertType(is.inRange(value, range), \"in range\" /* inRange */, value),\n // Variadic functions.\n any: (predicate, ...values) => {\n return assertType(is.any(predicate, ...values), \"predicate returns truthy for any value\" /* any */, values, { multipleValues: true });\n },\n all: (predicate, ...values) => assertType(is.all(predicate, ...values), \"predicate returns truthy for all values\" /* all */, values, { multipleValues: true })\n};\n// Some few keywords are reserved, but we'll populate them for Node.js users\n// See https://github.com/Microsoft/TypeScript/issues/2536\nObject.defineProperties(is, {\n class: {\n value: is.class_\n },\n function: {\n value: is.function_\n },\n null: {\n value: is.null_\n }\n});\nObject.defineProperties(exports.assert, {\n class: {\n value: exports.assert.class_\n },\n function: {\n value: exports.assert.function_\n },\n null: {\n value: exports.assert.null_\n }\n});\nexports.default = is;\n// For CommonJS default export support\nmodule.exports = is;\nmodule.exports.default = is;\nmodule.exports.assert = exports.assert;\n","'use strict';\n\nconst callsites = () => {\n\tconst _prepareStackTrace = Error.prepareStackTrace;\n\tError.prepareStackTrace = (_, stack) => stack;\n\tconst stack = new Error().stack.slice(1);\n\tError.prepareStackTrace = _prepareStackTrace;\n\treturn stack;\n};\n\nmodule.exports = callsites;\n// TODO: Remove this for the next major release\nmodule.exports.default = callsites;\n","exports.remove = removeDiacritics;\n\nvar replacementList = [\n {\n base: ' ',\n chars: \"\\u00A0\",\n }, {\n base: '0',\n chars: \"\\u07C0\",\n }, {\n base: 'A',\n chars: \"\\u24B6\\uFF21\\u00C0\\u00C1\\u00C2\\u1EA6\\u1EA4\\u1EAA\\u1EA8\\u00C3\\u0100\\u0102\\u1EB0\\u1EAE\\u1EB4\\u1EB2\\u0226\\u01E0\\u00C4\\u01DE\\u1EA2\\u00C5\\u01FA\\u01CD\\u0200\\u0202\\u1EA0\\u1EAC\\u1EB6\\u1E00\\u0104\\u023A\\u2C6F\",\n }, {\n base: 'AA',\n chars: \"\\uA732\",\n }, {\n base: 'AE',\n chars: \"\\u00C6\\u01FC\\u01E2\",\n }, {\n base: 'AO',\n chars: \"\\uA734\",\n }, {\n base: 'AU',\n chars: \"\\uA736\",\n }, {\n base: 'AV',\n chars: \"\\uA738\\uA73A\",\n }, {\n base: 'AY',\n chars: \"\\uA73C\",\n }, {\n base: 'B',\n chars: \"\\u24B7\\uFF22\\u1E02\\u1E04\\u1E06\\u0243\\u0181\",\n }, {\n base: 'C',\n chars: \"\\u24b8\\uff23\\uA73E\\u1E08\\u0106\\u0043\\u0108\\u010A\\u010C\\u00C7\\u0187\\u023B\",\n }, {\n base: 'D',\n chars: \"\\u24B9\\uFF24\\u1E0A\\u010E\\u1E0C\\u1E10\\u1E12\\u1E0E\\u0110\\u018A\\u0189\\u1D05\\uA779\",\n }, {\n base: 'Dh',\n chars: \"\\u00D0\",\n }, {\n base: 'DZ',\n chars: \"\\u01F1\\u01C4\",\n }, {\n base: 'Dz',\n chars: \"\\u01F2\\u01C5\",\n }, {\n base: 'E',\n chars: \"\\u025B\\u24BA\\uFF25\\u00C8\\u00C9\\u00CA\\u1EC0\\u1EBE\\u1EC4\\u1EC2\\u1EBC\\u0112\\u1E14\\u1E16\\u0114\\u0116\\u00CB\\u1EBA\\u011A\\u0204\\u0206\\u1EB8\\u1EC6\\u0228\\u1E1C\\u0118\\u1E18\\u1E1A\\u0190\\u018E\\u1D07\",\n }, {\n base: 'F',\n chars: \"\\uA77C\\u24BB\\uFF26\\u1E1E\\u0191\\uA77B\",\n }, {\n base: 'G',\n chars: \"\\u24BC\\uFF27\\u01F4\\u011C\\u1E20\\u011E\\u0120\\u01E6\\u0122\\u01E4\\u0193\\uA7A0\\uA77D\\uA77E\\u0262\",\n }, {\n base: 'H',\n chars: \"\\u24BD\\uFF28\\u0124\\u1E22\\u1E26\\u021E\\u1E24\\u1E28\\u1E2A\\u0126\\u2C67\\u2C75\\uA78D\",\n }, {\n base: 'I',\n chars: \"\\u24BE\\uFF29\\xCC\\xCD\\xCE\\u0128\\u012A\\u012C\\u0130\\xCF\\u1E2E\\u1EC8\\u01CF\\u0208\\u020A\\u1ECA\\u012E\\u1E2C\\u0197\",\n }, {\n base: 'J',\n chars: \"\\u24BF\\uFF2A\\u0134\\u0248\\u0237\",\n }, {\n base: 'K',\n chars: \"\\u24C0\\uFF2B\\u1E30\\u01E8\\u1E32\\u0136\\u1E34\\u0198\\u2C69\\uA740\\uA742\\uA744\\uA7A2\",\n }, {\n base: 'L',\n chars: \"\\u24C1\\uFF2C\\u013F\\u0139\\u013D\\u1E36\\u1E38\\u013B\\u1E3C\\u1E3A\\u0141\\u023D\\u2C62\\u2C60\\uA748\\uA746\\uA780\",\n }, {\n base: 'LJ',\n chars: \"\\u01C7\",\n }, {\n base: 'Lj',\n chars: \"\\u01C8\",\n }, {\n base: 'M',\n chars: \"\\u24C2\\uFF2D\\u1E3E\\u1E40\\u1E42\\u2C6E\\u019C\\u03FB\",\n }, {\n base: 'N',\n chars: \"\\uA7A4\\u0220\\u24C3\\uFF2E\\u01F8\\u0143\\xD1\\u1E44\\u0147\\u1E46\\u0145\\u1E4A\\u1E48\\u019D\\uA790\\u1D0E\",\n }, {\n base: 'NJ',\n chars: \"\\u01CA\",\n }, {\n base: 'Nj',\n chars: \"\\u01CB\",\n }, {\n base: 'O',\n chars: \"\\u24C4\\uFF2F\\xD2\\xD3\\xD4\\u1ED2\\u1ED0\\u1ED6\\u1ED4\\xD5\\u1E4C\\u022C\\u1E4E\\u014C\\u1E50\\u1E52\\u014E\\u022E\\u0230\\xD6\\u022A\\u1ECE\\u0150\\u01D1\\u020C\\u020E\\u01A0\\u1EDC\\u1EDA\\u1EE0\\u1EDE\\u1EE2\\u1ECC\\u1ED8\\u01EA\\u01EC\\xD8\\u01FE\\u0186\\u019F\\uA74A\\uA74C\",\n }, {\n base: 'OE',\n chars: \"\\u0152\",\n }, {\n base: 'OI',\n chars: \"\\u01A2\",\n }, {\n base: 'OO',\n chars: \"\\uA74E\",\n }, {\n base: 'OU',\n chars: \"\\u0222\",\n }, {\n base: 'P',\n chars: \"\\u24C5\\uFF30\\u1E54\\u1E56\\u01A4\\u2C63\\uA750\\uA752\\uA754\",\n }, {\n base: 'Q',\n chars: \"\\u24C6\\uFF31\\uA756\\uA758\\u024A\",\n }, {\n base: 'R',\n chars: \"\\u24C7\\uFF32\\u0154\\u1E58\\u0158\\u0210\\u0212\\u1E5A\\u1E5C\\u0156\\u1E5E\\u024C\\u2C64\\uA75A\\uA7A6\\uA782\",\n }, {\n base: 'S',\n chars: \"\\u24C8\\uFF33\\u1E9E\\u015A\\u1E64\\u015C\\u1E60\\u0160\\u1E66\\u1E62\\u1E68\\u0218\\u015E\\u2C7E\\uA7A8\\uA784\",\n }, {\n base: 'T',\n chars: \"\\u24C9\\uFF34\\u1E6A\\u0164\\u1E6C\\u021A\\u0162\\u1E70\\u1E6E\\u0166\\u01AC\\u01AE\\u023E\\uA786\",\n }, {\n base: 'Th',\n chars: \"\\u00DE\",\n }, {\n base: 'TZ',\n chars: \"\\uA728\",\n }, {\n base: 'U',\n chars: \"\\u24CA\\uFF35\\xD9\\xDA\\xDB\\u0168\\u1E78\\u016A\\u1E7A\\u016C\\xDC\\u01DB\\u01D7\\u01D5\\u01D9\\u1EE6\\u016E\\u0170\\u01D3\\u0214\\u0216\\u01AF\\u1EEA\\u1EE8\\u1EEE\\u1EEC\\u1EF0\\u1EE4\\u1E72\\u0172\\u1E76\\u1E74\\u0244\",\n }, {\n base: 'V',\n chars: \"\\u24CB\\uFF36\\u1E7C\\u1E7E\\u01B2\\uA75E\\u0245\",\n }, {\n base: 'VY',\n chars: \"\\uA760\",\n }, {\n base: 'W',\n chars: \"\\u24CC\\uFF37\\u1E80\\u1E82\\u0174\\u1E86\\u1E84\\u1E88\\u2C72\",\n }, {\n base: 'X',\n chars: \"\\u24CD\\uFF38\\u1E8A\\u1E8C\",\n }, {\n base: 'Y',\n chars: \"\\u24CE\\uFF39\\u1EF2\\xDD\\u0176\\u1EF8\\u0232\\u1E8E\\u0178\\u1EF6\\u1EF4\\u01B3\\u024E\\u1EFE\",\n }, {\n base: 'Z',\n chars: \"\\u24CF\\uFF3A\\u0179\\u1E90\\u017B\\u017D\\u1E92\\u1E94\\u01B5\\u0224\\u2C7F\\u2C6B\\uA762\",\n }, {\n base: 'a',\n chars: \"\\u24D0\\uFF41\\u1E9A\\u00E0\\u00E1\\u00E2\\u1EA7\\u1EA5\\u1EAB\\u1EA9\\u00E3\\u0101\\u0103\\u1EB1\\u1EAF\\u1EB5\\u1EB3\\u0227\\u01E1\\u00E4\\u01DF\\u1EA3\\u00E5\\u01FB\\u01CE\\u0201\\u0203\\u1EA1\\u1EAD\\u1EB7\\u1E01\\u0105\\u2C65\\u0250\\u0251\",\n }, {\n base: 'aa',\n chars: \"\\uA733\",\n }, {\n base: 'ae',\n chars: \"\\u00E6\\u01FD\\u01E3\",\n }, {\n base: 'ao',\n chars: \"\\uA735\",\n }, {\n base: 'au',\n chars: \"\\uA737\",\n }, {\n base: 'av',\n chars: \"\\uA739\\uA73B\",\n }, {\n base: 'ay',\n chars: \"\\uA73D\",\n }, {\n base: 'b',\n chars: \"\\u24D1\\uFF42\\u1E03\\u1E05\\u1E07\\u0180\\u0183\\u0253\\u0182\",\n }, {\n base: 'c',\n chars: \"\\uFF43\\u24D2\\u0107\\u0109\\u010B\\u010D\\u00E7\\u1E09\\u0188\\u023C\\uA73F\\u2184\",\n }, {\n base: 'd',\n chars: \"\\u24D3\\uFF44\\u1E0B\\u010F\\u1E0D\\u1E11\\u1E13\\u1E0F\\u0111\\u018C\\u0256\\u0257\\u018B\\u13E7\\u0501\\uA7AA\",\n }, {\n base: 'dh',\n chars: \"\\u00F0\",\n }, {\n base: 'dz',\n chars: \"\\u01F3\\u01C6\",\n }, {\n base: 'e',\n chars: \"\\u24D4\\uFF45\\u00E8\\u00E9\\u00EA\\u1EC1\\u1EBF\\u1EC5\\u1EC3\\u1EBD\\u0113\\u1E15\\u1E17\\u0115\\u0117\\u00EB\\u1EBB\\u011B\\u0205\\u0207\\u1EB9\\u1EC7\\u0229\\u1E1D\\u0119\\u1E19\\u1E1B\\u0247\\u01DD\",\n }, {\n base: 'f',\n chars: \"\\u24D5\\uFF46\\u1E1F\\u0192\",\n }, {\n base: 'ff',\n chars: \"\\uFB00\",\n }, {\n base: 'fi',\n chars: \"\\uFB01\",\n }, {\n base: 'fl',\n chars: \"\\uFB02\",\n }, {\n base: 'ffi',\n chars: \"\\uFB03\",\n }, {\n base: 'ffl',\n chars: \"\\uFB04\",\n }, {\n base: 'g',\n chars: \"\\u24D6\\uFF47\\u01F5\\u011D\\u1E21\\u011F\\u0121\\u01E7\\u0123\\u01E5\\u0260\\uA7A1\\uA77F\\u1D79\",\n }, {\n base: 'h',\n chars: \"\\u24D7\\uFF48\\u0125\\u1E23\\u1E27\\u021F\\u1E25\\u1E29\\u1E2B\\u1E96\\u0127\\u2C68\\u2C76\\u0265\",\n }, {\n base: 'hv',\n chars: \"\\u0195\",\n }, {\n base: 'i',\n chars: \"\\u24D8\\uFF49\\xEC\\xED\\xEE\\u0129\\u012B\\u012D\\xEF\\u1E2F\\u1EC9\\u01D0\\u0209\\u020B\\u1ECB\\u012F\\u1E2D\\u0268\\u0131\",\n }, {\n base: 'j',\n chars: \"\\u24D9\\uFF4A\\u0135\\u01F0\\u0249\",\n }, {\n base: 'k',\n chars: \"\\u24DA\\uFF4B\\u1E31\\u01E9\\u1E33\\u0137\\u1E35\\u0199\\u2C6A\\uA741\\uA743\\uA745\\uA7A3\",\n }, {\n base: 'l',\n chars: \"\\u24DB\\uFF4C\\u0140\\u013A\\u013E\\u1E37\\u1E39\\u013C\\u1E3D\\u1E3B\\u017F\\u0142\\u019A\\u026B\\u2C61\\uA749\\uA781\\uA747\\u026D\",\n }, {\n base: 'lj',\n chars: \"\\u01C9\",\n }, {\n base: 'm',\n chars: \"\\u24DC\\uFF4D\\u1E3F\\u1E41\\u1E43\\u0271\\u026F\",\n }, {\n base: 'n',\n chars: \"\\u24DD\\uFF4E\\u01F9\\u0144\\xF1\\u1E45\\u0148\\u1E47\\u0146\\u1E4B\\u1E49\\u019E\\u0272\\u0149\\uA791\\uA7A5\\u043B\\u0509\",\n }, {\n base: 'nj',\n chars: \"\\u01CC\",\n }, {\n base: 'o',\n chars: \"\\u24DE\\uFF4F\\xF2\\xF3\\xF4\\u1ED3\\u1ED1\\u1ED7\\u1ED5\\xF5\\u1E4D\\u022D\\u1E4F\\u014D\\u1E51\\u1E53\\u014F\\u022F\\u0231\\xF6\\u022B\\u1ECF\\u0151\\u01D2\\u020D\\u020F\\u01A1\\u1EDD\\u1EDB\\u1EE1\\u1EDF\\u1EE3\\u1ECD\\u1ED9\\u01EB\\u01ED\\xF8\\u01FF\\uA74B\\uA74D\\u0275\\u0254\\u1D11\",\n }, {\n base: 'oe',\n chars: \"\\u0153\",\n }, {\n base: 'oi',\n chars: \"\\u01A3\",\n }, {\n base: 'oo',\n chars: \"\\uA74F\",\n }, {\n base: 'ou',\n chars: \"\\u0223\",\n }, {\n base: 'p',\n chars: \"\\u24DF\\uFF50\\u1E55\\u1E57\\u01A5\\u1D7D\\uA751\\uA753\\uA755\\u03C1\",\n }, {\n base: 'q',\n chars: \"\\u24E0\\uFF51\\u024B\\uA757\\uA759\",\n }, {\n base: 'r',\n chars: \"\\u24E1\\uFF52\\u0155\\u1E59\\u0159\\u0211\\u0213\\u1E5B\\u1E5D\\u0157\\u1E5F\\u024D\\u027D\\uA75B\\uA7A7\\uA783\",\n }, {\n base: 's',\n chars: \"\\u24E2\\uFF53\\u015B\\u1E65\\u015D\\u1E61\\u0161\\u1E67\\u1E63\\u1E69\\u0219\\u015F\\u023F\\uA7A9\\uA785\\u1E9B\\u0282\",\n }, {\n base: 'ss',\n chars: \"\\xDF\",\n }, {\n base: 't',\n chars: \"\\u24E3\\uFF54\\u1E6B\\u1E97\\u0165\\u1E6D\\u021B\\u0163\\u1E71\\u1E6F\\u0167\\u01AD\\u0288\\u2C66\\uA787\",\n }, {\n base: 'th',\n chars: \"\\u00FE\",\n }, {\n base: 'tz',\n chars: \"\\uA729\",\n }, {\n base: 'u',\n chars: \"\\u24E4\\uFF55\\xF9\\xFA\\xFB\\u0169\\u1E79\\u016B\\u1E7B\\u016D\\xFC\\u01DC\\u01D8\\u01D6\\u01DA\\u1EE7\\u016F\\u0171\\u01D4\\u0215\\u0217\\u01B0\\u1EEB\\u1EE9\\u1EEF\\u1EED\\u1EF1\\u1EE5\\u1E73\\u0173\\u1E77\\u1E75\\u0289\",\n }, {\n base: 'v',\n chars: \"\\u24E5\\uFF56\\u1E7D\\u1E7F\\u028B\\uA75F\\u028C\",\n }, {\n base: 'vy',\n chars: \"\\uA761\",\n }, {\n base: 'w',\n chars: \"\\u24E6\\uFF57\\u1E81\\u1E83\\u0175\\u1E87\\u1E85\\u1E98\\u1E89\\u2C73\",\n }, {\n base: 'x',\n chars: \"\\u24E7\\uFF58\\u1E8B\\u1E8D\",\n }, {\n base: 'y',\n chars: \"\\u24E8\\uFF59\\u1EF3\\xFD\\u0177\\u1EF9\\u0233\\u1E8F\\xFF\\u1EF7\\u1E99\\u1EF5\\u01B4\\u024F\\u1EFF\",\n }, {\n base: 'z',\n chars: \"\\u24E9\\uFF5A\\u017A\\u1E91\\u017C\\u017E\\u1E93\\u1E95\\u01B6\\u0225\\u0240\\u2C6C\\uA763\",\n }\n];\n\nvar diacriticsMap = {};\nfor (var i = 0; i < replacementList.length; i += 1) {\n var chars = replacementList[i].chars;\n for (var j = 0; j < chars.length; j += 1) {\n diacriticsMap[chars[j]] = replacementList[i].base;\n }\n}\n\nfunction removeDiacritics(str) {\n return str.replace(/[^\\u0000-\\u007e]/g, function(c) {\n return diacriticsMap[c] || c;\n });\n}\n\nexports.replacementList = replacementList;\nexports.diacriticsMap = diacriticsMap;\n","'use strict';\nconst isObj = require('is-obj');\n\nconst disallowedKeys = new Set([\n\t'__proto__',\n\t'prototype',\n\t'constructor'\n]);\n\nconst isValidPath = pathSegments => !pathSegments.some(segment => disallowedKeys.has(segment));\n\nfunction getPathSegments(path) {\n\tconst pathArray = path.split('.');\n\tconst parts = [];\n\n\tfor (let i = 0; i < pathArray.length; i++) {\n\t\tlet p = pathArray[i];\n\n\t\twhile (p[p.length - 1] === '\\\\' && pathArray[i + 1] !== undefined) {\n\t\t\tp = p.slice(0, -1) + '.';\n\t\t\tp += pathArray[++i];\n\t\t}\n\n\t\tparts.push(p);\n\t}\n\n\tif (!isValidPath(parts)) {\n\t\treturn [];\n\t}\n\n\treturn parts;\n}\n\nmodule.exports = {\n\tget(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn value === undefined ? object : value;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tobject = object[pathArray[i]];\n\n\t\t\tif (object === undefined || object === null) {\n\t\t\t\t// `object` is either `undefined` or `null` so we want to stop the loop, and\n\t\t\t\t// if this is not the last bit of the path, and\n\t\t\t\t// if it did't return `undefined`\n\t\t\t\t// it would return `null` if `object` is `null`\n\t\t\t\t// but we want `get({foo: null}, 'foo.bar')` to equal `undefined`, or the supplied value, not `null`\n\t\t\t\tif (i !== pathArray.length - 1) {\n\t\t\t\t\treturn value;\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn object === undefined ? value : object;\n\t},\n\n\tset(object, path, value) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn object;\n\t\t}\n\n\t\tconst root = object;\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (!isObj(object[p])) {\n\t\t\t\tobject[p] = {};\n\t\t\t}\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tobject[p] = value;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\t\t}\n\n\t\treturn root;\n\t},\n\n\tdelete(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tconst p = pathArray[i];\n\n\t\t\tif (i === pathArray.length - 1) {\n\t\t\t\tdelete object[p];\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tobject = object[p];\n\n\t\t\tif (!isObj(object)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t},\n\n\thas(object, path) {\n\t\tif (!isObj(object) || typeof path !== 'string') {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst pathArray = getPathSegments(path);\n\t\tif (pathArray.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line unicorn/no-for-loop\n\t\tfor (let i = 0; i < pathArray.length; i++) {\n\t\t\tif (isObj(object)) {\n\t\t\t\tif (!(pathArray[i] in object)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tobject = object[pathArray[i]];\n\t\t\t} else {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\treturn true;\n\t}\n};\n","/*\n * EJS Embedded JavaScript templates\n * Copyright 2112 Matthew Eernisse (mde@fleegix.org)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n*/\n\n'use strict';\n\n/**\n * @file Embedded JavaScript templating engine. {@link http://ejs.co}\n * @author Matthew Eernisse \n * @author Tiancheng \"Timothy\" Gu \n * @project EJS\n * @license {@link http://www.apache.org/licenses/LICENSE-2.0 Apache License, Version 2.0}\n */\n\n/**\n * EJS internal functions.\n *\n * Technically this \"module\" lies in the same file as {@link module:ejs}, for\n * the sake of organization all the private functions re grouped into this\n * module.\n *\n * @module ejs-internal\n * @private\n */\n\n/**\n * Embedded JavaScript templating engine.\n *\n * @module ejs\n * @public\n */\n\nvar fs = require('fs');\nvar path = require('path');\nvar utils = require('./utils');\n\nvar scopeOptionWarned = false;\n/** @type {string} */\nvar _VERSION_STRING = require('../package.json').version;\nvar _DEFAULT_OPEN_DELIMITER = '<';\nvar _DEFAULT_CLOSE_DELIMITER = '>';\nvar _DEFAULT_DELIMITER = '%';\nvar _DEFAULT_LOCALS_NAME = 'locals';\nvar _NAME = 'ejs';\nvar _REGEX_STRING = '(<%%|%%>|<%=|<%-|<%_|<%#|<%|%>|-%>|_%>)';\nvar _OPTS_PASSABLE_WITH_DATA = ['delimiter', 'scope', 'context', 'debug', 'compileDebug',\n 'client', '_with', 'rmWhitespace', 'strict', 'filename', 'async'];\n// We don't allow 'cache' option to be passed in the data obj for\n// the normal `render` call, but this is where Express 2 & 3 put it\n// so we make an exception for `renderFile`\nvar _OPTS_PASSABLE_WITH_DATA_EXPRESS = _OPTS_PASSABLE_WITH_DATA.concat('cache');\nvar _BOM = /^\\uFEFF/;\n\n/**\n * EJS template function cache. This can be a LRU object from lru-cache NPM\n * module. By default, it is {@link module:utils.cache}, a simple in-process\n * cache that grows continuously.\n *\n * @type {Cache}\n */\n\nexports.cache = utils.cache;\n\n/**\n * Custom file loader. Useful for template preprocessing or restricting access\n * to a certain part of the filesystem.\n *\n * @type {fileLoader}\n */\n\nexports.fileLoader = fs.readFileSync;\n\n/**\n * Name of the object containing the locals.\n *\n * This variable is overridden by {@link Options}`.localsName` if it is not\n * `undefined`.\n *\n * @type {String}\n * @public\n */\n\nexports.localsName = _DEFAULT_LOCALS_NAME;\n\n/**\n * Promise implementation -- defaults to the native implementation if available\n * This is mostly just for testability\n *\n * @type {PromiseConstructorLike}\n * @public\n */\n\nexports.promiseImpl = (new Function('return this;'))().Promise;\n\n/**\n * Get the path to the included file from the parent file path and the\n * specified path.\n *\n * @param {String} name specified path\n * @param {String} filename parent file path\n * @param {Boolean} [isDir=false] whether the parent file path is a directory\n * @return {String}\n */\nexports.resolveInclude = function(name, filename, isDir) {\n var dirname = path.dirname;\n var extname = path.extname;\n var resolve = path.resolve;\n var includePath = resolve(isDir ? filename : dirname(filename), name);\n var ext = extname(name);\n if (!ext) {\n includePath += '.ejs';\n }\n return includePath;\n};\n\n/**\n * Try to resolve file path on multiple directories\n *\n * @param {String} name specified path\n * @param {Array} paths list of possible parent directory paths\n * @return {String}\n */\nfunction resolvePaths(name, paths) {\n var filePath;\n if (paths.some(function (v) {\n filePath = exports.resolveInclude(name, v, true);\n return fs.existsSync(filePath);\n })) {\n return filePath;\n }\n}\n\n/**\n * Get the path to the included file by Options\n *\n * @param {String} path specified path\n * @param {Options} options compilation options\n * @return {String}\n */\nfunction getIncludePath(path, options) {\n var includePath;\n var filePath;\n var views = options.views;\n var match = /^[A-Za-z]+:\\\\|^\\//.exec(path);\n\n // Abs path\n if (match && match.length) {\n path = path.replace(/^\\/*/, '');\n if (Array.isArray(options.root)) {\n includePath = resolvePaths(path, options.root);\n } else {\n includePath = exports.resolveInclude(path, options.root || '/', true);\n }\n }\n // Relative paths\n else {\n // Look relative to a passed filename first\n if (options.filename) {\n filePath = exports.resolveInclude(path, options.filename);\n if (fs.existsSync(filePath)) {\n includePath = filePath;\n }\n }\n // Then look in any views directories\n if (!includePath && Array.isArray(views)) {\n includePath = resolvePaths(path, views);\n }\n if (!includePath && typeof options.includer !== 'function') {\n throw new Error('Could not find the include file \"' +\n options.escapeFunction(path) + '\"');\n }\n }\n return includePath;\n}\n\n/**\n * Get the template from a string or a file, either compiled on-the-fly or\n * read from cache (if enabled), and cache the template if needed.\n *\n * If `template` is not set, the file specified in `options.filename` will be\n * read.\n *\n * If `options.cache` is true, this function reads the file from\n * `options.filename` so it must be set prior to calling this function.\n *\n * @memberof module:ejs-internal\n * @param {Options} options compilation options\n * @param {String} [template] template source\n * @return {(TemplateFunction|ClientFunction)}\n * Depending on the value of `options.client`, either type might be returned.\n * @static\n */\n\nfunction handleCache(options, template) {\n var func;\n var filename = options.filename;\n var hasTemplate = arguments.length > 1;\n\n if (options.cache) {\n if (!filename) {\n throw new Error('cache option requires a filename');\n }\n func = exports.cache.get(filename);\n if (func) {\n return func;\n }\n if (!hasTemplate) {\n template = fileLoader(filename).toString().replace(_BOM, '');\n }\n }\n else if (!hasTemplate) {\n // istanbul ignore if: should not happen at all\n if (!filename) {\n throw new Error('Internal EJS error: no file name or template '\n + 'provided');\n }\n template = fileLoader(filename).toString().replace(_BOM, '');\n }\n func = exports.compile(template, options);\n if (options.cache) {\n exports.cache.set(filename, func);\n }\n return func;\n}\n\n/**\n * Try calling handleCache with the given options and data and call the\n * callback with the result. If an error occurs, call the callback with\n * the error. Used by renderFile().\n *\n * @memberof module:ejs-internal\n * @param {Options} options compilation options\n * @param {Object} data template data\n * @param {RenderFileCallback} cb callback\n * @static\n */\n\nfunction tryHandleCache(options, data, cb) {\n var result;\n if (!cb) {\n if (typeof exports.promiseImpl == 'function') {\n return new exports.promiseImpl(function (resolve, reject) {\n try {\n result = handleCache(options)(data);\n resolve(result);\n }\n catch (err) {\n reject(err);\n }\n });\n }\n else {\n throw new Error('Please provide a callback function');\n }\n }\n else {\n try {\n result = handleCache(options)(data);\n }\n catch (err) {\n return cb(err);\n }\n\n cb(null, result);\n }\n}\n\n/**\n * fileLoader is independent\n *\n * @param {String} filePath ejs file path.\n * @return {String} The contents of the specified file.\n * @static\n */\n\nfunction fileLoader(filePath){\n return exports.fileLoader(filePath);\n}\n\n/**\n * Get the template function.\n *\n * If `options.cache` is `true`, then the template is cached.\n *\n * @memberof module:ejs-internal\n * @param {String} path path for the specified file\n * @param {Options} options compilation options\n * @return {(TemplateFunction|ClientFunction)}\n * Depending on the value of `options.client`, either type might be returned\n * @static\n */\n\nfunction includeFile(path, options) {\n var opts = utils.shallowCopy({}, options);\n opts.filename = getIncludePath(path, opts);\n if (typeof options.includer === 'function') {\n var includerResult = options.includer(path, opts.filename);\n if (includerResult) {\n if (includerResult.filename) {\n opts.filename = includerResult.filename;\n }\n if (includerResult.template) {\n return handleCache(opts, includerResult.template);\n }\n }\n }\n return handleCache(opts);\n}\n\n/**\n * Re-throw the given `err` in context to the `str` of ejs, `filename`, and\n * `lineno`.\n *\n * @implements {RethrowCallback}\n * @memberof module:ejs-internal\n * @param {Error} err Error object\n * @param {String} str EJS source\n * @param {String} flnm file name of the EJS file\n * @param {Number} lineno line number of the error\n * @param {EscapeCallback} esc\n * @static\n */\n\nfunction rethrow(err, str, flnm, lineno, esc) {\n var lines = str.split('\\n');\n var start = Math.max(lineno - 3, 0);\n var end = Math.min(lines.length, lineno + 3);\n var filename = esc(flnm);\n // Error context\n var context = lines.slice(start, end).map(function (line, i){\n var curr = i + start + 1;\n return (curr == lineno ? ' >> ' : ' ')\n + curr\n + '| '\n + line;\n }).join('\\n');\n\n // Alter exception message\n err.path = filename;\n err.message = (filename || 'ejs') + ':'\n + lineno + '\\n'\n + context + '\\n\\n'\n + err.message;\n\n throw err;\n}\n\nfunction stripSemi(str){\n return str.replace(/;(\\s*$)/, '$1');\n}\n\n/**\n * Compile the given `str` of ejs into a template function.\n *\n * @param {String} template EJS template\n *\n * @param {Options} [opts] compilation options\n *\n * @return {(TemplateFunction|ClientFunction)}\n * Depending on the value of `opts.client`, either type might be returned.\n * Note that the return type of the function also depends on the value of `opts.async`.\n * @public\n */\n\nexports.compile = function compile(template, opts) {\n var templ;\n\n // v1 compat\n // 'scope' is 'context'\n // FIXME: Remove this in a future version\n if (opts && opts.scope) {\n if (!scopeOptionWarned){\n console.warn('`scope` option is deprecated and will be removed in EJS 3');\n scopeOptionWarned = true;\n }\n if (!opts.context) {\n opts.context = opts.scope;\n }\n delete opts.scope;\n }\n templ = new Template(template, opts);\n return templ.compile();\n};\n\n/**\n * Render the given `template` of ejs.\n *\n * If you would like to include options but not data, you need to explicitly\n * call this function with `data` being an empty object or `null`.\n *\n * @param {String} template EJS template\n * @param {Object} [data={}] template data\n * @param {Options} [opts={}] compilation and rendering options\n * @return {(String|Promise)}\n * Return value type depends on `opts.async`.\n * @public\n */\n\nexports.render = function (template, d, o) {\n var data = d || {};\n var opts = o || {};\n\n // No options object -- if there are optiony names\n // in the data, copy them to options\n if (arguments.length == 2) {\n utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA);\n }\n\n return handleCache(opts, template)(data);\n};\n\n/**\n * Render an EJS file at the given `path` and callback `cb(err, str)`.\n *\n * If you would like to include options but not data, you need to explicitly\n * call this function with `data` being an empty object or `null`.\n *\n * @param {String} path path to the EJS file\n * @param {Object} [data={}] template data\n * @param {Options} [opts={}] compilation and rendering options\n * @param {RenderFileCallback} cb callback\n * @public\n */\n\nexports.renderFile = function () {\n var args = Array.prototype.slice.call(arguments);\n var filename = args.shift();\n var cb;\n var opts = {filename: filename};\n var data;\n var viewOpts;\n\n // Do we have a callback?\n if (typeof arguments[arguments.length - 1] == 'function') {\n cb = args.pop();\n }\n // Do we have data/opts?\n if (args.length) {\n // Should always have data obj\n data = args.shift();\n // Normal passed opts (data obj + opts obj)\n if (args.length) {\n // Use shallowCopy so we don't pollute passed in opts obj with new vals\n utils.shallowCopy(opts, args.pop());\n }\n // Special casing for Express (settings + opts-in-data)\n else {\n // Express 3 and 4\n if (data.settings) {\n // Pull a few things from known locations\n if (data.settings.views) {\n opts.views = data.settings.views;\n }\n if (data.settings['view cache']) {\n opts.cache = true;\n }\n // Undocumented after Express 2, but still usable, esp. for\n // items that are unsafe to be passed along with data, like `root`\n viewOpts = data.settings['view options'];\n if (viewOpts) {\n utils.shallowCopy(opts, viewOpts);\n }\n }\n // Express 2 and lower, values set in app.locals, or people who just\n // want to pass options in their data. NOTE: These values will override\n // anything previously set in settings or settings['view options']\n utils.shallowCopyFromList(opts, data, _OPTS_PASSABLE_WITH_DATA_EXPRESS);\n }\n opts.filename = filename;\n }\n else {\n data = {};\n }\n\n return tryHandleCache(opts, data, cb);\n};\n\n/**\n * Clear intermediate JavaScript cache. Calls {@link Cache#reset}.\n * @public\n */\n\n/**\n * EJS template class\n * @public\n */\nexports.Template = Template;\n\nexports.clearCache = function () {\n exports.cache.reset();\n};\n\nfunction Template(text, opts) {\n opts = opts || {};\n var options = {};\n this.templateText = text;\n /** @type {string | null} */\n this.mode = null;\n this.truncate = false;\n this.currentLine = 1;\n this.source = '';\n options.client = opts.client || false;\n options.escapeFunction = opts.escape || opts.escapeFunction || utils.escapeXML;\n options.compileDebug = opts.compileDebug !== false;\n options.debug = !!opts.debug;\n options.filename = opts.filename;\n options.openDelimiter = opts.openDelimiter || exports.openDelimiter || _DEFAULT_OPEN_DELIMITER;\n options.closeDelimiter = opts.closeDelimiter || exports.closeDelimiter || _DEFAULT_CLOSE_DELIMITER;\n options.delimiter = opts.delimiter || exports.delimiter || _DEFAULT_DELIMITER;\n options.strict = opts.strict || false;\n options.context = opts.context;\n options.cache = opts.cache || false;\n options.rmWhitespace = opts.rmWhitespace;\n options.root = opts.root;\n options.includer = opts.includer;\n options.outputFunctionName = opts.outputFunctionName;\n options.localsName = opts.localsName || exports.localsName || _DEFAULT_LOCALS_NAME;\n options.views = opts.views;\n options.async = opts.async;\n options.destructuredLocals = opts.destructuredLocals;\n options.legacyInclude = typeof opts.legacyInclude != 'undefined' ? !!opts.legacyInclude : true;\n\n if (options.strict) {\n options._with = false;\n }\n else {\n options._with = typeof opts._with != 'undefined' ? opts._with : true;\n }\n\n this.opts = options;\n\n this.regex = this.createRegex();\n}\n\nTemplate.modes = {\n EVAL: 'eval',\n ESCAPED: 'escaped',\n RAW: 'raw',\n COMMENT: 'comment',\n LITERAL: 'literal'\n};\n\nTemplate.prototype = {\n createRegex: function () {\n var str = _REGEX_STRING;\n var delim = utils.escapeRegExpChars(this.opts.delimiter);\n var open = utils.escapeRegExpChars(this.opts.openDelimiter);\n var close = utils.escapeRegExpChars(this.opts.closeDelimiter);\n str = str.replace(/%/g, delim)\n .replace(//g, close);\n return new RegExp(str);\n },\n\n compile: function () {\n /** @type {string} */\n var src;\n /** @type {ClientFunction} */\n var fn;\n var opts = this.opts;\n var prepended = '';\n var appended = '';\n /** @type {EscapeCallback} */\n var escapeFn = opts.escapeFunction;\n /** @type {FunctionConstructor} */\n var ctor;\n /** @type {string} */\n var sanitizedFilename = opts.filename ? JSON.stringify(opts.filename) : 'undefined';\n\n if (!this.source) {\n this.generateSource();\n prepended +=\n ' var __output = \"\";\\n' +\n ' function __append(s) { if (s !== undefined && s !== null) __output += s }\\n';\n if (opts.outputFunctionName) {\n prepended += ' var ' + opts.outputFunctionName + ' = __append;' + '\\n';\n }\n if (opts.destructuredLocals && opts.destructuredLocals.length) {\n var destructuring = ' var __locals = (' + opts.localsName + ' || {}),\\n';\n for (var i = 0; i < opts.destructuredLocals.length; i++) {\n var name = opts.destructuredLocals[i];\n if (i > 0) {\n destructuring += ',\\n ';\n }\n destructuring += name + ' = __locals.' + name;\n }\n prepended += destructuring + ';\\n';\n }\n if (opts._with !== false) {\n prepended += ' with (' + opts.localsName + ' || {}) {' + '\\n';\n appended += ' }' + '\\n';\n }\n appended += ' return __output;' + '\\n';\n this.source = prepended + this.source + appended;\n }\n\n if (opts.compileDebug) {\n src = 'var __line = 1' + '\\n'\n + ' , __lines = ' + JSON.stringify(this.templateText) + '\\n'\n + ' , __filename = ' + sanitizedFilename + ';' + '\\n'\n + 'try {' + '\\n'\n + this.source\n + '} catch (e) {' + '\\n'\n + ' rethrow(e, __lines, __filename, __line, escapeFn);' + '\\n'\n + '}' + '\\n';\n }\n else {\n src = this.source;\n }\n\n if (opts.client) {\n src = 'escapeFn = escapeFn || ' + escapeFn.toString() + ';' + '\\n' + src;\n if (opts.compileDebug) {\n src = 'rethrow = rethrow || ' + rethrow.toString() + ';' + '\\n' + src;\n }\n }\n\n if (opts.strict) {\n src = '\"use strict\";\\n' + src;\n }\n if (opts.debug) {\n console.log(src);\n }\n if (opts.compileDebug && opts.filename) {\n src = src + '\\n'\n + '//# sourceURL=' + sanitizedFilename + '\\n';\n }\n\n try {\n if (opts.async) {\n // Have to use generated function for this, since in envs without support,\n // it breaks in parsing\n try {\n ctor = (new Function('return (async function(){}).constructor;'))();\n }\n catch(e) {\n if (e instanceof SyntaxError) {\n throw new Error('This environment does not support async/await');\n }\n else {\n throw e;\n }\n }\n }\n else {\n ctor = Function;\n }\n fn = new ctor(opts.localsName + ', escapeFn, include, rethrow', src);\n }\n catch(e) {\n // istanbul ignore else\n if (e instanceof SyntaxError) {\n if (opts.filename) {\n e.message += ' in ' + opts.filename;\n }\n e.message += ' while compiling ejs\\n\\n';\n e.message += 'If the above error is not helpful, you may want to try EJS-Lint:\\n';\n e.message += 'https://github.com/RyanZim/EJS-Lint';\n if (!opts.async) {\n e.message += '\\n';\n e.message += 'Or, if you meant to create an async function, pass `async: true` as an option.';\n }\n }\n throw e;\n }\n\n // Return a callable function which will execute the function\n // created by the source-code, with the passed data as locals\n // Adds a local `include` function which allows full recursive include\n var returnedFn = opts.client ? fn : function anonymous(data) {\n var include = function (path, includeData) {\n var d = utils.shallowCopy({}, data);\n if (includeData) {\n d = utils.shallowCopy(d, includeData);\n }\n return includeFile(path, opts)(d);\n };\n return fn.apply(opts.context, [data || {}, escapeFn, include, rethrow]);\n };\n if (opts.filename && typeof Object.defineProperty === 'function') {\n var filename = opts.filename;\n var basename = path.basename(filename, path.extname(filename));\n try {\n Object.defineProperty(returnedFn, 'name', {\n value: basename,\n writable: false,\n enumerable: false,\n configurable: true\n });\n } catch (e) {/* ignore */}\n }\n return returnedFn;\n },\n\n generateSource: function () {\n var opts = this.opts;\n\n if (opts.rmWhitespace) {\n // Have to use two separate replace here as `^` and `$` operators don't\n // work well with `\\r` and empty lines don't work well with the `m` flag.\n this.templateText =\n this.templateText.replace(/[\\r\\n]+/g, '\\n').replace(/^\\s+|\\s+$/gm, '');\n }\n\n // Slurp spaces and tabs before <%_ and after _%>\n this.templateText =\n this.templateText.replace(/[ \\t]*<%_/gm, '<%_').replace(/_%>[ \\t]*/gm, '_%>');\n\n var self = this;\n var matches = this.parseTemplateText();\n var d = this.opts.delimiter;\n var o = this.opts.openDelimiter;\n var c = this.opts.closeDelimiter;\n\n if (matches && matches.length) {\n matches.forEach(function (line, index) {\n var closing;\n // If this is an opening tag, check for closing tags\n // FIXME: May end up with some false positives here\n // Better to store modes as k/v with openDelimiter + delimiter as key\n // Then this can simply check against the map\n if ( line.indexOf(o + d) === 0 // If it is a tag\n && line.indexOf(o + d + d) !== 0) { // and is not escaped\n closing = matches[index + 2];\n if (!(closing == d + c || closing == '-' + d + c || closing == '_' + d + c)) {\n throw new Error('Could not find matching close tag for \"' + line + '\".');\n }\n }\n self.scanLine(line);\n });\n }\n\n },\n\n parseTemplateText: function () {\n var str = this.templateText;\n var pat = this.regex;\n var result = pat.exec(str);\n var arr = [];\n var firstPos;\n\n while (result) {\n firstPos = result.index;\n\n if (firstPos !== 0) {\n arr.push(str.substring(0, firstPos));\n str = str.slice(firstPos);\n }\n\n arr.push(result[0]);\n str = str.slice(result[0].length);\n result = pat.exec(str);\n }\n\n if (str) {\n arr.push(str);\n }\n\n return arr;\n },\n\n _addOutput: function (line) {\n if (this.truncate) {\n // Only replace single leading linebreak in the line after\n // -%> tag -- this is the single, trailing linebreak\n // after the tag that the truncation mode replaces\n // Handle Win / Unix / old Mac linebreaks -- do the \\r\\n\n // combo first in the regex-or\n line = line.replace(/^(?:\\r\\n|\\r|\\n)/, '');\n this.truncate = false;\n }\n if (!line) {\n return line;\n }\n\n // Preserve literal slashes\n line = line.replace(/\\\\/g, '\\\\\\\\');\n\n // Convert linebreaks\n line = line.replace(/\\n/g, '\\\\n');\n line = line.replace(/\\r/g, '\\\\r');\n\n // Escape double-quotes\n // - this will be the delimiter during execution\n line = line.replace(/\"/g, '\\\\\"');\n this.source += ' ; __append(\"' + line + '\")' + '\\n';\n },\n\n scanLine: function (line) {\n var self = this;\n var d = this.opts.delimiter;\n var o = this.opts.openDelimiter;\n var c = this.opts.closeDelimiter;\n var newLineCount = 0;\n\n newLineCount = (line.split('\\n').length - 1);\n\n switch (line) {\n case o + d:\n case o + d + '_':\n this.mode = Template.modes.EVAL;\n break;\n case o + d + '=':\n this.mode = Template.modes.ESCAPED;\n break;\n case o + d + '-':\n this.mode = Template.modes.RAW;\n break;\n case o + d + '#':\n this.mode = Template.modes.COMMENT;\n break;\n case o + d + d:\n this.mode = Template.modes.LITERAL;\n this.source += ' ; __append(\"' + line.replace(o + d + d, o + d) + '\")' + '\\n';\n break;\n case d + d + c:\n this.mode = Template.modes.LITERAL;\n this.source += ' ; __append(\"' + line.replace(d + d + c, d + c) + '\")' + '\\n';\n break;\n case d + c:\n case '-' + d + c:\n case '_' + d + c:\n if (this.mode == Template.modes.LITERAL) {\n this._addOutput(line);\n }\n\n this.mode = null;\n this.truncate = line.indexOf('-') === 0 || line.indexOf('_') === 0;\n break;\n default:\n // In script mode, depends on type of tag\n if (this.mode) {\n // If '//' is found without a line break, add a line break.\n switch (this.mode) {\n case Template.modes.EVAL:\n case Template.modes.ESCAPED:\n case Template.modes.RAW:\n if (line.lastIndexOf('//') > line.lastIndexOf('\\n')) {\n line += '\\n';\n }\n }\n switch (this.mode) {\n // Just executing code\n case Template.modes.EVAL:\n this.source += ' ; ' + line + '\\n';\n break;\n // Exec, esc, and output\n case Template.modes.ESCAPED:\n this.source += ' ; __append(escapeFn(' + stripSemi(line) + '))' + '\\n';\n break;\n // Exec and output\n case Template.modes.RAW:\n this.source += ' ; __append(' + stripSemi(line) + ')' + '\\n';\n break;\n case Template.modes.COMMENT:\n // Do nothing\n break;\n // Literal <%% mode, append as raw output\n case Template.modes.LITERAL:\n this._addOutput(line);\n break;\n }\n }\n // In string mode, just add the output\n else {\n this._addOutput(line);\n }\n }\n\n if (self.opts.compileDebug && newLineCount) {\n this.currentLine += newLineCount;\n this.source += ' ; __line = ' + this.currentLine + '\\n';\n }\n }\n};\n\n/**\n * Escape characters reserved in XML.\n *\n * This is simply an export of {@link module:utils.escapeXML}.\n *\n * If `markup` is `undefined` or `null`, the empty string is returned.\n *\n * @param {String} markup Input string\n * @return {String} Escaped string\n * @public\n * @func\n * */\nexports.escapeXML = utils.escapeXML;\n\n/**\n * Express.js support.\n *\n * This is an alias for {@link module:ejs.renderFile}, in order to support\n * Express.js out-of-the-box.\n *\n * @func\n */\n\nexports.__express = exports.renderFile;\n\n/**\n * Version of EJS.\n *\n * @readonly\n * @type {String}\n * @public\n */\n\nexports.VERSION = _VERSION_STRING;\n\n/**\n * Name for detection of EJS.\n *\n * @readonly\n * @type {String}\n * @public\n */\n\nexports.name = _NAME;\n\n/* istanbul ignore if */\nif (typeof window != 'undefined') {\n window.ejs = exports;\n}\n","/*\n * EJS Embedded JavaScript templates\n * Copyright 2112 Matthew Eernisse (mde@fleegix.org)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n*/\n\n/**\n * Private utility functions\n * @module utils\n * @private\n */\n\n'use strict';\n\nvar regExpChars = /[|\\\\{}()[\\]^$+*?.]/g;\n\n/**\n * Escape characters reserved in regular expressions.\n *\n * If `string` is `undefined` or `null`, the empty string is returned.\n *\n * @param {String} string Input string\n * @return {String} Escaped string\n * @static\n * @private\n */\nexports.escapeRegExpChars = function (string) {\n // istanbul ignore if\n if (!string) {\n return '';\n }\n return String(string).replace(regExpChars, '\\\\$&');\n};\n\nvar _ENCODE_HTML_RULES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\nvar _MATCH_HTML = /[&<>'\"]/g;\n\nfunction encode_char(c) {\n return _ENCODE_HTML_RULES[c] || c;\n}\n\n/**\n * Stringified version of constants used by {@link module:utils.escapeXML}.\n *\n * It is used in the process of generating {@link ClientFunction}s.\n *\n * @readonly\n * @type {String}\n */\n\nvar escapeFuncStr =\n 'var _ENCODE_HTML_RULES = {\\n'\n+ ' \"&\": \"&\"\\n'\n+ ' , \"<\": \"<\"\\n'\n+ ' , \">\": \">\"\\n'\n+ ' , \\'\"\\': \""\"\\n'\n+ ' , \"\\'\": \"'\"\\n'\n+ ' }\\n'\n+ ' , _MATCH_HTML = /[&<>\\'\"]/g;\\n'\n+ 'function encode_char(c) {\\n'\n+ ' return _ENCODE_HTML_RULES[c] || c;\\n'\n+ '};\\n';\n\n/**\n * Escape characters reserved in XML.\n *\n * If `markup` is `undefined` or `null`, the empty string is returned.\n *\n * @implements {EscapeCallback}\n * @param {String} markup Input string\n * @return {String} Escaped string\n * @static\n * @private\n */\n\nexports.escapeXML = function (markup) {\n return markup == undefined\n ? ''\n : String(markup)\n .replace(_MATCH_HTML, encode_char);\n};\nexports.escapeXML.toString = function () {\n return Function.prototype.toString.call(this) + ';\\n' + escapeFuncStr;\n};\n\n/**\n * Naive copy of properties from one object to another.\n * Does not recurse into non-scalar properties\n * Does not check to see if the property has a value before copying\n *\n * @param {Object} to Destination object\n * @param {Object} from Source object\n * @return {Object} Destination object\n * @static\n * @private\n */\nexports.shallowCopy = function (to, from) {\n from = from || {};\n for (var p in from) {\n to[p] = from[p];\n }\n return to;\n};\n\n/**\n * Naive copy of a list of key names, from one object to another.\n * Only copies property if it is actually defined\n * Does not recurse into non-scalar properties\n *\n * @param {Object} to Destination object\n * @param {Object} from Source object\n * @param {Array} list List of properties to copy\n * @return {Object} Destination object\n * @static\n * @private\n */\nexports.shallowCopyFromList = function (to, from, list) {\n for (var i = 0; i < list.length; i++) {\n var p = list[i];\n if (typeof from[p] != 'undefined') {\n to[p] = from[p];\n }\n }\n return to;\n};\n\n/**\n * Simple in-process cache implementation. Does not implement limits of any\n * sort.\n *\n * @implements {Cache}\n * @static\n * @private\n */\nexports.cache = {\n _data: {},\n set: function (key, val) {\n this._data[key] = val;\n },\n get: function (key) {\n return this._data[key];\n },\n remove: function (key) {\n delete this._data[key];\n },\n reset: function () {\n this._data = {};\n }\n};\n\n/**\n * Transforms hyphen case variable into camel case.\n *\n * @param {String} string Hyphen case string\n * @return {String} Camel case string\n * @static\n * @private\n */\nexports.hyphenToCamel = function (str) {\n return str.replace(/-[a-z]/g, function (match) { return match[1].toUpperCase(); });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EPub = exports.chapterDefaults = exports.optionsDefaults = void 0;\nvar ejs_1 = require(\"ejs\");\nvar jszip_1 = __importDefault(require(\"jszip\"));\nvar mime_1 = require(\"mime\");\nvar ow_1 = __importDefault(require(\"ow\"));\nvar util_1 = require(\"./util\");\nObject.defineProperty(exports, \"chapterDefaults\", { enumerable: true, get: function () { return util_1.chapterDefaults; } });\nObject.defineProperty(exports, \"optionsDefaults\", { enumerable: true, get: function () { return util_1.optionsDefaults; } });\nvar EPub = /** @class */ (function () {\n function EPub(options, content) {\n this.images = [];\n this.options = (0, util_1.validateAndNormalizeOptions)(options);\n switch (this.options.verbose) {\n case true:\n this.log = console.log.bind(console);\n this.warn = console.warn.bind(console);\n break;\n case false:\n this.log = this.warn = function () { };\n break;\n default:\n this.log = this.options.verbose.bind(null, 'log');\n this.warn = this.options.verbose.bind(null, 'warn');\n break;\n }\n this.uuid = (0, util_1.uuid)();\n this.content = util_1.validateAndNormalizeChapters.call(this, content);\n this.zip = new jszip_1.default();\n this.zip.file('mimetype', 'application/epub+zip', { compression: 'STORE' });\n if (this.options.cover) {\n var mediaType = (0, mime_1.getType)(this.options.cover);\n var extension = (0, mime_1.getExtension)(mediaType || '');\n if (mediaType && extension)\n this.cover = { mediaType: mediaType, extension: extension };\n }\n }\n EPub.prototype.render = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.log('Generating Template Files...');\n return [4 /*yield*/, this.generateTemplateFiles()];\n case 1:\n _a.sent();\n this.log('Downloading fonts...');\n return [4 /*yield*/, this.downloadAllFonts()];\n case 2:\n _a.sent();\n this.log('Downloading images...');\n return [4 /*yield*/, this.downloadAllImages()];\n case 3:\n _a.sent();\n this.log('Making cover...');\n return [4 /*yield*/, this.makeCover()];\n case 4:\n _a.sent();\n this.log('Finishing up...');\n return [2 /*return*/, this];\n }\n });\n });\n };\n EPub.prototype.genEpub = function () {\n return __awaiter(this, void 0, void 0, function () {\n var content;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.render()];\n case 1:\n _a.sent();\n content = this.zip.generateAsync({\n type: util_1.type,\n mimeType: 'application/epub+zip',\n compression: 'DEFLATE',\n compressionOptions: {\n level: 9,\n },\n });\n this.log('Done');\n return [2 /*return*/, content];\n }\n });\n });\n };\n EPub.prototype.generateAsync = function (options) {\n return this.zip.generateAsync(options);\n };\n EPub.prototype.generateTemplateFiles = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oebps, metainf, opt;\n var _this = this;\n return __generator(this, function (_a) {\n oebps = this.zip.folder('OEBPS');\n oebps.file('style.css', this.options.css);\n this.content.forEach(function (chapter) {\n var rendered = (0, ejs_1.render)(_this.options.chapterXHTML, __assign({ lang: _this.options.lang, prependChapterTitles: _this.options.prependChapterTitles }, chapter));\n oebps.file(chapter.filename, rendered);\n });\n metainf = this.zip.folder('META-INF');\n metainf.file('container.xml', '');\n if (this.options.version === 2) {\n // write meta-inf/com.apple.ibooks.display-options.xml [from pedrosanta:xhtml#6]\n metainf.file('com.apple.ibooks.display-options.xml', '');\n }\n opt = __assign(__assign({}, this.options), { id: this.uuid, images: this.images, cover: this.cover, content: this.content });\n oebps.file('content.opf', (0, ejs_1.render)(this.options.contentOPF, opt));\n oebps.file('toc.ncx', (0, ejs_1.render)(this.options.tocNCX, opt));\n oebps.file('toc.xhtml', (0, ejs_1.render)(this.options.tocXHTML, opt));\n return [2 /*return*/];\n });\n });\n };\n EPub.prototype.downloadAllFonts = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oebps, fonts, i, fontContents;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.options.fonts.length)\n return [2 /*return*/, this.log('No fonts to download')];\n oebps = this.zip.folder('OEBPS');\n fonts = oebps.folder('fonts');\n i = 0;\n _a.label = 1;\n case 1:\n if (!(i < this.options.fonts.length)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all(this.options.fonts.slice(i, i + this.options.batchSize).map(function (font) {\n var d = (0, util_1.retryFetch)(font.url, _this.options.fetchTimeout, _this.options.retryTimes, _this.log)\n .then(function (res) { return (_this.log(\"Downloaded font \" + font.url), __assign(__assign({}, font), { data: res })); });\n return _this.options.ignoreFailedDownloads\n ? d.catch(function (reason) { return (_this.warn(\"Warning (font \" + font.url + \"): Download failed\", reason), __assign(__assign({}, font), { data: '' })); })\n : d;\n }))];\n case 2:\n fontContents = _a.sent();\n fontContents.forEach(function (font) { return fonts.file(font.filename, font.data); });\n _a.label = 3;\n case 3:\n i += this.options.batchSize;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n EPub.prototype.downloadAllImages = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oebps, images, i, imageContents;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.images.length)\n return [2 /*return*/, this.log('No images to download')];\n oebps = this.zip.folder('OEBPS');\n images = oebps.folder('images');\n i = 0;\n _a.label = 1;\n case 1:\n if (!(i < this.images.length)) return [3 /*break*/, 4];\n return [4 /*yield*/, Promise.all(this.images.slice(i, i + this.options.batchSize).map(function (image) {\n var d = (0, util_1.retryFetch)(image.url, _this.options.fetchTimeout, _this.options.retryTimes, _this.log)\n .then(function (res) { return (_this.log(\"Downloaded image \" + image.url), __assign(__assign({}, image), { data: res })); });\n return _this.options.ignoreFailedDownloads\n ? d.catch(function (reason) { return (_this.warn(\"Warning (image \" + image.url + \"): Download failed\", reason), __assign(__assign({}, image), { data: '' })); })\n : d;\n }))];\n case 2:\n imageContents = _a.sent();\n imageContents.forEach(function (image) { return images.file(image.id + \".\" + image.extension, image.data); });\n _a.label = 3;\n case 3:\n i += this.options.batchSize;\n return [3 /*break*/, 1];\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n EPub.prototype.makeCover = function () {\n return __awaiter(this, void 0, void 0, function () {\n var oebps, coverContent;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!this.cover)\n return [2 /*return*/, this.log('No cover to download')];\n oebps = this.zip.folder('OEBPS');\n return [4 /*yield*/, (0, util_1.retryFetch)(this.options.cover, this.options.fetchTimeout, this.options.retryTimes, this.log)\n .catch(function (reason) { return (_this.warn(\"Warning (cover \" + _this.options.cover + \"): Download failed\", reason), ''); })];\n case 1:\n coverContent = _a.sent();\n oebps.file(\"cover.\" + this.cover.extension, coverContent);\n return [2 /*return*/];\n }\n });\n });\n };\n return EPub;\n}());\nexports.EPub = EPub;\nvar epub = function (optionsOrTitle, content) {\n var args = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n args[_i - 2] = arguments[_i];\n }\n (0, ow_1.default)(optionsOrTitle, ow_1.default.any(util_1.optionsPredicate, ow_1.default.string));\n var options = ow_1.default.isValid(optionsOrTitle, ow_1.default.string) ? { title: optionsOrTitle } : optionsOrTitle;\n (0, ow_1.default)(args, ow_1.default.array.ofType(ow_1.default.any(ow_1.default.boolean, ow_1.default.number)));\n args.forEach(function (arg) {\n if (ow_1.default.isValid(arg, ow_1.default.boolean))\n options.verbose = arg;\n else\n options.version = arg;\n });\n return new EPub(options, content).genEpub();\n};\nexports.default = epub;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\\" lang=\\\"<%= lang %>\\\">\\n\\n <%= title %>\\n \\n\\n\\n <% if (prependChapterTitles) { %>\\n

    <%= title %>

    \\n <% if (author.length) { %>\\n

    <%= author.join(', ') %>

    \\n <% } %>\\n <% if (url) { %>\\n

    \\\"><%= url %>

    \\n <% } %>\\n <% } %>\\n <%- content %>\\n\\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\n \\n\\n <%= id %>\\n <%= title %>\\n <%= description %>\\n <%= publisher %>\\n \\\"><%= author.join(\\\",\\\") %>\\n <%= date %>\\n <%= lang %>\\n <% if(cover) { %>\\n \\n <% } %>\\n \\n\\n \\n\\n \\n \\n \\n \\n\\n <% if(cover) { %>\\n \\\" media-type=\\\"<%= cover.mediaType %>\\\" />\\n <% } %>\\n \\n <% images.forEach(function(image, index){ %>\\n \\\" href=\\\"images/<%= image.id %>.<%= image.extension %>\\\" media-type=\\\"<%= image.mediaType %>\\\" />\\n <% }) %>\\n \\n <% content.forEach(function(content, index){ %>\\n _<%= content.id %>\\\" href=\\\"<%= content.filename %>\\\" media-type=\\\"application/xhtml+xml\\\" />\\n <% }) %>\\n\\n <% fonts.forEach(function(font, index) { %>\\n \\\" href=\\\"fonts/<%= font.filename %>\\\" media-type=\\\"<%= font.mediaType %>\\\" />\\n <% }) %>\\n \\n\\n \\n <% content.forEach(function(content, index){ %>\\n <% if(content.beforeToc){ %>\\n _<%= content.id %>\\\"/>\\n <% } %>\\n <% }) %>\\n \\n <% content.forEach(function(content, index){ %>\\n <% if(!content.beforeToc){ %>\\n _<%= content.id %>\\\"/>\\n <% } %>\\n <% }) %>\\n \\n \\n \\\" href=\\\"toc.xhtml\\\" />\\n \\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\\" xmlns=\\\"http://www.w3.org/1999/xhtml\\\">\\n\\n <%= title %>\\n \\n\\n\\n

    <%= tocTitle %>

    \\n <% content.forEach(function(content, index){ %>\\n <% if(!content.excludeFromToc){ %>\\n

    \\n \\\"><%= (numberChaptersInTOC ? (1+index) + \\\". \\\" : \\\"\\\") + content.title %>\\n <% if(content.author.length){ %>\\n - <%= content.author.join(\\\",\\\") %>\\n <% } %>\\n <% if(content.url){ %><%= content.url %><% }%>\\n \\n

    \\n <% } %>\\n <% }) %>\\n\\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\\" lang=\\\"<%= lang %>\\\">\\n\\n \\n <%= title %>\\n \\n\\n\\n <% if (prependChapterTitles) { %>\\n

    <%= title %>

    \\n <% if (author.length) { %>\\n

    <%= author.join(', ') %>

    \\n <% } %>\\n <% if (url) { %>\\n

    \\\"><%= url %>

    \\n <% } %>\\n <% } %>\\n <%- content %>\\n\\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\n \\n\\n <%= id %>\\n 22\\n BookId\\n <%= title %>\\n <%= title %>\\n <%= lang %>\\n <%= lang %>\\n <%= (new Date()).toISOString().split(\\\".\\\")[0]+ \\\"Z\\\" %>\\n <%= author.join(\\\",\\\") %>\\n <%= author.join(\\\",\\\") %>\\n <%= publisher %>\\n <%= publisher %>\\n <%= date %>\\n <%= date %>\\n All rights reserved\\n Copyright © <%= (new Date()).getFullYear() %> by <%= publisher %>\\n <% if(cover) { %>\\n \\n <% } %>\\n \\n true\\n\\n \\n\\n \\n \\n \\n \\n\\n <% if(cover) { %>\\n \\\" media-type=\\\"<%= cover.mediaType %>\\\" />\\n <% } %>\\n \\n <% images.forEach(function(image, index){ %>\\n \\\" href=\\\"images/<%= image.id %>.<%= image.extension %>\\\" media-type=\\\"<%= image.mediaType %>\\\" />\\n <% }) %>\\n \\n <% content.forEach(function(content, index){ %>\\n _<%= content.id %>\\\" href=\\\"<%= content.filename %>\\\" media-type=\\\"application/xhtml+xml\\\" />\\n <% }) %>\\n\\n <% fonts.forEach(function(font, index){%>\\n \\\" href=\\\"fonts/<%= font.filename %>\\\" media-type=\\\"<%= font.mediaType %>\\\" />\\n <%})%>\\n \\n\\n \\n <% content.forEach(function(content, index){ %>\\n <% if(content.beforeToc){ %>\\n _<%= content.id %>\\\"/>\\n <% } %>\\n <% }) %>\\n \\n <% content.forEach(function(content, index){ %>\\n <% if(!content.beforeToc){ %>\\n _<%= content.id %>\\\"/>\\n <% } %>\\n <% }) %>\\n \\n \\n \\n \\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n\\\" lang=\\\"<%- lang %>\\\">\\n\\n <%= title %>\\n \\n \\n\\n\\n

    <%= tocTitle %>

    \\n \\n\\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \".epub-author {\\n color: #555;\\n}\\n\\n.epub-link {\\n margin-bottom: 30px;\\n}\\n\\n.epub-link a {\\n color: #666;\\n font-size: 90%;\\n}\\n\\n.toc-author {\\n font-size: 90%;\\n color: #555;\\n}\\n\\n.toc-link {\\n color: #999;\\n font-size: 85%;\\n display: block;\\n}\\n\\nhr {\\n border: 0;\\n border-bottom: 1px solid #dedede;\\n margin: 60px 10%;\\n}\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = \"\\n\\n \\n \\\" />\\n \\n \\n \\n \\n \\n \\n <%= title %>\\n \\n \\n <%= author %>\\n \\n \\n <% var _index = 0; %>\\n <% content.forEach(function(content, index){ %>\\n <% if(!content.excludeFromToc && content.beforeToc){ %>\\n _<%= content.id %>\\\" playOrder=\\\"<%= _index++ %>\\\" class=\\\"chapter\\\">\\n \\n <%= (numberChaptersInTOC ? (1+index) + \\\". \\\" : \\\"\\\") + content.title %>\\n \\n \\\"/>\\n \\n <% } %>\\n <% }) %>\\n \\n <% if (tocInTOC){ %>\\n \\\" class=\\\"chapter\\\">\\n \\n <%= tocTitle %>\\n \\n \\n \\n <% } %>\\n\\n <% content.forEach(function(content, index){ %>\\n <% if(!content.excludeFromToc && !content.beforeToc){ %>\\n _<%= content.id %>\\\" playOrder=\\\"<%= _index++ %>\\\" class=\\\"chapter\\\">\\n \\n <%= (numberChaptersInTOC ? (1+index) + \\\". \\\" : \\\"\\\") + content.title %>\\n \\n \\\"/>\\n \\n <% } %>\\n <% }) %>\\n \\n\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.allowedXhtml11Tags = exports.allowedAttributes = void 0;\nexports.allowedAttributes = [\"content\", \"alt\", \"id\", \"title\", \"src\", \"href\", \"about\", \"accesskey\", \"aria-activedescendant\", \"aria-atomic\", \"aria-autocomplete\", \"aria-busy\", \"aria-checked\", \"aria-controls\", \"aria-describedat\", \"aria-describedby\", \"aria-disabled\", \"aria-dropeffect\", \"aria-expanded\", \"aria-flowto\", \"aria-grabbed\", \"aria-haspopup\", \"aria-hidden\", \"aria-invalid\", \"aria-label\", \"aria-labelledby\", \"aria-level\", \"aria-live\", \"aria-multiline\", \"aria-multiselectable\", \"aria-orientation\", \"aria-owns\", \"aria-posinset\", \"aria-pressed\", \"aria-readonly\", \"aria-relevant\", \"aria-required\", \"aria-selected\", \"aria-setsize\", \"aria-sort\", \"aria-valuemax\", \"aria-valuemin\", \"aria-valuenow\", \"aria-valuetext\", \"class\", \"content\", \"contenteditable\", \"contextmenu\", \"datatype\", \"dir\", \"draggable\", \"dropzone\", \"hidden\", \"hreflang\", \"id\", \"inlist\", \"itemid\", \"itemref\", \"itemscope\", \"itemtype\", \"lang\", \"media\", \"ns1:type\", \"ns2:alphabet\", \"ns2:ph\", \"onabort\", \"onblur\", \"oncanplay\", \"oncanplaythrough\", \"onchange\", \"onclick\", \"oncontextmenu\", \"ondblclick\", \"ondrag\", \"ondragend\", \"ondragenter\", \"ondragleave\", \"ondragover\", \"ondragstart\", \"ondrop\", \"ondurationchange\", \"onemptied\", \"onended\", \"onerror\", \"onfocus\", \"oninput\", \"oninvalid\", \"onkeydown\", \"onkeypress\", \"onkeyup\", \"onload\", \"onloadeddata\", \"onloadedmetadata\", \"onloadstart\", \"onmousedown\", \"onmousemove\", \"onmouseout\", \"onmouseover\", \"onmouseup\", \"onmousewheel\", \"onpause\", \"onplay\", \"onplaying\", \"onprogress\", \"onratechange\", \"onreadystatechange\", \"onreset\", \"onscroll\", \"onseeked\", \"onseeking\", \"onselect\", \"onshow\", \"onstalled\", \"onsubmit\", \"onsuspend\", \"ontimeupdate\", \"onvolumechange\", \"onwaiting\", \"prefix\", \"property\", \"rel\", \"resource\", \"rev\", \"role\", \"spellcheck\", \"style\", \"tabindex\", \"target\", \"title\", \"type\", \"typeof\", \"vocab\", \"xml:base\", \"xml:lang\", \"xml:space\", \"colspan\", \"rowspan\", \"epub:type\", \"epub:prefix\"];\nexports.allowedXhtml11Tags = [\"div\", \"p\", \"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"ul\", \"ol\", \"li\", \"dl\", \"dt\", \"dd\", \"address\", \"hr\", \"pre\", \"blockquote\", \"center\", \"ins\", \"del\", \"a\", \"span\", \"bdo\", \"br\", \"em\", \"strong\", \"dfn\", \"code\", \"samp\", \"kbd\", \"bar\", \"cite\", \"abbr\", \"acronym\", \"q\", \"sub\", \"sup\", \"tt\", \"i\", \"b\", \"big\", \"small\", \"u\", \"s\", \"strike\", \"basefont\", \"font\", \"object\", \"param\", \"img\", \"table\", \"caption\", \"colgroup\", \"col\", \"thead\", \"tfoot\", \"tbody\", \"tr\", \"th\", \"td\", \"embed\", \"applet\", \"iframe\", \"img\", \"map\", \"noscript\", \"ns:svg\", \"object\", \"script\", \"table\", \"tt\", \"var\"];\n","\"use strict\";\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.type = void 0;\n/// \nexports.type = 'blob';\nvar fetchable = function (url, timeout) { return __awaiter(void 0, void 0, void 0, function () {\n var controller, out, res;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n controller = typeof AbortController !== \"undefined\" ? new AbortController() : {};\n out = setTimeout(function () { return controller.abort && controller.abort(); }, timeout);\n _a.label = 1;\n case 1:\n _a.trys.push([1, , 3, 4]);\n return [4 /*yield*/, fetch(url, { signal: controller.signal })];\n case 2:\n res = _a.sent();\n if (!res.ok)\n throw new Error(\"Got error \" + res.status + \" (\" + res.statusText + \") while fetching \" + url);\n return [2 /*return*/, res.blob()];\n case 3:\n clearTimeout(out);\n return [7 /*endfinally*/];\n case 4: return [2 /*return*/];\n }\n });\n}); };\nexports.default = fetchable;\n","\"use strict\";\n/// \nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.fixHTML = void 0;\nvar constants_1 = require(\"./constants\");\nvar allowedXhtml11Tags = constants_1.allowedXhtml11Tags.map(function (t) { return t.toUpperCase(); });\nfunction fixHTML(index, html, imgCB) {\n var _this = this;\n var document = new DOMParser().parseFromString(html, 'text/html');\n // reverse to make sure we transform innermost first\n Array.from(document.body.querySelectorAll('*')).reverse().forEach(function (element) {\n for (var _i = 0, _a = Array.from(element.attributes); _i < _a.length; _i++) {\n var a = _a[_i];\n if (constants_1.allowedAttributes.indexOf(a.name) === -1) {\n _this.warn(\"Warning (content[\" + index + \"]): attribute \" + a.name + \" isn't allowed.\");\n element.removeAttribute(a.name);\n }\n }\n if (_this.options.version === 2 && allowedXhtml11Tags.indexOf(element.tagName) === -1) {\n _this.warn(\"Warning (content[\" + index + \"]): tag \" + element.tagName + \" isn't allowed in EPUB 2/XHTML 1.1 DTD.\");\n var div = document.createElement('div');\n for (var _b = 0, _c = Array.from(element.attributes); _b < _c.length; _b++) {\n var a = _c[_b];\n div.setAttribute(a.name, a.value);\n }\n div.innerHTML = element.innerHTML;\n element.replaceWith(div);\n }\n });\n // record images and change where they point\n document.body.querySelectorAll('img').forEach(function (element) {\n element.alt || (element.alt = \"image-placeholder\");\n if (!element.src)\n element.remove();\n else\n element.src = imgCB.call(_this, element.src);\n });\n return new XMLSerializer().serializeToString(document.body);\n}\nexports.fixHTML = fixHTML;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.normalizeHTML = void 0;\nvar mime_1 = require(\"mime\");\nvar html_parse_1 = require(\"./html-parse\");\nvar other_1 = require(\"./other\");\nfunction imgSrc(url) {\n var image = this.images.find(function (i) { return i.url === url; });\n if (!image) {\n var mediaType = (0, mime_1.getType)(url.replace(/\\?.*/, \"\")) || '';\n image = {\n url: url,\n mediaType: mediaType,\n id: (0, other_1.uuid)(),\n extension: (0, mime_1.getExtension)(mediaType) || '',\n };\n this.images.push(image);\n }\n return \"images/\" + image.id + \".\" + image.extension;\n}\nfunction normalizeHTML(index, data) {\n return html_parse_1.fixHTML.call(this, index, data, imgSrc).replace(/^|<\\/body>$/g, '');\n}\nexports.normalizeHTML = normalizeHTML;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.validateAndNormalizeChapter = exports.validateAndNormalizeChapters = exports.validateAndNormalizeOptions = exports.normName = exports.chapterDefaults = exports.optionsDefaults = exports.chapterPredicate = exports.optionsPredicate = void 0;\nvar diacritics_1 = require(\"diacritics\");\nvar mime_1 = require(\"mime\");\nvar ow_1 = __importDefault(require(\"ow\"));\nvar chapter_xhtml_ejs_1 = __importDefault(require(\"../templates/epub2/chapter.xhtml.ejs\"));\nvar content_opf_ejs_1 = __importDefault(require(\"../templates/epub2/content.opf.ejs\"));\nvar toc_xhtml_ejs_1 = __importDefault(require(\"../templates/epub2/toc.xhtml.ejs\"));\nvar chapter_xhtml_ejs_2 = __importDefault(require(\"../templates/epub3/chapter.xhtml.ejs\"));\nvar content_opf_ejs_2 = __importDefault(require(\"../templates/epub3/content.opf.ejs\"));\nvar toc_xhtml_ejs_2 = __importDefault(require(\"../templates/epub3/toc.xhtml.ejs\"));\nvar template_css_1 = __importDefault(require(\"../templates/template.css\"));\nvar toc_ncx_ejs_1 = __importDefault(require(\"../templates/toc.ncx.ejs\"));\nvar uslug_1 = __importDefault(require(\"uslug\"));\nvar html_1 = require(\"./html\");\nvar validate_1 = require(\"./validate\");\nObject.defineProperty(exports, \"chapterPredicate\", { enumerable: true, get: function () { return validate_1.chapterPredicate; } });\nObject.defineProperty(exports, \"optionsPredicate\", { enumerable: true, get: function () { return validate_1.optionsPredicate; } });\n__exportStar(require(\"./html\"), exports);\n__exportStar(require(\"./other\"), exports);\nvar optionsDefaults = function (version) {\n if (version === void 0) { version = 3; }\n return ({\n description: '',\n author: ['anonymous'],\n publisher: 'anonymous',\n tocTitle: 'Table of Contents',\n tocInTOC: true,\n numberChaptersInTOC: true,\n prependChapterTitles: true,\n date: new Date().toISOString(),\n lang: \"en\",\n css: template_css_1.default,\n chapterXHTML: version === 2 ? chapter_xhtml_ejs_1.default : chapter_xhtml_ejs_2.default,\n contentOPF: version === 2 ? content_opf_ejs_1.default : content_opf_ejs_2.default,\n tocNCX: toc_ncx_ejs_1.default,\n tocXHTML: version === 2 ? toc_xhtml_ejs_1.default : toc_xhtml_ejs_2.default,\n fonts: [],\n version: version,\n fetchTimeout: 20000,\n retryTimes: 3,\n batchSize: 100,\n ignoreFailedDownloads: false,\n verbose: false,\n });\n};\nexports.optionsDefaults = optionsDefaults;\nvar chapterDefaults = function (index) { return ({\n title: \"Chapter \" + (index + 1),\n id: \"item_\" + index,\n url: '',\n excludeFromToc: false,\n beforeToc: false,\n}); };\nexports.chapterDefaults = chapterDefaults;\nvar normName = function (name) { return ow_1.default.isValid(name, ow_1.default.string) ? [name] : (name || []); };\nexports.normName = normName;\nvar validateAndNormalizeOptions = function (options) {\n (0, ow_1.default)(options, 'options', validate_1.optionsPredicate);\n // put defaults\n var opt = __assign(__assign({}, (0, exports.optionsDefaults)(options.version || 3)), options);\n opt.author = (0, exports.normName)(opt.author);\n opt.fonts = opt.fonts.map(function (font) { return (__assign(__assign({}, font), { mediaType: (0, mime_1.getType)(font.filename) })); });\n opt.date = new Date(opt.date).toISOString();\n opt.lang = (0, diacritics_1.remove)(opt.lang);\n return opt;\n};\nexports.validateAndNormalizeOptions = validateAndNormalizeOptions;\nfunction validateAndNormalizeChapters(chapters) {\n var _this = this;\n (0, ow_1.default)(chapters, 'content', ow_1.default.array.ofType(validate_1.chapterPredicate));\n var afterTOC = false;\n return chapters.map(function (chapter, index) {\n var ch = (0, exports.validateAndNormalizeChapter)(chapter, index);\n ch.content = html_1.normalizeHTML.call(_this, index, chapter.content);\n if (afterTOC && ch.beforeToc)\n _this.warn(\"Warning (content[\" + index + \"]): Got `beforeToc=true` after at least one `beforeToc=false`. Chapters will be out of order.\");\n if (!ch.beforeToc)\n afterTOC = true;\n return ch;\n });\n}\nexports.validateAndNormalizeChapters = validateAndNormalizeChapters;\nvar validateAndNormalizeChapter = function (chapter, index) {\n var ch = __assign(__assign({}, (0, exports.chapterDefaults)(index)), chapter);\n var slug = (0, uslug_1.default)((0, diacritics_1.remove)(ch.title));\n if (!ch.filename) {\n ch.filename = index + \"_\" + slug + \".xhtml\";\n }\n else if (!ch.filename.endsWith('.xhtml')) {\n ch.filename = ch.filename + \".xhtml\";\n }\n ch.author = (0, exports.normName)(ch.author);\n return ch;\n};\nexports.validateAndNormalizeChapter = validateAndNormalizeChapter;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.retryFetch = exports.uuid = void 0;\nvar fetchable_1 = __importDefault(require(\"./fetchable\"));\n__exportStar(require(\"./fetchable\"), exports);\nvar uuid = function () { return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\n .replace(/[xy]/g, function (c) {\n var r = Math.random() * 16 | 0;\n return (c === 'x' ? r : r & 0x3 | 0x8).toString(16);\n}); };\nexports.uuid = uuid;\nvar retryFetch = function (url, timeout, retry, log) { return __awaiter(void 0, void 0, void 0, function () {\n var i, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n i = 0;\n _b.label = 1;\n case 1:\n if (!(i < retry - 1)) return [3 /*break*/, 6];\n _b.label = 2;\n case 2:\n _b.trys.push([2, 4, , 5]);\n return [4 /*yield*/, (0, fetchable_1.default)(url, timeout)];\n case 3: return [2 /*return*/, _b.sent()];\n case 4:\n _a = _b.sent();\n log(\"Failed to fetch `\" + url + \"` \" + (i + 1) + \" \" + (i === 0 ? 'time' : 'times') + \". Retrying...\");\n return [3 /*break*/, 5];\n case 5:\n i++;\n return [3 /*break*/, 1];\n case 6: \n // last try, no catching\n return [2 /*return*/, (0, fetchable_1.default)(url, timeout)];\n }\n });\n}); };\nexports.retryFetch = retryFetch;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.optionsPredicate = exports.fontPredicate = exports.chapterPredicate = void 0;\nvar ow_1 = __importDefault(require(\"ow\"));\nvar name = ow_1.default.optional.any(ow_1.default.string, ow_1.default.array.ofType(ow_1.default.string), ow_1.default.undefined);\nvar filename = ow_1.default.optional.string.is(function (s) { return (s.indexOf('/') === -1 && s.indexOf('\\\\') === -1) || \"Filename must not include slashes, got `\" + s + \"`\"; });\nvar filenameReq = ow_1.default.string.is(function (s) { return (s.indexOf('/') === -1 && s.indexOf('\\\\') === -1) || \"Filename must not include slashes, got `\" + s + \"`\"; });\nexports.chapterPredicate = ow_1.default.object.partialShape({\n title: ow_1.default.optional.string,\n author: name,\n content: ow_1.default.string,\n excludeFromToc: ow_1.default.optional.boolean,\n beforeToc: ow_1.default.optional.boolean,\n filename: filename,\n url: ow_1.default.optional.string,\n});\nexports.fontPredicate = ow_1.default.object.partialShape({\n filename: filenameReq,\n url: ow_1.default.string,\n});\nexports.optionsPredicate = ow_1.default.object.partialShape({\n title: ow_1.default.string,\n author: name,\n publisher: ow_1.default.optional.string,\n description: ow_1.default.optional.string,\n cover: ow_1.default.optional.string,\n tocTitle: ow_1.default.optional.string,\n tocInTOC: ow_1.default.optional.boolean,\n numberChaptersInTOC: ow_1.default.optional.boolean,\n prependChapterTitles: ow_1.default.optional.boolean,\n date: ow_1.default.optional.string,\n lang: ow_1.default.optional.string,\n css: ow_1.default.optional.string,\n chapterXHTML: ow_1.default.optional.string,\n contentOPF: ow_1.default.optional.string,\n tocNCX: ow_1.default.optional.string,\n tocXHTML: ow_1.default.optional.string,\n fonts: ow_1.default.optional.any(ow_1.default.array.ofType(exports.fontPredicate), ow_1.default.undefined),\n version: ow_1.default.optional.number.is(function (x) { return x === 3 || x === 2 ||\n \"Expected version to be 3 or 2, got `\" + x + \"`\"; }),\n fetchTimeout: ow_1.default.optional.number.positive,\n retryTimes: ow_1.default.optional.number.positive,\n batchSize: ow_1.default.optional.number.positive,\n ignoreFailedDownloads: ow_1.default.optional.boolean,\n verbose: ow_1.default.optional.any(ow_1.default.boolean, ow_1.default.function),\n});\n","'use strict';\n\nmodule.exports = value => {\n\tconst type = typeof value;\n\treturn value !== null && (type === 'object' || type === 'function');\n};\n","/*!\n\nJSZip v3.7.1 - A JavaScript class for generating and reading zip files\n\n\n(c) 2009-2016 Stuart Knightley \nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n\n!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=t()}}(function(){return function s(a,o,h){function u(r,t){if(!o[r]){if(!a[r]){var e=\"function\"==typeof require&&require;if(!t&&e)return e(r,!0);if(l)return l(r,!0);var i=new Error(\"Cannot find module '\"+r+\"'\");throw i.code=\"MODULE_NOT_FOUND\",i}var n=o[r]={exports:{}};a[r][0].call(n.exports,function(t){var e=a[r][1][t];return u(e||t)},n,n.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,t=0;t>2,s=(3&e)<<4|r>>4,a=1>6:64,o=2>4,r=(15&n)<<4|(s=p.indexOf(t.charAt(o++)))>>2,i=(3&s)<<6|(a=p.indexOf(t.charAt(o++))),l[h++]=e,64!==s&&(l[h++]=r),64!==a&&(l[h++]=i);return l}},{\"./support\":30,\"./utils\":32}],2:[function(t,e,r){\"use strict\";var i=t(\"./external\"),n=t(\"./stream/DataWorker\"),s=t(\"./stream/Crc32Probe\"),a=t(\"./stream/DataLengthProbe\");function o(t,e,r,i,n){this.compressedSize=t,this.uncompressedSize=e,this.crc32=r,this.compression=i,this.compressedContent=n}o.prototype={getContentWorker:function(){var t=new n(i.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),e=this;return t.on(\"end\",function(){if(this.streamInfo.data_length!==e.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),t},getCompressedWorker:function(){return new n(i.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(t,e,r){return t.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(e.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",e)},e.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(t,e,r){\"use strict\";var i=t(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(t){return new i(\"STORE compression\")},uncompressWorker:function(){return new i(\"STORE decompression\")}},r.DEFLATE=t(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(t,e,r){\"use strict\";var i=t(\"./utils\");var o=function(){for(var t,e=[],r=0;r<256;r++){t=r;for(var i=0;i<8;i++)t=1&t?3988292384^t>>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e){return void 0!==t&&t.length?\"string\"!==i.getTypeOf(t)?function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}(0|e,t,t.length,0):function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e.charCodeAt(a))];return-1^t}(0|e,t,t.length,0):0}},{\"./utils\":32}],5:[function(t,e,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(t,e,r){\"use strict\";var i=null;i=\"undefined\"!=typeof Promise?Promise:t(\"lie\"),e.exports={Promise:i}},{lie:37}],7:[function(t,e,r){\"use strict\";var i=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,n=t(\"pako\"),s=t(\"./utils\"),a=t(\"./stream/GenericWorker\"),o=i?\"uint8array\":\"array\";function h(t,e){a.call(this,\"FlateWorker/\"+t),this._pako=null,this._pakoAction=t,this._pakoOptions=e,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(t){this.meta=t.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,t.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new n[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},r.compressWorker=function(t){return new h(\"Deflate\",t)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(t,e,r){\"use strict\";function A(t,e){var r,i=\"\";for(r=0;r>>=8;return i}function i(t,e,r,i,n,s){var a,o,h=t.file,u=t.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),d=I.transformTo(\"string\",O.utf8encode(h.name)),c=h.comment,p=I.transformTo(\"string\",s(c)),m=I.transformTo(\"string\",O.utf8encode(c)),_=d.length!==h.name.length,g=m.length!==c.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};e&&!r||(x.crc32=t.crc32,x.compressedSize=t.compressedSize,x.uncompressedSize=t.uncompressedSize);var S=0;e&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===n?(C=798,z|=function(t,e){var r=t;return t||(r=e?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(t){return 63&(t||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+d,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(i,4)+f+b+p}}var I=t(\"../utils\"),n=t(\"../stream/GenericWorker\"),O=t(\"../utf8\"),B=t(\"../crc32\"),R=t(\"../signature\");function s(t,e,r,i){n.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=e,this.zipPlatform=r,this.encodeFileName=i,this.streamFiles=t,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,n),s.prototype.push=function(t){var e=t.meta.percent||0,r=this.entriesCount,i=this._sources.length;this.accumulate?this.contentBuffer.push(t):(this.bytesWritten+=t.data.length,n.prototype.push.call(this,{data:t.data,meta:{currentFile:this.currentFile,percent:r?(e+100*(r-i-1))/r:100}}))},s.prototype.openedSource=function(t){this.currentSourceOffset=this.bytesWritten,this.currentFile=t.file.name;var e=this.streamFiles&&!t.file.dir;if(e){var r=i(t,e,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(t){this.accumulate=!1;var e=this.streamFiles&&!t.file.dir,r=i(t,e,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),e)this.push({data:function(t){return R.DATA_DESCRIPTOR+A(t.crc32,4)+A(t.compressedSize,4)+A(t.uncompressedSize,4)}(t),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var t=this.bytesWritten,e=0;e=this.index;e--)r=(r<<8)+this.byteAt(e);return this.index+=t,r},readString:function(t){return i.transformTo(\"string\",this.readData(t))},readData:function(t){},lastIndexOfSignature:function(t){},readAndCheckSignature:function(t){},readDate:function(){var t=this.readInt(4);return new Date(Date.UTC(1980+(t>>25&127),(t>>21&15)-1,t>>16&31,t>>11&31,t>>5&63,(31&t)<<1))}},e.exports=n},{\"../utils\":32}],19:[function(t,e,r){\"use strict\";var i=t(\"./Uint8ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(t,e,r){\"use strict\";var i=t(\"./DataReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.byteAt=function(t){return this.data.charCodeAt(this.zero+t)},n.prototype.lastIndexOfSignature=function(t){return this.data.lastIndexOf(t)-this.zero},n.prototype.readAndCheckSignature=function(t){return t===this.readData(4)},n.prototype.readData=function(t){this.checkOffset(t);var e=this.data.slice(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./DataReader\":18}],21:[function(t,e,r){\"use strict\";var i=t(\"./ArrayReader\");function n(t){i.call(this,t)}t(\"../utils\").inherits(n,i),n.prototype.readData=function(t){if(this.checkOffset(t),0===t)return new Uint8Array(0);var e=this.data.subarray(this.zero+this.index,this.zero+this.index+t);return this.index+=t,e},e.exports=n},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"../support\"),s=t(\"./ArrayReader\"),a=t(\"./StringReader\"),o=t(\"./NodeBufferReader\"),h=t(\"./Uint8ArrayReader\");e.exports=function(t){var e=i.getTypeOf(t);return i.checkSupport(e),\"string\"!==e||n.uint8array?\"nodebuffer\"===e?new o(t):n.uint8array?new h(i.transformTo(\"uint8array\",t)):new s(i.transformTo(\"array\",t)):new a(t)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(t,e,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../utils\");function s(t){i.call(this,\"ConvertWorker to \"+t),this.destType=t}n.inherits(s,i),s.prototype.processChunk=function(t){this.push({data:n.transformTo(this.destType,t.data),meta:t.meta})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(t,e,r){\"use strict\";var i=t(\"./GenericWorker\"),n=t(\"../crc32\");function s(){i.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}t(\"../utils\").inherits(s,i),s.prototype.processChunk=function(t){this.streamInfo.crc32=n(t.data,this.streamInfo.crc32||0),this.push(t)},e.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataLengthProbe for \"+t),this.propName=t,this.withStreamInfo(t,0)}i.inherits(s,n),s.prototype.processChunk=function(t){if(t){var e=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=e+t.data.length}n.prototype.processChunk.call(this,t)},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(t,e,r){\"use strict\";var i=t(\"../utils\"),n=t(\"./GenericWorker\");function s(t){n.call(this,\"DataWorker\");var e=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,t.then(function(t){e.dataIsReady=!0,e.data=t,e.max=t&&t.length||0,e.type=i.getTypeOf(t),e.isPaused||e._tickAndRepeat()},function(t){e.error(t)})}i.inherits(s,n),s.prototype.cleanUp=function(){n.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!n.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,i.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(i.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var t=null,e=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":t=this.data.substring(this.index,e);break;case\"uint8array\":t=this.data.subarray(this.index,e);break;case\"array\":case\"nodebuffer\":t=this.data.slice(this.index,e)}return this.index=e,this.push({data:t,meta:{percent:this.max?this.index/this.max*100:0}})},e.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(t,e,r){\"use strict\";function i(t){this.name=t||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}i.prototype={push:function(t){this.emit(\"data\",t)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(t){this.emit(\"error\",t)}return!0},error:function(t){return!this.isFinished&&(this.isPaused?this.generatedError=t:(this.isFinished=!0,this.emit(\"error\",t),this.previous&&this.previous.error(t),this.cleanUp()),!0)},on:function(t,e){return this._listeners[t].push(e),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(t,e){if(this._listeners[t])for(var r=0;r \"+t:t}},e.exports=i},{}],29:[function(t,e,r){\"use strict\";var h=t(\"../utils\"),n=t(\"./ConvertWorker\"),s=t(\"./GenericWorker\"),u=t(\"../base64\"),i=t(\"../support\"),a=t(\"../external\"),o=null;if(i.nodestream)try{o=t(\"../nodejs/NodejsStreamOutputAdapter\")}catch(t){}function l(t,o){return new a.Promise(function(e,r){var i=[],n=t._internalType,s=t._outputType,a=t._mimeType;t.on(\"data\",function(t,e){i.push(t),o&&o(e)}).on(\"error\",function(t){i=[],r(t)}).on(\"end\",function(){try{var t=function(t,e,r){switch(t){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",e),r);case\"base64\":return u.encode(e);default:return h.transformTo(t,e)}}(s,function(t,e){var r,i=0,n=null,s=0;for(r=0;r>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e}(t)},s.utf8decode=function(t){return h.nodebuffer?o.transformTo(\"nodebuffer\",t).toString(\"utf-8\"):function(t){var e,r,i,n,s=t.length,a=new Array(2*s);for(e=r=0;e>10&1023,a[r++]=56320|1023&i)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(t=o.transformTo(h.uint8array?\"uint8array\":\"array\",t))},o.inherits(a,i),a.prototype.processChunk=function(t){var e=o.transformTo(h.uint8array?\"uint8array\":\"array\",t.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=e;(e=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),e.set(r,this.leftOver.length)}else e=this.leftOver.concat(e);this.leftOver=null}var i=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}(e),n=e;i!==e.length&&(h.uint8array?(n=e.subarray(0,i),this.leftOver=e.subarray(i,e.length)):(n=e.slice(0,i),this.leftOver=e.slice(i,e.length))),this.push({data:s.utf8decode(n),meta:t.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,i),l.prototype.processChunk=function(t){this.push({data:s.utf8encode(t.data),meta:t.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(t,e,a){\"use strict\";var o=t(\"./support\"),h=t(\"./base64\"),r=t(\"./nodejsUtils\"),i=t(\"set-immediate-shim\"),u=t(\"./external\");function n(t){return t}function l(t,e){for(var r=0;r>8;this.dir=!!(16&this.externalFileAttributes),0==t&&(this.dosPermissions=63&this.externalFileAttributes),3==t&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(t){if(this.extraFields[1]){var e=i(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(t){var e,r,i,n=t.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});t.index+4>>6:(r<65536?e[s++]=224|r>>>12:(e[s++]=240|r>>>18,e[s++]=128|r>>>12&63),e[s++]=128|r>>>6&63),e[s++]=128|63&r);return e},r.buf2binstring=function(t){return l(t,t.length)},r.binstring2buf=function(t){for(var e=new h.Buf8(t.length),r=0,i=e.length;r>10&1023,o[i++]=56320|1023&n)}return l(o,i)},r.utf8border=function(t,e){var r;for((e=e||t.length)>t.length&&(e=t.length),r=e-1;0<=r&&128==(192&t[r]);)r--;return r<0?e:0===r?e:r+u[t[r]]>e?r:e}},{\"./common\":41}],43:[function(t,e,r){\"use strict\";e.exports=function(t,e,r,i){for(var n=65535&t|0,s=t>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3>>1:t>>>1;e[r]=t}return e}();e.exports=function(t,e,r,i){var n=o,s=i+r;t^=-1;for(var a=i;a>>8^n[255&(t^e[a])];return-1^t}},{}],46:[function(t,e,r){\"use strict\";var h,d=t(\"../utils/common\"),u=t(\"./trees\"),c=t(\"./adler32\"),p=t(\"./crc32\"),i=t(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,n=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(t,e){return t.msg=i[e],e}function T(t){return(t<<1)-(4t.avail_out&&(r=t.avail_out),0!==r&&(d.arraySet(t.output,e.pending_buf,e.pending_out,r,t.next_out),t.next_out+=r,e.pending_out+=r,t.total_out+=r,t.avail_out-=r,e.pending-=r,0===e.pending&&(e.pending_out=0))}function N(t,e){u._tr_flush_block(t,0<=t.block_start?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,F(t.strm)}function U(t,e){t.pending_buf[t.pending++]=e}function P(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function L(t,e){var r,i,n=t.max_chain_length,s=t.strstart,a=t.prev_length,o=t.nice_match,h=t.strstart>t.w_size-z?t.strstart-(t.w_size-z):0,u=t.window,l=t.w_mask,f=t.prev,d=t.strstart+S,c=u[s+a-1],p=u[s+a];t.prev_length>=t.good_match&&(n>>=2),o>t.lookahead&&(o=t.lookahead);do{if(u[(r=e)+a]===p&&u[r+a-1]===c&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&sh&&0!=--n);return a<=t.lookahead?a:t.lookahead}function j(t){var e,r,i,n,s,a,o,h,u,l,f=t.w_size;do{if(n=t.window_size-t.lookahead-t.strstart,t.strstart>=f+(f-z)){for(d.arraySet(t.window,t.window,f,f,0),t.match_start-=f,t.strstart-=f,t.block_start-=f,e=r=t.hash_size;i=t.head[--e],t.head[e]=f<=i?i-f:0,--r;);for(e=r=f;i=t.prev[--e],t.prev[e]=f<=i?i-f:0,--r;);n+=f}if(0===t.strm.avail_in)break;if(a=t.strm,o=t.window,h=t.strstart+t.lookahead,u=n,l=void 0,l=a.avail_in,u=x)for(s=t.strstart-t.insert,t.ins_h=t.window[s],t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x)if(i=u._tr_tally(t,t.strstart-t.match_start,t.match_length-x),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=x){for(t.match_length--;t.strstart++,t.ins_h=(t.ins_h<=x&&(t.ins_h=(t.ins_h<=x&&t.match_length<=t.prev_length){for(n=t.strstart+t.lookahead-x,i=u._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-x),t.lookahead-=t.prev_length-1,t.prev_length-=2;++t.strstart<=n&&(t.ins_h=(t.ins_h<t.pending_buf_size-5&&(r=t.pending_buf_size-5);;){if(t.lookahead<=1){if(j(t),0===t.lookahead&&e===l)return A;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var i=t.block_start+r;if((0===t.strstart||t.strstart>=i)&&(t.lookahead=t.strstart-i,t.strstart=i,N(t,!1),0===t.strm.avail_out))return A;if(t.strstart-t.block_start>=t.w_size-z&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):(t.strstart>t.block_start&&(N(t,!1),t.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(t,e){return Y(t,e,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(t,e){return t&&t.state?2!==t.state.wrap?_:(t.state.gzhead=e,m):_},r.deflate=function(t,e){var r,i,n,s;if(!t||!t.state||5>8&255),U(i,i.gzhead.time>>16&255),U(i,i.gzhead.time>>24&255),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,255&i.gzhead.os),i.gzhead.extra&&i.gzhead.extra.length&&(U(i,255&i.gzhead.extra.length),U(i,i.gzhead.extra.length>>8&255)),i.gzhead.hcrc&&(t.adler=p(t.adler,i.pending_buf,i.pending,0)),i.gzindex=0,i.status=69):(U(i,0),U(i,0),U(i,0),U(i,0),U(i,0),U(i,9===i.level?2:2<=i.strategy||i.level<2?4:0),U(i,3),i.status=E);else{var a=v+(i.w_bits-8<<4)<<8;a|=(2<=i.strategy||i.level<2?0:i.level<6?1:6===i.level?2:3)<<6,0!==i.strstart&&(a|=32),a+=31-a%31,i.status=E,P(i,a),0!==i.strstart&&(P(i,t.adler>>>16),P(i,65535&t.adler)),t.adler=1}if(69===i.status)if(i.gzhead.extra){for(n=i.pending;i.gzindex<(65535&i.gzhead.extra.length)&&(i.pending!==i.pending_buf_size||(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending!==i.pending_buf_size));)U(i,255&i.gzhead.extra[i.gzindex]),i.gzindex++;i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),i.gzindex===i.gzhead.extra.length&&(i.gzindex=0,i.status=73)}else i.status=73;if(73===i.status)if(i.gzhead.name){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.gzindex=0,i.status=91)}else i.status=91;if(91===i.status)if(i.gzhead.comment){n=i.pending;do{if(i.pending===i.pending_buf_size&&(i.gzhead.hcrc&&i.pending>n&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),F(t),n=i.pending,i.pending===i.pending_buf_size)){s=1;break}s=i.gzindexn&&(t.adler=p(t.adler,i.pending_buf,i.pending-n,n)),0===s&&(i.status=103)}else i.status=103;if(103===i.status&&(i.gzhead.hcrc?(i.pending+2>i.pending_buf_size&&F(t),i.pending+2<=i.pending_buf_size&&(U(i,255&t.adler),U(i,t.adler>>8&255),t.adler=0,i.status=E)):i.status=E),0!==i.pending){if(F(t),0===t.avail_out)return i.last_flush=-1,m}else if(0===t.avail_in&&T(e)<=T(r)&&e!==f)return R(t,-5);if(666===i.status&&0!==t.avail_in)return R(t,-5);if(0!==t.avail_in||0!==i.lookahead||e!==l&&666!==i.status){var o=2===i.strategy?function(t,e){for(var r;;){if(0===t.lookahead&&(j(t),0===t.lookahead)){if(e===l)return A;break}if(t.match_length=0,r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):3===i.strategy?function(t,e){for(var r,i,n,s,a=t.window;;){if(t.lookahead<=S){if(j(t),t.lookahead<=S&&e===l)return A;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=x&&0t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=x?(r=u._tr_tally(t,1,t.match_length-x),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(r=u._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),r&&(N(t,!1),0===t.strm.avail_out))return A}return t.insert=0,e===f?(N(t,!0),0===t.strm.avail_out?O:B):t.last_lit&&(N(t,!1),0===t.strm.avail_out)?A:I}(i,e):h[i.level].func(i,e);if(o!==O&&o!==B||(i.status=666),o===A||o===O)return 0===t.avail_out&&(i.last_flush=-1),m;if(o===I&&(1===e?u._tr_align(i):5!==e&&(u._tr_stored_block(i,0,0,!1),3===e&&(D(i.head),0===i.lookahead&&(i.strstart=0,i.block_start=0,i.insert=0))),F(t),0===t.avail_out))return i.last_flush=-1,m}return e!==f?m:i.wrap<=0?1:(2===i.wrap?(U(i,255&t.adler),U(i,t.adler>>8&255),U(i,t.adler>>16&255),U(i,t.adler>>24&255),U(i,255&t.total_in),U(i,t.total_in>>8&255),U(i,t.total_in>>16&255),U(i,t.total_in>>24&255)):(P(i,t.adler>>>16),P(i,65535&t.adler)),F(t),0=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new d.Buf8(r.w_size),d.arraySet(u,e,l-r.w_size,r.w_size,0),e=u,l=r.w_size),a=t.avail_in,o=t.next_in,h=t.input,t.avail_in=l,t.next_in=0,t.input=e,j(r);r.lookahead>=x;){for(i=r.strstart,n=r.lookahead-(x-1);r.ins_h=(r.ins_h<>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(c&(1<>>=y,p-=y),p<15&&(c+=z[i++]<>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(c&(1<>>=y,p-=y,(y=s-a)>3,c&=(1<<(p-=w<<3))-1,t.next_in=i,t.next_out=s,t.avail_in=i>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg=\"\",e.wrap&&(t.adler=1&e.wrap),e.mode=P,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new I.Buf32(i),e.distcode=e.distdyn=new I.Buf32(n),e.sane=1,e.back=-1,N):U}function o(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,a(t)):U}function h(t,e){var r,i;return t&&t.state?(i=t.state,e<0?(r=0,e=-e):(r=1+(e>>4),e<48&&(e&=15)),e&&(e<8||15=s.wsize?(I.arraySet(s.window,e,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(i<(n=s.wsize-s.wnext)&&(n=i),I.arraySet(s.window,e,r-i,n,s.wnext),(i-=n)?(I.arraySet(s.window,e,r-i,i,0),s.wnext=i,s.whave=s.wsize):(s.wnext+=n,s.wnext===s.wsize&&(s.wnext=0),s.whave>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){t.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){t.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){t.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break t;o--,u+=i[s++]<>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(c=r.length)&&(c=o),c&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,i,s,c,k)),512&r.flags&&(r.check=B(r.check,i,c,s)),o-=c,s+=c,r.length-=c),r.length))break t;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break t;for(c=0;k=i[s+c++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&c>9&1,r.head.done=!0),t.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break t;o--,u+=i[s++]<>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break t;o--,u+=i[s++]<>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==e)break;u>>>=2,l-=2;break t;case 2:r.mode=17;break;case 3:t.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break t;o--,u+=i[s++]<>>16^65535)){t.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===e)break t;case 15:r.mode=16;case 16:if(c=r.length){if(o>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l>>=_,l-=_,0===r.have){t.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],c=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l>>=_)),u>>>=3,l-=3}else{for(z=_+7;l>>=_)),u>>>=7,l-=7}if(r.have+c>r.nlen+r.ndist){t.msg=\"invalid bit length repeat\",r.mode=30;break}for(;c--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){t.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){t.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){t.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===e)break t;case 20:r.mode=21;case 21:if(6<=o&&258<=h){t.next_out=a,t.avail_out=h,t.next_in=s,t.avail_in=o,r.hold=u,r.bits=l,R(t,d),a=t.next_out,n=t.output,h=t.avail_out,s=t.next_in,i=t.input,o=t.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){t.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break t;o--,u+=i[s++]<>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){t.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){t.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break t;if(c=d-h,r.offset>c){if((c=r.offset-c)>r.whave&&r.sane){t.msg=\"invalid distance too far back\",r.mode=30;break}p=c>r.wnext?(c-=r.wnext,r.wsize-c):r.wnext-c,c>r.length&&(c=r.length),m=r.window}else m=n,p=a-r.offset,c=r.length;for(hc?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=e[r+a[v]]}if(k>>7)]}function U(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function P(t,e,r){t.bi_valid>c-r?(t.bi_buf|=e<>c-t.bi_valid,t.bi_valid+=r-c):(t.bi_buf|=e<>>=1,r<<=1,0<--e;);return r>>>1}function Z(t,e,r){var i,n,s=new Array(g+1),a=0;for(i=1;i<=g;i++)s[i]=a=a+r[i-1]<<1;for(n=0;n<=e;n++){var o=t[2*n+1];0!==o&&(t[2*n]=j(s[o]++,o))}}function W(t){var e;for(e=0;e>1;1<=r;r--)G(t,s,r);for(n=h;r=t.heap[1],t.heap[1]=t.heap[t.heap_len--],G(t,s,1),i=t.heap[1],t.heap[--t.heap_max]=r,t.heap[--t.heap_max]=i,s[2*n]=s[2*r]+s[2*i],t.depth[n]=(t.depth[r]>=t.depth[i]?t.depth[r]:t.depth[i])+1,s[2*r+1]=s[2*i+1]=n,t.heap[1]=n++,G(t,s,1),2<=t.heap_len;);t.heap[--t.heap_max]=t.heap[1],function(t,e){var r,i,n,s,a,o,h=e.dyn_tree,u=e.max_code,l=e.stat_desc.static_tree,f=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,p=e.stat_desc.max_length,m=0;for(s=0;s<=g;s++)t.bl_count[s]=0;for(h[2*t.heap[t.heap_max]+1]=0,r=t.heap_max+1;r<_;r++)p<(s=h[2*h[2*(i=t.heap[r])+1]+1]+1)&&(s=p,m++),h[2*i+1]=s,u>=7;i>>=1)if(1&r&&0!==t.dyn_ltree[2*e])return o;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return h;for(e=32;e>>3,(s=t.static_len+3+7>>>3)<=n&&(n=s)):n=s=r+5,r+4<=n&&-1!==e?J(t,e,r,i):4===t.strategy||s===n?(P(t,2+(i?1:0),3),K(t,z,C)):(P(t,4+(i?1:0),3),function(t,e,r,i){var n;for(P(t,e-257,5),P(t,r-1,5),P(t,i-4,4),n=0;n>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&r,t.last_lit++,0===e?t.dyn_ltree[2*r]++:(t.matches++,e--,t.dyn_ltree[2*(A[r]+u+1)]++,t.dyn_dtree[2*N(e)]++),t.last_lit===t.lit_bufsize-1},r._tr_align=function(t){P(t,2,3),L(t,m,z),function(t){16===t.bi_valid?(U(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):8<=t.bi_valid&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}},{\"../utils/common\":41}],53:[function(t,e,r){\"use strict\";e.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(t,e,r){\"use strict\";e.exports=\"function\"==typeof setImmediate?setImmediate:function(){var t=[].slice.apply(arguments);t.splice(1,0,0),setTimeout.apply(null,t)}},{}]},{},[10])(10)});","/**\n * Lodash (Custom Build) \n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright JS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used to compose bitmasks for value comparisons. */\nvar COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\nfunction arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\n/**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction cacheHas(cache, key) {\n return cache.has(key);\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\nfunction SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n}\n\n/**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\nfunction setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n}\n\n/**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\nfunction setCacheHas(value) {\n return this.__data__.has(value);\n}\n\n// Add methods to `SetCache`.\nSetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\nSetCache.prototype.has = setCacheHas;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\n/**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\nfunction baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n}\n\n/**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\nfunction equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(array);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n}\n\n/**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked && stack.get(other)) {\n return stacked == other;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\nfunction isEqual(value, other) {\n return baseIsEqual(value, other);\n}\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = isEqual;\n","'use strict';\n\n/**\n * @param typeMap [Object] Map of MIME type -> Array[extensions]\n * @param ...\n */\nfunction Mime() {\n this._types = Object.create(null);\n this._extensions = Object.create(null);\n\n for (let i = 0; i < arguments.length; i++) {\n this.define(arguments[i]);\n }\n\n this.define = this.define.bind(this);\n this.getType = this.getType.bind(this);\n this.getExtension = this.getExtension.bind(this);\n}\n\n/**\n * Define mimetype -> extension mappings. Each key is a mime-type that maps\n * to an array of extensions associated with the type. The first extension is\n * used as the default extension for the type.\n *\n * e.g. mime.define({'audio/ogg', ['oga', 'ogg', 'spx']});\n *\n * If a type declares an extension that has already been defined, an error will\n * be thrown. To suppress this error and force the extension to be associated\n * with the new type, pass `force`=true. Alternatively, you may prefix the\n * extension with \"*\" to map the type to extension, without mapping the\n * extension to the type.\n *\n * e.g. mime.define({'audio/wav', ['wav']}, {'audio/x-wav', ['*wav']});\n *\n *\n * @param map (Object) type definitions\n * @param force (Boolean) if true, force overriding of existing definitions\n */\nMime.prototype.define = function(typeMap, force) {\n for (let type in typeMap) {\n let extensions = typeMap[type].map(function(t) {\n return t.toLowerCase();\n });\n type = type.toLowerCase();\n\n for (let i = 0; i < extensions.length; i++) {\n const ext = extensions[i];\n\n // '*' prefix = not the preferred type for this extension. So fixup the\n // extension, and skip it.\n if (ext[0] === '*') {\n continue;\n }\n\n if (!force && (ext in this._types)) {\n throw new Error(\n 'Attempt to change mapping for \"' + ext +\n '\" extension from \"' + this._types[ext] + '\" to \"' + type +\n '\". Pass `force=true` to allow this, otherwise remove \"' + ext +\n '\" from the list of extensions for \"' + type + '\".'\n );\n }\n\n this._types[ext] = type;\n }\n\n // Use first extension as default\n if (force || !this._extensions[type]) {\n const ext = extensions[0];\n this._extensions[type] = (ext[0] !== '*') ? ext : ext.substr(1);\n }\n }\n};\n\n/**\n * Lookup a mime type based on extension\n */\nMime.prototype.getType = function(path) {\n path = String(path);\n let last = path.replace(/^.*[/\\\\]/, '').toLowerCase();\n let ext = last.replace(/^.*\\./, '').toLowerCase();\n\n let hasPath = last.length < path.length;\n let hasDot = ext.length < last.length - 1;\n\n return (hasDot || !hasPath) && this._types[ext] || null;\n};\n\n/**\n * Return file extension associated with a mime type\n */\nMime.prototype.getExtension = function(type) {\n type = /^\\s*([^;\\s]*)/.test(type) && RegExp.$1;\n return type && this._extensions[type.toLowerCase()] || null;\n};\n\nmodule.exports = Mime;\n","'use strict';\n\nlet Mime = require('./Mime');\nmodule.exports = new Mime(require('./types/standard'), require('./types/other'));\n","module.exports = {\"application/prs.cww\":[\"cww\"],\"application/vnd.1000minds.decision-model+xml\":[\"1km\"],\"application/vnd.3gpp.pic-bw-large\":[\"plb\"],\"application/vnd.3gpp.pic-bw-small\":[\"psb\"],\"application/vnd.3gpp.pic-bw-var\":[\"pvb\"],\"application/vnd.3gpp2.tcap\":[\"tcap\"],\"application/vnd.3m.post-it-notes\":[\"pwn\"],\"application/vnd.accpac.simply.aso\":[\"aso\"],\"application/vnd.accpac.simply.imp\":[\"imp\"],\"application/vnd.acucobol\":[\"acu\"],\"application/vnd.acucorp\":[\"atc\",\"acutc\"],\"application/vnd.adobe.air-application-installer-package+zip\":[\"air\"],\"application/vnd.adobe.formscentral.fcdt\":[\"fcdt\"],\"application/vnd.adobe.fxp\":[\"fxp\",\"fxpl\"],\"application/vnd.adobe.xdp+xml\":[\"xdp\"],\"application/vnd.adobe.xfdf\":[\"xfdf\"],\"application/vnd.ahead.space\":[\"ahead\"],\"application/vnd.airzip.filesecure.azf\":[\"azf\"],\"application/vnd.airzip.filesecure.azs\":[\"azs\"],\"application/vnd.amazon.ebook\":[\"azw\"],\"application/vnd.americandynamics.acc\":[\"acc\"],\"application/vnd.amiga.ami\":[\"ami\"],\"application/vnd.android.package-archive\":[\"apk\"],\"application/vnd.anser-web-certificate-issue-initiation\":[\"cii\"],\"application/vnd.anser-web-funds-transfer-initiation\":[\"fti\"],\"application/vnd.antix.game-component\":[\"atx\"],\"application/vnd.apple.installer+xml\":[\"mpkg\"],\"application/vnd.apple.keynote\":[\"key\"],\"application/vnd.apple.mpegurl\":[\"m3u8\"],\"application/vnd.apple.numbers\":[\"numbers\"],\"application/vnd.apple.pages\":[\"pages\"],\"application/vnd.apple.pkpass\":[\"pkpass\"],\"application/vnd.aristanetworks.swi\":[\"swi\"],\"application/vnd.astraea-software.iota\":[\"iota\"],\"application/vnd.audiograph\":[\"aep\"],\"application/vnd.balsamiq.bmml+xml\":[\"bmml\"],\"application/vnd.blueice.multipass\":[\"mpm\"],\"application/vnd.bmi\":[\"bmi\"],\"application/vnd.businessobjects\":[\"rep\"],\"application/vnd.chemdraw+xml\":[\"cdxml\"],\"application/vnd.chipnuts.karaoke-mmd\":[\"mmd\"],\"application/vnd.cinderella\":[\"cdy\"],\"application/vnd.citationstyles.style+xml\":[\"csl\"],\"application/vnd.claymore\":[\"cla\"],\"application/vnd.cloanto.rp9\":[\"rp9\"],\"application/vnd.clonk.c4group\":[\"c4g\",\"c4d\",\"c4f\",\"c4p\",\"c4u\"],\"application/vnd.cluetrust.cartomobile-config\":[\"c11amc\"],\"application/vnd.cluetrust.cartomobile-config-pkg\":[\"c11amz\"],\"application/vnd.commonspace\":[\"csp\"],\"application/vnd.contact.cmsg\":[\"cdbcmsg\"],\"application/vnd.cosmocaller\":[\"cmc\"],\"application/vnd.crick.clicker\":[\"clkx\"],\"application/vnd.crick.clicker.keyboard\":[\"clkk\"],\"application/vnd.crick.clicker.palette\":[\"clkp\"],\"application/vnd.crick.clicker.template\":[\"clkt\"],\"application/vnd.crick.clicker.wordbank\":[\"clkw\"],\"application/vnd.criticaltools.wbs+xml\":[\"wbs\"],\"application/vnd.ctc-posml\":[\"pml\"],\"application/vnd.cups-ppd\":[\"ppd\"],\"application/vnd.curl.car\":[\"car\"],\"application/vnd.curl.pcurl\":[\"pcurl\"],\"application/vnd.dart\":[\"dart\"],\"application/vnd.data-vision.rdz\":[\"rdz\"],\"application/vnd.dbf\":[\"dbf\"],\"application/vnd.dece.data\":[\"uvf\",\"uvvf\",\"uvd\",\"uvvd\"],\"application/vnd.dece.ttml+xml\":[\"uvt\",\"uvvt\"],\"application/vnd.dece.unspecified\":[\"uvx\",\"uvvx\"],\"application/vnd.dece.zip\":[\"uvz\",\"uvvz\"],\"application/vnd.denovo.fcselayout-link\":[\"fe_launch\"],\"application/vnd.dna\":[\"dna\"],\"application/vnd.dolby.mlp\":[\"mlp\"],\"application/vnd.dpgraph\":[\"dpg\"],\"application/vnd.dreamfactory\":[\"dfac\"],\"application/vnd.ds-keypoint\":[\"kpxx\"],\"application/vnd.dvb.ait\":[\"ait\"],\"application/vnd.dvb.service\":[\"svc\"],\"application/vnd.dynageo\":[\"geo\"],\"application/vnd.ecowin.chart\":[\"mag\"],\"application/vnd.enliven\":[\"nml\"],\"application/vnd.epson.esf\":[\"esf\"],\"application/vnd.epson.msf\":[\"msf\"],\"application/vnd.epson.quickanime\":[\"qam\"],\"application/vnd.epson.salt\":[\"slt\"],\"application/vnd.epson.ssf\":[\"ssf\"],\"application/vnd.eszigno3+xml\":[\"es3\",\"et3\"],\"application/vnd.ezpix-album\":[\"ez2\"],\"application/vnd.ezpix-package\":[\"ez3\"],\"application/vnd.fdf\":[\"fdf\"],\"application/vnd.fdsn.mseed\":[\"mseed\"],\"application/vnd.fdsn.seed\":[\"seed\",\"dataless\"],\"application/vnd.flographit\":[\"gph\"],\"application/vnd.fluxtime.clip\":[\"ftc\"],\"application/vnd.framemaker\":[\"fm\",\"frame\",\"maker\",\"book\"],\"application/vnd.frogans.fnc\":[\"fnc\"],\"application/vnd.frogans.ltf\":[\"ltf\"],\"application/vnd.fsc.weblaunch\":[\"fsc\"],\"application/vnd.fujitsu.oasys\":[\"oas\"],\"application/vnd.fujitsu.oasys2\":[\"oa2\"],\"application/vnd.fujitsu.oasys3\":[\"oa3\"],\"application/vnd.fujitsu.oasysgp\":[\"fg5\"],\"application/vnd.fujitsu.oasysprs\":[\"bh2\"],\"application/vnd.fujixerox.ddd\":[\"ddd\"],\"application/vnd.fujixerox.docuworks\":[\"xdw\"],\"application/vnd.fujixerox.docuworks.binder\":[\"xbd\"],\"application/vnd.fuzzysheet\":[\"fzs\"],\"application/vnd.genomatix.tuxedo\":[\"txd\"],\"application/vnd.geogebra.file\":[\"ggb\"],\"application/vnd.geogebra.tool\":[\"ggt\"],\"application/vnd.geometry-explorer\":[\"gex\",\"gre\"],\"application/vnd.geonext\":[\"gxt\"],\"application/vnd.geoplan\":[\"g2w\"],\"application/vnd.geospace\":[\"g3w\"],\"application/vnd.gmx\":[\"gmx\"],\"application/vnd.google-apps.document\":[\"gdoc\"],\"application/vnd.google-apps.presentation\":[\"gslides\"],\"application/vnd.google-apps.spreadsheet\":[\"gsheet\"],\"application/vnd.google-earth.kml+xml\":[\"kml\"],\"application/vnd.google-earth.kmz\":[\"kmz\"],\"application/vnd.grafeq\":[\"gqf\",\"gqs\"],\"application/vnd.groove-account\":[\"gac\"],\"application/vnd.groove-help\":[\"ghf\"],\"application/vnd.groove-identity-message\":[\"gim\"],\"application/vnd.groove-injector\":[\"grv\"],\"application/vnd.groove-tool-message\":[\"gtm\"],\"application/vnd.groove-tool-template\":[\"tpl\"],\"application/vnd.groove-vcard\":[\"vcg\"],\"application/vnd.hal+xml\":[\"hal\"],\"application/vnd.handheld-entertainment+xml\":[\"zmm\"],\"application/vnd.hbci\":[\"hbci\"],\"application/vnd.hhe.lesson-player\":[\"les\"],\"application/vnd.hp-hpgl\":[\"hpgl\"],\"application/vnd.hp-hpid\":[\"hpid\"],\"application/vnd.hp-hps\":[\"hps\"],\"application/vnd.hp-jlyt\":[\"jlt\"],\"application/vnd.hp-pcl\":[\"pcl\"],\"application/vnd.hp-pclxl\":[\"pclxl\"],\"application/vnd.hydrostatix.sof-data\":[\"sfd-hdstx\"],\"application/vnd.ibm.minipay\":[\"mpy\"],\"application/vnd.ibm.modcap\":[\"afp\",\"listafp\",\"list3820\"],\"application/vnd.ibm.rights-management\":[\"irm\"],\"application/vnd.ibm.secure-container\":[\"sc\"],\"application/vnd.iccprofile\":[\"icc\",\"icm\"],\"application/vnd.igloader\":[\"igl\"],\"application/vnd.immervision-ivp\":[\"ivp\"],\"application/vnd.immervision-ivu\":[\"ivu\"],\"application/vnd.insors.igm\":[\"igm\"],\"application/vnd.intercon.formnet\":[\"xpw\",\"xpx\"],\"application/vnd.intergeo\":[\"i2g\"],\"application/vnd.intu.qbo\":[\"qbo\"],\"application/vnd.intu.qfx\":[\"qfx\"],\"application/vnd.ipunplugged.rcprofile\":[\"rcprofile\"],\"application/vnd.irepository.package+xml\":[\"irp\"],\"application/vnd.is-xpr\":[\"xpr\"],\"application/vnd.isac.fcs\":[\"fcs\"],\"application/vnd.jam\":[\"jam\"],\"application/vnd.jcp.javame.midlet-rms\":[\"rms\"],\"application/vnd.jisp\":[\"jisp\"],\"application/vnd.joost.joda-archive\":[\"joda\"],\"application/vnd.kahootz\":[\"ktz\",\"ktr\"],\"application/vnd.kde.karbon\":[\"karbon\"],\"application/vnd.kde.kchart\":[\"chrt\"],\"application/vnd.kde.kformula\":[\"kfo\"],\"application/vnd.kde.kivio\":[\"flw\"],\"application/vnd.kde.kontour\":[\"kon\"],\"application/vnd.kde.kpresenter\":[\"kpr\",\"kpt\"],\"application/vnd.kde.kspread\":[\"ksp\"],\"application/vnd.kde.kword\":[\"kwd\",\"kwt\"],\"application/vnd.kenameaapp\":[\"htke\"],\"application/vnd.kidspiration\":[\"kia\"],\"application/vnd.kinar\":[\"kne\",\"knp\"],\"application/vnd.koan\":[\"skp\",\"skd\",\"skt\",\"skm\"],\"application/vnd.kodak-descriptor\":[\"sse\"],\"application/vnd.las.las+xml\":[\"lasxml\"],\"application/vnd.llamagraphics.life-balance.desktop\":[\"lbd\"],\"application/vnd.llamagraphics.life-balance.exchange+xml\":[\"lbe\"],\"application/vnd.lotus-1-2-3\":[\"123\"],\"application/vnd.lotus-approach\":[\"apr\"],\"application/vnd.lotus-freelance\":[\"pre\"],\"application/vnd.lotus-notes\":[\"nsf\"],\"application/vnd.lotus-organizer\":[\"org\"],\"application/vnd.lotus-screencam\":[\"scm\"],\"application/vnd.lotus-wordpro\":[\"lwp\"],\"application/vnd.macports.portpkg\":[\"portpkg\"],\"application/vnd.mcd\":[\"mcd\"],\"application/vnd.medcalcdata\":[\"mc1\"],\"application/vnd.mediastation.cdkey\":[\"cdkey\"],\"application/vnd.mfer\":[\"mwf\"],\"application/vnd.mfmp\":[\"mfm\"],\"application/vnd.micrografx.flo\":[\"flo\"],\"application/vnd.micrografx.igx\":[\"igx\"],\"application/vnd.mif\":[\"mif\"],\"application/vnd.mobius.daf\":[\"daf\"],\"application/vnd.mobius.dis\":[\"dis\"],\"application/vnd.mobius.mbk\":[\"mbk\"],\"application/vnd.mobius.mqy\":[\"mqy\"],\"application/vnd.mobius.msl\":[\"msl\"],\"application/vnd.mobius.plc\":[\"plc\"],\"application/vnd.mobius.txf\":[\"txf\"],\"application/vnd.mophun.application\":[\"mpn\"],\"application/vnd.mophun.certificate\":[\"mpc\"],\"application/vnd.mozilla.xul+xml\":[\"xul\"],\"application/vnd.ms-artgalry\":[\"cil\"],\"application/vnd.ms-cab-compressed\":[\"cab\"],\"application/vnd.ms-excel\":[\"xls\",\"xlm\",\"xla\",\"xlc\",\"xlt\",\"xlw\"],\"application/vnd.ms-excel.addin.macroenabled.12\":[\"xlam\"],\"application/vnd.ms-excel.sheet.binary.macroenabled.12\":[\"xlsb\"],\"application/vnd.ms-excel.sheet.macroenabled.12\":[\"xlsm\"],\"application/vnd.ms-excel.template.macroenabled.12\":[\"xltm\"],\"application/vnd.ms-fontobject\":[\"eot\"],\"application/vnd.ms-htmlhelp\":[\"chm\"],\"application/vnd.ms-ims\":[\"ims\"],\"application/vnd.ms-lrm\":[\"lrm\"],\"application/vnd.ms-officetheme\":[\"thmx\"],\"application/vnd.ms-outlook\":[\"msg\"],\"application/vnd.ms-pki.seccat\":[\"cat\"],\"application/vnd.ms-pki.stl\":[\"*stl\"],\"application/vnd.ms-powerpoint\":[\"ppt\",\"pps\",\"pot\"],\"application/vnd.ms-powerpoint.addin.macroenabled.12\":[\"ppam\"],\"application/vnd.ms-powerpoint.presentation.macroenabled.12\":[\"pptm\"],\"application/vnd.ms-powerpoint.slide.macroenabled.12\":[\"sldm\"],\"application/vnd.ms-powerpoint.slideshow.macroenabled.12\":[\"ppsm\"],\"application/vnd.ms-powerpoint.template.macroenabled.12\":[\"potm\"],\"application/vnd.ms-project\":[\"mpp\",\"mpt\"],\"application/vnd.ms-word.document.macroenabled.12\":[\"docm\"],\"application/vnd.ms-word.template.macroenabled.12\":[\"dotm\"],\"application/vnd.ms-works\":[\"wps\",\"wks\",\"wcm\",\"wdb\"],\"application/vnd.ms-wpl\":[\"wpl\"],\"application/vnd.ms-xpsdocument\":[\"xps\"],\"application/vnd.mseq\":[\"mseq\"],\"application/vnd.musician\":[\"mus\"],\"application/vnd.muvee.style\":[\"msty\"],\"application/vnd.mynfc\":[\"taglet\"],\"application/vnd.neurolanguage.nlu\":[\"nlu\"],\"application/vnd.nitf\":[\"ntf\",\"nitf\"],\"application/vnd.noblenet-directory\":[\"nnd\"],\"application/vnd.noblenet-sealer\":[\"nns\"],\"application/vnd.noblenet-web\":[\"nnw\"],\"application/vnd.nokia.n-gage.ac+xml\":[\"*ac\"],\"application/vnd.nokia.n-gage.data\":[\"ngdat\"],\"application/vnd.nokia.n-gage.symbian.install\":[\"n-gage\"],\"application/vnd.nokia.radio-preset\":[\"rpst\"],\"application/vnd.nokia.radio-presets\":[\"rpss\"],\"application/vnd.novadigm.edm\":[\"edm\"],\"application/vnd.novadigm.edx\":[\"edx\"],\"application/vnd.novadigm.ext\":[\"ext\"],\"application/vnd.oasis.opendocument.chart\":[\"odc\"],\"application/vnd.oasis.opendocument.chart-template\":[\"otc\"],\"application/vnd.oasis.opendocument.database\":[\"odb\"],\"application/vnd.oasis.opendocument.formula\":[\"odf\"],\"application/vnd.oasis.opendocument.formula-template\":[\"odft\"],\"application/vnd.oasis.opendocument.graphics\":[\"odg\"],\"application/vnd.oasis.opendocument.graphics-template\":[\"otg\"],\"application/vnd.oasis.opendocument.image\":[\"odi\"],\"application/vnd.oasis.opendocument.image-template\":[\"oti\"],\"application/vnd.oasis.opendocument.presentation\":[\"odp\"],\"application/vnd.oasis.opendocument.presentation-template\":[\"otp\"],\"application/vnd.oasis.opendocument.spreadsheet\":[\"ods\"],\"application/vnd.oasis.opendocument.spreadsheet-template\":[\"ots\"],\"application/vnd.oasis.opendocument.text\":[\"odt\"],\"application/vnd.oasis.opendocument.text-master\":[\"odm\"],\"application/vnd.oasis.opendocument.text-template\":[\"ott\"],\"application/vnd.oasis.opendocument.text-web\":[\"oth\"],\"application/vnd.olpc-sugar\":[\"xo\"],\"application/vnd.oma.dd2+xml\":[\"dd2\"],\"application/vnd.openblox.game+xml\":[\"obgx\"],\"application/vnd.openofficeorg.extension\":[\"oxt\"],\"application/vnd.openstreetmap.data+xml\":[\"osm\"],\"application/vnd.openxmlformats-officedocument.presentationml.presentation\":[\"pptx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slide\":[\"sldx\"],\"application/vnd.openxmlformats-officedocument.presentationml.slideshow\":[\"ppsx\"],\"application/vnd.openxmlformats-officedocument.presentationml.template\":[\"potx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\":[\"xlsx\"],\"application/vnd.openxmlformats-officedocument.spreadsheetml.template\":[\"xltx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\":[\"docx\"],\"application/vnd.openxmlformats-officedocument.wordprocessingml.template\":[\"dotx\"],\"application/vnd.osgeo.mapguide.package\":[\"mgp\"],\"application/vnd.osgi.dp\":[\"dp\"],\"application/vnd.osgi.subsystem\":[\"esa\"],\"application/vnd.palm\":[\"pdb\",\"pqa\",\"oprc\"],\"application/vnd.pawaafile\":[\"paw\"],\"application/vnd.pg.format\":[\"str\"],\"application/vnd.pg.osasli\":[\"ei6\"],\"application/vnd.picsel\":[\"efif\"],\"application/vnd.pmi.widget\":[\"wg\"],\"application/vnd.pocketlearn\":[\"plf\"],\"application/vnd.powerbuilder6\":[\"pbd\"],\"application/vnd.previewsystems.box\":[\"box\"],\"application/vnd.proteus.magazine\":[\"mgz\"],\"application/vnd.publishare-delta-tree\":[\"qps\"],\"application/vnd.pvi.ptid1\":[\"ptid\"],\"application/vnd.quark.quarkxpress\":[\"qxd\",\"qxt\",\"qwd\",\"qwt\",\"qxl\",\"qxb\"],\"application/vnd.rar\":[\"rar\"],\"application/vnd.realvnc.bed\":[\"bed\"],\"application/vnd.recordare.musicxml\":[\"mxl\"],\"application/vnd.recordare.musicxml+xml\":[\"musicxml\"],\"application/vnd.rig.cryptonote\":[\"cryptonote\"],\"application/vnd.rim.cod\":[\"cod\"],\"application/vnd.rn-realmedia\":[\"rm\"],\"application/vnd.rn-realmedia-vbr\":[\"rmvb\"],\"application/vnd.route66.link66+xml\":[\"link66\"],\"application/vnd.sailingtracker.track\":[\"st\"],\"application/vnd.seemail\":[\"see\"],\"application/vnd.sema\":[\"sema\"],\"application/vnd.semd\":[\"semd\"],\"application/vnd.semf\":[\"semf\"],\"application/vnd.shana.informed.formdata\":[\"ifm\"],\"application/vnd.shana.informed.formtemplate\":[\"itp\"],\"application/vnd.shana.informed.interchange\":[\"iif\"],\"application/vnd.shana.informed.package\":[\"ipk\"],\"application/vnd.simtech-mindmapper\":[\"twd\",\"twds\"],\"application/vnd.smaf\":[\"mmf\"],\"application/vnd.smart.teacher\":[\"teacher\"],\"application/vnd.software602.filler.form+xml\":[\"fo\"],\"application/vnd.solent.sdkm+xml\":[\"sdkm\",\"sdkd\"],\"application/vnd.spotfire.dxp\":[\"dxp\"],\"application/vnd.spotfire.sfs\":[\"sfs\"],\"application/vnd.stardivision.calc\":[\"sdc\"],\"application/vnd.stardivision.draw\":[\"sda\"],\"application/vnd.stardivision.impress\":[\"sdd\"],\"application/vnd.stardivision.math\":[\"smf\"],\"application/vnd.stardivision.writer\":[\"sdw\",\"vor\"],\"application/vnd.stardivision.writer-global\":[\"sgl\"],\"application/vnd.stepmania.package\":[\"smzip\"],\"application/vnd.stepmania.stepchart\":[\"sm\"],\"application/vnd.sun.wadl+xml\":[\"wadl\"],\"application/vnd.sun.xml.calc\":[\"sxc\"],\"application/vnd.sun.xml.calc.template\":[\"stc\"],\"application/vnd.sun.xml.draw\":[\"sxd\"],\"application/vnd.sun.xml.draw.template\":[\"std\"],\"application/vnd.sun.xml.impress\":[\"sxi\"],\"application/vnd.sun.xml.impress.template\":[\"sti\"],\"application/vnd.sun.xml.math\":[\"sxm\"],\"application/vnd.sun.xml.writer\":[\"sxw\"],\"application/vnd.sun.xml.writer.global\":[\"sxg\"],\"application/vnd.sun.xml.writer.template\":[\"stw\"],\"application/vnd.sus-calendar\":[\"sus\",\"susp\"],\"application/vnd.svd\":[\"svd\"],\"application/vnd.symbian.install\":[\"sis\",\"sisx\"],\"application/vnd.syncml+xml\":[\"xsm\"],\"application/vnd.syncml.dm+wbxml\":[\"bdm\"],\"application/vnd.syncml.dm+xml\":[\"xdm\"],\"application/vnd.syncml.dmddf+xml\":[\"ddf\"],\"application/vnd.tao.intent-module-archive\":[\"tao\"],\"application/vnd.tcpdump.pcap\":[\"pcap\",\"cap\",\"dmp\"],\"application/vnd.tmobile-livetv\":[\"tmo\"],\"application/vnd.trid.tpt\":[\"tpt\"],\"application/vnd.triscape.mxs\":[\"mxs\"],\"application/vnd.trueapp\":[\"tra\"],\"application/vnd.ufdl\":[\"ufd\",\"ufdl\"],\"application/vnd.uiq.theme\":[\"utz\"],\"application/vnd.umajin\":[\"umj\"],\"application/vnd.unity\":[\"unityweb\"],\"application/vnd.uoml+xml\":[\"uoml\"],\"application/vnd.vcx\":[\"vcx\"],\"application/vnd.visio\":[\"vsd\",\"vst\",\"vss\",\"vsw\"],\"application/vnd.visionary\":[\"vis\"],\"application/vnd.vsf\":[\"vsf\"],\"application/vnd.wap.wbxml\":[\"wbxml\"],\"application/vnd.wap.wmlc\":[\"wmlc\"],\"application/vnd.wap.wmlscriptc\":[\"wmlsc\"],\"application/vnd.webturbo\":[\"wtb\"],\"application/vnd.wolfram.player\":[\"nbp\"],\"application/vnd.wordperfect\":[\"wpd\"],\"application/vnd.wqd\":[\"wqd\"],\"application/vnd.wt.stf\":[\"stf\"],\"application/vnd.xara\":[\"xar\"],\"application/vnd.xfdl\":[\"xfdl\"],\"application/vnd.yamaha.hv-dic\":[\"hvd\"],\"application/vnd.yamaha.hv-script\":[\"hvs\"],\"application/vnd.yamaha.hv-voice\":[\"hvp\"],\"application/vnd.yamaha.openscoreformat\":[\"osf\"],\"application/vnd.yamaha.openscoreformat.osfpvg+xml\":[\"osfpvg\"],\"application/vnd.yamaha.smaf-audio\":[\"saf\"],\"application/vnd.yamaha.smaf-phrase\":[\"spf\"],\"application/vnd.yellowriver-custom-menu\":[\"cmp\"],\"application/vnd.zul\":[\"zir\",\"zirz\"],\"application/vnd.zzazz.deck+xml\":[\"zaz\"],\"application/x-7z-compressed\":[\"7z\"],\"application/x-abiword\":[\"abw\"],\"application/x-ace-compressed\":[\"ace\"],\"application/x-apple-diskimage\":[\"*dmg\"],\"application/x-arj\":[\"arj\"],\"application/x-authorware-bin\":[\"aab\",\"x32\",\"u32\",\"vox\"],\"application/x-authorware-map\":[\"aam\"],\"application/x-authorware-seg\":[\"aas\"],\"application/x-bcpio\":[\"bcpio\"],\"application/x-bdoc\":[\"*bdoc\"],\"application/x-bittorrent\":[\"torrent\"],\"application/x-blorb\":[\"blb\",\"blorb\"],\"application/x-bzip\":[\"bz\"],\"application/x-bzip2\":[\"bz2\",\"boz\"],\"application/x-cbr\":[\"cbr\",\"cba\",\"cbt\",\"cbz\",\"cb7\"],\"application/x-cdlink\":[\"vcd\"],\"application/x-cfs-compressed\":[\"cfs\"],\"application/x-chat\":[\"chat\"],\"application/x-chess-pgn\":[\"pgn\"],\"application/x-chrome-extension\":[\"crx\"],\"application/x-cocoa\":[\"cco\"],\"application/x-conference\":[\"nsc\"],\"application/x-cpio\":[\"cpio\"],\"application/x-csh\":[\"csh\"],\"application/x-debian-package\":[\"*deb\",\"udeb\"],\"application/x-dgc-compressed\":[\"dgc\"],\"application/x-director\":[\"dir\",\"dcr\",\"dxr\",\"cst\",\"cct\",\"cxt\",\"w3d\",\"fgd\",\"swa\"],\"application/x-doom\":[\"wad\"],\"application/x-dtbncx+xml\":[\"ncx\"],\"application/x-dtbook+xml\":[\"dtb\"],\"application/x-dtbresource+xml\":[\"res\"],\"application/x-dvi\":[\"dvi\"],\"application/x-envoy\":[\"evy\"],\"application/x-eva\":[\"eva\"],\"application/x-font-bdf\":[\"bdf\"],\"application/x-font-ghostscript\":[\"gsf\"],\"application/x-font-linux-psf\":[\"psf\"],\"application/x-font-pcf\":[\"pcf\"],\"application/x-font-snf\":[\"snf\"],\"application/x-font-type1\":[\"pfa\",\"pfb\",\"pfm\",\"afm\"],\"application/x-freearc\":[\"arc\"],\"application/x-futuresplash\":[\"spl\"],\"application/x-gca-compressed\":[\"gca\"],\"application/x-glulx\":[\"ulx\"],\"application/x-gnumeric\":[\"gnumeric\"],\"application/x-gramps-xml\":[\"gramps\"],\"application/x-gtar\":[\"gtar\"],\"application/x-hdf\":[\"hdf\"],\"application/x-httpd-php\":[\"php\"],\"application/x-install-instructions\":[\"install\"],\"application/x-iso9660-image\":[\"*iso\"],\"application/x-java-archive-diff\":[\"jardiff\"],\"application/x-java-jnlp-file\":[\"jnlp\"],\"application/x-keepass2\":[\"kdbx\"],\"application/x-latex\":[\"latex\"],\"application/x-lua-bytecode\":[\"luac\"],\"application/x-lzh-compressed\":[\"lzh\",\"lha\"],\"application/x-makeself\":[\"run\"],\"application/x-mie\":[\"mie\"],\"application/x-mobipocket-ebook\":[\"prc\",\"mobi\"],\"application/x-ms-application\":[\"application\"],\"application/x-ms-shortcut\":[\"lnk\"],\"application/x-ms-wmd\":[\"wmd\"],\"application/x-ms-wmz\":[\"wmz\"],\"application/x-ms-xbap\":[\"xbap\"],\"application/x-msaccess\":[\"mdb\"],\"application/x-msbinder\":[\"obd\"],\"application/x-mscardfile\":[\"crd\"],\"application/x-msclip\":[\"clp\"],\"application/x-msdos-program\":[\"*exe\"],\"application/x-msdownload\":[\"*exe\",\"*dll\",\"com\",\"bat\",\"*msi\"],\"application/x-msmediaview\":[\"mvb\",\"m13\",\"m14\"],\"application/x-msmetafile\":[\"*wmf\",\"*wmz\",\"*emf\",\"emz\"],\"application/x-msmoney\":[\"mny\"],\"application/x-mspublisher\":[\"pub\"],\"application/x-msschedule\":[\"scd\"],\"application/x-msterminal\":[\"trm\"],\"application/x-mswrite\":[\"wri\"],\"application/x-netcdf\":[\"nc\",\"cdf\"],\"application/x-ns-proxy-autoconfig\":[\"pac\"],\"application/x-nzb\":[\"nzb\"],\"application/x-perl\":[\"pl\",\"pm\"],\"application/x-pilot\":[\"*prc\",\"*pdb\"],\"application/x-pkcs12\":[\"p12\",\"pfx\"],\"application/x-pkcs7-certificates\":[\"p7b\",\"spc\"],\"application/x-pkcs7-certreqresp\":[\"p7r\"],\"application/x-rar-compressed\":[\"*rar\"],\"application/x-redhat-package-manager\":[\"rpm\"],\"application/x-research-info-systems\":[\"ris\"],\"application/x-sea\":[\"sea\"],\"application/x-sh\":[\"sh\"],\"application/x-shar\":[\"shar\"],\"application/x-shockwave-flash\":[\"swf\"],\"application/x-silverlight-app\":[\"xap\"],\"application/x-sql\":[\"sql\"],\"application/x-stuffit\":[\"sit\"],\"application/x-stuffitx\":[\"sitx\"],\"application/x-subrip\":[\"srt\"],\"application/x-sv4cpio\":[\"sv4cpio\"],\"application/x-sv4crc\":[\"sv4crc\"],\"application/x-t3vm-image\":[\"t3\"],\"application/x-tads\":[\"gam\"],\"application/x-tar\":[\"tar\"],\"application/x-tcl\":[\"tcl\",\"tk\"],\"application/x-tex\":[\"tex\"],\"application/x-tex-tfm\":[\"tfm\"],\"application/x-texinfo\":[\"texinfo\",\"texi\"],\"application/x-tgif\":[\"*obj\"],\"application/x-ustar\":[\"ustar\"],\"application/x-virtualbox-hdd\":[\"hdd\"],\"application/x-virtualbox-ova\":[\"ova\"],\"application/x-virtualbox-ovf\":[\"ovf\"],\"application/x-virtualbox-vbox\":[\"vbox\"],\"application/x-virtualbox-vbox-extpack\":[\"vbox-extpack\"],\"application/x-virtualbox-vdi\":[\"vdi\"],\"application/x-virtualbox-vhd\":[\"vhd\"],\"application/x-virtualbox-vmdk\":[\"vmdk\"],\"application/x-wais-source\":[\"src\"],\"application/x-web-app-manifest+json\":[\"webapp\"],\"application/x-x509-ca-cert\":[\"der\",\"crt\",\"pem\"],\"application/x-xfig\":[\"fig\"],\"application/x-xliff+xml\":[\"*xlf\"],\"application/x-xpinstall\":[\"xpi\"],\"application/x-xz\":[\"xz\"],\"application/x-zmachine\":[\"z1\",\"z2\",\"z3\",\"z4\",\"z5\",\"z6\",\"z7\",\"z8\"],\"audio/vnd.dece.audio\":[\"uva\",\"uvva\"],\"audio/vnd.digital-winds\":[\"eol\"],\"audio/vnd.dra\":[\"dra\"],\"audio/vnd.dts\":[\"dts\"],\"audio/vnd.dts.hd\":[\"dtshd\"],\"audio/vnd.lucent.voice\":[\"lvp\"],\"audio/vnd.ms-playready.media.pya\":[\"pya\"],\"audio/vnd.nuera.ecelp4800\":[\"ecelp4800\"],\"audio/vnd.nuera.ecelp7470\":[\"ecelp7470\"],\"audio/vnd.nuera.ecelp9600\":[\"ecelp9600\"],\"audio/vnd.rip\":[\"rip\"],\"audio/x-aac\":[\"aac\"],\"audio/x-aiff\":[\"aif\",\"aiff\",\"aifc\"],\"audio/x-caf\":[\"caf\"],\"audio/x-flac\":[\"flac\"],\"audio/x-m4a\":[\"*m4a\"],\"audio/x-matroska\":[\"mka\"],\"audio/x-mpegurl\":[\"m3u\"],\"audio/x-ms-wax\":[\"wax\"],\"audio/x-ms-wma\":[\"wma\"],\"audio/x-pn-realaudio\":[\"ram\",\"ra\"],\"audio/x-pn-realaudio-plugin\":[\"rmp\"],\"audio/x-realaudio\":[\"*ra\"],\"audio/x-wav\":[\"*wav\"],\"chemical/x-cdx\":[\"cdx\"],\"chemical/x-cif\":[\"cif\"],\"chemical/x-cmdf\":[\"cmdf\"],\"chemical/x-cml\":[\"cml\"],\"chemical/x-csml\":[\"csml\"],\"chemical/x-xyz\":[\"xyz\"],\"image/prs.btif\":[\"btif\"],\"image/prs.pti\":[\"pti\"],\"image/vnd.adobe.photoshop\":[\"psd\"],\"image/vnd.airzip.accelerator.azv\":[\"azv\"],\"image/vnd.dece.graphic\":[\"uvi\",\"uvvi\",\"uvg\",\"uvvg\"],\"image/vnd.djvu\":[\"djvu\",\"djv\"],\"image/vnd.dvb.subtitle\":[\"*sub\"],\"image/vnd.dwg\":[\"dwg\"],\"image/vnd.dxf\":[\"dxf\"],\"image/vnd.fastbidsheet\":[\"fbs\"],\"image/vnd.fpx\":[\"fpx\"],\"image/vnd.fst\":[\"fst\"],\"image/vnd.fujixerox.edmics-mmr\":[\"mmr\"],\"image/vnd.fujixerox.edmics-rlc\":[\"rlc\"],\"image/vnd.microsoft.icon\":[\"ico\"],\"image/vnd.ms-dds\":[\"dds\"],\"image/vnd.ms-modi\":[\"mdi\"],\"image/vnd.ms-photo\":[\"wdp\"],\"image/vnd.net-fpx\":[\"npx\"],\"image/vnd.pco.b16\":[\"b16\"],\"image/vnd.tencent.tap\":[\"tap\"],\"image/vnd.valve.source.texture\":[\"vtf\"],\"image/vnd.wap.wbmp\":[\"wbmp\"],\"image/vnd.xiff\":[\"xif\"],\"image/vnd.zbrush.pcx\":[\"pcx\"],\"image/x-3ds\":[\"3ds\"],\"image/x-cmu-raster\":[\"ras\"],\"image/x-cmx\":[\"cmx\"],\"image/x-freehand\":[\"fh\",\"fhc\",\"fh4\",\"fh5\",\"fh7\"],\"image/x-icon\":[\"*ico\"],\"image/x-jng\":[\"jng\"],\"image/x-mrsid-image\":[\"sid\"],\"image/x-ms-bmp\":[\"*bmp\"],\"image/x-pcx\":[\"*pcx\"],\"image/x-pict\":[\"pic\",\"pct\"],\"image/x-portable-anymap\":[\"pnm\"],\"image/x-portable-bitmap\":[\"pbm\"],\"image/x-portable-graymap\":[\"pgm\"],\"image/x-portable-pixmap\":[\"ppm\"],\"image/x-rgb\":[\"rgb\"],\"image/x-tga\":[\"tga\"],\"image/x-xbitmap\":[\"xbm\"],\"image/x-xpixmap\":[\"xpm\"],\"image/x-xwindowdump\":[\"xwd\"],\"message/vnd.wfa.wsc\":[\"wsc\"],\"model/vnd.collada+xml\":[\"dae\"],\"model/vnd.dwf\":[\"dwf\"],\"model/vnd.gdl\":[\"gdl\"],\"model/vnd.gtw\":[\"gtw\"],\"model/vnd.mts\":[\"mts\"],\"model/vnd.opengex\":[\"ogex\"],\"model/vnd.parasolid.transmit.binary\":[\"x_b\"],\"model/vnd.parasolid.transmit.text\":[\"x_t\"],\"model/vnd.usdz+zip\":[\"usdz\"],\"model/vnd.valve.source.compiled-map\":[\"bsp\"],\"model/vnd.vtu\":[\"vtu\"],\"text/prs.lines.tag\":[\"dsc\"],\"text/vnd.curl\":[\"curl\"],\"text/vnd.curl.dcurl\":[\"dcurl\"],\"text/vnd.curl.mcurl\":[\"mcurl\"],\"text/vnd.curl.scurl\":[\"scurl\"],\"text/vnd.dvb.subtitle\":[\"sub\"],\"text/vnd.fly\":[\"fly\"],\"text/vnd.fmi.flexstor\":[\"flx\"],\"text/vnd.graphviz\":[\"gv\"],\"text/vnd.in3d.3dml\":[\"3dml\"],\"text/vnd.in3d.spot\":[\"spot\"],\"text/vnd.sun.j2me.app-descriptor\":[\"jad\"],\"text/vnd.wap.wml\":[\"wml\"],\"text/vnd.wap.wmlscript\":[\"wmls\"],\"text/x-asm\":[\"s\",\"asm\"],\"text/x-c\":[\"c\",\"cc\",\"cxx\",\"cpp\",\"h\",\"hh\",\"dic\"],\"text/x-component\":[\"htc\"],\"text/x-fortran\":[\"f\",\"for\",\"f77\",\"f90\"],\"text/x-handlebars-template\":[\"hbs\"],\"text/x-java-source\":[\"java\"],\"text/x-lua\":[\"lua\"],\"text/x-markdown\":[\"mkd\"],\"text/x-nfo\":[\"nfo\"],\"text/x-opml\":[\"opml\"],\"text/x-org\":[\"*org\"],\"text/x-pascal\":[\"p\",\"pas\"],\"text/x-processing\":[\"pde\"],\"text/x-sass\":[\"sass\"],\"text/x-scss\":[\"scss\"],\"text/x-setext\":[\"etx\"],\"text/x-sfv\":[\"sfv\"],\"text/x-suse-ymp\":[\"ymp\"],\"text/x-uuencode\":[\"uu\"],\"text/x-vcalendar\":[\"vcs\"],\"text/x-vcard\":[\"vcf\"],\"video/vnd.dece.hd\":[\"uvh\",\"uvvh\"],\"video/vnd.dece.mobile\":[\"uvm\",\"uvvm\"],\"video/vnd.dece.pd\":[\"uvp\",\"uvvp\"],\"video/vnd.dece.sd\":[\"uvs\",\"uvvs\"],\"video/vnd.dece.video\":[\"uvv\",\"uvvv\"],\"video/vnd.dvb.file\":[\"dvb\"],\"video/vnd.fvt\":[\"fvt\"],\"video/vnd.mpegurl\":[\"mxu\",\"m4u\"],\"video/vnd.ms-playready.media.pyv\":[\"pyv\"],\"video/vnd.uvvu.mp4\":[\"uvu\",\"uvvu\"],\"video/vnd.vivo\":[\"viv\"],\"video/x-f4v\":[\"f4v\"],\"video/x-fli\":[\"fli\"],\"video/x-flv\":[\"flv\"],\"video/x-m4v\":[\"m4v\"],\"video/x-matroska\":[\"mkv\",\"mk3d\",\"mks\"],\"video/x-mng\":[\"mng\"],\"video/x-ms-asf\":[\"asf\",\"asx\"],\"video/x-ms-vob\":[\"vob\"],\"video/x-ms-wm\":[\"wm\"],\"video/x-ms-wmv\":[\"wmv\"],\"video/x-ms-wmx\":[\"wmx\"],\"video/x-ms-wvx\":[\"wvx\"],\"video/x-msvideo\":[\"avi\"],\"video/x-sgi-movie\":[\"movie\"],\"video/x-smv\":[\"smv\"],\"x-conference/x-cooltalk\":[\"ice\"]};","module.exports = {\"application/andrew-inset\":[\"ez\"],\"application/applixware\":[\"aw\"],\"application/atom+xml\":[\"atom\"],\"application/atomcat+xml\":[\"atomcat\"],\"application/atomdeleted+xml\":[\"atomdeleted\"],\"application/atomsvc+xml\":[\"atomsvc\"],\"application/atsc-dwd+xml\":[\"dwd\"],\"application/atsc-held+xml\":[\"held\"],\"application/atsc-rsat+xml\":[\"rsat\"],\"application/bdoc\":[\"bdoc\"],\"application/calendar+xml\":[\"xcs\"],\"application/ccxml+xml\":[\"ccxml\"],\"application/cdfx+xml\":[\"cdfx\"],\"application/cdmi-capability\":[\"cdmia\"],\"application/cdmi-container\":[\"cdmic\"],\"application/cdmi-domain\":[\"cdmid\"],\"application/cdmi-object\":[\"cdmio\"],\"application/cdmi-queue\":[\"cdmiq\"],\"application/cu-seeme\":[\"cu\"],\"application/dash+xml\":[\"mpd\"],\"application/davmount+xml\":[\"davmount\"],\"application/docbook+xml\":[\"dbk\"],\"application/dssc+der\":[\"dssc\"],\"application/dssc+xml\":[\"xdssc\"],\"application/ecmascript\":[\"ecma\",\"es\"],\"application/emma+xml\":[\"emma\"],\"application/emotionml+xml\":[\"emotionml\"],\"application/epub+zip\":[\"epub\"],\"application/exi\":[\"exi\"],\"application/fdt+xml\":[\"fdt\"],\"application/font-tdpfr\":[\"pfr\"],\"application/geo+json\":[\"geojson\"],\"application/gml+xml\":[\"gml\"],\"application/gpx+xml\":[\"gpx\"],\"application/gxf\":[\"gxf\"],\"application/gzip\":[\"gz\"],\"application/hjson\":[\"hjson\"],\"application/hyperstudio\":[\"stk\"],\"application/inkml+xml\":[\"ink\",\"inkml\"],\"application/ipfix\":[\"ipfix\"],\"application/its+xml\":[\"its\"],\"application/java-archive\":[\"jar\",\"war\",\"ear\"],\"application/java-serialized-object\":[\"ser\"],\"application/java-vm\":[\"class\"],\"application/javascript\":[\"js\",\"mjs\"],\"application/json\":[\"json\",\"map\"],\"application/json5\":[\"json5\"],\"application/jsonml+json\":[\"jsonml\"],\"application/ld+json\":[\"jsonld\"],\"application/lgr+xml\":[\"lgr\"],\"application/lost+xml\":[\"lostxml\"],\"application/mac-binhex40\":[\"hqx\"],\"application/mac-compactpro\":[\"cpt\"],\"application/mads+xml\":[\"mads\"],\"application/manifest+json\":[\"webmanifest\"],\"application/marc\":[\"mrc\"],\"application/marcxml+xml\":[\"mrcx\"],\"application/mathematica\":[\"ma\",\"nb\",\"mb\"],\"application/mathml+xml\":[\"mathml\"],\"application/mbox\":[\"mbox\"],\"application/mediaservercontrol+xml\":[\"mscml\"],\"application/metalink+xml\":[\"metalink\"],\"application/metalink4+xml\":[\"meta4\"],\"application/mets+xml\":[\"mets\"],\"application/mmt-aei+xml\":[\"maei\"],\"application/mmt-usd+xml\":[\"musd\"],\"application/mods+xml\":[\"mods\"],\"application/mp21\":[\"m21\",\"mp21\"],\"application/mp4\":[\"mp4s\",\"m4p\"],\"application/mrb-consumer+xml\":[\"*xdf\"],\"application/mrb-publish+xml\":[\"*xdf\"],\"application/msword\":[\"doc\",\"dot\"],\"application/mxf\":[\"mxf\"],\"application/n-quads\":[\"nq\"],\"application/n-triples\":[\"nt\"],\"application/node\":[\"cjs\"],\"application/octet-stream\":[\"bin\",\"dms\",\"lrf\",\"mar\",\"so\",\"dist\",\"distz\",\"pkg\",\"bpk\",\"dump\",\"elc\",\"deploy\",\"exe\",\"dll\",\"deb\",\"dmg\",\"iso\",\"img\",\"msi\",\"msp\",\"msm\",\"buffer\"],\"application/oda\":[\"oda\"],\"application/oebps-package+xml\":[\"opf\"],\"application/ogg\":[\"ogx\"],\"application/omdoc+xml\":[\"omdoc\"],\"application/onenote\":[\"onetoc\",\"onetoc2\",\"onetmp\",\"onepkg\"],\"application/oxps\":[\"oxps\"],\"application/p2p-overlay+xml\":[\"relo\"],\"application/patch-ops-error+xml\":[\"*xer\"],\"application/pdf\":[\"pdf\"],\"application/pgp-encrypted\":[\"pgp\"],\"application/pgp-signature\":[\"asc\",\"sig\"],\"application/pics-rules\":[\"prf\"],\"application/pkcs10\":[\"p10\"],\"application/pkcs7-mime\":[\"p7m\",\"p7c\"],\"application/pkcs7-signature\":[\"p7s\"],\"application/pkcs8\":[\"p8\"],\"application/pkix-attr-cert\":[\"ac\"],\"application/pkix-cert\":[\"cer\"],\"application/pkix-crl\":[\"crl\"],\"application/pkix-pkipath\":[\"pkipath\"],\"application/pkixcmp\":[\"pki\"],\"application/pls+xml\":[\"pls\"],\"application/postscript\":[\"ai\",\"eps\",\"ps\"],\"application/provenance+xml\":[\"provx\"],\"application/pskc+xml\":[\"pskcxml\"],\"application/raml+yaml\":[\"raml\"],\"application/rdf+xml\":[\"rdf\",\"owl\"],\"application/reginfo+xml\":[\"rif\"],\"application/relax-ng-compact-syntax\":[\"rnc\"],\"application/resource-lists+xml\":[\"rl\"],\"application/resource-lists-diff+xml\":[\"rld\"],\"application/rls-services+xml\":[\"rs\"],\"application/route-apd+xml\":[\"rapd\"],\"application/route-s-tsid+xml\":[\"sls\"],\"application/route-usd+xml\":[\"rusd\"],\"application/rpki-ghostbusters\":[\"gbr\"],\"application/rpki-manifest\":[\"mft\"],\"application/rpki-roa\":[\"roa\"],\"application/rsd+xml\":[\"rsd\"],\"application/rss+xml\":[\"rss\"],\"application/rtf\":[\"rtf\"],\"application/sbml+xml\":[\"sbml\"],\"application/scvp-cv-request\":[\"scq\"],\"application/scvp-cv-response\":[\"scs\"],\"application/scvp-vp-request\":[\"spq\"],\"application/scvp-vp-response\":[\"spp\"],\"application/sdp\":[\"sdp\"],\"application/senml+xml\":[\"senmlx\"],\"application/sensml+xml\":[\"sensmlx\"],\"application/set-payment-initiation\":[\"setpay\"],\"application/set-registration-initiation\":[\"setreg\"],\"application/shf+xml\":[\"shf\"],\"application/sieve\":[\"siv\",\"sieve\"],\"application/smil+xml\":[\"smi\",\"smil\"],\"application/sparql-query\":[\"rq\"],\"application/sparql-results+xml\":[\"srx\"],\"application/srgs\":[\"gram\"],\"application/srgs+xml\":[\"grxml\"],\"application/sru+xml\":[\"sru\"],\"application/ssdl+xml\":[\"ssdl\"],\"application/ssml+xml\":[\"ssml\"],\"application/swid+xml\":[\"swidtag\"],\"application/tei+xml\":[\"tei\",\"teicorpus\"],\"application/thraud+xml\":[\"tfi\"],\"application/timestamped-data\":[\"tsd\"],\"application/toml\":[\"toml\"],\"application/ttml+xml\":[\"ttml\"],\"application/ubjson\":[\"ubj\"],\"application/urc-ressheet+xml\":[\"rsheet\"],\"application/urc-targetdesc+xml\":[\"td\"],\"application/voicexml+xml\":[\"vxml\"],\"application/wasm\":[\"wasm\"],\"application/widget\":[\"wgt\"],\"application/winhlp\":[\"hlp\"],\"application/wsdl+xml\":[\"wsdl\"],\"application/wspolicy+xml\":[\"wspolicy\"],\"application/xaml+xml\":[\"xaml\"],\"application/xcap-att+xml\":[\"xav\"],\"application/xcap-caps+xml\":[\"xca\"],\"application/xcap-diff+xml\":[\"xdf\"],\"application/xcap-el+xml\":[\"xel\"],\"application/xcap-error+xml\":[\"xer\"],\"application/xcap-ns+xml\":[\"xns\"],\"application/xenc+xml\":[\"xenc\"],\"application/xhtml+xml\":[\"xhtml\",\"xht\"],\"application/xliff+xml\":[\"xlf\"],\"application/xml\":[\"xml\",\"xsl\",\"xsd\",\"rng\"],\"application/xml-dtd\":[\"dtd\"],\"application/xop+xml\":[\"xop\"],\"application/xproc+xml\":[\"xpl\"],\"application/xslt+xml\":[\"*xsl\",\"xslt\"],\"application/xspf+xml\":[\"xspf\"],\"application/xv+xml\":[\"mxml\",\"xhvml\",\"xvml\",\"xvm\"],\"application/yang\":[\"yang\"],\"application/yin+xml\":[\"yin\"],\"application/zip\":[\"zip\"],\"audio/3gpp\":[\"*3gpp\"],\"audio/adpcm\":[\"adp\"],\"audio/amr\":[\"amr\"],\"audio/basic\":[\"au\",\"snd\"],\"audio/midi\":[\"mid\",\"midi\",\"kar\",\"rmi\"],\"audio/mobile-xmf\":[\"mxmf\"],\"audio/mp3\":[\"*mp3\"],\"audio/mp4\":[\"m4a\",\"mp4a\"],\"audio/mpeg\":[\"mpga\",\"mp2\",\"mp2a\",\"mp3\",\"m2a\",\"m3a\"],\"audio/ogg\":[\"oga\",\"ogg\",\"spx\",\"opus\"],\"audio/s3m\":[\"s3m\"],\"audio/silk\":[\"sil\"],\"audio/wav\":[\"wav\"],\"audio/wave\":[\"*wav\"],\"audio/webm\":[\"weba\"],\"audio/xm\":[\"xm\"],\"font/collection\":[\"ttc\"],\"font/otf\":[\"otf\"],\"font/ttf\":[\"ttf\"],\"font/woff\":[\"woff\"],\"font/woff2\":[\"woff2\"],\"image/aces\":[\"exr\"],\"image/apng\":[\"apng\"],\"image/avif\":[\"avif\"],\"image/bmp\":[\"bmp\"],\"image/cgm\":[\"cgm\"],\"image/dicom-rle\":[\"drle\"],\"image/emf\":[\"emf\"],\"image/fits\":[\"fits\"],\"image/g3fax\":[\"g3\"],\"image/gif\":[\"gif\"],\"image/heic\":[\"heic\"],\"image/heic-sequence\":[\"heics\"],\"image/heif\":[\"heif\"],\"image/heif-sequence\":[\"heifs\"],\"image/hej2k\":[\"hej2\"],\"image/hsj2\":[\"hsj2\"],\"image/ief\":[\"ief\"],\"image/jls\":[\"jls\"],\"image/jp2\":[\"jp2\",\"jpg2\"],\"image/jpeg\":[\"jpeg\",\"jpg\",\"jpe\"],\"image/jph\":[\"jph\"],\"image/jphc\":[\"jhc\"],\"image/jpm\":[\"jpm\"],\"image/jpx\":[\"jpx\",\"jpf\"],\"image/jxr\":[\"jxr\"],\"image/jxra\":[\"jxra\"],\"image/jxrs\":[\"jxrs\"],\"image/jxs\":[\"jxs\"],\"image/jxsc\":[\"jxsc\"],\"image/jxsi\":[\"jxsi\"],\"image/jxss\":[\"jxss\"],\"image/ktx\":[\"ktx\"],\"image/ktx2\":[\"ktx2\"],\"image/png\":[\"png\"],\"image/sgi\":[\"sgi\"],\"image/svg+xml\":[\"svg\",\"svgz\"],\"image/t38\":[\"t38\"],\"image/tiff\":[\"tif\",\"tiff\"],\"image/tiff-fx\":[\"tfx\"],\"image/webp\":[\"webp\"],\"image/wmf\":[\"wmf\"],\"message/disposition-notification\":[\"disposition-notification\"],\"message/global\":[\"u8msg\"],\"message/global-delivery-status\":[\"u8dsn\"],\"message/global-disposition-notification\":[\"u8mdn\"],\"message/global-headers\":[\"u8hdr\"],\"message/rfc822\":[\"eml\",\"mime\"],\"model/3mf\":[\"3mf\"],\"model/gltf+json\":[\"gltf\"],\"model/gltf-binary\":[\"glb\"],\"model/iges\":[\"igs\",\"iges\"],\"model/mesh\":[\"msh\",\"mesh\",\"silo\"],\"model/mtl\":[\"mtl\"],\"model/obj\":[\"obj\"],\"model/stl\":[\"stl\"],\"model/vrml\":[\"wrl\",\"vrml\"],\"model/x3d+binary\":[\"*x3db\",\"x3dbz\"],\"model/x3d+fastinfoset\":[\"x3db\"],\"model/x3d+vrml\":[\"*x3dv\",\"x3dvz\"],\"model/x3d+xml\":[\"x3d\",\"x3dz\"],\"model/x3d-vrml\":[\"x3dv\"],\"text/cache-manifest\":[\"appcache\",\"manifest\"],\"text/calendar\":[\"ics\",\"ifb\"],\"text/coffeescript\":[\"coffee\",\"litcoffee\"],\"text/css\":[\"css\"],\"text/csv\":[\"csv\"],\"text/html\":[\"html\",\"htm\",\"shtml\"],\"text/jade\":[\"jade\"],\"text/jsx\":[\"jsx\"],\"text/less\":[\"less\"],\"text/markdown\":[\"markdown\",\"md\"],\"text/mathml\":[\"mml\"],\"text/mdx\":[\"mdx\"],\"text/n3\":[\"n3\"],\"text/plain\":[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\",\"in\",\"ini\"],\"text/richtext\":[\"rtx\"],\"text/rtf\":[\"*rtf\"],\"text/sgml\":[\"sgml\",\"sgm\"],\"text/shex\":[\"shex\"],\"text/slim\":[\"slim\",\"slm\"],\"text/spdx\":[\"spdx\"],\"text/stylus\":[\"stylus\",\"styl\"],\"text/tab-separated-values\":[\"tsv\"],\"text/troff\":[\"t\",\"tr\",\"roff\",\"man\",\"me\",\"ms\"],\"text/turtle\":[\"ttl\"],\"text/uri-list\":[\"uri\",\"uris\",\"urls\"],\"text/vcard\":[\"vcard\"],\"text/vtt\":[\"vtt\"],\"text/xml\":[\"*xml\"],\"text/yaml\":[\"yaml\",\"yml\"],\"video/3gpp\":[\"3gp\",\"3gpp\"],\"video/3gpp2\":[\"3g2\"],\"video/h261\":[\"h261\"],\"video/h263\":[\"h263\"],\"video/h264\":[\"h264\"],\"video/iso.segment\":[\"m4s\"],\"video/jpeg\":[\"jpgv\"],\"video/jpm\":[\"*jpm\",\"jpgm\"],\"video/mj2\":[\"mj2\",\"mjp2\"],\"video/mp2t\":[\"ts\"],\"video/mp4\":[\"mp4\",\"mp4v\",\"mpg4\"],\"video/mpeg\":[\"mpeg\",\"mpg\",\"mpe\",\"m1v\",\"m2v\"],\"video/ogg\":[\"ogv\"],\"video/quicktime\":[\"qt\",\"mov\"],\"video/webm\":[\"webm\"]};","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArgumentError = void 0;\nconst generate_stack_1 = require(\"./utils/generate-stack\");\nconst wrapStackTrace = (error, stack) => `${error.name}: ${error.message}\\n${stack}`;\n/**\n@hidden\n*/\nclass ArgumentError extends Error {\n constructor(message, context, errors = new Map()) {\n super(message);\n Object.defineProperty(this, \"validationErrors\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: void 0\n });\n this.name = 'ArgumentError';\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, context);\n }\n else {\n this.stack = wrapStackTrace(this, (0, generate_stack_1.generateStackTrace)());\n }\n this.validationErrors = errors;\n }\n}\nexports.ArgumentError = ArgumentError;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArgumentError = exports.Predicate = void 0;\nconst callsites_1 = require(\"callsites\");\nconst infer_label_1 = require(\"./utils/infer-label\");\nconst predicate_1 = require(\"./predicates/predicate\");\nObject.defineProperty(exports, \"Predicate\", { enumerable: true, get: function () { return predicate_1.Predicate; } });\nconst base_predicate_1 = require(\"./predicates/base-predicate\");\nconst modifiers_1 = require(\"./modifiers\");\nconst predicates_1 = require(\"./predicates\");\nconst test_1 = require(\"./test\");\nconst ow = (value, labelOrPredicate, predicate) => {\n if (!(0, base_predicate_1.isPredicate)(labelOrPredicate) && typeof labelOrPredicate !== 'string') {\n throw new TypeError(`Expected second argument to be a predicate or a string, got \\`${typeof labelOrPredicate}\\``);\n }\n if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {\n // If the second argument is a predicate, infer the label\n const stackFrames = (0, callsites_1.default)();\n (0, test_1.default)(value, () => (0, infer_label_1.inferLabel)(stackFrames), labelOrPredicate);\n return;\n }\n (0, test_1.default)(value, labelOrPredicate, predicate);\n};\nObject.defineProperties(ow, {\n isValid: {\n value: (value, predicate) => {\n try {\n (0, test_1.default)(value, '', predicate);\n return true;\n }\n catch {\n return false;\n }\n }\n },\n create: {\n value: (labelOrPredicate, predicate) => (value, label) => {\n if ((0, base_predicate_1.isPredicate)(labelOrPredicate)) {\n const stackFrames = (0, callsites_1.default)();\n (0, test_1.default)(value, label !== null && label !== void 0 ? label : (() => (0, infer_label_1.inferLabel)(stackFrames)), labelOrPredicate);\n return;\n }\n (0, test_1.default)(value, label !== null && label !== void 0 ? label : (labelOrPredicate), predicate);\n }\n }\n});\n// Can't use `export default predicates(modifiers(ow)) as Ow` because the variable needs a type annotation to avoid a compiler error when used:\n// Assertions require every name in the call target to be declared with an explicit type annotation.ts(2775)\n// See https://github.com/microsoft/TypeScript/issues/36931 for more details.\nconst _ow = (0, predicates_1.default)((0, modifiers_1.default)(ow));\nexports.default = _ow;\n__exportStar(require(\"./predicates\"), exports);\nvar argument_error_1 = require(\"./argument-error\");\nObject.defineProperty(exports, \"ArgumentError\", { enumerable: true, get: function () { return argument_error_1.ArgumentError; } });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst predicates_1 = require(\"./predicates\");\nexports.default = (object) => {\n Object.defineProperties(object, {\n optional: {\n get: () => (0, predicates_1.default)({}, { optional: true })\n }\n });\n return object;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.not = void 0;\nconst random_id_1 = require(\"../utils/random-id\");\nconst predicate_1 = require(\"../predicates/predicate\");\n/**\nOperator which inverts the following validation.\n\n@hidden\n\n@param predictate - Predicate to wrap inside the operator.\n*/\nconst not = (predicate) => {\n const originalAddValidator = predicate.addValidator;\n predicate.addValidator = (validator) => {\n const { validator: fn, message, negatedMessage } = validator;\n const placeholder = (0, random_id_1.default)();\n validator.message = (value, label) => (negatedMessage ?\n negatedMessage(value, label) :\n message(value, placeholder).replace(/ to /, '$¬ ').replace(placeholder, label));\n validator.validator = (value) => !fn(value);\n predicate[predicate_1.validatorSymbol].push(validator);\n predicate.addValidator = originalAddValidator;\n return predicate;\n };\n return predicate;\n};\nexports.not = not;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnyPredicate = exports.DataViewPredicate = exports.ArrayBufferPredicate = exports.TypedArrayPredicate = exports.WeakSetPredicate = exports.SetPredicate = exports.WeakMapPredicate = exports.MapPredicate = exports.ErrorPredicate = exports.DatePredicate = exports.ObjectPredicate = exports.ArrayPredicate = exports.BooleanPredicate = exports.BigIntPredicate = exports.NumberPredicate = exports.StringPredicate = void 0;\nconst string_1 = require(\"./predicates/string\");\nObject.defineProperty(exports, \"StringPredicate\", { enumerable: true, get: function () { return string_1.StringPredicate; } });\nconst number_1 = require(\"./predicates/number\");\nObject.defineProperty(exports, \"NumberPredicate\", { enumerable: true, get: function () { return number_1.NumberPredicate; } });\nconst bigint_1 = require(\"./predicates/bigint\");\nObject.defineProperty(exports, \"BigIntPredicate\", { enumerable: true, get: function () { return bigint_1.BigIntPredicate; } });\nconst boolean_1 = require(\"./predicates/boolean\");\nObject.defineProperty(exports, \"BooleanPredicate\", { enumerable: true, get: function () { return boolean_1.BooleanPredicate; } });\nconst predicate_1 = require(\"./predicates/predicate\");\nconst array_1 = require(\"./predicates/array\");\nObject.defineProperty(exports, \"ArrayPredicate\", { enumerable: true, get: function () { return array_1.ArrayPredicate; } });\nconst object_1 = require(\"./predicates/object\");\nObject.defineProperty(exports, \"ObjectPredicate\", { enumerable: true, get: function () { return object_1.ObjectPredicate; } });\nconst date_1 = require(\"./predicates/date\");\nObject.defineProperty(exports, \"DatePredicate\", { enumerable: true, get: function () { return date_1.DatePredicate; } });\nconst error_1 = require(\"./predicates/error\");\nObject.defineProperty(exports, \"ErrorPredicate\", { enumerable: true, get: function () { return error_1.ErrorPredicate; } });\nconst map_1 = require(\"./predicates/map\");\nObject.defineProperty(exports, \"MapPredicate\", { enumerable: true, get: function () { return map_1.MapPredicate; } });\nconst weak_map_1 = require(\"./predicates/weak-map\");\nObject.defineProperty(exports, \"WeakMapPredicate\", { enumerable: true, get: function () { return weak_map_1.WeakMapPredicate; } });\nconst set_1 = require(\"./predicates/set\");\nObject.defineProperty(exports, \"SetPredicate\", { enumerable: true, get: function () { return set_1.SetPredicate; } });\nconst weak_set_1 = require(\"./predicates/weak-set\");\nObject.defineProperty(exports, \"WeakSetPredicate\", { enumerable: true, get: function () { return weak_set_1.WeakSetPredicate; } });\nconst typed_array_1 = require(\"./predicates/typed-array\");\nObject.defineProperty(exports, \"TypedArrayPredicate\", { enumerable: true, get: function () { return typed_array_1.TypedArrayPredicate; } });\nconst array_buffer_1 = require(\"./predicates/array-buffer\");\nObject.defineProperty(exports, \"ArrayBufferPredicate\", { enumerable: true, get: function () { return array_buffer_1.ArrayBufferPredicate; } });\nconst data_view_1 = require(\"./predicates/data-view\");\nObject.defineProperty(exports, \"DataViewPredicate\", { enumerable: true, get: function () { return data_view_1.DataViewPredicate; } });\nconst any_1 = require(\"./predicates/any\");\nObject.defineProperty(exports, \"AnyPredicate\", { enumerable: true, get: function () { return any_1.AnyPredicate; } });\nexports.default = (object, options) => {\n Object.defineProperties(object, {\n string: {\n get: () => new string_1.StringPredicate(options)\n },\n number: {\n get: () => new number_1.NumberPredicate(options)\n },\n bigint: {\n get: () => new bigint_1.BigIntPredicate(options)\n },\n boolean: {\n get: () => new boolean_1.BooleanPredicate(options)\n },\n undefined: {\n get: () => new predicate_1.Predicate('undefined', options)\n },\n null: {\n get: () => new predicate_1.Predicate('null', options)\n },\n nullOrUndefined: {\n get: () => new predicate_1.Predicate('nullOrUndefined', options)\n },\n nan: {\n get: () => new predicate_1.Predicate('nan', options)\n },\n symbol: {\n get: () => new predicate_1.Predicate('symbol', options)\n },\n array: {\n get: () => new array_1.ArrayPredicate(options)\n },\n object: {\n get: () => new object_1.ObjectPredicate(options)\n },\n date: {\n get: () => new date_1.DatePredicate(options)\n },\n error: {\n get: () => new error_1.ErrorPredicate(options)\n },\n map: {\n get: () => new map_1.MapPredicate(options)\n },\n weakMap: {\n get: () => new weak_map_1.WeakMapPredicate(options)\n },\n set: {\n get: () => new set_1.SetPredicate(options)\n },\n weakSet: {\n get: () => new weak_set_1.WeakSetPredicate(options)\n },\n function: {\n get: () => new predicate_1.Predicate('Function', options)\n },\n buffer: {\n get: () => new predicate_1.Predicate('Buffer', options)\n },\n regExp: {\n get: () => new predicate_1.Predicate('RegExp', options)\n },\n promise: {\n get: () => new predicate_1.Predicate('Promise', options)\n },\n typedArray: {\n get: () => new typed_array_1.TypedArrayPredicate('TypedArray', options)\n },\n int8Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Int8Array', options)\n },\n uint8Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Uint8Array', options)\n },\n uint8ClampedArray: {\n get: () => new typed_array_1.TypedArrayPredicate('Uint8ClampedArray', options)\n },\n int16Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Int16Array', options)\n },\n uint16Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Uint16Array', options)\n },\n int32Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Int32Array', options)\n },\n uint32Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Uint32Array', options)\n },\n float32Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Float32Array', options)\n },\n float64Array: {\n get: () => new typed_array_1.TypedArrayPredicate('Float64Array', options)\n },\n arrayBuffer: {\n get: () => new array_buffer_1.ArrayBufferPredicate('ArrayBuffer', options)\n },\n sharedArrayBuffer: {\n get: () => new array_buffer_1.ArrayBufferPredicate('SharedArrayBuffer', options)\n },\n dataView: {\n get: () => new data_view_1.DataViewPredicate(options)\n },\n iterable: {\n get: () => new predicate_1.Predicate('Iterable', options)\n },\n any: {\n value: (...predicates) => new any_1.AnyPredicate(predicates, options)\n }\n });\n return object;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnyPredicate = void 0;\nconst argument_error_1 = require(\"../argument-error\");\nconst base_predicate_1 = require(\"./base-predicate\");\nconst generate_argument_error_message_1 = require(\"../utils/generate-argument-error-message\");\n/**\n@hidden\n*/\nclass AnyPredicate {\n constructor(predicates, options = {}) {\n Object.defineProperty(this, \"predicates\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: predicates\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n }\n [base_predicate_1.testSymbol](value, main, label, idLabel) {\n const errors = new Map();\n for (const predicate of this.predicates) {\n try {\n main(value, label, predicate, idLabel);\n return;\n }\n catch (error) {\n if (value === undefined && this.options.optional === true) {\n return;\n }\n // If we received an ArgumentError, then..\n if (error instanceof argument_error_1.ArgumentError) {\n // Iterate through every error reported.\n for (const [key, value] of error.validationErrors.entries()) {\n // Get the current errors set, if any.\n const alreadyPresent = errors.get(key);\n // Add all errors under the same key\n errors.set(key, new Set([...alreadyPresent !== null && alreadyPresent !== void 0 ? alreadyPresent : [], ...value]));\n }\n }\n }\n }\n if (errors.size > 0) {\n // Generate the `error.message` property.\n const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors, true);\n throw new argument_error_1.ArgumentError(`Any predicate failed with the following errors:\\n${message}`, main, errors);\n }\n }\n}\nexports.AnyPredicate = AnyPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayBufferPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass ArrayBufferPredicate extends predicate_1.Predicate {\n /**\n Test an array buffer to have a specific byte length.\n\n @param byteLength - The byte length of the array buffer.\n */\n byteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength === byteLength\n });\n }\n /**\n Test an array buffer to have a minimum byte length.\n\n @param byteLength - The minimum byte length of the array buffer.\n */\n minByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength >= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength - 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n /**\n Test an array buffer to have a minimum byte length.\n\n @param length - The minimum byte length of the array buffer.\n */\n maxByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength <= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength + 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n}\nexports.ArrayBufferPredicate = ArrayBufferPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ArrayPredicate = void 0;\nconst isEqual = require(\"lodash.isequal\");\nconst predicate_1 = require(\"./predicate\");\nconst match_shape_1 = require(\"../utils/match-shape\");\nconst of_type_1 = require(\"../utils/of-type\");\nclass ArrayPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('array', options);\n }\n /**\n Test an array to have a specific length.\n\n @param length - The length of the array.\n */\n length(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have length \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length === length\n });\n }\n /**\n Test an array to have a minimum length.\n\n @param length - The minimum length of the array.\n */\n minLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum length of \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length >= length,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \\`${length - 1}\\`, got \\`${value.length}\\``\n });\n }\n /**\n Test an array to have a maximum length.\n\n @param length - The maximum length of the array.\n */\n maxLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum length of \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length <= length,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \\`${length + 1}\\`, got \\`${value.length}\\``\n });\n }\n /**\n Test an array to start with a specific value. The value is tested by identity, not structure.\n\n @param searchElement - The value that should be the start of the array.\n */\n startsWith(searchElement) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to start with \\`${searchElement}\\`, got \\`${value[0]}\\``,\n validator: value => value[0] === searchElement\n });\n }\n /**\n Test an array to end with a specific value. The value is tested by identity, not structure.\n\n @param searchElement - The value that should be the end of the array.\n */\n endsWith(searchElement) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to end with \\`${searchElement}\\`, got \\`${value[value.length - 1]}\\``,\n validator: value => value[value.length - 1] === searchElement\n });\n }\n /**\n Test an array to include all the provided elements. The values are tested by identity, not structure.\n\n @param searchElements - The values that should be included in the array.\n */\n includes(...searchElements) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to include all elements of \\`${JSON.stringify(searchElements)}\\`, got \\`${JSON.stringify(value)}\\``,\n validator: value => searchElements.every(element => value.includes(element))\n });\n }\n /**\n Test an array to include any of the provided elements. The values are tested by identity, not structure.\n\n @param searchElements - The values that should be included in the array.\n */\n includesAny(...searchElements) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to include any element of \\`${JSON.stringify(searchElements)}\\`, got \\`${JSON.stringify(value)}\\``,\n validator: value => searchElements.some(element => value.includes(element))\n });\n }\n /**\n Test an array to be empty.\n */\n get empty() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be empty, got \\`${JSON.stringify(value)}\\``,\n validator: value => value.length === 0\n });\n }\n /**\n Test an array to be not empty.\n */\n get nonEmpty() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to not be empty`,\n validator: value => value.length > 0\n });\n }\n /**\n Test an array to be deeply equal to the provided array.\n\n @param expected - Expected value to match.\n */\n deepEqual(expected) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be deeply equal to \\`${JSON.stringify(expected)}\\`, got \\`${JSON.stringify(value)}\\``,\n validator: value => isEqual(value, expected)\n });\n }\n /**\n Test all elements in the array to match to provided predicate.\n\n @param predicate - The predicate that should be applied against every individual item.\n\n @example\n ```\n ow(['a', 1], ow.array.ofType(ow.any(ow.string, ow.number)));\n ```\n */\n ofType(predicate) {\n // TODO [typescript@>=5] If higher-kinded types are supported natively by typescript, refactor `addValidator` to use them to avoid the usage of `any`. Otherwise, bump or remove this TODO.\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: value => (0, of_type_1.default)(value, 'values', predicate)\n });\n }\n /**\n Test if the elements in the array exactly matches the elements placed at the same indices in the predicates array.\n\n @param predicates - Predicates to test the array against. Describes what the tested array should look like.\n\n @example\n ```\n ow(['1', 2], ow.array.exactShape([ow.string, ow.number]));\n ```\n */\n exactShape(predicates) {\n const shape = predicates;\n return this.addValidator({\n message: (_, label, message) => `${message.replace('Expected', 'Expected element')} in ${label}`,\n validator: object => (0, match_shape_1.exact)(object, shape, undefined, true)\n });\n }\n}\nexports.ArrayPredicate = ArrayPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isPredicate = exports.testSymbol = void 0;\n/**\n@hidden\n*/\nexports.testSymbol = Symbol('test');\n/**\n@hidden\n*/\nconst isPredicate = (value) => Boolean(value[exports.testSymbol]);\nexports.isPredicate = isPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BigIntPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass BigIntPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('bigint', options);\n }\n}\nexports.BigIntPredicate = BigIntPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BooleanPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass BooleanPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('boolean', options);\n }\n /**\n Test a boolean to be true.\n */\n get true() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be true, got ${value}`,\n validator: value => value\n });\n }\n /**\n Test a boolean to be false.\n */\n get false() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be false, got ${value}`,\n validator: value => !value\n });\n }\n}\nexports.BooleanPredicate = BooleanPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataViewPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass DataViewPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('DataView', options);\n }\n /**\n Test a DataView to have a specific byte length.\n\n @param byteLength - The byte length of the DataView.\n */\n byteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength === byteLength\n });\n }\n /**\n Test a DataView to have a minimum byte length.\n\n @param byteLength - The minimum byte length of the DataView.\n */\n minByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength >= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength - 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n /**\n Test a DataView to have a minimum byte length.\n\n @param length - The minimum byte length of the DataView.\n */\n maxByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength <= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength + 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n}\nexports.DataViewPredicate = DataViewPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DatePredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass DatePredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('date', options);\n }\n /**\n Test a date to be before another date.\n\n @param date - Maximum value.\n */\n before(date) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} ${value.toISOString()} to be before ${date.toISOString()}`,\n validator: value => value.getTime() < date.getTime()\n });\n }\n /**\n Test a date to be before another date.\n\n @param date - Minimum value.\n */\n after(date) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} ${value.toISOString()} to be after ${date.toISOString()}`,\n validator: value => value.getTime() > date.getTime()\n });\n }\n}\nexports.DatePredicate = DatePredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ErrorPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass ErrorPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('error', options);\n }\n /**\n Test an error to have a specific name.\n\n @param expected - Expected name of the Error.\n */\n name(expected) {\n return this.addValidator({\n message: (error, label) => `Expected ${label} to have name \\`${expected}\\`, got \\`${error.name}\\``,\n validator: error => error.name === expected\n });\n }\n /**\n Test an error to have a specific message.\n\n @param expected - Expected message of the Error.\n */\n message(expected) {\n return this.addValidator({\n message: (error, label) => `Expected ${label} message to be \\`${expected}\\`, got \\`${error.message}\\``,\n validator: error => error.message === expected\n });\n }\n /**\n Test the error message to include a specific message.\n\n @param message - Message that should be included in the error.\n */\n messageIncludes(message) {\n return this.addValidator({\n message: (error, label) => `Expected ${label} message to include \\`${message}\\`, got \\`${error.message}\\``,\n validator: error => error.message.includes(message)\n });\n }\n /**\n Test the error object to have specific keys.\n\n @param keys - One or more keys which should be part of the error object.\n */\n hasKeys(...keys) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} message to have keys \\`${keys.join('`, `')}\\``,\n validator: error => keys.every(key => Object.prototype.hasOwnProperty.call(error, key))\n });\n }\n /**\n Test an error to be of a specific instance type.\n\n @param instance - The expected instance type of the error.\n */\n instanceOf(instance) {\n return this.addValidator({\n message: (error, label) => `Expected ${label} \\`${error.name}\\` to be of type \\`${instance.name}\\``,\n validator: error => error instanceof instance\n });\n }\n /**\n Test an Error to be a TypeError.\n */\n get typeError() {\n return this.instanceOf(TypeError);\n }\n /**\n Test an Error to be an EvalError.\n */\n get evalError() {\n return this.instanceOf(EvalError);\n }\n /**\n Test an Error to be a RangeError.\n */\n get rangeError() {\n return this.instanceOf(RangeError);\n }\n /**\n Test an Error to be a ReferenceError.\n */\n get referenceError() {\n return this.instanceOf(ReferenceError);\n }\n /**\n Test an Error to be a SyntaxError.\n */\n get syntaxError() {\n return this.instanceOf(SyntaxError);\n }\n /**\n Test an Error to be a URIError.\n */\n get uriError() {\n return this.instanceOf(URIError);\n }\n}\nexports.ErrorPredicate = ErrorPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MapPredicate = void 0;\nconst isEqual = require(\"lodash.isequal\");\nconst has_items_1 = require(\"../utils/has-items\");\nconst of_type_1 = require(\"../utils/of-type\");\nconst predicate_1 = require(\"./predicate\");\nclass MapPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('Map', options);\n }\n /**\n Test a Map to have a specific size.\n\n @param size - The size of the Map.\n */\n size(size) {\n return this.addValidator({\n message: (map, label) => `Expected ${label} to have size \\`${size}\\`, got \\`${map.size}\\``,\n validator: map => map.size === size\n });\n }\n /**\n Test an Map to have a minimum size.\n\n @param size - The minimum size of the Map.\n */\n minSize(size) {\n return this.addValidator({\n message: (map, label) => `Expected ${label} to have a minimum size of \\`${size}\\`, got \\`${map.size}\\``,\n validator: map => map.size >= size,\n negatedMessage: (map, label) => `Expected ${label} to have a maximum size of \\`${size - 1}\\`, got \\`${map.size}\\``\n });\n }\n /**\n Test an Map to have a maximum size.\n\n @param size - The maximum size of the Map.\n */\n maxSize(size) {\n return this.addValidator({\n message: (map, label) => `Expected ${label} to have a maximum size of \\`${size}\\`, got \\`${map.size}\\``,\n validator: map => map.size <= size,\n negatedMessage: (map, label) => `Expected ${label} to have a minimum size of \\`${size + 1}\\`, got \\`${map.size}\\``\n });\n }\n /**\n Test a Map to include all the provided keys. The keys are tested by identity, not structure.\n\n @param keys - The keys that should be a key in the Map.\n */\n hasKeys(...keys) {\n return this.addValidator({\n message: (_, label, missingKeys) => `Expected ${label} to have keys \\`${JSON.stringify(missingKeys)}\\``,\n validator: map => (0, has_items_1.default)(map, keys)\n });\n }\n /**\n Test a Map to include any of the provided keys. The keys are tested by identity, not structure.\n\n @param keys - The keys that could be a key in the Map.\n */\n hasAnyKeys(...keys) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any key of \\`${JSON.stringify(keys)}\\``,\n validator: map => keys.some(key => map.has(key))\n });\n }\n /**\n Test a Map to include all the provided values. The values are tested by identity, not structure.\n\n @param values - The values that should be a value in the Map.\n */\n hasValues(...values) {\n return this.addValidator({\n message: (_, label, missingValues) => `Expected ${label} to have values \\`${JSON.stringify(missingValues)}\\``,\n validator: map => (0, has_items_1.default)(new Set(map.values()), values)\n });\n }\n /**\n Test a Map to include any of the provided values. The values are tested by identity, not structure.\n\n @param values - The values that could be a value in the Map.\n */\n hasAnyValues(...values) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any value of \\`${JSON.stringify(values)}\\``,\n validator: map => {\n const valueSet = new Set(map.values());\n return values.some(key => valueSet.has(key));\n }\n });\n }\n /**\n Test all the keys in the Map to match the provided predicate.\n\n @param predicate - The predicate that should be applied against every key in the Map.\n */\n keysOfType(predicate) {\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: map => (0, of_type_1.default)(map.keys(), 'keys', predicate)\n });\n }\n /**\n Test all the values in the Map to match the provided predicate.\n\n @param predicate - The predicate that should be applied against every value in the Map.\n */\n valuesOfType(predicate) {\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: map => (0, of_type_1.default)(map.values(), 'values', predicate)\n });\n }\n /**\n Test a Map to be empty.\n */\n get empty() {\n return this.addValidator({\n message: (map, label) => `Expected ${label} to be empty, got \\`${JSON.stringify([...map])}\\``,\n validator: map => map.size === 0\n });\n }\n /**\n Test a Map to be not empty.\n */\n get nonEmpty() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to not be empty`,\n validator: map => map.size > 0\n });\n }\n /**\n Test a Map to be deeply equal to the provided Map.\n\n @param expected - Expected Map to match.\n */\n deepEqual(expected) {\n return this.addValidator({\n message: (map, label) => `Expected ${label} to be deeply equal to \\`${JSON.stringify([...expected])}\\`, got \\`${JSON.stringify([...map])}\\``,\n validator: map => isEqual(map, expected)\n });\n }\n}\nexports.MapPredicate = MapPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberPredicate = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst predicate_1 = require(\"./predicate\");\nclass NumberPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('number', options);\n }\n /**\n Test a number to be in a specified range.\n\n @param start - Start of the range.\n @param end - End of the range.\n */\n inRange(start, end) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be in range [${start}..${end}], got ${value}`,\n validator: value => is_1.default.inRange(value, [start, end])\n });\n }\n /**\n Test a number to be greater than the provided value.\n\n @param number - Minimum value.\n */\n greaterThan(number) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be greater than ${number}, got ${value}`,\n validator: value => value > number\n });\n }\n /**\n Test a number to be greater than or equal to the provided value.\n\n @param number - Minimum value.\n */\n greaterThanOrEqual(number) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be greater than or equal to ${number}, got ${value}`,\n validator: value => value >= number\n });\n }\n /**\n Test a number to be less than the provided value.\n\n @param number - Maximum value.\n */\n lessThan(number) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be less than ${number}, got ${value}`,\n validator: value => value < number\n });\n }\n /**\n Test a number to be less than or equal to the provided value.\n\n @param number - Minimum value.\n */\n lessThanOrEqual(number) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be less than or equal to ${number}, got ${value}`,\n validator: value => value <= number\n });\n }\n /**\n Test a number to be equal to a specified number.\n\n @param expected - Expected value to match.\n */\n equal(expected) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be equal to ${expected}, got ${value}`,\n validator: value => value === expected\n });\n }\n /**\n Test if a number is an element of the provided list.\n\n @param list - List of possible values.\n */\n oneOf(list) {\n return this.addValidator({\n message: (value, label) => {\n let printedList = JSON.stringify(list);\n if (list.length > 10) {\n const overflow = list.length - 10;\n printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,…+${overflow} more]`);\n }\n return `Expected ${label} to be one of \\`${printedList}\\`, got ${value}`;\n },\n validator: value => list.includes(value)\n });\n }\n /**\n Test a number to be an integer.\n */\n get integer() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be an integer, got ${value}`,\n validator: value => is_1.default.integer(value)\n });\n }\n /**\n Test a number to be finite.\n */\n get finite() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be finite, got ${value}`,\n validator: value => !is_1.default.infinite(value)\n });\n }\n /**\n Test a number to be infinite.\n */\n get infinite() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be infinite, got ${value}`,\n validator: value => is_1.default.infinite(value)\n });\n }\n /**\n Test a number to be positive.\n */\n get positive() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be positive, got ${value}`,\n validator: value => value > 0\n });\n }\n /**\n Test a number to be negative.\n */\n get negative() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be negative, got ${value}`,\n validator: value => value < 0\n });\n }\n /**\n Test a number to be an integer or infinite.\n */\n get integerOrInfinite() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be an integer or infinite, got ${value}`,\n validator: value => is_1.default.integer(value) || is_1.default.infinite(value)\n });\n }\n /**\n Test a number to be in a valid range for a 8-bit unsigned integer.\n */\n get uint8() {\n return this.integer.inRange(0, 255);\n }\n /**\n Test a number to be in a valid range for a 16-bit unsigned integer.\n */\n get uint16() {\n return this.integer.inRange(0, 65535);\n }\n /**\n Test a number to be in a valid range for a 32-bit unsigned integer.\n */\n get uint32() {\n return this.integer.inRange(0, 4294967295);\n }\n /**\n Test a number to be in a valid range for a 8-bit signed integer.\n */\n get int8() {\n return this.integer.inRange(-128, 127);\n }\n /**\n Test a number to be in a valid range for a 16-bit signed integer.\n */\n get int16() {\n return this.integer.inRange(-32768, 32767);\n }\n /**\n Test a number to be in a valid range for a 32-bit signed integer.\n */\n get int32() {\n return this.integer.inRange(-2147483648, 2147483647);\n }\n}\nexports.NumberPredicate = NumberPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ObjectPredicate = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst dotProp = require(\"dot-prop\");\nconst isEqual = require(\"lodash.isequal\");\nconst has_items_1 = require(\"../utils/has-items\");\nconst of_type_1 = require(\"../utils/of-type\");\nconst of_type_deep_1 = require(\"../utils/of-type-deep\");\nconst match_shape_1 = require(\"../utils/match-shape\");\nconst predicate_1 = require(\"./predicate\");\nclass ObjectPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('object', options);\n }\n /**\n Test if an Object is a plain object.\n */\n get plain() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to be a plain object`,\n validator: object => is_1.default.plainObject(object)\n });\n }\n /**\n Test an object to be empty.\n */\n get empty() {\n return this.addValidator({\n message: (object, label) => `Expected ${label} to be empty, got \\`${JSON.stringify(object)}\\``,\n validator: object => Object.keys(object).length === 0\n });\n }\n /**\n Test an object to be not empty.\n */\n get nonEmpty() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to not be empty`,\n validator: object => Object.keys(object).length > 0\n });\n }\n /**\n Test all the values in the object to match the provided predicate.\n\n @param predicate - The predicate that should be applied against every value in the object.\n */\n valuesOfType(predicate) {\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: object => (0, of_type_1.default)(Object.values(object), 'values', predicate)\n });\n }\n /**\n Test all the values in the object deeply to match the provided predicate.\n\n @param predicate - The predicate that should be applied against every value in the object.\n */\n deepValuesOfType(predicate) {\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: object => (0, of_type_deep_1.default)(object, predicate)\n });\n }\n /**\n Test an object to be deeply equal to the provided object.\n\n @param expected - Expected object to match.\n */\n deepEqual(expected) {\n return this.addValidator({\n message: (object, label) => `Expected ${label} to be deeply equal to \\`${JSON.stringify(expected)}\\`, got \\`${JSON.stringify(object)}\\``,\n validator: object => isEqual(object, expected)\n });\n }\n /**\n Test an object to be of a specific instance type.\n\n @param instance - The expected instance type of the object.\n */\n instanceOf(instance) {\n return this.addValidator({\n message: (object, label) => {\n var _a;\n let { name } = (_a = object === null || object === void 0 ? void 0 : object.constructor) !== null && _a !== void 0 ? _a : {};\n if (!name || name === 'Object') {\n name = JSON.stringify(object);\n }\n return `Expected ${label} \\`${name}\\` to be of type \\`${instance.name}\\``;\n },\n validator: object => object instanceof instance\n });\n }\n /**\n Test an object to include all the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.\n\n @param keys - The keys that should be present in the object.\n */\n hasKeys(...keys) {\n return this.addValidator({\n message: (_, label, missingKeys) => `Expected ${label} to have keys \\`${JSON.stringify(missingKeys)}\\``,\n validator: object => (0, has_items_1.default)({\n has: item => dotProp.has(object, item)\n }, keys)\n });\n }\n /**\n Test an object to include any of the provided keys. You can use [dot-notation](https://github.com/sindresorhus/dot-prop) in a key to access nested properties.\n\n @param keys - The keys that could be a key in the object.\n */\n hasAnyKeys(...keys) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any key of \\`${JSON.stringify(keys)}\\``,\n validator: object => keys.some(key => dotProp.has(object, key))\n });\n }\n /**\n Test an object to match the `shape` partially. This means that it ignores unexpected properties. The shape comparison is deep.\n\n The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.\n\n @param shape - Shape to test the object against.\n\n @example\n ```\n import ow from 'ow';\n\n const object = {\n unicorn: '🦄',\n rainbow: '🌈'\n };\n\n ow(object, ow.object.partialShape({\n unicorn: ow.string\n }));\n ```\n */\n partialShape(shape) {\n return this.addValidator({\n // TODO: Improve this when message handling becomes smarter\n message: (_, label, message) => `${message.replace('Expected', 'Expected property')} in ${label}`,\n validator: object => (0, match_shape_1.partial)(object, shape)\n });\n }\n /**\n Test an object to match the `shape` exactly. This means that will fail if it comes across unexpected properties. The shape comparison is deep.\n\n The shape is an object which describes how the tested object should look like. The keys are the same as the source object and the values are predicates.\n\n @param shape - Shape to test the object against.\n\n @example\n ```\n import ow from 'ow';\n\n ow({unicorn: '🦄'}, ow.object.exactShape({\n unicorn: ow.string\n }));\n ```\n */\n exactShape(shape) {\n // TODO [typescript@>=5] If higher-kinded types are supported natively by typescript, refactor `addValidator` to use them to avoid the usage of `any`. Otherwise, bump or remove this TODO.\n return this.addValidator({\n // TODO: Improve this when message handling becomes smarter\n message: (_, label, message) => `${message.replace('Expected', 'Expected property')} in ${label}`,\n validator: object => (0, match_shape_1.exact)(object, shape)\n });\n }\n}\nexports.ObjectPredicate = ObjectPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Predicate = exports.validatorSymbol = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst argument_error_1 = require(\"../argument-error\");\nconst not_1 = require(\"../operators/not\");\nconst base_predicate_1 = require(\"./base-predicate\");\nconst generate_argument_error_message_1 = require(\"../utils/generate-argument-error-message\");\n/**\n@hidden\n*/\nexports.validatorSymbol = Symbol('validators');\n/**\n@hidden\n*/\nclass Predicate {\n constructor(type, options = {}) {\n Object.defineProperty(this, \"type\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: type\n });\n Object.defineProperty(this, \"options\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: options\n });\n Object.defineProperty(this, \"context\", {\n enumerable: true,\n configurable: true,\n writable: true,\n value: {\n validators: []\n }\n });\n this.context = {\n ...this.context,\n ...this.options\n };\n const typeString = this.type.charAt(0).toLowerCase() + this.type.slice(1);\n this.addValidator({\n message: (value, label) => {\n // We do not include type in this label as we do for other messages, because it would be redundant.\n const label_ = label === null || label === void 0 ? void 0 : label.slice(this.type.length + 1);\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n return `Expected ${label_ || 'argument'} to be of type \\`${this.type}\\` but received type \\`${(0, is_1.default)(value)}\\``;\n },\n validator: value => is_1.default[typeString](value)\n });\n }\n /**\n @hidden\n */\n [base_predicate_1.testSymbol](value, main, label, idLabel) {\n // Create a map of labels -> received errors.\n const errors = new Map();\n for (const { validator, message } of this.context.validators) {\n if (this.options.optional === true && value === undefined) {\n continue;\n }\n let result;\n try {\n result = validator(value);\n }\n catch (error) {\n // Any errors caught means validators couldn't process the input.\n result = error;\n }\n if (result === true) {\n continue;\n }\n const label2 = is_1.default.function_(label) ? label() : label;\n const labelWithTick = (label2 && idLabel) ? `\\`${label2}\\`` : label2;\n const label_ = labelWithTick ?\n `${this.type} ${labelWithTick}` :\n this.type;\n const mapKey = label2 || this.type;\n // Get the current errors encountered for this label.\n const currentErrors = errors.get(mapKey);\n // Pre-generate the error message that will be reported to the user.\n const errorMessage = message(value, label_, result);\n // If we already have any errors for this label.\n if (currentErrors) {\n // If we don't already have this error logged, add it.\n currentErrors.add(errorMessage);\n }\n else {\n // Set this label and error in the full map.\n errors.set(mapKey, new Set([errorMessage]));\n }\n }\n // If we have any errors to report, throw.\n if (errors.size > 0) {\n // Generate the `error.message` property.\n const message = (0, generate_argument_error_message_1.generateArgumentErrorMessage)(errors);\n throw new argument_error_1.ArgumentError(message, main, errors);\n }\n }\n /**\n @hidden\n */\n get [exports.validatorSymbol]() {\n return this.context.validators;\n }\n /**\n Invert the following validators.\n */\n get not() {\n return (0, not_1.not)(this);\n }\n /**\n Test if the value matches a custom validation function. The validation function should return an object containing a `validator` and `message`. If the `validator` is `false`, the validation fails and the `message` will be used as error message. If the `message` is a function, the function is invoked with the `label` as argument to let you further customize the error message.\n\n @param customValidator - Custom validation function.\n */\n validate(customValidator) {\n return this.addValidator({\n message: (_, label, error) => typeof error === 'string' ?\n `(${label}) ${error}` :\n error(label),\n validator: value => {\n const { message, validator } = customValidator(value);\n if (validator) {\n return true;\n }\n return message;\n }\n });\n }\n /**\n Test if the value matches a custom validation function. The validation function should return `true` if the value passes the function. If the function either returns `false` or a string, the function fails and the string will be used as error message.\n\n @param validator - Validation function.\n */\n is(validator) {\n return this.addValidator({\n message: (value, label, error) => (error ?\n `(${label}) ${error}` :\n `Expected ${label} \\`${value}\\` to pass custom validation function`),\n validator\n });\n }\n /**\n Provide a new error message to be thrown when the validation fails.\n\n @param newMessage - Either a string containing the new message or a function returning the new message.\n\n @example\n ```\n ow('🌈', 'unicorn', ow.string.equals('🦄').message('Expected unicorn, got rainbow'));\n //=> ArgumentError: Expected unicorn, got rainbow\n ```\n\n @example\n ```\n ow('🌈', ow.string.minLength(5).message((value, label) => `Expected ${label}, to have a minimum length of 5, got \\`${value}\\``));\n //=> ArgumentError: Expected string, to be have a minimum length of 5, got `🌈`\n ```\n */\n message(newMessage) {\n const { validators } = this.context;\n validators[validators.length - 1].message = (value, label) => {\n if (typeof newMessage === 'function') {\n return newMessage(value, label);\n }\n return newMessage;\n };\n return this;\n }\n /**\n Register a new validator.\n\n @param validator - Validator to register.\n */\n addValidator(validator) {\n this.context.validators.push(validator);\n return this;\n }\n}\nexports.Predicate = Predicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SetPredicate = void 0;\nconst isEqual = require(\"lodash.isequal\");\nconst has_items_1 = require(\"../utils/has-items\");\nconst of_type_1 = require(\"../utils/of-type\");\nconst predicate_1 = require(\"./predicate\");\nclass SetPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('Set', options);\n }\n /**\n Test a Set to have a specific size.\n\n @param size - The size of the Set.\n */\n size(size) {\n return this.addValidator({\n message: (set, label) => `Expected ${label} to have size \\`${size}\\`, got \\`${set.size}\\``,\n validator: set => set.size === size\n });\n }\n /**\n Test a Set to have a minimum size.\n\n @param size - The minimum size of the Set.\n */\n minSize(size) {\n return this.addValidator({\n message: (set, label) => `Expected ${label} to have a minimum size of \\`${size}\\`, got \\`${set.size}\\``,\n validator: set => set.size >= size,\n negatedMessage: (set, label) => `Expected ${label} to have a maximum size of \\`${size - 1}\\`, got \\`${set.size}\\``\n });\n }\n /**\n Test a Set to have a maximum size.\n\n @param size - The maximum size of the Set.\n */\n maxSize(size) {\n return this.addValidator({\n message: (set, label) => `Expected ${label} to have a maximum size of \\`${size}\\`, got \\`${set.size}\\``,\n validator: set => set.size <= size,\n negatedMessage: (set, label) => `Expected ${label} to have a minimum size of \\`${size + 1}\\`, got \\`${set.size}\\``\n });\n }\n /**\n Test a Set to include all the provided items. The items are tested by identity, not structure.\n\n @param items - The items that should be a item in the Set.\n */\n has(...items) {\n return this.addValidator({\n message: (_, label, missingItems) => `Expected ${label} to have items \\`${JSON.stringify(missingItems)}\\``,\n validator: set => (0, has_items_1.default)(set, items)\n });\n }\n /**\n Test a Set to include any of the provided items. The items are tested by identity, not structure.\n\n @param items - The items that could be a item in the Set.\n */\n hasAny(...items) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any item of \\`${JSON.stringify(items)}\\``,\n validator: set => items.some(item => set.has(item))\n });\n }\n /**\n Test all the items in the Set to match the provided predicate.\n\n @param predicate - The predicate that should be applied against every item in the Set.\n */\n ofType(predicate) {\n return this.addValidator({\n message: (_, label, error) => `(${label}) ${error}`,\n validator: set => (0, of_type_1.default)(set, 'values', predicate)\n });\n }\n /**\n Test a Set to be empty.\n */\n get empty() {\n return this.addValidator({\n message: (set, label) => `Expected ${label} to be empty, got \\`${JSON.stringify([...set])}\\``,\n validator: set => set.size === 0\n });\n }\n /**\n Test a Set to be not empty.\n */\n get nonEmpty() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to not be empty`,\n validator: set => set.size > 0\n });\n }\n /**\n Test a Set to be deeply equal to the provided Set.\n\n @param expected - Expected Set to match.\n */\n deepEqual(expected) {\n return this.addValidator({\n message: (set, label) => `Expected ${label} to be deeply equal to \\`${JSON.stringify([...expected])}\\`, got \\`${JSON.stringify([...set])}\\``,\n validator: set => isEqual(set, expected)\n });\n }\n}\nexports.SetPredicate = SetPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StringPredicate = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst valiDate = require(\"vali-date\");\nconst predicate_1 = require(\"./predicate\");\nclass StringPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('string', options);\n }\n /**\n Test a string to have a specific length.\n\n @param length - The length of the string.\n */\n length(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have length \\`${length}\\`, got \\`${value}\\``,\n validator: value => value.length === length\n });\n }\n /**\n Test a string to have a minimum length.\n\n @param length - The minimum length of the string.\n */\n minLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum length of \\`${length}\\`, got \\`${value}\\``,\n validator: value => value.length >= length,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \\`${length - 1}\\`, got \\`${value}\\``\n });\n }\n /**\n Test a string to have a maximum length.\n\n @param length - The maximum length of the string.\n */\n maxLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum length of \\`${length}\\`, got \\`${value}\\``,\n validator: value => value.length <= length,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \\`${length + 1}\\`, got \\`${value}\\``\n });\n }\n /**\n Test a string against a regular expression.\n\n @param regex - The regular expression to match the value with.\n */\n matches(regex) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to match \\`${regex}\\`, got \\`${value}\\``,\n validator: value => regex.test(value)\n });\n }\n /**\n Test a string to start with a specific value.\n\n @param searchString - The value that should be the start of the string.\n */\n startsWith(searchString) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to start with \\`${searchString}\\`, got \\`${value}\\``,\n validator: value => value.startsWith(searchString)\n });\n }\n /**\n Test a string to end with a specific value.\n\n @param searchString - The value that should be the end of the string.\n */\n endsWith(searchString) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to end with \\`${searchString}\\`, got \\`${value}\\``,\n validator: value => value.endsWith(searchString)\n });\n }\n /**\n Test a string to include a specific value.\n\n @param searchString - The value that should be included in the string.\n */\n includes(searchString) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to include \\`${searchString}\\`, got \\`${value}\\``,\n validator: value => value.includes(searchString)\n });\n }\n /**\n Test if the string is an element of the provided list.\n\n @param list - List of possible values.\n */\n oneOf(list) {\n return this.addValidator({\n message: (value, label) => {\n let printedList = JSON.stringify(list);\n if (list.length > 10) {\n const overflow = list.length - 10;\n printedList = JSON.stringify(list.slice(0, 10)).replace(/]$/, `,…+${overflow} more]`);\n }\n return `Expected ${label} to be one of \\`${printedList}\\`, got \\`${value}\\``;\n },\n validator: value => list.includes(value)\n });\n }\n /**\n Test a string to be empty.\n */\n get empty() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be empty, got \\`${value}\\``,\n validator: value => value === ''\n });\n }\n /**\n Test a string to be not empty.\n */\n get nonEmpty() {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to not be empty`,\n validator: value => value !== ''\n });\n }\n /**\n Test a string to be equal to a specified string.\n\n @param expected - Expected value to match.\n */\n equals(expected) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be equal to \\`${expected}\\`, got \\`${value}\\``,\n validator: value => value === expected\n });\n }\n /**\n Test a string to be alphanumeric.\n */\n get alphanumeric() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be alphanumeric, got \\`${value}\\``,\n validator: value => /^[a-z\\d]+$/i.test(value)\n });\n }\n /**\n Test a string to be alphabetical.\n */\n get alphabetical() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be alphabetical, got \\`${value}\\``,\n validator: value => /^[a-z]+$/gi.test(value)\n });\n }\n /**\n Test a string to be numeric.\n */\n get numeric() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be numeric, got \\`${value}\\``,\n validator: value => /^[+-]?\\d+$/i.test(value)\n });\n }\n /**\n Test a string to be a valid date.\n */\n get date() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be a date, got \\`${value}\\``,\n validator: valiDate\n });\n }\n /**\n Test a non-empty string to be lowercase. Matching both alphabetical & numbers.\n */\n get lowercase() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be lowercase, got \\`${value}\\``,\n validator: value => value.trim() !== '' && value === value.toLowerCase()\n });\n }\n /**\n Test a non-empty string to be uppercase. Matching both alphabetical & numbers.\n */\n get uppercase() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be uppercase, got \\`${value}\\``,\n validator: value => value.trim() !== '' && value === value.toUpperCase()\n });\n }\n /**\n Test a string to be a valid URL.\n */\n get url() {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to be a URL, got \\`${value}\\``,\n validator: is_1.default.urlString\n });\n }\n}\nexports.StringPredicate = StringPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TypedArrayPredicate = void 0;\nconst predicate_1 = require(\"./predicate\");\nclass TypedArrayPredicate extends predicate_1.Predicate {\n /**\n Test a typed array to have a specific byte length.\n\n @param byteLength - The byte length of the typed array.\n */\n byteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength === byteLength\n });\n }\n /**\n Test a typed array to have a minimum byte length.\n\n @param byteLength - The minimum byte length of the typed array.\n */\n minByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength >= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength - 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n /**\n Test a typed array to have a minimum byte length.\n\n @param length - The minimum byte length of the typed array.\n */\n maxByteLength(byteLength) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum byte length of \\`${byteLength}\\`, got \\`${value.byteLength}\\``,\n validator: value => value.byteLength <= byteLength,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum byte length of \\`${byteLength + 1}\\`, got \\`${value.byteLength}\\``\n });\n }\n /**\n Test a typed array to have a specific length.\n\n @param length - The length of the typed array.\n */\n length(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have length \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length === length\n });\n }\n /**\n Test a typed array to have a minimum length.\n\n @param length - The minimum length of the typed array.\n */\n minLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a minimum length of \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length >= length,\n negatedMessage: (value, label) => `Expected ${label} to have a maximum length of \\`${length - 1}\\`, got \\`${value.length}\\``\n });\n }\n /**\n Test a typed array to have a maximum length.\n\n @param length - The maximum length of the typed array.\n */\n maxLength(length) {\n return this.addValidator({\n message: (value, label) => `Expected ${label} to have a maximum length of \\`${length}\\`, got \\`${value.length}\\``,\n validator: value => value.length <= length,\n negatedMessage: (value, label) => `Expected ${label} to have a minimum length of \\`${length + 1}\\`, got \\`${value.length}\\``\n });\n }\n}\nexports.TypedArrayPredicate = TypedArrayPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WeakMapPredicate = void 0;\nconst has_items_1 = require(\"../utils/has-items\");\nconst predicate_1 = require(\"./predicate\");\nclass WeakMapPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('WeakMap', options);\n }\n /**\n Test a WeakMap to include all the provided keys. The keys are tested by identity, not structure.\n\n @param keys - The keys that should be a key in the WeakMap.\n */\n hasKeys(...keys) {\n return this.addValidator({\n message: (_, label, missingKeys) => `Expected ${label} to have keys \\`${JSON.stringify(missingKeys)}\\``,\n validator: map => (0, has_items_1.default)(map, keys)\n });\n }\n /**\n Test a WeakMap to include any of the provided keys. The keys are tested by identity, not structure.\n\n @param keys - The keys that could be a key in the WeakMap.\n */\n hasAnyKeys(...keys) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any key of \\`${JSON.stringify(keys)}\\``,\n validator: map => keys.some(key => map.has(key))\n });\n }\n}\nexports.WeakMapPredicate = WeakMapPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.WeakSetPredicate = void 0;\nconst has_items_1 = require(\"../utils/has-items\");\nconst predicate_1 = require(\"./predicate\");\nclass WeakSetPredicate extends predicate_1.Predicate {\n /**\n @hidden\n */\n constructor(options) {\n super('WeakSet', options);\n }\n /**\n Test a WeakSet to include all the provided items. The items are tested by identity, not structure.\n\n @param items - The items that should be a item in the WeakSet.\n */\n has(...items) {\n return this.addValidator({\n message: (_, label, missingItems) => `Expected ${label} to have items \\`${JSON.stringify(missingItems)}\\``,\n validator: set => (0, has_items_1.default)(set, items)\n });\n }\n /**\n Test a WeakSet to include any of the provided items. The items are tested by identity, not structure.\n\n @param items - The items that could be a item in the WeakSet.\n */\n hasAny(...items) {\n return this.addValidator({\n message: (_, label) => `Expected ${label} to have any item of \\`${JSON.stringify(items)}\\``,\n validator: set => items.some(item => set.has(item))\n });\n }\n}\nexports.WeakSetPredicate = WeakSetPredicate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst base_predicate_1 = require(\"./predicates/base-predicate\");\n/**\nValidate the value against the provided predicate.\n\n@hidden\n\n@param value - Value to test.\n@param label - Label which should be used in error messages.\n@param predicate - Predicate to test to value against.\n@param idLabel - If true, the label is a variable or type. Default: true.\n*/\nfunction test(value, label, predicate, idLabel = true) {\n predicate[base_predicate_1.testSymbol](value, test, label, idLabel);\n}\nexports.default = test;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateArgumentErrorMessage = void 0;\n/**\nGenerates a complete message from all errors generated by predicates.\n\n@param errors - The errors generated by the predicates.\n@param isAny - If this function is called from the any argument.\n@hidden\n*/\nconst generateArgumentErrorMessage = (errors, isAny = false) => {\n const message = [];\n const errorArray = [...errors.entries()];\n const anyErrorWithoutOneItemOnly = errorArray.some(([, array]) => array.size !== 1);\n // If only one error \"key\" is present, enumerate all of those errors only.\n if (errorArray.length === 1) {\n const [, returnedErrors] = errorArray[0];\n if (!isAny && returnedErrors.size === 1) {\n const [errorMessage] = returnedErrors;\n return errorMessage;\n }\n for (const entry of returnedErrors) {\n message.push(`${isAny ? ' - ' : ''}${entry}`);\n }\n return message.join('\\n');\n }\n // If every predicate returns just one error, enumerate them as is.\n if (!anyErrorWithoutOneItemOnly) {\n return errorArray.map(([, [item]]) => ` - ${item}`).join('\\n');\n }\n // Else, iterate through all the errors and enumerate them.\n for (const [key, value] of errorArray) {\n message.push(`Errors from the \"${key}\" predicate:`);\n for (const entry of value) {\n message.push(` - ${entry}`);\n }\n }\n return message.join('\\n');\n};\nexports.generateArgumentErrorMessage = generateArgumentErrorMessage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.generateStackTrace = void 0;\n/**\nGenerates a useful stacktrace that points to the user's code where the error happened on platforms without the `Error.captureStackTrace()` method.\n\n@hidden\n*/\nconst generateStackTrace = () => {\n const stack = new RangeError('INTERNAL_OW_ERROR').stack;\n return stack;\n};\nexports.generateStackTrace = generateStackTrace;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\nRetrieve the missing values in a collection based on an array of items.\n\n@hidden\n\n@param source - Source collection to search through.\n@param items - Items to search for.\n@param maxValues - Maximum number of values after the search process is stopped. Default: 5.\n*/\nexports.default = (source, items, maxValues = 5) => {\n const missingValues = [];\n for (const value of items) {\n if (source.has(value)) {\n continue;\n }\n missingValues.push(value);\n if (missingValues.length === maxValues) {\n return missingValues;\n }\n }\n return missingValues.length === 0 ? true : missingValues;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.inferLabel = void 0;\nconst inferLabel = () => { };\nexports.inferLabel = inferLabel;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.exact = exports.partial = void 0;\nconst is_1 = require(\"@sindresorhus/is\");\nconst test_1 = require(\"../test\");\nconst base_predicate_1 = require(\"../predicates/base-predicate\");\n/**\nTest if the `object` matches the `shape` partially.\n\n@hidden\n\n@param object - Object to test against the provided shape.\n@param shape - Shape to test the object against.\n@param parent - Name of the parent property.\n*/\nfunction partial(object, shape, parent) {\n try {\n for (const key of Object.keys(shape)) {\n const label = parent ? `${parent}.${key}` : key;\n if ((0, base_predicate_1.isPredicate)(shape[key])) {\n (0, test_1.default)(object[key], label, shape[key]);\n }\n else if (is_1.default.plainObject(shape[key])) {\n const result = partial(object[key], shape[key], label);\n if (result !== true) {\n return result;\n }\n }\n }\n return true;\n }\n catch (error) {\n return error.message;\n }\n}\nexports.partial = partial;\n/**\nTest if the `object` matches the `shape` exactly.\n\n@hidden\n\n@param object - Object to test against the provided shape.\n@param shape - Shape to test the object against.\n@param parent - Name of the parent property.\n*/\nfunction exact(object, shape, parent, isArray) {\n try {\n const objectKeys = new Set(Object.keys(object));\n for (const key of Object.keys(shape)) {\n objectKeys.delete(key);\n const label = parent ? `${parent}.${key}` : key;\n if ((0, base_predicate_1.isPredicate)(shape[key])) {\n (0, test_1.default)(object[key], label, shape[key]);\n }\n else if (is_1.default.plainObject(shape[key])) {\n if (!Object.prototype.hasOwnProperty.call(object, key)) {\n return `Expected \\`${label}\\` to exist`;\n }\n const result = exact(object[key], shape[key], label);\n if (result !== true) {\n return result;\n }\n }\n }\n if (objectKeys.size > 0) {\n const firstKey = [...objectKeys.keys()][0];\n const label = parent ? `${parent}.${firstKey}` : firstKey;\n return `Did not expect ${isArray ? 'element' : 'property'} \\`${label}\\` to exist, got \\`${object[firstKey]}\\``;\n }\n return true;\n }\n catch (error) {\n return error.message;\n }\n}\nexports.exact = exact;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst is_1 = require(\"@sindresorhus/is\");\nconst test_1 = require(\"../test\");\nconst ofTypeDeep = (object, predicate) => {\n if (!is_1.default.plainObject(object)) {\n (0, test_1.default)(object, 'deep values', predicate, false);\n return true;\n }\n return Object.values(object).every(value => ofTypeDeep(value, predicate));\n};\n/**\nTest all the values in the object against a provided predicate.\n\n@hidden\n\n@param predicate - Predicate to test every value in the given object against.\n*/\nexports.default = (object, predicate) => {\n try {\n return ofTypeDeep(object, predicate);\n }\n catch (error) {\n return error.message;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nconst test_1 = require(\"../test\");\n/**\nTest all the values in the collection against a provided predicate.\n\n@hidden\n@param source Source collection to test.\n@param name The name to call the collection of values, such as `values` or `keys`.\n@param predicate Predicate to test every item in the source collection against.\n*/\nexports.default = (source, name, predicate) => {\n try {\n for (const item of source) {\n (0, test_1.default)(item, name, predicate, false);\n }\n return true;\n }\n catch (error) {\n return error.message;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.default = () => Math.random().toString(16).slice(2);\n","// 'path' module extracted from Node.js v8.11.1 (only the posix part)\n// transplited with Babel\n\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nfunction assertPath(path) {\n if (typeof path !== 'string') {\n throw new TypeError('Path must be a string. Received ' + JSON.stringify(path));\n }\n}\n\n// Resolves . and .. elements in a path with directory names\nfunction normalizeStringPosix(path, allowAboveRoot) {\n var res = '';\n var lastSegmentLength = 0;\n var lastSlash = -1;\n var dots = 0;\n var code;\n for (var i = 0; i <= path.length; ++i) {\n if (i < path.length)\n code = path.charCodeAt(i);\n else if (code === 47 /*/*/)\n break;\n else\n code = 47 /*/*/;\n if (code === 47 /*/*/) {\n if (lastSlash === i - 1 || dots === 1) {\n // NOOP\n } else if (lastSlash !== i - 1 && dots === 2) {\n if (res.length < 2 || lastSegmentLength !== 2 || res.charCodeAt(res.length - 1) !== 46 /*.*/ || res.charCodeAt(res.length - 2) !== 46 /*.*/) {\n if (res.length > 2) {\n var lastSlashIndex = res.lastIndexOf('/');\n if (lastSlashIndex !== res.length - 1) {\n if (lastSlashIndex === -1) {\n res = '';\n lastSegmentLength = 0;\n } else {\n res = res.slice(0, lastSlashIndex);\n lastSegmentLength = res.length - 1 - res.lastIndexOf('/');\n }\n lastSlash = i;\n dots = 0;\n continue;\n }\n } else if (res.length === 2 || res.length === 1) {\n res = '';\n lastSegmentLength = 0;\n lastSlash = i;\n dots = 0;\n continue;\n }\n }\n if (allowAboveRoot) {\n if (res.length > 0)\n res += '/..';\n else\n res = '..';\n lastSegmentLength = 2;\n }\n } else {\n if (res.length > 0)\n res += '/' + path.slice(lastSlash + 1, i);\n else\n res = path.slice(lastSlash + 1, i);\n lastSegmentLength = i - lastSlash - 1;\n }\n lastSlash = i;\n dots = 0;\n } else if (code === 46 /*.*/ && dots !== -1) {\n ++dots;\n } else {\n dots = -1;\n }\n }\n return res;\n}\n\nfunction _format(sep, pathObject) {\n var dir = pathObject.dir || pathObject.root;\n var base = pathObject.base || (pathObject.name || '') + (pathObject.ext || '');\n if (!dir) {\n return base;\n }\n if (dir === pathObject.root) {\n return dir + base;\n }\n return dir + sep + base;\n}\n\nvar posix = {\n // path.resolve([from ...], to)\n resolve: function resolve() {\n var resolvedPath = '';\n var resolvedAbsolute = false;\n var cwd;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path;\n if (i >= 0)\n path = arguments[i];\n else {\n if (cwd === undefined)\n cwd = process.cwd();\n path = cwd;\n }\n\n assertPath(path);\n\n // Skip empty entries\n if (path.length === 0) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charCodeAt(0) === 47 /*/*/;\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeStringPosix(resolvedPath, !resolvedAbsolute);\n\n if (resolvedAbsolute) {\n if (resolvedPath.length > 0)\n return '/' + resolvedPath;\n else\n return '/';\n } else if (resolvedPath.length > 0) {\n return resolvedPath;\n } else {\n return '.';\n }\n },\n\n normalize: function normalize(path) {\n assertPath(path);\n\n if (path.length === 0) return '.';\n\n var isAbsolute = path.charCodeAt(0) === 47 /*/*/;\n var trailingSeparator = path.charCodeAt(path.length - 1) === 47 /*/*/;\n\n // Normalize the path\n path = normalizeStringPosix(path, !isAbsolute);\n\n if (path.length === 0 && !isAbsolute) path = '.';\n if (path.length > 0 && trailingSeparator) path += '/';\n\n if (isAbsolute) return '/' + path;\n return path;\n },\n\n isAbsolute: function isAbsolute(path) {\n assertPath(path);\n return path.length > 0 && path.charCodeAt(0) === 47 /*/*/;\n },\n\n join: function join() {\n if (arguments.length === 0)\n return '.';\n var joined;\n for (var i = 0; i < arguments.length; ++i) {\n var arg = arguments[i];\n assertPath(arg);\n if (arg.length > 0) {\n if (joined === undefined)\n joined = arg;\n else\n joined += '/' + arg;\n }\n }\n if (joined === undefined)\n return '.';\n return posix.normalize(joined);\n },\n\n relative: function relative(from, to) {\n assertPath(from);\n assertPath(to);\n\n if (from === to) return '';\n\n from = posix.resolve(from);\n to = posix.resolve(to);\n\n if (from === to) return '';\n\n // Trim any leading backslashes\n var fromStart = 1;\n for (; fromStart < from.length; ++fromStart) {\n if (from.charCodeAt(fromStart) !== 47 /*/*/)\n break;\n }\n var fromEnd = from.length;\n var fromLen = fromEnd - fromStart;\n\n // Trim any leading backslashes\n var toStart = 1;\n for (; toStart < to.length; ++toStart) {\n if (to.charCodeAt(toStart) !== 47 /*/*/)\n break;\n }\n var toEnd = to.length;\n var toLen = toEnd - toStart;\n\n // Compare paths to find the longest common path from root\n var length = fromLen < toLen ? fromLen : toLen;\n var lastCommonSep = -1;\n var i = 0;\n for (; i <= length; ++i) {\n if (i === length) {\n if (toLen > length) {\n if (to.charCodeAt(toStart + i) === 47 /*/*/) {\n // We get here if `from` is the exact base path for `to`.\n // For example: from='/foo/bar'; to='/foo/bar/baz'\n return to.slice(toStart + i + 1);\n } else if (i === 0) {\n // We get here if `from` is the root\n // For example: from='/'; to='/foo'\n return to.slice(toStart + i);\n }\n } else if (fromLen > length) {\n if (from.charCodeAt(fromStart + i) === 47 /*/*/) {\n // We get here if `to` is the exact base path for `from`.\n // For example: from='/foo/bar/baz'; to='/foo/bar'\n lastCommonSep = i;\n } else if (i === 0) {\n // We get here if `to` is the root.\n // For example: from='/foo'; to='/'\n lastCommonSep = 0;\n }\n }\n break;\n }\n var fromCode = from.charCodeAt(fromStart + i);\n var toCode = to.charCodeAt(toStart + i);\n if (fromCode !== toCode)\n break;\n else if (fromCode === 47 /*/*/)\n lastCommonSep = i;\n }\n\n var out = '';\n // Generate the relative path based on the path difference between `to`\n // and `from`\n for (i = fromStart + lastCommonSep + 1; i <= fromEnd; ++i) {\n if (i === fromEnd || from.charCodeAt(i) === 47 /*/*/) {\n if (out.length === 0)\n out += '..';\n else\n out += '/..';\n }\n }\n\n // Lastly, append the rest of the destination (`to`) path that comes after\n // the common path parts\n if (out.length > 0)\n return out + to.slice(toStart + lastCommonSep);\n else {\n toStart += lastCommonSep;\n if (to.charCodeAt(toStart) === 47 /*/*/)\n ++toStart;\n return to.slice(toStart);\n }\n },\n\n _makeLong: function _makeLong(path) {\n return path;\n },\n\n dirname: function dirname(path) {\n assertPath(path);\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) return '//';\n return path.slice(0, end);\n },\n\n basename: function basename(path, ext) {\n if (ext !== undefined && typeof ext !== 'string') throw new TypeError('\"ext\" argument must be a string');\n assertPath(path);\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n if (ext !== undefined && ext.length > 0 && ext.length <= path.length) {\n if (ext.length === path.length && ext === path) return '';\n var extIdx = ext.length - 1;\n var firstNonSlashEnd = -1;\n for (i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else {\n if (firstNonSlashEnd === -1) {\n // We saw the first non-path separator, remember this index in case\n // we need it if the extension ends up not matching\n matchedSlash = false;\n firstNonSlashEnd = i + 1;\n }\n if (extIdx >= 0) {\n // Try to match the explicit extension\n if (code === ext.charCodeAt(extIdx)) {\n if (--extIdx === -1) {\n // We matched the extension, so mark this as the end of our path\n // component\n end = i;\n }\n } else {\n // Extension does not match, so our result is the entire path\n // component\n extIdx = -1;\n end = firstNonSlashEnd;\n }\n }\n }\n }\n\n if (start === end) end = firstNonSlashEnd;else if (end === -1) end = path.length;\n return path.slice(start, end);\n } else {\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n }\n },\n\n extname: function extname(path) {\n assertPath(path);\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n },\n\n format: function format(pathObject) {\n if (pathObject === null || typeof pathObject !== 'object') {\n throw new TypeError('The \"pathObject\" argument must be of type Object. Received type ' + typeof pathObject);\n }\n return _format('/', pathObject);\n },\n\n parse: function parse(path) {\n assertPath(path);\n\n var ret = { root: '', dir: '', base: '', ext: '', name: '' };\n if (path.length === 0) return ret;\n var code = path.charCodeAt(0);\n var isAbsolute = code === 47 /*/*/;\n var start;\n if (isAbsolute) {\n ret.root = '/';\n start = 1;\n } else {\n start = 0;\n }\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n var i = path.length - 1;\n\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n\n // Get non-dir info\n for (; i >= start; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1) startDot = i;else if (preDotState !== 1) preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n if (end !== -1) {\n if (startPart === 0 && isAbsolute) ret.base = ret.name = path.slice(1, end);else ret.base = ret.name = path.slice(startPart, end);\n }\n } else {\n if (startPart === 0 && isAbsolute) {\n ret.name = path.slice(1, startDot);\n ret.base = path.slice(1, end);\n } else {\n ret.name = path.slice(startPart, startDot);\n ret.base = path.slice(startPart, end);\n }\n ret.ext = path.slice(startDot, end);\n }\n\n if (startPart > 0) ret.dir = path.slice(0, startPart - 1);else if (isAbsolute) ret.dir = '/';\n\n return ret;\n },\n\n sep: '/',\n delimiter: ':',\n win32: null,\n posix: null\n};\n\nposix.posix = posix;\n\nmodule.exports = posix;\n","(function (root) {\n \"use strict\";\n\n/***** unorm.js *****/\n\n/*\n * UnicodeNormalizer 1.0.0\n * Copyright (c) 2008 Matsuza\n * Dual licensed under the MIT (MIT-LICENSE.txt) and GPL (GPL-LICENSE.txt) licenses.\n * $Date: 2008-06-05 16:44:17 +0200 (Thu, 05 Jun 2008) $\n * $Rev: 13309 $\n */\n\n var DEFAULT_FEATURE = [null, 0, {}];\n var CACHE_THRESHOLD = 10;\n var SBase = 0xAC00, LBase = 0x1100, VBase = 0x1161, TBase = 0x11A7, LCount = 19, VCount = 21, TCount = 28;\n var NCount = VCount * TCount; // 588\n var SCount = LCount * NCount; // 11172\n\n var UChar = function(cp, feature){\n this.codepoint = cp;\n this.feature = feature;\n };\n\n // Strategies\n var cache = {};\n var cacheCounter = [];\n for (var i = 0; i <= 0xFF; ++i){\n cacheCounter[i] = 0;\n }\n\n function fromCache(next, cp, needFeature){\n var ret = cache[cp];\n if(!ret){\n ret = next(cp, needFeature);\n if(!!ret.feature && ++cacheCounter[(cp >> 8) & 0xFF] > CACHE_THRESHOLD){\n cache[cp] = ret;\n }\n }\n return ret;\n }\n\n function fromData(next, cp, needFeature){\n var hash = cp & 0xFF00;\n var dunit = UChar.udata[hash] || {};\n var f = dunit[cp];\n return f ? new UChar(cp, f) : new UChar(cp, DEFAULT_FEATURE);\n }\n function fromCpOnly(next, cp, needFeature){\n return !!needFeature ? next(cp, needFeature) : new UChar(cp, null);\n }\n function fromRuleBasedJamo(next, cp, needFeature){\n var j;\n if(cp < LBase || (LBase + LCount <= cp && cp < SBase) || (SBase + SCount < cp)){\n return next(cp, needFeature);\n }\n if(LBase <= cp && cp < LBase + LCount){\n var c = {};\n var base = (cp - LBase) * VCount;\n for (j = 0; j < VCount; ++j){\n c[VBase + j] = SBase + TCount * (j + base);\n }\n return new UChar(cp, [,,c]);\n }\n\n var SIndex = cp - SBase;\n var TIndex = SIndex % TCount;\n var feature = [];\n if(TIndex !== 0){\n feature[0] = [SBase + SIndex - TIndex, TBase + TIndex];\n } else {\n feature[0] = [LBase + Math.floor(SIndex / NCount), VBase + Math.floor((SIndex % NCount) / TCount)];\n feature[2] = {};\n for (j = 1; j < TCount; ++j){\n feature[2][TBase + j] = cp + j;\n }\n }\n return new UChar(cp, feature);\n }\n function fromCpFilter(next, cp, needFeature){\n return cp < 60 || 13311 < cp && cp < 42607 ? new UChar(cp, DEFAULT_FEATURE) : next(cp, needFeature);\n }\n\n var strategies = [fromCpFilter, fromCache, fromCpOnly, fromRuleBasedJamo, fromData];\n\n UChar.fromCharCode = strategies.reduceRight(function (next, strategy) {\n return function (cp, needFeature) {\n return strategy(next, cp, needFeature);\n };\n }, null);\n\n UChar.isHighSurrogate = function(cp){\n return cp >= 0xD800 && cp <= 0xDBFF;\n };\n UChar.isLowSurrogate = function(cp){\n return cp >= 0xDC00 && cp <= 0xDFFF;\n };\n\n UChar.prototype.prepFeature = function(){\n if(!this.feature){\n this.feature = UChar.fromCharCode(this.codepoint, true).feature;\n }\n };\n\n UChar.prototype.toString = function(){\n if(this.codepoint < 0x10000){\n return String.fromCharCode(this.codepoint);\n } else {\n var x = this.codepoint - 0x10000;\n return String.fromCharCode(Math.floor(x / 0x400) + 0xD800, x % 0x400 + 0xDC00);\n }\n };\n\n UChar.prototype.getDecomp = function(){\n this.prepFeature();\n return this.feature[0] || null;\n };\n\n UChar.prototype.isCompatibility = function(){\n this.prepFeature();\n return !!this.feature[1] && (this.feature[1] & (1 << 8));\n };\n UChar.prototype.isExclude = function(){\n this.prepFeature();\n return !!this.feature[1] && (this.feature[1] & (1 << 9));\n };\n UChar.prototype.getCanonicalClass = function(){\n this.prepFeature();\n return !!this.feature[1] ? (this.feature[1] & 0xff) : 0;\n };\n UChar.prototype.getComposite = function(following){\n this.prepFeature();\n if(!this.feature[2]){\n return null;\n }\n var cp = this.feature[2][following.codepoint];\n return cp ? UChar.fromCharCode(cp) : null;\n };\n\n var UCharIterator = function(str){\n this.str = str;\n this.cursor = 0;\n };\n UCharIterator.prototype.next = function(){\n if(!!this.str && this.cursor < this.str.length){\n var cp = this.str.charCodeAt(this.cursor++);\n var d;\n if(UChar.isHighSurrogate(cp) && this.cursor < this.str.length && UChar.isLowSurrogate((d = this.str.charCodeAt(this.cursor)))){\n cp = (cp - 0xD800) * 0x400 + (d -0xDC00) + 0x10000;\n ++this.cursor;\n }\n return UChar.fromCharCode(cp);\n } else {\n this.str = null;\n return null;\n }\n };\n\n var RecursDecompIterator = function(it, cano){\n this.it = it;\n this.canonical = cano;\n this.resBuf = [];\n };\n\n RecursDecompIterator.prototype.next = function(){\n function recursiveDecomp(cano, uchar){\n var decomp = uchar.getDecomp();\n if(!!decomp && !(cano && uchar.isCompatibility())){\n var ret = [];\n for(var i = 0; i < decomp.length; ++i){\n var a = recursiveDecomp(cano, UChar.fromCharCode(decomp[i]));\n ret = ret.concat(a);\n }\n return ret;\n } else {\n return [uchar];\n }\n }\n if(this.resBuf.length === 0){\n var uchar = this.it.next();\n if(!uchar){\n return null;\n }\n this.resBuf = recursiveDecomp(this.canonical, uchar);\n }\n return this.resBuf.shift();\n };\n\n var DecompIterator = function(it){\n this.it = it;\n this.resBuf = [];\n };\n\n DecompIterator.prototype.next = function(){\n var cc;\n if(this.resBuf.length === 0){\n do{\n var uchar = this.it.next();\n if(!uchar){\n break;\n }\n cc = uchar.getCanonicalClass();\n var inspt = this.resBuf.length;\n if(cc !== 0){\n for(; inspt > 0; --inspt){\n var uchar2 = this.resBuf[inspt - 1];\n var cc2 = uchar2.getCanonicalClass();\n if(cc2 <= cc){\n break;\n }\n }\n }\n this.resBuf.splice(inspt, 0, uchar);\n } while(cc !== 0);\n }\n return this.resBuf.shift();\n };\n\n var CompIterator = function(it){\n this.it = it;\n this.procBuf = [];\n this.resBuf = [];\n this.lastClass = null;\n };\n\n CompIterator.prototype.next = function(){\n while(this.resBuf.length === 0){\n var uchar = this.it.next();\n if(!uchar){\n this.resBuf = this.procBuf;\n this.procBuf = [];\n break;\n }\n if(this.procBuf.length === 0){\n this.lastClass = uchar.getCanonicalClass();\n this.procBuf.push(uchar);\n } else {\n var starter = this.procBuf[0];\n var composite = starter.getComposite(uchar);\n var cc = uchar.getCanonicalClass();\n if(!!composite && (this.lastClass < cc || this.lastClass === 0)){\n this.procBuf[0] = composite;\n } else {\n if(cc === 0){\n this.resBuf = this.procBuf;\n this.procBuf = [];\n }\n this.lastClass = cc;\n this.procBuf.push(uchar);\n }\n }\n }\n return this.resBuf.shift();\n };\n\n var createIterator = function(mode, str){\n switch(mode){\n case \"NFD\":\n return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true));\n case \"NFKD\":\n return new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false));\n case \"NFC\":\n return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), true)));\n case \"NFKC\":\n return new CompIterator(new DecompIterator(new RecursDecompIterator(new UCharIterator(str), false)));\n }\n throw mode + \" is invalid\";\n };\n var normalize = function(mode, str){\n var it = createIterator(mode, str);\n var ret = \"\";\n var uchar;\n while(!!(uchar = it.next())){\n ret += uchar.toString();\n }\n return ret;\n };\n\n /* API functions */\n function nfd(str){\n return normalize(\"NFD\", str);\n }\n\n function nfkd(str){\n return normalize(\"NFKD\", str);\n }\n\n function nfc(str){\n return normalize(\"NFC\", str);\n }\n\n function nfkc(str){\n return normalize(\"NFKC\", str);\n }\n\n/* Unicode data */\nUChar.udata={\n0:{60:[,,{824:8814}],61:[,,{824:8800}],62:[,,{824:8815}],65:[,,{768:192,769:193,770:194,771:195,772:256,774:258,775:550,776:196,777:7842,778:197,780:461,783:512,785:514,803:7840,805:7680,808:260}],66:[,,{775:7682,803:7684,817:7686}],67:[,,{769:262,770:264,775:266,780:268,807:199}],68:[,,{775:7690,780:270,803:7692,807:7696,813:7698,817:7694}],69:[,,{768:200,769:201,770:202,771:7868,772:274,774:276,775:278,776:203,777:7866,780:282,783:516,785:518,803:7864,807:552,808:280,813:7704,816:7706}],70:[,,{775:7710}],71:[,,{769:500,770:284,772:7712,774:286,775:288,780:486,807:290}],72:[,,{770:292,775:7714,776:7718,780:542,803:7716,807:7720,814:7722}],73:[,,{768:204,769:205,770:206,771:296,772:298,774:300,775:304,776:207,777:7880,780:463,783:520,785:522,803:7882,808:302,816:7724}],74:[,,{770:308}],75:[,,{769:7728,780:488,803:7730,807:310,817:7732}],76:[,,{769:313,780:317,803:7734,807:315,813:7740,817:7738}],77:[,,{769:7742,775:7744,803:7746}],78:[,,{768:504,769:323,771:209,775:7748,780:327,803:7750,807:325,813:7754,817:7752}],79:[,,{768:210,769:211,770:212,771:213,772:332,774:334,775:558,776:214,777:7886,779:336,780:465,783:524,785:526,795:416,803:7884,808:490}],80:[,,{769:7764,775:7766}],82:[,,{769:340,775:7768,780:344,783:528,785:530,803:7770,807:342,817:7774}],83:[,,{769:346,770:348,775:7776,780:352,803:7778,806:536,807:350}],84:[,,{775:7786,780:356,803:7788,806:538,807:354,813:7792,817:7790}],85:[,,{768:217,769:218,770:219,771:360,772:362,774:364,776:220,777:7910,778:366,779:368,780:467,783:532,785:534,795:431,803:7908,804:7794,808:370,813:7798,816:7796}],86:[,,{771:7804,803:7806}],87:[,,{768:7808,769:7810,770:372,775:7814,776:7812,803:7816}],88:[,,{775:7818,776:7820}],89:[,,{768:7922,769:221,770:374,771:7928,772:562,775:7822,776:376,777:7926,803:7924}],90:[,,{769:377,770:7824,775:379,780:381,803:7826,817:7828}],97:[,,{768:224,769:225,770:226,771:227,772:257,774:259,775:551,776:228,777:7843,778:229,780:462,783:513,785:515,803:7841,805:7681,808:261}],98:[,,{775:7683,803:7685,817:7687}],99:[,,{769:263,770:265,775:267,780:269,807:231}],100:[,,{775:7691,780:271,803:7693,807:7697,813:7699,817:7695}],101:[,,{768:232,769:233,770:234,771:7869,772:275,774:277,775:279,776:235,777:7867,780:283,783:517,785:519,803:7865,807:553,808:281,813:7705,816:7707}],102:[,,{775:7711}],103:[,,{769:501,770:285,772:7713,774:287,775:289,780:487,807:291}],104:[,,{770:293,775:7715,776:7719,780:543,803:7717,807:7721,814:7723,817:7830}],105:[,,{768:236,769:237,770:238,771:297,772:299,774:301,776:239,777:7881,780:464,783:521,785:523,803:7883,808:303,816:7725}],106:[,,{770:309,780:496}],107:[,,{769:7729,780:489,803:7731,807:311,817:7733}],108:[,,{769:314,780:318,803:7735,807:316,813:7741,817:7739}],109:[,,{769:7743,775:7745,803:7747}],110:[,,{768:505,769:324,771:241,775:7749,780:328,803:7751,807:326,813:7755,817:7753}],111:[,,{768:242,769:243,770:244,771:245,772:333,774:335,775:559,776:246,777:7887,779:337,780:466,783:525,785:527,795:417,803:7885,808:491}],112:[,,{769:7765,775:7767}],114:[,,{769:341,775:7769,780:345,783:529,785:531,803:7771,807:343,817:7775}],115:[,,{769:347,770:349,775:7777,780:353,803:7779,806:537,807:351}],116:[,,{775:7787,776:7831,780:357,803:7789,806:539,807:355,813:7793,817:7791}],117:[,,{768:249,769:250,770:251,771:361,772:363,774:365,776:252,777:7911,778:367,779:369,780:468,783:533,785:535,795:432,803:7909,804:7795,808:371,813:7799,816:7797}],118:[,,{771:7805,803:7807}],119:[,,{768:7809,769:7811,770:373,775:7815,776:7813,778:7832,803:7817}],120:[,,{775:7819,776:7821}],121:[,,{768:7923,769:253,770:375,771:7929,772:563,775:7823,776:255,777:7927,778:7833,803:7925}],122:[,,{769:378,770:7825,775:380,780:382,803:7827,817:7829}],160:[[32],256],168:[[32,776],256,{768:8173,769:901,834:8129}],170:[[97],256],175:[[32,772],256],178:[[50],256],179:[[51],256],180:[[32,769],256],181:[[956],256],184:[[32,807],256],185:[[49],256],186:[[111],256],188:[[49,8260,52],256],189:[[49,8260,50],256],190:[[51,8260,52],256],192:[[65,768]],193:[[65,769]],194:[[65,770],,{768:7846,769:7844,771:7850,777:7848}],195:[[65,771]],196:[[65,776],,{772:478}],197:[[65,778],,{769:506}],198:[,,{769:508,772:482}],199:[[67,807],,{769:7688}],200:[[69,768]],201:[[69,769]],202:[[69,770],,{768:7872,769:7870,771:7876,777:7874}],203:[[69,776]],204:[[73,768]],205:[[73,769]],206:[[73,770]],207:[[73,776],,{769:7726}],209:[[78,771]],210:[[79,768]],211:[[79,769]],212:[[79,770],,{768:7890,769:7888,771:7894,777:7892}],213:[[79,771],,{769:7756,772:556,776:7758}],214:[[79,776],,{772:554}],216:[,,{769:510}],217:[[85,768]],218:[[85,769]],219:[[85,770]],220:[[85,776],,{768:475,769:471,772:469,780:473}],221:[[89,769]],224:[[97,768]],225:[[97,769]],226:[[97,770],,{768:7847,769:7845,771:7851,777:7849}],227:[[97,771]],228:[[97,776],,{772:479}],229:[[97,778],,{769:507}],230:[,,{769:509,772:483}],231:[[99,807],,{769:7689}],232:[[101,768]],233:[[101,769]],234:[[101,770],,{768:7873,769:7871,771:7877,777:7875}],235:[[101,776]],236:[[105,768]],237:[[105,769]],238:[[105,770]],239:[[105,776],,{769:7727}],241:[[110,771]],242:[[111,768]],243:[[111,769]],244:[[111,770],,{768:7891,769:7889,771:7895,777:7893}],245:[[111,771],,{769:7757,772:557,776:7759}],246:[[111,776],,{772:555}],248:[,,{769:511}],249:[[117,768]],250:[[117,769]],251:[[117,770]],252:[[117,776],,{768:476,769:472,772:470,780:474}],253:[[121,769]],255:[[121,776]]},\n256:{256:[[65,772]],257:[[97,772]],258:[[65,774],,{768:7856,769:7854,771:7860,777:7858}],259:[[97,774],,{768:7857,769:7855,771:7861,777:7859}],260:[[65,808]],261:[[97,808]],262:[[67,769]],263:[[99,769]],264:[[67,770]],265:[[99,770]],266:[[67,775]],267:[[99,775]],268:[[67,780]],269:[[99,780]],270:[[68,780]],271:[[100,780]],274:[[69,772],,{768:7700,769:7702}],275:[[101,772],,{768:7701,769:7703}],276:[[69,774]],277:[[101,774]],278:[[69,775]],279:[[101,775]],280:[[69,808]],281:[[101,808]],282:[[69,780]],283:[[101,780]],284:[[71,770]],285:[[103,770]],286:[[71,774]],287:[[103,774]],288:[[71,775]],289:[[103,775]],290:[[71,807]],291:[[103,807]],292:[[72,770]],293:[[104,770]],296:[[73,771]],297:[[105,771]],298:[[73,772]],299:[[105,772]],300:[[73,774]],301:[[105,774]],302:[[73,808]],303:[[105,808]],304:[[73,775]],306:[[73,74],256],307:[[105,106],256],308:[[74,770]],309:[[106,770]],310:[[75,807]],311:[[107,807]],313:[[76,769]],314:[[108,769]],315:[[76,807]],316:[[108,807]],317:[[76,780]],318:[[108,780]],319:[[76,183],256],320:[[108,183],256],323:[[78,769]],324:[[110,769]],325:[[78,807]],326:[[110,807]],327:[[78,780]],328:[[110,780]],329:[[700,110],256],332:[[79,772],,{768:7760,769:7762}],333:[[111,772],,{768:7761,769:7763}],334:[[79,774]],335:[[111,774]],336:[[79,779]],337:[[111,779]],340:[[82,769]],341:[[114,769]],342:[[82,807]],343:[[114,807]],344:[[82,780]],345:[[114,780]],346:[[83,769],,{775:7780}],347:[[115,769],,{775:7781}],348:[[83,770]],349:[[115,770]],350:[[83,807]],351:[[115,807]],352:[[83,780],,{775:7782}],353:[[115,780],,{775:7783}],354:[[84,807]],355:[[116,807]],356:[[84,780]],357:[[116,780]],360:[[85,771],,{769:7800}],361:[[117,771],,{769:7801}],362:[[85,772],,{776:7802}],363:[[117,772],,{776:7803}],364:[[85,774]],365:[[117,774]],366:[[85,778]],367:[[117,778]],368:[[85,779]],369:[[117,779]],370:[[85,808]],371:[[117,808]],372:[[87,770]],373:[[119,770]],374:[[89,770]],375:[[121,770]],376:[[89,776]],377:[[90,769]],378:[[122,769]],379:[[90,775]],380:[[122,775]],381:[[90,780]],382:[[122,780]],383:[[115],256,{775:7835}],416:[[79,795],,{768:7900,769:7898,771:7904,777:7902,803:7906}],417:[[111,795],,{768:7901,769:7899,771:7905,777:7903,803:7907}],431:[[85,795],,{768:7914,769:7912,771:7918,777:7916,803:7920}],432:[[117,795],,{768:7915,769:7913,771:7919,777:7917,803:7921}],439:[,,{780:494}],452:[[68,381],256],453:[[68,382],256],454:[[100,382],256],455:[[76,74],256],456:[[76,106],256],457:[[108,106],256],458:[[78,74],256],459:[[78,106],256],460:[[110,106],256],461:[[65,780]],462:[[97,780]],463:[[73,780]],464:[[105,780]],465:[[79,780]],466:[[111,780]],467:[[85,780]],468:[[117,780]],469:[[220,772]],470:[[252,772]],471:[[220,769]],472:[[252,769]],473:[[220,780]],474:[[252,780]],475:[[220,768]],476:[[252,768]],478:[[196,772]],479:[[228,772]],480:[[550,772]],481:[[551,772]],482:[[198,772]],483:[[230,772]],486:[[71,780]],487:[[103,780]],488:[[75,780]],489:[[107,780]],490:[[79,808],,{772:492}],491:[[111,808],,{772:493}],492:[[490,772]],493:[[491,772]],494:[[439,780]],495:[[658,780]],496:[[106,780]],497:[[68,90],256],498:[[68,122],256],499:[[100,122],256],500:[[71,769]],501:[[103,769]],504:[[78,768]],505:[[110,768]],506:[[197,769]],507:[[229,769]],508:[[198,769]],509:[[230,769]],510:[[216,769]],511:[[248,769]],66045:[,220]},\n512:{512:[[65,783]],513:[[97,783]],514:[[65,785]],515:[[97,785]],516:[[69,783]],517:[[101,783]],518:[[69,785]],519:[[101,785]],520:[[73,783]],521:[[105,783]],522:[[73,785]],523:[[105,785]],524:[[79,783]],525:[[111,783]],526:[[79,785]],527:[[111,785]],528:[[82,783]],529:[[114,783]],530:[[82,785]],531:[[114,785]],532:[[85,783]],533:[[117,783]],534:[[85,785]],535:[[117,785]],536:[[83,806]],537:[[115,806]],538:[[84,806]],539:[[116,806]],542:[[72,780]],543:[[104,780]],550:[[65,775],,{772:480}],551:[[97,775],,{772:481}],552:[[69,807],,{774:7708}],553:[[101,807],,{774:7709}],554:[[214,772]],555:[[246,772]],556:[[213,772]],557:[[245,772]],558:[[79,775],,{772:560}],559:[[111,775],,{772:561}],560:[[558,772]],561:[[559,772]],562:[[89,772]],563:[[121,772]],658:[,,{780:495}],688:[[104],256],689:[[614],256],690:[[106],256],691:[[114],256],692:[[633],256],693:[[635],256],694:[[641],256],695:[[119],256],696:[[121],256],728:[[32,774],256],729:[[32,775],256],730:[[32,778],256],731:[[32,808],256],732:[[32,771],256],733:[[32,779],256],736:[[611],256],737:[[108],256],738:[[115],256],739:[[120],256],740:[[661],256],66272:[,220]},\n768:{768:[,230],769:[,230],770:[,230],771:[,230],772:[,230],773:[,230],774:[,230],775:[,230],776:[,230,{769:836}],777:[,230],778:[,230],779:[,230],780:[,230],781:[,230],782:[,230],783:[,230],784:[,230],785:[,230],786:[,230],787:[,230],788:[,230],789:[,232],790:[,220],791:[,220],792:[,220],793:[,220],794:[,232],795:[,216],796:[,220],797:[,220],798:[,220],799:[,220],800:[,220],801:[,202],802:[,202],803:[,220],804:[,220],805:[,220],806:[,220],807:[,202],808:[,202],809:[,220],810:[,220],811:[,220],812:[,220],813:[,220],814:[,220],815:[,220],816:[,220],817:[,220],818:[,220],819:[,220],820:[,1],821:[,1],822:[,1],823:[,1],824:[,1],825:[,220],826:[,220],827:[,220],828:[,220],829:[,230],830:[,230],831:[,230],832:[[768],230],833:[[769],230],834:[,230],835:[[787],230],836:[[776,769],230],837:[,240],838:[,230],839:[,220],840:[,220],841:[,220],842:[,230],843:[,230],844:[,230],845:[,220],846:[,220],848:[,230],849:[,230],850:[,230],851:[,220],852:[,220],853:[,220],854:[,220],855:[,230],856:[,232],857:[,220],858:[,220],859:[,230],860:[,233],861:[,234],862:[,234],863:[,233],864:[,234],865:[,234],866:[,233],867:[,230],868:[,230],869:[,230],870:[,230],871:[,230],872:[,230],873:[,230],874:[,230],875:[,230],876:[,230],877:[,230],878:[,230],879:[,230],884:[[697]],890:[[32,837],256],894:[[59]],900:[[32,769],256],901:[[168,769]],902:[[913,769]],903:[[183]],904:[[917,769]],905:[[919,769]],906:[[921,769]],908:[[927,769]],910:[[933,769]],911:[[937,769]],912:[[970,769]],913:[,,{768:8122,769:902,772:8121,774:8120,787:7944,788:7945,837:8124}],917:[,,{768:8136,769:904,787:7960,788:7961}],919:[,,{768:8138,769:905,787:7976,788:7977,837:8140}],921:[,,{768:8154,769:906,772:8153,774:8152,776:938,787:7992,788:7993}],927:[,,{768:8184,769:908,787:8008,788:8009}],929:[,,{788:8172}],933:[,,{768:8170,769:910,772:8169,774:8168,776:939,788:8025}],937:[,,{768:8186,769:911,787:8040,788:8041,837:8188}],938:[[921,776]],939:[[933,776]],940:[[945,769],,{837:8116}],941:[[949,769]],942:[[951,769],,{837:8132}],943:[[953,769]],944:[[971,769]],945:[,,{768:8048,769:940,772:8113,774:8112,787:7936,788:7937,834:8118,837:8115}],949:[,,{768:8050,769:941,787:7952,788:7953}],951:[,,{768:8052,769:942,787:7968,788:7969,834:8134,837:8131}],953:[,,{768:8054,769:943,772:8145,774:8144,776:970,787:7984,788:7985,834:8150}],959:[,,{768:8056,769:972,787:8000,788:8001}],961:[,,{787:8164,788:8165}],965:[,,{768:8058,769:973,772:8161,774:8160,776:971,787:8016,788:8017,834:8166}],969:[,,{768:8060,769:974,787:8032,788:8033,834:8182,837:8179}],970:[[953,776],,{768:8146,769:912,834:8151}],971:[[965,776],,{768:8162,769:944,834:8167}],972:[[959,769]],973:[[965,769]],974:[[969,769],,{837:8180}],976:[[946],256],977:[[952],256],978:[[933],256,{769:979,776:980}],979:[[978,769]],980:[[978,776]],981:[[966],256],982:[[960],256],1008:[[954],256],1009:[[961],256],1010:[[962],256],1012:[[920],256],1013:[[949],256],1017:[[931],256],66422:[,230],66423:[,230],66424:[,230],66425:[,230],66426:[,230]},\n1024:{1024:[[1045,768]],1025:[[1045,776]],1027:[[1043,769]],1030:[,,{776:1031}],1031:[[1030,776]],1036:[[1050,769]],1037:[[1048,768]],1038:[[1059,774]],1040:[,,{774:1232,776:1234}],1043:[,,{769:1027}],1045:[,,{768:1024,774:1238,776:1025}],1046:[,,{774:1217,776:1244}],1047:[,,{776:1246}],1048:[,,{768:1037,772:1250,774:1049,776:1252}],1049:[[1048,774]],1050:[,,{769:1036}],1054:[,,{776:1254}],1059:[,,{772:1262,774:1038,776:1264,779:1266}],1063:[,,{776:1268}],1067:[,,{776:1272}],1069:[,,{776:1260}],1072:[,,{774:1233,776:1235}],1075:[,,{769:1107}],1077:[,,{768:1104,774:1239,776:1105}],1078:[,,{774:1218,776:1245}],1079:[,,{776:1247}],1080:[,,{768:1117,772:1251,774:1081,776:1253}],1081:[[1080,774]],1082:[,,{769:1116}],1086:[,,{776:1255}],1091:[,,{772:1263,774:1118,776:1265,779:1267}],1095:[,,{776:1269}],1099:[,,{776:1273}],1101:[,,{776:1261}],1104:[[1077,768]],1105:[[1077,776]],1107:[[1075,769]],1110:[,,{776:1111}],1111:[[1110,776]],1116:[[1082,769]],1117:[[1080,768]],1118:[[1091,774]],1140:[,,{783:1142}],1141:[,,{783:1143}],1142:[[1140,783]],1143:[[1141,783]],1155:[,230],1156:[,230],1157:[,230],1158:[,230],1159:[,230],1217:[[1046,774]],1218:[[1078,774]],1232:[[1040,774]],1233:[[1072,774]],1234:[[1040,776]],1235:[[1072,776]],1238:[[1045,774]],1239:[[1077,774]],1240:[,,{776:1242}],1241:[,,{776:1243}],1242:[[1240,776]],1243:[[1241,776]],1244:[[1046,776]],1245:[[1078,776]],1246:[[1047,776]],1247:[[1079,776]],1250:[[1048,772]],1251:[[1080,772]],1252:[[1048,776]],1253:[[1080,776]],1254:[[1054,776]],1255:[[1086,776]],1256:[,,{776:1258}],1257:[,,{776:1259}],1258:[[1256,776]],1259:[[1257,776]],1260:[[1069,776]],1261:[[1101,776]],1262:[[1059,772]],1263:[[1091,772]],1264:[[1059,776]],1265:[[1091,776]],1266:[[1059,779]],1267:[[1091,779]],1268:[[1063,776]],1269:[[1095,776]],1272:[[1067,776]],1273:[[1099,776]]},\n1280:{1415:[[1381,1410],256],1425:[,220],1426:[,230],1427:[,230],1428:[,230],1429:[,230],1430:[,220],1431:[,230],1432:[,230],1433:[,230],1434:[,222],1435:[,220],1436:[,230],1437:[,230],1438:[,230],1439:[,230],1440:[,230],1441:[,230],1442:[,220],1443:[,220],1444:[,220],1445:[,220],1446:[,220],1447:[,220],1448:[,230],1449:[,230],1450:[,220],1451:[,230],1452:[,230],1453:[,222],1454:[,228],1455:[,230],1456:[,10],1457:[,11],1458:[,12],1459:[,13],1460:[,14],1461:[,15],1462:[,16],1463:[,17],1464:[,18],1465:[,19],1466:[,19],1467:[,20],1468:[,21],1469:[,22],1471:[,23],1473:[,24],1474:[,25],1476:[,230],1477:[,220],1479:[,18]},\n1536:{1552:[,230],1553:[,230],1554:[,230],1555:[,230],1556:[,230],1557:[,230],1558:[,230],1559:[,230],1560:[,30],1561:[,31],1562:[,32],1570:[[1575,1619]],1571:[[1575,1620]],1572:[[1608,1620]],1573:[[1575,1621]],1574:[[1610,1620]],1575:[,,{1619:1570,1620:1571,1621:1573}],1608:[,,{1620:1572}],1610:[,,{1620:1574}],1611:[,27],1612:[,28],1613:[,29],1614:[,30],1615:[,31],1616:[,32],1617:[,33],1618:[,34],1619:[,230],1620:[,230],1621:[,220],1622:[,220],1623:[,230],1624:[,230],1625:[,230],1626:[,230],1627:[,230],1628:[,220],1629:[,230],1630:[,230],1631:[,220],1648:[,35],1653:[[1575,1652],256],1654:[[1608,1652],256],1655:[[1735,1652],256],1656:[[1610,1652],256],1728:[[1749,1620]],1729:[,,{1620:1730}],1730:[[1729,1620]],1746:[,,{1620:1747}],1747:[[1746,1620]],1749:[,,{1620:1728}],1750:[,230],1751:[,230],1752:[,230],1753:[,230],1754:[,230],1755:[,230],1756:[,230],1759:[,230],1760:[,230],1761:[,230],1762:[,230],1763:[,220],1764:[,230],1767:[,230],1768:[,230],1770:[,220],1771:[,230],1772:[,230],1773:[,220]},\n1792:{1809:[,36],1840:[,230],1841:[,220],1842:[,230],1843:[,230],1844:[,220],1845:[,230],1846:[,230],1847:[,220],1848:[,220],1849:[,220],1850:[,230],1851:[,220],1852:[,220],1853:[,230],1854:[,220],1855:[,230],1856:[,230],1857:[,230],1858:[,220],1859:[,230],1860:[,220],1861:[,230],1862:[,220],1863:[,230],1864:[,220],1865:[,230],1866:[,230],2027:[,230],2028:[,230],2029:[,230],2030:[,230],2031:[,230],2032:[,230],2033:[,230],2034:[,220],2035:[,230]},\n2048:{2070:[,230],2071:[,230],2072:[,230],2073:[,230],2075:[,230],2076:[,230],2077:[,230],2078:[,230],2079:[,230],2080:[,230],2081:[,230],2082:[,230],2083:[,230],2085:[,230],2086:[,230],2087:[,230],2089:[,230],2090:[,230],2091:[,230],2092:[,230],2093:[,230],2137:[,220],2138:[,220],2139:[,220],2276:[,230],2277:[,230],2278:[,220],2279:[,230],2280:[,230],2281:[,220],2282:[,230],2283:[,230],2284:[,230],2285:[,220],2286:[,220],2287:[,220],2288:[,27],2289:[,28],2290:[,29],2291:[,230],2292:[,230],2293:[,230],2294:[,220],2295:[,230],2296:[,230],2297:[,220],2298:[,220],2299:[,230],2300:[,230],2301:[,230],2302:[,230],2303:[,230]},\n2304:{2344:[,,{2364:2345}],2345:[[2344,2364]],2352:[,,{2364:2353}],2353:[[2352,2364]],2355:[,,{2364:2356}],2356:[[2355,2364]],2364:[,7],2381:[,9],2385:[,230],2386:[,220],2387:[,230],2388:[,230],2392:[[2325,2364],512],2393:[[2326,2364],512],2394:[[2327,2364],512],2395:[[2332,2364],512],2396:[[2337,2364],512],2397:[[2338,2364],512],2398:[[2347,2364],512],2399:[[2351,2364],512],2492:[,7],2503:[,,{2494:2507,2519:2508}],2507:[[2503,2494]],2508:[[2503,2519]],2509:[,9],2524:[[2465,2492],512],2525:[[2466,2492],512],2527:[[2479,2492],512]},\n2560:{2611:[[2610,2620],512],2614:[[2616,2620],512],2620:[,7],2637:[,9],2649:[[2582,2620],512],2650:[[2583,2620],512],2651:[[2588,2620],512],2654:[[2603,2620],512],2748:[,7],2765:[,9],68109:[,220],68111:[,230],68152:[,230],68153:[,1],68154:[,220],68159:[,9],68325:[,230],68326:[,220]},\n2816:{2876:[,7],2887:[,,{2878:2891,2902:2888,2903:2892}],2888:[[2887,2902]],2891:[[2887,2878]],2892:[[2887,2903]],2893:[,9],2908:[[2849,2876],512],2909:[[2850,2876],512],2962:[,,{3031:2964}],2964:[[2962,3031]],3014:[,,{3006:3018,3031:3020}],3015:[,,{3006:3019}],3018:[[3014,3006]],3019:[[3015,3006]],3020:[[3014,3031]],3021:[,9]},\n3072:{3142:[,,{3158:3144}],3144:[[3142,3158]],3149:[,9],3157:[,84],3158:[,91],3260:[,7],3263:[,,{3285:3264}],3264:[[3263,3285]],3270:[,,{3266:3274,3285:3271,3286:3272}],3271:[[3270,3285]],3272:[[3270,3286]],3274:[[3270,3266],,{3285:3275}],3275:[[3274,3285]],3277:[,9]},\n3328:{3398:[,,{3390:3402,3415:3404}],3399:[,,{3390:3403}],3402:[[3398,3390]],3403:[[3399,3390]],3404:[[3398,3415]],3405:[,9],3530:[,9],3545:[,,{3530:3546,3535:3548,3551:3550}],3546:[[3545,3530]],3548:[[3545,3535],,{3530:3549}],3549:[[3548,3530]],3550:[[3545,3551]]},\n3584:{3635:[[3661,3634],256],3640:[,103],3641:[,103],3642:[,9],3656:[,107],3657:[,107],3658:[,107],3659:[,107],3763:[[3789,3762],256],3768:[,118],3769:[,118],3784:[,122],3785:[,122],3786:[,122],3787:[,122],3804:[[3755,3737],256],3805:[[3755,3745],256]},\n3840:{3852:[[3851],256],3864:[,220],3865:[,220],3893:[,220],3895:[,220],3897:[,216],3907:[[3906,4023],512],3917:[[3916,4023],512],3922:[[3921,4023],512],3927:[[3926,4023],512],3932:[[3931,4023],512],3945:[[3904,4021],512],3953:[,129],3954:[,130],3955:[[3953,3954],512],3956:[,132],3957:[[3953,3956],512],3958:[[4018,3968],512],3959:[[4018,3969],256],3960:[[4019,3968],512],3961:[[4019,3969],256],3962:[,130],3963:[,130],3964:[,130],3965:[,130],3968:[,130],3969:[[3953,3968],512],3970:[,230],3971:[,230],3972:[,9],3974:[,230],3975:[,230],3987:[[3986,4023],512],3997:[[3996,4023],512],4002:[[4001,4023],512],4007:[[4006,4023],512],4012:[[4011,4023],512],4025:[[3984,4021],512],4038:[,220]},\n4096:{4133:[,,{4142:4134}],4134:[[4133,4142]],4151:[,7],4153:[,9],4154:[,9],4237:[,220],4348:[[4316],256],69702:[,9],69759:[,9],69785:[,,{69818:69786}],69786:[[69785,69818]],69787:[,,{69818:69788}],69788:[[69787,69818]],69797:[,,{69818:69803}],69803:[[69797,69818]],69817:[,9],69818:[,7]},\n4352:{69888:[,230],69889:[,230],69890:[,230],69934:[[69937,69927]],69935:[[69938,69927]],69937:[,,{69927:69934}],69938:[,,{69927:69935}],69939:[,9],69940:[,9],70003:[,7],70080:[,9]},\n4608:{70197:[,9],70198:[,7],70377:[,7],70378:[,9]},\n4864:{4957:[,230],4958:[,230],4959:[,230],70460:[,7],70471:[,,{70462:70475,70487:70476}],70475:[[70471,70462]],70476:[[70471,70487]],70477:[,9],70502:[,230],70503:[,230],70504:[,230],70505:[,230],70506:[,230],70507:[,230],70508:[,230],70512:[,230],70513:[,230],70514:[,230],70515:[,230],70516:[,230]},\n5120:{70841:[,,{70832:70844,70842:70843,70845:70846}],70843:[[70841,70842]],70844:[[70841,70832]],70846:[[70841,70845]],70850:[,9],70851:[,7]},\n5376:{71096:[,,{71087:71098}],71097:[,,{71087:71099}],71098:[[71096,71087]],71099:[[71097,71087]],71103:[,9],71104:[,7]},\n5632:{71231:[,9],71350:[,9],71351:[,7]},\n5888:{5908:[,9],5940:[,9],6098:[,9],6109:[,230]},\n6144:{6313:[,228]},\n6400:{6457:[,222],6458:[,230],6459:[,220]},\n6656:{6679:[,230],6680:[,220],6752:[,9],6773:[,230],6774:[,230],6775:[,230],6776:[,230],6777:[,230],6778:[,230],6779:[,230],6780:[,230],6783:[,220],6832:[,230],6833:[,230],6834:[,230],6835:[,230],6836:[,230],6837:[,220],6838:[,220],6839:[,220],6840:[,220],6841:[,220],6842:[,220],6843:[,230],6844:[,230],6845:[,220]},\n6912:{6917:[,,{6965:6918}],6918:[[6917,6965]],6919:[,,{6965:6920}],6920:[[6919,6965]],6921:[,,{6965:6922}],6922:[[6921,6965]],6923:[,,{6965:6924}],6924:[[6923,6965]],6925:[,,{6965:6926}],6926:[[6925,6965]],6929:[,,{6965:6930}],6930:[[6929,6965]],6964:[,7],6970:[,,{6965:6971}],6971:[[6970,6965]],6972:[,,{6965:6973}],6973:[[6972,6965]],6974:[,,{6965:6976}],6975:[,,{6965:6977}],6976:[[6974,6965]],6977:[[6975,6965]],6978:[,,{6965:6979}],6979:[[6978,6965]],6980:[,9],7019:[,230],7020:[,220],7021:[,230],7022:[,230],7023:[,230],7024:[,230],7025:[,230],7026:[,230],7027:[,230],7082:[,9],7083:[,9],7142:[,7],7154:[,9],7155:[,9]},\n7168:{7223:[,7],7376:[,230],7377:[,230],7378:[,230],7380:[,1],7381:[,220],7382:[,220],7383:[,220],7384:[,220],7385:[,220],7386:[,230],7387:[,230],7388:[,220],7389:[,220],7390:[,220],7391:[,220],7392:[,230],7394:[,1],7395:[,1],7396:[,1],7397:[,1],7398:[,1],7399:[,1],7400:[,1],7405:[,220],7412:[,230],7416:[,230],7417:[,230]},\n7424:{7468:[[65],256],7469:[[198],256],7470:[[66],256],7472:[[68],256],7473:[[69],256],7474:[[398],256],7475:[[71],256],7476:[[72],256],7477:[[73],256],7478:[[74],256],7479:[[75],256],7480:[[76],256],7481:[[77],256],7482:[[78],256],7484:[[79],256],7485:[[546],256],7486:[[80],256],7487:[[82],256],7488:[[84],256],7489:[[85],256],7490:[[87],256],7491:[[97],256],7492:[[592],256],7493:[[593],256],7494:[[7426],256],7495:[[98],256],7496:[[100],256],7497:[[101],256],7498:[[601],256],7499:[[603],256],7500:[[604],256],7501:[[103],256],7503:[[107],256],7504:[[109],256],7505:[[331],256],7506:[[111],256],7507:[[596],256],7508:[[7446],256],7509:[[7447],256],7510:[[112],256],7511:[[116],256],7512:[[117],256],7513:[[7453],256],7514:[[623],256],7515:[[118],256],7516:[[7461],256],7517:[[946],256],7518:[[947],256],7519:[[948],256],7520:[[966],256],7521:[[967],256],7522:[[105],256],7523:[[114],256],7524:[[117],256],7525:[[118],256],7526:[[946],256],7527:[[947],256],7528:[[961],256],7529:[[966],256],7530:[[967],256],7544:[[1085],256],7579:[[594],256],7580:[[99],256],7581:[[597],256],7582:[[240],256],7583:[[604],256],7584:[[102],256],7585:[[607],256],7586:[[609],256],7587:[[613],256],7588:[[616],256],7589:[[617],256],7590:[[618],256],7591:[[7547],256],7592:[[669],256],7593:[[621],256],7594:[[7557],256],7595:[[671],256],7596:[[625],256],7597:[[624],256],7598:[[626],256],7599:[[627],256],7600:[[628],256],7601:[[629],256],7602:[[632],256],7603:[[642],256],7604:[[643],256],7605:[[427],256],7606:[[649],256],7607:[[650],256],7608:[[7452],256],7609:[[651],256],7610:[[652],256],7611:[[122],256],7612:[[656],256],7613:[[657],256],7614:[[658],256],7615:[[952],256],7616:[,230],7617:[,230],7618:[,220],7619:[,230],7620:[,230],7621:[,230],7622:[,230],7623:[,230],7624:[,230],7625:[,230],7626:[,220],7627:[,230],7628:[,230],7629:[,234],7630:[,214],7631:[,220],7632:[,202],7633:[,230],7634:[,230],7635:[,230],7636:[,230],7637:[,230],7638:[,230],7639:[,230],7640:[,230],7641:[,230],7642:[,230],7643:[,230],7644:[,230],7645:[,230],7646:[,230],7647:[,230],7648:[,230],7649:[,230],7650:[,230],7651:[,230],7652:[,230],7653:[,230],7654:[,230],7655:[,230],7656:[,230],7657:[,230],7658:[,230],7659:[,230],7660:[,230],7661:[,230],7662:[,230],7663:[,230],7664:[,230],7665:[,230],7666:[,230],7667:[,230],7668:[,230],7669:[,230],7676:[,233],7677:[,220],7678:[,230],7679:[,220]},\n7680:{7680:[[65,805]],7681:[[97,805]],7682:[[66,775]],7683:[[98,775]],7684:[[66,803]],7685:[[98,803]],7686:[[66,817]],7687:[[98,817]],7688:[[199,769]],7689:[[231,769]],7690:[[68,775]],7691:[[100,775]],7692:[[68,803]],7693:[[100,803]],7694:[[68,817]],7695:[[100,817]],7696:[[68,807]],7697:[[100,807]],7698:[[68,813]],7699:[[100,813]],7700:[[274,768]],7701:[[275,768]],7702:[[274,769]],7703:[[275,769]],7704:[[69,813]],7705:[[101,813]],7706:[[69,816]],7707:[[101,816]],7708:[[552,774]],7709:[[553,774]],7710:[[70,775]],7711:[[102,775]],7712:[[71,772]],7713:[[103,772]],7714:[[72,775]],7715:[[104,775]],7716:[[72,803]],7717:[[104,803]],7718:[[72,776]],7719:[[104,776]],7720:[[72,807]],7721:[[104,807]],7722:[[72,814]],7723:[[104,814]],7724:[[73,816]],7725:[[105,816]],7726:[[207,769]],7727:[[239,769]],7728:[[75,769]],7729:[[107,769]],7730:[[75,803]],7731:[[107,803]],7732:[[75,817]],7733:[[107,817]],7734:[[76,803],,{772:7736}],7735:[[108,803],,{772:7737}],7736:[[7734,772]],7737:[[7735,772]],7738:[[76,817]],7739:[[108,817]],7740:[[76,813]],7741:[[108,813]],7742:[[77,769]],7743:[[109,769]],7744:[[77,775]],7745:[[109,775]],7746:[[77,803]],7747:[[109,803]],7748:[[78,775]],7749:[[110,775]],7750:[[78,803]],7751:[[110,803]],7752:[[78,817]],7753:[[110,817]],7754:[[78,813]],7755:[[110,813]],7756:[[213,769]],7757:[[245,769]],7758:[[213,776]],7759:[[245,776]],7760:[[332,768]],7761:[[333,768]],7762:[[332,769]],7763:[[333,769]],7764:[[80,769]],7765:[[112,769]],7766:[[80,775]],7767:[[112,775]],7768:[[82,775]],7769:[[114,775]],7770:[[82,803],,{772:7772}],7771:[[114,803],,{772:7773}],7772:[[7770,772]],7773:[[7771,772]],7774:[[82,817]],7775:[[114,817]],7776:[[83,775]],7777:[[115,775]],7778:[[83,803],,{775:7784}],7779:[[115,803],,{775:7785}],7780:[[346,775]],7781:[[347,775]],7782:[[352,775]],7783:[[353,775]],7784:[[7778,775]],7785:[[7779,775]],7786:[[84,775]],7787:[[116,775]],7788:[[84,803]],7789:[[116,803]],7790:[[84,817]],7791:[[116,817]],7792:[[84,813]],7793:[[116,813]],7794:[[85,804]],7795:[[117,804]],7796:[[85,816]],7797:[[117,816]],7798:[[85,813]],7799:[[117,813]],7800:[[360,769]],7801:[[361,769]],7802:[[362,776]],7803:[[363,776]],7804:[[86,771]],7805:[[118,771]],7806:[[86,803]],7807:[[118,803]],7808:[[87,768]],7809:[[119,768]],7810:[[87,769]],7811:[[119,769]],7812:[[87,776]],7813:[[119,776]],7814:[[87,775]],7815:[[119,775]],7816:[[87,803]],7817:[[119,803]],7818:[[88,775]],7819:[[120,775]],7820:[[88,776]],7821:[[120,776]],7822:[[89,775]],7823:[[121,775]],7824:[[90,770]],7825:[[122,770]],7826:[[90,803]],7827:[[122,803]],7828:[[90,817]],7829:[[122,817]],7830:[[104,817]],7831:[[116,776]],7832:[[119,778]],7833:[[121,778]],7834:[[97,702],256],7835:[[383,775]],7840:[[65,803],,{770:7852,774:7862}],7841:[[97,803],,{770:7853,774:7863}],7842:[[65,777]],7843:[[97,777]],7844:[[194,769]],7845:[[226,769]],7846:[[194,768]],7847:[[226,768]],7848:[[194,777]],7849:[[226,777]],7850:[[194,771]],7851:[[226,771]],7852:[[7840,770]],7853:[[7841,770]],7854:[[258,769]],7855:[[259,769]],7856:[[258,768]],7857:[[259,768]],7858:[[258,777]],7859:[[259,777]],7860:[[258,771]],7861:[[259,771]],7862:[[7840,774]],7863:[[7841,774]],7864:[[69,803],,{770:7878}],7865:[[101,803],,{770:7879}],7866:[[69,777]],7867:[[101,777]],7868:[[69,771]],7869:[[101,771]],7870:[[202,769]],7871:[[234,769]],7872:[[202,768]],7873:[[234,768]],7874:[[202,777]],7875:[[234,777]],7876:[[202,771]],7877:[[234,771]],7878:[[7864,770]],7879:[[7865,770]],7880:[[73,777]],7881:[[105,777]],7882:[[73,803]],7883:[[105,803]],7884:[[79,803],,{770:7896}],7885:[[111,803],,{770:7897}],7886:[[79,777]],7887:[[111,777]],7888:[[212,769]],7889:[[244,769]],7890:[[212,768]],7891:[[244,768]],7892:[[212,777]],7893:[[244,777]],7894:[[212,771]],7895:[[244,771]],7896:[[7884,770]],7897:[[7885,770]],7898:[[416,769]],7899:[[417,769]],7900:[[416,768]],7901:[[417,768]],7902:[[416,777]],7903:[[417,777]],7904:[[416,771]],7905:[[417,771]],7906:[[416,803]],7907:[[417,803]],7908:[[85,803]],7909:[[117,803]],7910:[[85,777]],7911:[[117,777]],7912:[[431,769]],7913:[[432,769]],7914:[[431,768]],7915:[[432,768]],7916:[[431,777]],7917:[[432,777]],7918:[[431,771]],7919:[[432,771]],7920:[[431,803]],7921:[[432,803]],7922:[[89,768]],7923:[[121,768]],7924:[[89,803]],7925:[[121,803]],7926:[[89,777]],7927:[[121,777]],7928:[[89,771]],7929:[[121,771]]},\n7936:{7936:[[945,787],,{768:7938,769:7940,834:7942,837:8064}],7937:[[945,788],,{768:7939,769:7941,834:7943,837:8065}],7938:[[7936,768],,{837:8066}],7939:[[7937,768],,{837:8067}],7940:[[7936,769],,{837:8068}],7941:[[7937,769],,{837:8069}],7942:[[7936,834],,{837:8070}],7943:[[7937,834],,{837:8071}],7944:[[913,787],,{768:7946,769:7948,834:7950,837:8072}],7945:[[913,788],,{768:7947,769:7949,834:7951,837:8073}],7946:[[7944,768],,{837:8074}],7947:[[7945,768],,{837:8075}],7948:[[7944,769],,{837:8076}],7949:[[7945,769],,{837:8077}],7950:[[7944,834],,{837:8078}],7951:[[7945,834],,{837:8079}],7952:[[949,787],,{768:7954,769:7956}],7953:[[949,788],,{768:7955,769:7957}],7954:[[7952,768]],7955:[[7953,768]],7956:[[7952,769]],7957:[[7953,769]],7960:[[917,787],,{768:7962,769:7964}],7961:[[917,788],,{768:7963,769:7965}],7962:[[7960,768]],7963:[[7961,768]],7964:[[7960,769]],7965:[[7961,769]],7968:[[951,787],,{768:7970,769:7972,834:7974,837:8080}],7969:[[951,788],,{768:7971,769:7973,834:7975,837:8081}],7970:[[7968,768],,{837:8082}],7971:[[7969,768],,{837:8083}],7972:[[7968,769],,{837:8084}],7973:[[7969,769],,{837:8085}],7974:[[7968,834],,{837:8086}],7975:[[7969,834],,{837:8087}],7976:[[919,787],,{768:7978,769:7980,834:7982,837:8088}],7977:[[919,788],,{768:7979,769:7981,834:7983,837:8089}],7978:[[7976,768],,{837:8090}],7979:[[7977,768],,{837:8091}],7980:[[7976,769],,{837:8092}],7981:[[7977,769],,{837:8093}],7982:[[7976,834],,{837:8094}],7983:[[7977,834],,{837:8095}],7984:[[953,787],,{768:7986,769:7988,834:7990}],7985:[[953,788],,{768:7987,769:7989,834:7991}],7986:[[7984,768]],7987:[[7985,768]],7988:[[7984,769]],7989:[[7985,769]],7990:[[7984,834]],7991:[[7985,834]],7992:[[921,787],,{768:7994,769:7996,834:7998}],7993:[[921,788],,{768:7995,769:7997,834:7999}],7994:[[7992,768]],7995:[[7993,768]],7996:[[7992,769]],7997:[[7993,769]],7998:[[7992,834]],7999:[[7993,834]],8000:[[959,787],,{768:8002,769:8004}],8001:[[959,788],,{768:8003,769:8005}],8002:[[8000,768]],8003:[[8001,768]],8004:[[8000,769]],8005:[[8001,769]],8008:[[927,787],,{768:8010,769:8012}],8009:[[927,788],,{768:8011,769:8013}],8010:[[8008,768]],8011:[[8009,768]],8012:[[8008,769]],8013:[[8009,769]],8016:[[965,787],,{768:8018,769:8020,834:8022}],8017:[[965,788],,{768:8019,769:8021,834:8023}],8018:[[8016,768]],8019:[[8017,768]],8020:[[8016,769]],8021:[[8017,769]],8022:[[8016,834]],8023:[[8017,834]],8025:[[933,788],,{768:8027,769:8029,834:8031}],8027:[[8025,768]],8029:[[8025,769]],8031:[[8025,834]],8032:[[969,787],,{768:8034,769:8036,834:8038,837:8096}],8033:[[969,788],,{768:8035,769:8037,834:8039,837:8097}],8034:[[8032,768],,{837:8098}],8035:[[8033,768],,{837:8099}],8036:[[8032,769],,{837:8100}],8037:[[8033,769],,{837:8101}],8038:[[8032,834],,{837:8102}],8039:[[8033,834],,{837:8103}],8040:[[937,787],,{768:8042,769:8044,834:8046,837:8104}],8041:[[937,788],,{768:8043,769:8045,834:8047,837:8105}],8042:[[8040,768],,{837:8106}],8043:[[8041,768],,{837:8107}],8044:[[8040,769],,{837:8108}],8045:[[8041,769],,{837:8109}],8046:[[8040,834],,{837:8110}],8047:[[8041,834],,{837:8111}],8048:[[945,768],,{837:8114}],8049:[[940]],8050:[[949,768]],8051:[[941]],8052:[[951,768],,{837:8130}],8053:[[942]],8054:[[953,768]],8055:[[943]],8056:[[959,768]],8057:[[972]],8058:[[965,768]],8059:[[973]],8060:[[969,768],,{837:8178}],8061:[[974]],8064:[[7936,837]],8065:[[7937,837]],8066:[[7938,837]],8067:[[7939,837]],8068:[[7940,837]],8069:[[7941,837]],8070:[[7942,837]],8071:[[7943,837]],8072:[[7944,837]],8073:[[7945,837]],8074:[[7946,837]],8075:[[7947,837]],8076:[[7948,837]],8077:[[7949,837]],8078:[[7950,837]],8079:[[7951,837]],8080:[[7968,837]],8081:[[7969,837]],8082:[[7970,837]],8083:[[7971,837]],8084:[[7972,837]],8085:[[7973,837]],8086:[[7974,837]],8087:[[7975,837]],8088:[[7976,837]],8089:[[7977,837]],8090:[[7978,837]],8091:[[7979,837]],8092:[[7980,837]],8093:[[7981,837]],8094:[[7982,837]],8095:[[7983,837]],8096:[[8032,837]],8097:[[8033,837]],8098:[[8034,837]],8099:[[8035,837]],8100:[[8036,837]],8101:[[8037,837]],8102:[[8038,837]],8103:[[8039,837]],8104:[[8040,837]],8105:[[8041,837]],8106:[[8042,837]],8107:[[8043,837]],8108:[[8044,837]],8109:[[8045,837]],8110:[[8046,837]],8111:[[8047,837]],8112:[[945,774]],8113:[[945,772]],8114:[[8048,837]],8115:[[945,837]],8116:[[940,837]],8118:[[945,834],,{837:8119}],8119:[[8118,837]],8120:[[913,774]],8121:[[913,772]],8122:[[913,768]],8123:[[902]],8124:[[913,837]],8125:[[32,787],256],8126:[[953]],8127:[[32,787],256,{768:8141,769:8142,834:8143}],8128:[[32,834],256],8129:[[168,834]],8130:[[8052,837]],8131:[[951,837]],8132:[[942,837]],8134:[[951,834],,{837:8135}],8135:[[8134,837]],8136:[[917,768]],8137:[[904]],8138:[[919,768]],8139:[[905]],8140:[[919,837]],8141:[[8127,768]],8142:[[8127,769]],8143:[[8127,834]],8144:[[953,774]],8145:[[953,772]],8146:[[970,768]],8147:[[912]],8150:[[953,834]],8151:[[970,834]],8152:[[921,774]],8153:[[921,772]],8154:[[921,768]],8155:[[906]],8157:[[8190,768]],8158:[[8190,769]],8159:[[8190,834]],8160:[[965,774]],8161:[[965,772]],8162:[[971,768]],8163:[[944]],8164:[[961,787]],8165:[[961,788]],8166:[[965,834]],8167:[[971,834]],8168:[[933,774]],8169:[[933,772]],8170:[[933,768]],8171:[[910]],8172:[[929,788]],8173:[[168,768]],8174:[[901]],8175:[[96]],8178:[[8060,837]],8179:[[969,837]],8180:[[974,837]],8182:[[969,834],,{837:8183}],8183:[[8182,837]],8184:[[927,768]],8185:[[908]],8186:[[937,768]],8187:[[911]],8188:[[937,837]],8189:[[180]],8190:[[32,788],256,{768:8157,769:8158,834:8159}]},\n8192:{8192:[[8194]],8193:[[8195]],8194:[[32],256],8195:[[32],256],8196:[[32],256],8197:[[32],256],8198:[[32],256],8199:[[32],256],8200:[[32],256],8201:[[32],256],8202:[[32],256],8209:[[8208],256],8215:[[32,819],256],8228:[[46],256],8229:[[46,46],256],8230:[[46,46,46],256],8239:[[32],256],8243:[[8242,8242],256],8244:[[8242,8242,8242],256],8246:[[8245,8245],256],8247:[[8245,8245,8245],256],8252:[[33,33],256],8254:[[32,773],256],8263:[[63,63],256],8264:[[63,33],256],8265:[[33,63],256],8279:[[8242,8242,8242,8242],256],8287:[[32],256],8304:[[48],256],8305:[[105],256],8308:[[52],256],8309:[[53],256],8310:[[54],256],8311:[[55],256],8312:[[56],256],8313:[[57],256],8314:[[43],256],8315:[[8722],256],8316:[[61],256],8317:[[40],256],8318:[[41],256],8319:[[110],256],8320:[[48],256],8321:[[49],256],8322:[[50],256],8323:[[51],256],8324:[[52],256],8325:[[53],256],8326:[[54],256],8327:[[55],256],8328:[[56],256],8329:[[57],256],8330:[[43],256],8331:[[8722],256],8332:[[61],256],8333:[[40],256],8334:[[41],256],8336:[[97],256],8337:[[101],256],8338:[[111],256],8339:[[120],256],8340:[[601],256],8341:[[104],256],8342:[[107],256],8343:[[108],256],8344:[[109],256],8345:[[110],256],8346:[[112],256],8347:[[115],256],8348:[[116],256],8360:[[82,115],256],8400:[,230],8401:[,230],8402:[,1],8403:[,1],8404:[,230],8405:[,230],8406:[,230],8407:[,230],8408:[,1],8409:[,1],8410:[,1],8411:[,230],8412:[,230],8417:[,230],8421:[,1],8422:[,1],8423:[,230],8424:[,220],8425:[,230],8426:[,1],8427:[,1],8428:[,220],8429:[,220],8430:[,220],8431:[,220],8432:[,230]},\n8448:{8448:[[97,47,99],256],8449:[[97,47,115],256],8450:[[67],256],8451:[[176,67],256],8453:[[99,47,111],256],8454:[[99,47,117],256],8455:[[400],256],8457:[[176,70],256],8458:[[103],256],8459:[[72],256],8460:[[72],256],8461:[[72],256],8462:[[104],256],8463:[[295],256],8464:[[73],256],8465:[[73],256],8466:[[76],256],8467:[[108],256],8469:[[78],256],8470:[[78,111],256],8473:[[80],256],8474:[[81],256],8475:[[82],256],8476:[[82],256],8477:[[82],256],8480:[[83,77],256],8481:[[84,69,76],256],8482:[[84,77],256],8484:[[90],256],8486:[[937]],8488:[[90],256],8490:[[75]],8491:[[197]],8492:[[66],256],8493:[[67],256],8495:[[101],256],8496:[[69],256],8497:[[70],256],8499:[[77],256],8500:[[111],256],8501:[[1488],256],8502:[[1489],256],8503:[[1490],256],8504:[[1491],256],8505:[[105],256],8507:[[70,65,88],256],8508:[[960],256],8509:[[947],256],8510:[[915],256],8511:[[928],256],8512:[[8721],256],8517:[[68],256],8518:[[100],256],8519:[[101],256],8520:[[105],256],8521:[[106],256],8528:[[49,8260,55],256],8529:[[49,8260,57],256],8530:[[49,8260,49,48],256],8531:[[49,8260,51],256],8532:[[50,8260,51],256],8533:[[49,8260,53],256],8534:[[50,8260,53],256],8535:[[51,8260,53],256],8536:[[52,8260,53],256],8537:[[49,8260,54],256],8538:[[53,8260,54],256],8539:[[49,8260,56],256],8540:[[51,8260,56],256],8541:[[53,8260,56],256],8542:[[55,8260,56],256],8543:[[49,8260],256],8544:[[73],256],8545:[[73,73],256],8546:[[73,73,73],256],8547:[[73,86],256],8548:[[86],256],8549:[[86,73],256],8550:[[86,73,73],256],8551:[[86,73,73,73],256],8552:[[73,88],256],8553:[[88],256],8554:[[88,73],256],8555:[[88,73,73],256],8556:[[76],256],8557:[[67],256],8558:[[68],256],8559:[[77],256],8560:[[105],256],8561:[[105,105],256],8562:[[105,105,105],256],8563:[[105,118],256],8564:[[118],256],8565:[[118,105],256],8566:[[118,105,105],256],8567:[[118,105,105,105],256],8568:[[105,120],256],8569:[[120],256],8570:[[120,105],256],8571:[[120,105,105],256],8572:[[108],256],8573:[[99],256],8574:[[100],256],8575:[[109],256],8585:[[48,8260,51],256],8592:[,,{824:8602}],8594:[,,{824:8603}],8596:[,,{824:8622}],8602:[[8592,824]],8603:[[8594,824]],8622:[[8596,824]],8653:[[8656,824]],8654:[[8660,824]],8655:[[8658,824]],8656:[,,{824:8653}],8658:[,,{824:8655}],8660:[,,{824:8654}]},\n8704:{8707:[,,{824:8708}],8708:[[8707,824]],8712:[,,{824:8713}],8713:[[8712,824]],8715:[,,{824:8716}],8716:[[8715,824]],8739:[,,{824:8740}],8740:[[8739,824]],8741:[,,{824:8742}],8742:[[8741,824]],8748:[[8747,8747],256],8749:[[8747,8747,8747],256],8751:[[8750,8750],256],8752:[[8750,8750,8750],256],8764:[,,{824:8769}],8769:[[8764,824]],8771:[,,{824:8772}],8772:[[8771,824]],8773:[,,{824:8775}],8775:[[8773,824]],8776:[,,{824:8777}],8777:[[8776,824]],8781:[,,{824:8813}],8800:[[61,824]],8801:[,,{824:8802}],8802:[[8801,824]],8804:[,,{824:8816}],8805:[,,{824:8817}],8813:[[8781,824]],8814:[[60,824]],8815:[[62,824]],8816:[[8804,824]],8817:[[8805,824]],8818:[,,{824:8820}],8819:[,,{824:8821}],8820:[[8818,824]],8821:[[8819,824]],8822:[,,{824:8824}],8823:[,,{824:8825}],8824:[[8822,824]],8825:[[8823,824]],8826:[,,{824:8832}],8827:[,,{824:8833}],8828:[,,{824:8928}],8829:[,,{824:8929}],8832:[[8826,824]],8833:[[8827,824]],8834:[,,{824:8836}],8835:[,,{824:8837}],8836:[[8834,824]],8837:[[8835,824]],8838:[,,{824:8840}],8839:[,,{824:8841}],8840:[[8838,824]],8841:[[8839,824]],8849:[,,{824:8930}],8850:[,,{824:8931}],8866:[,,{824:8876}],8872:[,,{824:8877}],8873:[,,{824:8878}],8875:[,,{824:8879}],8876:[[8866,824]],8877:[[8872,824]],8878:[[8873,824]],8879:[[8875,824]],8882:[,,{824:8938}],8883:[,,{824:8939}],8884:[,,{824:8940}],8885:[,,{824:8941}],8928:[[8828,824]],8929:[[8829,824]],8930:[[8849,824]],8931:[[8850,824]],8938:[[8882,824]],8939:[[8883,824]],8940:[[8884,824]],8941:[[8885,824]]},\n8960:{9001:[[12296]],9002:[[12297]]},\n9216:{9312:[[49],256],9313:[[50],256],9314:[[51],256],9315:[[52],256],9316:[[53],256],9317:[[54],256],9318:[[55],256],9319:[[56],256],9320:[[57],256],9321:[[49,48],256],9322:[[49,49],256],9323:[[49,50],256],9324:[[49,51],256],9325:[[49,52],256],9326:[[49,53],256],9327:[[49,54],256],9328:[[49,55],256],9329:[[49,56],256],9330:[[49,57],256],9331:[[50,48],256],9332:[[40,49,41],256],9333:[[40,50,41],256],9334:[[40,51,41],256],9335:[[40,52,41],256],9336:[[40,53,41],256],9337:[[40,54,41],256],9338:[[40,55,41],256],9339:[[40,56,41],256],9340:[[40,57,41],256],9341:[[40,49,48,41],256],9342:[[40,49,49,41],256],9343:[[40,49,50,41],256],9344:[[40,49,51,41],256],9345:[[40,49,52,41],256],9346:[[40,49,53,41],256],9347:[[40,49,54,41],256],9348:[[40,49,55,41],256],9349:[[40,49,56,41],256],9350:[[40,49,57,41],256],9351:[[40,50,48,41],256],9352:[[49,46],256],9353:[[50,46],256],9354:[[51,46],256],9355:[[52,46],256],9356:[[53,46],256],9357:[[54,46],256],9358:[[55,46],256],9359:[[56,46],256],9360:[[57,46],256],9361:[[49,48,46],256],9362:[[49,49,46],256],9363:[[49,50,46],256],9364:[[49,51,46],256],9365:[[49,52,46],256],9366:[[49,53,46],256],9367:[[49,54,46],256],9368:[[49,55,46],256],9369:[[49,56,46],256],9370:[[49,57,46],256],9371:[[50,48,46],256],9372:[[40,97,41],256],9373:[[40,98,41],256],9374:[[40,99,41],256],9375:[[40,100,41],256],9376:[[40,101,41],256],9377:[[40,102,41],256],9378:[[40,103,41],256],9379:[[40,104,41],256],9380:[[40,105,41],256],9381:[[40,106,41],256],9382:[[40,107,41],256],9383:[[40,108,41],256],9384:[[40,109,41],256],9385:[[40,110,41],256],9386:[[40,111,41],256],9387:[[40,112,41],256],9388:[[40,113,41],256],9389:[[40,114,41],256],9390:[[40,115,41],256],9391:[[40,116,41],256],9392:[[40,117,41],256],9393:[[40,118,41],256],9394:[[40,119,41],256],9395:[[40,120,41],256],9396:[[40,121,41],256],9397:[[40,122,41],256],9398:[[65],256],9399:[[66],256],9400:[[67],256],9401:[[68],256],9402:[[69],256],9403:[[70],256],9404:[[71],256],9405:[[72],256],9406:[[73],256],9407:[[74],256],9408:[[75],256],9409:[[76],256],9410:[[77],256],9411:[[78],256],9412:[[79],256],9413:[[80],256],9414:[[81],256],9415:[[82],256],9416:[[83],256],9417:[[84],256],9418:[[85],256],9419:[[86],256],9420:[[87],256],9421:[[88],256],9422:[[89],256],9423:[[90],256],9424:[[97],256],9425:[[98],256],9426:[[99],256],9427:[[100],256],9428:[[101],256],9429:[[102],256],9430:[[103],256],9431:[[104],256],9432:[[105],256],9433:[[106],256],9434:[[107],256],9435:[[108],256],9436:[[109],256],9437:[[110],256],9438:[[111],256],9439:[[112],256],9440:[[113],256],9441:[[114],256],9442:[[115],256],9443:[[116],256],9444:[[117],256],9445:[[118],256],9446:[[119],256],9447:[[120],256],9448:[[121],256],9449:[[122],256],9450:[[48],256]},\n10752:{10764:[[8747,8747,8747,8747],256],10868:[[58,58,61],256],10869:[[61,61],256],10870:[[61,61,61],256],10972:[[10973,824],512]},\n11264:{11388:[[106],256],11389:[[86],256],11503:[,230],11504:[,230],11505:[,230]},\n11520:{11631:[[11617],256],11647:[,9],11744:[,230],11745:[,230],11746:[,230],11747:[,230],11748:[,230],11749:[,230],11750:[,230],11751:[,230],11752:[,230],11753:[,230],11754:[,230],11755:[,230],11756:[,230],11757:[,230],11758:[,230],11759:[,230],11760:[,230],11761:[,230],11762:[,230],11763:[,230],11764:[,230],11765:[,230],11766:[,230],11767:[,230],11768:[,230],11769:[,230],11770:[,230],11771:[,230],11772:[,230],11773:[,230],11774:[,230],11775:[,230]},\n11776:{11935:[[27597],256],12019:[[40863],256]},\n12032:{12032:[[19968],256],12033:[[20008],256],12034:[[20022],256],12035:[[20031],256],12036:[[20057],256],12037:[[20101],256],12038:[[20108],256],12039:[[20128],256],12040:[[20154],256],12041:[[20799],256],12042:[[20837],256],12043:[[20843],256],12044:[[20866],256],12045:[[20886],256],12046:[[20907],256],12047:[[20960],256],12048:[[20981],256],12049:[[20992],256],12050:[[21147],256],12051:[[21241],256],12052:[[21269],256],12053:[[21274],256],12054:[[21304],256],12055:[[21313],256],12056:[[21340],256],12057:[[21353],256],12058:[[21378],256],12059:[[21430],256],12060:[[21448],256],12061:[[21475],256],12062:[[22231],256],12063:[[22303],256],12064:[[22763],256],12065:[[22786],256],12066:[[22794],256],12067:[[22805],256],12068:[[22823],256],12069:[[22899],256],12070:[[23376],256],12071:[[23424],256],12072:[[23544],256],12073:[[23567],256],12074:[[23586],256],12075:[[23608],256],12076:[[23662],256],12077:[[23665],256],12078:[[24027],256],12079:[[24037],256],12080:[[24049],256],12081:[[24062],256],12082:[[24178],256],12083:[[24186],256],12084:[[24191],256],12085:[[24308],256],12086:[[24318],256],12087:[[24331],256],12088:[[24339],256],12089:[[24400],256],12090:[[24417],256],12091:[[24435],256],12092:[[24515],256],12093:[[25096],256],12094:[[25142],256],12095:[[25163],256],12096:[[25903],256],12097:[[25908],256],12098:[[25991],256],12099:[[26007],256],12100:[[26020],256],12101:[[26041],256],12102:[[26080],256],12103:[[26085],256],12104:[[26352],256],12105:[[26376],256],12106:[[26408],256],12107:[[27424],256],12108:[[27490],256],12109:[[27513],256],12110:[[27571],256],12111:[[27595],256],12112:[[27604],256],12113:[[27611],256],12114:[[27663],256],12115:[[27668],256],12116:[[27700],256],12117:[[28779],256],12118:[[29226],256],12119:[[29238],256],12120:[[29243],256],12121:[[29247],256],12122:[[29255],256],12123:[[29273],256],12124:[[29275],256],12125:[[29356],256],12126:[[29572],256],12127:[[29577],256],12128:[[29916],256],12129:[[29926],256],12130:[[29976],256],12131:[[29983],256],12132:[[29992],256],12133:[[30000],256],12134:[[30091],256],12135:[[30098],256],12136:[[30326],256],12137:[[30333],256],12138:[[30382],256],12139:[[30399],256],12140:[[30446],256],12141:[[30683],256],12142:[[30690],256],12143:[[30707],256],12144:[[31034],256],12145:[[31160],256],12146:[[31166],256],12147:[[31348],256],12148:[[31435],256],12149:[[31481],256],12150:[[31859],256],12151:[[31992],256],12152:[[32566],256],12153:[[32593],256],12154:[[32650],256],12155:[[32701],256],12156:[[32769],256],12157:[[32780],256],12158:[[32786],256],12159:[[32819],256],12160:[[32895],256],12161:[[32905],256],12162:[[33251],256],12163:[[33258],256],12164:[[33267],256],12165:[[33276],256],12166:[[33292],256],12167:[[33307],256],12168:[[33311],256],12169:[[33390],256],12170:[[33394],256],12171:[[33400],256],12172:[[34381],256],12173:[[34411],256],12174:[[34880],256],12175:[[34892],256],12176:[[34915],256],12177:[[35198],256],12178:[[35211],256],12179:[[35282],256],12180:[[35328],256],12181:[[35895],256],12182:[[35910],256],12183:[[35925],256],12184:[[35960],256],12185:[[35997],256],12186:[[36196],256],12187:[[36208],256],12188:[[36275],256],12189:[[36523],256],12190:[[36554],256],12191:[[36763],256],12192:[[36784],256],12193:[[36789],256],12194:[[37009],256],12195:[[37193],256],12196:[[37318],256],12197:[[37324],256],12198:[[37329],256],12199:[[38263],256],12200:[[38272],256],12201:[[38428],256],12202:[[38582],256],12203:[[38585],256],12204:[[38632],256],12205:[[38737],256],12206:[[38750],256],12207:[[38754],256],12208:[[38761],256],12209:[[38859],256],12210:[[38893],256],12211:[[38899],256],12212:[[38913],256],12213:[[39080],256],12214:[[39131],256],12215:[[39135],256],12216:[[39318],256],12217:[[39321],256],12218:[[39340],256],12219:[[39592],256],12220:[[39640],256],12221:[[39647],256],12222:[[39717],256],12223:[[39727],256],12224:[[39730],256],12225:[[39740],256],12226:[[39770],256],12227:[[40165],256],12228:[[40565],256],12229:[[40575],256],12230:[[40613],256],12231:[[40635],256],12232:[[40643],256],12233:[[40653],256],12234:[[40657],256],12235:[[40697],256],12236:[[40701],256],12237:[[40718],256],12238:[[40723],256],12239:[[40736],256],12240:[[40763],256],12241:[[40778],256],12242:[[40786],256],12243:[[40845],256],12244:[[40860],256],12245:[[40864],256]},\n12288:{12288:[[32],256],12330:[,218],12331:[,228],12332:[,232],12333:[,222],12334:[,224],12335:[,224],12342:[[12306],256],12344:[[21313],256],12345:[[21316],256],12346:[[21317],256],12358:[,,{12441:12436}],12363:[,,{12441:12364}],12364:[[12363,12441]],12365:[,,{12441:12366}],12366:[[12365,12441]],12367:[,,{12441:12368}],12368:[[12367,12441]],12369:[,,{12441:12370}],12370:[[12369,12441]],12371:[,,{12441:12372}],12372:[[12371,12441]],12373:[,,{12441:12374}],12374:[[12373,12441]],12375:[,,{12441:12376}],12376:[[12375,12441]],12377:[,,{12441:12378}],12378:[[12377,12441]],12379:[,,{12441:12380}],12380:[[12379,12441]],12381:[,,{12441:12382}],12382:[[12381,12441]],12383:[,,{12441:12384}],12384:[[12383,12441]],12385:[,,{12441:12386}],12386:[[12385,12441]],12388:[,,{12441:12389}],12389:[[12388,12441]],12390:[,,{12441:12391}],12391:[[12390,12441]],12392:[,,{12441:12393}],12393:[[12392,12441]],12399:[,,{12441:12400,12442:12401}],12400:[[12399,12441]],12401:[[12399,12442]],12402:[,,{12441:12403,12442:12404}],12403:[[12402,12441]],12404:[[12402,12442]],12405:[,,{12441:12406,12442:12407}],12406:[[12405,12441]],12407:[[12405,12442]],12408:[,,{12441:12409,12442:12410}],12409:[[12408,12441]],12410:[[12408,12442]],12411:[,,{12441:12412,12442:12413}],12412:[[12411,12441]],12413:[[12411,12442]],12436:[[12358,12441]],12441:[,8],12442:[,8],12443:[[32,12441],256],12444:[[32,12442],256],12445:[,,{12441:12446}],12446:[[12445,12441]],12447:[[12424,12426],256],12454:[,,{12441:12532}],12459:[,,{12441:12460}],12460:[[12459,12441]],12461:[,,{12441:12462}],12462:[[12461,12441]],12463:[,,{12441:12464}],12464:[[12463,12441]],12465:[,,{12441:12466}],12466:[[12465,12441]],12467:[,,{12441:12468}],12468:[[12467,12441]],12469:[,,{12441:12470}],12470:[[12469,12441]],12471:[,,{12441:12472}],12472:[[12471,12441]],12473:[,,{12441:12474}],12474:[[12473,12441]],12475:[,,{12441:12476}],12476:[[12475,12441]],12477:[,,{12441:12478}],12478:[[12477,12441]],12479:[,,{12441:12480}],12480:[[12479,12441]],12481:[,,{12441:12482}],12482:[[12481,12441]],12484:[,,{12441:12485}],12485:[[12484,12441]],12486:[,,{12441:12487}],12487:[[12486,12441]],12488:[,,{12441:12489}],12489:[[12488,12441]],12495:[,,{12441:12496,12442:12497}],12496:[[12495,12441]],12497:[[12495,12442]],12498:[,,{12441:12499,12442:12500}],12499:[[12498,12441]],12500:[[12498,12442]],12501:[,,{12441:12502,12442:12503}],12502:[[12501,12441]],12503:[[12501,12442]],12504:[,,{12441:12505,12442:12506}],12505:[[12504,12441]],12506:[[12504,12442]],12507:[,,{12441:12508,12442:12509}],12508:[[12507,12441]],12509:[[12507,12442]],12527:[,,{12441:12535}],12528:[,,{12441:12536}],12529:[,,{12441:12537}],12530:[,,{12441:12538}],12532:[[12454,12441]],12535:[[12527,12441]],12536:[[12528,12441]],12537:[[12529,12441]],12538:[[12530,12441]],12541:[,,{12441:12542}],12542:[[12541,12441]],12543:[[12467,12488],256]},\n12544:{12593:[[4352],256],12594:[[4353],256],12595:[[4522],256],12596:[[4354],256],12597:[[4524],256],12598:[[4525],256],12599:[[4355],256],12600:[[4356],256],12601:[[4357],256],12602:[[4528],256],12603:[[4529],256],12604:[[4530],256],12605:[[4531],256],12606:[[4532],256],12607:[[4533],256],12608:[[4378],256],12609:[[4358],256],12610:[[4359],256],12611:[[4360],256],12612:[[4385],256],12613:[[4361],256],12614:[[4362],256],12615:[[4363],256],12616:[[4364],256],12617:[[4365],256],12618:[[4366],256],12619:[[4367],256],12620:[[4368],256],12621:[[4369],256],12622:[[4370],256],12623:[[4449],256],12624:[[4450],256],12625:[[4451],256],12626:[[4452],256],12627:[[4453],256],12628:[[4454],256],12629:[[4455],256],12630:[[4456],256],12631:[[4457],256],12632:[[4458],256],12633:[[4459],256],12634:[[4460],256],12635:[[4461],256],12636:[[4462],256],12637:[[4463],256],12638:[[4464],256],12639:[[4465],256],12640:[[4466],256],12641:[[4467],256],12642:[[4468],256],12643:[[4469],256],12644:[[4448],256],12645:[[4372],256],12646:[[4373],256],12647:[[4551],256],12648:[[4552],256],12649:[[4556],256],12650:[[4558],256],12651:[[4563],256],12652:[[4567],256],12653:[[4569],256],12654:[[4380],256],12655:[[4573],256],12656:[[4575],256],12657:[[4381],256],12658:[[4382],256],12659:[[4384],256],12660:[[4386],256],12661:[[4387],256],12662:[[4391],256],12663:[[4393],256],12664:[[4395],256],12665:[[4396],256],12666:[[4397],256],12667:[[4398],256],12668:[[4399],256],12669:[[4402],256],12670:[[4406],256],12671:[[4416],256],12672:[[4423],256],12673:[[4428],256],12674:[[4593],256],12675:[[4594],256],12676:[[4439],256],12677:[[4440],256],12678:[[4441],256],12679:[[4484],256],12680:[[4485],256],12681:[[4488],256],12682:[[4497],256],12683:[[4498],256],12684:[[4500],256],12685:[[4510],256],12686:[[4513],256],12690:[[19968],256],12691:[[20108],256],12692:[[19977],256],12693:[[22235],256],12694:[[19978],256],12695:[[20013],256],12696:[[19979],256],12697:[[30002],256],12698:[[20057],256],12699:[[19993],256],12700:[[19969],256],12701:[[22825],256],12702:[[22320],256],12703:[[20154],256]},\n12800:{12800:[[40,4352,41],256],12801:[[40,4354,41],256],12802:[[40,4355,41],256],12803:[[40,4357,41],256],12804:[[40,4358,41],256],12805:[[40,4359,41],256],12806:[[40,4361,41],256],12807:[[40,4363,41],256],12808:[[40,4364,41],256],12809:[[40,4366,41],256],12810:[[40,4367,41],256],12811:[[40,4368,41],256],12812:[[40,4369,41],256],12813:[[40,4370,41],256],12814:[[40,4352,4449,41],256],12815:[[40,4354,4449,41],256],12816:[[40,4355,4449,41],256],12817:[[40,4357,4449,41],256],12818:[[40,4358,4449,41],256],12819:[[40,4359,4449,41],256],12820:[[40,4361,4449,41],256],12821:[[40,4363,4449,41],256],12822:[[40,4364,4449,41],256],12823:[[40,4366,4449,41],256],12824:[[40,4367,4449,41],256],12825:[[40,4368,4449,41],256],12826:[[40,4369,4449,41],256],12827:[[40,4370,4449,41],256],12828:[[40,4364,4462,41],256],12829:[[40,4363,4457,4364,4453,4523,41],256],12830:[[40,4363,4457,4370,4462,41],256],12832:[[40,19968,41],256],12833:[[40,20108,41],256],12834:[[40,19977,41],256],12835:[[40,22235,41],256],12836:[[40,20116,41],256],12837:[[40,20845,41],256],12838:[[40,19971,41],256],12839:[[40,20843,41],256],12840:[[40,20061,41],256],12841:[[40,21313,41],256],12842:[[40,26376,41],256],12843:[[40,28779,41],256],12844:[[40,27700,41],256],12845:[[40,26408,41],256],12846:[[40,37329,41],256],12847:[[40,22303,41],256],12848:[[40,26085,41],256],12849:[[40,26666,41],256],12850:[[40,26377,41],256],12851:[[40,31038,41],256],12852:[[40,21517,41],256],12853:[[40,29305,41],256],12854:[[40,36001,41],256],12855:[[40,31069,41],256],12856:[[40,21172,41],256],12857:[[40,20195,41],256],12858:[[40,21628,41],256],12859:[[40,23398,41],256],12860:[[40,30435,41],256],12861:[[40,20225,41],256],12862:[[40,36039,41],256],12863:[[40,21332,41],256],12864:[[40,31085,41],256],12865:[[40,20241,41],256],12866:[[40,33258,41],256],12867:[[40,33267,41],256],12868:[[21839],256],12869:[[24188],256],12870:[[25991],256],12871:[[31631],256],12880:[[80,84,69],256],12881:[[50,49],256],12882:[[50,50],256],12883:[[50,51],256],12884:[[50,52],256],12885:[[50,53],256],12886:[[50,54],256],12887:[[50,55],256],12888:[[50,56],256],12889:[[50,57],256],12890:[[51,48],256],12891:[[51,49],256],12892:[[51,50],256],12893:[[51,51],256],12894:[[51,52],256],12895:[[51,53],256],12896:[[4352],256],12897:[[4354],256],12898:[[4355],256],12899:[[4357],256],12900:[[4358],256],12901:[[4359],256],12902:[[4361],256],12903:[[4363],256],12904:[[4364],256],12905:[[4366],256],12906:[[4367],256],12907:[[4368],256],12908:[[4369],256],12909:[[4370],256],12910:[[4352,4449],256],12911:[[4354,4449],256],12912:[[4355,4449],256],12913:[[4357,4449],256],12914:[[4358,4449],256],12915:[[4359,4449],256],12916:[[4361,4449],256],12917:[[4363,4449],256],12918:[[4364,4449],256],12919:[[4366,4449],256],12920:[[4367,4449],256],12921:[[4368,4449],256],12922:[[4369,4449],256],12923:[[4370,4449],256],12924:[[4366,4449,4535,4352,4457],256],12925:[[4364,4462,4363,4468],256],12926:[[4363,4462],256],12928:[[19968],256],12929:[[20108],256],12930:[[19977],256],12931:[[22235],256],12932:[[20116],256],12933:[[20845],256],12934:[[19971],256],12935:[[20843],256],12936:[[20061],256],12937:[[21313],256],12938:[[26376],256],12939:[[28779],256],12940:[[27700],256],12941:[[26408],256],12942:[[37329],256],12943:[[22303],256],12944:[[26085],256],12945:[[26666],256],12946:[[26377],256],12947:[[31038],256],12948:[[21517],256],12949:[[29305],256],12950:[[36001],256],12951:[[31069],256],12952:[[21172],256],12953:[[31192],256],12954:[[30007],256],12955:[[22899],256],12956:[[36969],256],12957:[[20778],256],12958:[[21360],256],12959:[[27880],256],12960:[[38917],256],12961:[[20241],256],12962:[[20889],256],12963:[[27491],256],12964:[[19978],256],12965:[[20013],256],12966:[[19979],256],12967:[[24038],256],12968:[[21491],256],12969:[[21307],256],12970:[[23447],256],12971:[[23398],256],12972:[[30435],256],12973:[[20225],256],12974:[[36039],256],12975:[[21332],256],12976:[[22812],256],12977:[[51,54],256],12978:[[51,55],256],12979:[[51,56],256],12980:[[51,57],256],12981:[[52,48],256],12982:[[52,49],256],12983:[[52,50],256],12984:[[52,51],256],12985:[[52,52],256],12986:[[52,53],256],12987:[[52,54],256],12988:[[52,55],256],12989:[[52,56],256],12990:[[52,57],256],12991:[[53,48],256],12992:[[49,26376],256],12993:[[50,26376],256],12994:[[51,26376],256],12995:[[52,26376],256],12996:[[53,26376],256],12997:[[54,26376],256],12998:[[55,26376],256],12999:[[56,26376],256],13000:[[57,26376],256],13001:[[49,48,26376],256],13002:[[49,49,26376],256],13003:[[49,50,26376],256],13004:[[72,103],256],13005:[[101,114,103],256],13006:[[101,86],256],13007:[[76,84,68],256],13008:[[12450],256],13009:[[12452],256],13010:[[12454],256],13011:[[12456],256],13012:[[12458],256],13013:[[12459],256],13014:[[12461],256],13015:[[12463],256],13016:[[12465],256],13017:[[12467],256],13018:[[12469],256],13019:[[12471],256],13020:[[12473],256],13021:[[12475],256],13022:[[12477],256],13023:[[12479],256],13024:[[12481],256],13025:[[12484],256],13026:[[12486],256],13027:[[12488],256],13028:[[12490],256],13029:[[12491],256],13030:[[12492],256],13031:[[12493],256],13032:[[12494],256],13033:[[12495],256],13034:[[12498],256],13035:[[12501],256],13036:[[12504],256],13037:[[12507],256],13038:[[12510],256],13039:[[12511],256],13040:[[12512],256],13041:[[12513],256],13042:[[12514],256],13043:[[12516],256],13044:[[12518],256],13045:[[12520],256],13046:[[12521],256],13047:[[12522],256],13048:[[12523],256],13049:[[12524],256],13050:[[12525],256],13051:[[12527],256],13052:[[12528],256],13053:[[12529],256],13054:[[12530],256]},\n13056:{13056:[[12450,12497,12540,12488],256],13057:[[12450,12523,12501,12449],256],13058:[[12450,12531,12506,12450],256],13059:[[12450,12540,12523],256],13060:[[12452,12491,12531,12464],256],13061:[[12452,12531,12481],256],13062:[[12454,12457,12531],256],13063:[[12456,12473,12463,12540,12489],256],13064:[[12456,12540,12459,12540],256],13065:[[12458,12531,12473],256],13066:[[12458,12540,12512],256],13067:[[12459,12452,12522],256],13068:[[12459,12521,12483,12488],256],13069:[[12459,12525,12522,12540],256],13070:[[12460,12525,12531],256],13071:[[12460,12531,12510],256],13072:[[12462,12460],256],13073:[[12462,12491,12540],256],13074:[[12461,12517,12522,12540],256],13075:[[12462,12523,12480,12540],256],13076:[[12461,12525],256],13077:[[12461,12525,12464,12521,12512],256],13078:[[12461,12525,12513,12540,12488,12523],256],13079:[[12461,12525,12527,12483,12488],256],13080:[[12464,12521,12512],256],13081:[[12464,12521,12512,12488,12531],256],13082:[[12463,12523,12476,12452,12525],256],13083:[[12463,12525,12540,12493],256],13084:[[12465,12540,12473],256],13085:[[12467,12523,12490],256],13086:[[12467,12540,12509],256],13087:[[12469,12452,12463,12523],256],13088:[[12469,12531,12481,12540,12512],256],13089:[[12471,12522,12531,12464],256],13090:[[12475,12531,12481],256],13091:[[12475,12531,12488],256],13092:[[12480,12540,12473],256],13093:[[12487,12471],256],13094:[[12489,12523],256],13095:[[12488,12531],256],13096:[[12490,12494],256],13097:[[12494,12483,12488],256],13098:[[12495,12452,12484],256],13099:[[12497,12540,12475,12531,12488],256],13100:[[12497,12540,12484],256],13101:[[12496,12540,12524,12523],256],13102:[[12500,12450,12473,12488,12523],256],13103:[[12500,12463,12523],256],13104:[[12500,12467],256],13105:[[12499,12523],256],13106:[[12501,12449,12521,12483,12489],256],13107:[[12501,12451,12540,12488],256],13108:[[12502,12483,12471,12455,12523],256],13109:[[12501,12521,12531],256],13110:[[12504,12463,12479,12540,12523],256],13111:[[12506,12477],256],13112:[[12506,12491,12498],256],13113:[[12504,12523,12484],256],13114:[[12506,12531,12473],256],13115:[[12506,12540,12472],256],13116:[[12505,12540,12479],256],13117:[[12509,12452,12531,12488],256],13118:[[12508,12523,12488],256],13119:[[12507,12531],256],13120:[[12509,12531,12489],256],13121:[[12507,12540,12523],256],13122:[[12507,12540,12531],256],13123:[[12510,12452,12463,12525],256],13124:[[12510,12452,12523],256],13125:[[12510,12483,12495],256],13126:[[12510,12523,12463],256],13127:[[12510,12531,12471,12519,12531],256],13128:[[12511,12463,12525,12531],256],13129:[[12511,12522],256],13130:[[12511,12522,12496,12540,12523],256],13131:[[12513,12460],256],13132:[[12513,12460,12488,12531],256],13133:[[12513,12540,12488,12523],256],13134:[[12516,12540,12489],256],13135:[[12516,12540,12523],256],13136:[[12518,12450,12531],256],13137:[[12522,12483,12488,12523],256],13138:[[12522,12521],256],13139:[[12523,12500,12540],256],13140:[[12523,12540,12502,12523],256],13141:[[12524,12512],256],13142:[[12524,12531,12488,12466,12531],256],13143:[[12527,12483,12488],256],13144:[[48,28857],256],13145:[[49,28857],256],13146:[[50,28857],256],13147:[[51,28857],256],13148:[[52,28857],256],13149:[[53,28857],256],13150:[[54,28857],256],13151:[[55,28857],256],13152:[[56,28857],256],13153:[[57,28857],256],13154:[[49,48,28857],256],13155:[[49,49,28857],256],13156:[[49,50,28857],256],13157:[[49,51,28857],256],13158:[[49,52,28857],256],13159:[[49,53,28857],256],13160:[[49,54,28857],256],13161:[[49,55,28857],256],13162:[[49,56,28857],256],13163:[[49,57,28857],256],13164:[[50,48,28857],256],13165:[[50,49,28857],256],13166:[[50,50,28857],256],13167:[[50,51,28857],256],13168:[[50,52,28857],256],13169:[[104,80,97],256],13170:[[100,97],256],13171:[[65,85],256],13172:[[98,97,114],256],13173:[[111,86],256],13174:[[112,99],256],13175:[[100,109],256],13176:[[100,109,178],256],13177:[[100,109,179],256],13178:[[73,85],256],13179:[[24179,25104],256],13180:[[26157,21644],256],13181:[[22823,27491],256],13182:[[26126,27835],256],13183:[[26666,24335,20250,31038],256],13184:[[112,65],256],13185:[[110,65],256],13186:[[956,65],256],13187:[[109,65],256],13188:[[107,65],256],13189:[[75,66],256],13190:[[77,66],256],13191:[[71,66],256],13192:[[99,97,108],256],13193:[[107,99,97,108],256],13194:[[112,70],256],13195:[[110,70],256],13196:[[956,70],256],13197:[[956,103],256],13198:[[109,103],256],13199:[[107,103],256],13200:[[72,122],256],13201:[[107,72,122],256],13202:[[77,72,122],256],13203:[[71,72,122],256],13204:[[84,72,122],256],13205:[[956,8467],256],13206:[[109,8467],256],13207:[[100,8467],256],13208:[[107,8467],256],13209:[[102,109],256],13210:[[110,109],256],13211:[[956,109],256],13212:[[109,109],256],13213:[[99,109],256],13214:[[107,109],256],13215:[[109,109,178],256],13216:[[99,109,178],256],13217:[[109,178],256],13218:[[107,109,178],256],13219:[[109,109,179],256],13220:[[99,109,179],256],13221:[[109,179],256],13222:[[107,109,179],256],13223:[[109,8725,115],256],13224:[[109,8725,115,178],256],13225:[[80,97],256],13226:[[107,80,97],256],13227:[[77,80,97],256],13228:[[71,80,97],256],13229:[[114,97,100],256],13230:[[114,97,100,8725,115],256],13231:[[114,97,100,8725,115,178],256],13232:[[112,115],256],13233:[[110,115],256],13234:[[956,115],256],13235:[[109,115],256],13236:[[112,86],256],13237:[[110,86],256],13238:[[956,86],256],13239:[[109,86],256],13240:[[107,86],256],13241:[[77,86],256],13242:[[112,87],256],13243:[[110,87],256],13244:[[956,87],256],13245:[[109,87],256],13246:[[107,87],256],13247:[[77,87],256],13248:[[107,937],256],13249:[[77,937],256],13250:[[97,46,109,46],256],13251:[[66,113],256],13252:[[99,99],256],13253:[[99,100],256],13254:[[67,8725,107,103],256],13255:[[67,111,46],256],13256:[[100,66],256],13257:[[71,121],256],13258:[[104,97],256],13259:[[72,80],256],13260:[[105,110],256],13261:[[75,75],256],13262:[[75,77],256],13263:[[107,116],256],13264:[[108,109],256],13265:[[108,110],256],13266:[[108,111,103],256],13267:[[108,120],256],13268:[[109,98],256],13269:[[109,105,108],256],13270:[[109,111,108],256],13271:[[80,72],256],13272:[[112,46,109,46],256],13273:[[80,80,77],256],13274:[[80,82],256],13275:[[115,114],256],13276:[[83,118],256],13277:[[87,98],256],13278:[[86,8725,109],256],13279:[[65,8725,109],256],13280:[[49,26085],256],13281:[[50,26085],256],13282:[[51,26085],256],13283:[[52,26085],256],13284:[[53,26085],256],13285:[[54,26085],256],13286:[[55,26085],256],13287:[[56,26085],256],13288:[[57,26085],256],13289:[[49,48,26085],256],13290:[[49,49,26085],256],13291:[[49,50,26085],256],13292:[[49,51,26085],256],13293:[[49,52,26085],256],13294:[[49,53,26085],256],13295:[[49,54,26085],256],13296:[[49,55,26085],256],13297:[[49,56,26085],256],13298:[[49,57,26085],256],13299:[[50,48,26085],256],13300:[[50,49,26085],256],13301:[[50,50,26085],256],13302:[[50,51,26085],256],13303:[[50,52,26085],256],13304:[[50,53,26085],256],13305:[[50,54,26085],256],13306:[[50,55,26085],256],13307:[[50,56,26085],256],13308:[[50,57,26085],256],13309:[[51,48,26085],256],13310:[[51,49,26085],256],13311:[[103,97,108],256]},\n27136:{92912:[,1],92913:[,1],92914:[,1],92915:[,1],92916:[,1]},\n27392:{92976:[,230],92977:[,230],92978:[,230],92979:[,230],92980:[,230],92981:[,230],92982:[,230]},\n42496:{42607:[,230],42612:[,230],42613:[,230],42614:[,230],42615:[,230],42616:[,230],42617:[,230],42618:[,230],42619:[,230],42620:[,230],42621:[,230],42652:[[1098],256],42653:[[1100],256],42655:[,230],42736:[,230],42737:[,230]},\n42752:{42864:[[42863],256],43000:[[294],256],43001:[[339],256]},\n43008:{43014:[,9],43204:[,9],43232:[,230],43233:[,230],43234:[,230],43235:[,230],43236:[,230],43237:[,230],43238:[,230],43239:[,230],43240:[,230],43241:[,230],43242:[,230],43243:[,230],43244:[,230],43245:[,230],43246:[,230],43247:[,230],43248:[,230],43249:[,230]},\n43264:{43307:[,220],43308:[,220],43309:[,220],43347:[,9],43443:[,7],43456:[,9]},\n43520:{43696:[,230],43698:[,230],43699:[,230],43700:[,220],43703:[,230],43704:[,230],43710:[,230],43711:[,230],43713:[,230],43766:[,9]},\n43776:{43868:[[42791],256],43869:[[43831],256],43870:[[619],256],43871:[[43858],256],44013:[,9]},\n48128:{113822:[,1]},\n53504:{119134:[[119127,119141],512],119135:[[119128,119141],512],119136:[[119135,119150],512],119137:[[119135,119151],512],119138:[[119135,119152],512],119139:[[119135,119153],512],119140:[[119135,119154],512],119141:[,216],119142:[,216],119143:[,1],119144:[,1],119145:[,1],119149:[,226],119150:[,216],119151:[,216],119152:[,216],119153:[,216],119154:[,216],119163:[,220],119164:[,220],119165:[,220],119166:[,220],119167:[,220],119168:[,220],119169:[,220],119170:[,220],119173:[,230],119174:[,230],119175:[,230],119176:[,230],119177:[,230],119178:[,220],119179:[,220],119210:[,230],119211:[,230],119212:[,230],119213:[,230],119227:[[119225,119141],512],119228:[[119226,119141],512],119229:[[119227,119150],512],119230:[[119228,119150],512],119231:[[119227,119151],512],119232:[[119228,119151],512]},\n53760:{119362:[,230],119363:[,230],119364:[,230]},\n54272:{119808:[[65],256],119809:[[66],256],119810:[[67],256],119811:[[68],256],119812:[[69],256],119813:[[70],256],119814:[[71],256],119815:[[72],256],119816:[[73],256],119817:[[74],256],119818:[[75],256],119819:[[76],256],119820:[[77],256],119821:[[78],256],119822:[[79],256],119823:[[80],256],119824:[[81],256],119825:[[82],256],119826:[[83],256],119827:[[84],256],119828:[[85],256],119829:[[86],256],119830:[[87],256],119831:[[88],256],119832:[[89],256],119833:[[90],256],119834:[[97],256],119835:[[98],256],119836:[[99],256],119837:[[100],256],119838:[[101],256],119839:[[102],256],119840:[[103],256],119841:[[104],256],119842:[[105],256],119843:[[106],256],119844:[[107],256],119845:[[108],256],119846:[[109],256],119847:[[110],256],119848:[[111],256],119849:[[112],256],119850:[[113],256],119851:[[114],256],119852:[[115],256],119853:[[116],256],119854:[[117],256],119855:[[118],256],119856:[[119],256],119857:[[120],256],119858:[[121],256],119859:[[122],256],119860:[[65],256],119861:[[66],256],119862:[[67],256],119863:[[68],256],119864:[[69],256],119865:[[70],256],119866:[[71],256],119867:[[72],256],119868:[[73],256],119869:[[74],256],119870:[[75],256],119871:[[76],256],119872:[[77],256],119873:[[78],256],119874:[[79],256],119875:[[80],256],119876:[[81],256],119877:[[82],256],119878:[[83],256],119879:[[84],256],119880:[[85],256],119881:[[86],256],119882:[[87],256],119883:[[88],256],119884:[[89],256],119885:[[90],256],119886:[[97],256],119887:[[98],256],119888:[[99],256],119889:[[100],256],119890:[[101],256],119891:[[102],256],119892:[[103],256],119894:[[105],256],119895:[[106],256],119896:[[107],256],119897:[[108],256],119898:[[109],256],119899:[[110],256],119900:[[111],256],119901:[[112],256],119902:[[113],256],119903:[[114],256],119904:[[115],256],119905:[[116],256],119906:[[117],256],119907:[[118],256],119908:[[119],256],119909:[[120],256],119910:[[121],256],119911:[[122],256],119912:[[65],256],119913:[[66],256],119914:[[67],256],119915:[[68],256],119916:[[69],256],119917:[[70],256],119918:[[71],256],119919:[[72],256],119920:[[73],256],119921:[[74],256],119922:[[75],256],119923:[[76],256],119924:[[77],256],119925:[[78],256],119926:[[79],256],119927:[[80],256],119928:[[81],256],119929:[[82],256],119930:[[83],256],119931:[[84],256],119932:[[85],256],119933:[[86],256],119934:[[87],256],119935:[[88],256],119936:[[89],256],119937:[[90],256],119938:[[97],256],119939:[[98],256],119940:[[99],256],119941:[[100],256],119942:[[101],256],119943:[[102],256],119944:[[103],256],119945:[[104],256],119946:[[105],256],119947:[[106],256],119948:[[107],256],119949:[[108],256],119950:[[109],256],119951:[[110],256],119952:[[111],256],119953:[[112],256],119954:[[113],256],119955:[[114],256],119956:[[115],256],119957:[[116],256],119958:[[117],256],119959:[[118],256],119960:[[119],256],119961:[[120],256],119962:[[121],256],119963:[[122],256],119964:[[65],256],119966:[[67],256],119967:[[68],256],119970:[[71],256],119973:[[74],256],119974:[[75],256],119977:[[78],256],119978:[[79],256],119979:[[80],256],119980:[[81],256],119982:[[83],256],119983:[[84],256],119984:[[85],256],119985:[[86],256],119986:[[87],256],119987:[[88],256],119988:[[89],256],119989:[[90],256],119990:[[97],256],119991:[[98],256],119992:[[99],256],119993:[[100],256],119995:[[102],256],119997:[[104],256],119998:[[105],256],119999:[[106],256],120000:[[107],256],120001:[[108],256],120002:[[109],256],120003:[[110],256],120005:[[112],256],120006:[[113],256],120007:[[114],256],120008:[[115],256],120009:[[116],256],120010:[[117],256],120011:[[118],256],120012:[[119],256],120013:[[120],256],120014:[[121],256],120015:[[122],256],120016:[[65],256],120017:[[66],256],120018:[[67],256],120019:[[68],256],120020:[[69],256],120021:[[70],256],120022:[[71],256],120023:[[72],256],120024:[[73],256],120025:[[74],256],120026:[[75],256],120027:[[76],256],120028:[[77],256],120029:[[78],256],120030:[[79],256],120031:[[80],256],120032:[[81],256],120033:[[82],256],120034:[[83],256],120035:[[84],256],120036:[[85],256],120037:[[86],256],120038:[[87],256],120039:[[88],256],120040:[[89],256],120041:[[90],256],120042:[[97],256],120043:[[98],256],120044:[[99],256],120045:[[100],256],120046:[[101],256],120047:[[102],256],120048:[[103],256],120049:[[104],256],120050:[[105],256],120051:[[106],256],120052:[[107],256],120053:[[108],256],120054:[[109],256],120055:[[110],256],120056:[[111],256],120057:[[112],256],120058:[[113],256],120059:[[114],256],120060:[[115],256],120061:[[116],256],120062:[[117],256],120063:[[118],256]},\n54528:{120064:[[119],256],120065:[[120],256],120066:[[121],256],120067:[[122],256],120068:[[65],256],120069:[[66],256],120071:[[68],256],120072:[[69],256],120073:[[70],256],120074:[[71],256],120077:[[74],256],120078:[[75],256],120079:[[76],256],120080:[[77],256],120081:[[78],256],120082:[[79],256],120083:[[80],256],120084:[[81],256],120086:[[83],256],120087:[[84],256],120088:[[85],256],120089:[[86],256],120090:[[87],256],120091:[[88],256],120092:[[89],256],120094:[[97],256],120095:[[98],256],120096:[[99],256],120097:[[100],256],120098:[[101],256],120099:[[102],256],120100:[[103],256],120101:[[104],256],120102:[[105],256],120103:[[106],256],120104:[[107],256],120105:[[108],256],120106:[[109],256],120107:[[110],256],120108:[[111],256],120109:[[112],256],120110:[[113],256],120111:[[114],256],120112:[[115],256],120113:[[116],256],120114:[[117],256],120115:[[118],256],120116:[[119],256],120117:[[120],256],120118:[[121],256],120119:[[122],256],120120:[[65],256],120121:[[66],256],120123:[[68],256],120124:[[69],256],120125:[[70],256],120126:[[71],256],120128:[[73],256],120129:[[74],256],120130:[[75],256],120131:[[76],256],120132:[[77],256],120134:[[79],256],120138:[[83],256],120139:[[84],256],120140:[[85],256],120141:[[86],256],120142:[[87],256],120143:[[88],256],120144:[[89],256],120146:[[97],256],120147:[[98],256],120148:[[99],256],120149:[[100],256],120150:[[101],256],120151:[[102],256],120152:[[103],256],120153:[[104],256],120154:[[105],256],120155:[[106],256],120156:[[107],256],120157:[[108],256],120158:[[109],256],120159:[[110],256],120160:[[111],256],120161:[[112],256],120162:[[113],256],120163:[[114],256],120164:[[115],256],120165:[[116],256],120166:[[117],256],120167:[[118],256],120168:[[119],256],120169:[[120],256],120170:[[121],256],120171:[[122],256],120172:[[65],256],120173:[[66],256],120174:[[67],256],120175:[[68],256],120176:[[69],256],120177:[[70],256],120178:[[71],256],120179:[[72],256],120180:[[73],256],120181:[[74],256],120182:[[75],256],120183:[[76],256],120184:[[77],256],120185:[[78],256],120186:[[79],256],120187:[[80],256],120188:[[81],256],120189:[[82],256],120190:[[83],256],120191:[[84],256],120192:[[85],256],120193:[[86],256],120194:[[87],256],120195:[[88],256],120196:[[89],256],120197:[[90],256],120198:[[97],256],120199:[[98],256],120200:[[99],256],120201:[[100],256],120202:[[101],256],120203:[[102],256],120204:[[103],256],120205:[[104],256],120206:[[105],256],120207:[[106],256],120208:[[107],256],120209:[[108],256],120210:[[109],256],120211:[[110],256],120212:[[111],256],120213:[[112],256],120214:[[113],256],120215:[[114],256],120216:[[115],256],120217:[[116],256],120218:[[117],256],120219:[[118],256],120220:[[119],256],120221:[[120],256],120222:[[121],256],120223:[[122],256],120224:[[65],256],120225:[[66],256],120226:[[67],256],120227:[[68],256],120228:[[69],256],120229:[[70],256],120230:[[71],256],120231:[[72],256],120232:[[73],256],120233:[[74],256],120234:[[75],256],120235:[[76],256],120236:[[77],256],120237:[[78],256],120238:[[79],256],120239:[[80],256],120240:[[81],256],120241:[[82],256],120242:[[83],256],120243:[[84],256],120244:[[85],256],120245:[[86],256],120246:[[87],256],120247:[[88],256],120248:[[89],256],120249:[[90],256],120250:[[97],256],120251:[[98],256],120252:[[99],256],120253:[[100],256],120254:[[101],256],120255:[[102],256],120256:[[103],256],120257:[[104],256],120258:[[105],256],120259:[[106],256],120260:[[107],256],120261:[[108],256],120262:[[109],256],120263:[[110],256],120264:[[111],256],120265:[[112],256],120266:[[113],256],120267:[[114],256],120268:[[115],256],120269:[[116],256],120270:[[117],256],120271:[[118],256],120272:[[119],256],120273:[[120],256],120274:[[121],256],120275:[[122],256],120276:[[65],256],120277:[[66],256],120278:[[67],256],120279:[[68],256],120280:[[69],256],120281:[[70],256],120282:[[71],256],120283:[[72],256],120284:[[73],256],120285:[[74],256],120286:[[75],256],120287:[[76],256],120288:[[77],256],120289:[[78],256],120290:[[79],256],120291:[[80],256],120292:[[81],256],120293:[[82],256],120294:[[83],256],120295:[[84],256],120296:[[85],256],120297:[[86],256],120298:[[87],256],120299:[[88],256],120300:[[89],256],120301:[[90],256],120302:[[97],256],120303:[[98],256],120304:[[99],256],120305:[[100],256],120306:[[101],256],120307:[[102],256],120308:[[103],256],120309:[[104],256],120310:[[105],256],120311:[[106],256],120312:[[107],256],120313:[[108],256],120314:[[109],256],120315:[[110],256],120316:[[111],256],120317:[[112],256],120318:[[113],256],120319:[[114],256]},\n54784:{120320:[[115],256],120321:[[116],256],120322:[[117],256],120323:[[118],256],120324:[[119],256],120325:[[120],256],120326:[[121],256],120327:[[122],256],120328:[[65],256],120329:[[66],256],120330:[[67],256],120331:[[68],256],120332:[[69],256],120333:[[70],256],120334:[[71],256],120335:[[72],256],120336:[[73],256],120337:[[74],256],120338:[[75],256],120339:[[76],256],120340:[[77],256],120341:[[78],256],120342:[[79],256],120343:[[80],256],120344:[[81],256],120345:[[82],256],120346:[[83],256],120347:[[84],256],120348:[[85],256],120349:[[86],256],120350:[[87],256],120351:[[88],256],120352:[[89],256],120353:[[90],256],120354:[[97],256],120355:[[98],256],120356:[[99],256],120357:[[100],256],120358:[[101],256],120359:[[102],256],120360:[[103],256],120361:[[104],256],120362:[[105],256],120363:[[106],256],120364:[[107],256],120365:[[108],256],120366:[[109],256],120367:[[110],256],120368:[[111],256],120369:[[112],256],120370:[[113],256],120371:[[114],256],120372:[[115],256],120373:[[116],256],120374:[[117],256],120375:[[118],256],120376:[[119],256],120377:[[120],256],120378:[[121],256],120379:[[122],256],120380:[[65],256],120381:[[66],256],120382:[[67],256],120383:[[68],256],120384:[[69],256],120385:[[70],256],120386:[[71],256],120387:[[72],256],120388:[[73],256],120389:[[74],256],120390:[[75],256],120391:[[76],256],120392:[[77],256],120393:[[78],256],120394:[[79],256],120395:[[80],256],120396:[[81],256],120397:[[82],256],120398:[[83],256],120399:[[84],256],120400:[[85],256],120401:[[86],256],120402:[[87],256],120403:[[88],256],120404:[[89],256],120405:[[90],256],120406:[[97],256],120407:[[98],256],120408:[[99],256],120409:[[100],256],120410:[[101],256],120411:[[102],256],120412:[[103],256],120413:[[104],256],120414:[[105],256],120415:[[106],256],120416:[[107],256],120417:[[108],256],120418:[[109],256],120419:[[110],256],120420:[[111],256],120421:[[112],256],120422:[[113],256],120423:[[114],256],120424:[[115],256],120425:[[116],256],120426:[[117],256],120427:[[118],256],120428:[[119],256],120429:[[120],256],120430:[[121],256],120431:[[122],256],120432:[[65],256],120433:[[66],256],120434:[[67],256],120435:[[68],256],120436:[[69],256],120437:[[70],256],120438:[[71],256],120439:[[72],256],120440:[[73],256],120441:[[74],256],120442:[[75],256],120443:[[76],256],120444:[[77],256],120445:[[78],256],120446:[[79],256],120447:[[80],256],120448:[[81],256],120449:[[82],256],120450:[[83],256],120451:[[84],256],120452:[[85],256],120453:[[86],256],120454:[[87],256],120455:[[88],256],120456:[[89],256],120457:[[90],256],120458:[[97],256],120459:[[98],256],120460:[[99],256],120461:[[100],256],120462:[[101],256],120463:[[102],256],120464:[[103],256],120465:[[104],256],120466:[[105],256],120467:[[106],256],120468:[[107],256],120469:[[108],256],120470:[[109],256],120471:[[110],256],120472:[[111],256],120473:[[112],256],120474:[[113],256],120475:[[114],256],120476:[[115],256],120477:[[116],256],120478:[[117],256],120479:[[118],256],120480:[[119],256],120481:[[120],256],120482:[[121],256],120483:[[122],256],120484:[[305],256],120485:[[567],256],120488:[[913],256],120489:[[914],256],120490:[[915],256],120491:[[916],256],120492:[[917],256],120493:[[918],256],120494:[[919],256],120495:[[920],256],120496:[[921],256],120497:[[922],256],120498:[[923],256],120499:[[924],256],120500:[[925],256],120501:[[926],256],120502:[[927],256],120503:[[928],256],120504:[[929],256],120505:[[1012],256],120506:[[931],256],120507:[[932],256],120508:[[933],256],120509:[[934],256],120510:[[935],256],120511:[[936],256],120512:[[937],256],120513:[[8711],256],120514:[[945],256],120515:[[946],256],120516:[[947],256],120517:[[948],256],120518:[[949],256],120519:[[950],256],120520:[[951],256],120521:[[952],256],120522:[[953],256],120523:[[954],256],120524:[[955],256],120525:[[956],256],120526:[[957],256],120527:[[958],256],120528:[[959],256],120529:[[960],256],120530:[[961],256],120531:[[962],256],120532:[[963],256],120533:[[964],256],120534:[[965],256],120535:[[966],256],120536:[[967],256],120537:[[968],256],120538:[[969],256],120539:[[8706],256],120540:[[1013],256],120541:[[977],256],120542:[[1008],256],120543:[[981],256],120544:[[1009],256],120545:[[982],256],120546:[[913],256],120547:[[914],256],120548:[[915],256],120549:[[916],256],120550:[[917],256],120551:[[918],256],120552:[[919],256],120553:[[920],256],120554:[[921],256],120555:[[922],256],120556:[[923],256],120557:[[924],256],120558:[[925],256],120559:[[926],256],120560:[[927],256],120561:[[928],256],120562:[[929],256],120563:[[1012],256],120564:[[931],256],120565:[[932],256],120566:[[933],256],120567:[[934],256],120568:[[935],256],120569:[[936],256],120570:[[937],256],120571:[[8711],256],120572:[[945],256],120573:[[946],256],120574:[[947],256],120575:[[948],256]},\n55040:{120576:[[949],256],120577:[[950],256],120578:[[951],256],120579:[[952],256],120580:[[953],256],120581:[[954],256],120582:[[955],256],120583:[[956],256],120584:[[957],256],120585:[[958],256],120586:[[959],256],120587:[[960],256],120588:[[961],256],120589:[[962],256],120590:[[963],256],120591:[[964],256],120592:[[965],256],120593:[[966],256],120594:[[967],256],120595:[[968],256],120596:[[969],256],120597:[[8706],256],120598:[[1013],256],120599:[[977],256],120600:[[1008],256],120601:[[981],256],120602:[[1009],256],120603:[[982],256],120604:[[913],256],120605:[[914],256],120606:[[915],256],120607:[[916],256],120608:[[917],256],120609:[[918],256],120610:[[919],256],120611:[[920],256],120612:[[921],256],120613:[[922],256],120614:[[923],256],120615:[[924],256],120616:[[925],256],120617:[[926],256],120618:[[927],256],120619:[[928],256],120620:[[929],256],120621:[[1012],256],120622:[[931],256],120623:[[932],256],120624:[[933],256],120625:[[934],256],120626:[[935],256],120627:[[936],256],120628:[[937],256],120629:[[8711],256],120630:[[945],256],120631:[[946],256],120632:[[947],256],120633:[[948],256],120634:[[949],256],120635:[[950],256],120636:[[951],256],120637:[[952],256],120638:[[953],256],120639:[[954],256],120640:[[955],256],120641:[[956],256],120642:[[957],256],120643:[[958],256],120644:[[959],256],120645:[[960],256],120646:[[961],256],120647:[[962],256],120648:[[963],256],120649:[[964],256],120650:[[965],256],120651:[[966],256],120652:[[967],256],120653:[[968],256],120654:[[969],256],120655:[[8706],256],120656:[[1013],256],120657:[[977],256],120658:[[1008],256],120659:[[981],256],120660:[[1009],256],120661:[[982],256],120662:[[913],256],120663:[[914],256],120664:[[915],256],120665:[[916],256],120666:[[917],256],120667:[[918],256],120668:[[919],256],120669:[[920],256],120670:[[921],256],120671:[[922],256],120672:[[923],256],120673:[[924],256],120674:[[925],256],120675:[[926],256],120676:[[927],256],120677:[[928],256],120678:[[929],256],120679:[[1012],256],120680:[[931],256],120681:[[932],256],120682:[[933],256],120683:[[934],256],120684:[[935],256],120685:[[936],256],120686:[[937],256],120687:[[8711],256],120688:[[945],256],120689:[[946],256],120690:[[947],256],120691:[[948],256],120692:[[949],256],120693:[[950],256],120694:[[951],256],120695:[[952],256],120696:[[953],256],120697:[[954],256],120698:[[955],256],120699:[[956],256],120700:[[957],256],120701:[[958],256],120702:[[959],256],120703:[[960],256],120704:[[961],256],120705:[[962],256],120706:[[963],256],120707:[[964],256],120708:[[965],256],120709:[[966],256],120710:[[967],256],120711:[[968],256],120712:[[969],256],120713:[[8706],256],120714:[[1013],256],120715:[[977],256],120716:[[1008],256],120717:[[981],256],120718:[[1009],256],120719:[[982],256],120720:[[913],256],120721:[[914],256],120722:[[915],256],120723:[[916],256],120724:[[917],256],120725:[[918],256],120726:[[919],256],120727:[[920],256],120728:[[921],256],120729:[[922],256],120730:[[923],256],120731:[[924],256],120732:[[925],256],120733:[[926],256],120734:[[927],256],120735:[[928],256],120736:[[929],256],120737:[[1012],256],120738:[[931],256],120739:[[932],256],120740:[[933],256],120741:[[934],256],120742:[[935],256],120743:[[936],256],120744:[[937],256],120745:[[8711],256],120746:[[945],256],120747:[[946],256],120748:[[947],256],120749:[[948],256],120750:[[949],256],120751:[[950],256],120752:[[951],256],120753:[[952],256],120754:[[953],256],120755:[[954],256],120756:[[955],256],120757:[[956],256],120758:[[957],256],120759:[[958],256],120760:[[959],256],120761:[[960],256],120762:[[961],256],120763:[[962],256],120764:[[963],256],120765:[[964],256],120766:[[965],256],120767:[[966],256],120768:[[967],256],120769:[[968],256],120770:[[969],256],120771:[[8706],256],120772:[[1013],256],120773:[[977],256],120774:[[1008],256],120775:[[981],256],120776:[[1009],256],120777:[[982],256],120778:[[988],256],120779:[[989],256],120782:[[48],256],120783:[[49],256],120784:[[50],256],120785:[[51],256],120786:[[52],256],120787:[[53],256],120788:[[54],256],120789:[[55],256],120790:[[56],256],120791:[[57],256],120792:[[48],256],120793:[[49],256],120794:[[50],256],120795:[[51],256],120796:[[52],256],120797:[[53],256],120798:[[54],256],120799:[[55],256],120800:[[56],256],120801:[[57],256],120802:[[48],256],120803:[[49],256],120804:[[50],256],120805:[[51],256],120806:[[52],256],120807:[[53],256],120808:[[54],256],120809:[[55],256],120810:[[56],256],120811:[[57],256],120812:[[48],256],120813:[[49],256],120814:[[50],256],120815:[[51],256],120816:[[52],256],120817:[[53],256],120818:[[54],256],120819:[[55],256],120820:[[56],256],120821:[[57],256],120822:[[48],256],120823:[[49],256],120824:[[50],256],120825:[[51],256],120826:[[52],256],120827:[[53],256],120828:[[54],256],120829:[[55],256],120830:[[56],256],120831:[[57],256]},\n59392:{125136:[,220],125137:[,220],125138:[,220],125139:[,220],125140:[,220],125141:[,220],125142:[,220]},\n60928:{126464:[[1575],256],126465:[[1576],256],126466:[[1580],256],126467:[[1583],256],126469:[[1608],256],126470:[[1586],256],126471:[[1581],256],126472:[[1591],256],126473:[[1610],256],126474:[[1603],256],126475:[[1604],256],126476:[[1605],256],126477:[[1606],256],126478:[[1587],256],126479:[[1593],256],126480:[[1601],256],126481:[[1589],256],126482:[[1602],256],126483:[[1585],256],126484:[[1588],256],126485:[[1578],256],126486:[[1579],256],126487:[[1582],256],126488:[[1584],256],126489:[[1590],256],126490:[[1592],256],126491:[[1594],256],126492:[[1646],256],126493:[[1722],256],126494:[[1697],256],126495:[[1647],256],126497:[[1576],256],126498:[[1580],256],126500:[[1607],256],126503:[[1581],256],126505:[[1610],256],126506:[[1603],256],126507:[[1604],256],126508:[[1605],256],126509:[[1606],256],126510:[[1587],256],126511:[[1593],256],126512:[[1601],256],126513:[[1589],256],126514:[[1602],256],126516:[[1588],256],126517:[[1578],256],126518:[[1579],256],126519:[[1582],256],126521:[[1590],256],126523:[[1594],256],126530:[[1580],256],126535:[[1581],256],126537:[[1610],256],126539:[[1604],256],126541:[[1606],256],126542:[[1587],256],126543:[[1593],256],126545:[[1589],256],126546:[[1602],256],126548:[[1588],256],126551:[[1582],256],126553:[[1590],256],126555:[[1594],256],126557:[[1722],256],126559:[[1647],256],126561:[[1576],256],126562:[[1580],256],126564:[[1607],256],126567:[[1581],256],126568:[[1591],256],126569:[[1610],256],126570:[[1603],256],126572:[[1605],256],126573:[[1606],256],126574:[[1587],256],126575:[[1593],256],126576:[[1601],256],126577:[[1589],256],126578:[[1602],256],126580:[[1588],256],126581:[[1578],256],126582:[[1579],256],126583:[[1582],256],126585:[[1590],256],126586:[[1592],256],126587:[[1594],256],126588:[[1646],256],126590:[[1697],256],126592:[[1575],256],126593:[[1576],256],126594:[[1580],256],126595:[[1583],256],126596:[[1607],256],126597:[[1608],256],126598:[[1586],256],126599:[[1581],256],126600:[[1591],256],126601:[[1610],256],126603:[[1604],256],126604:[[1605],256],126605:[[1606],256],126606:[[1587],256],126607:[[1593],256],126608:[[1601],256],126609:[[1589],256],126610:[[1602],256],126611:[[1585],256],126612:[[1588],256],126613:[[1578],256],126614:[[1579],256],126615:[[1582],256],126616:[[1584],256],126617:[[1590],256],126618:[[1592],256],126619:[[1594],256],126625:[[1576],256],126626:[[1580],256],126627:[[1583],256],126629:[[1608],256],126630:[[1586],256],126631:[[1581],256],126632:[[1591],256],126633:[[1610],256],126635:[[1604],256],126636:[[1605],256],126637:[[1606],256],126638:[[1587],256],126639:[[1593],256],126640:[[1601],256],126641:[[1589],256],126642:[[1602],256],126643:[[1585],256],126644:[[1588],256],126645:[[1578],256],126646:[[1579],256],126647:[[1582],256],126648:[[1584],256],126649:[[1590],256],126650:[[1592],256],126651:[[1594],256]},\n61696:{127232:[[48,46],256],127233:[[48,44],256],127234:[[49,44],256],127235:[[50,44],256],127236:[[51,44],256],127237:[[52,44],256],127238:[[53,44],256],127239:[[54,44],256],127240:[[55,44],256],127241:[[56,44],256],127242:[[57,44],256],127248:[[40,65,41],256],127249:[[40,66,41],256],127250:[[40,67,41],256],127251:[[40,68,41],256],127252:[[40,69,41],256],127253:[[40,70,41],256],127254:[[40,71,41],256],127255:[[40,72,41],256],127256:[[40,73,41],256],127257:[[40,74,41],256],127258:[[40,75,41],256],127259:[[40,76,41],256],127260:[[40,77,41],256],127261:[[40,78,41],256],127262:[[40,79,41],256],127263:[[40,80,41],256],127264:[[40,81,41],256],127265:[[40,82,41],256],127266:[[40,83,41],256],127267:[[40,84,41],256],127268:[[40,85,41],256],127269:[[40,86,41],256],127270:[[40,87,41],256],127271:[[40,88,41],256],127272:[[40,89,41],256],127273:[[40,90,41],256],127274:[[12308,83,12309],256],127275:[[67],256],127276:[[82],256],127277:[[67,68],256],127278:[[87,90],256],127280:[[65],256],127281:[[66],256],127282:[[67],256],127283:[[68],256],127284:[[69],256],127285:[[70],256],127286:[[71],256],127287:[[72],256],127288:[[73],256],127289:[[74],256],127290:[[75],256],127291:[[76],256],127292:[[77],256],127293:[[78],256],127294:[[79],256],127295:[[80],256],127296:[[81],256],127297:[[82],256],127298:[[83],256],127299:[[84],256],127300:[[85],256],127301:[[86],256],127302:[[87],256],127303:[[88],256],127304:[[89],256],127305:[[90],256],127306:[[72,86],256],127307:[[77,86],256],127308:[[83,68],256],127309:[[83,83],256],127310:[[80,80,86],256],127311:[[87,67],256],127338:[[77,67],256],127339:[[77,68],256],127376:[[68,74],256]},\n61952:{127488:[[12411,12363],256],127489:[[12467,12467],256],127490:[[12469],256],127504:[[25163],256],127505:[[23383],256],127506:[[21452],256],127507:[[12487],256],127508:[[20108],256],127509:[[22810],256],127510:[[35299],256],127511:[[22825],256],127512:[[20132],256],127513:[[26144],256],127514:[[28961],256],127515:[[26009],256],127516:[[21069],256],127517:[[24460],256],127518:[[20877],256],127519:[[26032],256],127520:[[21021],256],127521:[[32066],256],127522:[[29983],256],127523:[[36009],256],127524:[[22768],256],127525:[[21561],256],127526:[[28436],256],127527:[[25237],256],127528:[[25429],256],127529:[[19968],256],127530:[[19977],256],127531:[[36938],256],127532:[[24038],256],127533:[[20013],256],127534:[[21491],256],127535:[[25351],256],127536:[[36208],256],127537:[[25171],256],127538:[[31105],256],127539:[[31354],256],127540:[[21512],256],127541:[[28288],256],127542:[[26377],256],127543:[[26376],256],127544:[[30003],256],127545:[[21106],256],127546:[[21942],256],127552:[[12308,26412,12309],256],127553:[[12308,19977,12309],256],127554:[[12308,20108,12309],256],127555:[[12308,23433,12309],256],127556:[[12308,28857,12309],256],127557:[[12308,25171,12309],256],127558:[[12308,30423,12309],256],127559:[[12308,21213,12309],256],127560:[[12308,25943,12309],256],127568:[[24471],256],127569:[[21487],256]},\n63488:{194560:[[20029]],194561:[[20024]],194562:[[20033]],194563:[[131362]],194564:[[20320]],194565:[[20398]],194566:[[20411]],194567:[[20482]],194568:[[20602]],194569:[[20633]],194570:[[20711]],194571:[[20687]],194572:[[13470]],194573:[[132666]],194574:[[20813]],194575:[[20820]],194576:[[20836]],194577:[[20855]],194578:[[132380]],194579:[[13497]],194580:[[20839]],194581:[[20877]],194582:[[132427]],194583:[[20887]],194584:[[20900]],194585:[[20172]],194586:[[20908]],194587:[[20917]],194588:[[168415]],194589:[[20981]],194590:[[20995]],194591:[[13535]],194592:[[21051]],194593:[[21062]],194594:[[21106]],194595:[[21111]],194596:[[13589]],194597:[[21191]],194598:[[21193]],194599:[[21220]],194600:[[21242]],194601:[[21253]],194602:[[21254]],194603:[[21271]],194604:[[21321]],194605:[[21329]],194606:[[21338]],194607:[[21363]],194608:[[21373]],194609:[[21375]],194610:[[21375]],194611:[[21375]],194612:[[133676]],194613:[[28784]],194614:[[21450]],194615:[[21471]],194616:[[133987]],194617:[[21483]],194618:[[21489]],194619:[[21510]],194620:[[21662]],194621:[[21560]],194622:[[21576]],194623:[[21608]],194624:[[21666]],194625:[[21750]],194626:[[21776]],194627:[[21843]],194628:[[21859]],194629:[[21892]],194630:[[21892]],194631:[[21913]],194632:[[21931]],194633:[[21939]],194634:[[21954]],194635:[[22294]],194636:[[22022]],194637:[[22295]],194638:[[22097]],194639:[[22132]],194640:[[20999]],194641:[[22766]],194642:[[22478]],194643:[[22516]],194644:[[22541]],194645:[[22411]],194646:[[22578]],194647:[[22577]],194648:[[22700]],194649:[[136420]],194650:[[22770]],194651:[[22775]],194652:[[22790]],194653:[[22810]],194654:[[22818]],194655:[[22882]],194656:[[136872]],194657:[[136938]],194658:[[23020]],194659:[[23067]],194660:[[23079]],194661:[[23000]],194662:[[23142]],194663:[[14062]],194664:[[14076]],194665:[[23304]],194666:[[23358]],194667:[[23358]],194668:[[137672]],194669:[[23491]],194670:[[23512]],194671:[[23527]],194672:[[23539]],194673:[[138008]],194674:[[23551]],194675:[[23558]],194676:[[24403]],194677:[[23586]],194678:[[14209]],194679:[[23648]],194680:[[23662]],194681:[[23744]],194682:[[23693]],194683:[[138724]],194684:[[23875]],194685:[[138726]],194686:[[23918]],194687:[[23915]],194688:[[23932]],194689:[[24033]],194690:[[24034]],194691:[[14383]],194692:[[24061]],194693:[[24104]],194694:[[24125]],194695:[[24169]],194696:[[14434]],194697:[[139651]],194698:[[14460]],194699:[[24240]],194700:[[24243]],194701:[[24246]],194702:[[24266]],194703:[[172946]],194704:[[24318]],194705:[[140081]],194706:[[140081]],194707:[[33281]],194708:[[24354]],194709:[[24354]],194710:[[14535]],194711:[[144056]],194712:[[156122]],194713:[[24418]],194714:[[24427]],194715:[[14563]],194716:[[24474]],194717:[[24525]],194718:[[24535]],194719:[[24569]],194720:[[24705]],194721:[[14650]],194722:[[14620]],194723:[[24724]],194724:[[141012]],194725:[[24775]],194726:[[24904]],194727:[[24908]],194728:[[24910]],194729:[[24908]],194730:[[24954]],194731:[[24974]],194732:[[25010]],194733:[[24996]],194734:[[25007]],194735:[[25054]],194736:[[25074]],194737:[[25078]],194738:[[25104]],194739:[[25115]],194740:[[25181]],194741:[[25265]],194742:[[25300]],194743:[[25424]],194744:[[142092]],194745:[[25405]],194746:[[25340]],194747:[[25448]],194748:[[25475]],194749:[[25572]],194750:[[142321]],194751:[[25634]],194752:[[25541]],194753:[[25513]],194754:[[14894]],194755:[[25705]],194756:[[25726]],194757:[[25757]],194758:[[25719]],194759:[[14956]],194760:[[25935]],194761:[[25964]],194762:[[143370]],194763:[[26083]],194764:[[26360]],194765:[[26185]],194766:[[15129]],194767:[[26257]],194768:[[15112]],194769:[[15076]],194770:[[20882]],194771:[[20885]],194772:[[26368]],194773:[[26268]],194774:[[32941]],194775:[[17369]],194776:[[26391]],194777:[[26395]],194778:[[26401]],194779:[[26462]],194780:[[26451]],194781:[[144323]],194782:[[15177]],194783:[[26618]],194784:[[26501]],194785:[[26706]],194786:[[26757]],194787:[[144493]],194788:[[26766]],194789:[[26655]],194790:[[26900]],194791:[[15261]],194792:[[26946]],194793:[[27043]],194794:[[27114]],194795:[[27304]],194796:[[145059]],194797:[[27355]],194798:[[15384]],194799:[[27425]],194800:[[145575]],194801:[[27476]],194802:[[15438]],194803:[[27506]],194804:[[27551]],194805:[[27578]],194806:[[27579]],194807:[[146061]],194808:[[138507]],194809:[[146170]],194810:[[27726]],194811:[[146620]],194812:[[27839]],194813:[[27853]],194814:[[27751]],194815:[[27926]]},\n63744:{63744:[[35912]],63745:[[26356]],63746:[[36554]],63747:[[36040]],63748:[[28369]],63749:[[20018]],63750:[[21477]],63751:[[40860]],63752:[[40860]],63753:[[22865]],63754:[[37329]],63755:[[21895]],63756:[[22856]],63757:[[25078]],63758:[[30313]],63759:[[32645]],63760:[[34367]],63761:[[34746]],63762:[[35064]],63763:[[37007]],63764:[[27138]],63765:[[27931]],63766:[[28889]],63767:[[29662]],63768:[[33853]],63769:[[37226]],63770:[[39409]],63771:[[20098]],63772:[[21365]],63773:[[27396]],63774:[[29211]],63775:[[34349]],63776:[[40478]],63777:[[23888]],63778:[[28651]],63779:[[34253]],63780:[[35172]],63781:[[25289]],63782:[[33240]],63783:[[34847]],63784:[[24266]],63785:[[26391]],63786:[[28010]],63787:[[29436]],63788:[[37070]],63789:[[20358]],63790:[[20919]],63791:[[21214]],63792:[[25796]],63793:[[27347]],63794:[[29200]],63795:[[30439]],63796:[[32769]],63797:[[34310]],63798:[[34396]],63799:[[36335]],63800:[[38706]],63801:[[39791]],63802:[[40442]],63803:[[30860]],63804:[[31103]],63805:[[32160]],63806:[[33737]],63807:[[37636]],63808:[[40575]],63809:[[35542]],63810:[[22751]],63811:[[24324]],63812:[[31840]],63813:[[32894]],63814:[[29282]],63815:[[30922]],63816:[[36034]],63817:[[38647]],63818:[[22744]],63819:[[23650]],63820:[[27155]],63821:[[28122]],63822:[[28431]],63823:[[32047]],63824:[[32311]],63825:[[38475]],63826:[[21202]],63827:[[32907]],63828:[[20956]],63829:[[20940]],63830:[[31260]],63831:[[32190]],63832:[[33777]],63833:[[38517]],63834:[[35712]],63835:[[25295]],63836:[[27138]],63837:[[35582]],63838:[[20025]],63839:[[23527]],63840:[[24594]],63841:[[29575]],63842:[[30064]],63843:[[21271]],63844:[[30971]],63845:[[20415]],63846:[[24489]],63847:[[19981]],63848:[[27852]],63849:[[25976]],63850:[[32034]],63851:[[21443]],63852:[[22622]],63853:[[30465]],63854:[[33865]],63855:[[35498]],63856:[[27578]],63857:[[36784]],63858:[[27784]],63859:[[25342]],63860:[[33509]],63861:[[25504]],63862:[[30053]],63863:[[20142]],63864:[[20841]],63865:[[20937]],63866:[[26753]],63867:[[31975]],63868:[[33391]],63869:[[35538]],63870:[[37327]],63871:[[21237]],63872:[[21570]],63873:[[22899]],63874:[[24300]],63875:[[26053]],63876:[[28670]],63877:[[31018]],63878:[[38317]],63879:[[39530]],63880:[[40599]],63881:[[40654]],63882:[[21147]],63883:[[26310]],63884:[[27511]],63885:[[36706]],63886:[[24180]],63887:[[24976]],63888:[[25088]],63889:[[25754]],63890:[[28451]],63891:[[29001]],63892:[[29833]],63893:[[31178]],63894:[[32244]],63895:[[32879]],63896:[[36646]],63897:[[34030]],63898:[[36899]],63899:[[37706]],63900:[[21015]],63901:[[21155]],63902:[[21693]],63903:[[28872]],63904:[[35010]],63905:[[35498]],63906:[[24265]],63907:[[24565]],63908:[[25467]],63909:[[27566]],63910:[[31806]],63911:[[29557]],63912:[[20196]],63913:[[22265]],63914:[[23527]],63915:[[23994]],63916:[[24604]],63917:[[29618]],63918:[[29801]],63919:[[32666]],63920:[[32838]],63921:[[37428]],63922:[[38646]],63923:[[38728]],63924:[[38936]],63925:[[20363]],63926:[[31150]],63927:[[37300]],63928:[[38584]],63929:[[24801]],63930:[[20102]],63931:[[20698]],63932:[[23534]],63933:[[23615]],63934:[[26009]],63935:[[27138]],63936:[[29134]],63937:[[30274]],63938:[[34044]],63939:[[36988]],63940:[[40845]],63941:[[26248]],63942:[[38446]],63943:[[21129]],63944:[[26491]],63945:[[26611]],63946:[[27969]],63947:[[28316]],63948:[[29705]],63949:[[30041]],63950:[[30827]],63951:[[32016]],63952:[[39006]],63953:[[20845]],63954:[[25134]],63955:[[38520]],63956:[[20523]],63957:[[23833]],63958:[[28138]],63959:[[36650]],63960:[[24459]],63961:[[24900]],63962:[[26647]],63963:[[29575]],63964:[[38534]],63965:[[21033]],63966:[[21519]],63967:[[23653]],63968:[[26131]],63969:[[26446]],63970:[[26792]],63971:[[27877]],63972:[[29702]],63973:[[30178]],63974:[[32633]],63975:[[35023]],63976:[[35041]],63977:[[37324]],63978:[[38626]],63979:[[21311]],63980:[[28346]],63981:[[21533]],63982:[[29136]],63983:[[29848]],63984:[[34298]],63985:[[38563]],63986:[[40023]],63987:[[40607]],63988:[[26519]],63989:[[28107]],63990:[[33256]],63991:[[31435]],63992:[[31520]],63993:[[31890]],63994:[[29376]],63995:[[28825]],63996:[[35672]],63997:[[20160]],63998:[[33590]],63999:[[21050]],194816:[[27966]],194817:[[28023]],194818:[[27969]],194819:[[28009]],194820:[[28024]],194821:[[28037]],194822:[[146718]],194823:[[27956]],194824:[[28207]],194825:[[28270]],194826:[[15667]],194827:[[28363]],194828:[[28359]],194829:[[147153]],194830:[[28153]],194831:[[28526]],194832:[[147294]],194833:[[147342]],194834:[[28614]],194835:[[28729]],194836:[[28702]],194837:[[28699]],194838:[[15766]],194839:[[28746]],194840:[[28797]],194841:[[28791]],194842:[[28845]],194843:[[132389]],194844:[[28997]],194845:[[148067]],194846:[[29084]],194847:[[148395]],194848:[[29224]],194849:[[29237]],194850:[[29264]],194851:[[149000]],194852:[[29312]],194853:[[29333]],194854:[[149301]],194855:[[149524]],194856:[[29562]],194857:[[29579]],194858:[[16044]],194859:[[29605]],194860:[[16056]],194861:[[16056]],194862:[[29767]],194863:[[29788]],194864:[[29809]],194865:[[29829]],194866:[[29898]],194867:[[16155]],194868:[[29988]],194869:[[150582]],194870:[[30014]],194871:[[150674]],194872:[[30064]],194873:[[139679]],194874:[[30224]],194875:[[151457]],194876:[[151480]],194877:[[151620]],194878:[[16380]],194879:[[16392]],194880:[[30452]],194881:[[151795]],194882:[[151794]],194883:[[151833]],194884:[[151859]],194885:[[30494]],194886:[[30495]],194887:[[30495]],194888:[[30538]],194889:[[16441]],194890:[[30603]],194891:[[16454]],194892:[[16534]],194893:[[152605]],194894:[[30798]],194895:[[30860]],194896:[[30924]],194897:[[16611]],194898:[[153126]],194899:[[31062]],194900:[[153242]],194901:[[153285]],194902:[[31119]],194903:[[31211]],194904:[[16687]],194905:[[31296]],194906:[[31306]],194907:[[31311]],194908:[[153980]],194909:[[154279]],194910:[[154279]],194911:[[31470]],194912:[[16898]],194913:[[154539]],194914:[[31686]],194915:[[31689]],194916:[[16935]],194917:[[154752]],194918:[[31954]],194919:[[17056]],194920:[[31976]],194921:[[31971]],194922:[[32000]],194923:[[155526]],194924:[[32099]],194925:[[17153]],194926:[[32199]],194927:[[32258]],194928:[[32325]],194929:[[17204]],194930:[[156200]],194931:[[156231]],194932:[[17241]],194933:[[156377]],194934:[[32634]],194935:[[156478]],194936:[[32661]],194937:[[32762]],194938:[[32773]],194939:[[156890]],194940:[[156963]],194941:[[32864]],194942:[[157096]],194943:[[32880]],194944:[[144223]],194945:[[17365]],194946:[[32946]],194947:[[33027]],194948:[[17419]],194949:[[33086]],194950:[[23221]],194951:[[157607]],194952:[[157621]],194953:[[144275]],194954:[[144284]],194955:[[33281]],194956:[[33284]],194957:[[36766]],194958:[[17515]],194959:[[33425]],194960:[[33419]],194961:[[33437]],194962:[[21171]],194963:[[33457]],194964:[[33459]],194965:[[33469]],194966:[[33510]],194967:[[158524]],194968:[[33509]],194969:[[33565]],194970:[[33635]],194971:[[33709]],194972:[[33571]],194973:[[33725]],194974:[[33767]],194975:[[33879]],194976:[[33619]],194977:[[33738]],194978:[[33740]],194979:[[33756]],194980:[[158774]],194981:[[159083]],194982:[[158933]],194983:[[17707]],194984:[[34033]],194985:[[34035]],194986:[[34070]],194987:[[160714]],194988:[[34148]],194989:[[159532]],194990:[[17757]],194991:[[17761]],194992:[[159665]],194993:[[159954]],194994:[[17771]],194995:[[34384]],194996:[[34396]],194997:[[34407]],194998:[[34409]],194999:[[34473]],195000:[[34440]],195001:[[34574]],195002:[[34530]],195003:[[34681]],195004:[[34600]],195005:[[34667]],195006:[[34694]],195007:[[17879]],195008:[[34785]],195009:[[34817]],195010:[[17913]],195011:[[34912]],195012:[[34915]],195013:[[161383]],195014:[[35031]],195015:[[35038]],195016:[[17973]],195017:[[35066]],195018:[[13499]],195019:[[161966]],195020:[[162150]],195021:[[18110]],195022:[[18119]],195023:[[35488]],195024:[[35565]],195025:[[35722]],195026:[[35925]],195027:[[162984]],195028:[[36011]],195029:[[36033]],195030:[[36123]],195031:[[36215]],195032:[[163631]],195033:[[133124]],195034:[[36299]],195035:[[36284]],195036:[[36336]],195037:[[133342]],195038:[[36564]],195039:[[36664]],195040:[[165330]],195041:[[165357]],195042:[[37012]],195043:[[37105]],195044:[[37137]],195045:[[165678]],195046:[[37147]],195047:[[37432]],195048:[[37591]],195049:[[37592]],195050:[[37500]],195051:[[37881]],195052:[[37909]],195053:[[166906]],195054:[[38283]],195055:[[18837]],195056:[[38327]],195057:[[167287]],195058:[[18918]],195059:[[38595]],195060:[[23986]],195061:[[38691]],195062:[[168261]],195063:[[168474]],195064:[[19054]],195065:[[19062]],195066:[[38880]],195067:[[168970]],195068:[[19122]],195069:[[169110]],195070:[[38923]],195071:[[38923]]},\n64000:{64000:[[20999]],64001:[[24230]],64002:[[25299]],64003:[[31958]],64004:[[23429]],64005:[[27934]],64006:[[26292]],64007:[[36667]],64008:[[34892]],64009:[[38477]],64010:[[35211]],64011:[[24275]],64012:[[20800]],64013:[[21952]],64016:[[22618]],64018:[[26228]],64021:[[20958]],64022:[[29482]],64023:[[30410]],64024:[[31036]],64025:[[31070]],64026:[[31077]],64027:[[31119]],64028:[[38742]],64029:[[31934]],64030:[[32701]],64032:[[34322]],64034:[[35576]],64037:[[36920]],64038:[[37117]],64042:[[39151]],64043:[[39164]],64044:[[39208]],64045:[[40372]],64046:[[37086]],64047:[[38583]],64048:[[20398]],64049:[[20711]],64050:[[20813]],64051:[[21193]],64052:[[21220]],64053:[[21329]],64054:[[21917]],64055:[[22022]],64056:[[22120]],64057:[[22592]],64058:[[22696]],64059:[[23652]],64060:[[23662]],64061:[[24724]],64062:[[24936]],64063:[[24974]],64064:[[25074]],64065:[[25935]],64066:[[26082]],64067:[[26257]],64068:[[26757]],64069:[[28023]],64070:[[28186]],64071:[[28450]],64072:[[29038]],64073:[[29227]],64074:[[29730]],64075:[[30865]],64076:[[31038]],64077:[[31049]],64078:[[31048]],64079:[[31056]],64080:[[31062]],64081:[[31069]],64082:[[31117]],64083:[[31118]],64084:[[31296]],64085:[[31361]],64086:[[31680]],64087:[[32244]],64088:[[32265]],64089:[[32321]],64090:[[32626]],64091:[[32773]],64092:[[33261]],64093:[[33401]],64094:[[33401]],64095:[[33879]],64096:[[35088]],64097:[[35222]],64098:[[35585]],64099:[[35641]],64100:[[36051]],64101:[[36104]],64102:[[36790]],64103:[[36920]],64104:[[38627]],64105:[[38911]],64106:[[38971]],64107:[[24693]],64108:[[148206]],64109:[[33304]],64112:[[20006]],64113:[[20917]],64114:[[20840]],64115:[[20352]],64116:[[20805]],64117:[[20864]],64118:[[21191]],64119:[[21242]],64120:[[21917]],64121:[[21845]],64122:[[21913]],64123:[[21986]],64124:[[22618]],64125:[[22707]],64126:[[22852]],64127:[[22868]],64128:[[23138]],64129:[[23336]],64130:[[24274]],64131:[[24281]],64132:[[24425]],64133:[[24493]],64134:[[24792]],64135:[[24910]],64136:[[24840]],64137:[[24974]],64138:[[24928]],64139:[[25074]],64140:[[25140]],64141:[[25540]],64142:[[25628]],64143:[[25682]],64144:[[25942]],64145:[[26228]],64146:[[26391]],64147:[[26395]],64148:[[26454]],64149:[[27513]],64150:[[27578]],64151:[[27969]],64152:[[28379]],64153:[[28363]],64154:[[28450]],64155:[[28702]],64156:[[29038]],64157:[[30631]],64158:[[29237]],64159:[[29359]],64160:[[29482]],64161:[[29809]],64162:[[29958]],64163:[[30011]],64164:[[30237]],64165:[[30239]],64166:[[30410]],64167:[[30427]],64168:[[30452]],64169:[[30538]],64170:[[30528]],64171:[[30924]],64172:[[31409]],64173:[[31680]],64174:[[31867]],64175:[[32091]],64176:[[32244]],64177:[[32574]],64178:[[32773]],64179:[[33618]],64180:[[33775]],64181:[[34681]],64182:[[35137]],64183:[[35206]],64184:[[35222]],64185:[[35519]],64186:[[35576]],64187:[[35531]],64188:[[35585]],64189:[[35582]],64190:[[35565]],64191:[[35641]],64192:[[35722]],64193:[[36104]],64194:[[36664]],64195:[[36978]],64196:[[37273]],64197:[[37494]],64198:[[38524]],64199:[[38627]],64200:[[38742]],64201:[[38875]],64202:[[38911]],64203:[[38923]],64204:[[38971]],64205:[[39698]],64206:[[40860]],64207:[[141386]],64208:[[141380]],64209:[[144341]],64210:[[15261]],64211:[[16408]],64212:[[16441]],64213:[[152137]],64214:[[154832]],64215:[[163539]],64216:[[40771]],64217:[[40846]],195072:[[38953]],195073:[[169398]],195074:[[39138]],195075:[[19251]],195076:[[39209]],195077:[[39335]],195078:[[39362]],195079:[[39422]],195080:[[19406]],195081:[[170800]],195082:[[39698]],195083:[[40000]],195084:[[40189]],195085:[[19662]],195086:[[19693]],195087:[[40295]],195088:[[172238]],195089:[[19704]],195090:[[172293]],195091:[[172558]],195092:[[172689]],195093:[[40635]],195094:[[19798]],195095:[[40697]],195096:[[40702]],195097:[[40709]],195098:[[40719]],195099:[[40726]],195100:[[40763]],195101:[[173568]]},\n64256:{64256:[[102,102],256],64257:[[102,105],256],64258:[[102,108],256],64259:[[102,102,105],256],64260:[[102,102,108],256],64261:[[383,116],256],64262:[[115,116],256],64275:[[1396,1398],256],64276:[[1396,1381],256],64277:[[1396,1387],256],64278:[[1406,1398],256],64279:[[1396,1389],256],64285:[[1497,1460],512],64286:[,26],64287:[[1522,1463],512],64288:[[1506],256],64289:[[1488],256],64290:[[1491],256],64291:[[1492],256],64292:[[1499],256],64293:[[1500],256],64294:[[1501],256],64295:[[1512],256],64296:[[1514],256],64297:[[43],256],64298:[[1513,1473],512],64299:[[1513,1474],512],64300:[[64329,1473],512],64301:[[64329,1474],512],64302:[[1488,1463],512],64303:[[1488,1464],512],64304:[[1488,1468],512],64305:[[1489,1468],512],64306:[[1490,1468],512],64307:[[1491,1468],512],64308:[[1492,1468],512],64309:[[1493,1468],512],64310:[[1494,1468],512],64312:[[1496,1468],512],64313:[[1497,1468],512],64314:[[1498,1468],512],64315:[[1499,1468],512],64316:[[1500,1468],512],64318:[[1502,1468],512],64320:[[1504,1468],512],64321:[[1505,1468],512],64323:[[1507,1468],512],64324:[[1508,1468],512],64326:[[1510,1468],512],64327:[[1511,1468],512],64328:[[1512,1468],512],64329:[[1513,1468],512],64330:[[1514,1468],512],64331:[[1493,1465],512],64332:[[1489,1471],512],64333:[[1499,1471],512],64334:[[1508,1471],512],64335:[[1488,1500],256],64336:[[1649],256],64337:[[1649],256],64338:[[1659],256],64339:[[1659],256],64340:[[1659],256],64341:[[1659],256],64342:[[1662],256],64343:[[1662],256],64344:[[1662],256],64345:[[1662],256],64346:[[1664],256],64347:[[1664],256],64348:[[1664],256],64349:[[1664],256],64350:[[1658],256],64351:[[1658],256],64352:[[1658],256],64353:[[1658],256],64354:[[1663],256],64355:[[1663],256],64356:[[1663],256],64357:[[1663],256],64358:[[1657],256],64359:[[1657],256],64360:[[1657],256],64361:[[1657],256],64362:[[1700],256],64363:[[1700],256],64364:[[1700],256],64365:[[1700],256],64366:[[1702],256],64367:[[1702],256],64368:[[1702],256],64369:[[1702],256],64370:[[1668],256],64371:[[1668],256],64372:[[1668],256],64373:[[1668],256],64374:[[1667],256],64375:[[1667],256],64376:[[1667],256],64377:[[1667],256],64378:[[1670],256],64379:[[1670],256],64380:[[1670],256],64381:[[1670],256],64382:[[1671],256],64383:[[1671],256],64384:[[1671],256],64385:[[1671],256],64386:[[1677],256],64387:[[1677],256],64388:[[1676],256],64389:[[1676],256],64390:[[1678],256],64391:[[1678],256],64392:[[1672],256],64393:[[1672],256],64394:[[1688],256],64395:[[1688],256],64396:[[1681],256],64397:[[1681],256],64398:[[1705],256],64399:[[1705],256],64400:[[1705],256],64401:[[1705],256],64402:[[1711],256],64403:[[1711],256],64404:[[1711],256],64405:[[1711],256],64406:[[1715],256],64407:[[1715],256],64408:[[1715],256],64409:[[1715],256],64410:[[1713],256],64411:[[1713],256],64412:[[1713],256],64413:[[1713],256],64414:[[1722],256],64415:[[1722],256],64416:[[1723],256],64417:[[1723],256],64418:[[1723],256],64419:[[1723],256],64420:[[1728],256],64421:[[1728],256],64422:[[1729],256],64423:[[1729],256],64424:[[1729],256],64425:[[1729],256],64426:[[1726],256],64427:[[1726],256],64428:[[1726],256],64429:[[1726],256],64430:[[1746],256],64431:[[1746],256],64432:[[1747],256],64433:[[1747],256],64467:[[1709],256],64468:[[1709],256],64469:[[1709],256],64470:[[1709],256],64471:[[1735],256],64472:[[1735],256],64473:[[1734],256],64474:[[1734],256],64475:[[1736],256],64476:[[1736],256],64477:[[1655],256],64478:[[1739],256],64479:[[1739],256],64480:[[1733],256],64481:[[1733],256],64482:[[1737],256],64483:[[1737],256],64484:[[1744],256],64485:[[1744],256],64486:[[1744],256],64487:[[1744],256],64488:[[1609],256],64489:[[1609],256],64490:[[1574,1575],256],64491:[[1574,1575],256],64492:[[1574,1749],256],64493:[[1574,1749],256],64494:[[1574,1608],256],64495:[[1574,1608],256],64496:[[1574,1735],256],64497:[[1574,1735],256],64498:[[1574,1734],256],64499:[[1574,1734],256],64500:[[1574,1736],256],64501:[[1574,1736],256],64502:[[1574,1744],256],64503:[[1574,1744],256],64504:[[1574,1744],256],64505:[[1574,1609],256],64506:[[1574,1609],256],64507:[[1574,1609],256],64508:[[1740],256],64509:[[1740],256],64510:[[1740],256],64511:[[1740],256]},\n64512:{64512:[[1574,1580],256],64513:[[1574,1581],256],64514:[[1574,1605],256],64515:[[1574,1609],256],64516:[[1574,1610],256],64517:[[1576,1580],256],64518:[[1576,1581],256],64519:[[1576,1582],256],64520:[[1576,1605],256],64521:[[1576,1609],256],64522:[[1576,1610],256],64523:[[1578,1580],256],64524:[[1578,1581],256],64525:[[1578,1582],256],64526:[[1578,1605],256],64527:[[1578,1609],256],64528:[[1578,1610],256],64529:[[1579,1580],256],64530:[[1579,1605],256],64531:[[1579,1609],256],64532:[[1579,1610],256],64533:[[1580,1581],256],64534:[[1580,1605],256],64535:[[1581,1580],256],64536:[[1581,1605],256],64537:[[1582,1580],256],64538:[[1582,1581],256],64539:[[1582,1605],256],64540:[[1587,1580],256],64541:[[1587,1581],256],64542:[[1587,1582],256],64543:[[1587,1605],256],64544:[[1589,1581],256],64545:[[1589,1605],256],64546:[[1590,1580],256],64547:[[1590,1581],256],64548:[[1590,1582],256],64549:[[1590,1605],256],64550:[[1591,1581],256],64551:[[1591,1605],256],64552:[[1592,1605],256],64553:[[1593,1580],256],64554:[[1593,1605],256],64555:[[1594,1580],256],64556:[[1594,1605],256],64557:[[1601,1580],256],64558:[[1601,1581],256],64559:[[1601,1582],256],64560:[[1601,1605],256],64561:[[1601,1609],256],64562:[[1601,1610],256],64563:[[1602,1581],256],64564:[[1602,1605],256],64565:[[1602,1609],256],64566:[[1602,1610],256],64567:[[1603,1575],256],64568:[[1603,1580],256],64569:[[1603,1581],256],64570:[[1603,1582],256],64571:[[1603,1604],256],64572:[[1603,1605],256],64573:[[1603,1609],256],64574:[[1603,1610],256],64575:[[1604,1580],256],64576:[[1604,1581],256],64577:[[1604,1582],256],64578:[[1604,1605],256],64579:[[1604,1609],256],64580:[[1604,1610],256],64581:[[1605,1580],256],64582:[[1605,1581],256],64583:[[1605,1582],256],64584:[[1605,1605],256],64585:[[1605,1609],256],64586:[[1605,1610],256],64587:[[1606,1580],256],64588:[[1606,1581],256],64589:[[1606,1582],256],64590:[[1606,1605],256],64591:[[1606,1609],256],64592:[[1606,1610],256],64593:[[1607,1580],256],64594:[[1607,1605],256],64595:[[1607,1609],256],64596:[[1607,1610],256],64597:[[1610,1580],256],64598:[[1610,1581],256],64599:[[1610,1582],256],64600:[[1610,1605],256],64601:[[1610,1609],256],64602:[[1610,1610],256],64603:[[1584,1648],256],64604:[[1585,1648],256],64605:[[1609,1648],256],64606:[[32,1612,1617],256],64607:[[32,1613,1617],256],64608:[[32,1614,1617],256],64609:[[32,1615,1617],256],64610:[[32,1616,1617],256],64611:[[32,1617,1648],256],64612:[[1574,1585],256],64613:[[1574,1586],256],64614:[[1574,1605],256],64615:[[1574,1606],256],64616:[[1574,1609],256],64617:[[1574,1610],256],64618:[[1576,1585],256],64619:[[1576,1586],256],64620:[[1576,1605],256],64621:[[1576,1606],256],64622:[[1576,1609],256],64623:[[1576,1610],256],64624:[[1578,1585],256],64625:[[1578,1586],256],64626:[[1578,1605],256],64627:[[1578,1606],256],64628:[[1578,1609],256],64629:[[1578,1610],256],64630:[[1579,1585],256],64631:[[1579,1586],256],64632:[[1579,1605],256],64633:[[1579,1606],256],64634:[[1579,1609],256],64635:[[1579,1610],256],64636:[[1601,1609],256],64637:[[1601,1610],256],64638:[[1602,1609],256],64639:[[1602,1610],256],64640:[[1603,1575],256],64641:[[1603,1604],256],64642:[[1603,1605],256],64643:[[1603,1609],256],64644:[[1603,1610],256],64645:[[1604,1605],256],64646:[[1604,1609],256],64647:[[1604,1610],256],64648:[[1605,1575],256],64649:[[1605,1605],256],64650:[[1606,1585],256],64651:[[1606,1586],256],64652:[[1606,1605],256],64653:[[1606,1606],256],64654:[[1606,1609],256],64655:[[1606,1610],256],64656:[[1609,1648],256],64657:[[1610,1585],256],64658:[[1610,1586],256],64659:[[1610,1605],256],64660:[[1610,1606],256],64661:[[1610,1609],256],64662:[[1610,1610],256],64663:[[1574,1580],256],64664:[[1574,1581],256],64665:[[1574,1582],256],64666:[[1574,1605],256],64667:[[1574,1607],256],64668:[[1576,1580],256],64669:[[1576,1581],256],64670:[[1576,1582],256],64671:[[1576,1605],256],64672:[[1576,1607],256],64673:[[1578,1580],256],64674:[[1578,1581],256],64675:[[1578,1582],256],64676:[[1578,1605],256],64677:[[1578,1607],256],64678:[[1579,1605],256],64679:[[1580,1581],256],64680:[[1580,1605],256],64681:[[1581,1580],256],64682:[[1581,1605],256],64683:[[1582,1580],256],64684:[[1582,1605],256],64685:[[1587,1580],256],64686:[[1587,1581],256],64687:[[1587,1582],256],64688:[[1587,1605],256],64689:[[1589,1581],256],64690:[[1589,1582],256],64691:[[1589,1605],256],64692:[[1590,1580],256],64693:[[1590,1581],256],64694:[[1590,1582],256],64695:[[1590,1605],256],64696:[[1591,1581],256],64697:[[1592,1605],256],64698:[[1593,1580],256],64699:[[1593,1605],256],64700:[[1594,1580],256],64701:[[1594,1605],256],64702:[[1601,1580],256],64703:[[1601,1581],256],64704:[[1601,1582],256],64705:[[1601,1605],256],64706:[[1602,1581],256],64707:[[1602,1605],256],64708:[[1603,1580],256],64709:[[1603,1581],256],64710:[[1603,1582],256],64711:[[1603,1604],256],64712:[[1603,1605],256],64713:[[1604,1580],256],64714:[[1604,1581],256],64715:[[1604,1582],256],64716:[[1604,1605],256],64717:[[1604,1607],256],64718:[[1605,1580],256],64719:[[1605,1581],256],64720:[[1605,1582],256],64721:[[1605,1605],256],64722:[[1606,1580],256],64723:[[1606,1581],256],64724:[[1606,1582],256],64725:[[1606,1605],256],64726:[[1606,1607],256],64727:[[1607,1580],256],64728:[[1607,1605],256],64729:[[1607,1648],256],64730:[[1610,1580],256],64731:[[1610,1581],256],64732:[[1610,1582],256],64733:[[1610,1605],256],64734:[[1610,1607],256],64735:[[1574,1605],256],64736:[[1574,1607],256],64737:[[1576,1605],256],64738:[[1576,1607],256],64739:[[1578,1605],256],64740:[[1578,1607],256],64741:[[1579,1605],256],64742:[[1579,1607],256],64743:[[1587,1605],256],64744:[[1587,1607],256],64745:[[1588,1605],256],64746:[[1588,1607],256],64747:[[1603,1604],256],64748:[[1603,1605],256],64749:[[1604,1605],256],64750:[[1606,1605],256],64751:[[1606,1607],256],64752:[[1610,1605],256],64753:[[1610,1607],256],64754:[[1600,1614,1617],256],64755:[[1600,1615,1617],256],64756:[[1600,1616,1617],256],64757:[[1591,1609],256],64758:[[1591,1610],256],64759:[[1593,1609],256],64760:[[1593,1610],256],64761:[[1594,1609],256],64762:[[1594,1610],256],64763:[[1587,1609],256],64764:[[1587,1610],256],64765:[[1588,1609],256],64766:[[1588,1610],256],64767:[[1581,1609],256]},\n64768:{64768:[[1581,1610],256],64769:[[1580,1609],256],64770:[[1580,1610],256],64771:[[1582,1609],256],64772:[[1582,1610],256],64773:[[1589,1609],256],64774:[[1589,1610],256],64775:[[1590,1609],256],64776:[[1590,1610],256],64777:[[1588,1580],256],64778:[[1588,1581],256],64779:[[1588,1582],256],64780:[[1588,1605],256],64781:[[1588,1585],256],64782:[[1587,1585],256],64783:[[1589,1585],256],64784:[[1590,1585],256],64785:[[1591,1609],256],64786:[[1591,1610],256],64787:[[1593,1609],256],64788:[[1593,1610],256],64789:[[1594,1609],256],64790:[[1594,1610],256],64791:[[1587,1609],256],64792:[[1587,1610],256],64793:[[1588,1609],256],64794:[[1588,1610],256],64795:[[1581,1609],256],64796:[[1581,1610],256],64797:[[1580,1609],256],64798:[[1580,1610],256],64799:[[1582,1609],256],64800:[[1582,1610],256],64801:[[1589,1609],256],64802:[[1589,1610],256],64803:[[1590,1609],256],64804:[[1590,1610],256],64805:[[1588,1580],256],64806:[[1588,1581],256],64807:[[1588,1582],256],64808:[[1588,1605],256],64809:[[1588,1585],256],64810:[[1587,1585],256],64811:[[1589,1585],256],64812:[[1590,1585],256],64813:[[1588,1580],256],64814:[[1588,1581],256],64815:[[1588,1582],256],64816:[[1588,1605],256],64817:[[1587,1607],256],64818:[[1588,1607],256],64819:[[1591,1605],256],64820:[[1587,1580],256],64821:[[1587,1581],256],64822:[[1587,1582],256],64823:[[1588,1580],256],64824:[[1588,1581],256],64825:[[1588,1582],256],64826:[[1591,1605],256],64827:[[1592,1605],256],64828:[[1575,1611],256],64829:[[1575,1611],256],64848:[[1578,1580,1605],256],64849:[[1578,1581,1580],256],64850:[[1578,1581,1580],256],64851:[[1578,1581,1605],256],64852:[[1578,1582,1605],256],64853:[[1578,1605,1580],256],64854:[[1578,1605,1581],256],64855:[[1578,1605,1582],256],64856:[[1580,1605,1581],256],64857:[[1580,1605,1581],256],64858:[[1581,1605,1610],256],64859:[[1581,1605,1609],256],64860:[[1587,1581,1580],256],64861:[[1587,1580,1581],256],64862:[[1587,1580,1609],256],64863:[[1587,1605,1581],256],64864:[[1587,1605,1581],256],64865:[[1587,1605,1580],256],64866:[[1587,1605,1605],256],64867:[[1587,1605,1605],256],64868:[[1589,1581,1581],256],64869:[[1589,1581,1581],256],64870:[[1589,1605,1605],256],64871:[[1588,1581,1605],256],64872:[[1588,1581,1605],256],64873:[[1588,1580,1610],256],64874:[[1588,1605,1582],256],64875:[[1588,1605,1582],256],64876:[[1588,1605,1605],256],64877:[[1588,1605,1605],256],64878:[[1590,1581,1609],256],64879:[[1590,1582,1605],256],64880:[[1590,1582,1605],256],64881:[[1591,1605,1581],256],64882:[[1591,1605,1581],256],64883:[[1591,1605,1605],256],64884:[[1591,1605,1610],256],64885:[[1593,1580,1605],256],64886:[[1593,1605,1605],256],64887:[[1593,1605,1605],256],64888:[[1593,1605,1609],256],64889:[[1594,1605,1605],256],64890:[[1594,1605,1610],256],64891:[[1594,1605,1609],256],64892:[[1601,1582,1605],256],64893:[[1601,1582,1605],256],64894:[[1602,1605,1581],256],64895:[[1602,1605,1605],256],64896:[[1604,1581,1605],256],64897:[[1604,1581,1610],256],64898:[[1604,1581,1609],256],64899:[[1604,1580,1580],256],64900:[[1604,1580,1580],256],64901:[[1604,1582,1605],256],64902:[[1604,1582,1605],256],64903:[[1604,1605,1581],256],64904:[[1604,1605,1581],256],64905:[[1605,1581,1580],256],64906:[[1605,1581,1605],256],64907:[[1605,1581,1610],256],64908:[[1605,1580,1581],256],64909:[[1605,1580,1605],256],64910:[[1605,1582,1580],256],64911:[[1605,1582,1605],256],64914:[[1605,1580,1582],256],64915:[[1607,1605,1580],256],64916:[[1607,1605,1605],256],64917:[[1606,1581,1605],256],64918:[[1606,1581,1609],256],64919:[[1606,1580,1605],256],64920:[[1606,1580,1605],256],64921:[[1606,1580,1609],256],64922:[[1606,1605,1610],256],64923:[[1606,1605,1609],256],64924:[[1610,1605,1605],256],64925:[[1610,1605,1605],256],64926:[[1576,1582,1610],256],64927:[[1578,1580,1610],256],64928:[[1578,1580,1609],256],64929:[[1578,1582,1610],256],64930:[[1578,1582,1609],256],64931:[[1578,1605,1610],256],64932:[[1578,1605,1609],256],64933:[[1580,1605,1610],256],64934:[[1580,1581,1609],256],64935:[[1580,1605,1609],256],64936:[[1587,1582,1609],256],64937:[[1589,1581,1610],256],64938:[[1588,1581,1610],256],64939:[[1590,1581,1610],256],64940:[[1604,1580,1610],256],64941:[[1604,1605,1610],256],64942:[[1610,1581,1610],256],64943:[[1610,1580,1610],256],64944:[[1610,1605,1610],256],64945:[[1605,1605,1610],256],64946:[[1602,1605,1610],256],64947:[[1606,1581,1610],256],64948:[[1602,1605,1581],256],64949:[[1604,1581,1605],256],64950:[[1593,1605,1610],256],64951:[[1603,1605,1610],256],64952:[[1606,1580,1581],256],64953:[[1605,1582,1610],256],64954:[[1604,1580,1605],256],64955:[[1603,1605,1605],256],64956:[[1604,1580,1605],256],64957:[[1606,1580,1581],256],64958:[[1580,1581,1610],256],64959:[[1581,1580,1610],256],64960:[[1605,1580,1610],256],64961:[[1601,1605,1610],256],64962:[[1576,1581,1610],256],64963:[[1603,1605,1605],256],64964:[[1593,1580,1605],256],64965:[[1589,1605,1605],256],64966:[[1587,1582,1610],256],64967:[[1606,1580,1610],256],65008:[[1589,1604,1746],256],65009:[[1602,1604,1746],256],65010:[[1575,1604,1604,1607],256],65011:[[1575,1603,1576,1585],256],65012:[[1605,1581,1605,1583],256],65013:[[1589,1604,1593,1605],256],65014:[[1585,1587,1608,1604],256],65015:[[1593,1604,1610,1607],256],65016:[[1608,1587,1604,1605],256],65017:[[1589,1604,1609],256],65018:[[1589,1604,1609,32,1575,1604,1604,1607,32,1593,1604,1610,1607,32,1608,1587,1604,1605],256],65019:[[1580,1604,32,1580,1604,1575,1604,1607],256],65020:[[1585,1740,1575,1604],256]},\n65024:{65040:[[44],256],65041:[[12289],256],65042:[[12290],256],65043:[[58],256],65044:[[59],256],65045:[[33],256],65046:[[63],256],65047:[[12310],256],65048:[[12311],256],65049:[[8230],256],65056:[,230],65057:[,230],65058:[,230],65059:[,230],65060:[,230],65061:[,230],65062:[,230],65063:[,220],65064:[,220],65065:[,220],65066:[,220],65067:[,220],65068:[,220],65069:[,220],65072:[[8229],256],65073:[[8212],256],65074:[[8211],256],65075:[[95],256],65076:[[95],256],65077:[[40],256],65078:[[41],256],65079:[[123],256],65080:[[125],256],65081:[[12308],256],65082:[[12309],256],65083:[[12304],256],65084:[[12305],256],65085:[[12298],256],65086:[[12299],256],65087:[[12296],256],65088:[[12297],256],65089:[[12300],256],65090:[[12301],256],65091:[[12302],256],65092:[[12303],256],65095:[[91],256],65096:[[93],256],65097:[[8254],256],65098:[[8254],256],65099:[[8254],256],65100:[[8254],256],65101:[[95],256],65102:[[95],256],65103:[[95],256],65104:[[44],256],65105:[[12289],256],65106:[[46],256],65108:[[59],256],65109:[[58],256],65110:[[63],256],65111:[[33],256],65112:[[8212],256],65113:[[40],256],65114:[[41],256],65115:[[123],256],65116:[[125],256],65117:[[12308],256],65118:[[12309],256],65119:[[35],256],65120:[[38],256],65121:[[42],256],65122:[[43],256],65123:[[45],256],65124:[[60],256],65125:[[62],256],65126:[[61],256],65128:[[92],256],65129:[[36],256],65130:[[37],256],65131:[[64],256],65136:[[32,1611],256],65137:[[1600,1611],256],65138:[[32,1612],256],65140:[[32,1613],256],65142:[[32,1614],256],65143:[[1600,1614],256],65144:[[32,1615],256],65145:[[1600,1615],256],65146:[[32,1616],256],65147:[[1600,1616],256],65148:[[32,1617],256],65149:[[1600,1617],256],65150:[[32,1618],256],65151:[[1600,1618],256],65152:[[1569],256],65153:[[1570],256],65154:[[1570],256],65155:[[1571],256],65156:[[1571],256],65157:[[1572],256],65158:[[1572],256],65159:[[1573],256],65160:[[1573],256],65161:[[1574],256],65162:[[1574],256],65163:[[1574],256],65164:[[1574],256],65165:[[1575],256],65166:[[1575],256],65167:[[1576],256],65168:[[1576],256],65169:[[1576],256],65170:[[1576],256],65171:[[1577],256],65172:[[1577],256],65173:[[1578],256],65174:[[1578],256],65175:[[1578],256],65176:[[1578],256],65177:[[1579],256],65178:[[1579],256],65179:[[1579],256],65180:[[1579],256],65181:[[1580],256],65182:[[1580],256],65183:[[1580],256],65184:[[1580],256],65185:[[1581],256],65186:[[1581],256],65187:[[1581],256],65188:[[1581],256],65189:[[1582],256],65190:[[1582],256],65191:[[1582],256],65192:[[1582],256],65193:[[1583],256],65194:[[1583],256],65195:[[1584],256],65196:[[1584],256],65197:[[1585],256],65198:[[1585],256],65199:[[1586],256],65200:[[1586],256],65201:[[1587],256],65202:[[1587],256],65203:[[1587],256],65204:[[1587],256],65205:[[1588],256],65206:[[1588],256],65207:[[1588],256],65208:[[1588],256],65209:[[1589],256],65210:[[1589],256],65211:[[1589],256],65212:[[1589],256],65213:[[1590],256],65214:[[1590],256],65215:[[1590],256],65216:[[1590],256],65217:[[1591],256],65218:[[1591],256],65219:[[1591],256],65220:[[1591],256],65221:[[1592],256],65222:[[1592],256],65223:[[1592],256],65224:[[1592],256],65225:[[1593],256],65226:[[1593],256],65227:[[1593],256],65228:[[1593],256],65229:[[1594],256],65230:[[1594],256],65231:[[1594],256],65232:[[1594],256],65233:[[1601],256],65234:[[1601],256],65235:[[1601],256],65236:[[1601],256],65237:[[1602],256],65238:[[1602],256],65239:[[1602],256],65240:[[1602],256],65241:[[1603],256],65242:[[1603],256],65243:[[1603],256],65244:[[1603],256],65245:[[1604],256],65246:[[1604],256],65247:[[1604],256],65248:[[1604],256],65249:[[1605],256],65250:[[1605],256],65251:[[1605],256],65252:[[1605],256],65253:[[1606],256],65254:[[1606],256],65255:[[1606],256],65256:[[1606],256],65257:[[1607],256],65258:[[1607],256],65259:[[1607],256],65260:[[1607],256],65261:[[1608],256],65262:[[1608],256],65263:[[1609],256],65264:[[1609],256],65265:[[1610],256],65266:[[1610],256],65267:[[1610],256],65268:[[1610],256],65269:[[1604,1570],256],65270:[[1604,1570],256],65271:[[1604,1571],256],65272:[[1604,1571],256],65273:[[1604,1573],256],65274:[[1604,1573],256],65275:[[1604,1575],256],65276:[[1604,1575],256]},\n65280:{65281:[[33],256],65282:[[34],256],65283:[[35],256],65284:[[36],256],65285:[[37],256],65286:[[38],256],65287:[[39],256],65288:[[40],256],65289:[[41],256],65290:[[42],256],65291:[[43],256],65292:[[44],256],65293:[[45],256],65294:[[46],256],65295:[[47],256],65296:[[48],256],65297:[[49],256],65298:[[50],256],65299:[[51],256],65300:[[52],256],65301:[[53],256],65302:[[54],256],65303:[[55],256],65304:[[56],256],65305:[[57],256],65306:[[58],256],65307:[[59],256],65308:[[60],256],65309:[[61],256],65310:[[62],256],65311:[[63],256],65312:[[64],256],65313:[[65],256],65314:[[66],256],65315:[[67],256],65316:[[68],256],65317:[[69],256],65318:[[70],256],65319:[[71],256],65320:[[72],256],65321:[[73],256],65322:[[74],256],65323:[[75],256],65324:[[76],256],65325:[[77],256],65326:[[78],256],65327:[[79],256],65328:[[80],256],65329:[[81],256],65330:[[82],256],65331:[[83],256],65332:[[84],256],65333:[[85],256],65334:[[86],256],65335:[[87],256],65336:[[88],256],65337:[[89],256],65338:[[90],256],65339:[[91],256],65340:[[92],256],65341:[[93],256],65342:[[94],256],65343:[[95],256],65344:[[96],256],65345:[[97],256],65346:[[98],256],65347:[[99],256],65348:[[100],256],65349:[[101],256],65350:[[102],256],65351:[[103],256],65352:[[104],256],65353:[[105],256],65354:[[106],256],65355:[[107],256],65356:[[108],256],65357:[[109],256],65358:[[110],256],65359:[[111],256],65360:[[112],256],65361:[[113],256],65362:[[114],256],65363:[[115],256],65364:[[116],256],65365:[[117],256],65366:[[118],256],65367:[[119],256],65368:[[120],256],65369:[[121],256],65370:[[122],256],65371:[[123],256],65372:[[124],256],65373:[[125],256],65374:[[126],256],65375:[[10629],256],65376:[[10630],256],65377:[[12290],256],65378:[[12300],256],65379:[[12301],256],65380:[[12289],256],65381:[[12539],256],65382:[[12530],256],65383:[[12449],256],65384:[[12451],256],65385:[[12453],256],65386:[[12455],256],65387:[[12457],256],65388:[[12515],256],65389:[[12517],256],65390:[[12519],256],65391:[[12483],256],65392:[[12540],256],65393:[[12450],256],65394:[[12452],256],65395:[[12454],256],65396:[[12456],256],65397:[[12458],256],65398:[[12459],256],65399:[[12461],256],65400:[[12463],256],65401:[[12465],256],65402:[[12467],256],65403:[[12469],256],65404:[[12471],256],65405:[[12473],256],65406:[[12475],256],65407:[[12477],256],65408:[[12479],256],65409:[[12481],256],65410:[[12484],256],65411:[[12486],256],65412:[[12488],256],65413:[[12490],256],65414:[[12491],256],65415:[[12492],256],65416:[[12493],256],65417:[[12494],256],65418:[[12495],256],65419:[[12498],256],65420:[[12501],256],65421:[[12504],256],65422:[[12507],256],65423:[[12510],256],65424:[[12511],256],65425:[[12512],256],65426:[[12513],256],65427:[[12514],256],65428:[[12516],256],65429:[[12518],256],65430:[[12520],256],65431:[[12521],256],65432:[[12522],256],65433:[[12523],256],65434:[[12524],256],65435:[[12525],256],65436:[[12527],256],65437:[[12531],256],65438:[[12441],256],65439:[[12442],256],65440:[[12644],256],65441:[[12593],256],65442:[[12594],256],65443:[[12595],256],65444:[[12596],256],65445:[[12597],256],65446:[[12598],256],65447:[[12599],256],65448:[[12600],256],65449:[[12601],256],65450:[[12602],256],65451:[[12603],256],65452:[[12604],256],65453:[[12605],256],65454:[[12606],256],65455:[[12607],256],65456:[[12608],256],65457:[[12609],256],65458:[[12610],256],65459:[[12611],256],65460:[[12612],256],65461:[[12613],256],65462:[[12614],256],65463:[[12615],256],65464:[[12616],256],65465:[[12617],256],65466:[[12618],256],65467:[[12619],256],65468:[[12620],256],65469:[[12621],256],65470:[[12622],256],65474:[[12623],256],65475:[[12624],256],65476:[[12625],256],65477:[[12626],256],65478:[[12627],256],65479:[[12628],256],65482:[[12629],256],65483:[[12630],256],65484:[[12631],256],65485:[[12632],256],65486:[[12633],256],65487:[[12634],256],65490:[[12635],256],65491:[[12636],256],65492:[[12637],256],65493:[[12638],256],65494:[[12639],256],65495:[[12640],256],65498:[[12641],256],65499:[[12642],256],65500:[[12643],256],65504:[[162],256],65505:[[163],256],65506:[[172],256],65507:[[175],256],65508:[[166],256],65509:[[165],256],65510:[[8361],256],65512:[[9474],256],65513:[[8592],256],65514:[[8593],256],65515:[[8594],256],65516:[[8595],256],65517:[[9632],256],65518:[[9675],256]}\n\n};\n\n /***** Module to export */\n var unorm = {\n nfc: nfc,\n nfd: nfd,\n nfkc: nfkc,\n nfkd: nfkd\n };\n\n /*globals module:true,define:true*/\n\n // CommonJS\n if (typeof module === \"object\") {\n module.exports = unorm;\n\n // AMD\n } else if (typeof define === \"function\" && define.amd) {\n define(\"unorm\", function () {\n return unorm;\n });\n\n // Global\n } else {\n root.unorm = unorm;\n }\n\n /***** Export as shim for String::normalize method *****/\n /*\n http://wiki.ecmascript.org/doku.php?id=harmony:specification_drafts#november_8_2013_draft_rev_21\n\n 21.1.3.12 String.prototype.normalize(form=\"NFC\")\n When the normalize method is called with one argument form, the following steps are taken:\n\n 1. Let O be CheckObjectCoercible(this value).\n 2. Let S be ToString(O).\n 3. ReturnIfAbrupt(S).\n 4. If form is not provided or undefined let form be \"NFC\".\n 5. Let f be ToString(form).\n 6. ReturnIfAbrupt(f).\n 7. If f is not one of \"NFC\", \"NFD\", \"NFKC\", or \"NFKD\", then throw a RangeError Exception.\n 8. Let ns be the String value is the result of normalizing S into the normalization form named by f as specified in Unicode Standard Annex #15, UnicodeNormalizatoin Forms.\n 9. Return ns.\n\n The length property of the normalize method is 0.\n\n *NOTE* The normalize function is intentionally generic; it does not require that its this value be a String object. Therefore it can be transferred to other kinds of objects for use as a method.\n */\n unorm.shimApplied = false;\n\n if (!String.prototype.normalize) {\n Object.defineProperty(String.prototype, \"normalize\", {\n enumerable: false,\n configurable: true,\n writable: true,\n value: function normalize (/*form*/) {\n \n var str = \"\" + this;\n var form = arguments[0] === undefined ? \"NFC\" : arguments[0];\n\n if (this === null || this === undefined) {\n throw new TypeError(\"Cannot call method on \" + Object.prototype.toString.call(this));\n }\n\n if (form === \"NFC\") {\n return unorm.nfc(str);\n } else if (form === \"NFD\") {\n return unorm.nfd(str);\n } else if (form === \"NFKC\") {\n return unorm.nfkc(str);\n } else if (form === \"NFKD\") {\n return unorm.nfkd(str);\n } else {\n throw new RangeError(\"Invalid normalization form: \" + form);\n }\n }\n });\n\n unorm.shimApplied = true;\n }\n}(this));\n","module.exports = require('./lib/uslug');","/* \n * List of Unicode code that are flagged as letter.\n *\n * Contains Unicode code of:\n * - Lu = Letter, uppercase\n * - Ll = Letter, lowercase\n * - Lt = Letter, titlecase\n * - Lm = Letter, modifier\n * - Lo = Letter, other\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n *\n */\n\nexports.L = [65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 170, 181, 186, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, 515, 516, 517, 518, 519, 520, 521, 522, 523, 524, 525, 526, 527, 528, 529, 530, 531, 532, 533, 534, 535, 536, 537, 538, 539, 540, 541, 542, 543, 544, 545, 546, 547, 548, 549, 550, 551, 552, 553, 554, 555, 556, 557, 558, 559, 560, 561, 562, 563, 564, 565, 566, 567, 568, 569, 570, 571, 572, 573, 574, 575, 576, 577, 578, 579, 580, 581, 582, 583, 584, 585, 586, 587, 588, 589, 590, 591, 592, 593, 594, 595, 596, 597, 598, 599, 600, 601, 602, 603, 604, 605, 606, 607, 608, 609, 610, 611, 612, 613, 614, 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, 625, 626, 627, 628, 629, 630, 631, 632, 633, 634, 635, 636, 637, 638, 639, 640, 641, 642, 643, 644, 645, 646, 647, 648, 649, 650, 651, 652, 653, 654, 655, 656, 657, 658, 659, 660, 661, 662, 663, 664, 665, 666, 667, 668, 669, 670, 671, 672, 673, 674, 675, 676, 677, 678, 679, 680, 681, 682, 683, 684, 685, 686, 687, 688, 689, 690, 691, 692, 693, 694, 695, 696, 697, 698, 699, 700, 701, 702, 703, 704, 705, 710, 711, 712, 713, 714, 715, 716, 717, 718, 719, 720, 721, 736, 737, 738, 739, 740, 748, 750, 880, 881, 882, 883, 884, 886, 887, 890, 891, 892, 893, 895, 902, 904, 905, 906, 908, 910, 911, 912, 913, 914, 915, 916, 917, 918, 919, 920, 921, 922, 923, 924, 925, 926, 927, 928, 929, 931, 932, 933, 934, 935, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, 1013, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, 1365, 1366, 1369, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, 1415, 1488, 1489, 1490, 1491, 1492, 1493, 1494, 1495, 1496, 1497, 1498, 1499, 1500, 1501, 1502, 1503, 1504, 1505, 1506, 1507, 1508, 1509, 1510, 1511, 1512, 1513, 1514, 1520, 1521, 1522, 1568, 1569, 1570, 1571, 1572, 1573, 1574, 1575, 1576, 1577, 1578, 1579, 1580, 1581, 1582, 1583, 1584, 1585, 1586, 1587, 1588, 1589, 1590, 1591, 1592, 1593, 1594, 1595, 1596, 1597, 1598, 1599, 1600, 1601, 1602, 1603, 1604, 1605, 1606, 1607, 1608, 1609, 1610, 1646, 1647, 1649, 1650, 1651, 1652, 1653, 1654, 1655, 1656, 1657, 1658, 1659, 1660, 1661, 1662, 1663, 1664, 1665, 1666, 1667, 1668, 1669, 1670, 1671, 1672, 1673, 1674, 1675, 1676, 1677, 1678, 1679, 1680, 1681, 1682, 1683, 1684, 1685, 1686, 1687, 1688, 1689, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 1702, 1703, 1704, 1705, 1706, 1707, 1708, 1709, 1710, 1711, 1712, 1713, 1714, 1715, 1716, 1717, 1718, 1719, 1720, 1721, 1722, 1723, 1724, 1725, 1726, 1727, 1728, 1729, 1730, 1731, 1732, 1733, 1734, 1735, 1736, 1737, 1738, 1739, 1740, 1741, 1742, 1743, 1744, 1745, 1746, 1747, 1749, 1765, 1766, 1774, 1775, 1786, 1787, 1788, 1791, 1808, 1810, 1811, 1812, 1813, 1814, 1815, 1816, 1817, 1818, 1819, 1820, 1821, 1822, 1823, 1824, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1869, 1870, 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911, 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931, 1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1953, 1954, 1955, 1956, 1957, 1969, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025, 2026, 2036, 2037, 2042, 2048, 2049, 2050, 2051, 2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061, 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2074, 2084, 2088, 2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 2133, 2134, 2135, 2136, 2208, 2209, 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219, 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2308, 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318, 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328, 2329, 2330, 2331, 2332, 2333, 2334, 2335, 2336, 2337, 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347, 2348, 2349, 2350, 2351, 2352, 2353, 2354, 2355, 2356, 2357, 2358, 2359, 2360, 2361, 2365, 2384, 2392, 2393, 2394, 2395, 2396, 2397, 2398, 2399, 2400, 2401, 2417, 2418, 2419, 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429, 2430, 2431, 2432, 2437, 2438, 2439, 2440, 2441, 2442, 2443, 2444, 2447, 2448, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458, 2459, 2460, 2461, 2462, 2463, 2464, 2465, 2466, 2467, 2468, 2469, 2470, 2471, 2472, 2474, 2475, 2476, 2477, 2478, 2479, 2480, 2482, 2486, 2487, 2488, 2489, 2493, 2510, 2524, 2525, 2527, 2528, 2529, 2544, 2545, 2565, 2566, 2567, 2568, 2569, 2570, 2575, 2576, 2579, 2580, 2581, 2582, 2583, 2584, 2585, 2586, 2587, 2588, 2589, 2590, 2591, 2592, 2593, 2594, 2595, 2596, 2597, 2598, 2599, 2600, 2602, 2603, 2604, 2605, 2606, 2607, 2608, 2610, 2611, 2613, 2614, 2616, 2617, 2649, 2650, 2651, 2652, 2654, 2674, 2675, 2676, 2693, 2694, 2695, 2696, 2697, 2698, 2699, 2700, 2701, 2703, 2704, 2705, 2707, 2708, 2709, 2710, 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720, 2721, 2722, 2723, 2724, 2725, 2726, 2727, 2728, 2730, 2731, 2732, 2733, 2734, 2735, 2736, 2738, 2739, 2741, 2742, 2743, 2744, 2745, 2749, 2768, 2784, 2785, 2809, 2821, 2822, 2823, 2824, 2825, 2826, 2827, 2828, 2831, 2832, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843, 2844, 2845, 2846, 2847, 2848, 2849, 2850, 2851, 2852, 2853, 2854, 2855, 2856, 2858, 2859, 2860, 2861, 2862, 2863, 2864, 2866, 2867, 2869, 2870, 2871, 2872, 2873, 2877, 2908, 2909, 2911, 2912, 2913, 2929, 2947, 2949, 2950, 2951, 2952, 2953, 2954, 2958, 2959, 2960, 2962, 2963, 2964, 2965, 2969, 2970, 2972, 2974, 2975, 2979, 2980, 2984, 2985, 2986, 2990, 2991, 2992, 2993, 2994, 2995, 2996, 2997, 2998, 2999, 3000, 3001, 3024, 3077, 3078, 3079, 3080, 3081, 3082, 3083, 3084, 3086, 3087, 3088, 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3129, 3133, 3160, 3161, 3162, 3168, 3169, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212, 3214, 3215, 3216, 3218, 3219, 3220, 3221, 3222, 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232, 3233, 3234, 3235, 3236, 3237, 3238, 3239, 3240, 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251, 3253, 3254, 3255, 3256, 3257, 3261, 3294, 3296, 3297, 3313, 3314, 3333, 3334, 3335, 3336, 3337, 3338, 3339, 3340, 3342, 3343, 3344, 3346, 3347, 3348, 3349, 3350, 3351, 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361, 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381, 3382, 3383, 3384, 3385, 3386, 3389, 3406, 3423, 3424, 3425, 3450, 3451, 3452, 3453, 3454, 3455, 3461, 3462, 3463, 3464, 3465, 3466, 3467, 3468, 3469, 3470, 3471, 3472, 3473, 3474, 3475, 3476, 3477, 3478, 3482, 3483, 3484, 3485, 3486, 3487, 3488, 3489, 3490, 3491, 3492, 3493, 3494, 3495, 3496, 3497, 3498, 3499, 3500, 3501, 3502, 3503, 3504, 3505, 3507, 3508, 3509, 3510, 3511, 3512, 3513, 3514, 3515, 3517, 3520, 3521, 3522, 3523, 3524, 3525, 3526, 3585, 3586, 3587, 3588, 3589, 3590, 3591, 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, 3628, 3629, 3630, 3631, 3632, 3634, 3635, 3648, 3649, 3650, 3651, 3652, 3653, 3654, 3713, 3714, 3716, 3719, 3720, 3722, 3725, 3732, 3733, 3734, 3735, 3737, 3738, 3739, 3740, 3741, 3742, 3743, 3745, 3746, 3747, 3749, 3751, 3754, 3755, 3757, 3758, 3759, 3760, 3762, 3763, 3773, 3776, 3777, 3778, 3779, 3780, 3782, 3804, 3805, 3806, 3807, 3840, 3904, 3905, 3906, 3907, 3908, 3909, 3910, 3911, 3913, 3914, 3915, 3916, 3917, 3918, 3919, 3920, 3921, 3922, 3923, 3924, 3925, 3926, 3927, 3928, 3929, 3930, 3931, 3932, 3933, 3934, 3935, 3936, 3937, 3938, 3939, 3940, 3941, 3942, 3943, 3944, 3945, 3946, 3947, 3948, 3976, 3977, 3978, 3979, 3980, 4096, 4097, 4098, 4099, 4100, 4101, 4102, 4103, 4104, 4105, 4106, 4107, 4108, 4109, 4110, 4111, 4112, 4113, 4114, 4115, 4116, 4117, 4118, 4119, 4120, 4121, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4159, 4176, 4177, 4178, 4179, 4180, 4181, 4186, 4187, 4188, 4189, 4193, 4197, 4198, 4206, 4207, 4208, 4213, 4214, 4215, 4216, 4217, 4218, 4219, 4220, 4221, 4222, 4223, 4224, 4225, 4238, 4256, 4257, 4258, 4259, 4260, 4261, 4262, 4263, 4264, 4265, 4266, 4267, 4268, 4269, 4270, 4271, 4272, 4273, 4274, 4275, 4276, 4277, 4278, 4279, 4280, 4281, 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4293, 4295, 4301, 4304, 4305, 4306, 4307, 4308, 4309, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4317, 4318, 4319, 4320, 4321, 4322, 4323, 4324, 4325, 4326, 4327, 4328, 4329, 4330, 4331, 4332, 4333, 4334, 4335, 4336, 4337, 4338, 4339, 4340, 4341, 4342, 4343, 4344, 4345, 4346, 4348, 4349, 4350, 4351, 4352, 4353, 4354, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4365, 4366, 4367, 4368, 4369, 4370, 4371, 4372, 4373, 4374, 4375, 4376, 4377, 4378, 4379, 4380, 4381, 4382, 4383, 4384, 4385, 4386, 4387, 4388, 4389, 4390, 4391, 4392, 4393, 4394, 4395, 4396, 4397, 4398, 4399, 4400, 4401, 4402, 4403, 4404, 4405, 4406, 4407, 4408, 4409, 4410, 4411, 4412, 4413, 4414, 4415, 4416, 4417, 4418, 4419, 4420, 4421, 4422, 4423, 4424, 4425, 4426, 4427, 4428, 4429, 4430, 4431, 4432, 4433, 4434, 4435, 4436, 4437, 4438, 4439, 4440, 4441, 4442, 4443, 4444, 4445, 4446, 4447, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4455, 4456, 4457, 4458, 4459, 4460, 4461, 4462, 4463, 4464, 4465, 4466, 4467, 4468, 4469, 4470, 4471, 4472, 4473, 4474, 4475, 4476, 4477, 4478, 4479, 4480, 4481, 4482, 4483, 4484, 4485, 4486, 4487, 4488, 4489, 4490, 4491, 4492, 4493, 4494, 4495, 4496, 4497, 4498, 4499, 4500, 4501, 4502, 4503, 4504, 4505, 4506, 4507, 4508, 4509, 4510, 4511, 4512, 4513, 4514, 4515, 4516, 4517, 4518, 4519, 4520, 4521, 4522, 4523, 4524, 4525, 4526, 4527, 4528, 4529, 4530, 4531, 4532, 4533, 4534, 4535, 4536, 4537, 4538, 4539, 4540, 4541, 4542, 4543, 4544, 4545, 4546, 4547, 4548, 4549, 4550, 4551, 4552, 4553, 4554, 4555, 4556, 4557, 4558, 4559, 4560, 4561, 4562, 4563, 4564, 4565, 4566, 4567, 4568, 4569, 4570, 4571, 4572, 4573, 4574, 4575, 4576, 4577, 4578, 4579, 4580, 4581, 4582, 4583, 4584, 4585, 4586, 4587, 4588, 4589, 4590, 4591, 4592, 4593, 4594, 4595, 4596, 4597, 4598, 4599, 4600, 4601, 4602, 4603, 4604, 4605, 4606, 4607, 4608, 4609, 4610, 4611, 4612, 4613, 4614, 4615, 4616, 4617, 4618, 4619, 4620, 4621, 4622, 4623, 4624, 4625, 4626, 4627, 4628, 4629, 4630, 4631, 4632, 4633, 4634, 4635, 4636, 4637, 4638, 4639, 4640, 4641, 4642, 4643, 4644, 4645, 4646, 4647, 4648, 4649, 4650, 4651, 4652, 4653, 4654, 4655, 4656, 4657, 4658, 4659, 4660, 4661, 4662, 4663, 4664, 4665, 4666, 4667, 4668, 4669, 4670, 4671, 4672, 4673, 4674, 4675, 4676, 4677, 4678, 4679, 4680, 4682, 4683, 4684, 4685, 4688, 4689, 4690, 4691, 4692, 4693, 4694, 4696, 4698, 4699, 4700, 4701, 4704, 4705, 4706, 4707, 4708, 4709, 4710, 4711, 4712, 4713, 4714, 4715, 4716, 4717, 4718, 4719, 4720, 4721, 4722, 4723, 4724, 4725, 4726, 4727, 4728, 4729, 4730, 4731, 4732, 4733, 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, 4744, 4746, 4747, 4748, 4749, 4752, 4753, 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, 4784, 4786, 4787, 4788, 4789, 4792, 4793, 4794, 4795, 4796, 4797, 4798, 4800, 4802, 4803, 4804, 4805, 4808, 4809, 4810, 4811, 4812, 4813, 4814, 4815, 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4824, 4825, 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, 4877, 4878, 4879, 4880, 4882, 4883, 4884, 4885, 4888, 4889, 4890, 4891, 4892, 4893, 4894, 4895, 4896, 4897, 4898, 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, 4929, 4930, 4931, 4932, 4933, 4934, 4935, 4936, 4937, 4938, 4939, 4940, 4941, 4942, 4943, 4944, 4945, 4946, 4947, 4948, 4949, 4950, 4951, 4952, 4953, 4954, 4992, 4993, 4994, 4995, 4996, 4997, 4998, 4999, 5000, 5001, 5002, 5003, 5004, 5005, 5006, 5007, 5024, 5025, 5026, 5027, 5028, 5029, 5030, 5031, 5032, 5033, 5034, 5035, 5036, 5037, 5038, 5039, 5040, 5041, 5042, 5043, 5044, 5045, 5046, 5047, 5048, 5049, 5050, 5051, 5052, 5053, 5054, 5055, 5056, 5057, 5058, 5059, 5060, 5061, 5062, 5063, 5064, 5065, 5066, 5067, 5068, 5069, 5070, 5071, 5072, 5073, 5074, 5075, 5076, 5077, 5078, 5079, 5080, 5081, 5082, 5083, 5084, 5085, 5086, 5087, 5088, 5089, 5090, 5091, 5092, 5093, 5094, 5095, 5096, 5097, 5098, 5099, 5100, 5101, 5102, 5103, 5104, 5105, 5106, 5107, 5108, 5109, 5112, 5113, 5114, 5115, 5116, 5117, 5121, 5122, 5123, 5124, 5125, 5126, 5127, 5128, 5129, 5130, 5131, 5132, 5133, 5134, 5135, 5136, 5137, 5138, 5139, 5140, 5141, 5142, 5143, 5144, 5145, 5146, 5147, 5148, 5149, 5150, 5151, 5152, 5153, 5154, 5155, 5156, 5157, 5158, 5159, 5160, 5161, 5162, 5163, 5164, 5165, 5166, 5167, 5168, 5169, 5170, 5171, 5172, 5173, 5174, 5175, 5176, 5177, 5178, 5179, 5180, 5181, 5182, 5183, 5184, 5185, 5186, 5187, 5188, 5189, 5190, 5191, 5192, 5193, 5194, 5195, 5196, 5197, 5198, 5199, 5200, 5201, 5202, 5203, 5204, 5205, 5206, 5207, 5208, 5209, 5210, 5211, 5212, 5213, 5214, 5215, 5216, 5217, 5218, 5219, 5220, 5221, 5222, 5223, 5224, 5225, 5226, 5227, 5228, 5229, 5230, 5231, 5232, 5233, 5234, 5235, 5236, 5237, 5238, 5239, 5240, 5241, 5242, 5243, 5244, 5245, 5246, 5247, 5248, 5249, 5250, 5251, 5252, 5253, 5254, 5255, 5256, 5257, 5258, 5259, 5260, 5261, 5262, 5263, 5264, 5265, 5266, 5267, 5268, 5269, 5270, 5271, 5272, 5273, 5274, 5275, 5276, 5277, 5278, 5279, 5280, 5281, 5282, 5283, 5284, 5285, 5286, 5287, 5288, 5289, 5290, 5291, 5292, 5293, 5294, 5295, 5296, 5297, 5298, 5299, 5300, 5301, 5302, 5303, 5304, 5305, 5306, 5307, 5308, 5309, 5310, 5311, 5312, 5313, 5314, 5315, 5316, 5317, 5318, 5319, 5320, 5321, 5322, 5323, 5324, 5325, 5326, 5327, 5328, 5329, 5330, 5331, 5332, 5333, 5334, 5335, 5336, 5337, 5338, 5339, 5340, 5341, 5342, 5343, 5344, 5345, 5346, 5347, 5348, 5349, 5350, 5351, 5352, 5353, 5354, 5355, 5356, 5357, 5358, 5359, 5360, 5361, 5362, 5363, 5364, 5365, 5366, 5367, 5368, 5369, 5370, 5371, 5372, 5373, 5374, 5375, 5376, 5377, 5378, 5379, 5380, 5381, 5382, 5383, 5384, 5385, 5386, 5387, 5388, 5389, 5390, 5391, 5392, 5393, 5394, 5395, 5396, 5397, 5398, 5399, 5400, 5401, 5402, 5403, 5404, 5405, 5406, 5407, 5408, 5409, 5410, 5411, 5412, 5413, 5414, 5415, 5416, 5417, 5418, 5419, 5420, 5421, 5422, 5423, 5424, 5425, 5426, 5427, 5428, 5429, 5430, 5431, 5432, 5433, 5434, 5435, 5436, 5437, 5438, 5439, 5440, 5441, 5442, 5443, 5444, 5445, 5446, 5447, 5448, 5449, 5450, 5451, 5452, 5453, 5454, 5455, 5456, 5457, 5458, 5459, 5460, 5461, 5462, 5463, 5464, 5465, 5466, 5467, 5468, 5469, 5470, 5471, 5472, 5473, 5474, 5475, 5476, 5477, 5478, 5479, 5480, 5481, 5482, 5483, 5484, 5485, 5486, 5487, 5488, 5489, 5490, 5491, 5492, 5493, 5494, 5495, 5496, 5497, 5498, 5499, 5500, 5501, 5502, 5503, 5504, 5505, 5506, 5507, 5508, 5509, 5510, 5511, 5512, 5513, 5514, 5515, 5516, 5517, 5518, 5519, 5520, 5521, 5522, 5523, 5524, 5525, 5526, 5527, 5528, 5529, 5530, 5531, 5532, 5533, 5534, 5535, 5536, 5537, 5538, 5539, 5540, 5541, 5542, 5543, 5544, 5545, 5546, 5547, 5548, 5549, 5550, 5551, 5552, 5553, 5554, 5555, 5556, 5557, 5558, 5559, 5560, 5561, 5562, 5563, 5564, 5565, 5566, 5567, 5568, 5569, 5570, 5571, 5572, 5573, 5574, 5575, 5576, 5577, 5578, 5579, 5580, 5581, 5582, 5583, 5584, 5585, 5586, 5587, 5588, 5589, 5590, 5591, 5592, 5593, 5594, 5595, 5596, 5597, 5598, 5599, 5600, 5601, 5602, 5603, 5604, 5605, 5606, 5607, 5608, 5609, 5610, 5611, 5612, 5613, 5614, 5615, 5616, 5617, 5618, 5619, 5620, 5621, 5622, 5623, 5624, 5625, 5626, 5627, 5628, 5629, 5630, 5631, 5632, 5633, 5634, 5635, 5636, 5637, 5638, 5639, 5640, 5641, 5642, 5643, 5644, 5645, 5646, 5647, 5648, 5649, 5650, 5651, 5652, 5653, 5654, 5655, 5656, 5657, 5658, 5659, 5660, 5661, 5662, 5663, 5664, 5665, 5666, 5667, 5668, 5669, 5670, 5671, 5672, 5673, 5674, 5675, 5676, 5677, 5678, 5679, 5680, 5681, 5682, 5683, 5684, 5685, 5686, 5687, 5688, 5689, 5690, 5691, 5692, 5693, 5694, 5695, 5696, 5697, 5698, 5699, 5700, 5701, 5702, 5703, 5704, 5705, 5706, 5707, 5708, 5709, 5710, 5711, 5712, 5713, 5714, 5715, 5716, 5717, 5718, 5719, 5720, 5721, 5722, 5723, 5724, 5725, 5726, 5727, 5728, 5729, 5730, 5731, 5732, 5733, 5734, 5735, 5736, 5737, 5738, 5739, 5740, 5743, 5744, 5745, 5746, 5747, 5748, 5749, 5750, 5751, 5752, 5753, 5754, 5755, 5756, 5757, 5758, 5759, 5761, 5762, 5763, 5764, 5765, 5766, 5767, 5768, 5769, 5770, 5771, 5772, 5773, 5774, 5775, 5776, 5777, 5778, 5779, 5780, 5781, 5782, 5783, 5784, 5785, 5786, 5792, 5793, 5794, 5795, 5796, 5797, 5798, 5799, 5800, 5801, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5809, 5810, 5811, 5812, 5813, 5814, 5815, 5816, 5817, 5818, 5819, 5820, 5821, 5822, 5823, 5824, 5825, 5826, 5827, 5828, 5829, 5830, 5831, 5832, 5833, 5834, 5835, 5836, 5837, 5838, 5839, 5840, 5841, 5842, 5843, 5844, 5845, 5846, 5847, 5848, 5849, 5850, 5851, 5852, 5853, 5854, 5855, 5856, 5857, 5858, 5859, 5860, 5861, 5862, 5863, 5864, 5865, 5866, 5873, 5874, 5875, 5876, 5877, 5878, 5879, 5880, 5888, 5889, 5890, 5891, 5892, 5893, 5894, 5895, 5896, 5897, 5898, 5899, 5900, 5902, 5903, 5904, 5905, 5920, 5921, 5922, 5923, 5924, 5925, 5926, 5927, 5928, 5929, 5930, 5931, 5932, 5933, 5934, 5935, 5936, 5937, 5952, 5953, 5954, 5955, 5956, 5957, 5958, 5959, 5960, 5961, 5962, 5963, 5964, 5965, 5966, 5967, 5968, 5969, 5984, 5985, 5986, 5987, 5988, 5989, 5990, 5991, 5992, 5993, 5994, 5995, 5996, 5998, 5999, 6000, 6016, 6017, 6018, 6019, 6020, 6021, 6022, 6023, 6024, 6025, 6026, 6027, 6028, 6029, 6030, 6031, 6032, 6033, 6034, 6035, 6036, 6037, 6038, 6039, 6040, 6041, 6042, 6043, 6044, 6045, 6046, 6047, 6048, 6049, 6050, 6051, 6052, 6053, 6054, 6055, 6056, 6057, 6058, 6059, 6060, 6061, 6062, 6063, 6064, 6065, 6066, 6067, 6103, 6108, 6176, 6177, 6178, 6179, 6180, 6181, 6182, 6183, 6184, 6185, 6186, 6187, 6188, 6189, 6190, 6191, 6192, 6193, 6194, 6195, 6196, 6197, 6198, 6199, 6200, 6201, 6202, 6203, 6204, 6205, 6206, 6207, 6208, 6209, 6210, 6211, 6212, 6213, 6214, 6215, 6216, 6217, 6218, 6219, 6220, 6221, 6222, 6223, 6224, 6225, 6226, 6227, 6228, 6229, 6230, 6231, 6232, 6233, 6234, 6235, 6236, 6237, 6238, 6239, 6240, 6241, 6242, 6243, 6244, 6245, 6246, 6247, 6248, 6249, 6250, 6251, 6252, 6253, 6254, 6255, 6256, 6257, 6258, 6259, 6260, 6261, 6262, 6263, 6272, 6273, 6274, 6275, 6276, 6277, 6278, 6279, 6280, 6281, 6282, 6283, 6284, 6285, 6286, 6287, 6288, 6289, 6290, 6291, 6292, 6293, 6294, 6295, 6296, 6297, 6298, 6299, 6300, 6301, 6302, 6303, 6304, 6305, 6306, 6307, 6308, 6309, 6310, 6311, 6312, 6314, 6320, 6321, 6322, 6323, 6324, 6325, 6326, 6327, 6328, 6329, 6330, 6331, 6332, 6333, 6334, 6335, 6336, 6337, 6338, 6339, 6340, 6341, 6342, 6343, 6344, 6345, 6346, 6347, 6348, 6349, 6350, 6351, 6352, 6353, 6354, 6355, 6356, 6357, 6358, 6359, 6360, 6361, 6362, 6363, 6364, 6365, 6366, 6367, 6368, 6369, 6370, 6371, 6372, 6373, 6374, 6375, 6376, 6377, 6378, 6379, 6380, 6381, 6382, 6383, 6384, 6385, 6386, 6387, 6388, 6389, 6400, 6401, 6402, 6403, 6404, 6405, 6406, 6407, 6408, 6409, 6410, 6411, 6412, 6413, 6414, 6415, 6416, 6417, 6418, 6419, 6420, 6421, 6422, 6423, 6424, 6425, 6426, 6427, 6428, 6429, 6430, 6480, 6481, 6482, 6483, 6484, 6485, 6486, 6487, 6488, 6489, 6490, 6491, 6492, 6493, 6494, 6495, 6496, 6497, 6498, 6499, 6500, 6501, 6502, 6503, 6504, 6505, 6506, 6507, 6508, 6509, 6512, 6513, 6514, 6515, 6516, 6528, 6529, 6530, 6531, 6532, 6533, 6534, 6535, 6536, 6537, 6538, 6539, 6540, 6541, 6542, 6543, 6544, 6545, 6546, 6547, 6548, 6549, 6550, 6551, 6552, 6553, 6554, 6555, 6556, 6557, 6558, 6559, 6560, 6561, 6562, 6563, 6564, 6565, 6566, 6567, 6568, 6569, 6570, 6571, 6576, 6577, 6578, 6579, 6580, 6581, 6582, 6583, 6584, 6585, 6586, 6587, 6588, 6589, 6590, 6591, 6592, 6593, 6594, 6595, 6596, 6597, 6598, 6599, 6600, 6601, 6656, 6657, 6658, 6659, 6660, 6661, 6662, 6663, 6664, 6665, 6666, 6667, 6668, 6669, 6670, 6671, 6672, 6673, 6674, 6675, 6676, 6677, 6678, 6688, 6689, 6690, 6691, 6692, 6693, 6694, 6695, 6696, 6697, 6698, 6699, 6700, 6701, 6702, 6703, 6704, 6705, 6706, 6707, 6708, 6709, 6710, 6711, 6712, 6713, 6714, 6715, 6716, 6717, 6718, 6719, 6720, 6721, 6722, 6723, 6724, 6725, 6726, 6727, 6728, 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736, 6737, 6738, 6739, 6740, 6823, 6917, 6918, 6919, 6920, 6921, 6922, 6923, 6924, 6925, 6926, 6927, 6928, 6929, 6930, 6931, 6932, 6933, 6934, 6935, 6936, 6937, 6938, 6939, 6940, 6941, 6942, 6943, 6944, 6945, 6946, 6947, 6948, 6949, 6950, 6951, 6952, 6953, 6954, 6955, 6956, 6957, 6958, 6959, 6960, 6961, 6962, 6963, 6981, 6982, 6983, 6984, 6985, 6986, 6987, 7043, 7044, 7045, 7046, 7047, 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057, 7058, 7059, 7060, 7061, 7062, 7063, 7064, 7065, 7066, 7067, 7068, 7069, 7070, 7071, 7072, 7086, 7087, 7098, 7099, 7100, 7101, 7102, 7103, 7104, 7105, 7106, 7107, 7108, 7109, 7110, 7111, 7112, 7113, 7114, 7115, 7116, 7117, 7118, 7119, 7120, 7121, 7122, 7123, 7124, 7125, 7126, 7127, 7128, 7129, 7130, 7131, 7132, 7133, 7134, 7135, 7136, 7137, 7138, 7139, 7140, 7141, 7168, 7169, 7170, 7171, 7172, 7173, 7174, 7175, 7176, 7177, 7178, 7179, 7180, 7181, 7182, 7183, 7184, 7185, 7186, 7187, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7199, 7200, 7201, 7202, 7203, 7245, 7246, 7247, 7258, 7259, 7260, 7261, 7262, 7263, 7264, 7265, 7266, 7267, 7268, 7269, 7270, 7271, 7272, 7273, 7274, 7275, 7276, 7277, 7278, 7279, 7280, 7281, 7282, 7283, 7284, 7285, 7286, 7287, 7288, 7289, 7290, 7291, 7292, 7293, 7401, 7402, 7403, 7404, 7406, 7407, 7408, 7409, 7413, 7414, 7424, 7425, 7426, 7427, 7428, 7429, 7430, 7431, 7432, 7433, 7434, 7435, 7436, 7437, 7438, 7439, 7440, 7441, 7442, 7443, 7444, 7445, 7446, 7447, 7448, 7449, 7450, 7451, 7452, 7453, 7454, 7455, 7456, 7457, 7458, 7459, 7460, 7461, 7462, 7463, 7464, 7465, 7466, 7467, 7468, 7469, 7470, 7471, 7472, 7473, 7474, 7475, 7476, 7477, 7478, 7479, 7480, 7481, 7482, 7483, 7484, 7485, 7486, 7487, 7488, 7489, 7490, 7491, 7492, 7493, 7494, 7495, 7496, 7497, 7498, 7499, 7500, 7501, 7502, 7503, 7504, 7505, 7506, 7507, 7508, 7509, 7510, 7511, 7512, 7513, 7514, 7515, 7516, 7517, 7518, 7519, 7520, 7521, 7522, 7523, 7524, 7525, 7526, 7527, 7528, 7529, 7530, 7531, 7532, 7533, 7534, 7535, 7536, 7537, 7538, 7539, 7540, 7541, 7542, 7543, 7544, 7545, 7546, 7547, 7548, 7549, 7550, 7551, 7552, 7553, 7554, 7555, 7556, 7557, 7558, 7559, 7560, 7561, 7562, 7563, 7564, 7565, 7566, 7567, 7568, 7569, 7570, 7571, 7572, 7573, 7574, 7575, 7576, 7577, 7578, 7579, 7580, 7581, 7582, 7583, 7584, 7585, 7586, 7587, 7588, 7589, 7590, 7591, 7592, 7593, 7594, 7595, 7596, 7597, 7598, 7599, 7600, 7601, 7602, 7603, 7604, 7605, 7606, 7607, 7608, 7609, 7610, 7611, 7612, 7613, 7614, 7615, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7693, 7694, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7704, 7705, 7706, 7707, 7708, 7709, 7710, 7711, 7712, 7713, 7714, 7715, 7716, 7717, 7718, 7719, 7720, 7721, 7722, 7723, 7724, 7725, 7726, 7727, 7728, 7729, 7730, 7731, 7732, 7733, 7734, 7735, 7736, 7737, 7738, 7739, 7740, 7741, 7742, 7743, 7744, 7745, 7746, 7747, 7748, 7749, 7750, 7751, 7752, 7753, 7754, 7755, 7756, 7757, 7758, 7759, 7760, 7761, 7762, 7763, 7764, 7765, 7766, 7767, 7768, 7769, 7770, 7771, 7772, 7773, 7774, 7775, 7776, 7777, 7778, 7779, 7780, 7781, 7782, 7783, 7784, 7785, 7786, 7787, 7788, 7789, 7790, 7791, 7792, 7793, 7794, 7795, 7796, 7797, 7798, 7799, 7800, 7801, 7802, 7803, 7804, 7805, 7806, 7807, 7808, 7809, 7810, 7811, 7812, 7813, 7814, 7815, 7816, 7817, 7818, 7819, 7820, 7821, 7822, 7823, 7824, 7825, 7826, 7827, 7828, 7829, 7830, 7831, 7832, 7833, 7834, 7835, 7836, 7837, 7838, 7839, 7840, 7841, 7842, 7843, 7844, 7845, 7846, 7847, 7848, 7849, 7850, 7851, 7852, 7853, 7854, 7855, 7856, 7857, 7858, 7859, 7860, 7861, 7862, 7863, 7864, 7865, 7866, 7867, 7868, 7869, 7870, 7871, 7872, 7873, 7874, 7875, 7876, 7877, 7878, 7879, 7880, 7881, 7882, 7883, 7884, 7885, 7886, 7887, 7888, 7889, 7890, 7891, 7892, 7893, 7894, 7895, 7896, 7897, 7898, 7899, 7900, 7901, 7902, 7903, 7904, 7905, 7906, 7907, 7908, 7909, 7910, 7911, 7912, 7913, 7914, 7915, 7916, 7917, 7918, 7919, 7920, 7921, 7922, 7923, 7924, 7925, 7926, 7927, 7928, 7929, 7930, 7931, 7932, 7933, 7934, 7935, 7936, 7937, 7938, 7939, 7940, 7941, 7942, 7943, 7944, 7945, 7946, 7947, 7948, 7949, 7950, 7951, 7952, 7953, 7954, 7955, 7956, 7957, 7960, 7961, 7962, 7963, 7964, 7965, 7968, 7969, 7970, 7971, 7972, 7973, 7974, 7975, 7976, 7977, 7978, 7979, 7980, 7981, 7982, 7983, 7984, 7985, 7986, 7987, 7988, 7989, 7990, 7991, 7992, 7993, 7994, 7995, 7996, 7997, 7998, 7999, 8000, 8001, 8002, 8003, 8004, 8005, 8008, 8009, 8010, 8011, 8012, 8013, 8016, 8017, 8018, 8019, 8020, 8021, 8022, 8023, 8025, 8027, 8029, 8031, 8032, 8033, 8034, 8035, 8036, 8037, 8038, 8039, 8040, 8041, 8042, 8043, 8044, 8045, 8046, 8047, 8048, 8049, 8050, 8051, 8052, 8053, 8054, 8055, 8056, 8057, 8058, 8059, 8060, 8061, 8064, 8065, 8066, 8067, 8068, 8069, 8070, 8071, 8072, 8073, 8074, 8075, 8076, 8077, 8078, 8079, 8080, 8081, 8082, 8083, 8084, 8085, 8086, 8087, 8088, 8089, 8090, 8091, 8092, 8093, 8094, 8095, 8096, 8097, 8098, 8099, 8100, 8101, 8102, 8103, 8104, 8105, 8106, 8107, 8108, 8109, 8110, 8111, 8112, 8113, 8114, 8115, 8116, 8118, 8119, 8120, 8121, 8122, 8123, 8124, 8126, 8130, 8131, 8132, 8134, 8135, 8136, 8137, 8138, 8139, 8140, 8144, 8145, 8146, 8147, 8150, 8151, 8152, 8153, 8154, 8155, 8160, 8161, 8162, 8163, 8164, 8165, 8166, 8167, 8168, 8169, 8170, 8171, 8172, 8178, 8179, 8180, 8182, 8183, 8184, 8185, 8186, 8187, 8188, 8305, 8319, 8336, 8337, 8338, 8339, 8340, 8341, 8342, 8343, 8344, 8345, 8346, 8347, 8348, 8450, 8455, 8458, 8459, 8460, 8461, 8462, 8463, 8464, 8465, 8466, 8467, 8469, 8473, 8474, 8475, 8476, 8477, 8484, 8486, 8488, 8490, 8491, 8492, 8493, 8495, 8496, 8497, 8498, 8499, 8500, 8501, 8502, 8503, 8504, 8505, 8508, 8509, 8510, 8511, 8517, 8518, 8519, 8520, 8521, 8526, 8579, 8580, 11264, 11265, 11266, 11267, 11268, 11269, 11270, 11271, 11272, 11273, 11274, 11275, 11276, 11277, 11278, 11279, 11280, 11281, 11282, 11283, 11284, 11285, 11286, 11287, 11288, 11289, 11290, 11291, 11292, 11293, 11294, 11295, 11296, 11297, 11298, 11299, 11300, 11301, 11302, 11303, 11304, 11305, 11306, 11307, 11308, 11309, 11310, 11312, 11313, 11314, 11315, 11316, 11317, 11318, 11319, 11320, 11321, 11322, 11323, 11324, 11325, 11326, 11327, 11328, 11329, 11330, 11331, 11332, 11333, 11334, 11335, 11336, 11337, 11338, 11339, 11340, 11341, 11342, 11343, 11344, 11345, 11346, 11347, 11348, 11349, 11350, 11351, 11352, 11353, 11354, 11355, 11356, 11357, 11358, 11360, 11361, 11362, 11363, 11364, 11365, 11366, 11367, 11368, 11369, 11370, 11371, 11372, 11373, 11374, 11375, 11376, 11377, 11378, 11379, 11380, 11381, 11382, 11383, 11384, 11385, 11386, 11387, 11388, 11389, 11390, 11391, 11392, 11393, 11394, 11395, 11396, 11397, 11398, 11399, 11400, 11401, 11402, 11403, 11404, 11405, 11406, 11407, 11408, 11409, 11410, 11411, 11412, 11413, 11414, 11415, 11416, 11417, 11418, 11419, 11420, 11421, 11422, 11423, 11424, 11425, 11426, 11427, 11428, 11429, 11430, 11431, 11432, 11433, 11434, 11435, 11436, 11437, 11438, 11439, 11440, 11441, 11442, 11443, 11444, 11445, 11446, 11447, 11448, 11449, 11450, 11451, 11452, 11453, 11454, 11455, 11456, 11457, 11458, 11459, 11460, 11461, 11462, 11463, 11464, 11465, 11466, 11467, 11468, 11469, 11470, 11471, 11472, 11473, 11474, 11475, 11476, 11477, 11478, 11479, 11480, 11481, 11482, 11483, 11484, 11485, 11486, 11487, 11488, 11489, 11490, 11491, 11492, 11499, 11500, 11501, 11502, 11506, 11507, 11520, 11521, 11522, 11523, 11524, 11525, 11526, 11527, 11528, 11529, 11530, 11531, 11532, 11533, 11534, 11535, 11536, 11537, 11538, 11539, 11540, 11541, 11542, 11543, 11544, 11545, 11546, 11547, 11548, 11549, 11550, 11551, 11552, 11553, 11554, 11555, 11556, 11557, 11559, 11565, 11568, 11569, 11570, 11571, 11572, 11573, 11574, 11575, 11576, 11577, 11578, 11579, 11580, 11581, 11582, 11583, 11584, 11585, 11586, 11587, 11588, 11589, 11590, 11591, 11592, 11593, 11594, 11595, 11596, 11597, 11598, 11599, 11600, 11601, 11602, 11603, 11604, 11605, 11606, 11607, 11608, 11609, 11610, 11611, 11612, 11613, 11614, 11615, 11616, 11617, 11618, 11619, 11620, 11621, 11622, 11623, 11631, 11648, 11649, 11650, 11651, 11652, 11653, 11654, 11655, 11656, 11657, 11658, 11659, 11660, 11661, 11662, 11663, 11664, 11665, 11666, 11667, 11668, 11669, 11670, 11680, 11681, 11682, 11683, 11684, 11685, 11686, 11688, 11689, 11690, 11691, 11692, 11693, 11694, 11696, 11697, 11698, 11699, 11700, 11701, 11702, 11704, 11705, 11706, 11707, 11708, 11709, 11710, 11712, 11713, 11714, 11715, 11716, 11717, 11718, 11720, 11721, 11722, 11723, 11724, 11725, 11726, 11728, 11729, 11730, 11731, 11732, 11733, 11734, 11736, 11737, 11738, 11739, 11740, 11741, 11742, 11823, 12293, 12294, 12337, 12338, 12339, 12340, 12341, 12347, 12348, 12353, 12354, 12355, 12356, 12357, 12358, 12359, 12360, 12361, 12362, 12363, 12364, 12365, 12366, 12367, 12368, 12369, 12370, 12371, 12372, 12373, 12374, 12375, 12376, 12377, 12378, 12379, 12380, 12381, 12382, 12383, 12384, 12385, 12386, 12387, 12388, 12389, 12390, 12391, 12392, 12393, 12394, 12395, 12396, 12397, 12398, 12399, 12400, 12401, 12402, 12403, 12404, 12405, 12406, 12407, 12408, 12409, 12410, 12411, 12412, 12413, 12414, 12415, 12416, 12417, 12418, 12419, 12420, 12421, 12422, 12423, 12424, 12425, 12426, 12427, 12428, 12429, 12430, 12431, 12432, 12433, 12434, 12435, 12436, 12437, 12438, 12445, 12446, 12447, 12449, 12450, 12451, 12452, 12453, 12454, 12455, 12456, 12457, 12458, 12459, 12460, 12461, 12462, 12463, 12464, 12465, 12466, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12475, 12476, 12477, 12478, 12479, 12480, 12481, 12482, 12483, 12484, 12485, 12486, 12487, 12488, 12489, 12490, 12491, 12492, 12493, 12494, 12495, 12496, 12497, 12498, 12499, 12500, 12501, 12502, 12503, 12504, 12505, 12506, 12507, 12508, 12509, 12510, 12511, 12512, 12513, 12514, 12515, 12516, 12517, 12518, 12519, 12520, 12521, 12522, 12523, 12524, 12525, 12526, 12527, 12528, 12529, 12530, 12531, 12532, 12533, 12534, 12535, 12536, 12537, 12538, 12540, 12541, 12542, 12543, 12549, 12550, 12551, 12552, 12553, 12554, 12555, 12556, 12557, 12558, 12559, 12560, 12561, 12562, 12563, 12564, 12565, 12566, 12567, 12568, 12569, 12570, 12571, 12572, 12573, 12574, 12575, 12576, 12577, 12578, 12579, 12580, 12581, 12582, 12583, 12584, 12585, 12586, 12587, 12588, 12589, 12593, 12594, 12595, 12596, 12597, 12598, 12599, 12600, 12601, 12602, 12603, 12604, 12605, 12606, 12607, 12608, 12609, 12610, 12611, 12612, 12613, 12614, 12615, 12616, 12617, 12618, 12619, 12620, 12621, 12622, 12623, 12624, 12625, 12626, 12627, 12628, 12629, 12630, 12631, 12632, 12633, 12634, 12635, 12636, 12637, 12638, 12639, 12640, 12641, 12642, 12643, 12644, 12645, 12646, 12647, 12648, 12649, 12650, 12651, 12652, 12653, 12654, 12655, 12656, 12657, 12658, 12659, 12660, 12661, 12662, 12663, 12664, 12665, 12666, 12667, 12668, 12669, 12670, 12671, 12672, 12673, 12674, 12675, 12676, 12677, 12678, 12679, 12680, 12681, 12682, 12683, 12684, 12685, 12686, 12704, 12705, 12706, 12707, 12708, 12709, 12710, 12711, 12712, 12713, 12714, 12715, 12716, 12717, 12718, 12719, 12720, 12721, 12722, 12723, 12724, 12725, 12726, 12727, 12728, 12729, 12730, 12784, 12785, 12786, 12787, 12788, 12789, 12790, 12791, 12792, 12793, 12794, 12795, 12796, 12797, 12798, 12799, 13312, 19893, 19968, 40917, 40960, 40961, 40962, 40963, 40964, 40965, 40966, 40967, 40968, 40969, 40970, 40971, 40972, 40973, 40974, 40975, 40976, 40977, 40978, 40979, 40980, 40981, 40982, 40983, 40984, 40985, 40986, 40987, 40988, 40989, 40990, 40991, 40992, 40993, 40994, 40995, 40996, 40997, 40998, 40999, 41000, 41001, 41002, 41003, 41004, 41005, 41006, 41007, 41008, 41009, 41010, 41011, 41012, 41013, 41014, 41015, 41016, 41017, 41018, 41019, 41020, 41021, 41022, 41023, 41024, 41025, 41026, 41027, 41028, 41029, 41030, 41031, 41032, 41033, 41034, 41035, 41036, 41037, 41038, 41039, 41040, 41041, 41042, 41043, 41044, 41045, 41046, 41047, 41048, 41049, 41050, 41051, 41052, 41053, 41054, 41055, 41056, 41057, 41058, 41059, 41060, 41061, 41062, 41063, 41064, 41065, 41066, 41067, 41068, 41069, 41070, 41071, 41072, 41073, 41074, 41075, 41076, 41077, 41078, 41079, 41080, 41081, 41082, 41083, 41084, 41085, 41086, 41087, 41088, 41089, 41090, 41091, 41092, 41093, 41094, 41095, 41096, 41097, 41098, 41099, 41100, 41101, 41102, 41103, 41104, 41105, 41106, 41107, 41108, 41109, 41110, 41111, 41112, 41113, 41114, 41115, 41116, 41117, 41118, 41119, 41120, 41121, 41122, 41123, 41124, 41125, 41126, 41127, 41128, 41129, 41130, 41131, 41132, 41133, 41134, 41135, 41136, 41137, 41138, 41139, 41140, 41141, 41142, 41143, 41144, 41145, 41146, 41147, 41148, 41149, 41150, 41151, 41152, 41153, 41154, 41155, 41156, 41157, 41158, 41159, 41160, 41161, 41162, 41163, 41164, 41165, 41166, 41167, 41168, 41169, 41170, 41171, 41172, 41173, 41174, 41175, 41176, 41177, 41178, 41179, 41180, 41181, 41182, 41183, 41184, 41185, 41186, 41187, 41188, 41189, 41190, 41191, 41192, 41193, 41194, 41195, 41196, 41197, 41198, 41199, 41200, 41201, 41202, 41203, 41204, 41205, 41206, 41207, 41208, 41209, 41210, 41211, 41212, 41213, 41214, 41215, 41216, 41217, 41218, 41219, 41220, 41221, 41222, 41223, 41224, 41225, 41226, 41227, 41228, 41229, 41230, 41231, 41232, 41233, 41234, 41235, 41236, 41237, 41238, 41239, 41240, 41241, 41242, 41243, 41244, 41245, 41246, 41247, 41248, 41249, 41250, 41251, 41252, 41253, 41254, 41255, 41256, 41257, 41258, 41259, 41260, 41261, 41262, 41263, 41264, 41265, 41266, 41267, 41268, 41269, 41270, 41271, 41272, 41273, 41274, 41275, 41276, 41277, 41278, 41279, 41280, 41281, 41282, 41283, 41284, 41285, 41286, 41287, 41288, 41289, 41290, 41291, 41292, 41293, 41294, 41295, 41296, 41297, 41298, 41299, 41300, 41301, 41302, 41303, 41304, 41305, 41306, 41307, 41308, 41309, 41310, 41311, 41312, 41313, 41314, 41315, 41316, 41317, 41318, 41319, 41320, 41321, 41322, 41323, 41324, 41325, 41326, 41327, 41328, 41329, 41330, 41331, 41332, 41333, 41334, 41335, 41336, 41337, 41338, 41339, 41340, 41341, 41342, 41343, 41344, 41345, 41346, 41347, 41348, 41349, 41350, 41351, 41352, 41353, 41354, 41355, 41356, 41357, 41358, 41359, 41360, 41361, 41362, 41363, 41364, 41365, 41366, 41367, 41368, 41369, 41370, 41371, 41372, 41373, 41374, 41375, 41376, 41377, 41378, 41379, 41380, 41381, 41382, 41383, 41384, 41385, 41386, 41387, 41388, 41389, 41390, 41391, 41392, 41393, 41394, 41395, 41396, 41397, 41398, 41399, 41400, 41401, 41402, 41403, 41404, 41405, 41406, 41407, 41408, 41409, 41410, 41411, 41412, 41413, 41414, 41415, 41416, 41417, 41418, 41419, 41420, 41421, 41422, 41423, 41424, 41425, 41426, 41427, 41428, 41429, 41430, 41431, 41432, 41433, 41434, 41435, 41436, 41437, 41438, 41439, 41440, 41441, 41442, 41443, 41444, 41445, 41446, 41447, 41448, 41449, 41450, 41451, 41452, 41453, 41454, 41455, 41456, 41457, 41458, 41459, 41460, 41461, 41462, 41463, 41464, 41465, 41466, 41467, 41468, 41469, 41470, 41471, 41472, 41473, 41474, 41475, 41476, 41477, 41478, 41479, 41480, 41481, 41482, 41483, 41484, 41485, 41486, 41487, 41488, 41489, 41490, 41491, 41492, 41493, 41494, 41495, 41496, 41497, 41498, 41499, 41500, 41501, 41502, 41503, 41504, 41505, 41506, 41507, 41508, 41509, 41510, 41511, 41512, 41513, 41514, 41515, 41516, 41517, 41518, 41519, 41520, 41521, 41522, 41523, 41524, 41525, 41526, 41527, 41528, 41529, 41530, 41531, 41532, 41533, 41534, 41535, 41536, 41537, 41538, 41539, 41540, 41541, 41542, 41543, 41544, 41545, 41546, 41547, 41548, 41549, 41550, 41551, 41552, 41553, 41554, 41555, 41556, 41557, 41558, 41559, 41560, 41561, 41562, 41563, 41564, 41565, 41566, 41567, 41568, 41569, 41570, 41571, 41572, 41573, 41574, 41575, 41576, 41577, 41578, 41579, 41580, 41581, 41582, 41583, 41584, 41585, 41586, 41587, 41588, 41589, 41590, 41591, 41592, 41593, 41594, 41595, 41596, 41597, 41598, 41599, 41600, 41601, 41602, 41603, 41604, 41605, 41606, 41607, 41608, 41609, 41610, 41611, 41612, 41613, 41614, 41615, 41616, 41617, 41618, 41619, 41620, 41621, 41622, 41623, 41624, 41625, 41626, 41627, 41628, 41629, 41630, 41631, 41632, 41633, 41634, 41635, 41636, 41637, 41638, 41639, 41640, 41641, 41642, 41643, 41644, 41645, 41646, 41647, 41648, 41649, 41650, 41651, 41652, 41653, 41654, 41655, 41656, 41657, 41658, 41659, 41660, 41661, 41662, 41663, 41664, 41665, 41666, 41667, 41668, 41669, 41670, 41671, 41672, 41673, 41674, 41675, 41676, 41677, 41678, 41679, 41680, 41681, 41682, 41683, 41684, 41685, 41686, 41687, 41688, 41689, 41690, 41691, 41692, 41693, 41694, 41695, 41696, 41697, 41698, 41699, 41700, 41701, 41702, 41703, 41704, 41705, 41706, 41707, 41708, 41709, 41710, 41711, 41712, 41713, 41714, 41715, 41716, 41717, 41718, 41719, 41720, 41721, 41722, 41723, 41724, 41725, 41726, 41727, 41728, 41729, 41730, 41731, 41732, 41733, 41734, 41735, 41736, 41737, 41738, 41739, 41740, 41741, 41742, 41743, 41744, 41745, 41746, 41747, 41748, 41749, 41750, 41751, 41752, 41753, 41754, 41755, 41756, 41757, 41758, 41759, 41760, 41761, 41762, 41763, 41764, 41765, 41766, 41767, 41768, 41769, 41770, 41771, 41772, 41773, 41774, 41775, 41776, 41777, 41778, 41779, 41780, 41781, 41782, 41783, 41784, 41785, 41786, 41787, 41788, 41789, 41790, 41791, 41792, 41793, 41794, 41795, 41796, 41797, 41798, 41799, 41800, 41801, 41802, 41803, 41804, 41805, 41806, 41807, 41808, 41809, 41810, 41811, 41812, 41813, 41814, 41815, 41816, 41817, 41818, 41819, 41820, 41821, 41822, 41823, 41824, 41825, 41826, 41827, 41828, 41829, 41830, 41831, 41832, 41833, 41834, 41835, 41836, 41837, 41838, 41839, 41840, 41841, 41842, 41843, 41844, 41845, 41846, 41847, 41848, 41849, 41850, 41851, 41852, 41853, 41854, 41855, 41856, 41857, 41858, 41859, 41860, 41861, 41862, 41863, 41864, 41865, 41866, 41867, 41868, 41869, 41870, 41871, 41872, 41873, 41874, 41875, 41876, 41877, 41878, 41879, 41880, 41881, 41882, 41883, 41884, 41885, 41886, 41887, 41888, 41889, 41890, 41891, 41892, 41893, 41894, 41895, 41896, 41897, 41898, 41899, 41900, 41901, 41902, 41903, 41904, 41905, 41906, 41907, 41908, 41909, 41910, 41911, 41912, 41913, 41914, 41915, 41916, 41917, 41918, 41919, 41920, 41921, 41922, 41923, 41924, 41925, 41926, 41927, 41928, 41929, 41930, 41931, 41932, 41933, 41934, 41935, 41936, 41937, 41938, 41939, 41940, 41941, 41942, 41943, 41944, 41945, 41946, 41947, 41948, 41949, 41950, 41951, 41952, 41953, 41954, 41955, 41956, 41957, 41958, 41959, 41960, 41961, 41962, 41963, 41964, 41965, 41966, 41967, 41968, 41969, 41970, 41971, 41972, 41973, 41974, 41975, 41976, 41977, 41978, 41979, 41980, 41981, 41982, 41983, 41984, 41985, 41986, 41987, 41988, 41989, 41990, 41991, 41992, 41993, 41994, 41995, 41996, 41997, 41998, 41999, 42000, 42001, 42002, 42003, 42004, 42005, 42006, 42007, 42008, 42009, 42010, 42011, 42012, 42013, 42014, 42015, 42016, 42017, 42018, 42019, 42020, 42021, 42022, 42023, 42024, 42025, 42026, 42027, 42028, 42029, 42030, 42031, 42032, 42033, 42034, 42035, 42036, 42037, 42038, 42039, 42040, 42041, 42042, 42043, 42044, 42045, 42046, 42047, 42048, 42049, 42050, 42051, 42052, 42053, 42054, 42055, 42056, 42057, 42058, 42059, 42060, 42061, 42062, 42063, 42064, 42065, 42066, 42067, 42068, 42069, 42070, 42071, 42072, 42073, 42074, 42075, 42076, 42077, 42078, 42079, 42080, 42081, 42082, 42083, 42084, 42085, 42086, 42087, 42088, 42089, 42090, 42091, 42092, 42093, 42094, 42095, 42096, 42097, 42098, 42099, 42100, 42101, 42102, 42103, 42104, 42105, 42106, 42107, 42108, 42109, 42110, 42111, 42112, 42113, 42114, 42115, 42116, 42117, 42118, 42119, 42120, 42121, 42122, 42123, 42124, 42192, 42193, 42194, 42195, 42196, 42197, 42198, 42199, 42200, 42201, 42202, 42203, 42204, 42205, 42206, 42207, 42208, 42209, 42210, 42211, 42212, 42213, 42214, 42215, 42216, 42217, 42218, 42219, 42220, 42221, 42222, 42223, 42224, 42225, 42226, 42227, 42228, 42229, 42230, 42231, 42232, 42233, 42234, 42235, 42236, 42237, 42240, 42241, 42242, 42243, 42244, 42245, 42246, 42247, 42248, 42249, 42250, 42251, 42252, 42253, 42254, 42255, 42256, 42257, 42258, 42259, 42260, 42261, 42262, 42263, 42264, 42265, 42266, 42267, 42268, 42269, 42270, 42271, 42272, 42273, 42274, 42275, 42276, 42277, 42278, 42279, 42280, 42281, 42282, 42283, 42284, 42285, 42286, 42287, 42288, 42289, 42290, 42291, 42292, 42293, 42294, 42295, 42296, 42297, 42298, 42299, 42300, 42301, 42302, 42303, 42304, 42305, 42306, 42307, 42308, 42309, 42310, 42311, 42312, 42313, 42314, 42315, 42316, 42317, 42318, 42319, 42320, 42321, 42322, 42323, 42324, 42325, 42326, 42327, 42328, 42329, 42330, 42331, 42332, 42333, 42334, 42335, 42336, 42337, 42338, 42339, 42340, 42341, 42342, 42343, 42344, 42345, 42346, 42347, 42348, 42349, 42350, 42351, 42352, 42353, 42354, 42355, 42356, 42357, 42358, 42359, 42360, 42361, 42362, 42363, 42364, 42365, 42366, 42367, 42368, 42369, 42370, 42371, 42372, 42373, 42374, 42375, 42376, 42377, 42378, 42379, 42380, 42381, 42382, 42383, 42384, 42385, 42386, 42387, 42388, 42389, 42390, 42391, 42392, 42393, 42394, 42395, 42396, 42397, 42398, 42399, 42400, 42401, 42402, 42403, 42404, 42405, 42406, 42407, 42408, 42409, 42410, 42411, 42412, 42413, 42414, 42415, 42416, 42417, 42418, 42419, 42420, 42421, 42422, 42423, 42424, 42425, 42426, 42427, 42428, 42429, 42430, 42431, 42432, 42433, 42434, 42435, 42436, 42437, 42438, 42439, 42440, 42441, 42442, 42443, 42444, 42445, 42446, 42447, 42448, 42449, 42450, 42451, 42452, 42453, 42454, 42455, 42456, 42457, 42458, 42459, 42460, 42461, 42462, 42463, 42464, 42465, 42466, 42467, 42468, 42469, 42470, 42471, 42472, 42473, 42474, 42475, 42476, 42477, 42478, 42479, 42480, 42481, 42482, 42483, 42484, 42485, 42486, 42487, 42488, 42489, 42490, 42491, 42492, 42493, 42494, 42495, 42496, 42497, 42498, 42499, 42500, 42501, 42502, 42503, 42504, 42505, 42506, 42507, 42508, 42512, 42513, 42514, 42515, 42516, 42517, 42518, 42519, 42520, 42521, 42522, 42523, 42524, 42525, 42526, 42527, 42538, 42539, 42560, 42561, 42562, 42563, 42564, 42565, 42566, 42567, 42568, 42569, 42570, 42571, 42572, 42573, 42574, 42575, 42576, 42577, 42578, 42579, 42580, 42581, 42582, 42583, 42584, 42585, 42586, 42587, 42588, 42589, 42590, 42591, 42592, 42593, 42594, 42595, 42596, 42597, 42598, 42599, 42600, 42601, 42602, 42603, 42604, 42605, 42606, 42623, 42624, 42625, 42626, 42627, 42628, 42629, 42630, 42631, 42632, 42633, 42634, 42635, 42636, 42637, 42638, 42639, 42640, 42641, 42642, 42643, 42644, 42645, 42646, 42647, 42648, 42649, 42650, 42651, 42652, 42653, 42656, 42657, 42658, 42659, 42660, 42661, 42662, 42663, 42664, 42665, 42666, 42667, 42668, 42669, 42670, 42671, 42672, 42673, 42674, 42675, 42676, 42677, 42678, 42679, 42680, 42681, 42682, 42683, 42684, 42685, 42686, 42687, 42688, 42689, 42690, 42691, 42692, 42693, 42694, 42695, 42696, 42697, 42698, 42699, 42700, 42701, 42702, 42703, 42704, 42705, 42706, 42707, 42708, 42709, 42710, 42711, 42712, 42713, 42714, 42715, 42716, 42717, 42718, 42719, 42720, 42721, 42722, 42723, 42724, 42725, 42775, 42776, 42777, 42778, 42779, 42780, 42781, 42782, 42783, 42786, 42787, 42788, 42789, 42790, 42791, 42792, 42793, 42794, 42795, 42796, 42797, 42798, 42799, 42800, 42801, 42802, 42803, 42804, 42805, 42806, 42807, 42808, 42809, 42810, 42811, 42812, 42813, 42814, 42815, 42816, 42817, 42818, 42819, 42820, 42821, 42822, 42823, 42824, 42825, 42826, 42827, 42828, 42829, 42830, 42831, 42832, 42833, 42834, 42835, 42836, 42837, 42838, 42839, 42840, 42841, 42842, 42843, 42844, 42845, 42846, 42847, 42848, 42849, 42850, 42851, 42852, 42853, 42854, 42855, 42856, 42857, 42858, 42859, 42860, 42861, 42862, 42863, 42864, 42865, 42866, 42867, 42868, 42869, 42870, 42871, 42872, 42873, 42874, 42875, 42876, 42877, 42878, 42879, 42880, 42881, 42882, 42883, 42884, 42885, 42886, 42887, 42888, 42891, 42892, 42893, 42894, 42895, 42896, 42897, 42898, 42899, 42900, 42901, 42902, 42903, 42904, 42905, 42906, 42907, 42908, 42909, 42910, 42911, 42912, 42913, 42914, 42915, 42916, 42917, 42918, 42919, 42920, 42921, 42922, 42923, 42924, 42925, 42928, 42929, 42930, 42931, 42932, 42933, 42934, 42935, 42999, 43000, 43001, 43002, 43003, 43004, 43005, 43006, 43007, 43008, 43009, 43011, 43012, 43013, 43015, 43016, 43017, 43018, 43020, 43021, 43022, 43023, 43024, 43025, 43026, 43027, 43028, 43029, 43030, 43031, 43032, 43033, 43034, 43035, 43036, 43037, 43038, 43039, 43040, 43041, 43042, 43072, 43073, 43074, 43075, 43076, 43077, 43078, 43079, 43080, 43081, 43082, 43083, 43084, 43085, 43086, 43087, 43088, 43089, 43090, 43091, 43092, 43093, 43094, 43095, 43096, 43097, 43098, 43099, 43100, 43101, 43102, 43103, 43104, 43105, 43106, 43107, 43108, 43109, 43110, 43111, 43112, 43113, 43114, 43115, 43116, 43117, 43118, 43119, 43120, 43121, 43122, 43123, 43138, 43139, 43140, 43141, 43142, 43143, 43144, 43145, 43146, 43147, 43148, 43149, 43150, 43151, 43152, 43153, 43154, 43155, 43156, 43157, 43158, 43159, 43160, 43161, 43162, 43163, 43164, 43165, 43166, 43167, 43168, 43169, 43170, 43171, 43172, 43173, 43174, 43175, 43176, 43177, 43178, 43179, 43180, 43181, 43182, 43183, 43184, 43185, 43186, 43187, 43250, 43251, 43252, 43253, 43254, 43255, 43259, 43261, 43274, 43275, 43276, 43277, 43278, 43279, 43280, 43281, 43282, 43283, 43284, 43285, 43286, 43287, 43288, 43289, 43290, 43291, 43292, 43293, 43294, 43295, 43296, 43297, 43298, 43299, 43300, 43301, 43312, 43313, 43314, 43315, 43316, 43317, 43318, 43319, 43320, 43321, 43322, 43323, 43324, 43325, 43326, 43327, 43328, 43329, 43330, 43331, 43332, 43333, 43334, 43360, 43361, 43362, 43363, 43364, 43365, 43366, 43367, 43368, 43369, 43370, 43371, 43372, 43373, 43374, 43375, 43376, 43377, 43378, 43379, 43380, 43381, 43382, 43383, 43384, 43385, 43386, 43387, 43388, 43396, 43397, 43398, 43399, 43400, 43401, 43402, 43403, 43404, 43405, 43406, 43407, 43408, 43409, 43410, 43411, 43412, 43413, 43414, 43415, 43416, 43417, 43418, 43419, 43420, 43421, 43422, 43423, 43424, 43425, 43426, 43427, 43428, 43429, 43430, 43431, 43432, 43433, 43434, 43435, 43436, 43437, 43438, 43439, 43440, 43441, 43442, 43471, 43488, 43489, 43490, 43491, 43492, 43494, 43495, 43496, 43497, 43498, 43499, 43500, 43501, 43502, 43503, 43514, 43515, 43516, 43517, 43518, 43520, 43521, 43522, 43523, 43524, 43525, 43526, 43527, 43528, 43529, 43530, 43531, 43532, 43533, 43534, 43535, 43536, 43537, 43538, 43539, 43540, 43541, 43542, 43543, 43544, 43545, 43546, 43547, 43548, 43549, 43550, 43551, 43552, 43553, 43554, 43555, 43556, 43557, 43558, 43559, 43560, 43584, 43585, 43586, 43588, 43589, 43590, 43591, 43592, 43593, 43594, 43595, 43616, 43617, 43618, 43619, 43620, 43621, 43622, 43623, 43624, 43625, 43626, 43627, 43628, 43629, 43630, 43631, 43632, 43633, 43634, 43635, 43636, 43637, 43638, 43642, 43646, 43647, 43648, 43649, 43650, 43651, 43652, 43653, 43654, 43655, 43656, 43657, 43658, 43659, 43660, 43661, 43662, 43663, 43664, 43665, 43666, 43667, 43668, 43669, 43670, 43671, 43672, 43673, 43674, 43675, 43676, 43677, 43678, 43679, 43680, 43681, 43682, 43683, 43684, 43685, 43686, 43687, 43688, 43689, 43690, 43691, 43692, 43693, 43694, 43695, 43697, 43701, 43702, 43705, 43706, 43707, 43708, 43709, 43712, 43714, 43739, 43740, 43741, 43744, 43745, 43746, 43747, 43748, 43749, 43750, 43751, 43752, 43753, 43754, 43762, 43763, 43764, 43777, 43778, 43779, 43780, 43781, 43782, 43785, 43786, 43787, 43788, 43789, 43790, 43793, 43794, 43795, 43796, 43797, 43798, 43808, 43809, 43810, 43811, 43812, 43813, 43814, 43816, 43817, 43818, 43819, 43820, 43821, 43822, 43824, 43825, 43826, 43827, 43828, 43829, 43830, 43831, 43832, 43833, 43834, 43835, 43836, 43837, 43838, 43839, 43840, 43841, 43842, 43843, 43844, 43845, 43846, 43847, 43848, 43849, 43850, 43851, 43852, 43853, 43854, 43855, 43856, 43857, 43858, 43859, 43860, 43861, 43862, 43863, 43864, 43865, 43866, 43868, 43869, 43870, 43871, 43872, 43873, 43874, 43875, 43876, 43877, 43888, 43889, 43890, 43891, 43892, 43893, 43894, 43895, 43896, 43897, 43898, 43899, 43900, 43901, 43902, 43903, 43904, 43905, 43906, 43907, 43908, 43909, 43910, 43911, 43912, 43913, 43914, 43915, 43916, 43917, 43918, 43919, 43920, 43921, 43922, 43923, 43924, 43925, 43926, 43927, 43928, 43929, 43930, 43931, 43932, 43933, 43934, 43935, 43936, 43937, 43938, 43939, 43940, 43941, 43942, 43943, 43944, 43945, 43946, 43947, 43948, 43949, 43950, 43951, 43952, 43953, 43954, 43955, 43956, 43957, 43958, 43959, 43960, 43961, 43962, 43963, 43964, 43965, 43966, 43967, 43968, 43969, 43970, 43971, 43972, 43973, 43974, 43975, 43976, 43977, 43978, 43979, 43980, 43981, 43982, 43983, 43984, 43985, 43986, 43987, 43988, 43989, 43990, 43991, 43992, 43993, 43994, 43995, 43996, 43997, 43998, 43999, 44000, 44001, 44002, 44032, 55203, 55216, 55217, 55218, 55219, 55220, 55221, 55222, 55223, 55224, 55225, 55226, 55227, 55228, 55229, 55230, 55231, 55232, 55233, 55234, 55235, 55236, 55237, 55238, 55243, 55244, 55245, 55246, 55247, 55248, 55249, 55250, 55251, 55252, 55253, 55254, 55255, 55256, 55257, 55258, 55259, 55260, 55261, 55262, 55263, 55264, 55265, 55266, 55267, 55268, 55269, 55270, 55271, 55272, 55273, 55274, 55275, 55276, 55277, 55278, 55279, 55280, 55281, 55282, 55283, 55284, 55285, 55286, 55287, 55288, 55289, 55290, 55291, 63744, 63745, 63746, 63747, 63748, 63749, 63750, 63751, 63752, 63753, 63754, 63755, 63756, 63757, 63758, 63759, 63760, 63761, 63762, 63763, 63764, 63765, 63766, 63767, 63768, 63769, 63770, 63771, 63772, 63773, 63774, 63775, 63776, 63777, 63778, 63779, 63780, 63781, 63782, 63783, 63784, 63785, 63786, 63787, 63788, 63789, 63790, 63791, 63792, 63793, 63794, 63795, 63796, 63797, 63798, 63799, 63800, 63801, 63802, 63803, 63804, 63805, 63806, 63807, 63808, 63809, 63810, 63811, 63812, 63813, 63814, 63815, 63816, 63817, 63818, 63819, 63820, 63821, 63822, 63823, 63824, 63825, 63826, 63827, 63828, 63829, 63830, 63831, 63832, 63833, 63834, 63835, 63836, 63837, 63838, 63839, 63840, 63841, 63842, 63843, 63844, 63845, 63846, 63847, 63848, 63849, 63850, 63851, 63852, 63853, 63854, 63855, 63856, 63857, 63858, 63859, 63860, 63861, 63862, 63863, 63864, 63865, 63866, 63867, 63868, 63869, 63870, 63871, 63872, 63873, 63874, 63875, 63876, 63877, 63878, 63879, 63880, 63881, 63882, 63883, 63884, 63885, 63886, 63887, 63888, 63889, 63890, 63891, 63892, 63893, 63894, 63895, 63896, 63897, 63898, 63899, 63900, 63901, 63902, 63903, 63904, 63905, 63906, 63907, 63908, 63909, 63910, 63911, 63912, 63913, 63914, 63915, 63916, 63917, 63918, 63919, 63920, 63921, 63922, 63923, 63924, 63925, 63926, 63927, 63928, 63929, 63930, 63931, 63932, 63933, 63934, 63935, 63936, 63937, 63938, 63939, 63940, 63941, 63942, 63943, 63944, 63945, 63946, 63947, 63948, 63949, 63950, 63951, 63952, 63953, 63954, 63955, 63956, 63957, 63958, 63959, 63960, 63961, 63962, 63963, 63964, 63965, 63966, 63967, 63968, 63969, 63970, 63971, 63972, 63973, 63974, 63975, 63976, 63977, 63978, 63979, 63980, 63981, 63982, 63983, 63984, 63985, 63986, 63987, 63988, 63989, 63990, 63991, 63992, 63993, 63994, 63995, 63996, 63997, 63998, 63999, 64000, 64001, 64002, 64003, 64004, 64005, 64006, 64007, 64008, 64009, 64010, 64011, 64012, 64013, 64014, 64015, 64016, 64017, 64018, 64019, 64020, 64021, 64022, 64023, 64024, 64025, 64026, 64027, 64028, 64029, 64030, 64031, 64032, 64033, 64034, 64035, 64036, 64037, 64038, 64039, 64040, 64041, 64042, 64043, 64044, 64045, 64046, 64047, 64048, 64049, 64050, 64051, 64052, 64053, 64054, 64055, 64056, 64057, 64058, 64059, 64060, 64061, 64062, 64063, 64064, 64065, 64066, 64067, 64068, 64069, 64070, 64071, 64072, 64073, 64074, 64075, 64076, 64077, 64078, 64079, 64080, 64081, 64082, 64083, 64084, 64085, 64086, 64087, 64088, 64089, 64090, 64091, 64092, 64093, 64094, 64095, 64096, 64097, 64098, 64099, 64100, 64101, 64102, 64103, 64104, 64105, 64106, 64107, 64108, 64109, 64112, 64113, 64114, 64115, 64116, 64117, 64118, 64119, 64120, 64121, 64122, 64123, 64124, 64125, 64126, 64127, 64128, 64129, 64130, 64131, 64132, 64133, 64134, 64135, 64136, 64137, 64138, 64139, 64140, 64141, 64142, 64143, 64144, 64145, 64146, 64147, 64148, 64149, 64150, 64151, 64152, 64153, 64154, 64155, 64156, 64157, 64158, 64159, 64160, 64161, 64162, 64163, 64164, 64165, 64166, 64167, 64168, 64169, 64170, 64171, 64172, 64173, 64174, 64175, 64176, 64177, 64178, 64179, 64180, 64181, 64182, 64183, 64184, 64185, 64186, 64187, 64188, 64189, 64190, 64191, 64192, 64193, 64194, 64195, 64196, 64197, 64198, 64199, 64200, 64201, 64202, 64203, 64204, 64205, 64206, 64207, 64208, 64209, 64210, 64211, 64212, 64213, 64214, 64215, 64216, 64217, 64256, 64257, 64258, 64259, 64260, 64261, 64262, 64275, 64276, 64277, 64278, 64279, 64285, 64287, 64288, 64289, 64290, 64291, 64292, 64293, 64294, 64295, 64296, 64298, 64299, 64300, 64301, 64302, 64303, 64304, 64305, 64306, 64307, 64308, 64309, 64310, 64312, 64313, 64314, 64315, 64316, 64318, 64320, 64321, 64323, 64324, 64326, 64327, 64328, 64329, 64330, 64331, 64332, 64333, 64334, 64335, 64336, 64337, 64338, 64339, 64340, 64341, 64342, 64343, 64344, 64345, 64346, 64347, 64348, 64349, 64350, 64351, 64352, 64353, 64354, 64355, 64356, 64357, 64358, 64359, 64360, 64361, 64362, 64363, 64364, 64365, 64366, 64367, 64368, 64369, 64370, 64371, 64372, 64373, 64374, 64375, 64376, 64377, 64378, 64379, 64380, 64381, 64382, 64383, 64384, 64385, 64386, 64387, 64388, 64389, 64390, 64391, 64392, 64393, 64394, 64395, 64396, 64397, 64398, 64399, 64400, 64401, 64402, 64403, 64404, 64405, 64406, 64407, 64408, 64409, 64410, 64411, 64412, 64413, 64414, 64415, 64416, 64417, 64418, 64419, 64420, 64421, 64422, 64423, 64424, 64425, 64426, 64427, 64428, 64429, 64430, 64431, 64432, 64433, 64467, 64468, 64469, 64470, 64471, 64472, 64473, 64474, 64475, 64476, 64477, 64478, 64479, 64480, 64481, 64482, 64483, 64484, 64485, 64486, 64487, 64488, 64489, 64490, 64491, 64492, 64493, 64494, 64495, 64496, 64497, 64498, 64499, 64500, 64501, 64502, 64503, 64504, 64505, 64506, 64507, 64508, 64509, 64510, 64511, 64512, 64513, 64514, 64515, 64516, 64517, 64518, 64519, 64520, 64521, 64522, 64523, 64524, 64525, 64526, 64527, 64528, 64529, 64530, 64531, 64532, 64533, 64534, 64535, 64536, 64537, 64538, 64539, 64540, 64541, 64542, 64543, 64544, 64545, 64546, 64547, 64548, 64549, 64550, 64551, 64552, 64553, 64554, 64555, 64556, 64557, 64558, 64559, 64560, 64561, 64562, 64563, 64564, 64565, 64566, 64567, 64568, 64569, 64570, 64571, 64572, 64573, 64574, 64575, 64576, 64577, 64578, 64579, 64580, 64581, 64582, 64583, 64584, 64585, 64586, 64587, 64588, 64589, 64590, 64591, 64592, 64593, 64594, 64595, 64596, 64597, 64598, 64599, 64600, 64601, 64602, 64603, 64604, 64605, 64606, 64607, 64608, 64609, 64610, 64611, 64612, 64613, 64614, 64615, 64616, 64617, 64618, 64619, 64620, 64621, 64622, 64623, 64624, 64625, 64626, 64627, 64628, 64629, 64630, 64631, 64632, 64633, 64634, 64635, 64636, 64637, 64638, 64639, 64640, 64641, 64642, 64643, 64644, 64645, 64646, 64647, 64648, 64649, 64650, 64651, 64652, 64653, 64654, 64655, 64656, 64657, 64658, 64659, 64660, 64661, 64662, 64663, 64664, 64665, 64666, 64667, 64668, 64669, 64670, 64671, 64672, 64673, 64674, 64675, 64676, 64677, 64678, 64679, 64680, 64681, 64682, 64683, 64684, 64685, 64686, 64687, 64688, 64689, 64690, 64691, 64692, 64693, 64694, 64695, 64696, 64697, 64698, 64699, 64700, 64701, 64702, 64703, 64704, 64705, 64706, 64707, 64708, 64709, 64710, 64711, 64712, 64713, 64714, 64715, 64716, 64717, 64718, 64719, 64720, 64721, 64722, 64723, 64724, 64725, 64726, 64727, 64728, 64729, 64730, 64731, 64732, 64733, 64734, 64735, 64736, 64737, 64738, 64739, 64740, 64741, 64742, 64743, 64744, 64745, 64746, 64747, 64748, 64749, 64750, 64751, 64752, 64753, 64754, 64755, 64756, 64757, 64758, 64759, 64760, 64761, 64762, 64763, 64764, 64765, 64766, 64767, 64768, 64769, 64770, 64771, 64772, 64773, 64774, 64775, 64776, 64777, 64778, 64779, 64780, 64781, 64782, 64783, 64784, 64785, 64786, 64787, 64788, 64789, 64790, 64791, 64792, 64793, 64794, 64795, 64796, 64797, 64798, 64799, 64800, 64801, 64802, 64803, 64804, 64805, 64806, 64807, 64808, 64809, 64810, 64811, 64812, 64813, 64814, 64815, 64816, 64817, 64818, 64819, 64820, 64821, 64822, 64823, 64824, 64825, 64826, 64827, 64828, 64829, 64848, 64849, 64850, 64851, 64852, 64853, 64854, 64855, 64856, 64857, 64858, 64859, 64860, 64861, 64862, 64863, 64864, 64865, 64866, 64867, 64868, 64869, 64870, 64871, 64872, 64873, 64874, 64875, 64876, 64877, 64878, 64879, 64880, 64881, 64882, 64883, 64884, 64885, 64886, 64887, 64888, 64889, 64890, 64891, 64892, 64893, 64894, 64895, 64896, 64897, 64898, 64899, 64900, 64901, 64902, 64903, 64904, 64905, 64906, 64907, 64908, 64909, 64910, 64911, 64914, 64915, 64916, 64917, 64918, 64919, 64920, 64921, 64922, 64923, 64924, 64925, 64926, 64927, 64928, 64929, 64930, 64931, 64932, 64933, 64934, 64935, 64936, 64937, 64938, 64939, 64940, 64941, 64942, 64943, 64944, 64945, 64946, 64947, 64948, 64949, 64950, 64951, 64952, 64953, 64954, 64955, 64956, 64957, 64958, 64959, 64960, 64961, 64962, 64963, 64964, 64965, 64966, 64967, 65008, 65009, 65010, 65011, 65012, 65013, 65014, 65015, 65016, 65017, 65018, 65019, 65136, 65137, 65138, 65139, 65140, 65142, 65143, 65144, 65145, 65146, 65147, 65148, 65149, 65150, 65151, 65152, 65153, 65154, 65155, 65156, 65157, 65158, 65159, 65160, 65161, 65162, 65163, 65164, 65165, 65166, 65167, 65168, 65169, 65170, 65171, 65172, 65173, 65174, 65175, 65176, 65177, 65178, 65179, 65180, 65181, 65182, 65183, 65184, 65185, 65186, 65187, 65188, 65189, 65190, 65191, 65192, 65193, 65194, 65195, 65196, 65197, 65198, 65199, 65200, 65201, 65202, 65203, 65204, 65205, 65206, 65207, 65208, 65209, 65210, 65211, 65212, 65213, 65214, 65215, 65216, 65217, 65218, 65219, 65220, 65221, 65222, 65223, 65224, 65225, 65226, 65227, 65228, 65229, 65230, 65231, 65232, 65233, 65234, 65235, 65236, 65237, 65238, 65239, 65240, 65241, 65242, 65243, 65244, 65245, 65246, 65247, 65248, 65249, 65250, 65251, 65252, 65253, 65254, 65255, 65256, 65257, 65258, 65259, 65260, 65261, 65262, 65263, 65264, 65265, 65266, 65267, 65268, 65269, 65270, 65271, 65272, 65273, 65274, 65275, 65276, 65313, 65314, 65315, 65316, 65317, 65318, 65319, 65320, 65321, 65322, 65323, 65324, 65325, 65326, 65327, 65328, 65329, 65330, 65331, 65332, 65333, 65334, 65335, 65336, 65337, 65338, 65345, 65346, 65347, 65348, 65349, 65350, 65351, 65352, 65353, 65354, 65355, 65356, 65357, 65358, 65359, 65360, 65361, 65362, 65363, 65364, 65365, 65366, 65367, 65368, 65369, 65370, 65382, 65383, 65384, 65385, 65386, 65387, 65388, 65389, 65390, 65391, 65392, 65393, 65394, 65395, 65396, 65397, 65398, 65399, 65400, 65401, 65402, 65403, 65404, 65405, 65406, 65407, 65408, 65409, 65410, 65411, 65412, 65413, 65414, 65415, 65416, 65417, 65418, 65419, 65420, 65421, 65422, 65423, 65424, 65425, 65426, 65427, 65428, 65429, 65430, 65431, 65432, 65433, 65434, 65435, 65436, 65437, 65438, 65439, 65440, 65441, 65442, 65443, 65444, 65445, 65446, 65447, 65448, 65449, 65450, 65451, 65452, 65453, 65454, 65455, 65456, 65457, 65458, 65459, 65460, 65461, 65462, 65463, 65464, 65465, 65466, 65467, 65468, 65469, 65470, 65474, 65475, 65476, 65477, 65478, 65479, 65482, 65483, 65484, 65485, 65486, 65487, 65490, 65491, 65492, 65493, 65494, 65495, 65498, 65499, 65500, 65536, 65537, 65538, 65539, 65540, 65541, 65542, 65543, 65544, 65545, 65546, 65547, 65549, 65550, 65551, 65552, 65553, 65554, 65555, 65556, 65557, 65558, 65559, 65560, 65561, 65562, 65563, 65564, 65565, 65566, 65567, 65568, 65569, 65570, 65571, 65572, 65573, 65574, 65576, 65577, 65578, 65579, 65580, 65581, 65582, 65583, 65584, 65585, 65586, 65587, 65588, 65589, 65590, 65591, 65592, 65593, 65594, 65596, 65597, 65599, 65600, 65601, 65602, 65603, 65604, 65605, 65606, 65607, 65608, 65609, 65610, 65611, 65612, 65613, 65616, 65617, 65618, 65619, 65620, 65621, 65622, 65623, 65624, 65625, 65626, 65627, 65628, 65629, 65664, 65665, 65666, 65667, 65668, 65669, 65670, 65671, 65672, 65673, 65674, 65675, 65676, 65677, 65678, 65679, 65680, 65681, 65682, 65683, 65684, 65685, 65686, 65687, 65688, 65689, 65690, 65691, 65692, 65693, 65694, 65695, 65696, 65697, 65698, 65699, 65700, 65701, 65702, 65703, 65704, 65705, 65706, 65707, 65708, 65709, 65710, 65711, 65712, 65713, 65714, 65715, 65716, 65717, 65718, 65719, 65720, 65721, 65722, 65723, 65724, 65725, 65726, 65727, 65728, 65729, 65730, 65731, 65732, 65733, 65734, 65735, 65736, 65737, 65738, 65739, 65740, 65741, 65742, 65743, 65744, 65745, 65746, 65747, 65748, 65749, 65750, 65751, 65752, 65753, 65754, 65755, 65756, 65757, 65758, 65759, 65760, 65761, 65762, 65763, 65764, 65765, 65766, 65767, 65768, 65769, 65770, 65771, 65772, 65773, 65774, 65775, 65776, 65777, 65778, 65779, 65780, 65781, 65782, 65783, 65784, 65785, 65786, 66176, 66177, 66178, 66179, 66180, 66181, 66182, 66183, 66184, 66185, 66186, 66187, 66188, 66189, 66190, 66191, 66192, 66193, 66194, 66195, 66196, 66197, 66198, 66199, 66200, 66201, 66202, 66203, 66204, 66208, 66209, 66210, 66211, 66212, 66213, 66214, 66215, 66216, 66217, 66218, 66219, 66220, 66221, 66222, 66223, 66224, 66225, 66226, 66227, 66228, 66229, 66230, 66231, 66232, 66233, 66234, 66235, 66236, 66237, 66238, 66239, 66240, 66241, 66242, 66243, 66244, 66245, 66246, 66247, 66248, 66249, 66250, 66251, 66252, 66253, 66254, 66255, 66256, 66304, 66305, 66306, 66307, 66308, 66309, 66310, 66311, 66312, 66313, 66314, 66315, 66316, 66317, 66318, 66319, 66320, 66321, 66322, 66323, 66324, 66325, 66326, 66327, 66328, 66329, 66330, 66331, 66332, 66333, 66334, 66335, 66352, 66353, 66354, 66355, 66356, 66357, 66358, 66359, 66360, 66361, 66362, 66363, 66364, 66365, 66366, 66367, 66368, 66370, 66371, 66372, 66373, 66374, 66375, 66376, 66377, 66384, 66385, 66386, 66387, 66388, 66389, 66390, 66391, 66392, 66393, 66394, 66395, 66396, 66397, 66398, 66399, 66400, 66401, 66402, 66403, 66404, 66405, 66406, 66407, 66408, 66409, 66410, 66411, 66412, 66413, 66414, 66415, 66416, 66417, 66418, 66419, 66420, 66421, 66432, 66433, 66434, 66435, 66436, 66437, 66438, 66439, 66440, 66441, 66442, 66443, 66444, 66445, 66446, 66447, 66448, 66449, 66450, 66451, 66452, 66453, 66454, 66455, 66456, 66457, 66458, 66459, 66460, 66461, 66464, 66465, 66466, 66467, 66468, 66469, 66470, 66471, 66472, 66473, 66474, 66475, 66476, 66477, 66478, 66479, 66480, 66481, 66482, 66483, 66484, 66485, 66486, 66487, 66488, 66489, 66490, 66491, 66492, 66493, 66494, 66495, 66496, 66497, 66498, 66499, 66504, 66505, 66506, 66507, 66508, 66509, 66510, 66511, 66560, 66561, 66562, 66563, 66564, 66565, 66566, 66567, 66568, 66569, 66570, 66571, 66572, 66573, 66574, 66575, 66576, 66577, 66578, 66579, 66580, 66581, 66582, 66583, 66584, 66585, 66586, 66587, 66588, 66589, 66590, 66591, 66592, 66593, 66594, 66595, 66596, 66597, 66598, 66599, 66600, 66601, 66602, 66603, 66604, 66605, 66606, 66607, 66608, 66609, 66610, 66611, 66612, 66613, 66614, 66615, 66616, 66617, 66618, 66619, 66620, 66621, 66622, 66623, 66624, 66625, 66626, 66627, 66628, 66629, 66630, 66631, 66632, 66633, 66634, 66635, 66636, 66637, 66638, 66639, 66640, 66641, 66642, 66643, 66644, 66645, 66646, 66647, 66648, 66649, 66650, 66651, 66652, 66653, 66654, 66655, 66656, 66657, 66658, 66659, 66660, 66661, 66662, 66663, 66664, 66665, 66666, 66667, 66668, 66669, 66670, 66671, 66672, 66673, 66674, 66675, 66676, 66677, 66678, 66679, 66680, 66681, 66682, 66683, 66684, 66685, 66686, 66687, 66688, 66689, 66690, 66691, 66692, 66693, 66694, 66695, 66696, 66697, 66698, 66699, 66700, 66701, 66702, 66703, 66704, 66705, 66706, 66707, 66708, 66709, 66710, 66711, 66712, 66713, 66714, 66715, 66716, 66717, 66816, 66817, 66818, 66819, 66820, 66821, 66822, 66823, 66824, 66825, 66826, 66827, 66828, 66829, 66830, 66831, 66832, 66833, 66834, 66835, 66836, 66837, 66838, 66839, 66840, 66841, 66842, 66843, 66844, 66845, 66846, 66847, 66848, 66849, 66850, 66851, 66852, 66853, 66854, 66855, 66864, 66865, 66866, 66867, 66868, 66869, 66870, 66871, 66872, 66873, 66874, 66875, 66876, 66877, 66878, 66879, 66880, 66881, 66882, 66883, 66884, 66885, 66886, 66887, 66888, 66889, 66890, 66891, 66892, 66893, 66894, 66895, 66896, 66897, 66898, 66899, 66900, 66901, 66902, 66903, 66904, 66905, 66906, 66907, 66908, 66909, 66910, 66911, 66912, 66913, 66914, 66915, 67072, 67073, 67074, 67075, 67076, 67077, 67078, 67079, 67080, 67081, 67082, 67083, 67084, 67085, 67086, 67087, 67088, 67089, 67090, 67091, 67092, 67093, 67094, 67095, 67096, 67097, 67098, 67099, 67100, 67101, 67102, 67103, 67104, 67105, 67106, 67107, 67108, 67109, 67110, 67111, 67112, 67113, 67114, 67115, 67116, 67117, 67118, 67119, 67120, 67121, 67122, 67123, 67124, 67125, 67126, 67127, 67128, 67129, 67130, 67131, 67132, 67133, 67134, 67135, 67136, 67137, 67138, 67139, 67140, 67141, 67142, 67143, 67144, 67145, 67146, 67147, 67148, 67149, 67150, 67151, 67152, 67153, 67154, 67155, 67156, 67157, 67158, 67159, 67160, 67161, 67162, 67163, 67164, 67165, 67166, 67167, 67168, 67169, 67170, 67171, 67172, 67173, 67174, 67175, 67176, 67177, 67178, 67179, 67180, 67181, 67182, 67183, 67184, 67185, 67186, 67187, 67188, 67189, 67190, 67191, 67192, 67193, 67194, 67195, 67196, 67197, 67198, 67199, 67200, 67201, 67202, 67203, 67204, 67205, 67206, 67207, 67208, 67209, 67210, 67211, 67212, 67213, 67214, 67215, 67216, 67217, 67218, 67219, 67220, 67221, 67222, 67223, 67224, 67225, 67226, 67227, 67228, 67229, 67230, 67231, 67232, 67233, 67234, 67235, 67236, 67237, 67238, 67239, 67240, 67241, 67242, 67243, 67244, 67245, 67246, 67247, 67248, 67249, 67250, 67251, 67252, 67253, 67254, 67255, 67256, 67257, 67258, 67259, 67260, 67261, 67262, 67263, 67264, 67265, 67266, 67267, 67268, 67269, 67270, 67271, 67272, 67273, 67274, 67275, 67276, 67277, 67278, 67279, 67280, 67281, 67282, 67283, 67284, 67285, 67286, 67287, 67288, 67289, 67290, 67291, 67292, 67293, 67294, 67295, 67296, 67297, 67298, 67299, 67300, 67301, 67302, 67303, 67304, 67305, 67306, 67307, 67308, 67309, 67310, 67311, 67312, 67313, 67314, 67315, 67316, 67317, 67318, 67319, 67320, 67321, 67322, 67323, 67324, 67325, 67326, 67327, 67328, 67329, 67330, 67331, 67332, 67333, 67334, 67335, 67336, 67337, 67338, 67339, 67340, 67341, 67342, 67343, 67344, 67345, 67346, 67347, 67348, 67349, 67350, 67351, 67352, 67353, 67354, 67355, 67356, 67357, 67358, 67359, 67360, 67361, 67362, 67363, 67364, 67365, 67366, 67367, 67368, 67369, 67370, 67371, 67372, 67373, 67374, 67375, 67376, 67377, 67378, 67379, 67380, 67381, 67382, 67392, 67393, 67394, 67395, 67396, 67397, 67398, 67399, 67400, 67401, 67402, 67403, 67404, 67405, 67406, 67407, 67408, 67409, 67410, 67411, 67412, 67413, 67424, 67425, 67426, 67427, 67428, 67429, 67430, 67431, 67584, 67585, 67586, 67587, 67588, 67589, 67592, 67594, 67595, 67596, 67597, 67598, 67599, 67600, 67601, 67602, 67603, 67604, 67605, 67606, 67607, 67608, 67609, 67610, 67611, 67612, 67613, 67614, 67615, 67616, 67617, 67618, 67619, 67620, 67621, 67622, 67623, 67624, 67625, 67626, 67627, 67628, 67629, 67630, 67631, 67632, 67633, 67634, 67635, 67636, 67637, 67639, 67640, 67644, 67647, 67648, 67649, 67650, 67651, 67652, 67653, 67654, 67655, 67656, 67657, 67658, 67659, 67660, 67661, 67662, 67663, 67664, 67665, 67666, 67667, 67668, 67669, 67680, 67681, 67682, 67683, 67684, 67685, 67686, 67687, 67688, 67689, 67690, 67691, 67692, 67693, 67694, 67695, 67696, 67697, 67698, 67699, 67700, 67701, 67702, 67712, 67713, 67714, 67715, 67716, 67717, 67718, 67719, 67720, 67721, 67722, 67723, 67724, 67725, 67726, 67727, 67728, 67729, 67730, 67731, 67732, 67733, 67734, 67735, 67736, 67737, 67738, 67739, 67740, 67741, 67742, 67808, 67809, 67810, 67811, 67812, 67813, 67814, 67815, 67816, 67817, 67818, 67819, 67820, 67821, 67822, 67823, 67824, 67825, 67826, 67828, 67829, 67840, 67841, 67842, 67843, 67844, 67845, 67846, 67847, 67848, 67849, 67850, 67851, 67852, 67853, 67854, 67855, 67856, 67857, 67858, 67859, 67860, 67861, 67872, 67873, 67874, 67875, 67876, 67877, 67878, 67879, 67880, 67881, 67882, 67883, 67884, 67885, 67886, 67887, 67888, 67889, 67890, 67891, 67892, 67893, 67894, 67895, 67896, 67897, 67968, 67969, 67970, 67971, 67972, 67973, 67974, 67975, 67976, 67977, 67978, 67979, 67980, 67981, 67982, 67983, 67984, 67985, 67986, 67987, 67988, 67989, 67990, 67991, 67992, 67993, 67994, 67995, 67996, 67997, 67998, 67999, 68000, 68001, 68002, 68003, 68004, 68005, 68006, 68007, 68008, 68009, 68010, 68011, 68012, 68013, 68014, 68015, 68016, 68017, 68018, 68019, 68020, 68021, 68022, 68023, 68030, 68031, 68096, 68112, 68113, 68114, 68115, 68117, 68118, 68119, 68121, 68122, 68123, 68124, 68125, 68126, 68127, 68128, 68129, 68130, 68131, 68132, 68133, 68134, 68135, 68136, 68137, 68138, 68139, 68140, 68141, 68142, 68143, 68144, 68145, 68146, 68147, 68192, 68193, 68194, 68195, 68196, 68197, 68198, 68199, 68200, 68201, 68202, 68203, 68204, 68205, 68206, 68207, 68208, 68209, 68210, 68211, 68212, 68213, 68214, 68215, 68216, 68217, 68218, 68219, 68220, 68224, 68225, 68226, 68227, 68228, 68229, 68230, 68231, 68232, 68233, 68234, 68235, 68236, 68237, 68238, 68239, 68240, 68241, 68242, 68243, 68244, 68245, 68246, 68247, 68248, 68249, 68250, 68251, 68252, 68288, 68289, 68290, 68291, 68292, 68293, 68294, 68295, 68297, 68298, 68299, 68300, 68301, 68302, 68303, 68304, 68305, 68306, 68307, 68308, 68309, 68310, 68311, 68312, 68313, 68314, 68315, 68316, 68317, 68318, 68319, 68320, 68321, 68322, 68323, 68324, 68352, 68353, 68354, 68355, 68356, 68357, 68358, 68359, 68360, 68361, 68362, 68363, 68364, 68365, 68366, 68367, 68368, 68369, 68370, 68371, 68372, 68373, 68374, 68375, 68376, 68377, 68378, 68379, 68380, 68381, 68382, 68383, 68384, 68385, 68386, 68387, 68388, 68389, 68390, 68391, 68392, 68393, 68394, 68395, 68396, 68397, 68398, 68399, 68400, 68401, 68402, 68403, 68404, 68405, 68416, 68417, 68418, 68419, 68420, 68421, 68422, 68423, 68424, 68425, 68426, 68427, 68428, 68429, 68430, 68431, 68432, 68433, 68434, 68435, 68436, 68437, 68448, 68449, 68450, 68451, 68452, 68453, 68454, 68455, 68456, 68457, 68458, 68459, 68460, 68461, 68462, 68463, 68464, 68465, 68466, 68480, 68481, 68482, 68483, 68484, 68485, 68486, 68487, 68488, 68489, 68490, 68491, 68492, 68493, 68494, 68495, 68496, 68497, 68608, 68609, 68610, 68611, 68612, 68613, 68614, 68615, 68616, 68617, 68618, 68619, 68620, 68621, 68622, 68623, 68624, 68625, 68626, 68627, 68628, 68629, 68630, 68631, 68632, 68633, 68634, 68635, 68636, 68637, 68638, 68639, 68640, 68641, 68642, 68643, 68644, 68645, 68646, 68647, 68648, 68649, 68650, 68651, 68652, 68653, 68654, 68655, 68656, 68657, 68658, 68659, 68660, 68661, 68662, 68663, 68664, 68665, 68666, 68667, 68668, 68669, 68670, 68671, 68672, 68673, 68674, 68675, 68676, 68677, 68678, 68679, 68680, 68736, 68737, 68738, 68739, 68740, 68741, 68742, 68743, 68744, 68745, 68746, 68747, 68748, 68749, 68750, 68751, 68752, 68753, 68754, 68755, 68756, 68757, 68758, 68759, 68760, 68761, 68762, 68763, 68764, 68765, 68766, 68767, 68768, 68769, 68770, 68771, 68772, 68773, 68774, 68775, 68776, 68777, 68778, 68779, 68780, 68781, 68782, 68783, 68784, 68785, 68786, 68800, 68801, 68802, 68803, 68804, 68805, 68806, 68807, 68808, 68809, 68810, 68811, 68812, 68813, 68814, 68815, 68816, 68817, 68818, 68819, 68820, 68821, 68822, 68823, 68824, 68825, 68826, 68827, 68828, 68829, 68830, 68831, 68832, 68833, 68834, 68835, 68836, 68837, 68838, 68839, 68840, 68841, 68842, 68843, 68844, 68845, 68846, 68847, 68848, 68849, 68850, 69635, 69636, 69637, 69638, 69639, 69640, 69641, 69642, 69643, 69644, 69645, 69646, 69647, 69648, 69649, 69650, 69651, 69652, 69653, 69654, 69655, 69656, 69657, 69658, 69659, 69660, 69661, 69662, 69663, 69664, 69665, 69666, 69667, 69668, 69669, 69670, 69671, 69672, 69673, 69674, 69675, 69676, 69677, 69678, 69679, 69680, 69681, 69682, 69683, 69684, 69685, 69686, 69687, 69763, 69764, 69765, 69766, 69767, 69768, 69769, 69770, 69771, 69772, 69773, 69774, 69775, 69776, 69777, 69778, 69779, 69780, 69781, 69782, 69783, 69784, 69785, 69786, 69787, 69788, 69789, 69790, 69791, 69792, 69793, 69794, 69795, 69796, 69797, 69798, 69799, 69800, 69801, 69802, 69803, 69804, 69805, 69806, 69807, 69840, 69841, 69842, 69843, 69844, 69845, 69846, 69847, 69848, 69849, 69850, 69851, 69852, 69853, 69854, 69855, 69856, 69857, 69858, 69859, 69860, 69861, 69862, 69863, 69864, 69891, 69892, 69893, 69894, 69895, 69896, 69897, 69898, 69899, 69900, 69901, 69902, 69903, 69904, 69905, 69906, 69907, 69908, 69909, 69910, 69911, 69912, 69913, 69914, 69915, 69916, 69917, 69918, 69919, 69920, 69921, 69922, 69923, 69924, 69925, 69926, 69968, 69969, 69970, 69971, 69972, 69973, 69974, 69975, 69976, 69977, 69978, 69979, 69980, 69981, 69982, 69983, 69984, 69985, 69986, 69987, 69988, 69989, 69990, 69991, 69992, 69993, 69994, 69995, 69996, 69997, 69998, 69999, 70000, 70001, 70002, 70006, 70019, 70020, 70021, 70022, 70023, 70024, 70025, 70026, 70027, 70028, 70029, 70030, 70031, 70032, 70033, 70034, 70035, 70036, 70037, 70038, 70039, 70040, 70041, 70042, 70043, 70044, 70045, 70046, 70047, 70048, 70049, 70050, 70051, 70052, 70053, 70054, 70055, 70056, 70057, 70058, 70059, 70060, 70061, 70062, 70063, 70064, 70065, 70066, 70081, 70082, 70083, 70084, 70106, 70108, 70144, 70145, 70146, 70147, 70148, 70149, 70150, 70151, 70152, 70153, 70154, 70155, 70156, 70157, 70158, 70159, 70160, 70161, 70163, 70164, 70165, 70166, 70167, 70168, 70169, 70170, 70171, 70172, 70173, 70174, 70175, 70176, 70177, 70178, 70179, 70180, 70181, 70182, 70183, 70184, 70185, 70186, 70187, 70272, 70273, 70274, 70275, 70276, 70277, 70278, 70280, 70282, 70283, 70284, 70285, 70287, 70288, 70289, 70290, 70291, 70292, 70293, 70294, 70295, 70296, 70297, 70298, 70299, 70300, 70301, 70303, 70304, 70305, 70306, 70307, 70308, 70309, 70310, 70311, 70312, 70320, 70321, 70322, 70323, 70324, 70325, 70326, 70327, 70328, 70329, 70330, 70331, 70332, 70333, 70334, 70335, 70336, 70337, 70338, 70339, 70340, 70341, 70342, 70343, 70344, 70345, 70346, 70347, 70348, 70349, 70350, 70351, 70352, 70353, 70354, 70355, 70356, 70357, 70358, 70359, 70360, 70361, 70362, 70363, 70364, 70365, 70366, 70405, 70406, 70407, 70408, 70409, 70410, 70411, 70412, 70415, 70416, 70419, 70420, 70421, 70422, 70423, 70424, 70425, 70426, 70427, 70428, 70429, 70430, 70431, 70432, 70433, 70434, 70435, 70436, 70437, 70438, 70439, 70440, 70442, 70443, 70444, 70445, 70446, 70447, 70448, 70450, 70451, 70453, 70454, 70455, 70456, 70457, 70461, 70480, 70493, 70494, 70495, 70496, 70497, 70784, 70785, 70786, 70787, 70788, 70789, 70790, 70791, 70792, 70793, 70794, 70795, 70796, 70797, 70798, 70799, 70800, 70801, 70802, 70803, 70804, 70805, 70806, 70807, 70808, 70809, 70810, 70811, 70812, 70813, 70814, 70815, 70816, 70817, 70818, 70819, 70820, 70821, 70822, 70823, 70824, 70825, 70826, 70827, 70828, 70829, 70830, 70831, 70852, 70853, 70855, 71040, 71041, 71042, 71043, 71044, 71045, 71046, 71047, 71048, 71049, 71050, 71051, 71052, 71053, 71054, 71055, 71056, 71057, 71058, 71059, 71060, 71061, 71062, 71063, 71064, 71065, 71066, 71067, 71068, 71069, 71070, 71071, 71072, 71073, 71074, 71075, 71076, 71077, 71078, 71079, 71080, 71081, 71082, 71083, 71084, 71085, 71086, 71128, 71129, 71130, 71131, 71168, 71169, 71170, 71171, 71172, 71173, 71174, 71175, 71176, 71177, 71178, 71179, 71180, 71181, 71182, 71183, 71184, 71185, 71186, 71187, 71188, 71189, 71190, 71191, 71192, 71193, 71194, 71195, 71196, 71197, 71198, 71199, 71200, 71201, 71202, 71203, 71204, 71205, 71206, 71207, 71208, 71209, 71210, 71211, 71212, 71213, 71214, 71215, 71236, 71296, 71297, 71298, 71299, 71300, 71301, 71302, 71303, 71304, 71305, 71306, 71307, 71308, 71309, 71310, 71311, 71312, 71313, 71314, 71315, 71316, 71317, 71318, 71319, 71320, 71321, 71322, 71323, 71324, 71325, 71326, 71327, 71328, 71329, 71330, 71331, 71332, 71333, 71334, 71335, 71336, 71337, 71338, 71424, 71425, 71426, 71427, 71428, 71429, 71430, 71431, 71432, 71433, 71434, 71435, 71436, 71437, 71438, 71439, 71440, 71441, 71442, 71443, 71444, 71445, 71446, 71447, 71448, 71449, 71840, 71841, 71842, 71843, 71844, 71845, 71846, 71847, 71848, 71849, 71850, 71851, 71852, 71853, 71854, 71855, 71856, 71857, 71858, 71859, 71860, 71861, 71862, 71863, 71864, 71865, 71866, 71867, 71868, 71869, 71870, 71871, 71872, 71873, 71874, 71875, 71876, 71877, 71878, 71879, 71880, 71881, 71882, 71883, 71884, 71885, 71886, 71887, 71888, 71889, 71890, 71891, 71892, 71893, 71894, 71895, 71896, 71897, 71898, 71899, 71900, 71901, 71902, 71903, 71935, 72384, 72385, 72386, 72387, 72388, 72389, 72390, 72391, 72392, 72393, 72394, 72395, 72396, 72397, 72398, 72399, 72400, 72401, 72402, 72403, 72404, 72405, 72406, 72407, 72408, 72409, 72410, 72411, 72412, 72413, 72414, 72415, 72416, 72417, 72418, 72419, 72420, 72421, 72422, 72423, 72424, 72425, 72426, 72427, 72428, 72429, 72430, 72431, 72432, 72433, 72434, 72435, 72436, 72437, 72438, 72439, 72440, 73728, 73729, 73730, 73731, 73732, 73733, 73734, 73735, 73736, 73737, 73738, 73739, 73740, 73741, 73742, 73743, 73744, 73745, 73746, 73747, 73748, 73749, 73750, 73751, 73752, 73753, 73754, 73755, 73756, 73757, 73758, 73759, 73760, 73761, 73762, 73763, 73764, 73765, 73766, 73767, 73768, 73769, 73770, 73771, 73772, 73773, 73774, 73775, 73776, 73777, 73778, 73779, 73780, 73781, 73782, 73783, 73784, 73785, 73786, 73787, 73788, 73789, 73790, 73791, 73792, 73793, 73794, 73795, 73796, 73797, 73798, 73799, 73800, 73801, 73802, 73803, 73804, 73805, 73806, 73807, 73808, 73809, 73810, 73811, 73812, 73813, 73814, 73815, 73816, 73817, 73818, 73819, 73820, 73821, 73822, 73823, 73824, 73825, 73826, 73827, 73828, 73829, 73830, 73831, 73832, 73833, 73834, 73835, 73836, 73837, 73838, 73839, 73840, 73841, 73842, 73843, 73844, 73845, 73846, 73847, 73848, 73849, 73850, 73851, 73852, 73853, 73854, 73855, 73856, 73857, 73858, 73859, 73860, 73861, 73862, 73863, 73864, 73865, 73866, 73867, 73868, 73869, 73870, 73871, 73872, 73873, 73874, 73875, 73876, 73877, 73878, 73879, 73880, 73881, 73882, 73883, 73884, 73885, 73886, 73887, 73888, 73889, 73890, 73891, 73892, 73893, 73894, 73895, 73896, 73897, 73898, 73899, 73900, 73901, 73902, 73903, 73904, 73905, 73906, 73907, 73908, 73909, 73910, 73911, 73912, 73913, 73914, 73915, 73916, 73917, 73918, 73919, 73920, 73921, 73922, 73923, 73924, 73925, 73926, 73927, 73928, 73929, 73930, 73931, 73932, 73933, 73934, 73935, 73936, 73937, 73938, 73939, 73940, 73941, 73942, 73943, 73944, 73945, 73946, 73947, 73948, 73949, 73950, 73951, 73952, 73953, 73954, 73955, 73956, 73957, 73958, 73959, 73960, 73961, 73962, 73963, 73964, 73965, 73966, 73967, 73968, 73969, 73970, 73971, 73972, 73973, 73974, 73975, 73976, 73977, 73978, 73979, 73980, 73981, 73982, 73983, 73984, 73985, 73986, 73987, 73988, 73989, 73990, 73991, 73992, 73993, 73994, 73995, 73996, 73997, 73998, 73999, 74000, 74001, 74002, 74003, 74004, 74005, 74006, 74007, 74008, 74009, 74010, 74011, 74012, 74013, 74014, 74015, 74016, 74017, 74018, 74019, 74020, 74021, 74022, 74023, 74024, 74025, 74026, 74027, 74028, 74029, 74030, 74031, 74032, 74033, 74034, 74035, 74036, 74037, 74038, 74039, 74040, 74041, 74042, 74043, 74044, 74045, 74046, 74047, 74048, 74049, 74050, 74051, 74052, 74053, 74054, 74055, 74056, 74057, 74058, 74059, 74060, 74061, 74062, 74063, 74064, 74065, 74066, 74067, 74068, 74069, 74070, 74071, 74072, 74073, 74074, 74075, 74076, 74077, 74078, 74079, 74080, 74081, 74082, 74083, 74084, 74085, 74086, 74087, 74088, 74089, 74090, 74091, 74092, 74093, 74094, 74095, 74096, 74097, 74098, 74099, 74100, 74101, 74102, 74103, 74104, 74105, 74106, 74107, 74108, 74109, 74110, 74111, 74112, 74113, 74114, 74115, 74116, 74117, 74118, 74119, 74120, 74121, 74122, 74123, 74124, 74125, 74126, 74127, 74128, 74129, 74130, 74131, 74132, 74133, 74134, 74135, 74136, 74137, 74138, 74139, 74140, 74141, 74142, 74143, 74144, 74145, 74146, 74147, 74148, 74149, 74150, 74151, 74152, 74153, 74154, 74155, 74156, 74157, 74158, 74159, 74160, 74161, 74162, 74163, 74164, 74165, 74166, 74167, 74168, 74169, 74170, 74171, 74172, 74173, 74174, 74175, 74176, 74177, 74178, 74179, 74180, 74181, 74182, 74183, 74184, 74185, 74186, 74187, 74188, 74189, 74190, 74191, 74192, 74193, 74194, 74195, 74196, 74197, 74198, 74199, 74200, 74201, 74202, 74203, 74204, 74205, 74206, 74207, 74208, 74209, 74210, 74211, 74212, 74213, 74214, 74215, 74216, 74217, 74218, 74219, 74220, 74221, 74222, 74223, 74224, 74225, 74226, 74227, 74228, 74229, 74230, 74231, 74232, 74233, 74234, 74235, 74236, 74237, 74238, 74239, 74240, 74241, 74242, 74243, 74244, 74245, 74246, 74247, 74248, 74249, 74250, 74251, 74252, 74253, 74254, 74255, 74256, 74257, 74258, 74259, 74260, 74261, 74262, 74263, 74264, 74265, 74266, 74267, 74268, 74269, 74270, 74271, 74272, 74273, 74274, 74275, 74276, 74277, 74278, 74279, 74280, 74281, 74282, 74283, 74284, 74285, 74286, 74287, 74288, 74289, 74290, 74291, 74292, 74293, 74294, 74295, 74296, 74297, 74298, 74299, 74300, 74301, 74302, 74303, 74304, 74305, 74306, 74307, 74308, 74309, 74310, 74311, 74312, 74313, 74314, 74315, 74316, 74317, 74318, 74319, 74320, 74321, 74322, 74323, 74324, 74325, 74326, 74327, 74328, 74329, 74330, 74331, 74332, 74333, 74334, 74335, 74336, 74337, 74338, 74339, 74340, 74341, 74342, 74343, 74344, 74345, 74346, 74347, 74348, 74349, 74350, 74351, 74352, 74353, 74354, 74355, 74356, 74357, 74358, 74359, 74360, 74361, 74362, 74363, 74364, 74365, 74366, 74367, 74368, 74369, 74370, 74371, 74372, 74373, 74374, 74375, 74376, 74377, 74378, 74379, 74380, 74381, 74382, 74383, 74384, 74385, 74386, 74387, 74388, 74389, 74390, 74391, 74392, 74393, 74394, 74395, 74396, 74397, 74398, 74399, 74400, 74401, 74402, 74403, 74404, 74405, 74406, 74407, 74408, 74409, 74410, 74411, 74412, 74413, 74414, 74415, 74416, 74417, 74418, 74419, 74420, 74421, 74422, 74423, 74424, 74425, 74426, 74427, 74428, 74429, 74430, 74431, 74432, 74433, 74434, 74435, 74436, 74437, 74438, 74439, 74440, 74441, 74442, 74443, 74444, 74445, 74446, 74447, 74448, 74449, 74450, 74451, 74452, 74453, 74454, 74455, 74456, 74457, 74458, 74459, 74460, 74461, 74462, 74463, 74464, 74465, 74466, 74467, 74468, 74469, 74470, 74471, 74472, 74473, 74474, 74475, 74476, 74477, 74478, 74479, 74480, 74481, 74482, 74483, 74484, 74485, 74486, 74487, 74488, 74489, 74490, 74491, 74492, 74493, 74494, 74495, 74496, 74497, 74498, 74499, 74500, 74501, 74502, 74503, 74504, 74505, 74506, 74507, 74508, 74509, 74510, 74511, 74512, 74513, 74514, 74515, 74516, 74517, 74518, 74519, 74520, 74521, 74522, 74523, 74524, 74525, 74526, 74527, 74528, 74529, 74530, 74531, 74532, 74533, 74534, 74535, 74536, 74537, 74538, 74539, 74540, 74541, 74542, 74543, 74544, 74545, 74546, 74547, 74548, 74549, 74550, 74551, 74552, 74553, 74554, 74555, 74556, 74557, 74558, 74559, 74560, 74561, 74562, 74563, 74564, 74565, 74566, 74567, 74568, 74569, 74570, 74571, 74572, 74573, 74574, 74575, 74576, 74577, 74578, 74579, 74580, 74581, 74582, 74583, 74584, 74585, 74586, 74587, 74588, 74589, 74590, 74591, 74592, 74593, 74594, 74595, 74596, 74597, 74598, 74599, 74600, 74601, 74602, 74603, 74604, 74605, 74606, 74607, 74608, 74609, 74610, 74611, 74612, 74613, 74614, 74615, 74616, 74617, 74618, 74619, 74620, 74621, 74622, 74623, 74624, 74625, 74626, 74627, 74628, 74629, 74630, 74631, 74632, 74633, 74634, 74635, 74636, 74637, 74638, 74639, 74640, 74641, 74642, 74643, 74644, 74645, 74646, 74647, 74648, 74649, 74880, 74881, 74882, 74883, 74884, 74885, 74886, 74887, 74888, 74889, 74890, 74891, 74892, 74893, 74894, 74895, 74896, 74897, 74898, 74899, 74900, 74901, 74902, 74903, 74904, 74905, 74906, 74907, 74908, 74909, 74910, 74911, 74912, 74913, 74914, 74915, 74916, 74917, 74918, 74919, 74920, 74921, 74922, 74923, 74924, 74925, 74926, 74927, 74928, 74929, 74930, 74931, 74932, 74933, 74934, 74935, 74936, 74937, 74938, 74939, 74940, 74941, 74942, 74943, 74944, 74945, 74946, 74947, 74948, 74949, 74950, 74951, 74952, 74953, 74954, 74955, 74956, 74957, 74958, 74959, 74960, 74961, 74962, 74963, 74964, 74965, 74966, 74967, 74968, 74969, 74970, 74971, 74972, 74973, 74974, 74975, 74976, 74977, 74978, 74979, 74980, 74981, 74982, 74983, 74984, 74985, 74986, 74987, 74988, 74989, 74990, 74991, 74992, 74993, 74994, 74995, 74996, 74997, 74998, 74999, 75000, 75001, 75002, 75003, 75004, 75005, 75006, 75007, 75008, 75009, 75010, 75011, 75012, 75013, 75014, 75015, 75016, 75017, 75018, 75019, 75020, 75021, 75022, 75023, 75024, 75025, 75026, 75027, 75028, 75029, 75030, 75031, 75032, 75033, 75034, 75035, 75036, 75037, 75038, 75039, 75040, 75041, 75042, 75043, 75044, 75045, 75046, 75047, 75048, 75049, 75050, 75051, 75052, 75053, 75054, 75055, 75056, 75057, 75058, 75059, 75060, 75061, 75062, 75063, 75064, 75065, 75066, 75067, 75068, 75069, 75070, 75071, 75072, 75073, 75074, 75075, 77824, 77825, 77826, 77827, 77828, 77829, 77830, 77831, 77832, 77833, 77834, 77835, 77836, 77837, 77838, 77839, 77840, 77841, 77842, 77843, 77844, 77845, 77846, 77847, 77848, 77849, 77850, 77851, 77852, 77853, 77854, 77855, 77856, 77857, 77858, 77859, 77860, 77861, 77862, 77863, 77864, 77865, 77866, 77867, 77868, 77869, 77870, 77871, 77872, 77873, 77874, 77875, 77876, 77877, 77878, 77879, 77880, 77881, 77882, 77883, 77884, 77885, 77886, 77887, 77888, 77889, 77890, 77891, 77892, 77893, 77894, 77895, 77896, 77897, 77898, 77899, 77900, 77901, 77902, 77903, 77904, 77905, 77906, 77907, 77908, 77909, 77910, 77911, 77912, 77913, 77914, 77915, 77916, 77917, 77918, 77919, 77920, 77921, 77922, 77923, 77924, 77925, 77926, 77927, 77928, 77929, 77930, 77931, 77932, 77933, 77934, 77935, 77936, 77937, 77938, 77939, 77940, 77941, 77942, 77943, 77944, 77945, 77946, 77947, 77948, 77949, 77950, 77951, 77952, 77953, 77954, 77955, 77956, 77957, 77958, 77959, 77960, 77961, 77962, 77963, 77964, 77965, 77966, 77967, 77968, 77969, 77970, 77971, 77972, 77973, 77974, 77975, 77976, 77977, 77978, 77979, 77980, 77981, 77982, 77983, 77984, 77985, 77986, 77987, 77988, 77989, 77990, 77991, 77992, 77993, 77994, 77995, 77996, 77997, 77998, 77999, 78000, 78001, 78002, 78003, 78004, 78005, 78006, 78007, 78008, 78009, 78010, 78011, 78012, 78013, 78014, 78015, 78016, 78017, 78018, 78019, 78020, 78021, 78022, 78023, 78024, 78025, 78026, 78027, 78028, 78029, 78030, 78031, 78032, 78033, 78034, 78035, 78036, 78037, 78038, 78039, 78040, 78041, 78042, 78043, 78044, 78045, 78046, 78047, 78048, 78049, 78050, 78051, 78052, 78053, 78054, 78055, 78056, 78057, 78058, 78059, 78060, 78061, 78062, 78063, 78064, 78065, 78066, 78067, 78068, 78069, 78070, 78071, 78072, 78073, 78074, 78075, 78076, 78077, 78078, 78079, 78080, 78081, 78082, 78083, 78084, 78085, 78086, 78087, 78088, 78089, 78090, 78091, 78092, 78093, 78094, 78095, 78096, 78097, 78098, 78099, 78100, 78101, 78102, 78103, 78104, 78105, 78106, 78107, 78108, 78109, 78110, 78111, 78112, 78113, 78114, 78115, 78116, 78117, 78118, 78119, 78120, 78121, 78122, 78123, 78124, 78125, 78126, 78127, 78128, 78129, 78130, 78131, 78132, 78133, 78134, 78135, 78136, 78137, 78138, 78139, 78140, 78141, 78142, 78143, 78144, 78145, 78146, 78147, 78148, 78149, 78150, 78151, 78152, 78153, 78154, 78155, 78156, 78157, 78158, 78159, 78160, 78161, 78162, 78163, 78164, 78165, 78166, 78167, 78168, 78169, 78170, 78171, 78172, 78173, 78174, 78175, 78176, 78177, 78178, 78179, 78180, 78181, 78182, 78183, 78184, 78185, 78186, 78187, 78188, 78189, 78190, 78191, 78192, 78193, 78194, 78195, 78196, 78197, 78198, 78199, 78200, 78201, 78202, 78203, 78204, 78205, 78206, 78207, 78208, 78209, 78210, 78211, 78212, 78213, 78214, 78215, 78216, 78217, 78218, 78219, 78220, 78221, 78222, 78223, 78224, 78225, 78226, 78227, 78228, 78229, 78230, 78231, 78232, 78233, 78234, 78235, 78236, 78237, 78238, 78239, 78240, 78241, 78242, 78243, 78244, 78245, 78246, 78247, 78248, 78249, 78250, 78251, 78252, 78253, 78254, 78255, 78256, 78257, 78258, 78259, 78260, 78261, 78262, 78263, 78264, 78265, 78266, 78267, 78268, 78269, 78270, 78271, 78272, 78273, 78274, 78275, 78276, 78277, 78278, 78279, 78280, 78281, 78282, 78283, 78284, 78285, 78286, 78287, 78288, 78289, 78290, 78291, 78292, 78293, 78294, 78295, 78296, 78297, 78298, 78299, 78300, 78301, 78302, 78303, 78304, 78305, 78306, 78307, 78308, 78309, 78310, 78311, 78312, 78313, 78314, 78315, 78316, 78317, 78318, 78319, 78320, 78321, 78322, 78323, 78324, 78325, 78326, 78327, 78328, 78329, 78330, 78331, 78332, 78333, 78334, 78335, 78336, 78337, 78338, 78339, 78340, 78341, 78342, 78343, 78344, 78345, 78346, 78347, 78348, 78349, 78350, 78351, 78352, 78353, 78354, 78355, 78356, 78357, 78358, 78359, 78360, 78361, 78362, 78363, 78364, 78365, 78366, 78367, 78368, 78369, 78370, 78371, 78372, 78373, 78374, 78375, 78376, 78377, 78378, 78379, 78380, 78381, 78382, 78383, 78384, 78385, 78386, 78387, 78388, 78389, 78390, 78391, 78392, 78393, 78394, 78395, 78396, 78397, 78398, 78399, 78400, 78401, 78402, 78403, 78404, 78405, 78406, 78407, 78408, 78409, 78410, 78411, 78412, 78413, 78414, 78415, 78416, 78417, 78418, 78419, 78420, 78421, 78422, 78423, 78424, 78425, 78426, 78427, 78428, 78429, 78430, 78431, 78432, 78433, 78434, 78435, 78436, 78437, 78438, 78439, 78440, 78441, 78442, 78443, 78444, 78445, 78446, 78447, 78448, 78449, 78450, 78451, 78452, 78453, 78454, 78455, 78456, 78457, 78458, 78459, 78460, 78461, 78462, 78463, 78464, 78465, 78466, 78467, 78468, 78469, 78470, 78471, 78472, 78473, 78474, 78475, 78476, 78477, 78478, 78479, 78480, 78481, 78482, 78483, 78484, 78485, 78486, 78487, 78488, 78489, 78490, 78491, 78492, 78493, 78494, 78495, 78496, 78497, 78498, 78499, 78500, 78501, 78502, 78503, 78504, 78505, 78506, 78507, 78508, 78509, 78510, 78511, 78512, 78513, 78514, 78515, 78516, 78517, 78518, 78519, 78520, 78521, 78522, 78523, 78524, 78525, 78526, 78527, 78528, 78529, 78530, 78531, 78532, 78533, 78534, 78535, 78536, 78537, 78538, 78539, 78540, 78541, 78542, 78543, 78544, 78545, 78546, 78547, 78548, 78549, 78550, 78551, 78552, 78553, 78554, 78555, 78556, 78557, 78558, 78559, 78560, 78561, 78562, 78563, 78564, 78565, 78566, 78567, 78568, 78569, 78570, 78571, 78572, 78573, 78574, 78575, 78576, 78577, 78578, 78579, 78580, 78581, 78582, 78583, 78584, 78585, 78586, 78587, 78588, 78589, 78590, 78591, 78592, 78593, 78594, 78595, 78596, 78597, 78598, 78599, 78600, 78601, 78602, 78603, 78604, 78605, 78606, 78607, 78608, 78609, 78610, 78611, 78612, 78613, 78614, 78615, 78616, 78617, 78618, 78619, 78620, 78621, 78622, 78623, 78624, 78625, 78626, 78627, 78628, 78629, 78630, 78631, 78632, 78633, 78634, 78635, 78636, 78637, 78638, 78639, 78640, 78641, 78642, 78643, 78644, 78645, 78646, 78647, 78648, 78649, 78650, 78651, 78652, 78653, 78654, 78655, 78656, 78657, 78658, 78659, 78660, 78661, 78662, 78663, 78664, 78665, 78666, 78667, 78668, 78669, 78670, 78671, 78672, 78673, 78674, 78675, 78676, 78677, 78678, 78679, 78680, 78681, 78682, 78683, 78684, 78685, 78686, 78687, 78688, 78689, 78690, 78691, 78692, 78693, 78694, 78695, 78696, 78697, 78698, 78699, 78700, 78701, 78702, 78703, 78704, 78705, 78706, 78707, 78708, 78709, 78710, 78711, 78712, 78713, 78714, 78715, 78716, 78717, 78718, 78719, 78720, 78721, 78722, 78723, 78724, 78725, 78726, 78727, 78728, 78729, 78730, 78731, 78732, 78733, 78734, 78735, 78736, 78737, 78738, 78739, 78740, 78741, 78742, 78743, 78744, 78745, 78746, 78747, 78748, 78749, 78750, 78751, 78752, 78753, 78754, 78755, 78756, 78757, 78758, 78759, 78760, 78761, 78762, 78763, 78764, 78765, 78766, 78767, 78768, 78769, 78770, 78771, 78772, 78773, 78774, 78775, 78776, 78777, 78778, 78779, 78780, 78781, 78782, 78783, 78784, 78785, 78786, 78787, 78788, 78789, 78790, 78791, 78792, 78793, 78794, 78795, 78796, 78797, 78798, 78799, 78800, 78801, 78802, 78803, 78804, 78805, 78806, 78807, 78808, 78809, 78810, 78811, 78812, 78813, 78814, 78815, 78816, 78817, 78818, 78819, 78820, 78821, 78822, 78823, 78824, 78825, 78826, 78827, 78828, 78829, 78830, 78831, 78832, 78833, 78834, 78835, 78836, 78837, 78838, 78839, 78840, 78841, 78842, 78843, 78844, 78845, 78846, 78847, 78848, 78849, 78850, 78851, 78852, 78853, 78854, 78855, 78856, 78857, 78858, 78859, 78860, 78861, 78862, 78863, 78864, 78865, 78866, 78867, 78868, 78869, 78870, 78871, 78872, 78873, 78874, 78875, 78876, 78877, 78878, 78879, 78880, 78881, 78882, 78883, 78884, 78885, 78886, 78887, 78888, 78889, 78890, 78891, 78892, 78893, 78894, 82944, 82945, 82946, 82947, 82948, 82949, 82950, 82951, 82952, 82953, 82954, 82955, 82956, 82957, 82958, 82959, 82960, 82961, 82962, 82963, 82964, 82965, 82966, 82967, 82968, 82969, 82970, 82971, 82972, 82973, 82974, 82975, 82976, 82977, 82978, 82979, 82980, 82981, 82982, 82983, 82984, 82985, 82986, 82987, 82988, 82989, 82990, 82991, 82992, 82993, 82994, 82995, 82996, 82997, 82998, 82999, 83000, 83001, 83002, 83003, 83004, 83005, 83006, 83007, 83008, 83009, 83010, 83011, 83012, 83013, 83014, 83015, 83016, 83017, 83018, 83019, 83020, 83021, 83022, 83023, 83024, 83025, 83026, 83027, 83028, 83029, 83030, 83031, 83032, 83033, 83034, 83035, 83036, 83037, 83038, 83039, 83040, 83041, 83042, 83043, 83044, 83045, 83046, 83047, 83048, 83049, 83050, 83051, 83052, 83053, 83054, 83055, 83056, 83057, 83058, 83059, 83060, 83061, 83062, 83063, 83064, 83065, 83066, 83067, 83068, 83069, 83070, 83071, 83072, 83073, 83074, 83075, 83076, 83077, 83078, 83079, 83080, 83081, 83082, 83083, 83084, 83085, 83086, 83087, 83088, 83089, 83090, 83091, 83092, 83093, 83094, 83095, 83096, 83097, 83098, 83099, 83100, 83101, 83102, 83103, 83104, 83105, 83106, 83107, 83108, 83109, 83110, 83111, 83112, 83113, 83114, 83115, 83116, 83117, 83118, 83119, 83120, 83121, 83122, 83123, 83124, 83125, 83126, 83127, 83128, 83129, 83130, 83131, 83132, 83133, 83134, 83135, 83136, 83137, 83138, 83139, 83140, 83141, 83142, 83143, 83144, 83145, 83146, 83147, 83148, 83149, 83150, 83151, 83152, 83153, 83154, 83155, 83156, 83157, 83158, 83159, 83160, 83161, 83162, 83163, 83164, 83165, 83166, 83167, 83168, 83169, 83170, 83171, 83172, 83173, 83174, 83175, 83176, 83177, 83178, 83179, 83180, 83181, 83182, 83183, 83184, 83185, 83186, 83187, 83188, 83189, 83190, 83191, 83192, 83193, 83194, 83195, 83196, 83197, 83198, 83199, 83200, 83201, 83202, 83203, 83204, 83205, 83206, 83207, 83208, 83209, 83210, 83211, 83212, 83213, 83214, 83215, 83216, 83217, 83218, 83219, 83220, 83221, 83222, 83223, 83224, 83225, 83226, 83227, 83228, 83229, 83230, 83231, 83232, 83233, 83234, 83235, 83236, 83237, 83238, 83239, 83240, 83241, 83242, 83243, 83244, 83245, 83246, 83247, 83248, 83249, 83250, 83251, 83252, 83253, 83254, 83255, 83256, 83257, 83258, 83259, 83260, 83261, 83262, 83263, 83264, 83265, 83266, 83267, 83268, 83269, 83270, 83271, 83272, 83273, 83274, 83275, 83276, 83277, 83278, 83279, 83280, 83281, 83282, 83283, 83284, 83285, 83286, 83287, 83288, 83289, 83290, 83291, 83292, 83293, 83294, 83295, 83296, 83297, 83298, 83299, 83300, 83301, 83302, 83303, 83304, 83305, 83306, 83307, 83308, 83309, 83310, 83311, 83312, 83313, 83314, 83315, 83316, 83317, 83318, 83319, 83320, 83321, 83322, 83323, 83324, 83325, 83326, 83327, 83328, 83329, 83330, 83331, 83332, 83333, 83334, 83335, 83336, 83337, 83338, 83339, 83340, 83341, 83342, 83343, 83344, 83345, 83346, 83347, 83348, 83349, 83350, 83351, 83352, 83353, 83354, 83355, 83356, 83357, 83358, 83359, 83360, 83361, 83362, 83363, 83364, 83365, 83366, 83367, 83368, 83369, 83370, 83371, 83372, 83373, 83374, 83375, 83376, 83377, 83378, 83379, 83380, 83381, 83382, 83383, 83384, 83385, 83386, 83387, 83388, 83389, 83390, 83391, 83392, 83393, 83394, 83395, 83396, 83397, 83398, 83399, 83400, 83401, 83402, 83403, 83404, 83405, 83406, 83407, 83408, 83409, 83410, 83411, 83412, 83413, 83414, 83415, 83416, 83417, 83418, 83419, 83420, 83421, 83422, 83423, 83424, 83425, 83426, 83427, 83428, 83429, 83430, 83431, 83432, 83433, 83434, 83435, 83436, 83437, 83438, 83439, 83440, 83441, 83442, 83443, 83444, 83445, 83446, 83447, 83448, 83449, 83450, 83451, 83452, 83453, 83454, 83455, 83456, 83457, 83458, 83459, 83460, 83461, 83462, 83463, 83464, 83465, 83466, 83467, 83468, 83469, 83470, 83471, 83472, 83473, 83474, 83475, 83476, 83477, 83478, 83479, 83480, 83481, 83482, 83483, 83484, 83485, 83486, 83487, 83488, 83489, 83490, 83491, 83492, 83493, 83494, 83495, 83496, 83497, 83498, 83499, 83500, 83501, 83502, 83503, 83504, 83505, 83506, 83507, 83508, 83509, 83510, 83511, 83512, 83513, 83514, 83515, 83516, 83517, 83518, 83519, 83520, 83521, 83522, 83523, 83524, 83525, 83526, 92160, 92161, 92162, 92163, 92164, 92165, 92166, 92167, 92168, 92169, 92170, 92171, 92172, 92173, 92174, 92175, 92176, 92177, 92178, 92179, 92180, 92181, 92182, 92183, 92184, 92185, 92186, 92187, 92188, 92189, 92190, 92191, 92192, 92193, 92194, 92195, 92196, 92197, 92198, 92199, 92200, 92201, 92202, 92203, 92204, 92205, 92206, 92207, 92208, 92209, 92210, 92211, 92212, 92213, 92214, 92215, 92216, 92217, 92218, 92219, 92220, 92221, 92222, 92223, 92224, 92225, 92226, 92227, 92228, 92229, 92230, 92231, 92232, 92233, 92234, 92235, 92236, 92237, 92238, 92239, 92240, 92241, 92242, 92243, 92244, 92245, 92246, 92247, 92248, 92249, 92250, 92251, 92252, 92253, 92254, 92255, 92256, 92257, 92258, 92259, 92260, 92261, 92262, 92263, 92264, 92265, 92266, 92267, 92268, 92269, 92270, 92271, 92272, 92273, 92274, 92275, 92276, 92277, 92278, 92279, 92280, 92281, 92282, 92283, 92284, 92285, 92286, 92287, 92288, 92289, 92290, 92291, 92292, 92293, 92294, 92295, 92296, 92297, 92298, 92299, 92300, 92301, 92302, 92303, 92304, 92305, 92306, 92307, 92308, 92309, 92310, 92311, 92312, 92313, 92314, 92315, 92316, 92317, 92318, 92319, 92320, 92321, 92322, 92323, 92324, 92325, 92326, 92327, 92328, 92329, 92330, 92331, 92332, 92333, 92334, 92335, 92336, 92337, 92338, 92339, 92340, 92341, 92342, 92343, 92344, 92345, 92346, 92347, 92348, 92349, 92350, 92351, 92352, 92353, 92354, 92355, 92356, 92357, 92358, 92359, 92360, 92361, 92362, 92363, 92364, 92365, 92366, 92367, 92368, 92369, 92370, 92371, 92372, 92373, 92374, 92375, 92376, 92377, 92378, 92379, 92380, 92381, 92382, 92383, 92384, 92385, 92386, 92387, 92388, 92389, 92390, 92391, 92392, 92393, 92394, 92395, 92396, 92397, 92398, 92399, 92400, 92401, 92402, 92403, 92404, 92405, 92406, 92407, 92408, 92409, 92410, 92411, 92412, 92413, 92414, 92415, 92416, 92417, 92418, 92419, 92420, 92421, 92422, 92423, 92424, 92425, 92426, 92427, 92428, 92429, 92430, 92431, 92432, 92433, 92434, 92435, 92436, 92437, 92438, 92439, 92440, 92441, 92442, 92443, 92444, 92445, 92446, 92447, 92448, 92449, 92450, 92451, 92452, 92453, 92454, 92455, 92456, 92457, 92458, 92459, 92460, 92461, 92462, 92463, 92464, 92465, 92466, 92467, 92468, 92469, 92470, 92471, 92472, 92473, 92474, 92475, 92476, 92477, 92478, 92479, 92480, 92481, 92482, 92483, 92484, 92485, 92486, 92487, 92488, 92489, 92490, 92491, 92492, 92493, 92494, 92495, 92496, 92497, 92498, 92499, 92500, 92501, 92502, 92503, 92504, 92505, 92506, 92507, 92508, 92509, 92510, 92511, 92512, 92513, 92514, 92515, 92516, 92517, 92518, 92519, 92520, 92521, 92522, 92523, 92524, 92525, 92526, 92527, 92528, 92529, 92530, 92531, 92532, 92533, 92534, 92535, 92536, 92537, 92538, 92539, 92540, 92541, 92542, 92543, 92544, 92545, 92546, 92547, 92548, 92549, 92550, 92551, 92552, 92553, 92554, 92555, 92556, 92557, 92558, 92559, 92560, 92561, 92562, 92563, 92564, 92565, 92566, 92567, 92568, 92569, 92570, 92571, 92572, 92573, 92574, 92575, 92576, 92577, 92578, 92579, 92580, 92581, 92582, 92583, 92584, 92585, 92586, 92587, 92588, 92589, 92590, 92591, 92592, 92593, 92594, 92595, 92596, 92597, 92598, 92599, 92600, 92601, 92602, 92603, 92604, 92605, 92606, 92607, 92608, 92609, 92610, 92611, 92612, 92613, 92614, 92615, 92616, 92617, 92618, 92619, 92620, 92621, 92622, 92623, 92624, 92625, 92626, 92627, 92628, 92629, 92630, 92631, 92632, 92633, 92634, 92635, 92636, 92637, 92638, 92639, 92640, 92641, 92642, 92643, 92644, 92645, 92646, 92647, 92648, 92649, 92650, 92651, 92652, 92653, 92654, 92655, 92656, 92657, 92658, 92659, 92660, 92661, 92662, 92663, 92664, 92665, 92666, 92667, 92668, 92669, 92670, 92671, 92672, 92673, 92674, 92675, 92676, 92677, 92678, 92679, 92680, 92681, 92682, 92683, 92684, 92685, 92686, 92687, 92688, 92689, 92690, 92691, 92692, 92693, 92694, 92695, 92696, 92697, 92698, 92699, 92700, 92701, 92702, 92703, 92704, 92705, 92706, 92707, 92708, 92709, 92710, 92711, 92712, 92713, 92714, 92715, 92716, 92717, 92718, 92719, 92720, 92721, 92722, 92723, 92724, 92725, 92726, 92727, 92728, 92736, 92737, 92738, 92739, 92740, 92741, 92742, 92743, 92744, 92745, 92746, 92747, 92748, 92749, 92750, 92751, 92752, 92753, 92754, 92755, 92756, 92757, 92758, 92759, 92760, 92761, 92762, 92763, 92764, 92765, 92766, 92880, 92881, 92882, 92883, 92884, 92885, 92886, 92887, 92888, 92889, 92890, 92891, 92892, 92893, 92894, 92895, 92896, 92897, 92898, 92899, 92900, 92901, 92902, 92903, 92904, 92905, 92906, 92907, 92908, 92909, 92928, 92929, 92930, 92931, 92932, 92933, 92934, 92935, 92936, 92937, 92938, 92939, 92940, 92941, 92942, 92943, 92944, 92945, 92946, 92947, 92948, 92949, 92950, 92951, 92952, 92953, 92954, 92955, 92956, 92957, 92958, 92959, 92960, 92961, 92962, 92963, 92964, 92965, 92966, 92967, 92968, 92969, 92970, 92971, 92972, 92973, 92974, 92975, 92992, 92993, 92994, 92995, 93027, 93028, 93029, 93030, 93031, 93032, 93033, 93034, 93035, 93036, 93037, 93038, 93039, 93040, 93041, 93042, 93043, 93044, 93045, 93046, 93047, 93053, 93054, 93055, 93056, 93057, 93058, 93059, 93060, 93061, 93062, 93063, 93064, 93065, 93066, 93067, 93068, 93069, 93070, 93071, 93952, 93953, 93954, 93955, 93956, 93957, 93958, 93959, 93960, 93961, 93962, 93963, 93964, 93965, 93966, 93967, 93968, 93969, 93970, 93971, 93972, 93973, 93974, 93975, 93976, 93977, 93978, 93979, 93980, 93981, 93982, 93983, 93984, 93985, 93986, 93987, 93988, 93989, 93990, 93991, 93992, 93993, 93994, 93995, 93996, 93997, 93998, 93999, 94000, 94001, 94002, 94003, 94004, 94005, 94006, 94007, 94008, 94009, 94010, 94011, 94012, 94013, 94014, 94015, 94016, 94017, 94018, 94019, 94020, 94032, 94099, 94100, 94101, 94102, 94103, 94104, 94105, 94106, 94107, 94108, 94109, 94110, 94111, 110592, 110593, 113664, 113665, 113666, 113667, 113668, 113669, 113670, 113671, 113672, 113673, 113674, 113675, 113676, 113677, 113678, 113679, 113680, 113681, 113682, 113683, 113684, 113685, 113686, 113687, 113688, 113689, 113690, 113691, 113692, 113693, 113694, 113695, 113696, 113697, 113698, 113699, 113700, 113701, 113702, 113703, 113704, 113705, 113706, 113707, 113708, 113709, 113710, 113711, 113712, 113713, 113714, 113715, 113716, 113717, 113718, 113719, 113720, 113721, 113722, 113723, 113724, 113725, 113726, 113727, 113728, 113729, 113730, 113731, 113732, 113733, 113734, 113735, 113736, 113737, 113738, 113739, 113740, 113741, 113742, 113743, 113744, 113745, 113746, 113747, 113748, 113749, 113750, 113751, 113752, 113753, 113754, 113755, 113756, 113757, 113758, 113759, 113760, 113761, 113762, 113763, 113764, 113765, 113766, 113767, 113768, 113769, 113770, 113776, 113777, 113778, 113779, 113780, 113781, 113782, 113783, 113784, 113785, 113786, 113787, 113788, 113792, 113793, 113794, 113795, 113796, 113797, 113798, 113799, 113800, 113808, 113809, 113810, 113811, 113812, 113813, 113814, 113815, 113816, 113817, 119808, 119809, 119810, 119811, 119812, 119813, 119814, 119815, 119816, 119817, 119818, 119819, 119820, 119821, 119822, 119823, 119824, 119825, 119826, 119827, 119828, 119829, 119830, 119831, 119832, 119833, 119834, 119835, 119836, 119837, 119838, 119839, 119840, 119841, 119842, 119843, 119844, 119845, 119846, 119847, 119848, 119849, 119850, 119851, 119852, 119853, 119854, 119855, 119856, 119857, 119858, 119859, 119860, 119861, 119862, 119863, 119864, 119865, 119866, 119867, 119868, 119869, 119870, 119871, 119872, 119873, 119874, 119875, 119876, 119877, 119878, 119879, 119880, 119881, 119882, 119883, 119884, 119885, 119886, 119887, 119888, 119889, 119890, 119891, 119892, 119894, 119895, 119896, 119897, 119898, 119899, 119900, 119901, 119902, 119903, 119904, 119905, 119906, 119907, 119908, 119909, 119910, 119911, 119912, 119913, 119914, 119915, 119916, 119917, 119918, 119919, 119920, 119921, 119922, 119923, 119924, 119925, 119926, 119927, 119928, 119929, 119930, 119931, 119932, 119933, 119934, 119935, 119936, 119937, 119938, 119939, 119940, 119941, 119942, 119943, 119944, 119945, 119946, 119947, 119948, 119949, 119950, 119951, 119952, 119953, 119954, 119955, 119956, 119957, 119958, 119959, 119960, 119961, 119962, 119963, 119964, 119966, 119967, 119970, 119973, 119974, 119977, 119978, 119979, 119980, 119982, 119983, 119984, 119985, 119986, 119987, 119988, 119989, 119990, 119991, 119992, 119993, 119995, 119997, 119998, 119999, 120000, 120001, 120002, 120003, 120005, 120006, 120007, 120008, 120009, 120010, 120011, 120012, 120013, 120014, 120015, 120016, 120017, 120018, 120019, 120020, 120021, 120022, 120023, 120024, 120025, 120026, 120027, 120028, 120029, 120030, 120031, 120032, 120033, 120034, 120035, 120036, 120037, 120038, 120039, 120040, 120041, 120042, 120043, 120044, 120045, 120046, 120047, 120048, 120049, 120050, 120051, 120052, 120053, 120054, 120055, 120056, 120057, 120058, 120059, 120060, 120061, 120062, 120063, 120064, 120065, 120066, 120067, 120068, 120069, 120071, 120072, 120073, 120074, 120077, 120078, 120079, 120080, 120081, 120082, 120083, 120084, 120086, 120087, 120088, 120089, 120090, 120091, 120092, 120094, 120095, 120096, 120097, 120098, 120099, 120100, 120101, 120102, 120103, 120104, 120105, 120106, 120107, 120108, 120109, 120110, 120111, 120112, 120113, 120114, 120115, 120116, 120117, 120118, 120119, 120120, 120121, 120123, 120124, 120125, 120126, 120128, 120129, 120130, 120131, 120132, 120134, 120138, 120139, 120140, 120141, 120142, 120143, 120144, 120146, 120147, 120148, 120149, 120150, 120151, 120152, 120153, 120154, 120155, 120156, 120157, 120158, 120159, 120160, 120161, 120162, 120163, 120164, 120165, 120166, 120167, 120168, 120169, 120170, 120171, 120172, 120173, 120174, 120175, 120176, 120177, 120178, 120179, 120180, 120181, 120182, 120183, 120184, 120185, 120186, 120187, 120188, 120189, 120190, 120191, 120192, 120193, 120194, 120195, 120196, 120197, 120198, 120199, 120200, 120201, 120202, 120203, 120204, 120205, 120206, 120207, 120208, 120209, 120210, 120211, 120212, 120213, 120214, 120215, 120216, 120217, 120218, 120219, 120220, 120221, 120222, 120223, 120224, 120225, 120226, 120227, 120228, 120229, 120230, 120231, 120232, 120233, 120234, 120235, 120236, 120237, 120238, 120239, 120240, 120241, 120242, 120243, 120244, 120245, 120246, 120247, 120248, 120249, 120250, 120251, 120252, 120253, 120254, 120255, 120256, 120257, 120258, 120259, 120260, 120261, 120262, 120263, 120264, 120265, 120266, 120267, 120268, 120269, 120270, 120271, 120272, 120273, 120274, 120275, 120276, 120277, 120278, 120279, 120280, 120281, 120282, 120283, 120284, 120285, 120286, 120287, 120288, 120289, 120290, 120291, 120292, 120293, 120294, 120295, 120296, 120297, 120298, 120299, 120300, 120301, 120302, 120303, 120304, 120305, 120306, 120307, 120308, 120309, 120310, 120311, 120312, 120313, 120314, 120315, 120316, 120317, 120318, 120319, 120320, 120321, 120322, 120323, 120324, 120325, 120326, 120327, 120328, 120329, 120330, 120331, 120332, 120333, 120334, 120335, 120336, 120337, 120338, 120339, 120340, 120341, 120342, 120343, 120344, 120345, 120346, 120347, 120348, 120349, 120350, 120351, 120352, 120353, 120354, 120355, 120356, 120357, 120358, 120359, 120360, 120361, 120362, 120363, 120364, 120365, 120366, 120367, 120368, 120369, 120370, 120371, 120372, 120373, 120374, 120375, 120376, 120377, 120378, 120379, 120380, 120381, 120382, 120383, 120384, 120385, 120386, 120387, 120388, 120389, 120390, 120391, 120392, 120393, 120394, 120395, 120396, 120397, 120398, 120399, 120400, 120401, 120402, 120403, 120404, 120405, 120406, 120407, 120408, 120409, 120410, 120411, 120412, 120413, 120414, 120415, 120416, 120417, 120418, 120419, 120420, 120421, 120422, 120423, 120424, 120425, 120426, 120427, 120428, 120429, 120430, 120431, 120432, 120433, 120434, 120435, 120436, 120437, 120438, 120439, 120440, 120441, 120442, 120443, 120444, 120445, 120446, 120447, 120448, 120449, 120450, 120451, 120452, 120453, 120454, 120455, 120456, 120457, 120458, 120459, 120460, 120461, 120462, 120463, 120464, 120465, 120466, 120467, 120468, 120469, 120470, 120471, 120472, 120473, 120474, 120475, 120476, 120477, 120478, 120479, 120480, 120481, 120482, 120483, 120484, 120485, 120488, 120489, 120490, 120491, 120492, 120493, 120494, 120495, 120496, 120497, 120498, 120499, 120500, 120501, 120502, 120503, 120504, 120505, 120506, 120507, 120508, 120509, 120510, 120511, 120512, 120514, 120515, 120516, 120517, 120518, 120519, 120520, 120521, 120522, 120523, 120524, 120525, 120526, 120527, 120528, 120529, 120530, 120531, 120532, 120533, 120534, 120535, 120536, 120537, 120538, 120540, 120541, 120542, 120543, 120544, 120545, 120546, 120547, 120548, 120549, 120550, 120551, 120552, 120553, 120554, 120555, 120556, 120557, 120558, 120559, 120560, 120561, 120562, 120563, 120564, 120565, 120566, 120567, 120568, 120569, 120570, 120572, 120573, 120574, 120575, 120576, 120577, 120578, 120579, 120580, 120581, 120582, 120583, 120584, 120585, 120586, 120587, 120588, 120589, 120590, 120591, 120592, 120593, 120594, 120595, 120596, 120598, 120599, 120600, 120601, 120602, 120603, 120604, 120605, 120606, 120607, 120608, 120609, 120610, 120611, 120612, 120613, 120614, 120615, 120616, 120617, 120618, 120619, 120620, 120621, 120622, 120623, 120624, 120625, 120626, 120627, 120628, 120630, 120631, 120632, 120633, 120634, 120635, 120636, 120637, 120638, 120639, 120640, 120641, 120642, 120643, 120644, 120645, 120646, 120647, 120648, 120649, 120650, 120651, 120652, 120653, 120654, 120656, 120657, 120658, 120659, 120660, 120661, 120662, 120663, 120664, 120665, 120666, 120667, 120668, 120669, 120670, 120671, 120672, 120673, 120674, 120675, 120676, 120677, 120678, 120679, 120680, 120681, 120682, 120683, 120684, 120685, 120686, 120688, 120689, 120690, 120691, 120692, 120693, 120694, 120695, 120696, 120697, 120698, 120699, 120700, 120701, 120702, 120703, 120704, 120705, 120706, 120707, 120708, 120709, 120710, 120711, 120712, 120714, 120715, 120716, 120717, 120718, 120719, 120720, 120721, 120722, 120723, 120724, 120725, 120726, 120727, 120728, 120729, 120730, 120731, 120732, 120733, 120734, 120735, 120736, 120737, 120738, 120739, 120740, 120741, 120742, 120743, 120744, 120746, 120747, 120748, 120749, 120750, 120751, 120752, 120753, 120754, 120755, 120756, 120757, 120758, 120759, 120760, 120761, 120762, 120763, 120764, 120765, 120766, 120767, 120768, 120769, 120770, 120772, 120773, 120774, 120775, 120776, 120777, 120778, 120779, 124928, 124929, 124930, 124931, 124932, 124933, 124934, 124935, 124936, 124937, 124938, 124939, 124940, 124941, 124942, 124943, 124944, 124945, 124946, 124947, 124948, 124949, 124950, 124951, 124952, 124953, 124954, 124955, 124956, 124957, 124958, 124959, 124960, 124961, 124962, 124963, 124964, 124965, 124966, 124967, 124968, 124969, 124970, 124971, 124972, 124973, 124974, 124975, 124976, 124977, 124978, 124979, 124980, 124981, 124982, 124983, 124984, 124985, 124986, 124987, 124988, 124989, 124990, 124991, 124992, 124993, 124994, 124995, 124996, 124997, 124998, 124999, 125000, 125001, 125002, 125003, 125004, 125005, 125006, 125007, 125008, 125009, 125010, 125011, 125012, 125013, 125014, 125015, 125016, 125017, 125018, 125019, 125020, 125021, 125022, 125023, 125024, 125025, 125026, 125027, 125028, 125029, 125030, 125031, 125032, 125033, 125034, 125035, 125036, 125037, 125038, 125039, 125040, 125041, 125042, 125043, 125044, 125045, 125046, 125047, 125048, 125049, 125050, 125051, 125052, 125053, 125054, 125055, 125056, 125057, 125058, 125059, 125060, 125061, 125062, 125063, 125064, 125065, 125066, 125067, 125068, 125069, 125070, 125071, 125072, 125073, 125074, 125075, 125076, 125077, 125078, 125079, 125080, 125081, 125082, 125083, 125084, 125085, 125086, 125087, 125088, 125089, 125090, 125091, 125092, 125093, 125094, 125095, 125096, 125097, 125098, 125099, 125100, 125101, 125102, 125103, 125104, 125105, 125106, 125107, 125108, 125109, 125110, 125111, 125112, 125113, 125114, 125115, 125116, 125117, 125118, 125119, 125120, 125121, 125122, 125123, 125124, 126464, 126465, 126466, 126467, 126469, 126470, 126471, 126472, 126473, 126474, 126475, 126476, 126477, 126478, 126479, 126480, 126481, 126482, 126483, 126484, 126485, 126486, 126487, 126488, 126489, 126490, 126491, 126492, 126493, 126494, 126495, 126497, 126498, 126500, 126503, 126505, 126506, 126507, 126508, 126509, 126510, 126511, 126512, 126513, 126514, 126516, 126517, 126518, 126519, 126521, 126523, 126530, 126535, 126537, 126539, 126541, 126542, 126543, 126545, 126546, 126548, 126551, 126553, 126555, 126557, 126559, 126561, 126562, 126564, 126567, 126568, 126569, 126570, 126572, 126573, 126574, 126575, 126576, 126577, 126578, 126580, 126581, 126582, 126583, 126585, 126586, 126587, 126588, 126590, 126592, 126593, 126594, 126595, 126596, 126597, 126598, 126599, 126600, 126601, 126603, 126604, 126605, 126606, 126607, 126608, 126609, 126610, 126611, 126612, 126613, 126614, 126615, 126616, 126617, 126618, 126619, 126625, 126626, 126627, 126629, 126630, 126631, 126632, 126633, 126635, 126636, 126637, 126638, 126639, 126640, 126641, 126642, 126643, 126644, 126645, 126646, 126647, 126648, 126649, 126650, 126651, 131072, 173782, 173824, 177972, 177984, 178205, 178208, 183969, 194560, 194561, 194562, 194563, 194564, 194565, 194566, 194567, 194568, 194569, 194570, 194571, 194572, 194573, 194574, 194575, 194576, 194577, 194578, 194579, 194580, 194581, 194582, 194583, 194584, 194585, 194586, 194587, 194588, 194589, 194590, 194591, 194592, 194593, 194594, 194595, 194596, 194597, 194598, 194599, 194600, 194601, 194602, 194603, 194604, 194605, 194606, 194607, 194608, 194609, 194610, 194611, 194612, 194613, 194614, 194615, 194616, 194617, 194618, 194619, 194620, 194621, 194622, 194623, 194624, 194625, 194626, 194627, 194628, 194629, 194630, 194631, 194632, 194633, 194634, 194635, 194636, 194637, 194638, 194639, 194640, 194641, 194642, 194643, 194644, 194645, 194646, 194647, 194648, 194649, 194650, 194651, 194652, 194653, 194654, 194655, 194656, 194657, 194658, 194659, 194660, 194661, 194662, 194663, 194664, 194665, 194666, 194667, 194668, 194669, 194670, 194671, 194672, 194673, 194674, 194675, 194676, 194677, 194678, 194679, 194680, 194681, 194682, 194683, 194684, 194685, 194686, 194687, 194688, 194689, 194690, 194691, 194692, 194693, 194694, 194695, 194696, 194697, 194698, 194699, 194700, 194701, 194702, 194703, 194704, 194705, 194706, 194707, 194708, 194709, 194710, 194711, 194712, 194713, 194714, 194715, 194716, 194717, 194718, 194719, 194720, 194721, 194722, 194723, 194724, 194725, 194726, 194727, 194728, 194729, 194730, 194731, 194732, 194733, 194734, 194735, 194736, 194737, 194738, 194739, 194740, 194741, 194742, 194743, 194744, 194745, 194746, 194747, 194748, 194749, 194750, 194751, 194752, 194753, 194754, 194755, 194756, 194757, 194758, 194759, 194760, 194761, 194762, 194763, 194764, 194765, 194766, 194767, 194768, 194769, 194770, 194771, 194772, 194773, 194774, 194775, 194776, 194777, 194778, 194779, 194780, 194781, 194782, 194783, 194784, 194785, 194786, 194787, 194788, 194789, 194790, 194791, 194792, 194793, 194794, 194795, 194796, 194797, 194798, 194799, 194800, 194801, 194802, 194803, 194804, 194805, 194806, 194807, 194808, 194809, 194810, 194811, 194812, 194813, 194814, 194815, 194816, 194817, 194818, 194819, 194820, 194821, 194822, 194823, 194824, 194825, 194826, 194827, 194828, 194829, 194830, 194831, 194832, 194833, 194834, 194835, 194836, 194837, 194838, 194839, 194840, 194841, 194842, 194843, 194844, 194845, 194846, 194847, 194848, 194849, 194850, 194851, 194852, 194853, 194854, 194855, 194856, 194857, 194858, 194859, 194860, 194861, 194862, 194863, 194864, 194865, 194866, 194867, 194868, 194869, 194870, 194871, 194872, 194873, 194874, 194875, 194876, 194877, 194878, 194879, 194880, 194881, 194882, 194883, 194884, 194885, 194886, 194887, 194888, 194889, 194890, 194891, 194892, 194893, 194894, 194895, 194896, 194897, 194898, 194899, 194900, 194901, 194902, 194903, 194904, 194905, 194906, 194907, 194908, 194909, 194910, 194911, 194912, 194913, 194914, 194915, 194916, 194917, 194918, 194919, 194920, 194921, 194922, 194923, 194924, 194925, 194926, 194927, 194928, 194929, 194930, 194931, 194932, 194933, 194934, 194935, 194936, 194937, 194938, 194939, 194940, 194941, 194942, 194943, 194944, 194945, 194946, 194947, 194948, 194949, 194950, 194951, 194952, 194953, 194954, 194955, 194956, 194957, 194958, 194959, 194960, 194961, 194962, 194963, 194964, 194965, 194966, 194967, 194968, 194969, 194970, 194971, 194972, 194973, 194974, 194975, 194976, 194977, 194978, 194979, 194980, 194981, 194982, 194983, 194984, 194985, 194986, 194987, 194988, 194989, 194990, 194991, 194992, 194993, 194994, 194995, 194996, 194997, 194998, 194999, 195000, 195001, 195002, 195003, 195004, 195005, 195006, 195007, 195008, 195009, 195010, 195011, 195012, 195013, 195014, 195015, 195016, 195017, 195018, 195019, 195020, 195021, 195022, 195023, 195024, 195025, 195026, 195027, 195028, 195029, 195030, 195031, 195032, 195033, 195034, 195035, 195036, 195037, 195038, 195039, 195040, 195041, 195042, 195043, 195044, 195045, 195046, 195047, 195048, 195049, 195050, 195051, 195052, 195053, 195054, 195055, 195056, 195057, 195058, 195059, 195060, 195061, 195062, 195063, 195064, 195065, 195066, 195067, 195068, 195069, 195070, 195071, 195072, 195073, 195074, 195075, 195076, 195077, 195078, 195079, 195080, 195081, 195082, 195083, 195084, 195085, 195086, 195087, 195088, 195089, 195090, 195091, 195092, 195093, 195094, 195095, 195096, 195097, 195098, 195099, 195100, 195101];\n","/*\n * List of Unicode code that are flagged as mark.\n *\n * Contains Unicode code of:\n * - Mc = Mark, spacing combining\n * - Me = Mark, enclosing\n * - Mn = Mark, nonspacing\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Mc;|;Me;|;Mn;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.M = [768, 769, 770, 771, 772, 773, 774, 775, 776, 777, 778, 779, 780, 781, 782, 783, 784, 785, 786, 787, 788, 789, 790, 791, 792, 793, 794, 795, 796, 797, 798, 799, 800, 801, 802, 803, 804, 805, 806, 807, 808, 809, 810, 811, 812, 813, 814, 815, 816, 817, 818, 819, 820, 821, 822, 823, 824, 825, 826, 827, 828, 829, 830, 831, 832, 833, 834, 835, 836, 837, 838, 839, 840, 841, 842, 843, 844, 845, 846, 847, 848, 849, 850, 851, 852, 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, 863, 864, 865, 866, 867, 868, 869, 870, 871, 872, 873, 874, 875, 876, 877, 878, 879, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1425, 1426, 1427, 1428, 1429, 1430, 1431, 1432, 1433, 1434, 1435, 1436, 1437, 1438, 1439, 1440, 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1457, 1458, 1459, 1460, 1461, 1462, 1463, 1464, 1465, 1466, 1467, 1468, 1469, 1471, 1473, 1474, 1476, 1477, 1479, 1552, 1553, 1554, 1555, 1556, 1557, 1558, 1559, 1560, 1561, 1562, 1611, 1612, 1613, 1614, 1615, 1616, 1617, 1618, 1619, 1620, 1621, 1622, 1623, 1624, 1625, 1626, 1627, 1628, 1629, 1630, 1631, 1648, 1750, 1751, 1752, 1753, 1754, 1755, 1756, 1759, 1760, 1761, 1762, 1763, 1764, 1767, 1768, 1770, 1771, 1772, 1773, 1809, 1840, 1841, 1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851, 1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861, 1862, 1863, 1864, 1865, 1866, 1958, 1959, 1960, 1961, 1962, 1963, 1964, 1965, 1966, 1967, 1968, 2027, 2028, 2029, 2030, 2031, 2032, 2033, 2034, 2035, 2070, 2071, 2072, 2073, 2075, 2076, 2077, 2078, 2079, 2080, 2081, 2082, 2083, 2085, 2086, 2087, 2089, 2090, 2091, 2092, 2093, 2137, 2138, 2139, 2275, 2276, 2277, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290, 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300, 2301, 2302, 2303, 2304, 2305, 2306, 2307, 2362, 2363, 2364, 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375, 2376, 2377, 2378, 2379, 2380, 2381, 2382, 2383, 2385, 2386, 2387, 2388, 2389, 2390, 2391, 2402, 2403, 2433, 2434, 2435, 2492, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2503, 2504, 2507, 2508, 2509, 2519, 2530, 2531, 2561, 2562, 2563, 2620, 2622, 2623, 2624, 2625, 2626, 2631, 2632, 2635, 2636, 2637, 2641, 2672, 2673, 2677, 2689, 2690, 2691, 2748, 2750, 2751, 2752, 2753, 2754, 2755, 2756, 2757, 2759, 2760, 2761, 2763, 2764, 2765, 2786, 2787, 2817, 2818, 2819, 2876, 2878, 2879, 2880, 2881, 2882, 2883, 2884, 2887, 2888, 2891, 2892, 2893, 2902, 2903, 2914, 2915, 2946, 3006, 3007, 3008, 3009, 3010, 3014, 3015, 3016, 3018, 3019, 3020, 3021, 3031, 3072, 3073, 3074, 3075, 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3142, 3143, 3144, 3146, 3147, 3148, 3149, 3157, 3158, 3170, 3171, 3201, 3202, 3203, 3260, 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3270, 3271, 3272, 3274, 3275, 3276, 3277, 3285, 3286, 3298, 3299, 3329, 3330, 3331, 3390, 3391, 3392, 3393, 3394, 3395, 3396, 3398, 3399, 3400, 3402, 3403, 3404, 3405, 3415, 3426, 3427, 3458, 3459, 3530, 3535, 3536, 3537, 3538, 3539, 3540, 3542, 3544, 3545, 3546, 3547, 3548, 3549, 3550, 3551, 3570, 3571, 3633, 3636, 3637, 3638, 3639, 3640, 3641, 3642, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3761, 3764, 3765, 3766, 3767, 3768, 3769, 3771, 3772, 3784, 3785, 3786, 3787, 3788, 3789, 3864, 3865, 3893, 3895, 3897, 3902, 3903, 3953, 3954, 3955, 3956, 3957, 3958, 3959, 3960, 3961, 3962, 3963, 3964, 3965, 3966, 3967, 3968, 3969, 3970, 3971, 3972, 3974, 3975, 3981, 3982, 3983, 3984, 3985, 3986, 3987, 3988, 3989, 3990, 3991, 3993, 3994, 3995, 3996, 3997, 3998, 3999, 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4008, 4009, 4010, 4011, 4012, 4013, 4014, 4015, 4016, 4017, 4018, 4019, 4020, 4021, 4022, 4023, 4024, 4025, 4026, 4027, 4028, 4038, 4139, 4140, 4141, 4142, 4143, 4144, 4145, 4146, 4147, 4148, 4149, 4150, 4151, 4152, 4153, 4154, 4155, 4156, 4157, 4158, 4182, 4183, 4184, 4185, 4190, 4191, 4192, 4194, 4195, 4196, 4199, 4200, 4201, 4202, 4203, 4204, 4205, 4209, 4210, 4211, 4212, 4226, 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4235, 4236, 4237, 4239, 4250, 4251, 4252, 4253, 4957, 4958, 4959, 5906, 5907, 5908, 5938, 5939, 5940, 5970, 5971, 6002, 6003, 6068, 6069, 6070, 6071, 6072, 6073, 6074, 6075, 6076, 6077, 6078, 6079, 6080, 6081, 6082, 6083, 6084, 6085, 6086, 6087, 6088, 6089, 6090, 6091, 6092, 6093, 6094, 6095, 6096, 6097, 6098, 6099, 6109, 6155, 6156, 6157, 6313, 6432, 6433, 6434, 6435, 6436, 6437, 6438, 6439, 6440, 6441, 6442, 6443, 6448, 6449, 6450, 6451, 6452, 6453, 6454, 6455, 6456, 6457, 6458, 6459, 6679, 6680, 6681, 6682, 6683, 6741, 6742, 6743, 6744, 6745, 6746, 6747, 6748, 6749, 6750, 6752, 6753, 6754, 6755, 6756, 6757, 6758, 6759, 6760, 6761, 6762, 6763, 6764, 6765, 6766, 6767, 6768, 6769, 6770, 6771, 6772, 6773, 6774, 6775, 6776, 6777, 6778, 6779, 6780, 6783, 6832, 6833, 6834, 6835, 6836, 6837, 6838, 6839, 6840, 6841, 6842, 6843, 6844, 6845, 6846, 6912, 6913, 6914, 6915, 6916, 6964, 6965, 6966, 6967, 6968, 6969, 6970, 6971, 6972, 6973, 6974, 6975, 6976, 6977, 6978, 6979, 6980, 7019, 7020, 7021, 7022, 7023, 7024, 7025, 7026, 7027, 7040, 7041, 7042, 7073, 7074, 7075, 7076, 7077, 7078, 7079, 7080, 7081, 7082, 7083, 7084, 7085, 7142, 7143, 7144, 7145, 7146, 7147, 7148, 7149, 7150, 7151, 7152, 7153, 7154, 7155, 7204, 7205, 7206, 7207, 7208, 7209, 7210, 7211, 7212, 7213, 7214, 7215, 7216, 7217, 7218, 7219, 7220, 7221, 7222, 7223, 7376, 7377, 7378, 7380, 7381, 7382, 7383, 7384, 7385, 7386, 7387, 7388, 7389, 7390, 7391, 7392, 7393, 7394, 7395, 7396, 7397, 7398, 7399, 7400, 7405, 7410, 7411, 7412, 7416, 7417, 7616, 7617, 7618, 7619, 7620, 7621, 7622, 7623, 7624, 7625, 7626, 7627, 7628, 7629, 7630, 7631, 7632, 7633, 7634, 7635, 7636, 7637, 7638, 7639, 7640, 7641, 7642, 7643, 7644, 7645, 7646, 7647, 7648, 7649, 7650, 7651, 7652, 7653, 7654, 7655, 7656, 7657, 7658, 7659, 7660, 7661, 7662, 7663, 7664, 7665, 7666, 7667, 7668, 7669, 7676, 7677, 7678, 7679, 8400, 8401, 8402, 8403, 8404, 8405, 8406, 8407, 8408, 8409, 8410, 8411, 8412, 8413, 8414, 8415, 8416, 8417, 8418, 8419, 8420, 8421, 8422, 8423, 8424, 8425, 8426, 8427, 8428, 8429, 8430, 8431, 8432, 11503, 11504, 11505, 11647, 11744, 11745, 11746, 11747, 11748, 11749, 11750, 11751, 11752, 11753, 11754, 11755, 11756, 11757, 11758, 11759, 11760, 11761, 11762, 11763, 11764, 11765, 11766, 11767, 11768, 11769, 11770, 11771, 11772, 11773, 11774, 11775, 12330, 12331, 12332, 12333, 12334, 12335, 12441, 12442, 42607, 42608, 42609, 42610, 42612, 42613, 42614, 42615, 42616, 42617, 42618, 42619, 42620, 42621, 42654, 42655, 42736, 42737, 43010, 43014, 43019, 43043, 43044, 43045, 43046, 43047, 43136, 43137, 43188, 43189, 43190, 43191, 43192, 43193, 43194, 43195, 43196, 43197, 43198, 43199, 43200, 43201, 43202, 43203, 43204, 43232, 43233, 43234, 43235, 43236, 43237, 43238, 43239, 43240, 43241, 43242, 43243, 43244, 43245, 43246, 43247, 43248, 43249, 43302, 43303, 43304, 43305, 43306, 43307, 43308, 43309, 43335, 43336, 43337, 43338, 43339, 43340, 43341, 43342, 43343, 43344, 43345, 43346, 43347, 43392, 43393, 43394, 43395, 43443, 43444, 43445, 43446, 43447, 43448, 43449, 43450, 43451, 43452, 43453, 43454, 43455, 43456, 43493, 43561, 43562, 43563, 43564, 43565, 43566, 43567, 43568, 43569, 43570, 43571, 43572, 43573, 43574, 43587, 43596, 43597, 43643, 43644, 43645, 43696, 43698, 43699, 43700, 43703, 43704, 43710, 43711, 43713, 43755, 43756, 43757, 43758, 43759, 43765, 43766, 44003, 44004, 44005, 44006, 44007, 44008, 44009, 44010, 44012, 44013, 64286, 65024, 65025, 65026, 65027, 65028, 65029, 65030, 65031, 65032, 65033, 65034, 65035, 65036, 65037, 65038, 65039, 65056, 65057, 65058, 65059, 65060, 65061, 65062, 65063, 65064, 65065, 65066, 65067, 65068, 65069, 65070, 65071, 66045, 66272, 66422, 66423, 66424, 66425, 66426, 68097, 68098, 68099, 68101, 68102, 68108, 68109, 68110, 68111, 68152, 68153, 68154, 68159, 68325, 68326, 69632, 69633, 69634, 69688, 69689, 69690, 69691, 69692, 69693, 69694, 69695, 69696, 69697, 69698, 69699, 69700, 69701, 69702, 69759, 69760, 69761, 69762, 69808, 69809, 69810, 69811, 69812, 69813, 69814, 69815, 69816, 69817, 69818, 69888, 69889, 69890, 69927, 69928, 69929, 69930, 69931, 69932, 69933, 69934, 69935, 69936, 69937, 69938, 69939, 69940, 70003, 70016, 70017, 70018, 70067, 70068, 70069, 70070, 70071, 70072, 70073, 70074, 70075, 70076, 70077, 70078, 70079, 70080, 70090, 70091, 70092, 70188, 70189, 70190, 70191, 70192, 70193, 70194, 70195, 70196, 70197, 70198, 70199, 70367, 70368, 70369, 70370, 70371, 70372, 70373, 70374, 70375, 70376, 70377, 70378, 70400, 70401, 70402, 70403, 70460, 70462, 70463, 70464, 70465, 70466, 70467, 70468, 70471, 70472, 70475, 70476, 70477, 70487, 70498, 70499, 70502, 70503, 70504, 70505, 70506, 70507, 70508, 70512, 70513, 70514, 70515, 70516, 70832, 70833, 70834, 70835, 70836, 70837, 70838, 70839, 70840, 70841, 70842, 70843, 70844, 70845, 70846, 70847, 70848, 70849, 70850, 70851, 71087, 71088, 71089, 71090, 71091, 71092, 71093, 71096, 71097, 71098, 71099, 71100, 71101, 71102, 71103, 71104, 71132, 71133, 71216, 71217, 71218, 71219, 71220, 71221, 71222, 71223, 71224, 71225, 71226, 71227, 71228, 71229, 71230, 71231, 71232, 71339, 71340, 71341, 71342, 71343, 71344, 71345, 71346, 71347, 71348, 71349, 71350, 71351, 71453, 71454, 71455, 71456, 71457, 71458, 71459, 71460, 71461, 71462, 71463, 71464, 71465, 71466, 71467, 92912, 92913, 92914, 92915, 92916, 92976, 92977, 92978, 92979, 92980, 92981, 92982, 94033, 94034, 94035, 94036, 94037, 94038, 94039, 94040, 94041, 94042, 94043, 94044, 94045, 94046, 94047, 94048, 94049, 94050, 94051, 94052, 94053, 94054, 94055, 94056, 94057, 94058, 94059, 94060, 94061, 94062, 94063, 94064, 94065, 94066, 94067, 94068, 94069, 94070, 94071, 94072, 94073, 94074, 94075, 94076, 94077, 94078, 94095, 94096, 94097, 94098, 113821, 113822, 119141, 119142, 119143, 119144, 119145, 119149, 119150, 119151, 119152, 119153, 119154, 119163, 119164, 119165, 119166, 119167, 119168, 119169, 119170, 119173, 119174, 119175, 119176, 119177, 119178, 119179, 119210, 119211, 119212, 119213, 119362, 119363, 119364, 121344, 121345, 121346, 121347, 121348, 121349, 121350, 121351, 121352, 121353, 121354, 121355, 121356, 121357, 121358, 121359, 121360, 121361, 121362, 121363, 121364, 121365, 121366, 121367, 121368, 121369, 121370, 121371, 121372, 121373, 121374, 121375, 121376, 121377, 121378, 121379, 121380, 121381, 121382, 121383, 121384, 121385, 121386, 121387, 121388, 121389, 121390, 121391, 121392, 121393, 121394, 121395, 121396, 121397, 121398, 121403, 121404, 121405, 121406, 121407, 121408, 121409, 121410, 121411, 121412, 121413, 121414, 121415, 121416, 121417, 121418, 121419, 121420, 121421, 121422, 121423, 121424, 121425, 121426, 121427, 121428, 121429, 121430, 121431, 121432, 121433, 121434, 121435, 121436, 121437, 121438, 121439, 121440, 121441, 121442, 121443, 121444, 121445, 121446, 121447, 121448, 121449, 121450, 121451, 121452, 121461, 121476, 121499, 121500, 121501, 121502, 121503, 121505, 121506, 121507, 121508, 121509, 121510, 121511, 121512, 121513, 121514, 121515, 121516, 121517, 121518, 121519, 125136, 125137, 125138, 125139, 125140, 125141, 125142, 917760, 917761, 917762, 917763, 917764, 917765, 917766, 917767, 917768, 917769, 917770, 917771, 917772, 917773, 917774, 917775, 917776, 917777, 917778, 917779, 917780, 917781, 917782, 917783, 917784, 917785, 917786, 917787, 917788, 917789, 917790, 917791, 917792, 917793, 917794, 917795, 917796, 917797, 917798, 917799, 917800, 917801, 917802, 917803, 917804, 917805, 917806, 917807, 917808, 917809, 917810, 917811, 917812, 917813, 917814, 917815, 917816, 917817, 917818, 917819, 917820, 917821, 917822, 917823, 917824, 917825, 917826, 917827, 917828, 917829, 917830, 917831, 917832, 917833, 917834, 917835, 917836, 917837, 917838, 917839, 917840, 917841, 917842, 917843, 917844, 917845, 917846, 917847, 917848, 917849, 917850, 917851, 917852, 917853, 917854, 917855, 917856, 917857, 917858, 917859, 917860, 917861, 917862, 917863, 917864, 917865, 917866, 917867, 917868, 917869, 917870, 917871, 917872, 917873, 917874, 917875, 917876, 917877, 917878, 917879, 917880, 917881, 917882, 917883, 917884, 917885, 917886, 917887, 917888, 917889, 917890, 917891, 917892, 917893, 917894, 917895, 917896, 917897, 917898, 917899, 917900, 917901, 917902, 917903, 917904, 917905, 917906, 917907, 917908, 917909, 917910, 917911, 917912, 917913, 917914, 917915, 917916, 917917, 917918, 917919, 917920, 917921, 917922, 917923, 917924, 917925, 917926, 917927, 917928, 917929, 917930, 917931, 917932, 917933, 917934, 917935, 917936, 917937, 917938, 917939, 917940, 917941, 917942, 917943, 917944, 917945, 917946, 917947, 917948, 917949, 917950, 917951, 917952, 917953, 917954, 917955, 917956, 917957, 917958, 917959, 917960, 917961, 917962, 917963, 917964, 917965, 917966, 917967, 917968, 917969, 917970, 917971, 917972, 917973, 917974, 917975, 917976, 917977, 917978, 917979, 917980, 917981, 917982, 917983, 917984, 917985, 917986, 917987, 917988, 917989, 917990, 917991, 917992, 917993, 917994, 917995, 917996, 917997, 917998, 917999];\n","/*\n * List of Unicode code that are flagged as number.\n *\n * Contains Unicode code of:\n * - Nd = Number, decimal digit\n * - Nl = Number, letter\n * - No = Number, other\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Nd;|;Nl;|;No;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.N = [48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 178, 179, 185, 188, 189, 190, 1632, 1633, 1634, 1635, 1636, 1637, 1638, 1639, 1640, 1641, 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 2406, 2407, 2408, 2409, 2410, 2411, 2412, 2413, 2414, 2415, 2534, 2535, 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2548, 2549, 2550, 2551, 2552, 2553, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799, 2918, 2919, 2920, 2921, 2922, 2923, 2924, 2925, 2926, 2927, 2930, 2931, 2932, 2933, 2934, 2935, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053, 3054, 3055, 3056, 3057, 3058, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182, 3183, 3192, 3193, 3194, 3195, 3196, 3197, 3198, 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311, 3430, 3431, 3432, 3433, 3434, 3435, 3436, 3437, 3438, 3439, 3440, 3441, 3442, 3443, 3444, 3445, 3558, 3559, 3560, 3561, 3562, 3563, 3564, 3565, 3566, 3567, 3664, 3665, 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3792, 3793, 3794, 3795, 3796, 3797, 3798, 3799, 3800, 3801, 3872, 3873, 3874, 3875, 3876, 3877, 3878, 3879, 3880, 3881, 3882, 3883, 3884, 3885, 3886, 3887, 3888, 3889, 3890, 3891, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4240, 4241, 4242, 4243, 4244, 4245, 4246, 4247, 4248, 4249, 4969, 4970, 4971, 4972, 4973, 4974, 4975, 4976, 4977, 4978, 4979, 4980, 4981, 4982, 4983, 4984, 4985, 4986, 4987, 4988, 5870, 5871, 5872, 6112, 6113, 6114, 6115, 6116, 6117, 6118, 6119, 6120, 6121, 6128, 6129, 6130, 6131, 6132, 6133, 6134, 6135, 6136, 6137, 6160, 6161, 6162, 6163, 6164, 6165, 6166, 6167, 6168, 6169, 6470, 6471, 6472, 6473, 6474, 6475, 6476, 6477, 6478, 6479, 6608, 6609, 6610, 6611, 6612, 6613, 6614, 6615, 6616, 6617, 6618, 6784, 6785, 6786, 6787, 6788, 6789, 6790, 6791, 6792, 6793, 6800, 6801, 6802, 6803, 6804, 6805, 6806, 6807, 6808, 6809, 6992, 6993, 6994, 6995, 6996, 6997, 6998, 6999, 7000, 7001, 7088, 7089, 7090, 7091, 7092, 7093, 7094, 7095, 7096, 7097, 7232, 7233, 7234, 7235, 7236, 7237, 7238, 7239, 7240, 7241, 7248, 7249, 7250, 7251, 7252, 7253, 7254, 7255, 7256, 7257, 8304, 8308, 8309, 8310, 8311, 8312, 8313, 8320, 8321, 8322, 8323, 8324, 8325, 8326, 8327, 8328, 8329, 8528, 8529, 8530, 8531, 8532, 8533, 8534, 8535, 8536, 8537, 8538, 8539, 8540, 8541, 8542, 8543, 8544, 8545, 8546, 8547, 8548, 8549, 8550, 8551, 8552, 8553, 8554, 8555, 8556, 8557, 8558, 8559, 8560, 8561, 8562, 8563, 8564, 8565, 8566, 8567, 8568, 8569, 8570, 8571, 8572, 8573, 8574, 8575, 8576, 8577, 8578, 8581, 8582, 8583, 8584, 8585, 9312, 9313, 9314, 9315, 9316, 9317, 9318, 9319, 9320, 9321, 9322, 9323, 9324, 9325, 9326, 9327, 9328, 9329, 9330, 9331, 9332, 9333, 9334, 9335, 9336, 9337, 9338, 9339, 9340, 9341, 9342, 9343, 9344, 9345, 9346, 9347, 9348, 9349, 9350, 9351, 9352, 9353, 9354, 9355, 9356, 9357, 9358, 9359, 9360, 9361, 9362, 9363, 9364, 9365, 9366, 9367, 9368, 9369, 9370, 9371, 9450, 9451, 9452, 9453, 9454, 9455, 9456, 9457, 9458, 9459, 9460, 9461, 9462, 9463, 9464, 9465, 9466, 9467, 9468, 9469, 9470, 9471, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 11517, 12295, 12321, 12322, 12323, 12324, 12325, 12326, 12327, 12328, 12329, 12344, 12345, 12346, 12690, 12691, 12692, 12693, 12832, 12833, 12834, 12835, 12836, 12837, 12838, 12839, 12840, 12841, 12872, 12873, 12874, 12875, 12876, 12877, 12878, 12879, 12881, 12882, 12883, 12884, 12885, 12886, 12887, 12888, 12889, 12890, 12891, 12892, 12893, 12894, 12895, 12928, 12929, 12930, 12931, 12932, 12933, 12934, 12935, 12936, 12937, 12977, 12978, 12979, 12980, 12981, 12982, 12983, 12984, 12985, 12986, 12987, 12988, 12989, 12990, 12991, 42528, 42529, 42530, 42531, 42532, 42533, 42534, 42535, 42536, 42537, 42726, 42727, 42728, 42729, 42730, 42731, 42732, 42733, 42734, 42735, 43056, 43057, 43058, 43059, 43060, 43061, 43216, 43217, 43218, 43219, 43220, 43221, 43222, 43223, 43224, 43225, 43264, 43265, 43266, 43267, 43268, 43269, 43270, 43271, 43272, 43273, 43472, 43473, 43474, 43475, 43476, 43477, 43478, 43479, 43480, 43481, 43504, 43505, 43506, 43507, 43508, 43509, 43510, 43511, 43512, 43513, 43600, 43601, 43602, 43603, 43604, 43605, 43606, 43607, 43608, 43609, 44016, 44017, 44018, 44019, 44020, 44021, 44022, 44023, 44024, 44025, 65296, 65297, 65298, 65299, 65300, 65301, 65302, 65303, 65304, 65305, 65799, 65800, 65801, 65802, 65803, 65804, 65805, 65806, 65807, 65808, 65809, 65810, 65811, 65812, 65813, 65814, 65815, 65816, 65817, 65818, 65819, 65820, 65821, 65822, 65823, 65824, 65825, 65826, 65827, 65828, 65829, 65830, 65831, 65832, 65833, 65834, 65835, 65836, 65837, 65838, 65839, 65840, 65841, 65842, 65843, 65856, 65857, 65858, 65859, 65860, 65861, 65862, 65863, 65864, 65865, 65866, 65867, 65868, 65869, 65870, 65871, 65872, 65873, 65874, 65875, 65876, 65877, 65878, 65879, 65880, 65881, 65882, 65883, 65884, 65885, 65886, 65887, 65888, 65889, 65890, 65891, 65892, 65893, 65894, 65895, 65896, 65897, 65898, 65899, 65900, 65901, 65902, 65903, 65904, 65905, 65906, 65907, 65908, 65909, 65910, 65911, 65912, 65930, 65931, 66273, 66274, 66275, 66276, 66277, 66278, 66279, 66280, 66281, 66282, 66283, 66284, 66285, 66286, 66287, 66288, 66289, 66290, 66291, 66292, 66293, 66294, 66295, 66296, 66297, 66298, 66299, 66336, 66337, 66338, 66339, 66369, 66378, 66513, 66514, 66515, 66516, 66517, 66720, 66721, 66722, 66723, 66724, 66725, 66726, 66727, 66728, 66729, 67672, 67673, 67674, 67675, 67676, 67677, 67678, 67679, 67705, 67706, 67707, 67708, 67709, 67710, 67711, 67751, 67752, 67753, 67754, 67755, 67756, 67757, 67758, 67759, 67835, 67836, 67837, 67838, 67839, 67862, 67863, 67864, 67865, 67866, 67867, 68028, 68029, 68032, 68033, 68034, 68035, 68036, 68037, 68038, 68039, 68040, 68041, 68042, 68043, 68044, 68045, 68046, 68047, 68050, 68051, 68052, 68053, 68054, 68055, 68056, 68057, 68058, 68059, 68060, 68061, 68062, 68063, 68064, 68065, 68066, 68067, 68068, 68069, 68070, 68071, 68072, 68073, 68074, 68075, 68076, 68077, 68078, 68079, 68080, 68081, 68082, 68083, 68084, 68085, 68086, 68087, 68088, 68089, 68090, 68091, 68092, 68093, 68094, 68095, 68160, 68161, 68162, 68163, 68164, 68165, 68166, 68167, 68221, 68222, 68253, 68254, 68255, 68331, 68332, 68333, 68334, 68335, 68440, 68441, 68442, 68443, 68444, 68445, 68446, 68447, 68472, 68473, 68474, 68475, 68476, 68477, 68478, 68479, 68521, 68522, 68523, 68524, 68525, 68526, 68527, 68858, 68859, 68860, 68861, 68862, 68863, 69216, 69217, 69218, 69219, 69220, 69221, 69222, 69223, 69224, 69225, 69226, 69227, 69228, 69229, 69230, 69231, 69232, 69233, 69234, 69235, 69236, 69237, 69238, 69239, 69240, 69241, 69242, 69243, 69244, 69245, 69246, 69714, 69715, 69716, 69717, 69718, 69719, 69720, 69721, 69722, 69723, 69724, 69725, 69726, 69727, 69728, 69729, 69730, 69731, 69732, 69733, 69734, 69735, 69736, 69737, 69738, 69739, 69740, 69741, 69742, 69743, 69872, 69873, 69874, 69875, 69876, 69877, 69878, 69879, 69880, 69881, 69942, 69943, 69944, 69945, 69946, 69947, 69948, 69949, 69950, 69951, 70096, 70097, 70098, 70099, 70100, 70101, 70102, 70103, 70104, 70105, 70113, 70114, 70115, 70116, 70117, 70118, 70119, 70120, 70121, 70122, 70123, 70124, 70125, 70126, 70127, 70128, 70129, 70130, 70131, 70132, 70384, 70385, 70386, 70387, 70388, 70389, 70390, 70391, 70392, 70393, 70864, 70865, 70866, 70867, 70868, 70869, 70870, 70871, 70872, 70873, 71248, 71249, 71250, 71251, 71252, 71253, 71254, 71255, 71256, 71257, 71360, 71361, 71362, 71363, 71364, 71365, 71366, 71367, 71368, 71369, 71472, 71473, 71474, 71475, 71476, 71477, 71478, 71479, 71480, 71481, 71482, 71483, 71904, 71905, 71906, 71907, 71908, 71909, 71910, 71911, 71912, 71913, 71914, 71915, 71916, 71917, 71918, 71919, 71920, 71921, 71922, 74752, 74753, 74754, 74755, 74756, 74757, 74758, 74759, 74760, 74761, 74762, 74763, 74764, 74765, 74766, 74767, 74768, 74769, 74770, 74771, 74772, 74773, 74774, 74775, 74776, 74777, 74778, 74779, 74780, 74781, 74782, 74783, 74784, 74785, 74786, 74787, 74788, 74789, 74790, 74791, 74792, 74793, 74794, 74795, 74796, 74797, 74798, 74799, 74800, 74801, 74802, 74803, 74804, 74805, 74806, 74807, 74808, 74809, 74810, 74811, 74812, 74813, 74814, 74815, 74816, 74817, 74818, 74819, 74820, 74821, 74822, 74823, 74824, 74825, 74826, 74827, 74828, 74829, 74830, 74831, 74832, 74833, 74834, 74835, 74836, 74837, 74838, 74839, 74840, 74841, 74842, 74843, 74844, 74845, 74846, 74847, 74848, 74849, 74850, 74851, 74852, 74853, 74854, 74855, 74856, 74857, 74858, 74859, 74860, 74861, 74862, 92768, 92769, 92770, 92771, 92772, 92773, 92774, 92775, 92776, 92777, 93008, 93009, 93010, 93011, 93012, 93013, 93014, 93015, 93016, 93017, 93019, 93020, 93021, 93022, 93023, 93024, 93025, 119648, 119649, 119650, 119651, 119652, 119653, 119654, 119655, 119656, 119657, 119658, 119659, 119660, 119661, 119662, 119663, 119664, 119665, 120782, 120783, 120784, 120785, 120786, 120787, 120788, 120789, 120790, 120791, 120792, 120793, 120794, 120795, 120796, 120797, 120798, 120799, 120800, 120801, 120802, 120803, 120804, 120805, 120806, 120807, 120808, 120809, 120810, 120811, 120812, 120813, 120814, 120815, 120816, 120817, 120818, 120819, 120820, 120821, 120822, 120823, 120824, 120825, 120826, 120827, 120828, 120829, 120830, 120831, 125127, 125128, 125129, 125130, 125131, 125132, 125133, 125134, 125135, 127232, 127233, 127234, 127235, 127236, 127237, 127238, 127239, 127240, 127241, 127242, 127243, 127244];\n","/*\n * List of Unicode code that are flagged as separator.\n *\n * Contains Unicode code of:\n * - Zs = Separator, space\n * - Zl = Separator, line\n * - Zp = Separator, paragraph\n *\n * This list has been computed from http://unicode.org/Public/UNIDATA/UnicodeData.txt\n * curl -s http://unicode.org/Public/UNIDATA/UnicodeData.txt | grep -E ';Zs;|;Zl;|;Zp;' | cut -d \\; -f 1 | xargs -I{} printf '%d, ' 0x{}\n *\n */\nexports.Z = [32, 160, 5760, 8192, 8193, 8194, 8195, 8196, 8197, 8198, 8199, 8200, 8201, 8202, 8232, 8233, 8239, 8287, 12288];\n","(function() {\n var L = require('./L').L,\n N = require('./N').N,\n Z = require('./Z').Z,\n M = require('./M').M,\n unorm = require('unorm');\n\n var _unicodeCategory = function(code) {\n if (~L.indexOf(code)) return 'L';\n if (~N.indexOf(code)) return 'N';\n if (~Z.indexOf(code)) return 'Z';\n if (~M.indexOf(code)) return 'M';\n return undefined;\n };\n\n module.exports = function(string, options) {\n string = string || '';\n options = options || {};\n var allowedChars = options.allowedChars || '-_~';\n var lower = typeof options.lower === 'boolean' ? options.lower : true;\n var spaces = typeof options.spaces === 'boolean' ? options.spaces : false;\n var rv = [];\n var chars = unorm.nfkc(string);\n for(var i = 0; i < chars.length; i++) {\n var c = chars[i];\n var code = c.charCodeAt(0);\n // Allow Common CJK Unified Ideographs\n // See: http://www.unicode.org/versions/Unicode6.0.0/ch12.pdf - Table 12-2 \n if (0x4E00 <= code && code <= 0x9FFF) {\n rv.push(c);\n continue;\n }\n\n // Allow Hangul\n if (0xAC00 <= code && code <= 0xD7A3) {\n rv.push(c);\n continue;\n }\n\n // Japanese ideographic punctuation\n if ((0x3000 <= code && code <= 0x3002) || (0xFF01 <= code && code <= 0xFF02)) {\n rv.push(' ');\n }\n\n if (allowedChars.indexOf(c) != -1) {\n rv.push(c);\n continue;\n }\n var val = _unicodeCategory(code);\n if (val && ~'LNM'.indexOf(val)) rv.push(c);\n if (val && ~'Z'.indexOf(val)) rv.push(' ');\n }\n var slug = rv.join('').replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g,' ');\n if (!spaces) slug = slug.replace(/[\\s\\-]+/g,'-');\n if (lower) slug = slug.toLowerCase();\n return slug;\n };\n}());","'use strict';\nmodule.exports = function (str) {\n\treturn !isNaN(Date.parse(str));\n};\n"],"names":[],"sourceRoot":""} \ No newline at end of file