react-book-reader 1.1.1 → 1.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -38,8 +38,29 @@ import { ReactReader } from 'react-book-reader'
38
38
  export default () => (
39
39
  <div style={{ height: '100vh' }}>
40
40
  {/* Supports EPUB, MOBI, KF8 (AZW3), FB2, CBZ, PDF */}
41
- <ReactReader url="files/啼笑因缘.epub" />
41
+ <ReactReader url="/files/啼笑因缘.epub" />
42
42
  </div>
43
43
  );
44
44
  ```
45
45
 
46
+ ## ReactReader Attributes
47
+
48
+ | **Name** | **Description** | **Type** | **Default** |
49
+ | -------- | --------------------------------- | ---------------------- | ----------- |
50
+ | url | book url or File | `string`/`File` | — |
51
+ | location | set / update location of the book | `string`/`number` | — |
52
+ | title | the title of the book | `string` | — |
53
+ | showToc | whether to show the toc | `boolean` | true |
54
+
55
+
56
+ ## ReactReader props passed to inner BookView
57
+
58
+ | **Name** | **Description** | **Type** | |
59
+ | ----------- | ---------------------------------------------------------------------------- | ---------------- |
60
+ | url | book url or File | `string`/`File` | |
61
+ | tocChanged | when the reader has parsed the book you will receive an array of the chapters | `function(toc)` |
62
+ | nextPage | display next page | `function` |
63
+ | prevPage | display previous page | `function` |
64
+ | setLocation | Set the page | `function(href)` |
65
+ | LoadingView | if you want to customize the LoadingView | `element` |
66
+ | ErrorView | if you want to customize the ErrorView | `element` |
@@ -1653,8 +1653,7 @@ const eo = oi((e, t) => {
1653
1653
  style: { display: l ? "" : "none" }
1654
1654
  }
1655
1655
  ),
1656
- l && f,
1657
- d && c
1656
+ !l && (d ? c : f)
1658
1657
  ] }) });
1659
1658
  });
1660
1659
  function xa(e) {
@@ -12,7 +12,7 @@ Check the top-level render call using <`+M+">.")}return C}}function tl(v,C){{if(
12
12
  <%s {...props} />
13
13
  React keys must be passed directly to JSX without using spread:
14
14
  let props = %s;
15
- <%s key={someKey} {...props} />`,Ti,nt,Fd,nt),nl[nt+Ti]=!0}}return v===r?Ld(ee):Id(ee),ee}}function Pd(v,C,M){return il(v,C,M,!0)}function Md(v,C,M){return il(v,C,M,!1)}var jd=Md,Dd=Pd;pt.Fragment=r,pt.jsx=jd,pt.jsxs=Dd})()),pt}var Ai;function ol(){return Ai||(Ai=1,process.env.NODE_ENV==="production"?Dt.exports=sl():Dt.exports=al()),Dt.exports}var V=ol();function cl(n,e){n.addEventListener("keyup",t=>{t.key==="ArrowUp"||t.key==="ArrowRight"?e("next"):(t.key==="ArrowDown"||t.key==="ArrowLeft")&&e("prev")},!1)}function ll(n,e){let i=0,s;n.addEventListener("wheel",a=>{a.ignore||(a.ignore=!0,clearTimeout(s),i+=a.deltaY,s=setTimeout(()=>{if(Math.abs(i)>=750){let o=Math.sign(i)>0?"next":"prev";e(o),i=0}i=0},50))})}function ul(n,e){let s,a,o;n.addEventListener("touchstart",c=>{c.ignore||(c.ignore=!0,s=c.changedTouches[0].pageX,a=c.changedTouches[0].pageY,o=Date.now())},!1),n.addEventListener("touchend",c=>{if(c.ignore)return;c.ignore=!0;const l=c.changedTouches[0].pageX-s,u=c.changedTouches[0].pageY-a;Date.now()-o<=500&&(Math.abs(l)>=50&&Math.abs(u)<=200?e(l<0?"prev":"next"):Math.abs(u)>=50&&Math.abs(l)<=200?e(u<0?"up":"down"):(n?.defaultView?.getSelection()?.removeAllRanges(),n.dispatchEvent(new MouseEvent("click",{clientX:s,clientY:a})),c.preventDefault()))},!1)}var Ci={},Ii={},Li={},gt,Pi;function Te(){if(Pi)return gt;Pi=1;var n=function(e){return e&&e.Math===Math&&e};return gt=n(typeof globalThis=="object"&&globalThis)||n(typeof window=="object"&&window)||n(typeof self=="object"&&self)||n(typeof Ri=="object"&&Ri)||n(typeof gt=="object"&&gt)||(function(){return this})()||Function("return this")(),gt}var hr={},fr,Mi;function Ce(){return Mi||(Mi=1,fr=function(n){try{return!!n()}catch{return!0}}),fr}var dr,ji;function $e(){if(ji)return dr;ji=1;var n=Ce();return dr=!n(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),dr}var pr,Di;function gr(){if(Di)return pr;Di=1;var n=Ce();return pr=!n(function(){var e=(function(){}).bind();return typeof e!="function"||e.hasOwnProperty("prototype")}),pr}var mr,Fi;function it(){if(Fi)return mr;Fi=1;var n=gr(),e=Function.prototype.call;return mr=n?e.bind(e):function(){return e.apply(e,arguments)},mr}var br={},Ni;function hl(){if(Ni)return br;Ni=1;var n={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,t=e&&!n.call({1:2},1);return br.f=t?function(i){var s=e(this,i);return!!s&&s.enumerable}:n,br}var yr,Bi;function vr(){return Bi||(Bi=1,yr=function(n,e){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:e}}),yr}var wr,zi;function ge(){if(zi)return wr;zi=1;var n=gr(),e=Function.prototype,t=e.call,r=n&&e.bind.bind(t,t);return wr=n?r:function(i){return function(){return t.apply(i,arguments)}},wr}var xr,Ui;function _r(){if(Ui)return xr;Ui=1;var n=ge(),e=n({}.toString),t=n("".slice);return xr=function(r){return t(e(r),8,-1)},xr}var Sr,qi;function fl(){if(qi)return Sr;qi=1;var n=ge(),e=Ce(),t=_r(),r=Object,i=n("".split);return Sr=e(function(){return!r("z").propertyIsEnumerable(0)})?function(s){return t(s)==="String"?i(s,""):r(s)}:r,Sr}var Er,$i;function Tr(){return $i||($i=1,Er=function(n){return n==null}),Er}var Rr,Wi;function Ft(){if(Wi)return Rr;Wi=1;var n=Tr(),e=TypeError;return Rr=function(t){if(n(t))throw new e("Can't call method on "+t);return t},Rr}var kr,Hi;function Or(){if(Hi)return kr;Hi=1;var n=fl(),e=Ft();return kr=function(t){return n(e(t))},kr}var Ar,Vi;function Re(){if(Vi)return Ar;Vi=1;var n=typeof document=="object"&&document.all;return Ar=typeof n>"u"&&n!==void 0?function(e){return typeof e=="function"||e===n}:function(e){return typeof e=="function"},Ar}var Cr,Gi;function mt(){if(Gi)return Cr;Gi=1;var n=Re();return Cr=function(e){return typeof e=="object"?e!==null:n(e)},Cr}var Ir,Xi;function Lr(){if(Xi)return Ir;Xi=1;var n=Te(),e=Re(),t=function(r){return e(r)?r:void 0};return Ir=function(r,i){return arguments.length<2?t(n[r]):n[r]&&n[r][i]},Ir}var Pr,Ki;function Yi(){if(Ki)return Pr;Ki=1;var n=ge();return Pr=n({}.isPrototypeOf),Pr}var Mr,Ji;function dl(){if(Ji)return Mr;Ji=1;var n=Te(),e=n.navigator,t=e&&e.userAgent;return Mr=t?String(t):"",Mr}var jr,Zi;function pl(){if(Zi)return jr;Zi=1;var n=Te(),e=dl(),t=n.process,r=n.Deno,i=t&&t.versions||r&&r.version,s=i&&i.v8,a,o;return s&&(a=s.split("."),o=a[0]>0&&a[0]<4?1:+(a[0]+a[1])),!o&&e&&(a=e.match(/Edge\/(\d+)/),(!a||a[1]>=74)&&(a=e.match(/Chrome\/(\d+)/),a&&(o=+a[1]))),jr=o,jr}var Dr,Qi;function es(){if(Qi)return Dr;Qi=1;var n=pl(),e=Ce(),t=Te(),r=t.String;return Dr=!!Object.getOwnPropertySymbols&&!e(function(){var i=Symbol("symbol detection");return!r(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&n&&n<41}),Dr}var Fr,ts;function rs(){if(ts)return Fr;ts=1;var n=es();return Fr=n&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Fr}var Nr,ns;function is(){if(ns)return Nr;ns=1;var n=Lr(),e=Re(),t=Yi(),r=rs(),i=Object;return Nr=r?function(s){return typeof s=="symbol"}:function(s){var a=n("Symbol");return e(a)&&t(a.prototype,i(s))},Nr}var Br,ss;function zr(){if(ss)return Br;ss=1;var n=String;return Br=function(e){try{return n(e)}catch{return"Object"}},Br}var Ur,as;function bt(){if(as)return Ur;as=1;var n=Re(),e=zr(),t=TypeError;return Ur=function(r){if(n(r))return r;throw new t(e(r)+" is not a function")},Ur}var qr,os;function $r(){if(os)return qr;os=1;var n=bt(),e=Tr();return qr=function(t,r){var i=t[r];return e(i)?void 0:n(i)},qr}var Wr,cs;function gl(){if(cs)return Wr;cs=1;var n=it(),e=Re(),t=mt(),r=TypeError;return Wr=function(i,s){var a,o;if(s==="string"&&e(a=i.toString)&&!t(o=n(a,i))||e(a=i.valueOf)&&!t(o=n(a,i))||s!=="string"&&e(a=i.toString)&&!t(o=n(a,i)))return o;throw new r("Can't convert object to primitive value")},Wr}var Hr={exports:{}},Vr,ls;function us(){return ls||(ls=1,Vr=!1),Vr}var Gr,hs;function Xr(){if(hs)return Gr;hs=1;var n=Te(),e=Object.defineProperty;return Gr=function(t,r){try{e(n,t,{value:r,configurable:!0,writable:!0})}catch{n[t]=r}return r},Gr}var fs;function Kr(){if(fs)return Hr.exports;fs=1;var n=us(),e=Te(),t=Xr(),r="__core-js_shared__",i=Hr.exports=e[r]||t(r,{});return(i.versions||(i.versions=[])).push({version:"3.48.0",mode:n?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE",source:"https://github.com/zloirock/core-js"}),Hr.exports}var Yr,ds;function ps(){if(ds)return Yr;ds=1;var n=Kr();return Yr=function(e,t){return n[e]||(n[e]=t||{})},Yr}var Jr,gs;function ml(){if(gs)return Jr;gs=1;var n=Ft(),e=Object;return Jr=function(t){return e(n(t))},Jr}var Zr,ms;function Ye(){if(ms)return Zr;ms=1;var n=ge(),e=ml(),t=n({}.hasOwnProperty);return Zr=Object.hasOwn||function(i,s){return t(e(i),s)},Zr}var Qr,bs;function ys(){if(bs)return Qr;bs=1;var n=ge(),e=0,t=Math.random(),r=n(1.1.toString);return Qr=function(i){return"Symbol("+(i===void 0?"":i)+")_"+r(++e+t,36)},Qr}var en,vs;function yt(){if(vs)return en;vs=1;var n=Te(),e=ps(),t=Ye(),r=ys(),i=es(),s=rs(),a=n.Symbol,o=e("wks"),c=s?a.for||a:a&&a.withoutSetter||r;return en=function(l){return t(o,l)||(o[l]=i&&t(a,l)?a[l]:c("Symbol."+l)),o[l]},en}var tn,ws;function bl(){if(ws)return tn;ws=1;var n=it(),e=mt(),t=is(),r=$r(),i=gl(),s=yt(),a=TypeError,o=s("toPrimitive");return tn=function(c,l){if(!e(c)||t(c))return c;var u=r(c,o),h;if(u){if(l===void 0&&(l="default"),h=n(u,c,l),!e(h)||t(h))return h;throw new a("Can't convert object to primitive value")}return l===void 0&&(l="number"),i(c,l)},tn}var rn,xs;function nn(){if(xs)return rn;xs=1;var n=bl(),e=is();return rn=function(t){var r=n(t,"string");return e(r)?r:r+""},rn}var sn,_s;function yl(){if(_s)return sn;_s=1;var n=Te(),e=mt(),t=n.document,r=e(t)&&e(t.createElement);return sn=function(i){return r?t.createElement(i):{}},sn}var an,Ss;function Es(){if(Ss)return an;Ss=1;var n=$e(),e=Ce(),t=yl();return an=!n&&!e(function(){return Object.defineProperty(t("div"),"a",{get:function(){return 7}}).a!==7}),an}var Ts;function Rs(){if(Ts)return hr;Ts=1;var n=$e(),e=it(),t=hl(),r=vr(),i=Or(),s=nn(),a=Ye(),o=Es(),c=Object.getOwnPropertyDescriptor;return hr.f=n?c:function(u,h){if(u=i(u),h=s(h),o)try{return c(u,h)}catch{}if(a(u,h))return r(!e(t.f,u,h),u[h])},hr}var on={},cn,ks;function vl(){if(ks)return cn;ks=1;var n=$e(),e=Ce();return cn=n&&e(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),cn}var ln,Os;function vt(){if(Os)return ln;Os=1;var n=mt(),e=String,t=TypeError;return ln=function(r){if(n(r))return r;throw new t(e(r)+" is not an object")},ln}var As;function Nt(){if(As)return on;As=1;var n=$e(),e=Es(),t=vl(),r=vt(),i=nn(),s=TypeError,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,c="enumerable",l="configurable",u="writable";return on.f=n?t?function(p,g,f){if(r(p),g=i(g),r(f),typeof p=="function"&&g==="prototype"&&"value"in f&&u in f&&!f[u]){var b=o(p,g);b&&b[u]&&(p[g]=f.value,f={configurable:l in f?f[l]:b[l],enumerable:c in f?f[c]:b[c],writable:!1})}return a(p,g,f)}:a:function(p,g,f){if(r(p),g=i(g),r(f),e)try{return a(p,g,f)}catch{}if("get"in f||"set"in f)throw new s("Accessors not supported");return"value"in f&&(p[g]=f.value),p},on}var un,Cs;function Is(){if(Cs)return un;Cs=1;var n=$e(),e=Nt(),t=vr();return un=n?function(r,i,s){return e.f(r,i,t(1,s))}:function(r,i,s){return r[i]=s,r},un}var hn={exports:{}},fn,Ls;function wl(){if(Ls)return fn;Ls=1;var n=$e(),e=Ye(),t=Function.prototype,r=n&&Object.getOwnPropertyDescriptor,i=e(t,"name"),s=i&&(function(){}).name==="something",a=i&&(!n||n&&r(t,"name").configurable);return fn={EXISTS:i,PROPER:s,CONFIGURABLE:a},fn}var dn,Ps;function xl(){if(Ps)return dn;Ps=1;var n=ge(),e=Re(),t=Kr(),r=n(Function.toString);return e(t.inspectSource)||(t.inspectSource=function(i){return r(i)}),dn=t.inspectSource,dn}var pn,Ms;function _l(){if(Ms)return pn;Ms=1;var n=Te(),e=Re(),t=n.WeakMap;return pn=e(t)&&/native code/.test(String(t)),pn}var gn,js;function Sl(){if(js)return gn;js=1;var n=ps(),e=ys(),t=n("keys");return gn=function(r){return t[r]||(t[r]=e(r))},gn}var mn,Ds;function Fs(){return Ds||(Ds=1,mn={}),mn}var bn,Ns;function El(){if(Ns)return bn;Ns=1;var n=_l(),e=Te(),t=mt(),r=Is(),i=Ye(),s=Kr(),a=Sl(),o=Fs(),c="Object already initialized",l=e.TypeError,u=e.WeakMap,h,p,g,f=function(y){return g(y)?p(y):h(y,{})},b=function(y){return function(w){var _;if(!t(w)||(_=p(w)).type!==y)throw new l("Incompatible receiver, "+y+" required");return _}};if(n||s.state){var d=s.state||(s.state=new u);d.get=d.get,d.has=d.has,d.set=d.set,h=function(y,w){if(d.has(y))throw new l(c);return w.facade=y,d.set(y,w),w},p=function(y){return d.get(y)||{}},g=function(y){return d.has(y)}}else{var m=a("state");o[m]=!0,h=function(y,w){if(i(y,m))throw new l(c);return w.facade=y,r(y,m,w),w},p=function(y){return i(y,m)?y[m]:{}},g=function(y){return i(y,m)}}return bn={set:h,get:p,has:g,enforce:f,getterFor:b},bn}var Bs;function Tl(){if(Bs)return hn.exports;Bs=1;var n=ge(),e=Ce(),t=Re(),r=Ye(),i=$e(),s=wl().CONFIGURABLE,a=xl(),o=El(),c=o.enforce,l=o.get,u=String,h=Object.defineProperty,p=n("".slice),g=n("".replace),f=n([].join),b=i&&!e(function(){return h(function(){},"length",{value:8}).length!==8}),d=String(String).split("String"),m=hn.exports=function(y,w,_){p(u(w),0,7)==="Symbol("&&(w="["+g(u(w),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),_&&_.getter&&(w="get "+w),_&&_.setter&&(w="set "+w),(!r(y,"name")||s&&y.name!==w)&&(i?h(y,"name",{value:w,configurable:!0}):y.name=w),b&&_&&r(_,"arity")&&y.length!==_.arity&&h(y,"length",{value:_.arity});try{_&&r(_,"constructor")&&_.constructor?i&&h(y,"prototype",{writable:!1}):y.prototype&&(y.prototype=void 0)}catch{}var R=c(y);return r(R,"source")||(R.source=f(d,typeof w=="string"?w:"")),y};return Function.prototype.toString=m(function(){return t(this)&&l(this).source||a(this)},"toString"),hn.exports}var yn,zs;function Rl(){if(zs)return yn;zs=1;var n=Re(),e=Nt(),t=Tl(),r=Xr();return yn=function(i,s,a,o){o||(o={});var c=o.enumerable,l=o.name!==void 0?o.name:s;if(n(a)&&t(a,l,o),o.global)c?i[s]=a:r(s,a);else{try{o.unsafe?i[s]&&(c=!0):delete i[s]}catch{}c?i[s]=a:e.f(i,s,{value:a,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return i},yn}var vn={},wn,Us;function kl(){if(Us)return wn;Us=1;var n=Math.ceil,e=Math.floor;return wn=Math.trunc||function(r){var i=+r;return(i>0?e:n)(i)},wn}var xn,qs;function $s(){if(qs)return xn;qs=1;var n=kl();return xn=function(e){var t=+e;return t!==t||t===0?0:n(t)},xn}var _n,Ws;function Ol(){if(Ws)return _n;Ws=1;var n=$s(),e=Math.max,t=Math.min;return _n=function(r,i){var s=n(r);return s<0?e(s+i,0):t(s,i)},_n}var Sn,Hs;function Al(){if(Hs)return Sn;Hs=1;var n=$s(),e=Math.min;return Sn=function(t){var r=n(t);return r>0?e(r,9007199254740991):0},Sn}var En,Vs;function Gs(){if(Vs)return En;Vs=1;var n=Al();return En=function(e){return n(e.length)},En}var Tn,Xs;function Cl(){if(Xs)return Tn;Xs=1;var n=Or(),e=Ol(),t=Gs(),r=function(i){return function(s,a,o){var c=n(s),l=t(c);if(l===0)return!i&&-1;var u=e(o,l),h;if(i&&a!==a){for(;l>u;)if(h=c[u++],h!==h)return!0}else for(;l>u;u++)if((i||u in c)&&c[u]===a)return i||u||0;return!i&&-1}};return Tn={includes:r(!0),indexOf:r(!1)},Tn}var Rn,Ks;function Il(){if(Ks)return Rn;Ks=1;var n=ge(),e=Ye(),t=Or(),r=Cl().indexOf,i=Fs(),s=n([].push);return Rn=function(a,o){var c=t(a),l=0,u=[],h;for(h in c)!e(i,h)&&e(c,h)&&s(u,h);for(;o.length>l;)e(c,h=o[l++])&&(~r(u,h)||s(u,h));return u},Rn}var kn,Ys;function Ll(){return Ys||(Ys=1,kn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]),kn}var Js;function Pl(){if(Js)return vn;Js=1;var n=Il(),e=Ll(),t=e.concat("length","prototype");return vn.f=Object.getOwnPropertyNames||function(i){return n(i,t)},vn}var On={},Zs;function Ml(){return Zs||(Zs=1,On.f=Object.getOwnPropertySymbols),On}var An,Qs;function jl(){if(Qs)return An;Qs=1;var n=Lr(),e=ge(),t=Pl(),r=Ml(),i=vt(),s=e([].concat);return An=n("Reflect","ownKeys")||function(o){var c=t.f(i(o)),l=r.f;return l?s(c,l(o)):c},An}var Cn,ea;function Dl(){if(ea)return Cn;ea=1;var n=Ye(),e=jl(),t=Rs(),r=Nt();return Cn=function(i,s,a){for(var o=e(s),c=r.f,l=t.f,u=0;u<o.length;u++){var h=o[u];!n(i,h)&&!(a&&n(a,h))&&c(i,h,l(s,h))}},Cn}var In,ta;function Fl(){if(ta)return In;ta=1;var n=Ce(),e=Re(),t=/#|\.prototype\./,r=function(c,l){var u=s[i(c)];return u===o?!0:u===a?!1:e(l)?n(l):!!l},i=r.normalize=function(c){return String(c).replace(t,".").toLowerCase()},s=r.data={},a=r.NATIVE="N",o=r.POLYFILL="P";return In=r,In}var Ln,ra;function na(){if(ra)return Ln;ra=1;var n=Te(),e=Rs().f,t=Is(),r=Rl(),i=Xr(),s=Dl(),a=Fl();return Ln=function(o,c){var l=o.target,u=o.global,h=o.stat,p,g,f,b,d,m;if(u?g=n:h?g=n[l]||i(l,{}):g=n[l]&&n[l].prototype,g)for(f in c){if(d=c[f],o.dontCallGetSet?(m=e(g,f),b=m&&m.value):b=g[f],p=a(u?f:l+(h?".":"#")+f,o.forced),!p&&b!==void 0){if(typeof d==typeof b)continue;s(d,b)}(o.sham||b&&b.sham)&&t(d,"sham",!0),r(g,f,d,o)}},Ln}var Pn,ia;function Nl(){if(ia)return Pn;ia=1;var n=_r(),e=ge();return Pn=function(t){if(n(t)==="Function")return e(t)},Pn}var Mn,sa;function Bl(){if(sa)return Mn;sa=1;var n=Nl(),e=bt(),t=gr(),r=n(n.bind);return Mn=function(i,s){return e(i),s===void 0?i:t?r(i,s):function(){return i.apply(s,arguments)}},Mn}var jn,aa;function oa(){return aa||(aa=1,jn={}),jn}var Dn,ca;function zl(){if(ca)return Dn;ca=1;var n=yt(),e=oa(),t=n("iterator"),r=Array.prototype;return Dn=function(i){return i!==void 0&&(e.Array===i||r[t]===i)},Dn}var Fn,la;function Ul(){if(la)return Fn;la=1;var n=yt(),e=n("toStringTag"),t={};return t[e]="z",Fn=String(t)==="[object z]",Fn}var Nn,ua;function ql(){if(ua)return Nn;ua=1;var n=Ul(),e=Re(),t=_r(),r=yt(),i=r("toStringTag"),s=Object,a=t((function(){return arguments})())==="Arguments",o=function(c,l){try{return c[l]}catch{}};return Nn=n?t:function(c){var l,u,h;return c===void 0?"Undefined":c===null?"Null":typeof(u=o(l=s(c),i))=="string"?u:a?t(l):(h=t(l))==="Object"&&e(l.callee)?"Arguments":h},Nn}var Bn,ha;function fa(){if(ha)return Bn;ha=1;var n=ql(),e=$r(),t=Tr(),r=oa(),i=yt(),s=i("iterator");return Bn=function(a){if(!t(a))return e(a,s)||e(a,"@@iterator")||r[n(a)]},Bn}var zn,da;function $l(){if(da)return zn;da=1;var n=it(),e=bt(),t=vt(),r=zr(),i=fa(),s=TypeError;return zn=function(a,o){var c=arguments.length<2?i(a):o;if(e(c))return t(n(c,a));throw new s(r(a)+" is not iterable")},zn}var Un,pa;function Wl(){if(pa)return Un;pa=1;var n=it(),e=vt(),t=$r();return Un=function(r,i,s){var a,o;e(r);try{if(a=t(r,"return"),!a){if(i==="throw")throw s;return s}a=n(a,r)}catch(c){o=!0,a=c}if(i==="throw")throw s;if(o)throw a;return e(a),s},Un}var qn,ga;function ma(){if(ga)return qn;ga=1;var n=Bl(),e=it(),t=vt(),r=zr(),i=zl(),s=Gs(),a=Yi(),o=$l(),c=fa(),l=Wl(),u=TypeError,h=function(g,f){this.stopped=g,this.result=f},p=h.prototype;return qn=function(g,f,b){var d=b&&b.that,m=!!(b&&b.AS_ENTRIES),y=!!(b&&b.IS_RECORD),w=!!(b&&b.IS_ITERATOR),_=!!(b&&b.INTERRUPTED),R=n(f,d),E,S,x,A,T,k,O,I=function(P){return E&&l(E,"normal"),new h(!0,P)},L=function(P){return m?(t(P),_?R(P[0],P[1],I):R(P[0],P[1])):_?R(P,I):R(P)};if(y)E=g.iterator;else if(w)E=g;else{if(S=c(g),!S)throw new u(r(g)+" is not iterable");if(i(S)){for(x=0,A=s(g);A>x;x++)if(T=L(g[x]),T&&a(p,T))return T;return new h(!1)}E=o(g,S)}for(k=y?g.next:E.next;!(O=e(k,E)).done;){try{T=L(O.value)}catch(P){l(E,"throw",P)}if(typeof T=="object"&&T&&a(p,T))return T}return new h(!1)},qn}var $n,ba;function Hl(){if(ba)return $n;ba=1;var n=ge(),e=Map.prototype;return $n={Map,set:n(e.set),get:n(e.get),has:n(e.has),remove:n(e.delete),proto:e},$n}var ya;function Vl(){if(ya)return Li;ya=1;var n=na(),e=ge(),t=bt(),r=Ft(),i=ma(),s=Hl(),a=us(),o=Ce(),c=s.Map,l=s.has,u=s.get,h=s.set,p=e([].push),g=a||o(function(){return c.groupBy("ab",function(f){return f}).get("a").length!==1});return n({target:"Map",stat:!0,forced:a||g},{groupBy:function(b,d){r(b),t(d);var m=new c,y=0;return i(b,function(w){var _=d(w,y++);l(m,_)?p(u(m,_),w):h(m,_,[w])}),m}}),Li}var va;function Gl(){return va||(va=1,Vl()),Ii}var wa={},xa={},Wn,_a;function Xl(){if(_a)return Wn;_a=1;var n=$e(),e=Nt(),t=vr();return Wn=function(r,i,s){n?e.f(r,i,t(0,s)):r[i]=s},Wn}var Sa;function Kl(){if(Sa)return xa;Sa=1;var n=na(),e=Xl(),t=Lr(),r=ge(),i=bt(),s=Ft(),a=nn(),o=ma(),c=Ce(),l=Object.groupBy,u=t("Object","create"),h=r([].push),p=!l||c(function(){return l("ab",function(g){return g}).a.length!==1});return n({target:"Object",stat:!0,forced:p},{groupBy:function(f,b){s(f),i(b);var d=u(null),m=0;return o(f,function(y){var w=a(b(y,m++));w in d?h(d[w],y):e(d,w,[y])}),d}}),xa}var Ea;function Yl(){return Ea||(Ea=1,Kl()),wa}var Ta;function Jl(){return Ta||(Ta=1,Gl(),Yl()),Ci}Jl(),typeof Promise.withResolvers>"u"&&window&&(window.Promise.withResolvers=function(){let n,e;return{promise:new Promise((r,i)=>{n=r,e=i}),resolve:n,reject:e}});const Ra=Q.forwardRef((n,e)=>{const{url:t,location:r,getRendition:i,tocChanged:s,onUpdateLocation:a,LoadingView:o,ErrorView:c}=n,[l,u]=Q.useState(!1),[h,p]=Q.useState(!1),g=Q.useRef(null),f=Q.useRef(null),[b,d]=Q.useState(!0),m=async()=>{try{t&&(f.current?f.current.close():(f.current=document.createElement("foliate-view"),g.current.append(f.current)),await f.current.open(t),i&&i(f.current),y())}catch(T){console.error("Error opening book:",T),p(!0)}},y=()=>{u(!0);const{book:T}=f.current;_(),s&&s(T.toc),r?f.current.goTo(r):f.current.renderer.next()},w=T=>{T==="next"?S():T==="prev"&&x()},_=()=>{f.current.addEventListener("load",R),f.current.addEventListener("relocate",E)},R=({detail:{doc:T}})=>{ll(T,w),ul(T,w),cl(T,w)},E=({detail:T})=>{a&&a(T)},S=()=>f.current.next(),x=()=>f.current.prev(),A=T=>f.current.goTo(T);return Q.useImperativeHandle(e,()=>({prevPage:x,nextPage:S,setLocation:A})),Q.useEffect(()=>{g.current&&!customElements.get("foliate-view")&&Promise.resolve().then(()=>Eu).then(()=>{m()})},[g.current]),Q.useEffect(()=>{b?d(!1):m()},[t]),V.jsx("div",{className:"reader",children:V.jsxs("div",{className:"viewHolder",children:[V.jsx("div",{ref:g,id:"viewer",style:{display:l?"":"none"}}),l&&o,h&&c]})})});function ka(n){const{toc:e=[],current:t="",setLocation:r,isSubmenu:i=!1}=n;return V.jsx(V.Fragment,{children:e.map((s,a)=>V.jsxs("div",{children:[V.jsxs("button",{className:`tocAreaButton ${s.href===t?"active":""}`,onClick:()=>{s.subitems&&s.subitems.length>0?(s.expansion=!s.expansion,r(s.href,!1)):r(s.href)},children:[i?" ".repeat(4)+s.label:s.label,s.subitems&&s.subitems.length>0&&V.jsx("div",{className:`expansion ${s.expansion?"open":""}`})]}),s.subitems&&s.subitems.length>0&&V.jsx("div",{"v-show":s.expansion,children:V.jsx(ka,{toc:s.subitems,current:t,setLocation:r,isSubmenu:!0})})]},a))})}function Oa(n){const{showToc:e=!0,getRendition:t,LoadingView:r,ErrorView:i,...s}=n,a=Q.useRef(null),[o,c]=Q.useState([]),[l,u]=Q.useState(!1),[h,p]=Q.useState(""),[g,f]=Q.useState(""),b=R=>{t&&t(R);const{book:E}=R,S=E.metadata?.title;p(S||"")},d=R=>{c(R)},m=()=>a.current.nextPage(),y=()=>a.current.nextPage(),w=()=>{u(!l)},_=(R,E=!0)=>{a.current.setLocation(R),f(R),u(!E)};return V.jsxs("div",{className:"container",children:[V.jsxs("div",{className:`readerArea ${l?"containerExpanded":""}`,children:[e&&V.jsxs("button",{className:`tocButton ${l?"tocButtonExpanded":""}`,onClick:w,children:[V.jsx("span",{className:"tocButtonBar",style:{top:"35%"}}),V.jsx("span",{className:"tocButtonBar",style:{top:"66%"}})]}),V.jsx("div",{className:"titleArea",title:h}),V.jsx(Ra,{ref:a,onGetRendition:b,tocChanged:d,LoadingView:r||V.jsx("div",{className:"loadingView",children:"Loading…"}),ErrorView:i||V.jsx("div",{className:"errorView",children:"Error loading book"}),...s}),V.jsx("button",{className:"arrow pre",onClick:m,children:"‹"}),V.jsx("button",{className:"arrow next",onClick:y,children:"›"})]}),e&&V.jsxs("div",{children:[V.jsx("div",{className:"tocArea",children:V.jsx(ka,{toc:o,current:g,setLocation:_,isSubmenu:!1})}),l&&V.jsx("div",{className:"tocBackground",onClick:w})]})]})}const Zl=(n,e)=>n.map((t,r,i)=>e(t,r,i)?r:null).filter(t=>t!=null),Aa=(n,e)=>[-1,...e,n.length].reduce(({xs:t,a:r},i)=>({xs:t?.concat([n.slice(r+1,i)])??[],a:i}),{}).xs,Ql=(n,e)=>n.slice(0,-1).concat([n[n.length-1].concat(e[0])]).concat(e.slice(1)),Hn=/\d/,Bt=/^epubcfi\((.*)\)$/,Ca=n=>n.replace(/[\^[\](),;=]/g,"^$&"),Ia=n=>Bt.test(n)?n:`epubcfi(${n})`,eu=n=>n.match(Bt)?.[1]??n,tu=(n=>(...e)=>`epubcfi(${n(...e.map(t=>t.match(Bt)?.[1]??t))})`)((...n)=>n.join("!")),ru=n=>{const e=[];let t,r,i="";const s=o=>(e.push(o),t=null,i=""),a=o=>(i+=o,r=!1);for(const o of Array.from(n.trim()).concat("")){if(o==="^"&&!r){r=!0;continue}if(t==="!")s(["!"]);else if(t===",")s([","]);else if(t==="/"||t===":")if(Hn.test(o)){a(o);continue}else s([t,parseInt(i)]);else if(t==="~")if(Hn.test(o)||o==="."){a(o);continue}else s(["~",parseFloat(i)]);else if(t==="@"){if(o===":"){s(["@",parseFloat(i)]),t="@";continue}if(Hn.test(o)||o==="."){a(o);continue}else s(["@",parseFloat(i)])}else if(t==="["){o===";"&&!r?(s(["[",i]),t=";"):o===","&&!r?(s(["[",i]),t="["):o==="]"&&!r?s(["[",i]):a(o);continue}else if(t?.startsWith(";")){o==="="&&!r?(t=`;${i}`,i=""):o===";"&&!r?(s([t,i]),t=";"):o==="]"&&!r?s([t,i]):a(o);continue}(o==="/"||o===":"||o==="~"||o==="@"||o==="["||o==="!"||o===",")&&(t=o)}return e},La=(n,e)=>Zl(n,([t])=>t===e),nu=n=>{const e=[];let t;for(const[r,i]of n){if(r==="/")e.push({index:i});else{const s=e[e.length-1];if(r===":")s.offset=i;else if(r==="~")s.temporal=i;else if(r==="@")s.spatial=(s.spatial??[]).concat(i);else if(r===";s")s.side=i;else if(r==="[")if(t==="/"&&i)s.id=i;else{s.text=(s.text??[]).concat(i);continue}}t=r}return e},Pa=n=>Aa(n,La(n,"!")).map(nu),wt=n=>{const e=ru(eu(n)),t=La(e,",");if(!t.length)return Pa(e);const[r,i,s]=Aa(e,t).map(Pa);return{parent:r,start:i,end:s}},iu=({index:n,id:e,offset:t,temporal:r,spatial:i,text:s,side:a})=>{const o=a?`;s=${a}`:"";return`/${n}`+(e?`[${Ca(e)}${o}]`:"")+(t!=null&&n%2?`:${t}`:"")+(r?`~${r}`:"")+(i?`@${i.join(":")}`:"")+(s||!e&&a?"["+(s?.map(Ca)?.join(",")??"")+o+"]":"")},Ma=n=>n.parent?[n.parent,n.start,n.end].map(Ma).join(","):n.map(e=>e.map(iu).join("")).join("!"),zt=n=>Ia(Ma(n)),st=(n,e)=>typeof n=="string"?zt(st(wt(n),e)):n.parent?Ql(n.parent,n[e?"end":"start"]):n,su=(n,e)=>{typeof n=="string"&&(n=wt(n)),typeof e=="string"&&(e=wt(e)),n=st(n),e=st(e,!0);const t=n[n.length-1],r=e[e.length-1],i=[],s=[],a=[];let o=!0;const c=Math.max(t.length,r.length);for(let u=0;u<c;u++){const h=t[u],p=r[u];o&&=h?.index===p?.index&&!h?.offset&&!p?.offset,o?i.push(h):(h&&s.push(h),p&&a.push(p))}const l=n.slice(0,-1).concat([i]);return zt({parent:l,start:[s],end:[a]})},Vn=({nodeType:n})=>n===3||n===4,Ut=({nodeType:n})=>n===1,ja=(n,e)=>{const t=Array.from(n.childNodes).filter(r=>Vn(r)||Ut(r));return e?t.map(r=>{const i=e(r);return i===NodeFilter.FILTER_REJECT?null:i===NodeFilter.FILTER_SKIP?ja(r,e):r}).flat().filter(r=>r):t},Gn=(n,e)=>{const t=ja(n,e).reduce((r,i)=>{let s=r[r.length-1];return s?Vn(i)?Array.isArray(s)?s.push(i):Vn(s)?r[r.length-1]=[s,i]:r.push(i):Ut(s)?r.push(null,i):r.push(i):r.push(i),r},[]);return Ut(t[0])&&t.unshift("first"),Ut(t[t.length-1])&&t.push("last"),t.unshift("before"),t.push("after"),t},Xn=(n,e,t)=>{const{id:r}=e[e.length-1];if(r){const a=n.ownerDocument.getElementById(r);if(a)return{node:a,offset:0}}for(const{index:a}of e){const o=n?Gn(n,t)[a]:null;if(o==="first")return{node:n.firstChild??n};if(o==="last")return{node:n.lastChild??n};if(o==="before")return{node:n,before:!0};if(o==="after")return{node:n,after:!0};n=o}const{offset:i}=e[e.length-1];if(!Array.isArray(n))return{node:n,offset:i};let s=0;for(const a of n){const{length:o}=a.nodeValue;if(s+o>=i)return{node:a,offset:i-s};s+=o}},qt=(n,e,t)=>{const{parentNode:r,id:i}=n,s=Gn(r,t),a=s.findIndex(l=>Array.isArray(l)?l.some(u=>u===n):l===n),o=s[a];if(Array.isArray(o)){let l=0;for(const u of o)if(u===n){l+=e;break}else l+=u.nodeValue.length;e=l}const c={id:i,index:a,offset:e};return(r!==n.ownerDocument.documentElement?qt(r,null,t).concat(c):[c]).filter(l=>l.index!==-1)},au=(n,e)=>{const{startContainer:t,startOffset:r,endContainer:i,endOffset:s}=n,a=qt(t,r,e);if(n.collapsed)return zt([a]);const o=qt(i,s,e);return su([a],[o])},Da=(n,e,t)=>{const r=st(e),i=st(e,!0),s=n.documentElement,a=Xn(s,r[0],t),o=Xn(s,i[0],t),c=n.createRange();return a.before?c.setStartBefore(a.node):a.after?c.setStartAfter(a.node):c.setStart(a.node,a.offset),o.before?c.setEndBefore(o.node):o.after?c.setEndAfter(o.node):c.setEnd(o.node,o.offset),c},ou=n=>{const e=[],{parentNode:t}=n[0],r=qt(t);for(const[i,s]of Gn(t).entries()){const a=n[e.length];s===a&&e.push(zt([r.concat({id:a.id,index:i})]))}return e},Fa=(n,e)=>Xn(n.documentElement,st(e)).node,Na={fromIndex:n=>Ia(`/6/${(n+1)*2}`),toIndex:n=>n?.at(-1).index/2-1},cu=n=>{let e=0;const t=r=>{if(r.id=e++,r.subitems)for(const i of r.subitems)t(i)};for(const r of n)t(r);return n},Ba=n=>n.map(e=>e.subitems?.length?[e,Ba(e.subitems)].flat():e).flat();class za{async init({toc:e,ids:t,splitHref:r,getFragment:i}){cu(e);const s=Ba(e),a=new Map;for(const[c,l]of s.entries()){const[u,h]=await r(l?.href)??[],p={fragment:h,item:l};a.has(u)?a.get(u).items.push(p):a.set(u,{prev:s[c-1],items:[p]})}const o=new Map;for(const[c,l]of t.entries())a.has(l)?o.set(l,a.get(l)):o.set(l,o.get(t[c-1]));this.ids=t,this.map=o,this.getFragment=i}getProgress(e,t){if(!this.ids)return;const r=this.ids[e],i=this.map.get(r);if(!i)return null;const{prev:s,items:a}=i;if(!a)return s;if(!t||a.length===1&&!a[0].fragment)return a[0].item;const o=t.startContainer.getRootNode();for(const[c,{fragment:l}]of a.entries()){const u=this.getFragment(o,l);if(u&&t.comparePoint(u,0)>0)return a[c-1]?.item??s}return a[a.length-1].item}}class lu{constructor(e,t,r){this.sizes=e.map(i=>i.linear!="no"&&i.size>0?i.size:0),this.sizePerLoc=t,this.sizePerTimeUnit=r,this.sizeTotal=this.sizes.reduce((i,s)=>i+s,0),this.sectionFractions=this.#e()}#e(){const{sizeTotal:e}=this,t=[0];let r=0;for(const i of this.sizes)t.push((r+=i)/e);return t}getProgress(e,t,r=0){const{sizes:i,sizePerLoc:s,sizePerTimeUnit:a,sizeTotal:o}=this,c=i[e]??0,u=i.slice(0,e).reduce((f,b)=>f+b,0)+t*c,h=u+r*c,p=o-u,g=(1-t)*c;return{fraction:h/o,section:{current:e,total:i.length},location:{current:Math.floor(u/s),next:Math.floor(h/s),total:Math.ceil(o/s)},time:{section:g/a,total:p/a}}}getSection(e){if(e<=0)return[0,0];if(e>=1)return[this.sizes.length-1,1];e=e+Number.EPSILON;const{sizeTotal:t}=this;let r=this.sectionFractions.findIndex(s=>s>e)-1;if(r<0)return[0,0];for(;!this.sizes[r];)r++;const i=(e-this.sectionFractions[r])/(this.sizes[r]/t);return[r,i]}}const se=n=>document.createElementNS("http://www.w3.org/2000/svg",n);class Ua{#e=se("svg");#r=new Map;constructor(){Object.assign(this.#e.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",pointerEvents:"none"})}get element(){return this.#e}add(e,t,r,i){this.#r.has(e)&&this.remove(e),typeof t=="function"&&(t=t(this.#e.getRootNode()));const s=t.getClientRects(),a=r(s,i);this.#e.append(a),this.#r.set(e,{range:t,draw:r,options:i,element:a,rects:s})}remove(e){this.#r.has(e)&&(this.#e.removeChild(this.#r.get(e).element),this.#r.delete(e))}redraw(){for(const e of this.#r.values()){const{range:t,draw:r,options:i,element:s}=e;this.#e.removeChild(s);const a=t.getClientRects(),o=r(a,i);this.#e.append(o),e.element=o,e.rects=a}}hitTest({x:e,y:t}){const r=Array.from(this.#r.entries());for(let i=r.length-1;i>=0;i--){const[s,a]=r[i];for(const{left:o,top:c,right:l,bottom:u}of a.rects)if(c<=t&&o<=e&&u>t&&l>e)return[s,a.range]}return[]}static underline(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");if(a.setAttribute("fill",r),s==="vertical-rl"||s==="vertical-lr")for(const{right:o,top:c,height:l}of e){const u=se("rect");u.setAttribute("x",o-i),u.setAttribute("y",c),u.setAttribute("height",l),u.setAttribute("width",i),a.append(u)}else for(const{left:o,bottom:c,width:l}of e){const u=se("rect");u.setAttribute("x",o),u.setAttribute("y",c-i),u.setAttribute("height",i),u.setAttribute("width",l),a.append(u)}return a}static strikethrough(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");if(a.setAttribute("fill",r),s==="vertical-rl"||s==="vertical-lr")for(const{right:o,left:c,top:l,height:u}of e){const h=se("rect");h.setAttribute("x",(o+c)/2),h.setAttribute("y",l),h.setAttribute("height",u),h.setAttribute("width",i),a.append(h)}else for(const{left:o,top:c,bottom:l,width:u}of e){const h=se("rect");h.setAttribute("x",o),h.setAttribute("y",(c+l)/2),h.setAttribute("height",i),h.setAttribute("width",u),a.append(h)}return a}static squiggly(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",i);const o=i*1.5;if(s==="vertical-rl"||s==="vertical-lr")for(const{right:c,top:l,height:u}of e){const h=se("path"),p=Math.round(u/o/1.5),g=u/p,f=Array.from({length:p},(b,d)=>`l${d%2?-o:o} ${g}`).join("");h.setAttribute("d",`M${c} ${l}${f}`),a.append(h)}else for(const{left:c,bottom:l,width:u}of e){const h=se("path"),p=Math.round(u/o/1.5),g=u/p,f=Array.from({length:p},(b,d)=>`l${g} ${d%2?o:-o}`).join("");h.setAttribute("d",`M${c} ${l}${f}`),a.append(h)}return a}static highlight(e,t={}){const{color:r="red"}=t,i=se("g");i.setAttribute("fill",r),i.style.opacity="var(--overlayer-highlight-opacity, .3)",i.style.mixBlendMode="var(--overlayer-highlight-blend-mode, normal)";for(const{left:s,top:a,height:o,width:c}of e){const l=se("rect");l.setAttribute("x",s),l.setAttribute("y",a),l.setAttribute("height",o),l.setAttribute("width",c),i.append(l)}return i}static outline(e,t={}){const{color:r="red",width:i=3,radius:s=3}=t,a=se("g");a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",i);for(const{left:o,top:c,height:l,width:u}of e){const h=se("rect");h.setAttribute("x",o),h.setAttribute("y",c),h.setAttribute("height",l),h.setAttribute("width",u),h.setAttribute("rx",s),a.append(h)}return a}static copyImage([e],t={}){const{src:r}=t,i=se("image"),{left:s,top:a,height:o,width:c}=e;return i.setAttribute("href",r),i.setAttribute("x",s),i.setAttribute("y",a),i.setAttribute("height",o),i.setAttribute("width",c),i}}const uu=(n,e)=>{const t=[];for(let r=e.currentNode;r;r=e.nextNode()){const i=n.comparePoint(r,0);if(i===0)t.push(r);else if(i>0)break}return t},hu=(n,e)=>{const t=[];for(let r=e.nextNode();r;r=e.nextNode())t.push(r);return t},fu=NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_CDATA_SECTION,du=n=>{if(n.nodeType===1){const e=n.tagName.toLowerCase();return e==="script"||e==="style"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_SKIP}return NodeFilter.FILTER_ACCEPT},qa=function*(n,e,t){const r=n.commonAncestorContainer??n.body??n,i=document.createTreeWalker(r,fu,{acceptNode:t||du}),a=(n.commonAncestorContainer?uu:hu)(n,i),o=a.map(l=>l.nodeValue),c=(l,u,h,p)=>{const g=document.createRange();return g.setStart(a[l],u),g.setEnd(a[h],p),g};for(const l of e(o,c))yield l},xt="foliate-search:",pu=async n=>{const e=new Uint8Array(await n.slice(0,4).arrayBuffer());return e[0]===80&&e[1]===75&&e[2]===3&&e[3]===4},gu=async n=>{const e=new Uint8Array(await n.slice(0,5).arrayBuffer());return e[0]===37&&e[1]===80&&e[2]===68&&e[3]===70&&e[4]===45},mu=({name:n,type:e})=>e==="application/vnd.comicbook+zip"||n.endsWith(".cbz"),bu=({name:n,type:e})=>e==="application/x-fictionbook+xml"||n.endsWith(".fb2"),yu=({name:n,type:e})=>e==="application/x-zip-compressed-fb2"||n.endsWith(".fb2.zip")||n.endsWith(".fbz"),vu=async n=>{const{configure:e,ZipReader:t,BlobReader:r,TextWriter:i,BlobWriter:s}=await Promise.resolve().then(()=>xh);e({useWebWorkers:!1});const o=await new t(new r(n)).getEntries(),c=new Map(o.map(g=>[g.filename,g])),l=g=>(f,...b)=>c.has(f)?g(c.get(f),...b):null,u=l(g=>g.getData(new i)),h=l((g,f)=>g.getData(new s(f)));return{entries:o,loadText:u,loadBlob:h,getSize:g=>c.get(g)?.uncompressedSize??0}},$a=async n=>n.isFile?n:(await Promise.all(Array.from(await new Promise((e,t)=>n.createReader().readEntries(r=>e(r),r=>t(r))),$a))).flat(),wu=async n=>{const e=await $a(n),t=await Promise.all(e.map(u=>new Promise((h,p)=>u.file(g=>h([g,u.fullPath]),g=>p(g))))),r=new Map(t.map(([u,h])=>[h.replace(n.fullPath+"/",""),u])),i=new TextDecoder,s=u=>u?i.decode(u):null,a=u=>r.get(u)?.arrayBuffer()??null;return{loadText:async u=>s(await a(u)),loadBlob:u=>r.get(u),getSize:u=>r.get(u)?.size??0}};class Wa extends Error{}class Ha extends Error{}class Va extends Error{}const xu=async n=>{const e=await fetch(n);if(!e.ok)throw new Wa(`${e.status} ${e.statusText}`,{cause:e});return new File([await e.blob()],new URL(e.url).pathname)},Ga=async n=>{typeof n=="string"&&(n=await xu(n));let e;if(n.isDirectory){const t=await wu(n),{EPUB:r}=await Promise.resolve().then(()=>oc);e=await new r(t).init()}else if(n.size)if(await pu(n)){const t=await vu(n);if(mu(n)){const{makeComicBook:r}=await Promise.resolve().then(()=>Hh);e=r(t,n)}else if(yu(n)){const{makeFB2:r}=await Promise.resolve().then(()=>uc),{entries:i}=t,s=i.find(o=>o.filename.endsWith(".fb2")),a=await t.loadBlob((s??i[0]).filename);e=await r(a)}else{const{EPUB:r}=await Promise.resolve().then(()=>oc);e=await new r(t).init()}}else if(await gu(n)){const{makePDF:t}=await Promise.resolve().then(()=>Qh);e=await t(n)}else{const{isMOBI:t,MOBI:r}=await Promise.resolve().then(()=>Mf);if(await t(n)){const i=await Promise.resolve().then(()=>Vf);e=await new r({unzlib:i.unzlibSync}).open(n)}else if(bu(n)){const{makeFB2:i}=await Promise.resolve().then(()=>uc);e=await i(n)}}else throw new Ha("File not found");if(!e)throw new Va("File type not supported");return e};class Kn{#e;#r;#t;#n;constructor(e,t,r={}){this.#r=e,this.#t=t,this.#n=r,this.#n.hidden&&this.hide(),this.#r.addEventListener("mousemove",({screenX:i,screenY:s})=>{i===this.#n.x&&s===this.#n.y||(this.#n.x=i,this.#n.y=s,this.show(),this.#e&&clearTimeout(this.#e),t()&&(this.#e=setTimeout(this.hide.bind(this),1e3)))},!1)}cloneFor(e){return new Kn(e,this.#t,this.#n)}hide(){this.#r.style.cursor="none",this.#n.hidden=!0}show(){this.#r.style.removeProperty("cursor"),this.#n.hidden=!1}}class _u extends EventTarget{#e=[];#r=-1;pushState(e){const t=this.#e[this.#r];t===e||t?.fraction&&t.fraction===e.fraction||(this.#e[++this.#r]=e,this.#e.length=this.#r+1,this.dispatchEvent(new Event("index-change")))}replaceState(e){const t=this.#r;this.#e[t]=e}back(){const e=this.#r;if(e<=0)return;const t={state:this.#e[e-1]};this.#r=e-1,this.dispatchEvent(new CustomEvent("popstate",{detail:t})),this.dispatchEvent(new Event("index-change"))}forward(){const e=this.#r;if(e>=this.#e.length-1)return;const t={state:this.#e[e+1]};this.#r=e+1,this.dispatchEvent(new CustomEvent("popstate",{detail:t})),this.dispatchEvent(new Event("index-change"))}get canGoBack(){return this.#r>0}get canGoForward(){return this.#r<this.#e.length-1}clear(){this.#e=[],this.#r=-1}}const Su=n=>{if(!n)return{};try{const e=Intl.getCanonicalLocales(n)[0],t=new Intl.Locale(e),r=["zh","ja","kr"].includes(t.language),i=(t.getTextInfo?.()??t.textInfo)?.direction;return{canonical:e,locale:t,isCJK:r,direction:i}}catch(e){return console.warn(e),{}}};let Xa=class extends HTMLElement{#e=this.attachShadow({mode:"closed"});#r;#t;#n;#i=new Map;#s=new Kn(this,()=>this.hasAttribute("autohide-cursor"));isFixedLayout=!1;lastLocation;history=new _u;constructor(){super(),this.history.addEventListener("popstate",({detail:e})=>{const t=this.resolveNavigation(e.state);this.renderer.goTo(t)})}async open(e){if((typeof e=="string"||typeof e.arrayBuffer=="function"||e.isDirectory)&&(e=await Ga(e)),this.book=e,this.language=Su(e.metadata?.language),e.splitTOCHref&&e.getTOCFragment){const t=e.sections.map(s=>s.id);this.#r=new lu(e.sections,1500,1600);const r=e.splitTOCHref.bind(e),i=e.getTOCFragment.bind(e);this.#t=new za,await this.#t.init({toc:e.toc??[],ids:t,splitHref:r,getFragment:i}),this.#n=new za,await this.#n.init({toc:e.pageList??[],ids:t,splitHref:r,getFragment:i})}if(this.isFixedLayout=this.book.rendition?.layout==="pre-paginated",this.isFixedLayout?(await Promise.resolve().then(()=>Xf),this.renderer=document.createElement("foliate-fxl")):(await Promise.resolve().then(()=>sd),this.renderer=document.createElement("foliate-paginator")),this.renderer.setAttribute("exportparts","head,foot,filter"),this.renderer.addEventListener("load",t=>this.#c(t.detail)),this.renderer.addEventListener("relocate",t=>this.#a(t.detail)),this.renderer.addEventListener("create-overlayer",t=>t.detail.attach(this.#l(t.detail))),this.renderer.open(e),this.#e.append(this.renderer),e.sections.some(t=>t.mediaOverlay)){const t=e.media.activeClass,r=e.media.playbackActiveClass;this.mediaOverlay=e.getMediaOverlay();let i;this.mediaOverlay.addEventListener("highlight",s=>{const a=this.resolveNavigation(s.detail.text);this.renderer.goTo(a).then(()=>{const{doc:o}=this.renderer.getContents().find(l=>l.index=a.index),c=a.anchor(o);c.classList.add(t),r&&c.ownerDocument.documentElement.classList.add(r),i=new WeakRef(c)})}),this.mediaOverlay.addEventListener("unhighlight",()=>{const s=i?.deref();s&&(s.classList.remove(t),r&&s.ownerDocument.documentElement.classList.remove(r))})}}close(){this.renderer?.destroy(),this.renderer?.remove(),this.#r=null,this.#t=null,this.#n=null,this.#i=new Map,this.lastLocation=null,this.history.clear(),this.tts=null,this.mediaOverlay=null}goToTextStart(){return this.goTo(this.book.landmarks?.find(e=>e.type.includes("bodymatter")||e.type.includes("text"))?.href??this.book.sections.findIndex(e=>e.linear!=="no"))}async init({lastLocation:e,showTextStart:t}){const r=e?this.resolveNavigation(e):null;r?(await this.renderer.goTo(r),this.history.pushState(e)):t?await this.goToTextStart():(this.history.pushState(0),await this.next())}#o(e,t,r){return this.dispatchEvent(new CustomEvent(e,{detail:t,cancelable:r}))}#a({reason:e,range:t,index:r,fraction:i,size:s}){const a=this.#r?.getProgress(r,i,s)??{},o=this.#t?.getProgress(r,t),c=this.#n?.getProgress(r,t),l=this.getCFI(r,t);this.lastLocation={...a,tocItem:o,pageItem:c,cfi:l,range:t},(e==="snap"||e==="page"||e==="scroll")&&this.history.replaceState(l),this.#o("relocate",this.lastLocation)}#c({doc:e,index:t}){e.documentElement.lang||=this.language.canonical??"",this.language.isCJK||(e.documentElement.dir||=this.language.direction??""),this.#u(e,t),this.#s.cloneFor(e.documentElement),this.#o("load",{doc:e,index:t})}#u(e,t){const{book:r}=this,i=r.sections[t];e.addEventListener("click",s=>{const a=s.target.closest("a[href]");if(!a)return;s.preventDefault();const o=a.getAttribute("href"),c=i?.resolveHref?.(o)??o;r?.isExternal?.(c)?Promise.resolve(this.#o("external-link",{a,href:c},!0)).then(l=>l?globalThis.open(c,"_blank"):null).catch(l=>console.error(l)):Promise.resolve(this.#o("link",{a,href:c},!0)).then(l=>l?this.goTo(c):null).catch(l=>console.error(l))})}async addAnnotation(e,t){const{value:r}=e;if(r.startsWith(xt)){const c=r.replace(xt,""),{index:l,anchor:u}=await this.resolveNavigation(c),h=this.#h(l);if(h){const{overlayer:p,doc:g}=h;if(t){p.remove(r);return}const f=g?u(g):u;p.add(r,f,Ua.outline)}return}const{index:i,anchor:s}=await this.resolveNavigation(r),a=this.#h(i);if(a){const{overlayer:c,doc:l}=a;if(c.remove(r),!t){const u=l?s(l):s,h=(p,g)=>c.add(r,u,p,g);this.#o("draw-annotation",{draw:h,annotation:e,doc:l,range:u})}}const o=this.#t.getProgress(i)?.label??"";return{index:i,label:o}}deleteAnnotation(e){return this.addAnnotation(e,!0)}#h(e){return this.renderer.getContents().find(t=>t.index===e&&t.overlayer)}#l({doc:e,index:t}){const r=new Ua;e.addEventListener("click",s=>{const[a,o]=r.hitTest(s);a&&!a.startsWith(xt)&&this.#o("show-annotation",{value:a,index:t,range:o})},!1);const i=this.#i.get(t);if(i)for(const s of i)this.addAnnotation(s);return this.#o("create-overlay",{index:t}),r}async showAnnotation(e){const{value:t}=e,r=await this.goTo(t);if(r){const{index:i,anchor:s}=r,{doc:a}=this.#h(i),o=s(a);this.#o("show-annotation",{value:t,index:i,range:o})}}getCFI(e,t){const r=this.book.sections[e].cfi??Na.fromIndex(e);return t?tu(r,au(t)):r}resolveCFI(e){if(this.book.resolveCFI)return this.book.resolveCFI(e);{const t=wt(e);return{index:Na.toIndex((t.parent??t).shift()),anchor:s=>Da(s,t)}}}resolveNavigation(e){try{if(typeof e=="number")return{index:e};if(typeof e.fraction=="number"){const[t,r]=this.#r.getSection(e.fraction);return{index:t,anchor:r}}return Bt.test(e)?this.resolveCFI(e):this.book.resolveHref(e)}catch(t){console.error(t),console.error(`Could not resolve target ${e}`)}}async goTo(e){const t=this.resolveNavigation(e);try{return await this.renderer.goTo(t),this.history.pushState(e),t}catch(r){console.error(r),console.error(`Could not go to ${e}`)}}async goToFraction(e){const[t,r]=this.#r.getSection(e);await this.renderer.goTo({index:t,anchor:r}),this.history.pushState({fraction:e})}async select(e){try{const t=await this.resolveNavigation(e);await this.renderer.goTo({...t,select:!0}),this.history.pushState(e)}catch(t){console.error(t),console.error(`Could not go to ${e}`)}}deselect(){for(const{doc:e}of this.renderer.getContents())e.defaultView.getSelection().removeAllRanges()}getSectionFractions(){return(this.#r?.sectionFractions??[]).map(e=>e+Number.EPSILON)}getProgressOf(e,t){const r=this.#t?.getProgress(e,t),i=this.#n?.getProgress(e,t);return{tocItem:r,pageItem:i}}async getTOCItemOf(e){try{const{index:t,anchor:r}=await this.resolveNavigation(e),i=await this.book.sections[t].createDocument(),s=r(i),a=s instanceof Range,o=a?s:i.createRange();return a||o.selectNodeContents(s),this.#t.getProgress(t,o)}catch(t){console.error(t),console.error(`Could not get ${e}`)}}async prev(e){await this.renderer.prev(e)}async next(e){await this.renderer.next(e)}goLeft(){return this.book.dir==="rtl"?this.next():this.prev()}goRight(){return this.book.dir==="rtl"?this.prev():this.next()}async*#f(e,t,r){const i=await this.book.sections[r].createDocument();for(const{range:s,excerpt:a}of e(i,t))yield{cfi:this.getCFI(r,s),excerpt:a}}async*#p(e,t){const{sections:r}=this.book;for(const[i,{createDocument:s}]of r.entries()){if(!s)continue;const a=await s(),o=Array.from(e(a,t),({range:l,excerpt:u})=>({cfi:this.getCFI(i,l),excerpt:u}));yield{progress:(i+1)/r.length},o.length&&(yield{index:i,subitems:o})}}async*search(e){this.clearSearch();const{searchMatcher:t}=await Promise.resolve().then(()=>cd),{query:r,index:i}=e,s=t(qa,{defaultLocale:this.language,...e}),a=i!=null?this.#f(s,r,i):this.#p(s,r),o=[];this.#i.set(i,o);for await(const c of a)if(c.subitems){const l=c.subitems.map(({cfi:u})=>({value:xt+u}));this.#i.set(c.index,l);for(const u of l)this.addAnnotation(u);yield{label:this.#t.getProgress(c.index)?.label??"",subitems:c.subitems}}else{if(c.cfi){const l={value:xt+c.cfi};o.push(l),this.addAnnotation(l)}yield c}yield"done"}clearSearch(){for(const e of this.#i.values())for(const t of e)this.deleteAnnotation(t);this.#i.clear()}async initTTS(e="word",t){const r=this.renderer.getContents()[0].doc;if(this.tts&&this.tts.doc===r)return;const{TTS:i}=await Promise.resolve().then(()=>md);this.tts=new i(r,qa,t||(s=>this.renderer.scrollToAnchor(s,!0)),e)}startMediaOverlay(){const{index:e}=this.renderer.getContents()[0];return this.mediaOverlay.start(e)}};customElements.define("foliate-view",Xa);const Eu=Object.freeze(Object.defineProperty({__proto__:null,NotFoundError:Ha,ResponseError:Wa,UnsupportedTypeError:Va,View:Xa,makeBook:Ga},Symbol.toStringTag,{value:"Module"})),fe=-2,G=-3,ze=-5,me=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Tu=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Ru=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ku=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ou=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Au=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Cu=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],$t=15;function Yn(){let n,e,t,r,i,s;function a(c,l,u,h,p,g,f,b,d,m,y){let w,_,R,E,S,x,A,T,k,O,I,L,P,j,F;O=0,S=u;do t[c[l+O]]++,O++,S--;while(S!==0);if(t[0]==u)return f[0]=-1,b[0]=0,0;for(T=b[0],x=1;x<=$t&&t[x]===0;x++);for(A=x,T<x&&(T=x),S=$t;S!==0&&t[S]===0;S--);for(R=S,T>S&&(T=S),b[0]=T,j=1<<x;x<S;x++,j<<=1)if((j-=t[x])<0)return G;if((j-=t[S])<0)return G;for(t[S]+=j,s[1]=x=0,O=1,P=2;--S!=0;)s[P]=x+=t[O],P++,O++;S=0,O=0;do(x=c[l+O])!==0&&(y[s[x]++]=S),O++;while(++S<u);for(u=s[R],s[0]=S=0,O=0,E=-1,L=-T,i[0]=0,I=0,F=0;A<=R;A++)for(w=t[A];w--!=0;){for(;A>L+T;){if(E++,L+=T,F=R-L,F=F>T?T:F,(_=1<<(x=A-L))>w+1&&(_-=w+1,P=A,x<F))for(;++x<F&&!((_<<=1)<=t[++P]);)_-=t[P];if(F=1<<x,m[0]+F>1440)return G;i[E]=I=m[0],m[0]+=F,E!==0?(s[E]=S,r[0]=x,r[1]=T,x=S>>>L-T,r[2]=I-i[E-1]-x,d.set(r,3*(i[E-1]+x))):f[0]=I}for(r[1]=A-L,O>=u?r[0]=192:y[O]<h?(r[0]=y[O]<256?0:96,r[2]=y[O++]):(r[0]=g[y[O]-h]+16+64,r[2]=p[y[O++]-h]),_=1<<A-L,x=S>>>L;x<F;x+=_)d.set(r,3*(I+x));for(x=1<<A-1;S&x;x>>>=1)S^=x;for(S^=x,k=(1<<L)-1;(S&k)!=s[E];)E--,L-=T,k=(1<<L)-1}return j!==0&&R!=1?ze:0}function o(c){let l;for(n||(n=[],e=[],t=new Int32Array(16),r=[],i=new Int32Array($t),s=new Int32Array(16)),e.length<c&&(e=[]),l=0;l<c;l++)e[l]=0;for(l=0;l<16;l++)t[l]=0;for(l=0;l<3;l++)r[l]=0;i.set(t.subarray(0,$t),0),s.set(t.subarray(0,16),0)}this.inflate_trees_bits=function(c,l,u,h,p){let g;return o(19),n[0]=0,g=a(c,0,19,19,null,null,u,l,h,n,e),g==G?p.msg="oversubscribed dynamic bit lengths tree":g!=ze&&l[0]!==0||(p.msg="incomplete dynamic bit lengths tree",g=G),g},this.inflate_trees_dynamic=function(c,l,u,h,p,g,f,b,d){let m;return o(288),n[0]=0,m=a(u,0,c,257,ku,Ou,g,h,b,n,e),m!=0||h[0]===0?(m==G?d.msg="oversubscribed literal/length tree":m!=-4&&(d.msg="incomplete literal/length tree",m=G),m):(o(288),m=a(u,c,l,0,Au,Cu,f,p,b,n,e),m!=0||p[0]===0&&c>257?(m==G?d.msg="oversubscribed distance tree":m==ze?(d.msg="incomplete distance tree",m=G):m!=-4&&(d.msg="empty distance tree with lengths",m=G),m):0)}}Yn.inflate_trees_fixed=function(n,e,t,r){return n[0]=9,e[0]=5,t[0]=Tu,r[0]=Ru,0};function Iu(){const n=this;let e,t,r,i,s=0,a=0,o=0,c=0,l=0,u=0,h=0,p=0,g=0,f=0;function b(d,m,y,w,_,R,E,S){let x,A,T,k,O,I,L,P,j,F,q,K,D,Y,z,U;L=S.next_in_index,P=S.avail_in,O=E.bitb,I=E.bitk,j=E.write,F=j<E.read?E.read-j-1:E.end-j,q=me[d],K=me[m];do{for(;I<20;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;if(x=O&q,A=y,T=w,U=3*(T+x),(k=A[U])!==0)for(;;){if(O>>=A[U+1],I-=A[U+1],16&k){for(k&=15,D=A[U+2]+(O&me[k]),O>>=k,I-=k;I<15;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;for(x=O&K,A=_,T=R,U=3*(T+x),k=A[U];;){if(O>>=A[U+1],I-=A[U+1],16&k){for(k&=15;I<k;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;if(Y=A[U+2]+(O&me[k]),O>>=k,I-=k,F-=D,j>=Y)z=j-Y,j-z>0&&2>j-z?(E.win[j++]=E.win[z++],E.win[j++]=E.win[z++],D-=2):(E.win.set(E.win.subarray(z,z+2),j),j+=2,z+=2,D-=2);else{z=j-Y;do z+=E.end;while(z<0);if(k=E.end-z,D>k){if(D-=k,j-z>0&&k>j-z)do E.win[j++]=E.win[z++];while(--k!=0);else E.win.set(E.win.subarray(z,z+k),j),j+=k,z+=k,k=0;z=0}}if(j-z>0&&D>j-z)do E.win[j++]=E.win[z++];while(--D!=0);else E.win.set(E.win.subarray(z,z+D),j),j+=D,z+=D,D=0;break}if(64&k)return S.msg="invalid distance code",D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,G;x+=A[U+2],x+=O&me[k],U=3*(T+x),k=A[U]}break}if(64&k)return 32&k?(D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,1):(S.msg="invalid literal/length code",D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,G);if(x+=A[U+2],x+=O&me[k],U=3*(T+x),(k=A[U])===0){O>>=A[U+1],I-=A[U+1],E.win[j++]=A[U+2],F--;break}}else O>>=A[U+1],I-=A[U+1],E.win[j++]=A[U+2],F--}while(F>=258&&P>=10);return D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,0}n.init=function(d,m,y,w,_,R){e=0,h=d,p=m,r=y,g=w,i=_,f=R,t=null},n.proc=function(d,m,y){let w,_,R,E,S,x,A,T=0,k=0,O=0;for(O=m.next_in_index,E=m.avail_in,T=d.bitb,k=d.bitk,S=d.write,x=S<d.read?d.read-S-1:d.end-S;;)switch(e){case 0:if(x>=258&&E>=10&&(d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,y=b(h,p,r,g,i,f,d,m),O=m.next_in_index,E=m.avail_in,T=d.bitb,k=d.bitk,S=d.write,x=S<d.read?d.read-S-1:d.end-S,y!=0)){e=y==1?7:9;break}o=h,t=r,a=g,e=1;case 1:for(w=o;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}if(_=3*(a+(T&me[w])),T>>>=t[_+1],k-=t[_+1],R=t[_],R===0){c=t[_+2],e=6;break}if(16&R){l=15&R,s=t[_+2],e=2;break}if(!(64&R)){o=R,a=_/3+t[_+2];break}if(32&R){e=7;break}return e=9,m.msg="invalid literal/length code",y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 2:for(w=l;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}s+=T&me[w],T>>=w,k-=w,o=p,t=i,a=f,e=3;case 3:for(w=o;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}if(_=3*(a+(T&me[w])),T>>=t[_+1],k-=t[_+1],R=t[_],16&R){l=15&R,u=t[_+2],e=4;break}if(!(64&R)){o=R,a=_/3+t[_+2];break}return e=9,m.msg="invalid distance code",y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 4:for(w=l;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}u+=T&me[w],T>>=w,k-=w,e=5;case 5:for(A=S-u;A<0;)A+=d.end;for(;s!==0;){if(x===0&&(S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0&&(d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0)))return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);d.win[S++]=d.win[A++],x--,A==d.end&&(A=0),s--}e=0;break;case 6:if(x===0&&(S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0&&(d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0)))return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,d.win[S++]=c,x--,e=0;break;case 7:if(k>7&&(k-=8,E++,O--),d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,d.read!=d.write)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);e=8;case 8:return y=1,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 9:return y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);default:return y=fe,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y)}},n.free=function(){}}const Ka=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Lu(n,e){const t=this;let r,i=0,s=0,a=0,o=0;const c=[0],l=[0],u=new Iu;let h=0,p=new Int32Array(4320);const g=new Yn;t.bitk=0,t.bitb=0,t.win=new Uint8Array(e),t.end=e,t.read=0,t.write=0,t.reset=function(f,b){b&&(b[0]=0),i==6&&u.free(f),i=0,t.bitk=0,t.bitb=0,t.read=t.write=0},t.reset(n,null),t.inflate_flush=function(f,b){let d,m,y;return m=f.next_out_index,y=t.read,d=(y<=t.write?t.write:t.end)-y,d>f.avail_out&&(d=f.avail_out),d!==0&&b==ze&&(b=0),f.avail_out-=d,f.total_out+=d,f.next_out.set(t.win.subarray(y,y+d),m),m+=d,y+=d,y==t.end&&(y=0,t.write==t.end&&(t.write=0),d=t.write-y,d>f.avail_out&&(d=f.avail_out),d!==0&&b==ze&&(b=0),f.avail_out-=d,f.total_out+=d,f.next_out.set(t.win.subarray(y,y+d),m),m+=d,y+=d),f.next_out_index=m,t.read=y,b},t.proc=function(f,b){let d,m,y,w,_,R,E,S;for(w=f.next_in_index,_=f.avail_in,m=t.bitb,y=t.bitk,R=t.write,E=R<t.read?t.read-R-1:t.end-R;;){let x,A,T,k,O,I,L,P;switch(i){case 0:for(;y<3;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}switch(d=7&m,h=1&d,d>>>1){case 0:m>>>=3,y-=3,d=7&y,m>>>=d,y-=d,i=1;break;case 1:x=[],A=[],T=[[]],k=[[]],Yn.inflate_trees_fixed(x,A,T,k),u.init(x[0],A[0],T[0],0,k[0],0),m>>>=3,y-=3,i=6;break;case 2:m>>>=3,y-=3,i=3;break;case 3:return m>>>=3,y-=3,i=9,f.msg="invalid block type",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b)}break;case 1:for(;y<32;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if((~m>>>16&65535)!=(65535&m))return i=9,f.msg="invalid stored block lengths",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);s=65535&m,m=y=0,i=s!==0?2:h!==0?7:0;break;case 2:if(_===0||E===0&&(R==t.end&&t.read!==0&&(R=0,E=R<t.read?t.read-R-1:t.end-R),E===0&&(t.write=R,b=t.inflate_flush(f,b),R=t.write,E=R<t.read?t.read-R-1:t.end-R,R==t.end&&t.read!==0&&(R=0,E=R<t.read?t.read-R-1:t.end-R),E===0)))return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);if(b=0,d=s,d>_&&(d=_),d>E&&(d=E),t.win.set(f.read_buf(w,d),R),w+=d,_-=d,R+=d,E-=d,(s-=d)!=0)break;i=h!==0?7:0;break;case 3:for(;y<14;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(a=d=16383&m,(31&d)>29||(d>>5&31)>29)return i=9,f.msg="too many length or distance symbols",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);if(d=258+(31&d)+(d>>5&31),!r||r.length<d)r=[];else for(S=0;S<d;S++)r[S]=0;m>>>=14,y-=14,o=0,i=4;case 4:for(;o<4+(a>>>10);){for(;y<3;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}r[Ka[o++]]=7&m,m>>>=3,y-=3}for(;o<19;)r[Ka[o++]]=0;if(c[0]=7,d=g.inflate_trees_bits(r,c,l,p,f),d!=0)return(b=d)==G&&(r=null,i=9),t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);o=0,i=5;case 5:for(;d=a,!(o>=258+(31&d)+(d>>5&31));){let j,F;for(d=c[0];y<d;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(d=p[3*(l[0]+(m&me[d]))+1],F=p[3*(l[0]+(m&me[d]))+2],F<16)m>>>=d,y-=d,r[o++]=F;else{for(S=F==18?7:F-14,j=F==18?11:3;y<d+S;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(m>>>=d,y-=d,j+=m&me[S],m>>>=S,y-=S,S=o,d=a,S+j>258+(31&d)+(d>>5&31)||F==16&&S<1)return r=null,i=9,f.msg="invalid bit length repeat",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);F=F==16?r[S-1]:0;do r[S++]=F;while(--j!=0);o=S}}if(l[0]=-1,O=[],I=[],L=[],P=[],O[0]=9,I[0]=6,d=a,d=g.inflate_trees_dynamic(257+(31&d),1+(d>>5&31),r,O,I,L,P,p,f),d!=0)return d==G&&(r=null,i=9),b=d,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);u.init(O[0],I[0],p,L[0],p,P[0]),i=6;case 6:if(t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,(b=u.proc(t,f,b))!=1)return t.inflate_flush(f,b);if(b=0,u.free(f),w=f.next_in_index,_=f.avail_in,m=t.bitb,y=t.bitk,R=t.write,E=R<t.read?t.read-R-1:t.end-R,h===0){i=0;break}i=7;case 7:if(t.write=R,b=t.inflate_flush(f,b),R=t.write,E=R<t.read?t.read-R-1:t.end-R,t.read!=t.write)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);i=8;case 8:return b=1,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);case 9:return b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);default:return b=fe,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b)}}},t.free=function(f){t.reset(f,null),t.win=null,p=null},t.set_dictionary=function(f,b,d){t.win.set(f.subarray(b,b+d),0),t.read=t.write=d},t.sync_point=function(){return i==1?1:0}}const We=13,Pu=[0,0,255,255];function Mu(){const n=this;function e(t){return t&&t.istate?(t.total_in=t.total_out=0,t.msg=null,t.istate.mode=7,t.istate.blocks.reset(t,null),0):fe}n.mode=0,n.method=0,n.was=[0],n.need=0,n.marker=0,n.wbits=0,n.inflateEnd=function(t){return n.blocks&&n.blocks.free(t),n.blocks=null,0},n.inflateInit=function(t,r){return t.msg=null,n.blocks=null,r<8||r>15?(n.inflateEnd(t),fe):(n.wbits=r,t.istate.blocks=new Lu(t,1<<r),e(t),0)},n.inflate=function(t,r){let i,s;if(!t||!t.istate||!t.next_in)return fe;const a=t.istate;for(r=r==4?ze:0,i=ze;;)switch(a.mode){case 0:if(t.avail_in===0)return i;if(i=r,t.avail_in--,t.total_in++,(15&(a.method=t.read_byte(t.next_in_index++)))!=8){a.mode=We,t.msg="unknown compression method",a.marker=5;break}if(8+(a.method>>4)>a.wbits){a.mode=We,t.msg="invalid win size",a.marker=5;break}a.mode=1;case 1:if(t.avail_in===0)return i;if(i=r,t.avail_in--,t.total_in++,s=255&t.read_byte(t.next_in_index++),((a.method<<8)+s)%31!=0){a.mode=We,t.msg="incorrect header check",a.marker=5;break}if(!(32&s)){a.mode=7;break}a.mode=2;case 2:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need=(255&t.read_byte(t.next_in_index++))<<24&4278190080,a.mode=3;case 3:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need+=(255&t.read_byte(t.next_in_index++))<<16&16711680,a.mode=4;case 4:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need+=(255&t.read_byte(t.next_in_index++))<<8&65280,a.mode=5;case 5:return t.avail_in===0?i:(i=r,t.avail_in--,t.total_in++,a.need+=255&t.read_byte(t.next_in_index++),a.mode=6,2);case 6:return a.mode=We,t.msg="need dictionary",a.marker=0,fe;case 7:if(i=a.blocks.proc(t,i),i==G){a.mode=We,a.marker=0;break}if(i==0&&(i=r),i!=1)return i;i=r,a.blocks.reset(t,a.was),a.mode=12;case 12:return t.avail_in=0,1;case We:return G;default:return fe}},n.inflateSetDictionary=function(t,r,i){let s=0,a=i;if(!t||!t.istate||t.istate.mode!=6)return fe;const o=t.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,s=i-a),o.blocks.set_dictionary(r,s,a),o.mode=7,0},n.inflateSync=function(t){let r,i,s,a,o;if(!t||!t.istate)return fe;const c=t.istate;if(c.mode!=We&&(c.mode=We,c.marker=0),(r=t.avail_in)===0)return ze;for(i=t.next_in_index,s=c.marker;r!==0&&s<4;)t.read_byte(i)==Pu[s]?s++:s=t.read_byte(i)!==0?0:4-s,i++,r--;return t.total_in+=i-t.next_in_index,t.next_in_index=i,t.avail_in=r,c.marker=s,s!=4?G:(a=t.total_in,o=t.total_out,e(t),t.total_in=a,t.total_out=o,c.mode=7,0)},n.inflateSyncPoint=function(t){return t&&t.istate&&t.istate.blocks?t.istate.blocks.sync_point():fe}}function Ya(){}Ya.prototype={inflateInit(n){const e=this;return e.istate=new Mu,n||(n=15),e.istate.inflateInit(e,n)},inflate(n){const e=this;return e.istate?e.istate.inflate(e,n):fe},inflateEnd(){const n=this;if(!n.istate)return fe;const e=n.istate.inflateEnd(n);return n.istate=null,e},inflateSync(){const n=this;return n.istate?n.istate.inflateSync(n):fe},inflateSetDictionary(n,e){const t=this;return t.istate?t.istate.inflateSetDictionary(t,n,e):fe},read_byte(n){return this.next_in[n]},read_buf(n,e){return this.next_in.subarray(n,n+e)}};const Je=4294967295,Ze=65535,Ja=33639248,Za=101075792,at=22,ae=void 0,He="undefined",_t="function";let Qa=class{constructor(e){return class extends TransformStream{constructor(t,r){const i=new e(r);super({transform(s,a){a.enqueue(i.append(s))},flush(s){const a=i.flush();a&&s.enqueue(a)}})}}}},eo=2;try{typeof navigator!=He&&navigator.hardwareConcurrency&&(eo=navigator.hardwareConcurrency)}catch{}const ju={chunkSize:524288,maxWorkers:eo,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:ae,CompressionStreamNative:typeof CompressionStream!=He&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=He&&DecompressionStream},Ve=Object.assign({},ju);function to(n){const{baseURL:e,chunkSize:t,maxWorkers:r,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:a,Deflate:o,Inflate:c,CompressionStream:l,DecompressionStream:u,workerScripts:h}=n;if(Ge("baseURL",e),Ge("chunkSize",t),Ge("maxWorkers",r),Ge("terminateWorkerTimeout",i),Ge("useCompressionStream",s),Ge("useWebWorkers",a),o&&(Ve.CompressionStream=new Qa(o)),c&&(Ve.DecompressionStream=new Qa(c)),Ge("CompressionStream",l),Ge("DecompressionStream",u),h!==ae){const{deflate:p,inflate:g}=h;if((p||g)&&(Ve.workerScripts||(Ve.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");Ve.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");Ve.workerScripts.inflate=g}}}function Ge(n,e){e!==ae&&(Ve[n]=e)}const ro=[];for(let n=0;n<256;n++){let e=n;for(let t=0;t<8;t++)1&e?e=e>>>1^3988292384:e>>>=1;ro[n]=e}class Wt{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,i=0|e.length;r<i;r++)t=t>>>8^ro[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class no extends TransformStream{constructor(){let e;const t=new Wt;super({transform(r,i){t.append(r),i.enqueue(r)},flush(){const r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}const oe={concat(n,e){if(n.length===0||e.length===0)return n.concat(e);const t=n[n.length-1],r=oe.getPartial(t);return r===32?n.concat(e):oe._shiftRight(e,r,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(e===0)return 0;const t=n[e-1];return 32*(e-1)+oe.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,Math.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=oe.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>n===32?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>Math.round(n/1099511627776)||32,_shiftRight(n,e,t,r){for(r===void 0&&(r=[]);e>=32;e-=32)r.push(t),t=0;if(e===0)return r.concat(n);for(let a=0;a<n.length;a++)r.push(t|n[a]>>>e),t=n[a]<<32-e;const i=n.length?n[n.length-1]:0,s=oe.getPartial(i);return r.push(oe.partial(e+s&31,e+s>32?t:r.pop(),1)),r}},Ht={bytes:{fromBits(n){const e=oe.bitLength(n)/8,t=new Uint8Array(e);let r;for(let i=0;i<e;i++)3&i||(r=n[i/4]),t[i]=r>>>24,r<<=8;return t},toBits(n){const e=[];let t,r=0;for(t=0;t<n.length;t++)r=r<<8|n[t],3&~t||(e.push(r),r=0);return 3&t&&e.push(oe.partial(8*(3&t),r)),e}}},Du={sha1:class{constructor(n){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],n?(e._h=n._h.slice(0),e._buffer=n._buffer.slice(0),e._length=n._length):e.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const e=this;typeof n=="string"&&(n=Ht.utf8String.toBits(n));const t=e._buffer=oe.concat(e._buffer,n),r=e._length,i=e._length=r+oe.bitLength(n);if(i>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(t);let a=0;for(let o=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o<=i;o+=e.blockSize)e._block(s.subarray(16*a,16*(a+1))),a+=1;return t.splice(0,16*a),e}finalize(){const n=this;let e=n._buffer;const t=n._h;e=oe.concat(e,[oe.partial(1,1)]);for(let r=e.length+2;15&r;r++)e.push(0);for(e.push(Math.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t}_f(n,e,t,r){return n<=19?e&t|~e&r:n<=39?e^t^r:n<=59?e&t|e&r|t&r:n<=79?e^t^r:void 0}_S(n,e){return e<<n|e>>>32-n}_block(n){const e=this,t=e._h,r=Array(80);for(let l=0;l<16;l++)r[l]=n[l];let i=t[0],s=t[1],a=t[2],o=t[3],c=t[4];for(let l=0;l<=79;l++){l>=16&&(r[l]=e._S(1,r[l-3]^r[l-8]^r[l-14]^r[l-16]));const u=e._S(5,i)+e._f(l,s,a,o)+c+r[l]+e._key[Math.floor(l/20)]|0;c=o,o=a,a=e._S(30,s),s=i,i=u}t[0]=t[0]+i|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+o|0,t[4]=t[4]+c|0}}},Fu={aes:class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],r=e._tables[1],i=n.length;let s,a,o,c=1;if(i!==4&&i!==6&&i!==8)throw new Error("invalid aes key size");for(e._key=[a=n.slice(0),o=[]],s=i;s<4*i+28;s++){let l=a[s-1];(s%i==0||i===8&&s%i==4)&&(l=t[l>>>24]<<24^t[l>>16&255]<<16^t[l>>8&255]<<8^t[255&l],s%i==0&&(l=l<<8^l>>>24^c<<24,c=c<<1^283*(c>>7))),a[s]=a[s-i]^l}for(let l=0;s;l++,s--){const u=a[3&l?s:s-4];o[l]=s<=4||l<4?u:r[0][t[u>>>24]]^r[1][t[u>>16&255]]^r[2][t[u>>8&255]]^r[3][t[255&u]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],r=e[4],i=[],s=[];let a,o,c,l;for(let u=0;u<256;u++)s[(i[u]=u<<1^283*(u>>7))^u]=u;for(let u=a=0;!t[u];u^=o||1,a=s[a]||1){let h=a^a<<1^a<<2^a<<3^a<<4;h=h>>8^255&h^99,t[u]=h,r[h]=u,l=i[c=i[o=i[u]]];let p=16843009*l^65537*c^257*o^16843008*u,g=257*i[h]^16843008*h;for(let f=0;f<4;f++)n[f][u]=g=g<<24^g>>>8,e[f][h]=p=p<<24^p>>>8}for(let u=0;u<5;u++)n[u]=n[u].slice(0),e[u]=e[u].slice(0)}_crypt(n,e){if(n.length!==4)throw new Error("invalid aes block size");const t=this._key[e],r=t.length/4-2,i=[0,0,0,0],s=this._tables[e],a=s[0],o=s[1],c=s[2],l=s[3],u=s[4];let h,p,g,f=n[0]^t[0],b=n[e?3:1]^t[1],d=n[2]^t[2],m=n[e?1:3]^t[3],y=4;for(let w=0;w<r;w++)h=a[f>>>24]^o[b>>16&255]^c[d>>8&255]^l[255&m]^t[y],p=a[b>>>24]^o[d>>16&255]^c[m>>8&255]^l[255&f]^t[y+1],g=a[d>>>24]^o[m>>16&255]^c[f>>8&255]^l[255&b]^t[y+2],m=a[m>>>24]^o[f>>16&255]^c[b>>8&255]^l[255&d]^t[y+3],y+=4,f=h,b=p,d=g;for(let w=0;w<4;w++)i[e?3&-w:w]=u[f>>>24]<<24^u[b>>16&255]<<16^u[d>>8&255]<<8^u[255&m]^t[y++],h=f,f=b,b=d,d=m,m=h;return i}}},Nu={getRandomValues(n){const e=new Uint32Array(n.buffer),t=r=>{let i=987654321;const s=4294967295;return function(){return i=36969*(65535&i)+(i>>16)&s,(((i<<16)+(r=18e3*(65535&r)+(r>>16)&s)&s)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let r,i=0;i<n.length;i+=4){const s=t(4294967296*(r||Math.random()));r=987654071*s(),e[i/4]=4294967296*s()|0}return n}},Bu={ctrGladman:class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if(255&~(n>>24))n+=1<<24;else{let e=n>>16&255,t=n>>8&255,r=255&n;e===255?(e=0,t===255?(t=0,r===255?r=0:++r):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=r}return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let r;if(!(r=e.length))return[];const i=oe.bitLength(e);for(let s=0;s<r;s+=4){this.incCounter(t);const a=n.encrypt(t);e[s]^=a[0],e[s+1]^=a[1],e[s+2]^=a[2],e[s+3]^=a[3]}return oe.clamp(e,i)}}},ot={importKey:n=>new ot.hmacSha1(Ht.bytes.toBits(n)),pbkdf2(n,e,t,r){if(t=t||1e4,r<0||t<0)throw new Error("invalid params to pbkdf2");const i=1+(r>>5)<<2;let s,a,o,c,l;const u=new ArrayBuffer(i),h=new DataView(u);let p=0;const g=oe;for(e=Ht.bytes.toBits(e),l=1;p<(i||1);l++){for(s=a=n.encrypt(g.concat(e,[l])),o=1;o<t;o++)for(a=n.encrypt(a),c=0;c<a.length;c++)s[c]^=a[c];for(o=0;p<(i||1)&&o<s.length;o++)h.setInt32(p,s[o]),p+=4}return u.slice(0,r/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=Du.sha1,r=[[],[]];e._baseHash=[new t,new t];const i=e._baseHash[0].blockSize/32;n.length>i&&(n=new t().update(n).finalize());for(let s=0;s<i;s++)r[0][s]=909522486^n[s],r[1][s]=1549556828^n[s];e._baseHash[0].update(r[0]),e._baseHash[1].update(r[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},zu=typeof crypto!=He&&typeof crypto.getRandomValues==_t,io="Invalid password",so="Invalid signature",Jn="zipjs-abort-check-password";function ao(n){return zu?crypto.getRandomValues(n):Nu.getRandomValues(n)}const ct=16,oo={name:"PBKDF2"},Uu=Object.assign({hash:{name:"HMAC"}},oo),Zn=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},oo),qu=["deriveBits"],St=[8,12,16],Et=[16,24,32],Xe=10,$u=[0,0,0,0],Vt=typeof crypto!=He,Tt=Vt&&crypto.subtle,co=Vt&&typeof Tt!=He,Ie=Ht.bytes,Wu=Fu.aes,Hu=Bu.ctrGladman,Vu=ot.hmacSha1;let lo=Vt&&co&&typeof Tt.importKey==_t,uo=Vt&&co&&typeof Tt.deriveBits==_t;class Gu extends TransformStream{constructor({password:e,rawPassword:t,signed:r,encryptionStrength:i,checkPasswordOnly:s}){super({start(){Object.assign(this,{ready:new Promise((a=>this.resolveReady=a)),password:po(e,t),signed:r,strength:i-1,pending:new Uint8Array})},async transform(a,o){const c=this,{password:l,strength:u,resolveReady:h,ready:p}=c;l?(await(async function(f,b,d,m){const y=await fo(f,b,d,ye(m,0,St[b])),w=ye(m,St[b]);if(y[0]!=w[0]||y[1]!=w[1])throw new Error(io)})(c,u,l,ye(a,0,St[u]+2)),a=ye(a,St[u]+2),s?o.error(new Error(Jn)):h()):await p;const g=new Uint8Array(a.length-Xe-(a.length-Xe)%ct);o.enqueue(ho(c,a,g,0,Xe,!0))},async flush(a){const{signed:o,ctr:c,hmac:l,pending:u,ready:h}=this;if(l&&c){await h;const p=ye(u,0,u.length-Xe),g=ye(u,u.length-Xe);let f=new Uint8Array;if(p.length){const b=kt(Ie,p);l.update(b);const d=c.update(b);f=Rt(Ie,d)}if(o){const b=ye(Rt(Ie,l.digest()),0,Xe);for(let d=0;d<Xe;d++)if(b[d]!=g[d])throw new Error(so)}a.enqueue(f)}}})}}class Xu extends TransformStream{constructor({password:e,rawPassword:t,encryptionStrength:r}){let i;super({start(){Object.assign(this,{ready:new Promise((s=>this.resolveReady=s)),password:po(e,t),strength:r-1,pending:new Uint8Array})},async transform(s,a){const o=this,{password:c,strength:l,resolveReady:u,ready:h}=o;let p=new Uint8Array;c?(p=await(async function(f,b,d){const m=ao(new Uint8Array(St[b])),y=await fo(f,b,d,m);return Qn(m,y)})(o,l,c),u()):await h;const g=new Uint8Array(p.length+s.length-s.length%ct);g.set(p,0),a.enqueue(ho(o,s,g,p.length,0))},async flush(s){const{ctr:a,hmac:o,pending:c,ready:l}=this;if(o&&a){await l;let u=new Uint8Array;if(c.length){const h=a.update(kt(Ie,c));o.update(h),u=Rt(Ie,h)}i.signature=Rt(Ie,o.digest()).slice(0,Xe),s.enqueue(Qn(u,i.signature))}}}),i=this}}function ho(n,e,t,r,i,s){const{ctr:a,hmac:o,pending:c}=n,l=e.length-i;let u;for(c.length&&(e=Qn(c,e),t=(function(h,p){if(p&&p>h.length){const g=h;(h=new Uint8Array(p)).set(g,0)}return h})(t,l-l%ct)),u=0;u<=l-ct;u+=ct){const h=kt(Ie,ye(e,u,u+ct));s&&o.update(h);const p=a.update(h);s||o.update(p),t.set(Rt(Ie,p),u+r)}return n.pending=ye(e,u),t}async function fo(n,e,t,r){n.password=null;const i=await(async function(u,h,p,g,f){if(!lo)return ot.importKey(h);try{return await Tt.importKey(u,h,p,g,f)}catch{return lo=!1,ot.importKey(h)}})("raw",t,Uu,!1,qu),s=await(async function(u,h,p){if(!uo)return ot.pbkdf2(h,u.salt,Zn.iterations,p);try{return await Tt.deriveBits(u,h,p)}catch{return uo=!1,ot.pbkdf2(h,u.salt,Zn.iterations,p)}})(Object.assign({salt:r},Zn),i,8*(2*Et[e]+2)),a=new Uint8Array(s),o=kt(Ie,ye(a,0,Et[e])),c=kt(Ie,ye(a,Et[e],2*Et[e])),l=ye(a,2*Et[e]);return Object.assign(n,{keys:{key:o,authentication:c,passwordVerification:l},ctr:new Hu(new Wu(o),Array.from($u)),hmac:new Vu(c)}),l}function po(n,e){return e===ae?(function(t){if(typeof TextEncoder==He){t=unescape(encodeURIComponent(t));const r=new Uint8Array(t.length);for(let i=0;i<r.length;i++)r[i]=t.charCodeAt(i);return r}return new TextEncoder().encode(t)})(n):e}function Qn(n,e){let t=n;return n.length+e.length&&(t=new Uint8Array(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function ye(n,e,t){return n.subarray(e,t)}function Rt(n,e){return n.fromBits(e)}function kt(n,e){return n.toBits(e)}const Gt=12;class Ku extends TransformStream{constructor({password:e,passwordVerification:t,checkPasswordOnly:r}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),bo(this,e)},transform(i,s){const a=this;if(a.password){const o=go(a,i.subarray(0,Gt));if(a.password=null,o[11]!=a.passwordVerification)throw new Error(io);i=i.subarray(Gt)}r?s.error(new Error(Jn)):s.enqueue(go(a,i))}})}}class Yu extends TransformStream{constructor({password:e,passwordVerification:t}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),bo(this,e)},transform(r,i){const s=this;let a,o;if(s.password){s.password=null;const c=ao(new Uint8Array(Gt));c[11]=s.passwordVerification,a=new Uint8Array(r.length+c.length),a.set(mo(s,c),0),o=Gt}else a=new Uint8Array(r.length),o=0;a.set(mo(s,r),o),i.enqueue(a)}})}}function go(n,e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=yo(n)^e[r],ei(n,t[r]);return t}function mo(n,e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=yo(n)^e[r],ei(n,e[r]);return t}function bo(n,e){const t=[305419896,591751049,878082192];Object.assign(n,{keys:t,crcKey0:new Wt(t[0]),crcKey2:new Wt(t[2])});for(let r=0;r<e.length;r++)ei(n,e.charCodeAt(r))}function ei(n,e){let[t,r,i]=n.keys;n.crcKey0.append([e]),t=~n.crcKey0.get(),r=wo(Math.imul(wo(r+vo(t)),134775813)+1),n.crcKey2.append([r>>>24]),i=~n.crcKey2.get(),n.keys=[t,r,i]}function yo(n){const e=2|n.keys[2];return vo(Math.imul(e,1^e)>>>8)}function vo(n){return 255&n}function wo(n){return 4294967295&n}const xo="deflate-raw";class Ju extends TransformStream{constructor(e,{chunkSize:t,CompressionStream:r,CompressionStreamNative:i}){super({});const{compressed:s,encrypted:a,useCompressionStream:o,zipCrypto:c,signed:l,level:u}=e,h=this;let p,g,f=_o(super.readable);a&&!c||!l||(p=new no,f=Le(f,p)),s&&(f=Eo(f,o,{level:u,chunkSize:t},i,r)),a&&(c?f=Le(f,new Yu(e)):(g=new Xu(e),f=Le(f,g))),So(h,f,(()=>{let b;a&&!c&&(b=g.signature),a&&!c||!l||(b=new DataView(p.value.buffer).getUint32(0)),h.signature=b}))}}class Zu extends TransformStream{constructor(e,{chunkSize:t,DecompressionStream:r,DecompressionStreamNative:i}){super({});const{zipCrypto:s,encrypted:a,signed:o,signature:c,compressed:l,useCompressionStream:u}=e;let h,p,g=_o(super.readable);a&&(s?g=Le(g,new Ku(e)):(p=new Gu(e),g=Le(g,p))),l&&(g=Eo(g,u,{chunkSize:t},i,r)),a&&!s||!o||(h=new no,g=Le(g,h)),So(this,g,(()=>{if((!a||s)&&o){const f=new DataView(h.value.buffer);if(c!=f.getUint32(0,!1))throw new Error(so)}}))}}function _o(n){return Le(n,new TransformStream({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function So(n,e,t){e=Le(e,new TransformStream({flush:t})),Object.defineProperty(n,"readable",{get:()=>e})}function Eo(n,e,t,r,i){try{n=Le(n,new(e&&r?r:i)(xo,t))}catch{if(!e)return n;try{n=Le(n,new i(xo,t))}catch{return n}}return n}function Le(n,e){return n.pipeThrough(e)}const Qu="message",eh="start",th="pull",To="data",Ro="close",ko="inflate";class rh extends TransformStream{constructor(e,t){super({});const r=this,{codecType:i}=e;let s;i.startsWith("deflate")?s=Ju:i.startsWith(ko)&&(s=Zu);let a=0,o=0;const c=new s(e,t),l=super.readable,u=new TransformStream({transform(p,g){p&&p.length&&(o+=p.length,g.enqueue(p))},flush(){Object.assign(r,{inputSize:o})}}),h=new TransformStream({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){const{signature:p}=c;Object.assign(r,{signature:p,outputSize:a,inputSize:o})}});Object.defineProperty(r,"readable",{get:()=>l.pipeThrough(u).pipeThrough(c).pipeThrough(h)})}}class nh extends TransformStream{constructor(e){let t;super({transform:function r(i,s){if(t){const a=new Uint8Array(t.length+i.length);a.set(t),a.set(i,t.length),i=a,t=null}i.length>e?(s.enqueue(i.slice(0,e)),r(i.slice(e),s)):t=i},flush(r){t&&t.length&&r.enqueue(t)}})}}let Oo=typeof Worker!=He;class ti{constructor(e,{readable:t,writable:r},{options:i,config:s,streamOptions:a,useWebWorkers:o,transferStreams:c,scripts:l},u){const{signal:h}=a;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new nh(s.chunkSize)).pipeThrough(new ih(t,a),{signal:h}),writable:r,options:Object.assign({},i),scripts:l,transferStreams:c,terminate:()=>new Promise((p=>{const{worker:g,busy:f}=e;g?(f?e.resolveTerminated=p:(g.terminate(),p()),e.interface=null):p()})),onTaskFinished(){const{resolveTerminated:p}=e;p&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),p()),e.busy=!1,u(e)}}),(o&&Oo?sh:Ao)(e,s)}}class ih extends TransformStream{constructor(e,{onstart:t,onprogress:r,size:i,onend:s}){let a=0;super({async start(){t&&await ri(t,i)},async transform(o,c){a+=o.length,r&&await ri(r,a,i),c.enqueue(o)},async flush(){e.size=a,s&&await ri(s,a)}})}}async function ri(n,...e){try{await n(...e)}catch{}}function Ao(n,e){return{run:()=>(async function({options:t,readable:r,writable:i,onTaskFinished:s},a){try{const o=new rh(t,a);await r.pipeThrough(o).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:c,inputSize:l,outputSize:u}=o;return{signature:c,inputSize:l,outputSize:u}}finally{s()}})(n,e)}}function sh(n,e){const{baseURL:t,chunkSize:r}=e;if(!n.interface){let i;try{i=(function(s,a,o){const c={type:"module"};let l,u;typeof s==_t&&(s=s());try{l=new URL(s,a)}catch{l=s}if(Co)try{u=new Worker(l)}catch{Co=!1,u=new Worker(l,c)}else u=new Worker(l,c);return u.addEventListener(Qu,(h=>(async function({data:p},g){const{type:f,value:b,messageId:d,result:m,error:y}=p,{reader:w,writer:_,resolveResult:R,rejectResult:E,onTaskFinished:S}=g;try{if(y){const{message:A,stack:T,code:k,name:O}=y,I=new Error(A);Object.assign(I,{stack:T,code:k,name:O}),x(I)}else{if(f==th){const{value:A,done:T}=await w.read();Xt({type:To,value:A,done:T,messageId:d},g)}f==To&&(await _.ready,await _.write(new Uint8Array(b)),Xt({type:"ack",messageId:d},g)),f==Ro&&x(null,m)}}catch(A){Xt({type:Ro,messageId:d},g),x(A)}function x(A,T){A?E(A):R(T),_&&_.releaseLock(),S()}})(h,o))),u})(n.scripts[0],t,n)}catch{return Oo=!1,Ao(n,e)}Object.assign(n,{worker:i,interface:{run:()=>(async function(s,a){let o,c;const l=new Promise(((m,y)=>{o=m,c=y}));Object.assign(s,{reader:null,writer:null,resolveResult:o,rejectResult:c,result:l});const{readable:u,options:h,scripts:p}=s,{writable:g,closed:f}=(function(m){let y;const w=new Promise((R=>y=R));return{writable:new WritableStream({async write(R){const E=m.getWriter();await E.ready,await E.write(R),E.releaseLock()},close(){y()},abort:R=>m.getWriter().abort(R)}),closed:w}})(s.writable),b=Xt({type:eh,scripts:p.slice(1),options:h,config:a,readable:u,writable:g},s);b||Object.assign(s,{reader:u.getReader(),writer:g.getWriter()});const d=await l;return b||await g.getWriter().close(),await f,d})(n,{chunkSize:r})}})}return n.interface}let Co=!0,Io=!0;function Xt(n,{worker:e,writer:t,onTaskFinished:r,transferStreams:i}){try{let{value:s,readable:a,writable:o}=n;const c=[];if(s&&(s.byteLength<s.buffer.byteLength?n.value=s.buffer.slice(0,s.byteLength):n.value=s.buffer,c.push(n.value)),i&&Io?(a&&c.push(a),o&&c.push(o)):n.readable=n.writable=null,c.length)try{return e.postMessage(n,c),!0}catch{Io=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(s){throw t&&t.releaseLock(),r(),s}}let Qe=[];const ni=[];let Lo=0;async function ah(n,e){const{options:t,config:r}=e,{transferStreams:i,useWebWorkers:s,useCompressionStream:a,codecType:o,compressed:c,signed:l,encrypted:u}=t,{workerScripts:h,maxWorkers:p}=r;e.transferStreams=i||i===ae;const g=!(c||l||u||e.transferStreams);return e.useWebWorkers=!g&&(s||s===ae&&r.useWebWorkers),e.scripts=e.useWebWorkers&&h?h[o]:[],t.useCompressionStream=a||a===ae&&r.useCompressionStream,(await(async function(){const b=Qe.find((d=>!d.busy));if(b)return Po(b),new ti(b,n,e,f);if(Qe.length<p){const d={indexWorker:Lo};return Lo++,Qe.push(d),new ti(d,n,e,f)}return new Promise((d=>ni.push({resolve:d,stream:n,workerOptions:e})))})()).run();function f(b){if(ni.length){const[{resolve:d,stream:m,workerOptions:y}]=ni.splice(0,1);d(new ti(b,m,y,f))}else b.worker?(Po(b),(function(d,m){const{config:y}=m,{terminateWorkerTimeout:w}=y;Number.isFinite(w)&&w>=0&&(d.terminated?d.terminated=!1:d.terminateTimeout=setTimeout((async()=>{Qe=Qe.filter((_=>_!=d));try{await d.terminate()}catch{}}),w))})(b,e)):Qe=Qe.filter((d=>d!=b))}}function Po(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const oh=65536,Mo="writable";class ii{constructor(){this.size=0}init(){this.initialized=!0}}class jo extends ii{get readable(){const e=this,{chunkSize:t=oh}=e,r=new ReadableStream({start(){this.chunkOffset=0},async pull(i){const{offset:s=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this;i.enqueue(await ie(e,s+c,Math.min(t,a-c),o)),c+t>a?i.close():this.chunkOffset+=t}});return r}}class Do extends jo{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,i=e+t;let a=await(e||i<r.size?r.blob.slice(e,i):r.blob).arrayBuffer();return a.byteLength>t&&(a=a.slice(e,i)),new Uint8Array(a)}}class Fo extends ii{constructor(e){super();const t=new TransformStream,r=[];e&&r.push(["Content-Type",e]),Object.defineProperty(this,Mo,{get:()=>t.writable}),this.blob=new Response(t.readable,{headers:r}).blob()}getData(){return this.blob}}class ch extends Fo{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const i=new FileReader;return new Promise(((s,a)=>{Object.assign(i,{onload:({target:o})=>s(o.result),onerror:()=>a(i.error)}),i.readAsText(r,e)}))}}}class lh extends jo{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map((async(r,i)=>{await r.init(),i!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size}))),super.init()}async readUint8Array(e,t,r=0){const i=this,{readers:s}=this;let a,o=r;o==-1&&(o=s.length-1);let c=e;for(;c>=s[o].size;)c-=s[o].size,o++;const l=s[o],u=l.size;if(c+t<=u)a=await ie(l,c,t);else{const h=u-c;a=new Uint8Array(t),a.set(await ie(l,c,h)),a.set(await i.readUint8Array(e+h,t-h,r),h)}return i.lastDiskNumber=Math.max(o,i.lastDiskNumber),a}}class No extends ii{constructor(e,t=4294967295){super();const r=this;let i,s,a;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new WritableStream({async write(u){const{availableSize:h}=r;if(a)u.length>=h?(await c(u.slice(0,h)),await l(),r.diskOffset+=i.size,r.diskNumber++,a=null,await this.write(u.slice(h))):await c(u);else{const{value:p,done:g}=await e.next();if(g&&!p)throw new Error("Writer iterator completed too soon");i=p,i.size=0,i.maxSize&&(r.maxSize=i.maxSize),r.availableSize=r.maxSize,await Kt(i),s=p.writable,a=s.getWriter(),await this.write(u)}},async close(){await a.ready,await l()}});async function c(u){const h=u.length;h&&(await a.ready,await a.write(u),i.size+=h,r.size+=h,r.availableSize-=h)}async function l(){s.size=i.size,await a.close()}Object.defineProperty(r,Mo,{get:()=>o})}}async function Kt(n,e){if(!n.init||n.initialized)return Promise.resolve();await n.init(e)}function uh(n){return Array.isArray(n)&&(n=new lh(n)),n instanceof ReadableStream&&(n={readable:n}),n}function ie(n,e,t,r){return n.readUint8Array(e,t,r)}const Bo="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),hh=Bo.length==256;function Yt(n,e){return e&&e.trim().toLowerCase()=="cp437"?(function(t){if(hh){let r="";for(let i=0;i<t.length;i++)r+=Bo[t[i]];return r}return new TextDecoder().decode(t)})(n):new TextDecoder(e).decode(n)}const zo="filename",Uo="rawFilename",qo="comment",$o="rawComment",Wo="uncompressedSize",Ho="compressedSize",Vo="offset",si="diskNumberStart",ai="lastModDate",oi="rawLastModDate",Go="lastAccessDate",fh="rawLastAccessDate",Xo="creationDate",dh="rawCreationDate",ph=[zo,Uo,Ho,Wo,ai,oi,qo,$o,Go,Xo,Vo,si,si,"internalFileAttribute","externalFileAttribute","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ko{constructor(e){ph.forEach((t=>this[t]=e[t]))}}const ci="File format is not recognized",gh="Zip64 extra field not found",Yo="Compression method not supported",Jo="Split zip file",Zo="utf-8",Qo="cp437",mh=[[Wo,Je],[Ho,Je],[Vo,Je],[si,Ze]],bh={[Ze]:{getValue:J,bytes:4},[Je]:{getValue:Jt,bytes:8}};class yh{constructor(e,t={}){Object.assign(this,{reader:uh(e),options:t,config:Ve})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:i}=t;if(await Kt(r),r.size!==ae&&r.readUint8Array||(r=new Do(await new Response(r.readable).blob()),await Kt(r)),r.size<at)throw new Error(ci);r.chunkSize=(function(T){return Math.max(T.chunkSize,64)})(i);const s=await(async function(T,k,O,I,L){const P=new Uint8Array(4);(function(q,K,D){q.setUint32(K,D,!0)})(ne(P),0,k);const j=I+L;return await F(I)||await F(Math.min(j,O));async function F(q){const K=O-q,D=await ie(T,K,q);for(let Y=D.length-I;Y>=0;Y--)if(D[Y]==P[0]&&D[Y+1]==P[1]&&D[Y+2]==P[2]&&D[Y+3]==P[3])return{offset:K+Y,buffer:D.slice(Y,Y+I).buffer}}})(r,101010256,r.size,at,1048560);if(!s)throw J(ne(await ie(r,0,4)))==134695760?new Error(Jo):new Error("End of central directory not found");const a=ne(s);let o=J(a,12),c=J(a,16);const l=s.offset,u=re(a,20),h=l+at+u;let p=re(a,4);const g=r.lastDiskNumber||0;let f=re(a,6),b=re(a,8),d=0,m=0;if(c==Je||o==Je||b==Ze||f==Ze){const T=ne(await ie(r,s.offset-20,20));if(J(T,0)==117853008){c=Jt(T,8);let k=await ie(r,c,56,-1),O=ne(k);const I=s.offset-20-56;if(J(O,0)!=Za&&c!=I){const L=c;c=I,d=c-L,k=await ie(r,c,56,-1),O=ne(k)}if(J(O,0)!=Za)throw new Error("End of Zip64 central directory locator not found");p==Ze&&(p=J(O,16)),f==Ze&&(f=J(O,20)),b==Ze&&(b=Jt(O,32)),o==Je&&(o=Jt(O,40)),c-=o}}if(c>=r.size&&(d=r.size-c-o-at,c=r.size-o-at),g!=p)throw new Error(Jo);if(c<0)throw new Error(ci);let y=0,w=await ie(r,c,o,f),_=ne(w);if(o){const T=s.offset-o;if(J(_,y)!=Ja&&c!=T){const k=c;c=T,d+=c-k,w=await ie(r,c,o,f),_=ne(w)}}const R=s.offset-c-(r.lastDiskOffset||0);if(o!=R&&R>=0&&(o=R,w=await ie(r,c,o,f),_=ne(w)),c<0||c>=r.size)throw new Error(ci);const E=ce(t,e,"filenameEncoding"),S=ce(t,e,"commentEncoding");for(let T=0;T<b;T++){const k=new vh(r,i,t.options);if(J(_,y)!=Ja)throw new Error("Central directory header not found");ec(k,_,y+6);const O=!!k.bitFlag.languageEncodingFlag,I=y+46,L=I+k.filenameLength,P=L+k.extraFieldLength,j=re(_,y+4),F=!0,q=w.subarray(I,L),K=re(_,y+32),D=P+K,Y=w.subarray(P,D),z=O,U=O,rt=!(16&~lt(_,y+38)),Pe=J(_,y+42)+d;Object.assign(k,{versionMadeBy:j,msDosCompatible:F,compressedSize:0,uncompressedSize:0,commentLength:K,directory:rt,offset:Pe,diskNumberStart:re(_,y+34),internalFileAttribute:re(_,y+36),externalFileAttribute:J(_,y+38),rawFilename:q,filenameUTF8:z,commentUTF8:U,rawExtraField:w.subarray(L,P)});const Me=ce(t,e,"decodeText")||Yt,je=z?Zo:E||Qo,De=U?Zo:S||Qo;let Ae=Me(q,je);Ae===ae&&(Ae=Yt(q,je));let Fe=Me(Y,De);Fe===ae&&(Fe=Yt(Y,De)),Object.assign(k,{rawComment:Y,filename:Ae,comment:Fe,directory:rt||Ae.endsWith("/")}),m=Math.max(Pe,m),await tc(k,k,_,y+6),k.zipCrypto=k.encrypted&&!k.extraFieldAES;const _e=new Ko(k);_e.getData=(Se,wi)=>k.getData(Se,_e,wi),y=D;const{onprogress:Ne}=e;if(Ne)try{await Ne(T+1,b,new Ko(k))}catch{}yield _e}const x=ce(t,e,"extractPrependedData"),A=ce(t,e,"extractAppendedData");return x&&(t.prependedData=m>0?await ie(r,0,m):new Uint8Array),t.comment=u?await ie(r,l+at,u):new Uint8Array,A&&(t.appendedData=h<r.size?await ie(r,h,r.size-h):new Uint8Array),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class vh{constructor(e,t,r){Object.assign(this,{reader:e,config:t,options:r})}async getData(e,t,r={}){const i=this,{reader:s,offset:a,diskNumberStart:o,extraFieldAES:c,compressionMethod:l,config:u,bitFlag:h,signature:p,rawLastModDate:g,uncompressedSize:f,compressedSize:b}=i,d=t.localDirectory={},m=ne(await ie(s,a,30,o));let y=ce(i,r,"password"),w=ce(i,r,"rawPassword");const _=ce(i,r,"passThrough");if(y=y&&y.length&&y,w=w&&w.length&&w,c&&c.originalCompressionMethod!=99)throw new Error(Yo);if(l!=0&&l!=8&&!_)throw new Error(Yo);if(J(m,0)!=67324752)throw new Error("Local file header not found");ec(d,m,4),d.rawExtraField=d.extraFieldLength?await ie(s,a+30+d.filenameLength,d.extraFieldLength,o):new Uint8Array,await tc(i,d,m,4,!0),Object.assign(t,{lastAccessDate:d.lastAccessDate,creationDate:d.creationDate});const R=i.encrypted&&d.encrypted&&!_,E=R&&!c;if(_||(t.zipCrypto=E),R){if(!E&&c.strength===ae)throw new Error("Encryption method not supported");if(!y&&!w)throw new Error("File contains encrypted entry")}const S=a+30+d.filenameLength+d.extraFieldLength,x=b,A=s.readable;Object.assign(A,{diskNumberStart:o,offset:S,size:x});const T=ce(i,r,"signal"),k=ce(i,r,"checkPasswordOnly");k&&(e=new WritableStream),e=(function(q){q.writable===ae&&typeof q.next==_t&&(q=new No(q)),q instanceof WritableStream&&(q={writable:q});const{writable:K}=q;return K.size===ae&&(K.size=0),q instanceof No||Object.assign(q,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),q})(e),await Kt(e,_?b:f);const{writable:O}=e,{onstart:I,onprogress:L,onend:P}=r,j={options:{codecType:ko,password:y,rawPassword:w,zipCrypto:E,encryptionStrength:c&&c.strength,signed:ce(i,r,"checkSignature")&&!_,passwordVerification:E&&(h.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:l!=0&&!_,encrypted:i.encrypted&&!_,useWebWorkers:ce(i,r,"useWebWorkers"),useCompressionStream:ce(i,r,"useCompressionStream"),transferStreams:ce(i,r,"transferStreams"),checkPasswordOnly:k},config:u,streamOptions:{signal:T,size:x,onstart:I,onprogress:L,onend:P}};let F=0;try{({outputSize:F}=await ah({readable:A,writable:O},j))}catch(q){if(!k||q.message!=Jn)throw q}finally{const q=ce(i,r,"preventClose");O.size+=F,q||O.locked||await O.getWriter().close()}return k?ae:e.getData?e.getData():O}}function ec(n,e,t){const r=n.rawBitFlag=re(e,t+2),i=!(1&~r),s=J(e,t+6);Object.assign(n,{encrypted:i,version:re(e,t),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:!(2048&~r)},rawLastModDate:s,lastModDate:wh(s),filenameLength:re(e,t+22),extraFieldLength:re(e,t+24)})}async function tc(n,e,t,r,i){const{rawExtraField:s}=e,a=e.extraField=new Map,o=ne(new Uint8Array(s));let c=0;try{for(;c<s.length;){const m=re(o,c),y=re(o,c+2);a.set(m,{type:m,data:s.slice(c+4,c+4+y)}),c+=4+y}}catch{}const l=re(t,r+4);Object.assign(e,{signature:J(t,r+10),uncompressedSize:J(t,r+18),compressedSize:J(t,r+14)});const u=a.get(1);u&&((function(m,y){y.zip64=!0;const w=ne(m.data),_=mh.filter((([R,E])=>y[R]==E));for(let R=0,E=0;R<_.length;R++){const[S,x]=_[R];if(y[S]==x){const A=bh[x];y[S]=m[S]=A.getValue(w,E),E+=A.bytes}else if(m[S])throw new Error(gh)}})(u,e),e.extraFieldZip64=u);const h=a.get(28789);h&&(await rc(h,zo,Uo,e,n),e.extraFieldUnicodePath=h);const p=a.get(25461);p&&(await rc(p,qo,$o,e,n),e.extraFieldUnicodeComment=p);const g=a.get(39169);g?((function(m,y,w){const _=ne(m.data),R=lt(_,4);Object.assign(m,{vendorVersion:lt(_,0),vendorId:lt(_,2),strength:R,originalCompressionMethod:w,compressionMethod:re(_,5)}),y.compressionMethod=m.compressionMethod})(g,e,l),e.extraFieldAES=g):e.compressionMethod=l;const f=a.get(10);f&&((function(m,y){const w=ne(m.data);let _,R=4;try{for(;R<m.data.length&&!_;){const E=re(w,R),S=re(w,R+2);E==1&&(_=m.data.slice(R+4,R+4+S)),R+=4+S}}catch{}try{if(_&&_.length==24){const E=ne(_),S=E.getBigUint64(0,!0),x=E.getBigUint64(8,!0),A=E.getBigUint64(16,!0);Object.assign(m,{rawLastModDate:S,rawLastAccessDate:x,rawCreationDate:A});const T=li(S),k=li(x),O={lastModDate:T,lastAccessDate:k,creationDate:li(A)};Object.assign(m,O),Object.assign(y,O)}}catch{}})(f,e),e.extraFieldNTFS=f);const b=a.get(21589);b&&((function(m,y,w){const _=ne(m.data),R=lt(_,0),E=[],S=[];w?(1&~R||(E.push(ai),S.push(oi)),2&~R||(E.push(Go),S.push(fh)),4&~R||(E.push(Xo),S.push(dh))):m.data.length>=5&&(E.push(ai),S.push(oi));let x=1;E.forEach(((A,T)=>{if(m.data.length>=x+4){const k=J(_,x);y[A]=m[A]=new Date(1e3*k);const O=S[T];m[O]=k}x+=4}))})(b,e,i),e.extraFieldExtendedTimestamp=b);const d=a.get(6534);d&&(e.extraFieldUSDZ=d)}async function rc(n,e,t,r,i){const s=ne(n.data),a=new Wt;a.append(i[t]);const o=ne(new Uint8Array(4));o.setUint32(0,a.get(),!0);const c=J(s,1);Object.assign(n,{version:lt(s,0),[e]:Yt(n.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==J(o,0)}),n.valid&&(r[e]=n[e],r[e+"UTF8"]=!0)}function ce(n,e,t){return e[t]===ae?n.options[t]:e[t]}function wh(n){const e=(4294901760&n)>>16,t=65535&n;try{return new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch{}}function li(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function lt(n,e){return n.getUint8(e)}function re(n,e){return n.getUint16(e,!0)}function J(n,e){return n.getUint32(e,!0)}function Jt(n,e){return Number(n.getBigUint64(e,!0))}function ne(n){return new DataView(n.buffer)}to({Inflate:function(n){const e=new Ya,t=n&&n.chunkSize?Math.floor(2*n.chunkSize):131072,r=new Uint8Array(t);let i=!1;e.inflateInit(),e.next_out=r,this.append=function(s,a){const o=[];let c,l,u=0,h=0,p=0;if(s.length!==0){e.next_in_index=0,e.next_in=s,e.avail_in=s.length;do{if(e.next_out_index=0,e.avail_out=t,e.avail_in!==0||i||(e.next_in_index=0,i=!0),c=e.inflate(0),i&&c===ze){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(c!==0&&c!==1)throw new Error("inflating: "+e.msg);if((i||c===1)&&e.avail_in===s.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===t?o.push(new Uint8Array(r)):o.push(r.subarray(0,e.next_out_index))),p+=e.next_out_index,a&&e.next_in_index>0&&e.next_in_index!=u&&(a(e.next_in_index),u=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return o.length>1?(l=new Uint8Array(p),o.forEach((function(g){l.set(g,h),h+=g.length}))):l=o[0]?new Uint8Array(o[0]):new Uint8Array,l}},this.flush=function(){e.inflateEnd()}}});const xh=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Do,BlobWriter:Fo,TextWriter:ch,ZipReader:yh,configure:to},Symbol.toStringTag,{value:"Module"})),te={CONTAINER:"urn:oasis:names:tc:opendocument:xmlns:container",XHTML:"http://www.w3.org/1999/xhtml",OPF:"http://www.idpf.org/2007/opf",EPUB:"http://www.idpf.org/2007/ops",DC:"http://purl.org/dc/elements/1.1/",ENC:"http://www.w3.org/2001/04/xmlenc#",NCX:"http://www.daisy.org/z3986/2005/ncx/",XLINK:"http://www.w3.org/1999/xlink",SMIL:"http://www.w3.org/ns/SMIL"},le={XML:"application/xml",NCX:"application/x-dtbncx+xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml",JS:/\/(x-)?(javascript|ecmascript)/},Ke={a11y:"http://www.idpf.org/epub/vocab/package/a11y/#",dcterms:"http://purl.org/dc/terms/",marc:"http://id.loc.gov/vocabulary/",media:"http://www.idpf.org/epub/vocab/overlays/#",onix:"http://www.editeur.org/ONIX/book/codelists/current.html#",rendition:"http://www.idpf.org/vocab/rendition/#",schema:"http://schema.org/",xsd:"http://www.w3.org/2001/XMLSchema#",msv:"http://www.idpf.org/epub/vocab/structure/magazine/#",prism:"http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm#"},_h={art:"artist",aut:"author",clr:"colorist",edt:"editor",ill:"illustrator",nrt:"narrator",trl:"translator",pbl:"publisher"},Sh={"02":"isbn","06":"doi",15:"isbn",26:"doi",34:"issn"},ui=n=>n.toLowerCase().replace(/[-:](.)/g,(e,t)=>t.toUpperCase()),Eh=n=>n?n.replace(/[\t\n\f\r ]+/g," ").replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,""):"",Th=(n,e,t)=>t?r=>r.getAttribute(n)?.split(/\s/)?.includes(e):typeof e=="function"?r=>e(r.getAttribute(n)):r=>r.getAttribute(n)===e,Zt=(...n)=>e=>e?Object.fromEntries(n.map(t=>[ui(t),e.getAttribute(t)])):null,Ue=n=>Eh(n?.textContent),Ot=(n,e)=>{const t=n.lookupNamespaceURI(null)===e||n.lookupPrefix(e),r=t?(i,s)=>a=>a.namespaceURI===e&&a.localName===s:(i,s)=>a=>a.localName===s;return{$:(i,s)=>[...i.children].find(r(i,s)),$$:(i,s)=>[...i.children].filter(r(i,s)),$$$:t?(i,s)=>[...i.getElementsByTagNameNS(e,s)]:(i,s)=>[...i.getElementsByTagName(s)]}},ut=(n,e)=>{try{if(e.includes(":"))return new URL(n,e);const t="https://invalid.invalid/",r=new URL(n,t+e);return r.search="",decodeURI(r.href.replace(t,""))}catch(t){return console.warn(t),n}},nc=n=>/^(?!blob)\w+:/i.test(n),Rh=(n,e)=>{if(!n)return e;const t=n.replace(/\/$/,"").split("/"),r=e.replace(/\/$/,"").split("/"),i=(t.length>r.length?t:r).findIndex((s,a)=>t[a]!==r[a]);return i<0?"":Array(t.length-i).fill("..").concat(r.slice(i)).join("/")},kh=n=>n.slice(0,n.lastIndexOf("/")+1),At=async(n,e,t)=>{const r=[];n.replace(e,(...s)=>(r.push(s),null));const i=[];for(const s of r)i.push(await t(...s));return n.replace(e,()=>i.shift())},Oh=n=>n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),hi=n=>{for(const[t,r]of Object.entries(n))r==null?delete n[t]:Array.isArray(r)?(n[t]=r.filter(i=>i).map(i=>typeof i=="object"&&!Array.isArray(i)?hi(i):i),n[t].length?n[t].length===1&&(n[t]=n[t][0]):delete n[t]):typeof r=="object"&&(n[t]=hi(r),Object.keys(r).length||delete n[t]);const e=Object.keys(n);return e.length===1&&e[0]==="name"?n[e[0]]:n},Ah=n=>{const e=new Map(Object.entries(Ke)),t=n.documentElement.getAttributeNS(te.EPUB,"prefix")||n.documentElement.getAttribute("prefix");if(t)for(const[,r,i]of t.matchAll(/(.+): +(.+)[ \t\r\n]*/g))e.set(r,i);return e},ic=(n,e)=>{if(!n)return null;const[t,r]=n.split(":"),i=r?t:null,s=r||t,a=e.get(i);return a?a+s:null},Ch=n=>{const{$:e}=Ot(n,te.OPF),t=e(n.documentElement,"metadata"),r=Object.groupBy(t.children,x=>x.namespaceURI===te.DC?"dc":x.namespaceURI===te.OPF&&x.localName==="meta"?x.hasAttribute("name")?"legacyMeta":"meta":""),i=t.getAttribute("xml:lang")??n.documentElement.getAttribute("xml:lang")??"und",s=Ah(n),a=x=>{const A=x.getAttribute("property"),T=x.getAttribute("scheme");return{property:ic(A,s)??A,scheme:ic(T,s)??T,lang:x.getAttribute("xml:lang"),value:Ue(x),props:c(x),attrs:Object.fromEntries(Array.from(x.attributes).filter(k=>k.namespaceURI===te.OPF).map(k=>[k.localName,k.value]))}},o=Map.groupBy(r.meta??[],x=>x.getAttribute("refines")),c=x=>{const A=o.get(x?"#"+x.getAttribute("id"):null);return A?Object.groupBy(A.map(a),T=>T.property):null},l=Object.fromEntries(Object.entries(Object.groupBy(r.dc,x=>x.localName)).map(([x,A])=>[x,A.map(a)])),u=c()??{},h=Object.fromEntries(r.legacyMeta?.map(x=>[x.getAttribute("name"),x.getAttribute("content")])??[]),p=x=>x?.[0]?.value,g=(x,A)=>p(x?.props?.[A]),f=x=>{if(!x)return null;const A=x.props?.["alternate-script"]??[],T=x.attrs["alt-rep"];if(!A.length&&(!x.lang||x.lang===i)&&!T)return x.value;const k={[x.lang??i]:x.value};T&&(k[x.attrs["alt-rep-lang"]]=T);for(const O of A)k[O.lang]??=O.value;return k},b=x=>x?{name:f(x),sortAs:f(x.props?.["file-as"]?.[0])??x.attrs["file-as"],role:x.props?.role?.filter(A=>A.scheme===Ke.marc+"relators")?.map(A=>A.value)??[x.attrs.role],code:g(x,"term")??x.attrs.term,scheme:g(x,"authority")??x.attrs.authority}:null,d=x=>({name:f(x),position:p(x.props?.["group-position"])}),m=x=>{const{value:A}=x;if(/^urn:/i.test(A))return A;if(/^doi:/i.test(A))return`urn:${A}`;const T=x.props?.["identifier-type"];if(!T){const k=x.attrs.scheme;return k?/^(doi|isbn|uuid)$/i.test(k)?`urn:${k}:${A}`:{scheme:k,value:A}:A}if(T.scheme===Ke.onix+"codelist5"){const k=Sh[T.value];if(k)return`urn:${k}:${A}`}return A},y=Object.groupBy(u["belongs-to-collection"]??[],x=>g(x,"collection-type")==="series"?"series":"collection"),w=l.title?.find(x=>g(x,"title-type")==="main")??l.title?.[0],_={identifier:sc(n),title:f(w),sortAs:f(w?.props?.["file-as"]?.[0])??w?.attrs?.["file-as"]??h?.["calibre:title_sort"],subtitle:l.title?.find(x=>g(x,"title-type")==="subtitle")?.value,language:l.language?.map(x=>x.value),description:p(l.description),publisher:b(l.publisher?.[0]),published:l.date?.find(x=>x.attrs.event==="publication")?.value??p(l.date),modified:p(u[Ke.dcterms+"modified"])??l.date?.find(x=>x.attrs.event==="modification")?.value,subject:l.subject?.map(b),belongsTo:{collection:y.collection?.map(d),series:y.series?.map(d)??h?.["calibre:series"]?{name:h?.["calibre:series"],position:parseFloat(h?.["calibre:series_index"])}:null},altIdentifier:l.identifier?.map(m),source:l.source?.map(m),rights:p(l.rights)},R=x=>A=>{const T=new Set(A.role?.map(k=>_h[k]??x));return[T.size?T:[x],A]};for(const[x,A]of[].concat(l.creator?.map(b)?.map(R("author"))??[],l.contributor?.map(b)?.map(R("contributor"))??[]))for(const T of x)_[T]?_[T].push(A):_[T]=[A];hi(_),_.altIdentifier===_.identifier&&delete _.altIdentifier;const E={},S={};for(const[x,A]of Object.entries(u))x.startsWith(Ke.rendition)?E[ui(x.replace(Ke.rendition,""))]=p(A):x.startsWith(Ke.media)&&(S[ui(x.replace(Ke.media,""))]=p(A));return S.duration&&(S.duration=fi(S.duration)),{metadata:_,rendition:E,media:S}},Ih=(n,e=t=>t)=>{const{$:t,$$:r,$$$:i}=Ot(n,te.XHTML),s=f=>f?decodeURI(e(f)):null,a=f=>b=>{const d=t(b,"a")??t(b,"span"),m=t(b,"ol"),y=s(d?.getAttribute("href")),_={label:Ue(d)||d?.getAttribute("title"),href:y,subitems:o(m)};return f&&(_.type=d?.getAttributeNS(te.EPUB,"type")?.split(/\s/)),_},o=(f,b)=>f?r(f,"li").map(a(b)):null,c=(f,b)=>o(t(f,"ol"),b),l=i(n,"nav");let u=null,h=null,p=null,g=[];for(const f of l){const b=f.getAttributeNS(te.EPUB,"type")?.split(/\s/)??[];b.includes("toc")?u??=c(f):b.includes("page-list")?h??=c(f):b.includes("landmarks")?p??=c(f,!0):g.push({label:Ue(f.firstElementChild),type:b,list:c(f)})}return{toc:u,pageList:h,landmarks:p,others:g}},Lh=(n,e=t=>t)=>{const{$:t,$$:r}=Ot(n,te.NCX),i=c=>c?decodeURI(e(c)):null,s=c=>{const l=t(c,"navLabel"),u=t(c,"content"),h=Ue(l),p=i(u.getAttribute("src"));if(c.localName==="navPoint"){const g=r(c,"navPoint");return{label:h,href:p,subitems:g.length?g.map(s):null}}return{label:h,href:p}},a=(c,l)=>r(c,l).map(s),o=(c,l)=>{const u=t(n.documentElement,c);return u?a(u,l):null};return{toc:o("navMap","navPoint"),pageList:o("pageList","pageTarget"),others:r(n.documentElement,"navList").map(c=>({label:Ue(t(c,"navLabel")),list:a(c,"navTarget")}))}},fi=n=>{if(!n)return;const e=n.split(":").map(a=>parseFloat(a));if(e.length===3){const[a,o,c]=e;return a*60*60+o*60+c}if(e.length===2){const[a,o]=e;return a*60+o}const[t,r]=n.split(/(?=[^\d.])/);return parseFloat(t)*(r==="h"?3600:r==="min"?60:r==="ms"?.001:1)};class Ph extends EventTarget{#e;#r;#t;#n;#i;#s;#o=1;#a=1;#c;constructor(e,t){super(),this.book=e,this.loadXML=t}async#u(e){if(this.#r===e)return;const t=await this.loadXML(e.href),r=a=>a?ut(a,e.href):null,{$:i,$$$:s}=Ot(t,te.SMIL);this.#n=-1,this.#i=-1,this.#e=s(t,"par").reduce((a,o)=>{const c=r(i(o,"text")?.getAttribute("src")),l=i(o,"audio");if(!c||!l)return a;const u=r(l.getAttribute("src")),h=fi(l.getAttribute("clipBegin")),p=fi(l.getAttribute("clipEnd")),g=a.at(-1);return g?.src===u?g.items.push({text:c,begin:h,end:p}):a.push({src:u,items:[{text:c,begin:h,end:p}]}),a},[]),this.#r=e}get#h(){return this.#e[this.#n]}get#l(){return this.#h?.items?.[this.#i]}#f(e){console.error(e),this.dispatchEvent(new CustomEvent("error",{detail:e}))}#p(){this.dispatchEvent(new CustomEvent("highlight",{detail:this.#l}))}#g(){this.dispatchEvent(new CustomEvent("unhighlight",{detail:this.#l}))}async#d(e,t){this.#b(),this.#n=e,this.#i=t;const r=this.#h?.src;if(!r||!this.#l)return this.start(this.#t+1);const i=URL.createObjectURL(await this.book.loadBlob(r)),s=new Audio(i);this.#s=s,s.volume=this.#o,s.playbackRate=this.#a,s.addEventListener("timeupdate",()=>{if(s.paused)return;const a=s.currentTime,{items:o}=this.#h;if(a>this.#l?.end&&(this.#g(),this.#i===o.length-1)){this.#d(this.#n+1,0).catch(l=>this.#f(l));return}const c=this.#i;for(;o[this.#i+1]?.begin<=a;)this.#i++;this.#i!==c&&this.#p()}),s.addEventListener("error",()=>this.#f(new Error(`Failed to load ${r}`))),s.addEventListener("playing",()=>this.#p()),s.addEventListener("ended",()=>{this.#g(),URL.revokeObjectURL(i),this.#s=null,this.#d(e+1,0).catch(a=>this.#f(a))}),this.#c==="paused"?(this.#p(),s.currentTime=this.#l.begin??0):s.addEventListener("canplaythrough",()=>{s.currentTime=this.#l.begin??0,this.#c="playing",s.play().catch(a=>this.#f(a))},{once:!0})}async start(e,t=()=>!0){this.#s?.pause();const r=this.book.sections[e],i=r?.id;if(!i)return;const{mediaOverlay:s}=r;if(!s)return this.start(e+1);this.#t=e,await this.#u(s);for(let a=0;a<this.#e.length;a++){const{items:o}=this.#e[a];for(let c=0;c<o.length;c++)if(o[c].text.split("#")[0]===i&&t(o[c],c,o))return this.#d(a,c).catch(l=>this.#f(l))}}pause(){this.#c="paused",this.#s?.pause()}resume(){this.#c="playing",this.#s?.play().catch(e=>this.#f(e))}#b(){this.#s&&(this.#s.pause(),URL.revokeObjectURL(this.#s.src),this.#s=null,this.#g())}stop(){this.#c="stopped",this.#b()}prev(){this.#i>0?this.#d(this.#n,this.#i-1):this.#n>0?this.#d(this.#n-1,this.#e[this.#n-1].items.length-1):this.#t>0&&this.start(this.#t-1,(e,t,r)=>t===r.length-1)}next(){this.#d(this.#n,this.#i+1)}setVolume(e){this.#o=e,this.#s&&(this.#s.volume=e)}setRate(e){this.#a=e,this.#s&&(this.#s.playbackRate=e)}}const Mh=/([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/,jh=n=>{for(const e of n.getElementsByTagNameNS(te.DC,"identifier")){const[t]=Ue(e).split(":").slice(-1);if(Mh.test(t))return t}return""},sc=n=>Ue(n.getElementById(n.documentElement.getAttribute("unique-identifier"))??n.getElementsByTagNameNS(te.DC,"identifier")[0]),ac=async(n,e,t)=>{const r=new Uint8Array(await t.slice(0,e).arrayBuffer());e=Math.min(e,r.length);for(var i=0;i<e;i++)r[i]=r[i]^n[i%n.length];return new Blob([r,t.slice(e)],{type:t.type})},Dh=async n=>{const e=new TextEncoder().encode(n),t=await globalThis.crypto.subtle.digest("SHA-1",e);return new Uint8Array(t)},Fh=(n=Dh)=>({"http://www.idpf.org/2008/embedding":{key:e=>n(sc(e).replaceAll(/[\u0020\u0009\u000d\u000a]/g,"")),decode:(e,t)=>ac(e,1040,t)},"http://ns.adobe.com/pdf/enc#RC":{key:e=>{const t=jh(e).replaceAll("-","");return Uint8Array.from({length:16},(r,i)=>parseInt(t.slice(i*2,i*2+2),16))},decode:(e,t)=>ac(e,1024,t)}});class Nh{#e=new Map;#r=new Map;#t;constructor(e){this.#t=e}async init(e,t){if(!e)return;const r=Array.from(e.getElementsByTagNameNS(te.ENC,"EncryptedData"),i=>({algorithm:i.getElementsByTagNameNS(te.ENC,"EncryptionMethod")[0]?.getAttribute("Algorithm"),uri:i.getElementsByTagNameNS(te.ENC,"CipherReference")[0]?.getAttribute("URI")}));for(const{algorithm:i,uri:s}of r){if(!this.#r.has(i)){const a=this.#t[i];if(!a){console.warn("Unknown encryption algorithm");continue}const o=await a.key(t);this.#r.set(i,c=>a.decode(o,c))}this.#e.set(s,i)}}getDecoder(e){return this.#r.get(this.#e.get(e))??(t=>t)}}class Bh{constructor({opf:e,resolveHref:t}){this.opf=e;const{$:r,$$:i,$$$:s}=Ot(e,te.OPF),a=r(e.documentElement,"manifest"),o=r(e.documentElement,"spine"),c=i(o,"itemref");this.manifest=i(a,"item").map(Zt("href","id","media-type","properties","media-overlay")).map(u=>(u.href=t(u.href),u.properties=u.properties?.split(/\s/),u)),this.manifestById=new Map(this.manifest.map(u=>[u.id,u])),this.spine=c.map(Zt("idref","id","linear","properties")).map(u=>(u.properties=u.properties?.split(/\s/),u)),this.pageProgressionDirection=o.getAttribute("page-progression-direction"),this.navPath=this.getItemByProperty("nav")?.href,this.ncxPath=(this.getItemByID(o.getAttribute("toc"))??this.manifest.find(u=>u.mediaType===le.NCX))?.href;const l=r(e.documentElement,"guide");l&&(this.guide=i(l,"reference").map(Zt("type","title","href")).map(({type:u,title:h,href:p})=>({label:h,type:u.split(/\s/),href:t(p)}))),this.cover=this.getItemByProperty("cover-image")??this.getItemByID(s(e,"meta").find(Th("name","cover"))?.getAttribute("content"))??this.getItemByHref(this.guide?.find(u=>u.type.includes("cover"))?.href),this.cfis=ou(c)}getItemByID(e){return this.manifestById.get(e)}getItemByHref(e){return this.manifest.find(t=>t.href===e)}getItemByProperty(e){return this.manifest.find(t=>t.properties?.includes(e))}resolveCFI(e){const t=wt(e),r=(t.parent??t).shift();let i=Fa(this.opf,r);i&&i.nodeName!=="idref"&&(r.at(-1).id=null,i=Fa(this.opf,r));const s=i?.getAttribute("idref");return{index:this.spine.findIndex(c=>c.idref===s),anchor:c=>Da(c,t)}}}class zh{#e=new Map;#r=new Map;#t=new Map;eventTarget=new EventTarget;constructor({loadText:e,loadBlob:t,resources:r}){this.loadText=e,this.loadBlob=t,this.manifest=r.manifest,this.assets=r.manifest}async createURL(e,t,r,i){if(!t)return"";const s={data:t,type:r};Object.defineProperty(s,"name",{value:e});const a=new CustomEvent("data",{detail:s});this.eventTarget.dispatchEvent(a);const o=await a.detail.data,c=await a.detail.type,l=URL.createObjectURL(new Blob([o],{type:c}));if(this.#e.set(e,l),this.#t.set(e,1),i){const u=this.#r.get(i);u?u.push(e):this.#r.set(i,[e])}return l}ref(e,t){const r=this.#r.get(t);return r?.includes(e)||(this.#t.set(e,this.#t.get(e)+1),r?r.push(e):this.#r.set(t,[e])),this.#e.get(e)}unref(e){if(!this.#t.has(e))return;const t=this.#t.get(e)-1;if(t<1){URL.revokeObjectURL(this.#e.get(e)),this.#e.delete(e),this.#t.delete(e);const r=this.#r.get(e);if(r)for(;r.length;)this.unref(r.pop());this.#r.delete(e)}else this.#t.set(e,t)}async loadItem(e,t=[]){if(!e)return null;const{href:r,mediaType:i}=e,s=le.JS.test(e.mediaType),a={type:i,isScript:s,allow:!0},o=new CustomEvent("load",{detail:a});if(this.eventTarget.dispatchEvent(o),!await o.detail.allow)return null;const l=t.at(-1);if(this.#e.has(r))return this.ref(r,l);if((s||[le.XHTML,le.HTML,le.CSS,le.SVG].includes(i))&&t.every(p=>p!==r))return this.loadReplaced(e,t);const h=Promise.resolve().then(()=>this.loadBlob(r));return this.createURL(r,h,i,l)}async loadHref(e,t,r=[]){if(nc(e))return e;const i=ut(e,t),s=this.manifest.find(a=>a.href===i);return s?this.loadItem(s,r.concat(t)):e}async loadReplaced(e,t=[]){const{href:r,mediaType:i}=e,s=t.at(-1);let a="";try{a=await this.loadText(r)}catch(c){return this.createURL(r,Promise.reject(c),i,s)}if(!a)return null;if([le.XHTML,le.HTML,le.SVG].includes(i)){let c=new DOMParser().parseFromString(a,i);if(i===le.XHTML&&(c.querySelector("parsererror")||!c.documentElement?.namespaceURI)&&(console.warn(c.querySelector("parsererror")?.innerText??"Invalid XHTML"),e.mediaType=le.HTML,c=new DOMParser().parseFromString(a,e.mediaType)),[le.XHTML,le.SVG].includes(e.mediaType)){let h=c.firstChild;for(;h instanceof ProcessingInstruction;){if(h.data){const p=await At(h.data,/(?:^|\s*)(href\s*=\s*['"])([^'"]*)(['"])/i,(g,f,b,d)=>this.loadHref(b,r,t).then(m=>`${f}${m}${d}`));h.replaceWith(c.createProcessingInstruction(h.target,p))}h=h.nextSibling}}const l=async(h,p)=>h.setAttribute(p,await this.loadHref(h.getAttribute(p),r,t));for(const h of c.querySelectorAll("link[href]"))await l(h,"href");for(const h of c.querySelectorAll("[src]"))await l(h,"src");for(const h of c.querySelectorAll("[poster]"))await l(h,"poster");for(const h of c.querySelectorAll("object[data]"))await l(h,"data");for(const h of c.querySelectorAll("[*|href]:not([href])"))h.setAttributeNS(te.XLINK,"href",await this.loadHref(h.getAttributeNS(te.XLINK,"href"),r,t));for(const h of c.querySelectorAll("[srcset]"))h.setAttribute("srcset",await At(h.getAttribute("srcset"),/(\s*)(.+?)\s*((?:\s[\d.]+[wx])+\s*(?:,|$)|,\s+|$)/g,(p,g,f,b)=>this.loadHref(f,r,t).then(d=>`${g}${d}${b}`)));for(const h of c.querySelectorAll("style"))h.textContent&&(h.textContent=await this.replaceCSS(h.textContent,r,t));for(const h of c.querySelectorAll("[style]"))h.setAttribute("style",await this.replaceCSS(h.getAttribute("style"),r,t));const u=new XMLSerializer().serializeToString(c);return this.createURL(r,u,e.mediaType,s)}const o=i===le.CSS?await this.replaceCSS(a,r,t):await this.replaceString(a,r,t);return this.createURL(r,o,i,s)}async replaceCSS(e,t,r=[]){const i=await At(e,/url\(\s*["']?([^'"\n]*?)\s*["']?\s*\)/gi,(s,a)=>this.loadHref(a,t,r).then(o=>`url("${o}")`));return At(i,/@import\s*["']([^"'\n]*?)["']/gi,(s,a)=>this.loadHref(a,t,r).then(o=>`@import "${o}"`))}replaceString(e,t,r=[]){const i=new Map,s=this.assets.map(o=>{if(o.href===t)return;const c=Rh(kh(t),o.href),l=encodeURI(c),u="/"+o.href,h=encodeURI(u),p=new Set([c,l,u,h]);for(const g of p)i.set(g,o);return Array.from(p)}).flat().filter(o=>o);if(!s.length)return e;const a=new RegExp(s.map(Oh).join("|"),"g");return At(e,a,async o=>this.loadItem(i.get(o.replace(/^\//,"")),r.concat(t)))}unloadItem(e){this.unref(e?.href)}destroy(){for(const e of this.#e.values())URL.revokeObjectURL(e)}}const Uh=(n,e)=>n.getElementById(e)??n.querySelector(`[name="${CSS.escape(e)}"]`),qh=n=>{for(const e of n){if(e==="page-spread-left"||e==="rendition:page-spread-left")return"left";if(e==="page-spread-right"||e==="rendition:page-spread-right")return"right";if(e==="rendition:page-spread-center")return"center"}},$h=n=>n?{fixedLayout:Ue(n.querySelector('option[name="fixed-layout"]')),openToSpread:Ue(n.querySelector('option[name="open-to-spread"]'))}:null;class Wh{parser=new DOMParser;#e;#r;constructor({loadText:e,loadBlob:t,getSize:r,sha1:i}){this.loadText=e,this.loadBlob=t,this.getSize=r,this.#r=new Nh(Fh(i))}async#t(e){const t=await this.loadText(e);if(!t)return null;const r=this.parser.parseFromString(t,le.XML);if(r.querySelector("parsererror"))throw new Error(`XML parsing error: ${e}
15
+ <%s key={someKey} {...props} />`,Ti,nt,Fd,nt),nl[nt+Ti]=!0}}return v===r?Ld(ee):Id(ee),ee}}function Pd(v,C,M){return il(v,C,M,!0)}function Md(v,C,M){return il(v,C,M,!1)}var jd=Md,Dd=Pd;pt.Fragment=r,pt.jsx=jd,pt.jsxs=Dd})()),pt}var Ai;function ol(){return Ai||(Ai=1,process.env.NODE_ENV==="production"?Dt.exports=sl():Dt.exports=al()),Dt.exports}var V=ol();function cl(n,e){n.addEventListener("keyup",t=>{t.key==="ArrowUp"||t.key==="ArrowRight"?e("next"):(t.key==="ArrowDown"||t.key==="ArrowLeft")&&e("prev")},!1)}function ll(n,e){let i=0,s;n.addEventListener("wheel",a=>{a.ignore||(a.ignore=!0,clearTimeout(s),i+=a.deltaY,s=setTimeout(()=>{if(Math.abs(i)>=750){let o=Math.sign(i)>0?"next":"prev";e(o),i=0}i=0},50))})}function ul(n,e){let s,a,o;n.addEventListener("touchstart",c=>{c.ignore||(c.ignore=!0,s=c.changedTouches[0].pageX,a=c.changedTouches[0].pageY,o=Date.now())},!1),n.addEventListener("touchend",c=>{if(c.ignore)return;c.ignore=!0;const l=c.changedTouches[0].pageX-s,u=c.changedTouches[0].pageY-a;Date.now()-o<=500&&(Math.abs(l)>=50&&Math.abs(u)<=200?e(l<0?"prev":"next"):Math.abs(u)>=50&&Math.abs(l)<=200?e(u<0?"up":"down"):(n?.defaultView?.getSelection()?.removeAllRanges(),n.dispatchEvent(new MouseEvent("click",{clientX:s,clientY:a})),c.preventDefault()))},!1)}var Ci={},Ii={},Li={},gt,Pi;function Te(){if(Pi)return gt;Pi=1;var n=function(e){return e&&e.Math===Math&&e};return gt=n(typeof globalThis=="object"&&globalThis)||n(typeof window=="object"&&window)||n(typeof self=="object"&&self)||n(typeof Ri=="object"&&Ri)||n(typeof gt=="object"&&gt)||(function(){return this})()||Function("return this")(),gt}var hr={},fr,Mi;function Ce(){return Mi||(Mi=1,fr=function(n){try{return!!n()}catch{return!0}}),fr}var dr,ji;function $e(){if(ji)return dr;ji=1;var n=Ce();return dr=!n(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),dr}var pr,Di;function gr(){if(Di)return pr;Di=1;var n=Ce();return pr=!n(function(){var e=(function(){}).bind();return typeof e!="function"||e.hasOwnProperty("prototype")}),pr}var mr,Fi;function it(){if(Fi)return mr;Fi=1;var n=gr(),e=Function.prototype.call;return mr=n?e.bind(e):function(){return e.apply(e,arguments)},mr}var br={},Ni;function hl(){if(Ni)return br;Ni=1;var n={}.propertyIsEnumerable,e=Object.getOwnPropertyDescriptor,t=e&&!n.call({1:2},1);return br.f=t?function(i){var s=e(this,i);return!!s&&s.enumerable}:n,br}var yr,Bi;function vr(){return Bi||(Bi=1,yr=function(n,e){return{enumerable:!(n&1),configurable:!(n&2),writable:!(n&4),value:e}}),yr}var wr,zi;function ge(){if(zi)return wr;zi=1;var n=gr(),e=Function.prototype,t=e.call,r=n&&e.bind.bind(t,t);return wr=n?r:function(i){return function(){return t.apply(i,arguments)}},wr}var xr,Ui;function _r(){if(Ui)return xr;Ui=1;var n=ge(),e=n({}.toString),t=n("".slice);return xr=function(r){return t(e(r),8,-1)},xr}var Sr,qi;function fl(){if(qi)return Sr;qi=1;var n=ge(),e=Ce(),t=_r(),r=Object,i=n("".split);return Sr=e(function(){return!r("z").propertyIsEnumerable(0)})?function(s){return t(s)==="String"?i(s,""):r(s)}:r,Sr}var Er,$i;function Tr(){return $i||($i=1,Er=function(n){return n==null}),Er}var Rr,Wi;function Ft(){if(Wi)return Rr;Wi=1;var n=Tr(),e=TypeError;return Rr=function(t){if(n(t))throw new e("Can't call method on "+t);return t},Rr}var kr,Hi;function Or(){if(Hi)return kr;Hi=1;var n=fl(),e=Ft();return kr=function(t){return n(e(t))},kr}var Ar,Vi;function Re(){if(Vi)return Ar;Vi=1;var n=typeof document=="object"&&document.all;return Ar=typeof n>"u"&&n!==void 0?function(e){return typeof e=="function"||e===n}:function(e){return typeof e=="function"},Ar}var Cr,Gi;function mt(){if(Gi)return Cr;Gi=1;var n=Re();return Cr=function(e){return typeof e=="object"?e!==null:n(e)},Cr}var Ir,Xi;function Lr(){if(Xi)return Ir;Xi=1;var n=Te(),e=Re(),t=function(r){return e(r)?r:void 0};return Ir=function(r,i){return arguments.length<2?t(n[r]):n[r]&&n[r][i]},Ir}var Pr,Ki;function Yi(){if(Ki)return Pr;Ki=1;var n=ge();return Pr=n({}.isPrototypeOf),Pr}var Mr,Ji;function dl(){if(Ji)return Mr;Ji=1;var n=Te(),e=n.navigator,t=e&&e.userAgent;return Mr=t?String(t):"",Mr}var jr,Zi;function pl(){if(Zi)return jr;Zi=1;var n=Te(),e=dl(),t=n.process,r=n.Deno,i=t&&t.versions||r&&r.version,s=i&&i.v8,a,o;return s&&(a=s.split("."),o=a[0]>0&&a[0]<4?1:+(a[0]+a[1])),!o&&e&&(a=e.match(/Edge\/(\d+)/),(!a||a[1]>=74)&&(a=e.match(/Chrome\/(\d+)/),a&&(o=+a[1]))),jr=o,jr}var Dr,Qi;function es(){if(Qi)return Dr;Qi=1;var n=pl(),e=Ce(),t=Te(),r=t.String;return Dr=!!Object.getOwnPropertySymbols&&!e(function(){var i=Symbol("symbol detection");return!r(i)||!(Object(i)instanceof Symbol)||!Symbol.sham&&n&&n<41}),Dr}var Fr,ts;function rs(){if(ts)return Fr;ts=1;var n=es();return Fr=n&&!Symbol.sham&&typeof Symbol.iterator=="symbol",Fr}var Nr,ns;function is(){if(ns)return Nr;ns=1;var n=Lr(),e=Re(),t=Yi(),r=rs(),i=Object;return Nr=r?function(s){return typeof s=="symbol"}:function(s){var a=n("Symbol");return e(a)&&t(a.prototype,i(s))},Nr}var Br,ss;function zr(){if(ss)return Br;ss=1;var n=String;return Br=function(e){try{return n(e)}catch{return"Object"}},Br}var Ur,as;function bt(){if(as)return Ur;as=1;var n=Re(),e=zr(),t=TypeError;return Ur=function(r){if(n(r))return r;throw new t(e(r)+" is not a function")},Ur}var qr,os;function $r(){if(os)return qr;os=1;var n=bt(),e=Tr();return qr=function(t,r){var i=t[r];return e(i)?void 0:n(i)},qr}var Wr,cs;function gl(){if(cs)return Wr;cs=1;var n=it(),e=Re(),t=mt(),r=TypeError;return Wr=function(i,s){var a,o;if(s==="string"&&e(a=i.toString)&&!t(o=n(a,i))||e(a=i.valueOf)&&!t(o=n(a,i))||s!=="string"&&e(a=i.toString)&&!t(o=n(a,i)))return o;throw new r("Can't convert object to primitive value")},Wr}var Hr={exports:{}},Vr,ls;function us(){return ls||(ls=1,Vr=!1),Vr}var Gr,hs;function Xr(){if(hs)return Gr;hs=1;var n=Te(),e=Object.defineProperty;return Gr=function(t,r){try{e(n,t,{value:r,configurable:!0,writable:!0})}catch{n[t]=r}return r},Gr}var fs;function Kr(){if(fs)return Hr.exports;fs=1;var n=us(),e=Te(),t=Xr(),r="__core-js_shared__",i=Hr.exports=e[r]||t(r,{});return(i.versions||(i.versions=[])).push({version:"3.48.0",mode:n?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.48.0/LICENSE",source:"https://github.com/zloirock/core-js"}),Hr.exports}var Yr,ds;function ps(){if(ds)return Yr;ds=1;var n=Kr();return Yr=function(e,t){return n[e]||(n[e]=t||{})},Yr}var Jr,gs;function ml(){if(gs)return Jr;gs=1;var n=Ft(),e=Object;return Jr=function(t){return e(n(t))},Jr}var Zr,ms;function Ye(){if(ms)return Zr;ms=1;var n=ge(),e=ml(),t=n({}.hasOwnProperty);return Zr=Object.hasOwn||function(i,s){return t(e(i),s)},Zr}var Qr,bs;function ys(){if(bs)return Qr;bs=1;var n=ge(),e=0,t=Math.random(),r=n(1.1.toString);return Qr=function(i){return"Symbol("+(i===void 0?"":i)+")_"+r(++e+t,36)},Qr}var en,vs;function yt(){if(vs)return en;vs=1;var n=Te(),e=ps(),t=Ye(),r=ys(),i=es(),s=rs(),a=n.Symbol,o=e("wks"),c=s?a.for||a:a&&a.withoutSetter||r;return en=function(l){return t(o,l)||(o[l]=i&&t(a,l)?a[l]:c("Symbol."+l)),o[l]},en}var tn,ws;function bl(){if(ws)return tn;ws=1;var n=it(),e=mt(),t=is(),r=$r(),i=gl(),s=yt(),a=TypeError,o=s("toPrimitive");return tn=function(c,l){if(!e(c)||t(c))return c;var u=r(c,o),h;if(u){if(l===void 0&&(l="default"),h=n(u,c,l),!e(h)||t(h))return h;throw new a("Can't convert object to primitive value")}return l===void 0&&(l="number"),i(c,l)},tn}var rn,xs;function nn(){if(xs)return rn;xs=1;var n=bl(),e=is();return rn=function(t){var r=n(t,"string");return e(r)?r:r+""},rn}var sn,_s;function yl(){if(_s)return sn;_s=1;var n=Te(),e=mt(),t=n.document,r=e(t)&&e(t.createElement);return sn=function(i){return r?t.createElement(i):{}},sn}var an,Ss;function Es(){if(Ss)return an;Ss=1;var n=$e(),e=Ce(),t=yl();return an=!n&&!e(function(){return Object.defineProperty(t("div"),"a",{get:function(){return 7}}).a!==7}),an}var Ts;function Rs(){if(Ts)return hr;Ts=1;var n=$e(),e=it(),t=hl(),r=vr(),i=Or(),s=nn(),a=Ye(),o=Es(),c=Object.getOwnPropertyDescriptor;return hr.f=n?c:function(u,h){if(u=i(u),h=s(h),o)try{return c(u,h)}catch{}if(a(u,h))return r(!e(t.f,u,h),u[h])},hr}var on={},cn,ks;function vl(){if(ks)return cn;ks=1;var n=$e(),e=Ce();return cn=n&&e(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),cn}var ln,Os;function vt(){if(Os)return ln;Os=1;var n=mt(),e=String,t=TypeError;return ln=function(r){if(n(r))return r;throw new t(e(r)+" is not an object")},ln}var As;function Nt(){if(As)return on;As=1;var n=$e(),e=Es(),t=vl(),r=vt(),i=nn(),s=TypeError,a=Object.defineProperty,o=Object.getOwnPropertyDescriptor,c="enumerable",l="configurable",u="writable";return on.f=n?t?function(p,g,f){if(r(p),g=i(g),r(f),typeof p=="function"&&g==="prototype"&&"value"in f&&u in f&&!f[u]){var b=o(p,g);b&&b[u]&&(p[g]=f.value,f={configurable:l in f?f[l]:b[l],enumerable:c in f?f[c]:b[c],writable:!1})}return a(p,g,f)}:a:function(p,g,f){if(r(p),g=i(g),r(f),e)try{return a(p,g,f)}catch{}if("get"in f||"set"in f)throw new s("Accessors not supported");return"value"in f&&(p[g]=f.value),p},on}var un,Cs;function Is(){if(Cs)return un;Cs=1;var n=$e(),e=Nt(),t=vr();return un=n?function(r,i,s){return e.f(r,i,t(1,s))}:function(r,i,s){return r[i]=s,r},un}var hn={exports:{}},fn,Ls;function wl(){if(Ls)return fn;Ls=1;var n=$e(),e=Ye(),t=Function.prototype,r=n&&Object.getOwnPropertyDescriptor,i=e(t,"name"),s=i&&(function(){}).name==="something",a=i&&(!n||n&&r(t,"name").configurable);return fn={EXISTS:i,PROPER:s,CONFIGURABLE:a},fn}var dn,Ps;function xl(){if(Ps)return dn;Ps=1;var n=ge(),e=Re(),t=Kr(),r=n(Function.toString);return e(t.inspectSource)||(t.inspectSource=function(i){return r(i)}),dn=t.inspectSource,dn}var pn,Ms;function _l(){if(Ms)return pn;Ms=1;var n=Te(),e=Re(),t=n.WeakMap;return pn=e(t)&&/native code/.test(String(t)),pn}var gn,js;function Sl(){if(js)return gn;js=1;var n=ps(),e=ys(),t=n("keys");return gn=function(r){return t[r]||(t[r]=e(r))},gn}var mn,Ds;function Fs(){return Ds||(Ds=1,mn={}),mn}var bn,Ns;function El(){if(Ns)return bn;Ns=1;var n=_l(),e=Te(),t=mt(),r=Is(),i=Ye(),s=Kr(),a=Sl(),o=Fs(),c="Object already initialized",l=e.TypeError,u=e.WeakMap,h,p,g,f=function(y){return g(y)?p(y):h(y,{})},b=function(y){return function(w){var _;if(!t(w)||(_=p(w)).type!==y)throw new l("Incompatible receiver, "+y+" required");return _}};if(n||s.state){var d=s.state||(s.state=new u);d.get=d.get,d.has=d.has,d.set=d.set,h=function(y,w){if(d.has(y))throw new l(c);return w.facade=y,d.set(y,w),w},p=function(y){return d.get(y)||{}},g=function(y){return d.has(y)}}else{var m=a("state");o[m]=!0,h=function(y,w){if(i(y,m))throw new l(c);return w.facade=y,r(y,m,w),w},p=function(y){return i(y,m)?y[m]:{}},g=function(y){return i(y,m)}}return bn={set:h,get:p,has:g,enforce:f,getterFor:b},bn}var Bs;function Tl(){if(Bs)return hn.exports;Bs=1;var n=ge(),e=Ce(),t=Re(),r=Ye(),i=$e(),s=wl().CONFIGURABLE,a=xl(),o=El(),c=o.enforce,l=o.get,u=String,h=Object.defineProperty,p=n("".slice),g=n("".replace),f=n([].join),b=i&&!e(function(){return h(function(){},"length",{value:8}).length!==8}),d=String(String).split("String"),m=hn.exports=function(y,w,_){p(u(w),0,7)==="Symbol("&&(w="["+g(u(w),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),_&&_.getter&&(w="get "+w),_&&_.setter&&(w="set "+w),(!r(y,"name")||s&&y.name!==w)&&(i?h(y,"name",{value:w,configurable:!0}):y.name=w),b&&_&&r(_,"arity")&&y.length!==_.arity&&h(y,"length",{value:_.arity});try{_&&r(_,"constructor")&&_.constructor?i&&h(y,"prototype",{writable:!1}):y.prototype&&(y.prototype=void 0)}catch{}var R=c(y);return r(R,"source")||(R.source=f(d,typeof w=="string"?w:"")),y};return Function.prototype.toString=m(function(){return t(this)&&l(this).source||a(this)},"toString"),hn.exports}var yn,zs;function Rl(){if(zs)return yn;zs=1;var n=Re(),e=Nt(),t=Tl(),r=Xr();return yn=function(i,s,a,o){o||(o={});var c=o.enumerable,l=o.name!==void 0?o.name:s;if(n(a)&&t(a,l,o),o.global)c?i[s]=a:r(s,a);else{try{o.unsafe?i[s]&&(c=!0):delete i[s]}catch{}c?i[s]=a:e.f(i,s,{value:a,enumerable:!1,configurable:!o.nonConfigurable,writable:!o.nonWritable})}return i},yn}var vn={},wn,Us;function kl(){if(Us)return wn;Us=1;var n=Math.ceil,e=Math.floor;return wn=Math.trunc||function(r){var i=+r;return(i>0?e:n)(i)},wn}var xn,qs;function $s(){if(qs)return xn;qs=1;var n=kl();return xn=function(e){var t=+e;return t!==t||t===0?0:n(t)},xn}var _n,Ws;function Ol(){if(Ws)return _n;Ws=1;var n=$s(),e=Math.max,t=Math.min;return _n=function(r,i){var s=n(r);return s<0?e(s+i,0):t(s,i)},_n}var Sn,Hs;function Al(){if(Hs)return Sn;Hs=1;var n=$s(),e=Math.min;return Sn=function(t){var r=n(t);return r>0?e(r,9007199254740991):0},Sn}var En,Vs;function Gs(){if(Vs)return En;Vs=1;var n=Al();return En=function(e){return n(e.length)},En}var Tn,Xs;function Cl(){if(Xs)return Tn;Xs=1;var n=Or(),e=Ol(),t=Gs(),r=function(i){return function(s,a,o){var c=n(s),l=t(c);if(l===0)return!i&&-1;var u=e(o,l),h;if(i&&a!==a){for(;l>u;)if(h=c[u++],h!==h)return!0}else for(;l>u;u++)if((i||u in c)&&c[u]===a)return i||u||0;return!i&&-1}};return Tn={includes:r(!0),indexOf:r(!1)},Tn}var Rn,Ks;function Il(){if(Ks)return Rn;Ks=1;var n=ge(),e=Ye(),t=Or(),r=Cl().indexOf,i=Fs(),s=n([].push);return Rn=function(a,o){var c=t(a),l=0,u=[],h;for(h in c)!e(i,h)&&e(c,h)&&s(u,h);for(;o.length>l;)e(c,h=o[l++])&&(~r(u,h)||s(u,h));return u},Rn}var kn,Ys;function Ll(){return Ys||(Ys=1,kn=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]),kn}var Js;function Pl(){if(Js)return vn;Js=1;var n=Il(),e=Ll(),t=e.concat("length","prototype");return vn.f=Object.getOwnPropertyNames||function(i){return n(i,t)},vn}var On={},Zs;function Ml(){return Zs||(Zs=1,On.f=Object.getOwnPropertySymbols),On}var An,Qs;function jl(){if(Qs)return An;Qs=1;var n=Lr(),e=ge(),t=Pl(),r=Ml(),i=vt(),s=e([].concat);return An=n("Reflect","ownKeys")||function(o){var c=t.f(i(o)),l=r.f;return l?s(c,l(o)):c},An}var Cn,ea;function Dl(){if(ea)return Cn;ea=1;var n=Ye(),e=jl(),t=Rs(),r=Nt();return Cn=function(i,s,a){for(var o=e(s),c=r.f,l=t.f,u=0;u<o.length;u++){var h=o[u];!n(i,h)&&!(a&&n(a,h))&&c(i,h,l(s,h))}},Cn}var In,ta;function Fl(){if(ta)return In;ta=1;var n=Ce(),e=Re(),t=/#|\.prototype\./,r=function(c,l){var u=s[i(c)];return u===o?!0:u===a?!1:e(l)?n(l):!!l},i=r.normalize=function(c){return String(c).replace(t,".").toLowerCase()},s=r.data={},a=r.NATIVE="N",o=r.POLYFILL="P";return In=r,In}var Ln,ra;function na(){if(ra)return Ln;ra=1;var n=Te(),e=Rs().f,t=Is(),r=Rl(),i=Xr(),s=Dl(),a=Fl();return Ln=function(o,c){var l=o.target,u=o.global,h=o.stat,p,g,f,b,d,m;if(u?g=n:h?g=n[l]||i(l,{}):g=n[l]&&n[l].prototype,g)for(f in c){if(d=c[f],o.dontCallGetSet?(m=e(g,f),b=m&&m.value):b=g[f],p=a(u?f:l+(h?".":"#")+f,o.forced),!p&&b!==void 0){if(typeof d==typeof b)continue;s(d,b)}(o.sham||b&&b.sham)&&t(d,"sham",!0),r(g,f,d,o)}},Ln}var Pn,ia;function Nl(){if(ia)return Pn;ia=1;var n=_r(),e=ge();return Pn=function(t){if(n(t)==="Function")return e(t)},Pn}var Mn,sa;function Bl(){if(sa)return Mn;sa=1;var n=Nl(),e=bt(),t=gr(),r=n(n.bind);return Mn=function(i,s){return e(i),s===void 0?i:t?r(i,s):function(){return i.apply(s,arguments)}},Mn}var jn,aa;function oa(){return aa||(aa=1,jn={}),jn}var Dn,ca;function zl(){if(ca)return Dn;ca=1;var n=yt(),e=oa(),t=n("iterator"),r=Array.prototype;return Dn=function(i){return i!==void 0&&(e.Array===i||r[t]===i)},Dn}var Fn,la;function Ul(){if(la)return Fn;la=1;var n=yt(),e=n("toStringTag"),t={};return t[e]="z",Fn=String(t)==="[object z]",Fn}var Nn,ua;function ql(){if(ua)return Nn;ua=1;var n=Ul(),e=Re(),t=_r(),r=yt(),i=r("toStringTag"),s=Object,a=t((function(){return arguments})())==="Arguments",o=function(c,l){try{return c[l]}catch{}};return Nn=n?t:function(c){var l,u,h;return c===void 0?"Undefined":c===null?"Null":typeof(u=o(l=s(c),i))=="string"?u:a?t(l):(h=t(l))==="Object"&&e(l.callee)?"Arguments":h},Nn}var Bn,ha;function fa(){if(ha)return Bn;ha=1;var n=ql(),e=$r(),t=Tr(),r=oa(),i=yt(),s=i("iterator");return Bn=function(a){if(!t(a))return e(a,s)||e(a,"@@iterator")||r[n(a)]},Bn}var zn,da;function $l(){if(da)return zn;da=1;var n=it(),e=bt(),t=vt(),r=zr(),i=fa(),s=TypeError;return zn=function(a,o){var c=arguments.length<2?i(a):o;if(e(c))return t(n(c,a));throw new s(r(a)+" is not iterable")},zn}var Un,pa;function Wl(){if(pa)return Un;pa=1;var n=it(),e=vt(),t=$r();return Un=function(r,i,s){var a,o;e(r);try{if(a=t(r,"return"),!a){if(i==="throw")throw s;return s}a=n(a,r)}catch(c){o=!0,a=c}if(i==="throw")throw s;if(o)throw a;return e(a),s},Un}var qn,ga;function ma(){if(ga)return qn;ga=1;var n=Bl(),e=it(),t=vt(),r=zr(),i=zl(),s=Gs(),a=Yi(),o=$l(),c=fa(),l=Wl(),u=TypeError,h=function(g,f){this.stopped=g,this.result=f},p=h.prototype;return qn=function(g,f,b){var d=b&&b.that,m=!!(b&&b.AS_ENTRIES),y=!!(b&&b.IS_RECORD),w=!!(b&&b.IS_ITERATOR),_=!!(b&&b.INTERRUPTED),R=n(f,d),E,S,x,A,T,k,O,I=function(P){return E&&l(E,"normal"),new h(!0,P)},L=function(P){return m?(t(P),_?R(P[0],P[1],I):R(P[0],P[1])):_?R(P,I):R(P)};if(y)E=g.iterator;else if(w)E=g;else{if(S=c(g),!S)throw new u(r(g)+" is not iterable");if(i(S)){for(x=0,A=s(g);A>x;x++)if(T=L(g[x]),T&&a(p,T))return T;return new h(!1)}E=o(g,S)}for(k=y?g.next:E.next;!(O=e(k,E)).done;){try{T=L(O.value)}catch(P){l(E,"throw",P)}if(typeof T=="object"&&T&&a(p,T))return T}return new h(!1)},qn}var $n,ba;function Hl(){if(ba)return $n;ba=1;var n=ge(),e=Map.prototype;return $n={Map,set:n(e.set),get:n(e.get),has:n(e.has),remove:n(e.delete),proto:e},$n}var ya;function Vl(){if(ya)return Li;ya=1;var n=na(),e=ge(),t=bt(),r=Ft(),i=ma(),s=Hl(),a=us(),o=Ce(),c=s.Map,l=s.has,u=s.get,h=s.set,p=e([].push),g=a||o(function(){return c.groupBy("ab",function(f){return f}).get("a").length!==1});return n({target:"Map",stat:!0,forced:a||g},{groupBy:function(b,d){r(b),t(d);var m=new c,y=0;return i(b,function(w){var _=d(w,y++);l(m,_)?p(u(m,_),w):h(m,_,[w])}),m}}),Li}var va;function Gl(){return va||(va=1,Vl()),Ii}var wa={},xa={},Wn,_a;function Xl(){if(_a)return Wn;_a=1;var n=$e(),e=Nt(),t=vr();return Wn=function(r,i,s){n?e.f(r,i,t(0,s)):r[i]=s},Wn}var Sa;function Kl(){if(Sa)return xa;Sa=1;var n=na(),e=Xl(),t=Lr(),r=ge(),i=bt(),s=Ft(),a=nn(),o=ma(),c=Ce(),l=Object.groupBy,u=t("Object","create"),h=r([].push),p=!l||c(function(){return l("ab",function(g){return g}).a.length!==1});return n({target:"Object",stat:!0,forced:p},{groupBy:function(f,b){s(f),i(b);var d=u(null),m=0;return o(f,function(y){var w=a(b(y,m++));w in d?h(d[w],y):e(d,w,[y])}),d}}),xa}var Ea;function Yl(){return Ea||(Ea=1,Kl()),wa}var Ta;function Jl(){return Ta||(Ta=1,Gl(),Yl()),Ci}Jl(),typeof Promise.withResolvers>"u"&&window&&(window.Promise.withResolvers=function(){let n,e;return{promise:new Promise((r,i)=>{n=r,e=i}),resolve:n,reject:e}});const Ra=Q.forwardRef((n,e)=>{const{url:t,location:r,getRendition:i,tocChanged:s,onUpdateLocation:a,LoadingView:o,ErrorView:c}=n,[l,u]=Q.useState(!1),[h,p]=Q.useState(!1),g=Q.useRef(null),f=Q.useRef(null),[b,d]=Q.useState(!0),m=async()=>{try{t&&(f.current?f.current.close():(f.current=document.createElement("foliate-view"),g.current.append(f.current)),await f.current.open(t),i&&i(f.current),y())}catch(T){console.error("Error opening book:",T),p(!0)}},y=()=>{u(!0);const{book:T}=f.current;_(),s&&s(T.toc),r?f.current.goTo(r):f.current.renderer.next()},w=T=>{T==="next"?S():T==="prev"&&x()},_=()=>{f.current.addEventListener("load",R),f.current.addEventListener("relocate",E)},R=({detail:{doc:T}})=>{ll(T,w),ul(T,w),cl(T,w)},E=({detail:T})=>{a&&a(T)},S=()=>f.current.next(),x=()=>f.current.prev(),A=T=>f.current.goTo(T);return Q.useImperativeHandle(e,()=>({prevPage:x,nextPage:S,setLocation:A})),Q.useEffect(()=>{g.current&&!customElements.get("foliate-view")&&Promise.resolve().then(()=>Eu).then(()=>{m()})},[g.current]),Q.useEffect(()=>{b?d(!1):m()},[t]),V.jsx("div",{className:"reader",children:V.jsxs("div",{className:"viewHolder",children:[V.jsx("div",{ref:g,id:"viewer",style:{display:l?"":"none"}}),!l&&(h?c:o)]})})});function ka(n){const{toc:e=[],current:t="",setLocation:r,isSubmenu:i=!1}=n;return V.jsx(V.Fragment,{children:e.map((s,a)=>V.jsxs("div",{children:[V.jsxs("button",{className:`tocAreaButton ${s.href===t?"active":""}`,onClick:()=>{s.subitems&&s.subitems.length>0?(s.expansion=!s.expansion,r(s.href,!1)):r(s.href)},children:[i?" ".repeat(4)+s.label:s.label,s.subitems&&s.subitems.length>0&&V.jsx("div",{className:`expansion ${s.expansion?"open":""}`})]}),s.subitems&&s.subitems.length>0&&V.jsx("div",{"v-show":s.expansion,children:V.jsx(ka,{toc:s.subitems,current:t,setLocation:r,isSubmenu:!0})})]},a))})}function Oa(n){const{showToc:e=!0,getRendition:t,LoadingView:r,ErrorView:i,...s}=n,a=Q.useRef(null),[o,c]=Q.useState([]),[l,u]=Q.useState(!1),[h,p]=Q.useState(""),[g,f]=Q.useState(""),b=R=>{t&&t(R);const{book:E}=R,S=E.metadata?.title;p(S||"")},d=R=>{c(R)},m=()=>a.current.nextPage(),y=()=>a.current.nextPage(),w=()=>{u(!l)},_=(R,E=!0)=>{a.current.setLocation(R),f(R),u(!E)};return V.jsxs("div",{className:"container",children:[V.jsxs("div",{className:`readerArea ${l?"containerExpanded":""}`,children:[e&&V.jsxs("button",{className:`tocButton ${l?"tocButtonExpanded":""}`,onClick:w,children:[V.jsx("span",{className:"tocButtonBar",style:{top:"35%"}}),V.jsx("span",{className:"tocButtonBar",style:{top:"66%"}})]}),V.jsx("div",{className:"titleArea",title:h}),V.jsx(Ra,{ref:a,onGetRendition:b,tocChanged:d,LoadingView:r||V.jsx("div",{className:"loadingView",children:"Loading…"}),ErrorView:i||V.jsx("div",{className:"errorView",children:"Error loading book"}),...s}),V.jsx("button",{className:"arrow pre",onClick:m,children:"‹"}),V.jsx("button",{className:"arrow next",onClick:y,children:"›"})]}),e&&V.jsxs("div",{children:[V.jsx("div",{className:"tocArea",children:V.jsx(ka,{toc:o,current:g,setLocation:_,isSubmenu:!1})}),l&&V.jsx("div",{className:"tocBackground",onClick:w})]})]})}const Zl=(n,e)=>n.map((t,r,i)=>e(t,r,i)?r:null).filter(t=>t!=null),Aa=(n,e)=>[-1,...e,n.length].reduce(({xs:t,a:r},i)=>({xs:t?.concat([n.slice(r+1,i)])??[],a:i}),{}).xs,Ql=(n,e)=>n.slice(0,-1).concat([n[n.length-1].concat(e[0])]).concat(e.slice(1)),Hn=/\d/,Bt=/^epubcfi\((.*)\)$/,Ca=n=>n.replace(/[\^[\](),;=]/g,"^$&"),Ia=n=>Bt.test(n)?n:`epubcfi(${n})`,eu=n=>n.match(Bt)?.[1]??n,tu=(n=>(...e)=>`epubcfi(${n(...e.map(t=>t.match(Bt)?.[1]??t))})`)((...n)=>n.join("!")),ru=n=>{const e=[];let t,r,i="";const s=o=>(e.push(o),t=null,i=""),a=o=>(i+=o,r=!1);for(const o of Array.from(n.trim()).concat("")){if(o==="^"&&!r){r=!0;continue}if(t==="!")s(["!"]);else if(t===",")s([","]);else if(t==="/"||t===":")if(Hn.test(o)){a(o);continue}else s([t,parseInt(i)]);else if(t==="~")if(Hn.test(o)||o==="."){a(o);continue}else s(["~",parseFloat(i)]);else if(t==="@"){if(o===":"){s(["@",parseFloat(i)]),t="@";continue}if(Hn.test(o)||o==="."){a(o);continue}else s(["@",parseFloat(i)])}else if(t==="["){o===";"&&!r?(s(["[",i]),t=";"):o===","&&!r?(s(["[",i]),t="["):o==="]"&&!r?s(["[",i]):a(o);continue}else if(t?.startsWith(";")){o==="="&&!r?(t=`;${i}`,i=""):o===";"&&!r?(s([t,i]),t=";"):o==="]"&&!r?s([t,i]):a(o);continue}(o==="/"||o===":"||o==="~"||o==="@"||o==="["||o==="!"||o===",")&&(t=o)}return e},La=(n,e)=>Zl(n,([t])=>t===e),nu=n=>{const e=[];let t;for(const[r,i]of n){if(r==="/")e.push({index:i});else{const s=e[e.length-1];if(r===":")s.offset=i;else if(r==="~")s.temporal=i;else if(r==="@")s.spatial=(s.spatial??[]).concat(i);else if(r===";s")s.side=i;else if(r==="[")if(t==="/"&&i)s.id=i;else{s.text=(s.text??[]).concat(i);continue}}t=r}return e},Pa=n=>Aa(n,La(n,"!")).map(nu),wt=n=>{const e=ru(eu(n)),t=La(e,",");if(!t.length)return Pa(e);const[r,i,s]=Aa(e,t).map(Pa);return{parent:r,start:i,end:s}},iu=({index:n,id:e,offset:t,temporal:r,spatial:i,text:s,side:a})=>{const o=a?`;s=${a}`:"";return`/${n}`+(e?`[${Ca(e)}${o}]`:"")+(t!=null&&n%2?`:${t}`:"")+(r?`~${r}`:"")+(i?`@${i.join(":")}`:"")+(s||!e&&a?"["+(s?.map(Ca)?.join(",")??"")+o+"]":"")},Ma=n=>n.parent?[n.parent,n.start,n.end].map(Ma).join(","):n.map(e=>e.map(iu).join("")).join("!"),zt=n=>Ia(Ma(n)),st=(n,e)=>typeof n=="string"?zt(st(wt(n),e)):n.parent?Ql(n.parent,n[e?"end":"start"]):n,su=(n,e)=>{typeof n=="string"&&(n=wt(n)),typeof e=="string"&&(e=wt(e)),n=st(n),e=st(e,!0);const t=n[n.length-1],r=e[e.length-1],i=[],s=[],a=[];let o=!0;const c=Math.max(t.length,r.length);for(let u=0;u<c;u++){const h=t[u],p=r[u];o&&=h?.index===p?.index&&!h?.offset&&!p?.offset,o?i.push(h):(h&&s.push(h),p&&a.push(p))}const l=n.slice(0,-1).concat([i]);return zt({parent:l,start:[s],end:[a]})},Vn=({nodeType:n})=>n===3||n===4,Ut=({nodeType:n})=>n===1,ja=(n,e)=>{const t=Array.from(n.childNodes).filter(r=>Vn(r)||Ut(r));return e?t.map(r=>{const i=e(r);return i===NodeFilter.FILTER_REJECT?null:i===NodeFilter.FILTER_SKIP?ja(r,e):r}).flat().filter(r=>r):t},Gn=(n,e)=>{const t=ja(n,e).reduce((r,i)=>{let s=r[r.length-1];return s?Vn(i)?Array.isArray(s)?s.push(i):Vn(s)?r[r.length-1]=[s,i]:r.push(i):Ut(s)?r.push(null,i):r.push(i):r.push(i),r},[]);return Ut(t[0])&&t.unshift("first"),Ut(t[t.length-1])&&t.push("last"),t.unshift("before"),t.push("after"),t},Xn=(n,e,t)=>{const{id:r}=e[e.length-1];if(r){const a=n.ownerDocument.getElementById(r);if(a)return{node:a,offset:0}}for(const{index:a}of e){const o=n?Gn(n,t)[a]:null;if(o==="first")return{node:n.firstChild??n};if(o==="last")return{node:n.lastChild??n};if(o==="before")return{node:n,before:!0};if(o==="after")return{node:n,after:!0};n=o}const{offset:i}=e[e.length-1];if(!Array.isArray(n))return{node:n,offset:i};let s=0;for(const a of n){const{length:o}=a.nodeValue;if(s+o>=i)return{node:a,offset:i-s};s+=o}},qt=(n,e,t)=>{const{parentNode:r,id:i}=n,s=Gn(r,t),a=s.findIndex(l=>Array.isArray(l)?l.some(u=>u===n):l===n),o=s[a];if(Array.isArray(o)){let l=0;for(const u of o)if(u===n){l+=e;break}else l+=u.nodeValue.length;e=l}const c={id:i,index:a,offset:e};return(r!==n.ownerDocument.documentElement?qt(r,null,t).concat(c):[c]).filter(l=>l.index!==-1)},au=(n,e)=>{const{startContainer:t,startOffset:r,endContainer:i,endOffset:s}=n,a=qt(t,r,e);if(n.collapsed)return zt([a]);const o=qt(i,s,e);return su([a],[o])},Da=(n,e,t)=>{const r=st(e),i=st(e,!0),s=n.documentElement,a=Xn(s,r[0],t),o=Xn(s,i[0],t),c=n.createRange();return a.before?c.setStartBefore(a.node):a.after?c.setStartAfter(a.node):c.setStart(a.node,a.offset),o.before?c.setEndBefore(o.node):o.after?c.setEndAfter(o.node):c.setEnd(o.node,o.offset),c},ou=n=>{const e=[],{parentNode:t}=n[0],r=qt(t);for(const[i,s]of Gn(t).entries()){const a=n[e.length];s===a&&e.push(zt([r.concat({id:a.id,index:i})]))}return e},Fa=(n,e)=>Xn(n.documentElement,st(e)).node,Na={fromIndex:n=>Ia(`/6/${(n+1)*2}`),toIndex:n=>n?.at(-1).index/2-1},cu=n=>{let e=0;const t=r=>{if(r.id=e++,r.subitems)for(const i of r.subitems)t(i)};for(const r of n)t(r);return n},Ba=n=>n.map(e=>e.subitems?.length?[e,Ba(e.subitems)].flat():e).flat();class za{async init({toc:e,ids:t,splitHref:r,getFragment:i}){cu(e);const s=Ba(e),a=new Map;for(const[c,l]of s.entries()){const[u,h]=await r(l?.href)??[],p={fragment:h,item:l};a.has(u)?a.get(u).items.push(p):a.set(u,{prev:s[c-1],items:[p]})}const o=new Map;for(const[c,l]of t.entries())a.has(l)?o.set(l,a.get(l)):o.set(l,o.get(t[c-1]));this.ids=t,this.map=o,this.getFragment=i}getProgress(e,t){if(!this.ids)return;const r=this.ids[e],i=this.map.get(r);if(!i)return null;const{prev:s,items:a}=i;if(!a)return s;if(!t||a.length===1&&!a[0].fragment)return a[0].item;const o=t.startContainer.getRootNode();for(const[c,{fragment:l}]of a.entries()){const u=this.getFragment(o,l);if(u&&t.comparePoint(u,0)>0)return a[c-1]?.item??s}return a[a.length-1].item}}class lu{constructor(e,t,r){this.sizes=e.map(i=>i.linear!="no"&&i.size>0?i.size:0),this.sizePerLoc=t,this.sizePerTimeUnit=r,this.sizeTotal=this.sizes.reduce((i,s)=>i+s,0),this.sectionFractions=this.#e()}#e(){const{sizeTotal:e}=this,t=[0];let r=0;for(const i of this.sizes)t.push((r+=i)/e);return t}getProgress(e,t,r=0){const{sizes:i,sizePerLoc:s,sizePerTimeUnit:a,sizeTotal:o}=this,c=i[e]??0,u=i.slice(0,e).reduce((f,b)=>f+b,0)+t*c,h=u+r*c,p=o-u,g=(1-t)*c;return{fraction:h/o,section:{current:e,total:i.length},location:{current:Math.floor(u/s),next:Math.floor(h/s),total:Math.ceil(o/s)},time:{section:g/a,total:p/a}}}getSection(e){if(e<=0)return[0,0];if(e>=1)return[this.sizes.length-1,1];e=e+Number.EPSILON;const{sizeTotal:t}=this;let r=this.sectionFractions.findIndex(s=>s>e)-1;if(r<0)return[0,0];for(;!this.sizes[r];)r++;const i=(e-this.sectionFractions[r])/(this.sizes[r]/t);return[r,i]}}const se=n=>document.createElementNS("http://www.w3.org/2000/svg",n);class Ua{#e=se("svg");#r=new Map;constructor(){Object.assign(this.#e.style,{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",pointerEvents:"none"})}get element(){return this.#e}add(e,t,r,i){this.#r.has(e)&&this.remove(e),typeof t=="function"&&(t=t(this.#e.getRootNode()));const s=t.getClientRects(),a=r(s,i);this.#e.append(a),this.#r.set(e,{range:t,draw:r,options:i,element:a,rects:s})}remove(e){this.#r.has(e)&&(this.#e.removeChild(this.#r.get(e).element),this.#r.delete(e))}redraw(){for(const e of this.#r.values()){const{range:t,draw:r,options:i,element:s}=e;this.#e.removeChild(s);const a=t.getClientRects(),o=r(a,i);this.#e.append(o),e.element=o,e.rects=a}}hitTest({x:e,y:t}){const r=Array.from(this.#r.entries());for(let i=r.length-1;i>=0;i--){const[s,a]=r[i];for(const{left:o,top:c,right:l,bottom:u}of a.rects)if(c<=t&&o<=e&&u>t&&l>e)return[s,a.range]}return[]}static underline(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");if(a.setAttribute("fill",r),s==="vertical-rl"||s==="vertical-lr")for(const{right:o,top:c,height:l}of e){const u=se("rect");u.setAttribute("x",o-i),u.setAttribute("y",c),u.setAttribute("height",l),u.setAttribute("width",i),a.append(u)}else for(const{left:o,bottom:c,width:l}of e){const u=se("rect");u.setAttribute("x",o),u.setAttribute("y",c-i),u.setAttribute("height",i),u.setAttribute("width",l),a.append(u)}return a}static strikethrough(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");if(a.setAttribute("fill",r),s==="vertical-rl"||s==="vertical-lr")for(const{right:o,left:c,top:l,height:u}of e){const h=se("rect");h.setAttribute("x",(o+c)/2),h.setAttribute("y",l),h.setAttribute("height",u),h.setAttribute("width",i),a.append(h)}else for(const{left:o,top:c,bottom:l,width:u}of e){const h=se("rect");h.setAttribute("x",o),h.setAttribute("y",(c+l)/2),h.setAttribute("height",i),h.setAttribute("width",u),a.append(h)}return a}static squiggly(e,t={}){const{color:r="red",width:i=2,writingMode:s}=t,a=se("g");a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",i);const o=i*1.5;if(s==="vertical-rl"||s==="vertical-lr")for(const{right:c,top:l,height:u}of e){const h=se("path"),p=Math.round(u/o/1.5),g=u/p,f=Array.from({length:p},(b,d)=>`l${d%2?-o:o} ${g}`).join("");h.setAttribute("d",`M${c} ${l}${f}`),a.append(h)}else for(const{left:c,bottom:l,width:u}of e){const h=se("path"),p=Math.round(u/o/1.5),g=u/p,f=Array.from({length:p},(b,d)=>`l${g} ${d%2?o:-o}`).join("");h.setAttribute("d",`M${c} ${l}${f}`),a.append(h)}return a}static highlight(e,t={}){const{color:r="red"}=t,i=se("g");i.setAttribute("fill",r),i.style.opacity="var(--overlayer-highlight-opacity, .3)",i.style.mixBlendMode="var(--overlayer-highlight-blend-mode, normal)";for(const{left:s,top:a,height:o,width:c}of e){const l=se("rect");l.setAttribute("x",s),l.setAttribute("y",a),l.setAttribute("height",o),l.setAttribute("width",c),i.append(l)}return i}static outline(e,t={}){const{color:r="red",width:i=3,radius:s=3}=t,a=se("g");a.setAttribute("fill","none"),a.setAttribute("stroke",r),a.setAttribute("stroke-width",i);for(const{left:o,top:c,height:l,width:u}of e){const h=se("rect");h.setAttribute("x",o),h.setAttribute("y",c),h.setAttribute("height",l),h.setAttribute("width",u),h.setAttribute("rx",s),a.append(h)}return a}static copyImage([e],t={}){const{src:r}=t,i=se("image"),{left:s,top:a,height:o,width:c}=e;return i.setAttribute("href",r),i.setAttribute("x",s),i.setAttribute("y",a),i.setAttribute("height",o),i.setAttribute("width",c),i}}const uu=(n,e)=>{const t=[];for(let r=e.currentNode;r;r=e.nextNode()){const i=n.comparePoint(r,0);if(i===0)t.push(r);else if(i>0)break}return t},hu=(n,e)=>{const t=[];for(let r=e.nextNode();r;r=e.nextNode())t.push(r);return t},fu=NodeFilter.SHOW_ELEMENT|NodeFilter.SHOW_TEXT|NodeFilter.SHOW_CDATA_SECTION,du=n=>{if(n.nodeType===1){const e=n.tagName.toLowerCase();return e==="script"||e==="style"?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_SKIP}return NodeFilter.FILTER_ACCEPT},qa=function*(n,e,t){const r=n.commonAncestorContainer??n.body??n,i=document.createTreeWalker(r,fu,{acceptNode:t||du}),a=(n.commonAncestorContainer?uu:hu)(n,i),o=a.map(l=>l.nodeValue),c=(l,u,h,p)=>{const g=document.createRange();return g.setStart(a[l],u),g.setEnd(a[h],p),g};for(const l of e(o,c))yield l},xt="foliate-search:",pu=async n=>{const e=new Uint8Array(await n.slice(0,4).arrayBuffer());return e[0]===80&&e[1]===75&&e[2]===3&&e[3]===4},gu=async n=>{const e=new Uint8Array(await n.slice(0,5).arrayBuffer());return e[0]===37&&e[1]===80&&e[2]===68&&e[3]===70&&e[4]===45},mu=({name:n,type:e})=>e==="application/vnd.comicbook+zip"||n.endsWith(".cbz"),bu=({name:n,type:e})=>e==="application/x-fictionbook+xml"||n.endsWith(".fb2"),yu=({name:n,type:e})=>e==="application/x-zip-compressed-fb2"||n.endsWith(".fb2.zip")||n.endsWith(".fbz"),vu=async n=>{const{configure:e,ZipReader:t,BlobReader:r,TextWriter:i,BlobWriter:s}=await Promise.resolve().then(()=>xh);e({useWebWorkers:!1});const o=await new t(new r(n)).getEntries(),c=new Map(o.map(g=>[g.filename,g])),l=g=>(f,...b)=>c.has(f)?g(c.get(f),...b):null,u=l(g=>g.getData(new i)),h=l((g,f)=>g.getData(new s(f)));return{entries:o,loadText:u,loadBlob:h,getSize:g=>c.get(g)?.uncompressedSize??0}},$a=async n=>n.isFile?n:(await Promise.all(Array.from(await new Promise((e,t)=>n.createReader().readEntries(r=>e(r),r=>t(r))),$a))).flat(),wu=async n=>{const e=await $a(n),t=await Promise.all(e.map(u=>new Promise((h,p)=>u.file(g=>h([g,u.fullPath]),g=>p(g))))),r=new Map(t.map(([u,h])=>[h.replace(n.fullPath+"/",""),u])),i=new TextDecoder,s=u=>u?i.decode(u):null,a=u=>r.get(u)?.arrayBuffer()??null;return{loadText:async u=>s(await a(u)),loadBlob:u=>r.get(u),getSize:u=>r.get(u)?.size??0}};class Wa extends Error{}class Ha extends Error{}class Va extends Error{}const xu=async n=>{const e=await fetch(n);if(!e.ok)throw new Wa(`${e.status} ${e.statusText}`,{cause:e});return new File([await e.blob()],new URL(e.url).pathname)},Ga=async n=>{typeof n=="string"&&(n=await xu(n));let e;if(n.isDirectory){const t=await wu(n),{EPUB:r}=await Promise.resolve().then(()=>oc);e=await new r(t).init()}else if(n.size)if(await pu(n)){const t=await vu(n);if(mu(n)){const{makeComicBook:r}=await Promise.resolve().then(()=>Hh);e=r(t,n)}else if(yu(n)){const{makeFB2:r}=await Promise.resolve().then(()=>uc),{entries:i}=t,s=i.find(o=>o.filename.endsWith(".fb2")),a=await t.loadBlob((s??i[0]).filename);e=await r(a)}else{const{EPUB:r}=await Promise.resolve().then(()=>oc);e=await new r(t).init()}}else if(await gu(n)){const{makePDF:t}=await Promise.resolve().then(()=>Qh);e=await t(n)}else{const{isMOBI:t,MOBI:r}=await Promise.resolve().then(()=>Mf);if(await t(n)){const i=await Promise.resolve().then(()=>Vf);e=await new r({unzlib:i.unzlibSync}).open(n)}else if(bu(n)){const{makeFB2:i}=await Promise.resolve().then(()=>uc);e=await i(n)}}else throw new Ha("File not found");if(!e)throw new Va("File type not supported");return e};class Kn{#e;#r;#t;#n;constructor(e,t,r={}){this.#r=e,this.#t=t,this.#n=r,this.#n.hidden&&this.hide(),this.#r.addEventListener("mousemove",({screenX:i,screenY:s})=>{i===this.#n.x&&s===this.#n.y||(this.#n.x=i,this.#n.y=s,this.show(),this.#e&&clearTimeout(this.#e),t()&&(this.#e=setTimeout(this.hide.bind(this),1e3)))},!1)}cloneFor(e){return new Kn(e,this.#t,this.#n)}hide(){this.#r.style.cursor="none",this.#n.hidden=!0}show(){this.#r.style.removeProperty("cursor"),this.#n.hidden=!1}}class _u extends EventTarget{#e=[];#r=-1;pushState(e){const t=this.#e[this.#r];t===e||t?.fraction&&t.fraction===e.fraction||(this.#e[++this.#r]=e,this.#e.length=this.#r+1,this.dispatchEvent(new Event("index-change")))}replaceState(e){const t=this.#r;this.#e[t]=e}back(){const e=this.#r;if(e<=0)return;const t={state:this.#e[e-1]};this.#r=e-1,this.dispatchEvent(new CustomEvent("popstate",{detail:t})),this.dispatchEvent(new Event("index-change"))}forward(){const e=this.#r;if(e>=this.#e.length-1)return;const t={state:this.#e[e+1]};this.#r=e+1,this.dispatchEvent(new CustomEvent("popstate",{detail:t})),this.dispatchEvent(new Event("index-change"))}get canGoBack(){return this.#r>0}get canGoForward(){return this.#r<this.#e.length-1}clear(){this.#e=[],this.#r=-1}}const Su=n=>{if(!n)return{};try{const e=Intl.getCanonicalLocales(n)[0],t=new Intl.Locale(e),r=["zh","ja","kr"].includes(t.language),i=(t.getTextInfo?.()??t.textInfo)?.direction;return{canonical:e,locale:t,isCJK:r,direction:i}}catch(e){return console.warn(e),{}}};let Xa=class extends HTMLElement{#e=this.attachShadow({mode:"closed"});#r;#t;#n;#i=new Map;#s=new Kn(this,()=>this.hasAttribute("autohide-cursor"));isFixedLayout=!1;lastLocation;history=new _u;constructor(){super(),this.history.addEventListener("popstate",({detail:e})=>{const t=this.resolveNavigation(e.state);this.renderer.goTo(t)})}async open(e){if((typeof e=="string"||typeof e.arrayBuffer=="function"||e.isDirectory)&&(e=await Ga(e)),this.book=e,this.language=Su(e.metadata?.language),e.splitTOCHref&&e.getTOCFragment){const t=e.sections.map(s=>s.id);this.#r=new lu(e.sections,1500,1600);const r=e.splitTOCHref.bind(e),i=e.getTOCFragment.bind(e);this.#t=new za,await this.#t.init({toc:e.toc??[],ids:t,splitHref:r,getFragment:i}),this.#n=new za,await this.#n.init({toc:e.pageList??[],ids:t,splitHref:r,getFragment:i})}if(this.isFixedLayout=this.book.rendition?.layout==="pre-paginated",this.isFixedLayout?(await Promise.resolve().then(()=>Xf),this.renderer=document.createElement("foliate-fxl")):(await Promise.resolve().then(()=>sd),this.renderer=document.createElement("foliate-paginator")),this.renderer.setAttribute("exportparts","head,foot,filter"),this.renderer.addEventListener("load",t=>this.#c(t.detail)),this.renderer.addEventListener("relocate",t=>this.#a(t.detail)),this.renderer.addEventListener("create-overlayer",t=>t.detail.attach(this.#l(t.detail))),this.renderer.open(e),this.#e.append(this.renderer),e.sections.some(t=>t.mediaOverlay)){const t=e.media.activeClass,r=e.media.playbackActiveClass;this.mediaOverlay=e.getMediaOverlay();let i;this.mediaOverlay.addEventListener("highlight",s=>{const a=this.resolveNavigation(s.detail.text);this.renderer.goTo(a).then(()=>{const{doc:o}=this.renderer.getContents().find(l=>l.index=a.index),c=a.anchor(o);c.classList.add(t),r&&c.ownerDocument.documentElement.classList.add(r),i=new WeakRef(c)})}),this.mediaOverlay.addEventListener("unhighlight",()=>{const s=i?.deref();s&&(s.classList.remove(t),r&&s.ownerDocument.documentElement.classList.remove(r))})}}close(){this.renderer?.destroy(),this.renderer?.remove(),this.#r=null,this.#t=null,this.#n=null,this.#i=new Map,this.lastLocation=null,this.history.clear(),this.tts=null,this.mediaOverlay=null}goToTextStart(){return this.goTo(this.book.landmarks?.find(e=>e.type.includes("bodymatter")||e.type.includes("text"))?.href??this.book.sections.findIndex(e=>e.linear!=="no"))}async init({lastLocation:e,showTextStart:t}){const r=e?this.resolveNavigation(e):null;r?(await this.renderer.goTo(r),this.history.pushState(e)):t?await this.goToTextStart():(this.history.pushState(0),await this.next())}#o(e,t,r){return this.dispatchEvent(new CustomEvent(e,{detail:t,cancelable:r}))}#a({reason:e,range:t,index:r,fraction:i,size:s}){const a=this.#r?.getProgress(r,i,s)??{},o=this.#t?.getProgress(r,t),c=this.#n?.getProgress(r,t),l=this.getCFI(r,t);this.lastLocation={...a,tocItem:o,pageItem:c,cfi:l,range:t},(e==="snap"||e==="page"||e==="scroll")&&this.history.replaceState(l),this.#o("relocate",this.lastLocation)}#c({doc:e,index:t}){e.documentElement.lang||=this.language.canonical??"",this.language.isCJK||(e.documentElement.dir||=this.language.direction??""),this.#u(e,t),this.#s.cloneFor(e.documentElement),this.#o("load",{doc:e,index:t})}#u(e,t){const{book:r}=this,i=r.sections[t];e.addEventListener("click",s=>{const a=s.target.closest("a[href]");if(!a)return;s.preventDefault();const o=a.getAttribute("href"),c=i?.resolveHref?.(o)??o;r?.isExternal?.(c)?Promise.resolve(this.#o("external-link",{a,href:c},!0)).then(l=>l?globalThis.open(c,"_blank"):null).catch(l=>console.error(l)):Promise.resolve(this.#o("link",{a,href:c},!0)).then(l=>l?this.goTo(c):null).catch(l=>console.error(l))})}async addAnnotation(e,t){const{value:r}=e;if(r.startsWith(xt)){const c=r.replace(xt,""),{index:l,anchor:u}=await this.resolveNavigation(c),h=this.#h(l);if(h){const{overlayer:p,doc:g}=h;if(t){p.remove(r);return}const f=g?u(g):u;p.add(r,f,Ua.outline)}return}const{index:i,anchor:s}=await this.resolveNavigation(r),a=this.#h(i);if(a){const{overlayer:c,doc:l}=a;if(c.remove(r),!t){const u=l?s(l):s,h=(p,g)=>c.add(r,u,p,g);this.#o("draw-annotation",{draw:h,annotation:e,doc:l,range:u})}}const o=this.#t.getProgress(i)?.label??"";return{index:i,label:o}}deleteAnnotation(e){return this.addAnnotation(e,!0)}#h(e){return this.renderer.getContents().find(t=>t.index===e&&t.overlayer)}#l({doc:e,index:t}){const r=new Ua;e.addEventListener("click",s=>{const[a,o]=r.hitTest(s);a&&!a.startsWith(xt)&&this.#o("show-annotation",{value:a,index:t,range:o})},!1);const i=this.#i.get(t);if(i)for(const s of i)this.addAnnotation(s);return this.#o("create-overlay",{index:t}),r}async showAnnotation(e){const{value:t}=e,r=await this.goTo(t);if(r){const{index:i,anchor:s}=r,{doc:a}=this.#h(i),o=s(a);this.#o("show-annotation",{value:t,index:i,range:o})}}getCFI(e,t){const r=this.book.sections[e].cfi??Na.fromIndex(e);return t?tu(r,au(t)):r}resolveCFI(e){if(this.book.resolveCFI)return this.book.resolveCFI(e);{const t=wt(e);return{index:Na.toIndex((t.parent??t).shift()),anchor:s=>Da(s,t)}}}resolveNavigation(e){try{if(typeof e=="number")return{index:e};if(typeof e.fraction=="number"){const[t,r]=this.#r.getSection(e.fraction);return{index:t,anchor:r}}return Bt.test(e)?this.resolveCFI(e):this.book.resolveHref(e)}catch(t){console.error(t),console.error(`Could not resolve target ${e}`)}}async goTo(e){const t=this.resolveNavigation(e);try{return await this.renderer.goTo(t),this.history.pushState(e),t}catch(r){console.error(r),console.error(`Could not go to ${e}`)}}async goToFraction(e){const[t,r]=this.#r.getSection(e);await this.renderer.goTo({index:t,anchor:r}),this.history.pushState({fraction:e})}async select(e){try{const t=await this.resolveNavigation(e);await this.renderer.goTo({...t,select:!0}),this.history.pushState(e)}catch(t){console.error(t),console.error(`Could not go to ${e}`)}}deselect(){for(const{doc:e}of this.renderer.getContents())e.defaultView.getSelection().removeAllRanges()}getSectionFractions(){return(this.#r?.sectionFractions??[]).map(e=>e+Number.EPSILON)}getProgressOf(e,t){const r=this.#t?.getProgress(e,t),i=this.#n?.getProgress(e,t);return{tocItem:r,pageItem:i}}async getTOCItemOf(e){try{const{index:t,anchor:r}=await this.resolveNavigation(e),i=await this.book.sections[t].createDocument(),s=r(i),a=s instanceof Range,o=a?s:i.createRange();return a||o.selectNodeContents(s),this.#t.getProgress(t,o)}catch(t){console.error(t),console.error(`Could not get ${e}`)}}async prev(e){await this.renderer.prev(e)}async next(e){await this.renderer.next(e)}goLeft(){return this.book.dir==="rtl"?this.next():this.prev()}goRight(){return this.book.dir==="rtl"?this.prev():this.next()}async*#f(e,t,r){const i=await this.book.sections[r].createDocument();for(const{range:s,excerpt:a}of e(i,t))yield{cfi:this.getCFI(r,s),excerpt:a}}async*#p(e,t){const{sections:r}=this.book;for(const[i,{createDocument:s}]of r.entries()){if(!s)continue;const a=await s(),o=Array.from(e(a,t),({range:l,excerpt:u})=>({cfi:this.getCFI(i,l),excerpt:u}));yield{progress:(i+1)/r.length},o.length&&(yield{index:i,subitems:o})}}async*search(e){this.clearSearch();const{searchMatcher:t}=await Promise.resolve().then(()=>cd),{query:r,index:i}=e,s=t(qa,{defaultLocale:this.language,...e}),a=i!=null?this.#f(s,r,i):this.#p(s,r),o=[];this.#i.set(i,o);for await(const c of a)if(c.subitems){const l=c.subitems.map(({cfi:u})=>({value:xt+u}));this.#i.set(c.index,l);for(const u of l)this.addAnnotation(u);yield{label:this.#t.getProgress(c.index)?.label??"",subitems:c.subitems}}else{if(c.cfi){const l={value:xt+c.cfi};o.push(l),this.addAnnotation(l)}yield c}yield"done"}clearSearch(){for(const e of this.#i.values())for(const t of e)this.deleteAnnotation(t);this.#i.clear()}async initTTS(e="word",t){const r=this.renderer.getContents()[0].doc;if(this.tts&&this.tts.doc===r)return;const{TTS:i}=await Promise.resolve().then(()=>md);this.tts=new i(r,qa,t||(s=>this.renderer.scrollToAnchor(s,!0)),e)}startMediaOverlay(){const{index:e}=this.renderer.getContents()[0];return this.mediaOverlay.start(e)}};customElements.define("foliate-view",Xa);const Eu=Object.freeze(Object.defineProperty({__proto__:null,NotFoundError:Ha,ResponseError:Wa,UnsupportedTypeError:Va,View:Xa,makeBook:Ga},Symbol.toStringTag,{value:"Module"})),fe=-2,G=-3,ze=-5,me=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Tu=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Ru=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ku=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ou=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Au=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Cu=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],$t=15;function Yn(){let n,e,t,r,i,s;function a(c,l,u,h,p,g,f,b,d,m,y){let w,_,R,E,S,x,A,T,k,O,I,L,P,j,F;O=0,S=u;do t[c[l+O]]++,O++,S--;while(S!==0);if(t[0]==u)return f[0]=-1,b[0]=0,0;for(T=b[0],x=1;x<=$t&&t[x]===0;x++);for(A=x,T<x&&(T=x),S=$t;S!==0&&t[S]===0;S--);for(R=S,T>S&&(T=S),b[0]=T,j=1<<x;x<S;x++,j<<=1)if((j-=t[x])<0)return G;if((j-=t[S])<0)return G;for(t[S]+=j,s[1]=x=0,O=1,P=2;--S!=0;)s[P]=x+=t[O],P++,O++;S=0,O=0;do(x=c[l+O])!==0&&(y[s[x]++]=S),O++;while(++S<u);for(u=s[R],s[0]=S=0,O=0,E=-1,L=-T,i[0]=0,I=0,F=0;A<=R;A++)for(w=t[A];w--!=0;){for(;A>L+T;){if(E++,L+=T,F=R-L,F=F>T?T:F,(_=1<<(x=A-L))>w+1&&(_-=w+1,P=A,x<F))for(;++x<F&&!((_<<=1)<=t[++P]);)_-=t[P];if(F=1<<x,m[0]+F>1440)return G;i[E]=I=m[0],m[0]+=F,E!==0?(s[E]=S,r[0]=x,r[1]=T,x=S>>>L-T,r[2]=I-i[E-1]-x,d.set(r,3*(i[E-1]+x))):f[0]=I}for(r[1]=A-L,O>=u?r[0]=192:y[O]<h?(r[0]=y[O]<256?0:96,r[2]=y[O++]):(r[0]=g[y[O]-h]+16+64,r[2]=p[y[O++]-h]),_=1<<A-L,x=S>>>L;x<F;x+=_)d.set(r,3*(I+x));for(x=1<<A-1;S&x;x>>>=1)S^=x;for(S^=x,k=(1<<L)-1;(S&k)!=s[E];)E--,L-=T,k=(1<<L)-1}return j!==0&&R!=1?ze:0}function o(c){let l;for(n||(n=[],e=[],t=new Int32Array(16),r=[],i=new Int32Array($t),s=new Int32Array(16)),e.length<c&&(e=[]),l=0;l<c;l++)e[l]=0;for(l=0;l<16;l++)t[l]=0;for(l=0;l<3;l++)r[l]=0;i.set(t.subarray(0,$t),0),s.set(t.subarray(0,16),0)}this.inflate_trees_bits=function(c,l,u,h,p){let g;return o(19),n[0]=0,g=a(c,0,19,19,null,null,u,l,h,n,e),g==G?p.msg="oversubscribed dynamic bit lengths tree":g!=ze&&l[0]!==0||(p.msg="incomplete dynamic bit lengths tree",g=G),g},this.inflate_trees_dynamic=function(c,l,u,h,p,g,f,b,d){let m;return o(288),n[0]=0,m=a(u,0,c,257,ku,Ou,g,h,b,n,e),m!=0||h[0]===0?(m==G?d.msg="oversubscribed literal/length tree":m!=-4&&(d.msg="incomplete literal/length tree",m=G),m):(o(288),m=a(u,c,l,0,Au,Cu,f,p,b,n,e),m!=0||p[0]===0&&c>257?(m==G?d.msg="oversubscribed distance tree":m==ze?(d.msg="incomplete distance tree",m=G):m!=-4&&(d.msg="empty distance tree with lengths",m=G),m):0)}}Yn.inflate_trees_fixed=function(n,e,t,r){return n[0]=9,e[0]=5,t[0]=Tu,r[0]=Ru,0};function Iu(){const n=this;let e,t,r,i,s=0,a=0,o=0,c=0,l=0,u=0,h=0,p=0,g=0,f=0;function b(d,m,y,w,_,R,E,S){let x,A,T,k,O,I,L,P,j,F,q,K,D,Y,z,U;L=S.next_in_index,P=S.avail_in,O=E.bitb,I=E.bitk,j=E.write,F=j<E.read?E.read-j-1:E.end-j,q=me[d],K=me[m];do{for(;I<20;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;if(x=O&q,A=y,T=w,U=3*(T+x),(k=A[U])!==0)for(;;){if(O>>=A[U+1],I-=A[U+1],16&k){for(k&=15,D=A[U+2]+(O&me[k]),O>>=k,I-=k;I<15;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;for(x=O&K,A=_,T=R,U=3*(T+x),k=A[U];;){if(O>>=A[U+1],I-=A[U+1],16&k){for(k&=15;I<k;)P--,O|=(255&S.read_byte(L++))<<I,I+=8;if(Y=A[U+2]+(O&me[k]),O>>=k,I-=k,F-=D,j>=Y)z=j-Y,j-z>0&&2>j-z?(E.win[j++]=E.win[z++],E.win[j++]=E.win[z++],D-=2):(E.win.set(E.win.subarray(z,z+2),j),j+=2,z+=2,D-=2);else{z=j-Y;do z+=E.end;while(z<0);if(k=E.end-z,D>k){if(D-=k,j-z>0&&k>j-z)do E.win[j++]=E.win[z++];while(--k!=0);else E.win.set(E.win.subarray(z,z+k),j),j+=k,z+=k,k=0;z=0}}if(j-z>0&&D>j-z)do E.win[j++]=E.win[z++];while(--D!=0);else E.win.set(E.win.subarray(z,z+D),j),j+=D,z+=D,D=0;break}if(64&k)return S.msg="invalid distance code",D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,G;x+=A[U+2],x+=O&me[k],U=3*(T+x),k=A[U]}break}if(64&k)return 32&k?(D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,1):(S.msg="invalid literal/length code",D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,G);if(x+=A[U+2],x+=O&me[k],U=3*(T+x),(k=A[U])===0){O>>=A[U+1],I-=A[U+1],E.win[j++]=A[U+2],F--;break}}else O>>=A[U+1],I-=A[U+1],E.win[j++]=A[U+2],F--}while(F>=258&&P>=10);return D=S.avail_in-P,D=I>>3<D?I>>3:D,P+=D,L-=D,I-=D<<3,E.bitb=O,E.bitk=I,S.avail_in=P,S.total_in+=L-S.next_in_index,S.next_in_index=L,E.write=j,0}n.init=function(d,m,y,w,_,R){e=0,h=d,p=m,r=y,g=w,i=_,f=R,t=null},n.proc=function(d,m,y){let w,_,R,E,S,x,A,T=0,k=0,O=0;for(O=m.next_in_index,E=m.avail_in,T=d.bitb,k=d.bitk,S=d.write,x=S<d.read?d.read-S-1:d.end-S;;)switch(e){case 0:if(x>=258&&E>=10&&(d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,y=b(h,p,r,g,i,f,d,m),O=m.next_in_index,E=m.avail_in,T=d.bitb,k=d.bitk,S=d.write,x=S<d.read?d.read-S-1:d.end-S,y!=0)){e=y==1?7:9;break}o=h,t=r,a=g,e=1;case 1:for(w=o;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}if(_=3*(a+(T&me[w])),T>>>=t[_+1],k-=t[_+1],R=t[_],R===0){c=t[_+2],e=6;break}if(16&R){l=15&R,s=t[_+2],e=2;break}if(!(64&R)){o=R,a=_/3+t[_+2];break}if(32&R){e=7;break}return e=9,m.msg="invalid literal/length code",y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 2:for(w=l;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}s+=T&me[w],T>>=w,k-=w,o=p,t=i,a=f,e=3;case 3:for(w=o;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}if(_=3*(a+(T&me[w])),T>>=t[_+1],k-=t[_+1],R=t[_],16&R){l=15&R,u=t[_+2],e=4;break}if(!(64&R)){o=R,a=_/3+t[_+2];break}return e=9,m.msg="invalid distance code",y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 4:for(w=l;k<w;){if(E===0)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,E--,T|=(255&m.read_byte(O++))<<k,k+=8}u+=T&me[w],T>>=w,k-=w,e=5;case 5:for(A=S-u;A<0;)A+=d.end;for(;s!==0;){if(x===0&&(S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0&&(d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0)))return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);d.win[S++]=d.win[A++],x--,A==d.end&&(A=0),s--}e=0;break;case 6:if(x===0&&(S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0&&(d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,S==d.end&&d.read!==0&&(S=0,x=S<d.read?d.read-S-1:d.end-S),x===0)))return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);y=0,d.win[S++]=c,x--,e=0;break;case 7:if(k>7&&(k-=8,E++,O--),d.write=S,y=d.inflate_flush(m,y),S=d.write,x=S<d.read?d.read-S-1:d.end-S,d.read!=d.write)return d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);e=8;case 8:return y=1,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);case 9:return y=G,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y);default:return y=fe,d.bitb=T,d.bitk=k,m.avail_in=E,m.total_in+=O-m.next_in_index,m.next_in_index=O,d.write=S,d.inflate_flush(m,y)}},n.free=function(){}}const Ka=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function Lu(n,e){const t=this;let r,i=0,s=0,a=0,o=0;const c=[0],l=[0],u=new Iu;let h=0,p=new Int32Array(4320);const g=new Yn;t.bitk=0,t.bitb=0,t.win=new Uint8Array(e),t.end=e,t.read=0,t.write=0,t.reset=function(f,b){b&&(b[0]=0),i==6&&u.free(f),i=0,t.bitk=0,t.bitb=0,t.read=t.write=0},t.reset(n,null),t.inflate_flush=function(f,b){let d,m,y;return m=f.next_out_index,y=t.read,d=(y<=t.write?t.write:t.end)-y,d>f.avail_out&&(d=f.avail_out),d!==0&&b==ze&&(b=0),f.avail_out-=d,f.total_out+=d,f.next_out.set(t.win.subarray(y,y+d),m),m+=d,y+=d,y==t.end&&(y=0,t.write==t.end&&(t.write=0),d=t.write-y,d>f.avail_out&&(d=f.avail_out),d!==0&&b==ze&&(b=0),f.avail_out-=d,f.total_out+=d,f.next_out.set(t.win.subarray(y,y+d),m),m+=d,y+=d),f.next_out_index=m,t.read=y,b},t.proc=function(f,b){let d,m,y,w,_,R,E,S;for(w=f.next_in_index,_=f.avail_in,m=t.bitb,y=t.bitk,R=t.write,E=R<t.read?t.read-R-1:t.end-R;;){let x,A,T,k,O,I,L,P;switch(i){case 0:for(;y<3;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}switch(d=7&m,h=1&d,d>>>1){case 0:m>>>=3,y-=3,d=7&y,m>>>=d,y-=d,i=1;break;case 1:x=[],A=[],T=[[]],k=[[]],Yn.inflate_trees_fixed(x,A,T,k),u.init(x[0],A[0],T[0],0,k[0],0),m>>>=3,y-=3,i=6;break;case 2:m>>>=3,y-=3,i=3;break;case 3:return m>>>=3,y-=3,i=9,f.msg="invalid block type",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b)}break;case 1:for(;y<32;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if((~m>>>16&65535)!=(65535&m))return i=9,f.msg="invalid stored block lengths",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);s=65535&m,m=y=0,i=s!==0?2:h!==0?7:0;break;case 2:if(_===0||E===0&&(R==t.end&&t.read!==0&&(R=0,E=R<t.read?t.read-R-1:t.end-R),E===0&&(t.write=R,b=t.inflate_flush(f,b),R=t.write,E=R<t.read?t.read-R-1:t.end-R,R==t.end&&t.read!==0&&(R=0,E=R<t.read?t.read-R-1:t.end-R),E===0)))return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);if(b=0,d=s,d>_&&(d=_),d>E&&(d=E),t.win.set(f.read_buf(w,d),R),w+=d,_-=d,R+=d,E-=d,(s-=d)!=0)break;i=h!==0?7:0;break;case 3:for(;y<14;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(a=d=16383&m,(31&d)>29||(d>>5&31)>29)return i=9,f.msg="too many length or distance symbols",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);if(d=258+(31&d)+(d>>5&31),!r||r.length<d)r=[];else for(S=0;S<d;S++)r[S]=0;m>>>=14,y-=14,o=0,i=4;case 4:for(;o<4+(a>>>10);){for(;y<3;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}r[Ka[o++]]=7&m,m>>>=3,y-=3}for(;o<19;)r[Ka[o++]]=0;if(c[0]=7,d=g.inflate_trees_bits(r,c,l,p,f),d!=0)return(b=d)==G&&(r=null,i=9),t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);o=0,i=5;case 5:for(;d=a,!(o>=258+(31&d)+(d>>5&31));){let j,F;for(d=c[0];y<d;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(d=p[3*(l[0]+(m&me[d]))+1],F=p[3*(l[0]+(m&me[d]))+2],F<16)m>>>=d,y-=d,r[o++]=F;else{for(S=F==18?7:F-14,j=F==18?11:3;y<d+S;){if(_===0)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);b=0,_--,m|=(255&f.read_byte(w++))<<y,y+=8}if(m>>>=d,y-=d,j+=m&me[S],m>>>=S,y-=S,S=o,d=a,S+j>258+(31&d)+(d>>5&31)||F==16&&S<1)return r=null,i=9,f.msg="invalid bit length repeat",b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);F=F==16?r[S-1]:0;do r[S++]=F;while(--j!=0);o=S}}if(l[0]=-1,O=[],I=[],L=[],P=[],O[0]=9,I[0]=6,d=a,d=g.inflate_trees_dynamic(257+(31&d),1+(d>>5&31),r,O,I,L,P,p,f),d!=0)return d==G&&(r=null,i=9),b=d,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);u.init(O[0],I[0],p,L[0],p,P[0]),i=6;case 6:if(t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,(b=u.proc(t,f,b))!=1)return t.inflate_flush(f,b);if(b=0,u.free(f),w=f.next_in_index,_=f.avail_in,m=t.bitb,y=t.bitk,R=t.write,E=R<t.read?t.read-R-1:t.end-R,h===0){i=0;break}i=7;case 7:if(t.write=R,b=t.inflate_flush(f,b),R=t.write,E=R<t.read?t.read-R-1:t.end-R,t.read!=t.write)return t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);i=8;case 8:return b=1,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);case 9:return b=G,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b);default:return b=fe,t.bitb=m,t.bitk=y,f.avail_in=_,f.total_in+=w-f.next_in_index,f.next_in_index=w,t.write=R,t.inflate_flush(f,b)}}},t.free=function(f){t.reset(f,null),t.win=null,p=null},t.set_dictionary=function(f,b,d){t.win.set(f.subarray(b,b+d),0),t.read=t.write=d},t.sync_point=function(){return i==1?1:0}}const We=13,Pu=[0,0,255,255];function Mu(){const n=this;function e(t){return t&&t.istate?(t.total_in=t.total_out=0,t.msg=null,t.istate.mode=7,t.istate.blocks.reset(t,null),0):fe}n.mode=0,n.method=0,n.was=[0],n.need=0,n.marker=0,n.wbits=0,n.inflateEnd=function(t){return n.blocks&&n.blocks.free(t),n.blocks=null,0},n.inflateInit=function(t,r){return t.msg=null,n.blocks=null,r<8||r>15?(n.inflateEnd(t),fe):(n.wbits=r,t.istate.blocks=new Lu(t,1<<r),e(t),0)},n.inflate=function(t,r){let i,s;if(!t||!t.istate||!t.next_in)return fe;const a=t.istate;for(r=r==4?ze:0,i=ze;;)switch(a.mode){case 0:if(t.avail_in===0)return i;if(i=r,t.avail_in--,t.total_in++,(15&(a.method=t.read_byte(t.next_in_index++)))!=8){a.mode=We,t.msg="unknown compression method",a.marker=5;break}if(8+(a.method>>4)>a.wbits){a.mode=We,t.msg="invalid win size",a.marker=5;break}a.mode=1;case 1:if(t.avail_in===0)return i;if(i=r,t.avail_in--,t.total_in++,s=255&t.read_byte(t.next_in_index++),((a.method<<8)+s)%31!=0){a.mode=We,t.msg="incorrect header check",a.marker=5;break}if(!(32&s)){a.mode=7;break}a.mode=2;case 2:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need=(255&t.read_byte(t.next_in_index++))<<24&4278190080,a.mode=3;case 3:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need+=(255&t.read_byte(t.next_in_index++))<<16&16711680,a.mode=4;case 4:if(t.avail_in===0)return i;i=r,t.avail_in--,t.total_in++,a.need+=(255&t.read_byte(t.next_in_index++))<<8&65280,a.mode=5;case 5:return t.avail_in===0?i:(i=r,t.avail_in--,t.total_in++,a.need+=255&t.read_byte(t.next_in_index++),a.mode=6,2);case 6:return a.mode=We,t.msg="need dictionary",a.marker=0,fe;case 7:if(i=a.blocks.proc(t,i),i==G){a.mode=We,a.marker=0;break}if(i==0&&(i=r),i!=1)return i;i=r,a.blocks.reset(t,a.was),a.mode=12;case 12:return t.avail_in=0,1;case We:return G;default:return fe}},n.inflateSetDictionary=function(t,r,i){let s=0,a=i;if(!t||!t.istate||t.istate.mode!=6)return fe;const o=t.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,s=i-a),o.blocks.set_dictionary(r,s,a),o.mode=7,0},n.inflateSync=function(t){let r,i,s,a,o;if(!t||!t.istate)return fe;const c=t.istate;if(c.mode!=We&&(c.mode=We,c.marker=0),(r=t.avail_in)===0)return ze;for(i=t.next_in_index,s=c.marker;r!==0&&s<4;)t.read_byte(i)==Pu[s]?s++:s=t.read_byte(i)!==0?0:4-s,i++,r--;return t.total_in+=i-t.next_in_index,t.next_in_index=i,t.avail_in=r,c.marker=s,s!=4?G:(a=t.total_in,o=t.total_out,e(t),t.total_in=a,t.total_out=o,c.mode=7,0)},n.inflateSyncPoint=function(t){return t&&t.istate&&t.istate.blocks?t.istate.blocks.sync_point():fe}}function Ya(){}Ya.prototype={inflateInit(n){const e=this;return e.istate=new Mu,n||(n=15),e.istate.inflateInit(e,n)},inflate(n){const e=this;return e.istate?e.istate.inflate(e,n):fe},inflateEnd(){const n=this;if(!n.istate)return fe;const e=n.istate.inflateEnd(n);return n.istate=null,e},inflateSync(){const n=this;return n.istate?n.istate.inflateSync(n):fe},inflateSetDictionary(n,e){const t=this;return t.istate?t.istate.inflateSetDictionary(t,n,e):fe},read_byte(n){return this.next_in[n]},read_buf(n,e){return this.next_in.subarray(n,n+e)}};const Je=4294967295,Ze=65535,Ja=33639248,Za=101075792,at=22,ae=void 0,He="undefined",_t="function";let Qa=class{constructor(e){return class extends TransformStream{constructor(t,r){const i=new e(r);super({transform(s,a){a.enqueue(i.append(s))},flush(s){const a=i.flush();a&&s.enqueue(a)}})}}}},eo=2;try{typeof navigator!=He&&navigator.hardwareConcurrency&&(eo=navigator.hardwareConcurrency)}catch{}const ju={chunkSize:524288,maxWorkers:eo,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:ae,CompressionStreamNative:typeof CompressionStream!=He&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=He&&DecompressionStream},Ve=Object.assign({},ju);function to(n){const{baseURL:e,chunkSize:t,maxWorkers:r,terminateWorkerTimeout:i,useCompressionStream:s,useWebWorkers:a,Deflate:o,Inflate:c,CompressionStream:l,DecompressionStream:u,workerScripts:h}=n;if(Ge("baseURL",e),Ge("chunkSize",t),Ge("maxWorkers",r),Ge("terminateWorkerTimeout",i),Ge("useCompressionStream",s),Ge("useWebWorkers",a),o&&(Ve.CompressionStream=new Qa(o)),c&&(Ve.DecompressionStream=new Qa(c)),Ge("CompressionStream",l),Ge("DecompressionStream",u),h!==ae){const{deflate:p,inflate:g}=h;if((p||g)&&(Ve.workerScripts||(Ve.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");Ve.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");Ve.workerScripts.inflate=g}}}function Ge(n,e){e!==ae&&(Ve[n]=e)}const ro=[];for(let n=0;n<256;n++){let e=n;for(let t=0;t<8;t++)1&e?e=e>>>1^3988292384:e>>>=1;ro[n]=e}class Wt{constructor(e){this.crc=e||-1}append(e){let t=0|this.crc;for(let r=0,i=0|e.length;r<i;r++)t=t>>>8^ro[255&(t^e[r])];this.crc=t}get(){return~this.crc}}class no extends TransformStream{constructor(){let e;const t=new Wt;super({transform(r,i){t.append(r),i.enqueue(r)},flush(){const r=new Uint8Array(4);new DataView(r.buffer).setUint32(0,t.get()),e.value=r}}),e=this}}const oe={concat(n,e){if(n.length===0||e.length===0)return n.concat(e);const t=n[n.length-1],r=oe.getPartial(t);return r===32?n.concat(e):oe._shiftRight(e,r,0|t,n.slice(0,n.length-1))},bitLength(n){const e=n.length;if(e===0)return 0;const t=n[e-1];return 32*(e-1)+oe.getPartial(t)},clamp(n,e){if(32*n.length<e)return n;const t=(n=n.slice(0,Math.ceil(e/32))).length;return e&=31,t>0&&e&&(n[t-1]=oe.partial(e,n[t-1]&2147483648>>e-1,1)),n},partial:(n,e,t)=>n===32?e:(t?0|e:e<<32-n)+1099511627776*n,getPartial:n=>Math.round(n/1099511627776)||32,_shiftRight(n,e,t,r){for(r===void 0&&(r=[]);e>=32;e-=32)r.push(t),t=0;if(e===0)return r.concat(n);for(let a=0;a<n.length;a++)r.push(t|n[a]>>>e),t=n[a]<<32-e;const i=n.length?n[n.length-1]:0,s=oe.getPartial(i);return r.push(oe.partial(e+s&31,e+s>32?t:r.pop(),1)),r}},Ht={bytes:{fromBits(n){const e=oe.bitLength(n)/8,t=new Uint8Array(e);let r;for(let i=0;i<e;i++)3&i||(r=n[i/4]),t[i]=r>>>24,r<<=8;return t},toBits(n){const e=[];let t,r=0;for(t=0;t<n.length;t++)r=r<<8|n[t],3&~t||(e.push(r),r=0);return 3&t&&e.push(oe.partial(8*(3&t),r)),e}}},Du={sha1:class{constructor(n){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],n?(e._h=n._h.slice(0),e._buffer=n._buffer.slice(0),e._length=n._length):e.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const e=this;typeof n=="string"&&(n=Ht.utf8String.toBits(n));const t=e._buffer=oe.concat(e._buffer,n),r=e._length,i=e._length=r+oe.bitLength(n);if(i>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const s=new Uint32Array(t);let a=0;for(let o=e.blockSize+r-(e.blockSize+r&e.blockSize-1);o<=i;o+=e.blockSize)e._block(s.subarray(16*a,16*(a+1))),a+=1;return t.splice(0,16*a),e}finalize(){const n=this;let e=n._buffer;const t=n._h;e=oe.concat(e,[oe.partial(1,1)]);for(let r=e.length+2;15&r;r++)e.push(0);for(e.push(Math.floor(n._length/4294967296)),e.push(0|n._length);e.length;)n._block(e.splice(0,16));return n.reset(),t}_f(n,e,t,r){return n<=19?e&t|~e&r:n<=39?e^t^r:n<=59?e&t|e&r|t&r:n<=79?e^t^r:void 0}_S(n,e){return e<<n|e>>>32-n}_block(n){const e=this,t=e._h,r=Array(80);for(let l=0;l<16;l++)r[l]=n[l];let i=t[0],s=t[1],a=t[2],o=t[3],c=t[4];for(let l=0;l<=79;l++){l>=16&&(r[l]=e._S(1,r[l-3]^r[l-8]^r[l-14]^r[l-16]));const u=e._S(5,i)+e._f(l,s,a,o)+c+r[l]+e._key[Math.floor(l/20)]|0;c=o,o=a,a=e._S(30,s),s=i,i=u}t[0]=t[0]+i|0,t[1]=t[1]+s|0,t[2]=t[2]+a|0,t[3]=t[3]+o|0,t[4]=t[4]+c|0}}},Fu={aes:class{constructor(n){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const t=e._tables[0][4],r=e._tables[1],i=n.length;let s,a,o,c=1;if(i!==4&&i!==6&&i!==8)throw new Error("invalid aes key size");for(e._key=[a=n.slice(0),o=[]],s=i;s<4*i+28;s++){let l=a[s-1];(s%i==0||i===8&&s%i==4)&&(l=t[l>>>24]<<24^t[l>>16&255]<<16^t[l>>8&255]<<8^t[255&l],s%i==0&&(l=l<<8^l>>>24^c<<24,c=c<<1^283*(c>>7))),a[s]=a[s-i]^l}for(let l=0;s;l++,s--){const u=a[3&l?s:s-4];o[l]=s<=4||l<4?u:r[0][t[u>>>24]]^r[1][t[u>>16&255]]^r[2][t[u>>8&255]]^r[3][t[255&u]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],e=this._tables[1],t=n[4],r=e[4],i=[],s=[];let a,o,c,l;for(let u=0;u<256;u++)s[(i[u]=u<<1^283*(u>>7))^u]=u;for(let u=a=0;!t[u];u^=o||1,a=s[a]||1){let h=a^a<<1^a<<2^a<<3^a<<4;h=h>>8^255&h^99,t[u]=h,r[h]=u,l=i[c=i[o=i[u]]];let p=16843009*l^65537*c^257*o^16843008*u,g=257*i[h]^16843008*h;for(let f=0;f<4;f++)n[f][u]=g=g<<24^g>>>8,e[f][h]=p=p<<24^p>>>8}for(let u=0;u<5;u++)n[u]=n[u].slice(0),e[u]=e[u].slice(0)}_crypt(n,e){if(n.length!==4)throw new Error("invalid aes block size");const t=this._key[e],r=t.length/4-2,i=[0,0,0,0],s=this._tables[e],a=s[0],o=s[1],c=s[2],l=s[3],u=s[4];let h,p,g,f=n[0]^t[0],b=n[e?3:1]^t[1],d=n[2]^t[2],m=n[e?1:3]^t[3],y=4;for(let w=0;w<r;w++)h=a[f>>>24]^o[b>>16&255]^c[d>>8&255]^l[255&m]^t[y],p=a[b>>>24]^o[d>>16&255]^c[m>>8&255]^l[255&f]^t[y+1],g=a[d>>>24]^o[m>>16&255]^c[f>>8&255]^l[255&b]^t[y+2],m=a[m>>>24]^o[f>>16&255]^c[b>>8&255]^l[255&d]^t[y+3],y+=4,f=h,b=p,d=g;for(let w=0;w<4;w++)i[e?3&-w:w]=u[f>>>24]<<24^u[b>>16&255]<<16^u[d>>8&255]<<8^u[255&m]^t[y++],h=f,f=b,b=d,d=m,m=h;return i}}},Nu={getRandomValues(n){const e=new Uint32Array(n.buffer),t=r=>{let i=987654321;const s=4294967295;return function(){return i=36969*(65535&i)+(i>>16)&s,(((i<<16)+(r=18e3*(65535&r)+(r>>16)&s)&s)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let r,i=0;i<n.length;i+=4){const s=t(4294967296*(r||Math.random()));r=987654071*s(),e[i/4]=4294967296*s()|0}return n}},Bu={ctrGladman:class{constructor(n,e){this._prf=n,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if(255&~(n>>24))n+=1<<24;else{let e=n>>16&255,t=n>>8&255,r=255&n;e===255?(e=0,t===255?(t=0,r===255?r=0:++r):++t):++e,n=0,n+=e<<16,n+=t<<8,n+=r}return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,e,t){let r;if(!(r=e.length))return[];const i=oe.bitLength(e);for(let s=0;s<r;s+=4){this.incCounter(t);const a=n.encrypt(t);e[s]^=a[0],e[s+1]^=a[1],e[s+2]^=a[2],e[s+3]^=a[3]}return oe.clamp(e,i)}}},ot={importKey:n=>new ot.hmacSha1(Ht.bytes.toBits(n)),pbkdf2(n,e,t,r){if(t=t||1e4,r<0||t<0)throw new Error("invalid params to pbkdf2");const i=1+(r>>5)<<2;let s,a,o,c,l;const u=new ArrayBuffer(i),h=new DataView(u);let p=0;const g=oe;for(e=Ht.bytes.toBits(e),l=1;p<(i||1);l++){for(s=a=n.encrypt(g.concat(e,[l])),o=1;o<t;o++)for(a=n.encrypt(a),c=0;c<a.length;c++)s[c]^=a[c];for(o=0;p<(i||1)&&o<s.length;o++)h.setInt32(p,s[o]),p+=4}return u.slice(0,r/8)},hmacSha1:class{constructor(n){const e=this,t=e._hash=Du.sha1,r=[[],[]];e._baseHash=[new t,new t];const i=e._baseHash[0].blockSize/32;n.length>i&&(n=new t().update(n).finalize());for(let s=0;s<i;s++)r[0][s]=909522486^n[s],r[1][s]=1549556828^n[s];e._baseHash[0].update(r[0]),e._baseHash[1].update(r[1]),e._resultHash=new t(e._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){this._updated=!0,this._resultHash.update(n)}digest(){const n=this,e=n._resultHash.finalize(),t=new n._hash(n._baseHash[1]).update(e).finalize();return n.reset(),t}encrypt(n){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}}},zu=typeof crypto!=He&&typeof crypto.getRandomValues==_t,io="Invalid password",so="Invalid signature",Jn="zipjs-abort-check-password";function ao(n){return zu?crypto.getRandomValues(n):Nu.getRandomValues(n)}const ct=16,oo={name:"PBKDF2"},Uu=Object.assign({hash:{name:"HMAC"}},oo),Zn=Object.assign({iterations:1e3,hash:{name:"SHA-1"}},oo),qu=["deriveBits"],St=[8,12,16],Et=[16,24,32],Xe=10,$u=[0,0,0,0],Vt=typeof crypto!=He,Tt=Vt&&crypto.subtle,co=Vt&&typeof Tt!=He,Ie=Ht.bytes,Wu=Fu.aes,Hu=Bu.ctrGladman,Vu=ot.hmacSha1;let lo=Vt&&co&&typeof Tt.importKey==_t,uo=Vt&&co&&typeof Tt.deriveBits==_t;class Gu extends TransformStream{constructor({password:e,rawPassword:t,signed:r,encryptionStrength:i,checkPasswordOnly:s}){super({start(){Object.assign(this,{ready:new Promise((a=>this.resolveReady=a)),password:po(e,t),signed:r,strength:i-1,pending:new Uint8Array})},async transform(a,o){const c=this,{password:l,strength:u,resolveReady:h,ready:p}=c;l?(await(async function(f,b,d,m){const y=await fo(f,b,d,ye(m,0,St[b])),w=ye(m,St[b]);if(y[0]!=w[0]||y[1]!=w[1])throw new Error(io)})(c,u,l,ye(a,0,St[u]+2)),a=ye(a,St[u]+2),s?o.error(new Error(Jn)):h()):await p;const g=new Uint8Array(a.length-Xe-(a.length-Xe)%ct);o.enqueue(ho(c,a,g,0,Xe,!0))},async flush(a){const{signed:o,ctr:c,hmac:l,pending:u,ready:h}=this;if(l&&c){await h;const p=ye(u,0,u.length-Xe),g=ye(u,u.length-Xe);let f=new Uint8Array;if(p.length){const b=kt(Ie,p);l.update(b);const d=c.update(b);f=Rt(Ie,d)}if(o){const b=ye(Rt(Ie,l.digest()),0,Xe);for(let d=0;d<Xe;d++)if(b[d]!=g[d])throw new Error(so)}a.enqueue(f)}}})}}class Xu extends TransformStream{constructor({password:e,rawPassword:t,encryptionStrength:r}){let i;super({start(){Object.assign(this,{ready:new Promise((s=>this.resolveReady=s)),password:po(e,t),strength:r-1,pending:new Uint8Array})},async transform(s,a){const o=this,{password:c,strength:l,resolveReady:u,ready:h}=o;let p=new Uint8Array;c?(p=await(async function(f,b,d){const m=ao(new Uint8Array(St[b])),y=await fo(f,b,d,m);return Qn(m,y)})(o,l,c),u()):await h;const g=new Uint8Array(p.length+s.length-s.length%ct);g.set(p,0),a.enqueue(ho(o,s,g,p.length,0))},async flush(s){const{ctr:a,hmac:o,pending:c,ready:l}=this;if(o&&a){await l;let u=new Uint8Array;if(c.length){const h=a.update(kt(Ie,c));o.update(h),u=Rt(Ie,h)}i.signature=Rt(Ie,o.digest()).slice(0,Xe),s.enqueue(Qn(u,i.signature))}}}),i=this}}function ho(n,e,t,r,i,s){const{ctr:a,hmac:o,pending:c}=n,l=e.length-i;let u;for(c.length&&(e=Qn(c,e),t=(function(h,p){if(p&&p>h.length){const g=h;(h=new Uint8Array(p)).set(g,0)}return h})(t,l-l%ct)),u=0;u<=l-ct;u+=ct){const h=kt(Ie,ye(e,u,u+ct));s&&o.update(h);const p=a.update(h);s||o.update(p),t.set(Rt(Ie,p),u+r)}return n.pending=ye(e,u),t}async function fo(n,e,t,r){n.password=null;const i=await(async function(u,h,p,g,f){if(!lo)return ot.importKey(h);try{return await Tt.importKey(u,h,p,g,f)}catch{return lo=!1,ot.importKey(h)}})("raw",t,Uu,!1,qu),s=await(async function(u,h,p){if(!uo)return ot.pbkdf2(h,u.salt,Zn.iterations,p);try{return await Tt.deriveBits(u,h,p)}catch{return uo=!1,ot.pbkdf2(h,u.salt,Zn.iterations,p)}})(Object.assign({salt:r},Zn),i,8*(2*Et[e]+2)),a=new Uint8Array(s),o=kt(Ie,ye(a,0,Et[e])),c=kt(Ie,ye(a,Et[e],2*Et[e])),l=ye(a,2*Et[e]);return Object.assign(n,{keys:{key:o,authentication:c,passwordVerification:l},ctr:new Hu(new Wu(o),Array.from($u)),hmac:new Vu(c)}),l}function po(n,e){return e===ae?(function(t){if(typeof TextEncoder==He){t=unescape(encodeURIComponent(t));const r=new Uint8Array(t.length);for(let i=0;i<r.length;i++)r[i]=t.charCodeAt(i);return r}return new TextEncoder().encode(t)})(n):e}function Qn(n,e){let t=n;return n.length+e.length&&(t=new Uint8Array(n.length+e.length),t.set(n,0),t.set(e,n.length)),t}function ye(n,e,t){return n.subarray(e,t)}function Rt(n,e){return n.fromBits(e)}function kt(n,e){return n.toBits(e)}const Gt=12;class Ku extends TransformStream{constructor({password:e,passwordVerification:t,checkPasswordOnly:r}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),bo(this,e)},transform(i,s){const a=this;if(a.password){const o=go(a,i.subarray(0,Gt));if(a.password=null,o[11]!=a.passwordVerification)throw new Error(io);i=i.subarray(Gt)}r?s.error(new Error(Jn)):s.enqueue(go(a,i))}})}}class Yu extends TransformStream{constructor({password:e,passwordVerification:t}){super({start(){Object.assign(this,{password:e,passwordVerification:t}),bo(this,e)},transform(r,i){const s=this;let a,o;if(s.password){s.password=null;const c=ao(new Uint8Array(Gt));c[11]=s.passwordVerification,a=new Uint8Array(r.length+c.length),a.set(mo(s,c),0),o=Gt}else a=new Uint8Array(r.length),o=0;a.set(mo(s,r),o),i.enqueue(a)}})}}function go(n,e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=yo(n)^e[r],ei(n,t[r]);return t}function mo(n,e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=yo(n)^e[r],ei(n,e[r]);return t}function bo(n,e){const t=[305419896,591751049,878082192];Object.assign(n,{keys:t,crcKey0:new Wt(t[0]),crcKey2:new Wt(t[2])});for(let r=0;r<e.length;r++)ei(n,e.charCodeAt(r))}function ei(n,e){let[t,r,i]=n.keys;n.crcKey0.append([e]),t=~n.crcKey0.get(),r=wo(Math.imul(wo(r+vo(t)),134775813)+1),n.crcKey2.append([r>>>24]),i=~n.crcKey2.get(),n.keys=[t,r,i]}function yo(n){const e=2|n.keys[2];return vo(Math.imul(e,1^e)>>>8)}function vo(n){return 255&n}function wo(n){return 4294967295&n}const xo="deflate-raw";class Ju extends TransformStream{constructor(e,{chunkSize:t,CompressionStream:r,CompressionStreamNative:i}){super({});const{compressed:s,encrypted:a,useCompressionStream:o,zipCrypto:c,signed:l,level:u}=e,h=this;let p,g,f=_o(super.readable);a&&!c||!l||(p=new no,f=Le(f,p)),s&&(f=Eo(f,o,{level:u,chunkSize:t},i,r)),a&&(c?f=Le(f,new Yu(e)):(g=new Xu(e),f=Le(f,g))),So(h,f,(()=>{let b;a&&!c&&(b=g.signature),a&&!c||!l||(b=new DataView(p.value.buffer).getUint32(0)),h.signature=b}))}}class Zu extends TransformStream{constructor(e,{chunkSize:t,DecompressionStream:r,DecompressionStreamNative:i}){super({});const{zipCrypto:s,encrypted:a,signed:o,signature:c,compressed:l,useCompressionStream:u}=e;let h,p,g=_o(super.readable);a&&(s?g=Le(g,new Ku(e)):(p=new Gu(e),g=Le(g,p))),l&&(g=Eo(g,u,{chunkSize:t},i,r)),a&&!s||!o||(h=new no,g=Le(g,h)),So(this,g,(()=>{if((!a||s)&&o){const f=new DataView(h.value.buffer);if(c!=f.getUint32(0,!1))throw new Error(so)}}))}}function _o(n){return Le(n,new TransformStream({transform(e,t){e&&e.length&&t.enqueue(e)}}))}function So(n,e,t){e=Le(e,new TransformStream({flush:t})),Object.defineProperty(n,"readable",{get:()=>e})}function Eo(n,e,t,r,i){try{n=Le(n,new(e&&r?r:i)(xo,t))}catch{if(!e)return n;try{n=Le(n,new i(xo,t))}catch{return n}}return n}function Le(n,e){return n.pipeThrough(e)}const Qu="message",eh="start",th="pull",To="data",Ro="close",ko="inflate";class rh extends TransformStream{constructor(e,t){super({});const r=this,{codecType:i}=e;let s;i.startsWith("deflate")?s=Ju:i.startsWith(ko)&&(s=Zu);let a=0,o=0;const c=new s(e,t),l=super.readable,u=new TransformStream({transform(p,g){p&&p.length&&(o+=p.length,g.enqueue(p))},flush(){Object.assign(r,{inputSize:o})}}),h=new TransformStream({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){const{signature:p}=c;Object.assign(r,{signature:p,outputSize:a,inputSize:o})}});Object.defineProperty(r,"readable",{get:()=>l.pipeThrough(u).pipeThrough(c).pipeThrough(h)})}}class nh extends TransformStream{constructor(e){let t;super({transform:function r(i,s){if(t){const a=new Uint8Array(t.length+i.length);a.set(t),a.set(i,t.length),i=a,t=null}i.length>e?(s.enqueue(i.slice(0,e)),r(i.slice(e),s)):t=i},flush(r){t&&t.length&&r.enqueue(t)}})}}let Oo=typeof Worker!=He;class ti{constructor(e,{readable:t,writable:r},{options:i,config:s,streamOptions:a,useWebWorkers:o,transferStreams:c,scripts:l},u){const{signal:h}=a;return Object.assign(e,{busy:!0,readable:t.pipeThrough(new nh(s.chunkSize)).pipeThrough(new ih(t,a),{signal:h}),writable:r,options:Object.assign({},i),scripts:l,transferStreams:c,terminate:()=>new Promise((p=>{const{worker:g,busy:f}=e;g?(f?e.resolveTerminated=p:(g.terminate(),p()),e.interface=null):p()})),onTaskFinished(){const{resolveTerminated:p}=e;p&&(e.resolveTerminated=null,e.terminated=!0,e.worker.terminate(),p()),e.busy=!1,u(e)}}),(o&&Oo?sh:Ao)(e,s)}}class ih extends TransformStream{constructor(e,{onstart:t,onprogress:r,size:i,onend:s}){let a=0;super({async start(){t&&await ri(t,i)},async transform(o,c){a+=o.length,r&&await ri(r,a,i),c.enqueue(o)},async flush(){e.size=a,s&&await ri(s,a)}})}}async function ri(n,...e){try{await n(...e)}catch{}}function Ao(n,e){return{run:()=>(async function({options:t,readable:r,writable:i,onTaskFinished:s},a){try{const o=new rh(t,a);await r.pipeThrough(o).pipeTo(i,{preventClose:!0,preventAbort:!0});const{signature:c,inputSize:l,outputSize:u}=o;return{signature:c,inputSize:l,outputSize:u}}finally{s()}})(n,e)}}function sh(n,e){const{baseURL:t,chunkSize:r}=e;if(!n.interface){let i;try{i=(function(s,a,o){const c={type:"module"};let l,u;typeof s==_t&&(s=s());try{l=new URL(s,a)}catch{l=s}if(Co)try{u=new Worker(l)}catch{Co=!1,u=new Worker(l,c)}else u=new Worker(l,c);return u.addEventListener(Qu,(h=>(async function({data:p},g){const{type:f,value:b,messageId:d,result:m,error:y}=p,{reader:w,writer:_,resolveResult:R,rejectResult:E,onTaskFinished:S}=g;try{if(y){const{message:A,stack:T,code:k,name:O}=y,I=new Error(A);Object.assign(I,{stack:T,code:k,name:O}),x(I)}else{if(f==th){const{value:A,done:T}=await w.read();Xt({type:To,value:A,done:T,messageId:d},g)}f==To&&(await _.ready,await _.write(new Uint8Array(b)),Xt({type:"ack",messageId:d},g)),f==Ro&&x(null,m)}}catch(A){Xt({type:Ro,messageId:d},g),x(A)}function x(A,T){A?E(A):R(T),_&&_.releaseLock(),S()}})(h,o))),u})(n.scripts[0],t,n)}catch{return Oo=!1,Ao(n,e)}Object.assign(n,{worker:i,interface:{run:()=>(async function(s,a){let o,c;const l=new Promise(((m,y)=>{o=m,c=y}));Object.assign(s,{reader:null,writer:null,resolveResult:o,rejectResult:c,result:l});const{readable:u,options:h,scripts:p}=s,{writable:g,closed:f}=(function(m){let y;const w=new Promise((R=>y=R));return{writable:new WritableStream({async write(R){const E=m.getWriter();await E.ready,await E.write(R),E.releaseLock()},close(){y()},abort:R=>m.getWriter().abort(R)}),closed:w}})(s.writable),b=Xt({type:eh,scripts:p.slice(1),options:h,config:a,readable:u,writable:g},s);b||Object.assign(s,{reader:u.getReader(),writer:g.getWriter()});const d=await l;return b||await g.getWriter().close(),await f,d})(n,{chunkSize:r})}})}return n.interface}let Co=!0,Io=!0;function Xt(n,{worker:e,writer:t,onTaskFinished:r,transferStreams:i}){try{let{value:s,readable:a,writable:o}=n;const c=[];if(s&&(s.byteLength<s.buffer.byteLength?n.value=s.buffer.slice(0,s.byteLength):n.value=s.buffer,c.push(n.value)),i&&Io?(a&&c.push(a),o&&c.push(o)):n.readable=n.writable=null,c.length)try{return e.postMessage(n,c),!0}catch{Io=!1,n.readable=n.writable=null,e.postMessage(n)}else e.postMessage(n)}catch(s){throw t&&t.releaseLock(),r(),s}}let Qe=[];const ni=[];let Lo=0;async function ah(n,e){const{options:t,config:r}=e,{transferStreams:i,useWebWorkers:s,useCompressionStream:a,codecType:o,compressed:c,signed:l,encrypted:u}=t,{workerScripts:h,maxWorkers:p}=r;e.transferStreams=i||i===ae;const g=!(c||l||u||e.transferStreams);return e.useWebWorkers=!g&&(s||s===ae&&r.useWebWorkers),e.scripts=e.useWebWorkers&&h?h[o]:[],t.useCompressionStream=a||a===ae&&r.useCompressionStream,(await(async function(){const b=Qe.find((d=>!d.busy));if(b)return Po(b),new ti(b,n,e,f);if(Qe.length<p){const d={indexWorker:Lo};return Lo++,Qe.push(d),new ti(d,n,e,f)}return new Promise((d=>ni.push({resolve:d,stream:n,workerOptions:e})))})()).run();function f(b){if(ni.length){const[{resolve:d,stream:m,workerOptions:y}]=ni.splice(0,1);d(new ti(b,m,y,f))}else b.worker?(Po(b),(function(d,m){const{config:y}=m,{terminateWorkerTimeout:w}=y;Number.isFinite(w)&&w>=0&&(d.terminated?d.terminated=!1:d.terminateTimeout=setTimeout((async()=>{Qe=Qe.filter((_=>_!=d));try{await d.terminate()}catch{}}),w))})(b,e)):Qe=Qe.filter((d=>d!=b))}}function Po(n){const{terminateTimeout:e}=n;e&&(clearTimeout(e),n.terminateTimeout=null)}const oh=65536,Mo="writable";class ii{constructor(){this.size=0}init(){this.initialized=!0}}class jo extends ii{get readable(){const e=this,{chunkSize:t=oh}=e,r=new ReadableStream({start(){this.chunkOffset=0},async pull(i){const{offset:s=0,size:a,diskNumberStart:o}=r,{chunkOffset:c}=this;i.enqueue(await ie(e,s+c,Math.min(t,a-c),o)),c+t>a?i.close():this.chunkOffset+=t}});return r}}class Do extends jo{constructor(e){super(),Object.assign(this,{blob:e,size:e.size})}async readUint8Array(e,t){const r=this,i=e+t;let a=await(e||i<r.size?r.blob.slice(e,i):r.blob).arrayBuffer();return a.byteLength>t&&(a=a.slice(e,i)),new Uint8Array(a)}}class Fo extends ii{constructor(e){super();const t=new TransformStream,r=[];e&&r.push(["Content-Type",e]),Object.defineProperty(this,Mo,{get:()=>t.writable}),this.blob=new Response(t.readable,{headers:r}).blob()}getData(){return this.blob}}class ch extends Fo{constructor(e){super(e),Object.assign(this,{encoding:e,utf8:!e||e.toLowerCase()=="utf-8"})}async getData(){const{encoding:e,utf8:t}=this,r=await super.getData();if(r.text&&t)return r.text();{const i=new FileReader;return new Promise(((s,a)=>{Object.assign(i,{onload:({target:o})=>s(o.result),onerror:()=>a(i.error)}),i.readAsText(r,e)}))}}}class lh extends jo{constructor(e){super(),this.readers=e}async init(){const e=this,{readers:t}=e;e.lastDiskNumber=0,e.lastDiskOffset=0,await Promise.all(t.map((async(r,i)=>{await r.init(),i!=t.length-1&&(e.lastDiskOffset+=r.size),e.size+=r.size}))),super.init()}async readUint8Array(e,t,r=0){const i=this,{readers:s}=this;let a,o=r;o==-1&&(o=s.length-1);let c=e;for(;c>=s[o].size;)c-=s[o].size,o++;const l=s[o],u=l.size;if(c+t<=u)a=await ie(l,c,t);else{const h=u-c;a=new Uint8Array(t),a.set(await ie(l,c,h)),a.set(await i.readUint8Array(e+h,t-h,r),h)}return i.lastDiskNumber=Math.max(o,i.lastDiskNumber),a}}class No extends ii{constructor(e,t=4294967295){super();const r=this;let i,s,a;Object.assign(r,{diskNumber:0,diskOffset:0,size:0,maxSize:t,availableSize:t});const o=new WritableStream({async write(u){const{availableSize:h}=r;if(a)u.length>=h?(await c(u.slice(0,h)),await l(),r.diskOffset+=i.size,r.diskNumber++,a=null,await this.write(u.slice(h))):await c(u);else{const{value:p,done:g}=await e.next();if(g&&!p)throw new Error("Writer iterator completed too soon");i=p,i.size=0,i.maxSize&&(r.maxSize=i.maxSize),r.availableSize=r.maxSize,await Kt(i),s=p.writable,a=s.getWriter(),await this.write(u)}},async close(){await a.ready,await l()}});async function c(u){const h=u.length;h&&(await a.ready,await a.write(u),i.size+=h,r.size+=h,r.availableSize-=h)}async function l(){s.size=i.size,await a.close()}Object.defineProperty(r,Mo,{get:()=>o})}}async function Kt(n,e){if(!n.init||n.initialized)return Promise.resolve();await n.init(e)}function uh(n){return Array.isArray(n)&&(n=new lh(n)),n instanceof ReadableStream&&(n={readable:n}),n}function ie(n,e,t,r){return n.readUint8Array(e,t,r)}const Bo="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),hh=Bo.length==256;function Yt(n,e){return e&&e.trim().toLowerCase()=="cp437"?(function(t){if(hh){let r="";for(let i=0;i<t.length;i++)r+=Bo[t[i]];return r}return new TextDecoder().decode(t)})(n):new TextDecoder(e).decode(n)}const zo="filename",Uo="rawFilename",qo="comment",$o="rawComment",Wo="uncompressedSize",Ho="compressedSize",Vo="offset",si="diskNumberStart",ai="lastModDate",oi="rawLastModDate",Go="lastAccessDate",fh="rawLastAccessDate",Xo="creationDate",dh="rawCreationDate",ph=[zo,Uo,Ho,Wo,ai,oi,qo,$o,Go,Xo,Vo,si,si,"internalFileAttribute","externalFileAttribute","msDosCompatible","zip64","encrypted","version","versionMadeBy","zipCrypto","directory","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ko{constructor(e){ph.forEach((t=>this[t]=e[t]))}}const ci="File format is not recognized",gh="Zip64 extra field not found",Yo="Compression method not supported",Jo="Split zip file",Zo="utf-8",Qo="cp437",mh=[[Wo,Je],[Ho,Je],[Vo,Je],[si,Ze]],bh={[Ze]:{getValue:J,bytes:4},[Je]:{getValue:Jt,bytes:8}};class yh{constructor(e,t={}){Object.assign(this,{reader:uh(e),options:t,config:Ve})}async*getEntriesGenerator(e={}){const t=this;let{reader:r}=t;const{config:i}=t;if(await Kt(r),r.size!==ae&&r.readUint8Array||(r=new Do(await new Response(r.readable).blob()),await Kt(r)),r.size<at)throw new Error(ci);r.chunkSize=(function(T){return Math.max(T.chunkSize,64)})(i);const s=await(async function(T,k,O,I,L){const P=new Uint8Array(4);(function(q,K,D){q.setUint32(K,D,!0)})(ne(P),0,k);const j=I+L;return await F(I)||await F(Math.min(j,O));async function F(q){const K=O-q,D=await ie(T,K,q);for(let Y=D.length-I;Y>=0;Y--)if(D[Y]==P[0]&&D[Y+1]==P[1]&&D[Y+2]==P[2]&&D[Y+3]==P[3])return{offset:K+Y,buffer:D.slice(Y,Y+I).buffer}}})(r,101010256,r.size,at,1048560);if(!s)throw J(ne(await ie(r,0,4)))==134695760?new Error(Jo):new Error("End of central directory not found");const a=ne(s);let o=J(a,12),c=J(a,16);const l=s.offset,u=re(a,20),h=l+at+u;let p=re(a,4);const g=r.lastDiskNumber||0;let f=re(a,6),b=re(a,8),d=0,m=0;if(c==Je||o==Je||b==Ze||f==Ze){const T=ne(await ie(r,s.offset-20,20));if(J(T,0)==117853008){c=Jt(T,8);let k=await ie(r,c,56,-1),O=ne(k);const I=s.offset-20-56;if(J(O,0)!=Za&&c!=I){const L=c;c=I,d=c-L,k=await ie(r,c,56,-1),O=ne(k)}if(J(O,0)!=Za)throw new Error("End of Zip64 central directory locator not found");p==Ze&&(p=J(O,16)),f==Ze&&(f=J(O,20)),b==Ze&&(b=Jt(O,32)),o==Je&&(o=Jt(O,40)),c-=o}}if(c>=r.size&&(d=r.size-c-o-at,c=r.size-o-at),g!=p)throw new Error(Jo);if(c<0)throw new Error(ci);let y=0,w=await ie(r,c,o,f),_=ne(w);if(o){const T=s.offset-o;if(J(_,y)!=Ja&&c!=T){const k=c;c=T,d+=c-k,w=await ie(r,c,o,f),_=ne(w)}}const R=s.offset-c-(r.lastDiskOffset||0);if(o!=R&&R>=0&&(o=R,w=await ie(r,c,o,f),_=ne(w)),c<0||c>=r.size)throw new Error(ci);const E=ce(t,e,"filenameEncoding"),S=ce(t,e,"commentEncoding");for(let T=0;T<b;T++){const k=new vh(r,i,t.options);if(J(_,y)!=Ja)throw new Error("Central directory header not found");ec(k,_,y+6);const O=!!k.bitFlag.languageEncodingFlag,I=y+46,L=I+k.filenameLength,P=L+k.extraFieldLength,j=re(_,y+4),F=!0,q=w.subarray(I,L),K=re(_,y+32),D=P+K,Y=w.subarray(P,D),z=O,U=O,rt=!(16&~lt(_,y+38)),Pe=J(_,y+42)+d;Object.assign(k,{versionMadeBy:j,msDosCompatible:F,compressedSize:0,uncompressedSize:0,commentLength:K,directory:rt,offset:Pe,diskNumberStart:re(_,y+34),internalFileAttribute:re(_,y+36),externalFileAttribute:J(_,y+38),rawFilename:q,filenameUTF8:z,commentUTF8:U,rawExtraField:w.subarray(L,P)});const Me=ce(t,e,"decodeText")||Yt,je=z?Zo:E||Qo,De=U?Zo:S||Qo;let Ae=Me(q,je);Ae===ae&&(Ae=Yt(q,je));let Fe=Me(Y,De);Fe===ae&&(Fe=Yt(Y,De)),Object.assign(k,{rawComment:Y,filename:Ae,comment:Fe,directory:rt||Ae.endsWith("/")}),m=Math.max(Pe,m),await tc(k,k,_,y+6),k.zipCrypto=k.encrypted&&!k.extraFieldAES;const _e=new Ko(k);_e.getData=(Se,wi)=>k.getData(Se,_e,wi),y=D;const{onprogress:Ne}=e;if(Ne)try{await Ne(T+1,b,new Ko(k))}catch{}yield _e}const x=ce(t,e,"extractPrependedData"),A=ce(t,e,"extractAppendedData");return x&&(t.prependedData=m>0?await ie(r,0,m):new Uint8Array),t.comment=u?await ie(r,l+at,u):new Uint8Array,A&&(t.appendedData=h<r.size?await ie(r,h,r.size-h):new Uint8Array),!0}async getEntries(e={}){const t=[];for await(const r of this.getEntriesGenerator(e))t.push(r);return t}async close(){}}class vh{constructor(e,t,r){Object.assign(this,{reader:e,config:t,options:r})}async getData(e,t,r={}){const i=this,{reader:s,offset:a,diskNumberStart:o,extraFieldAES:c,compressionMethod:l,config:u,bitFlag:h,signature:p,rawLastModDate:g,uncompressedSize:f,compressedSize:b}=i,d=t.localDirectory={},m=ne(await ie(s,a,30,o));let y=ce(i,r,"password"),w=ce(i,r,"rawPassword");const _=ce(i,r,"passThrough");if(y=y&&y.length&&y,w=w&&w.length&&w,c&&c.originalCompressionMethod!=99)throw new Error(Yo);if(l!=0&&l!=8&&!_)throw new Error(Yo);if(J(m,0)!=67324752)throw new Error("Local file header not found");ec(d,m,4),d.rawExtraField=d.extraFieldLength?await ie(s,a+30+d.filenameLength,d.extraFieldLength,o):new Uint8Array,await tc(i,d,m,4,!0),Object.assign(t,{lastAccessDate:d.lastAccessDate,creationDate:d.creationDate});const R=i.encrypted&&d.encrypted&&!_,E=R&&!c;if(_||(t.zipCrypto=E),R){if(!E&&c.strength===ae)throw new Error("Encryption method not supported");if(!y&&!w)throw new Error("File contains encrypted entry")}const S=a+30+d.filenameLength+d.extraFieldLength,x=b,A=s.readable;Object.assign(A,{diskNumberStart:o,offset:S,size:x});const T=ce(i,r,"signal"),k=ce(i,r,"checkPasswordOnly");k&&(e=new WritableStream),e=(function(q){q.writable===ae&&typeof q.next==_t&&(q=new No(q)),q instanceof WritableStream&&(q={writable:q});const{writable:K}=q;return K.size===ae&&(K.size=0),q instanceof No||Object.assign(q,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),q})(e),await Kt(e,_?b:f);const{writable:O}=e,{onstart:I,onprogress:L,onend:P}=r,j={options:{codecType:ko,password:y,rawPassword:w,zipCrypto:E,encryptionStrength:c&&c.strength,signed:ce(i,r,"checkSignature")&&!_,passwordVerification:E&&(h.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:l!=0&&!_,encrypted:i.encrypted&&!_,useWebWorkers:ce(i,r,"useWebWorkers"),useCompressionStream:ce(i,r,"useCompressionStream"),transferStreams:ce(i,r,"transferStreams"),checkPasswordOnly:k},config:u,streamOptions:{signal:T,size:x,onstart:I,onprogress:L,onend:P}};let F=0;try{({outputSize:F}=await ah({readable:A,writable:O},j))}catch(q){if(!k||q.message!=Jn)throw q}finally{const q=ce(i,r,"preventClose");O.size+=F,q||O.locked||await O.getWriter().close()}return k?ae:e.getData?e.getData():O}}function ec(n,e,t){const r=n.rawBitFlag=re(e,t+2),i=!(1&~r),s=J(e,t+6);Object.assign(n,{encrypted:i,version:re(e,t),bitFlag:{level:(6&r)>>1,dataDescriptor:!(8&~r),languageEncodingFlag:!(2048&~r)},rawLastModDate:s,lastModDate:wh(s),filenameLength:re(e,t+22),extraFieldLength:re(e,t+24)})}async function tc(n,e,t,r,i){const{rawExtraField:s}=e,a=e.extraField=new Map,o=ne(new Uint8Array(s));let c=0;try{for(;c<s.length;){const m=re(o,c),y=re(o,c+2);a.set(m,{type:m,data:s.slice(c+4,c+4+y)}),c+=4+y}}catch{}const l=re(t,r+4);Object.assign(e,{signature:J(t,r+10),uncompressedSize:J(t,r+18),compressedSize:J(t,r+14)});const u=a.get(1);u&&((function(m,y){y.zip64=!0;const w=ne(m.data),_=mh.filter((([R,E])=>y[R]==E));for(let R=0,E=0;R<_.length;R++){const[S,x]=_[R];if(y[S]==x){const A=bh[x];y[S]=m[S]=A.getValue(w,E),E+=A.bytes}else if(m[S])throw new Error(gh)}})(u,e),e.extraFieldZip64=u);const h=a.get(28789);h&&(await rc(h,zo,Uo,e,n),e.extraFieldUnicodePath=h);const p=a.get(25461);p&&(await rc(p,qo,$o,e,n),e.extraFieldUnicodeComment=p);const g=a.get(39169);g?((function(m,y,w){const _=ne(m.data),R=lt(_,4);Object.assign(m,{vendorVersion:lt(_,0),vendorId:lt(_,2),strength:R,originalCompressionMethod:w,compressionMethod:re(_,5)}),y.compressionMethod=m.compressionMethod})(g,e,l),e.extraFieldAES=g):e.compressionMethod=l;const f=a.get(10);f&&((function(m,y){const w=ne(m.data);let _,R=4;try{for(;R<m.data.length&&!_;){const E=re(w,R),S=re(w,R+2);E==1&&(_=m.data.slice(R+4,R+4+S)),R+=4+S}}catch{}try{if(_&&_.length==24){const E=ne(_),S=E.getBigUint64(0,!0),x=E.getBigUint64(8,!0),A=E.getBigUint64(16,!0);Object.assign(m,{rawLastModDate:S,rawLastAccessDate:x,rawCreationDate:A});const T=li(S),k=li(x),O={lastModDate:T,lastAccessDate:k,creationDate:li(A)};Object.assign(m,O),Object.assign(y,O)}}catch{}})(f,e),e.extraFieldNTFS=f);const b=a.get(21589);b&&((function(m,y,w){const _=ne(m.data),R=lt(_,0),E=[],S=[];w?(1&~R||(E.push(ai),S.push(oi)),2&~R||(E.push(Go),S.push(fh)),4&~R||(E.push(Xo),S.push(dh))):m.data.length>=5&&(E.push(ai),S.push(oi));let x=1;E.forEach(((A,T)=>{if(m.data.length>=x+4){const k=J(_,x);y[A]=m[A]=new Date(1e3*k);const O=S[T];m[O]=k}x+=4}))})(b,e,i),e.extraFieldExtendedTimestamp=b);const d=a.get(6534);d&&(e.extraFieldUSDZ=d)}async function rc(n,e,t,r,i){const s=ne(n.data),a=new Wt;a.append(i[t]);const o=ne(new Uint8Array(4));o.setUint32(0,a.get(),!0);const c=J(s,1);Object.assign(n,{version:lt(s,0),[e]:Yt(n.data.subarray(5)),valid:!i.bitFlag.languageEncodingFlag&&c==J(o,0)}),n.valid&&(r[e]=n[e],r[e+"UTF8"]=!0)}function ce(n,e,t){return e[t]===ae?n.options[t]:e[t]}function wh(n){const e=(4294901760&n)>>16,t=65535&n;try{return new Date(1980+((65024&e)>>9),((480&e)>>5)-1,31&e,(63488&t)>>11,(2016&t)>>5,2*(31&t),0)}catch{}}function li(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function lt(n,e){return n.getUint8(e)}function re(n,e){return n.getUint16(e,!0)}function J(n,e){return n.getUint32(e,!0)}function Jt(n,e){return Number(n.getBigUint64(e,!0))}function ne(n){return new DataView(n.buffer)}to({Inflate:function(n){const e=new Ya,t=n&&n.chunkSize?Math.floor(2*n.chunkSize):131072,r=new Uint8Array(t);let i=!1;e.inflateInit(),e.next_out=r,this.append=function(s,a){const o=[];let c,l,u=0,h=0,p=0;if(s.length!==0){e.next_in_index=0,e.next_in=s,e.avail_in=s.length;do{if(e.next_out_index=0,e.avail_out=t,e.avail_in!==0||i||(e.next_in_index=0,i=!0),c=e.inflate(0),i&&c===ze){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(c!==0&&c!==1)throw new Error("inflating: "+e.msg);if((i||c===1)&&e.avail_in===s.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===t?o.push(new Uint8Array(r)):o.push(r.subarray(0,e.next_out_index))),p+=e.next_out_index,a&&e.next_in_index>0&&e.next_in_index!=u&&(a(e.next_in_index),u=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return o.length>1?(l=new Uint8Array(p),o.forEach((function(g){l.set(g,h),h+=g.length}))):l=o[0]?new Uint8Array(o[0]):new Uint8Array,l}},this.flush=function(){e.inflateEnd()}}});const xh=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Do,BlobWriter:Fo,TextWriter:ch,ZipReader:yh,configure:to},Symbol.toStringTag,{value:"Module"})),te={CONTAINER:"urn:oasis:names:tc:opendocument:xmlns:container",XHTML:"http://www.w3.org/1999/xhtml",OPF:"http://www.idpf.org/2007/opf",EPUB:"http://www.idpf.org/2007/ops",DC:"http://purl.org/dc/elements/1.1/",ENC:"http://www.w3.org/2001/04/xmlenc#",NCX:"http://www.daisy.org/z3986/2005/ncx/",XLINK:"http://www.w3.org/1999/xlink",SMIL:"http://www.w3.org/ns/SMIL"},le={XML:"application/xml",NCX:"application/x-dtbncx+xml",XHTML:"application/xhtml+xml",HTML:"text/html",CSS:"text/css",SVG:"image/svg+xml",JS:/\/(x-)?(javascript|ecmascript)/},Ke={a11y:"http://www.idpf.org/epub/vocab/package/a11y/#",dcterms:"http://purl.org/dc/terms/",marc:"http://id.loc.gov/vocabulary/",media:"http://www.idpf.org/epub/vocab/overlays/#",onix:"http://www.editeur.org/ONIX/book/codelists/current.html#",rendition:"http://www.idpf.org/vocab/rendition/#",schema:"http://schema.org/",xsd:"http://www.w3.org/2001/XMLSchema#",msv:"http://www.idpf.org/epub/vocab/structure/magazine/#",prism:"http://www.prismstandard.org/specifications/3.0/PRISM_CV_Spec_3.0.htm#"},_h={art:"artist",aut:"author",clr:"colorist",edt:"editor",ill:"illustrator",nrt:"narrator",trl:"translator",pbl:"publisher"},Sh={"02":"isbn","06":"doi",15:"isbn",26:"doi",34:"issn"},ui=n=>n.toLowerCase().replace(/[-:](.)/g,(e,t)=>t.toUpperCase()),Eh=n=>n?n.replace(/[\t\n\f\r ]+/g," ").replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,""):"",Th=(n,e,t)=>t?r=>r.getAttribute(n)?.split(/\s/)?.includes(e):typeof e=="function"?r=>e(r.getAttribute(n)):r=>r.getAttribute(n)===e,Zt=(...n)=>e=>e?Object.fromEntries(n.map(t=>[ui(t),e.getAttribute(t)])):null,Ue=n=>Eh(n?.textContent),Ot=(n,e)=>{const t=n.lookupNamespaceURI(null)===e||n.lookupPrefix(e),r=t?(i,s)=>a=>a.namespaceURI===e&&a.localName===s:(i,s)=>a=>a.localName===s;return{$:(i,s)=>[...i.children].find(r(i,s)),$$:(i,s)=>[...i.children].filter(r(i,s)),$$$:t?(i,s)=>[...i.getElementsByTagNameNS(e,s)]:(i,s)=>[...i.getElementsByTagName(s)]}},ut=(n,e)=>{try{if(e.includes(":"))return new URL(n,e);const t="https://invalid.invalid/",r=new URL(n,t+e);return r.search="",decodeURI(r.href.replace(t,""))}catch(t){return console.warn(t),n}},nc=n=>/^(?!blob)\w+:/i.test(n),Rh=(n,e)=>{if(!n)return e;const t=n.replace(/\/$/,"").split("/"),r=e.replace(/\/$/,"").split("/"),i=(t.length>r.length?t:r).findIndex((s,a)=>t[a]!==r[a]);return i<0?"":Array(t.length-i).fill("..").concat(r.slice(i)).join("/")},kh=n=>n.slice(0,n.lastIndexOf("/")+1),At=async(n,e,t)=>{const r=[];n.replace(e,(...s)=>(r.push(s),null));const i=[];for(const s of r)i.push(await t(...s));return n.replace(e,()=>i.shift())},Oh=n=>n.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&"),hi=n=>{for(const[t,r]of Object.entries(n))r==null?delete n[t]:Array.isArray(r)?(n[t]=r.filter(i=>i).map(i=>typeof i=="object"&&!Array.isArray(i)?hi(i):i),n[t].length?n[t].length===1&&(n[t]=n[t][0]):delete n[t]):typeof r=="object"&&(n[t]=hi(r),Object.keys(r).length||delete n[t]);const e=Object.keys(n);return e.length===1&&e[0]==="name"?n[e[0]]:n},Ah=n=>{const e=new Map(Object.entries(Ke)),t=n.documentElement.getAttributeNS(te.EPUB,"prefix")||n.documentElement.getAttribute("prefix");if(t)for(const[,r,i]of t.matchAll(/(.+): +(.+)[ \t\r\n]*/g))e.set(r,i);return e},ic=(n,e)=>{if(!n)return null;const[t,r]=n.split(":"),i=r?t:null,s=r||t,a=e.get(i);return a?a+s:null},Ch=n=>{const{$:e}=Ot(n,te.OPF),t=e(n.documentElement,"metadata"),r=Object.groupBy(t.children,x=>x.namespaceURI===te.DC?"dc":x.namespaceURI===te.OPF&&x.localName==="meta"?x.hasAttribute("name")?"legacyMeta":"meta":""),i=t.getAttribute("xml:lang")??n.documentElement.getAttribute("xml:lang")??"und",s=Ah(n),a=x=>{const A=x.getAttribute("property"),T=x.getAttribute("scheme");return{property:ic(A,s)??A,scheme:ic(T,s)??T,lang:x.getAttribute("xml:lang"),value:Ue(x),props:c(x),attrs:Object.fromEntries(Array.from(x.attributes).filter(k=>k.namespaceURI===te.OPF).map(k=>[k.localName,k.value]))}},o=Map.groupBy(r.meta??[],x=>x.getAttribute("refines")),c=x=>{const A=o.get(x?"#"+x.getAttribute("id"):null);return A?Object.groupBy(A.map(a),T=>T.property):null},l=Object.fromEntries(Object.entries(Object.groupBy(r.dc,x=>x.localName)).map(([x,A])=>[x,A.map(a)])),u=c()??{},h=Object.fromEntries(r.legacyMeta?.map(x=>[x.getAttribute("name"),x.getAttribute("content")])??[]),p=x=>x?.[0]?.value,g=(x,A)=>p(x?.props?.[A]),f=x=>{if(!x)return null;const A=x.props?.["alternate-script"]??[],T=x.attrs["alt-rep"];if(!A.length&&(!x.lang||x.lang===i)&&!T)return x.value;const k={[x.lang??i]:x.value};T&&(k[x.attrs["alt-rep-lang"]]=T);for(const O of A)k[O.lang]??=O.value;return k},b=x=>x?{name:f(x),sortAs:f(x.props?.["file-as"]?.[0])??x.attrs["file-as"],role:x.props?.role?.filter(A=>A.scheme===Ke.marc+"relators")?.map(A=>A.value)??[x.attrs.role],code:g(x,"term")??x.attrs.term,scheme:g(x,"authority")??x.attrs.authority}:null,d=x=>({name:f(x),position:p(x.props?.["group-position"])}),m=x=>{const{value:A}=x;if(/^urn:/i.test(A))return A;if(/^doi:/i.test(A))return`urn:${A}`;const T=x.props?.["identifier-type"];if(!T){const k=x.attrs.scheme;return k?/^(doi|isbn|uuid)$/i.test(k)?`urn:${k}:${A}`:{scheme:k,value:A}:A}if(T.scheme===Ke.onix+"codelist5"){const k=Sh[T.value];if(k)return`urn:${k}:${A}`}return A},y=Object.groupBy(u["belongs-to-collection"]??[],x=>g(x,"collection-type")==="series"?"series":"collection"),w=l.title?.find(x=>g(x,"title-type")==="main")??l.title?.[0],_={identifier:sc(n),title:f(w),sortAs:f(w?.props?.["file-as"]?.[0])??w?.attrs?.["file-as"]??h?.["calibre:title_sort"],subtitle:l.title?.find(x=>g(x,"title-type")==="subtitle")?.value,language:l.language?.map(x=>x.value),description:p(l.description),publisher:b(l.publisher?.[0]),published:l.date?.find(x=>x.attrs.event==="publication")?.value??p(l.date),modified:p(u[Ke.dcterms+"modified"])??l.date?.find(x=>x.attrs.event==="modification")?.value,subject:l.subject?.map(b),belongsTo:{collection:y.collection?.map(d),series:y.series?.map(d)??h?.["calibre:series"]?{name:h?.["calibre:series"],position:parseFloat(h?.["calibre:series_index"])}:null},altIdentifier:l.identifier?.map(m),source:l.source?.map(m),rights:p(l.rights)},R=x=>A=>{const T=new Set(A.role?.map(k=>_h[k]??x));return[T.size?T:[x],A]};for(const[x,A]of[].concat(l.creator?.map(b)?.map(R("author"))??[],l.contributor?.map(b)?.map(R("contributor"))??[]))for(const T of x)_[T]?_[T].push(A):_[T]=[A];hi(_),_.altIdentifier===_.identifier&&delete _.altIdentifier;const E={},S={};for(const[x,A]of Object.entries(u))x.startsWith(Ke.rendition)?E[ui(x.replace(Ke.rendition,""))]=p(A):x.startsWith(Ke.media)&&(S[ui(x.replace(Ke.media,""))]=p(A));return S.duration&&(S.duration=fi(S.duration)),{metadata:_,rendition:E,media:S}},Ih=(n,e=t=>t)=>{const{$:t,$$:r,$$$:i}=Ot(n,te.XHTML),s=f=>f?decodeURI(e(f)):null,a=f=>b=>{const d=t(b,"a")??t(b,"span"),m=t(b,"ol"),y=s(d?.getAttribute("href")),_={label:Ue(d)||d?.getAttribute("title"),href:y,subitems:o(m)};return f&&(_.type=d?.getAttributeNS(te.EPUB,"type")?.split(/\s/)),_},o=(f,b)=>f?r(f,"li").map(a(b)):null,c=(f,b)=>o(t(f,"ol"),b),l=i(n,"nav");let u=null,h=null,p=null,g=[];for(const f of l){const b=f.getAttributeNS(te.EPUB,"type")?.split(/\s/)??[];b.includes("toc")?u??=c(f):b.includes("page-list")?h??=c(f):b.includes("landmarks")?p??=c(f,!0):g.push({label:Ue(f.firstElementChild),type:b,list:c(f)})}return{toc:u,pageList:h,landmarks:p,others:g}},Lh=(n,e=t=>t)=>{const{$:t,$$:r}=Ot(n,te.NCX),i=c=>c?decodeURI(e(c)):null,s=c=>{const l=t(c,"navLabel"),u=t(c,"content"),h=Ue(l),p=i(u.getAttribute("src"));if(c.localName==="navPoint"){const g=r(c,"navPoint");return{label:h,href:p,subitems:g.length?g.map(s):null}}return{label:h,href:p}},a=(c,l)=>r(c,l).map(s),o=(c,l)=>{const u=t(n.documentElement,c);return u?a(u,l):null};return{toc:o("navMap","navPoint"),pageList:o("pageList","pageTarget"),others:r(n.documentElement,"navList").map(c=>({label:Ue(t(c,"navLabel")),list:a(c,"navTarget")}))}},fi=n=>{if(!n)return;const e=n.split(":").map(a=>parseFloat(a));if(e.length===3){const[a,o,c]=e;return a*60*60+o*60+c}if(e.length===2){const[a,o]=e;return a*60+o}const[t,r]=n.split(/(?=[^\d.])/);return parseFloat(t)*(r==="h"?3600:r==="min"?60:r==="ms"?.001:1)};class Ph extends EventTarget{#e;#r;#t;#n;#i;#s;#o=1;#a=1;#c;constructor(e,t){super(),this.book=e,this.loadXML=t}async#u(e){if(this.#r===e)return;const t=await this.loadXML(e.href),r=a=>a?ut(a,e.href):null,{$:i,$$$:s}=Ot(t,te.SMIL);this.#n=-1,this.#i=-1,this.#e=s(t,"par").reduce((a,o)=>{const c=r(i(o,"text")?.getAttribute("src")),l=i(o,"audio");if(!c||!l)return a;const u=r(l.getAttribute("src")),h=fi(l.getAttribute("clipBegin")),p=fi(l.getAttribute("clipEnd")),g=a.at(-1);return g?.src===u?g.items.push({text:c,begin:h,end:p}):a.push({src:u,items:[{text:c,begin:h,end:p}]}),a},[]),this.#r=e}get#h(){return this.#e[this.#n]}get#l(){return this.#h?.items?.[this.#i]}#f(e){console.error(e),this.dispatchEvent(new CustomEvent("error",{detail:e}))}#p(){this.dispatchEvent(new CustomEvent("highlight",{detail:this.#l}))}#g(){this.dispatchEvent(new CustomEvent("unhighlight",{detail:this.#l}))}async#d(e,t){this.#b(),this.#n=e,this.#i=t;const r=this.#h?.src;if(!r||!this.#l)return this.start(this.#t+1);const i=URL.createObjectURL(await this.book.loadBlob(r)),s=new Audio(i);this.#s=s,s.volume=this.#o,s.playbackRate=this.#a,s.addEventListener("timeupdate",()=>{if(s.paused)return;const a=s.currentTime,{items:o}=this.#h;if(a>this.#l?.end&&(this.#g(),this.#i===o.length-1)){this.#d(this.#n+1,0).catch(l=>this.#f(l));return}const c=this.#i;for(;o[this.#i+1]?.begin<=a;)this.#i++;this.#i!==c&&this.#p()}),s.addEventListener("error",()=>this.#f(new Error(`Failed to load ${r}`))),s.addEventListener("playing",()=>this.#p()),s.addEventListener("ended",()=>{this.#g(),URL.revokeObjectURL(i),this.#s=null,this.#d(e+1,0).catch(a=>this.#f(a))}),this.#c==="paused"?(this.#p(),s.currentTime=this.#l.begin??0):s.addEventListener("canplaythrough",()=>{s.currentTime=this.#l.begin??0,this.#c="playing",s.play().catch(a=>this.#f(a))},{once:!0})}async start(e,t=()=>!0){this.#s?.pause();const r=this.book.sections[e],i=r?.id;if(!i)return;const{mediaOverlay:s}=r;if(!s)return this.start(e+1);this.#t=e,await this.#u(s);for(let a=0;a<this.#e.length;a++){const{items:o}=this.#e[a];for(let c=0;c<o.length;c++)if(o[c].text.split("#")[0]===i&&t(o[c],c,o))return this.#d(a,c).catch(l=>this.#f(l))}}pause(){this.#c="paused",this.#s?.pause()}resume(){this.#c="playing",this.#s?.play().catch(e=>this.#f(e))}#b(){this.#s&&(this.#s.pause(),URL.revokeObjectURL(this.#s.src),this.#s=null,this.#g())}stop(){this.#c="stopped",this.#b()}prev(){this.#i>0?this.#d(this.#n,this.#i-1):this.#n>0?this.#d(this.#n-1,this.#e[this.#n-1].items.length-1):this.#t>0&&this.start(this.#t-1,(e,t,r)=>t===r.length-1)}next(){this.#d(this.#n,this.#i+1)}setVolume(e){this.#o=e,this.#s&&(this.#s.volume=e)}setRate(e){this.#a=e,this.#s&&(this.#s.playbackRate=e)}}const Mh=/([0-9a-f]{8})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{4})-([0-9a-f]{12})/,jh=n=>{for(const e of n.getElementsByTagNameNS(te.DC,"identifier")){const[t]=Ue(e).split(":").slice(-1);if(Mh.test(t))return t}return""},sc=n=>Ue(n.getElementById(n.documentElement.getAttribute("unique-identifier"))??n.getElementsByTagNameNS(te.DC,"identifier")[0]),ac=async(n,e,t)=>{const r=new Uint8Array(await t.slice(0,e).arrayBuffer());e=Math.min(e,r.length);for(var i=0;i<e;i++)r[i]=r[i]^n[i%n.length];return new Blob([r,t.slice(e)],{type:t.type})},Dh=async n=>{const e=new TextEncoder().encode(n),t=await globalThis.crypto.subtle.digest("SHA-1",e);return new Uint8Array(t)},Fh=(n=Dh)=>({"http://www.idpf.org/2008/embedding":{key:e=>n(sc(e).replaceAll(/[\u0020\u0009\u000d\u000a]/g,"")),decode:(e,t)=>ac(e,1040,t)},"http://ns.adobe.com/pdf/enc#RC":{key:e=>{const t=jh(e).replaceAll("-","");return Uint8Array.from({length:16},(r,i)=>parseInt(t.slice(i*2,i*2+2),16))},decode:(e,t)=>ac(e,1024,t)}});class Nh{#e=new Map;#r=new Map;#t;constructor(e){this.#t=e}async init(e,t){if(!e)return;const r=Array.from(e.getElementsByTagNameNS(te.ENC,"EncryptedData"),i=>({algorithm:i.getElementsByTagNameNS(te.ENC,"EncryptionMethod")[0]?.getAttribute("Algorithm"),uri:i.getElementsByTagNameNS(te.ENC,"CipherReference")[0]?.getAttribute("URI")}));for(const{algorithm:i,uri:s}of r){if(!this.#r.has(i)){const a=this.#t[i];if(!a){console.warn("Unknown encryption algorithm");continue}const o=await a.key(t);this.#r.set(i,c=>a.decode(o,c))}this.#e.set(s,i)}}getDecoder(e){return this.#r.get(this.#e.get(e))??(t=>t)}}class Bh{constructor({opf:e,resolveHref:t}){this.opf=e;const{$:r,$$:i,$$$:s}=Ot(e,te.OPF),a=r(e.documentElement,"manifest"),o=r(e.documentElement,"spine"),c=i(o,"itemref");this.manifest=i(a,"item").map(Zt("href","id","media-type","properties","media-overlay")).map(u=>(u.href=t(u.href),u.properties=u.properties?.split(/\s/),u)),this.manifestById=new Map(this.manifest.map(u=>[u.id,u])),this.spine=c.map(Zt("idref","id","linear","properties")).map(u=>(u.properties=u.properties?.split(/\s/),u)),this.pageProgressionDirection=o.getAttribute("page-progression-direction"),this.navPath=this.getItemByProperty("nav")?.href,this.ncxPath=(this.getItemByID(o.getAttribute("toc"))??this.manifest.find(u=>u.mediaType===le.NCX))?.href;const l=r(e.documentElement,"guide");l&&(this.guide=i(l,"reference").map(Zt("type","title","href")).map(({type:u,title:h,href:p})=>({label:h,type:u.split(/\s/),href:t(p)}))),this.cover=this.getItemByProperty("cover-image")??this.getItemByID(s(e,"meta").find(Th("name","cover"))?.getAttribute("content"))??this.getItemByHref(this.guide?.find(u=>u.type.includes("cover"))?.href),this.cfis=ou(c)}getItemByID(e){return this.manifestById.get(e)}getItemByHref(e){return this.manifest.find(t=>t.href===e)}getItemByProperty(e){return this.manifest.find(t=>t.properties?.includes(e))}resolveCFI(e){const t=wt(e),r=(t.parent??t).shift();let i=Fa(this.opf,r);i&&i.nodeName!=="idref"&&(r.at(-1).id=null,i=Fa(this.opf,r));const s=i?.getAttribute("idref");return{index:this.spine.findIndex(c=>c.idref===s),anchor:c=>Da(c,t)}}}class zh{#e=new Map;#r=new Map;#t=new Map;eventTarget=new EventTarget;constructor({loadText:e,loadBlob:t,resources:r}){this.loadText=e,this.loadBlob=t,this.manifest=r.manifest,this.assets=r.manifest}async createURL(e,t,r,i){if(!t)return"";const s={data:t,type:r};Object.defineProperty(s,"name",{value:e});const a=new CustomEvent("data",{detail:s});this.eventTarget.dispatchEvent(a);const o=await a.detail.data,c=await a.detail.type,l=URL.createObjectURL(new Blob([o],{type:c}));if(this.#e.set(e,l),this.#t.set(e,1),i){const u=this.#r.get(i);u?u.push(e):this.#r.set(i,[e])}return l}ref(e,t){const r=this.#r.get(t);return r?.includes(e)||(this.#t.set(e,this.#t.get(e)+1),r?r.push(e):this.#r.set(t,[e])),this.#e.get(e)}unref(e){if(!this.#t.has(e))return;const t=this.#t.get(e)-1;if(t<1){URL.revokeObjectURL(this.#e.get(e)),this.#e.delete(e),this.#t.delete(e);const r=this.#r.get(e);if(r)for(;r.length;)this.unref(r.pop());this.#r.delete(e)}else this.#t.set(e,t)}async loadItem(e,t=[]){if(!e)return null;const{href:r,mediaType:i}=e,s=le.JS.test(e.mediaType),a={type:i,isScript:s,allow:!0},o=new CustomEvent("load",{detail:a});if(this.eventTarget.dispatchEvent(o),!await o.detail.allow)return null;const l=t.at(-1);if(this.#e.has(r))return this.ref(r,l);if((s||[le.XHTML,le.HTML,le.CSS,le.SVG].includes(i))&&t.every(p=>p!==r))return this.loadReplaced(e,t);const h=Promise.resolve().then(()=>this.loadBlob(r));return this.createURL(r,h,i,l)}async loadHref(e,t,r=[]){if(nc(e))return e;const i=ut(e,t),s=this.manifest.find(a=>a.href===i);return s?this.loadItem(s,r.concat(t)):e}async loadReplaced(e,t=[]){const{href:r,mediaType:i}=e,s=t.at(-1);let a="";try{a=await this.loadText(r)}catch(c){return this.createURL(r,Promise.reject(c),i,s)}if(!a)return null;if([le.XHTML,le.HTML,le.SVG].includes(i)){let c=new DOMParser().parseFromString(a,i);if(i===le.XHTML&&(c.querySelector("parsererror")||!c.documentElement?.namespaceURI)&&(console.warn(c.querySelector("parsererror")?.innerText??"Invalid XHTML"),e.mediaType=le.HTML,c=new DOMParser().parseFromString(a,e.mediaType)),[le.XHTML,le.SVG].includes(e.mediaType)){let h=c.firstChild;for(;h instanceof ProcessingInstruction;){if(h.data){const p=await At(h.data,/(?:^|\s*)(href\s*=\s*['"])([^'"]*)(['"])/i,(g,f,b,d)=>this.loadHref(b,r,t).then(m=>`${f}${m}${d}`));h.replaceWith(c.createProcessingInstruction(h.target,p))}h=h.nextSibling}}const l=async(h,p)=>h.setAttribute(p,await this.loadHref(h.getAttribute(p),r,t));for(const h of c.querySelectorAll("link[href]"))await l(h,"href");for(const h of c.querySelectorAll("[src]"))await l(h,"src");for(const h of c.querySelectorAll("[poster]"))await l(h,"poster");for(const h of c.querySelectorAll("object[data]"))await l(h,"data");for(const h of c.querySelectorAll("[*|href]:not([href])"))h.setAttributeNS(te.XLINK,"href",await this.loadHref(h.getAttributeNS(te.XLINK,"href"),r,t));for(const h of c.querySelectorAll("[srcset]"))h.setAttribute("srcset",await At(h.getAttribute("srcset"),/(\s*)(.+?)\s*((?:\s[\d.]+[wx])+\s*(?:,|$)|,\s+|$)/g,(p,g,f,b)=>this.loadHref(f,r,t).then(d=>`${g}${d}${b}`)));for(const h of c.querySelectorAll("style"))h.textContent&&(h.textContent=await this.replaceCSS(h.textContent,r,t));for(const h of c.querySelectorAll("[style]"))h.setAttribute("style",await this.replaceCSS(h.getAttribute("style"),r,t));const u=new XMLSerializer().serializeToString(c);return this.createURL(r,u,e.mediaType,s)}const o=i===le.CSS?await this.replaceCSS(a,r,t):await this.replaceString(a,r,t);return this.createURL(r,o,i,s)}async replaceCSS(e,t,r=[]){const i=await At(e,/url\(\s*["']?([^'"\n]*?)\s*["']?\s*\)/gi,(s,a)=>this.loadHref(a,t,r).then(o=>`url("${o}")`));return At(i,/@import\s*["']([^"'\n]*?)["']/gi,(s,a)=>this.loadHref(a,t,r).then(o=>`@import "${o}"`))}replaceString(e,t,r=[]){const i=new Map,s=this.assets.map(o=>{if(o.href===t)return;const c=Rh(kh(t),o.href),l=encodeURI(c),u="/"+o.href,h=encodeURI(u),p=new Set([c,l,u,h]);for(const g of p)i.set(g,o);return Array.from(p)}).flat().filter(o=>o);if(!s.length)return e;const a=new RegExp(s.map(Oh).join("|"),"g");return At(e,a,async o=>this.loadItem(i.get(o.replace(/^\//,"")),r.concat(t)))}unloadItem(e){this.unref(e?.href)}destroy(){for(const e of this.#e.values())URL.revokeObjectURL(e)}}const Uh=(n,e)=>n.getElementById(e)??n.querySelector(`[name="${CSS.escape(e)}"]`),qh=n=>{for(const e of n){if(e==="page-spread-left"||e==="rendition:page-spread-left")return"left";if(e==="page-spread-right"||e==="rendition:page-spread-right")return"right";if(e==="rendition:page-spread-center")return"center"}},$h=n=>n?{fixedLayout:Ue(n.querySelector('option[name="fixed-layout"]')),openToSpread:Ue(n.querySelector('option[name="open-to-spread"]'))}:null;class Wh{parser=new DOMParser;#e;#r;constructor({loadText:e,loadBlob:t,getSize:r,sha1:i}){this.loadText=e,this.loadBlob=t,this.getSize=r,this.#r=new Nh(Fh(i))}async#t(e){const t=await this.loadText(e);if(!t)return null;const r=this.parser.parseFromString(t,le.XML);if(r.querySelector("parsererror"))throw new Error(`XML parsing error: ${e}
16
16
  ${r.querySelector("parsererror").innerText}`);return r}async init(){const e=await this.#t("META-INF/container.xml");if(!e)throw new Error("Failed to load container file");const t=Array.from(e.getElementsByTagNameNS(te.CONTAINER,"rootfile"),Zt("full-path","media-type")).filter(p=>p.mediaType==="application/oebps-package+xml");if(!t.length)throw new Error("No package document defined in container");const r=t[0].fullPath,i=await this.#t(r);if(!i)throw new Error("Failed to load package document");const s=await this.#t("META-INF/encryption.xml");await this.#r.init(s,i),this.resources=new Bh({opf:i,resolveHref:p=>ut(p,r)}),this.#e=new zh({loadText:this.loadText,loadBlob:p=>Promise.resolve(this.loadBlob(p)).then(this.#r.getDecoder(p)),resources:this.resources}),this.transformTarget=this.#e.eventTarget,this.sections=this.resources.spine.map((p,g)=>{const{idref:f,linear:b,properties:d=[]}=p,m=this.resources.getItemByID(f);return m?{id:m.href,load:()=>this.#e.loadItem(m),unload:()=>this.#e.unloadItem(m),createDocument:()=>this.loadDocument(m),size:this.getSize(m.href),cfi:this.resources.cfis[g],linear:b,pageSpread:qh(d),resolveHref:y=>ut(y,m.href),mediaOverlay:m.mediaOverlay?this.resources.getItemByID(m.mediaOverlay):null}:(console.warn(`Could not find item with ID "${f}" in manifest`),null)}).filter(p=>p);const{navPath:a,ncxPath:o}=this.resources;if(a)try{const p=f=>ut(f,a),g=Ih(await this.#t(a),p);this.toc=g.toc,this.pageList=g.pageList,this.landmarks=g.landmarks}catch(p){console.warn(p)}if(!this.toc&&o)try{const p=f=>ut(f,o),g=Lh(await this.#t(o),p);this.toc=g.toc,this.pageList=g.pageList}catch(p){console.warn(p)}this.landmarks??=this.resources.guide;const{metadata:c,rendition:l,media:u}=Ch(i);this.metadata=c,this.rendition=l,this.media=u,this.dir=this.resources.pageProgressionDirection;const h=$h(await this.#t("META-INF/com.apple.ibooks.display-options.xml")??await this.#t("META-INF/com.kobobooks.display-options.xml"));return h&&(h.fixedLayout==="true"&&(this.rendition.layout??="pre-paginated"),h.openToSpread==="false"&&(this.sections.find(p=>p.linear!=="no").pageSpread??=this.dir==="rtl"?"left":"right")),this}async loadDocument(e){const t=await this.loadText(e.href);return this.parser.parseFromString(t,e.mediaType)}getMediaOverlay(){return new Ph(this,this.#t.bind(this))}resolveCFI(e){return this.resources.resolveCFI(e)}resolveHref(e){const[t,r]=e.split("#"),i=this.resources.getItemByHref(decodeURI(t));return i?{index:this.resources.spine.findIndex(({idref:o})=>o===i.id),anchor:r?o=>Uh(o,r):()=>0}:null}splitTOCHref(e){return e?.split("#")??[]}getTOCFragment(e,t){return e.getElementById(t)??e.querySelector(`[name="${CSS.escape(t)}"]`)}isExternal(e){return nc(e)}async getCover(){const e=this.resources?.cover;return e?.href?new Blob([await this.loadBlob(e.href)],{type:e.mediaType}):null}async getCalibreBookmarks(){const e=await this.loadText("META-INF/calibre_bookmarks.txt"),t="encoding=json+base64:";if(e?.startsWith(t)){const r=atob(e.slice(t.length));return JSON.parse(r)}}destroy(){this.#e?.destroy()}}const oc=Object.freeze(Object.defineProperty({__proto__:null,EPUB:Wh},Symbol.toStringTag,{value:"Module"})),Hh=Object.freeze(Object.defineProperty({__proto__:null,makeComicBook:({entries:n,loadBlob:e,getSize:t},r)=>{const i=new Map,s=new Map,a=async h=>{if(i.has(h))return i.get(h);const p=URL.createObjectURL(await e(h)),g=URL.createObjectURL(new Blob([`<!DOCTYPE html><html><head><meta charset="utf-8"></head><body style="margin: 0"><img src="${p}"></body></html>`],{type:"text/html"}));return s.set(h,[p,g]),i.set(h,g),g},o=h=>{s.get(h)?.forEach?.(p=>URL.revokeObjectURL(p)),s.delete(h),i.delete(h)},c=[".jpg",".jpeg",".png",".gif",".bmp",".webp",".svg",".jxl",".avif"],l=n.map(h=>h.filename).filter(h=>c.some(p=>h.endsWith(p))).sort();if(!l.length)throw new Error("No supported image files in archive");const u={};return u.getCover=()=>e(l[0]),u.metadata={title:r.name},u.sections=l.map(h=>({id:h,load:()=>a(h),unload:()=>o(h),size:t(h)})),u.toc=l.map(h=>({label:h,href:h})),u.rendition={layout:"pre-paginated"},u.resolveHref=h=>({index:u.sections.findIndex(p=>p.id===h)}),u.splitTOCHref=h=>[h,null],u.getTOCFragment=h=>h.documentElement,u.destroy=()=>{for(const h of s.values())for(const p of h)URL.revokeObjectURL(p)},u}},Symbol.toStringTag,{value:"Module"})),cc=n=>n?n.replace(/[\t\n\f\r ]+/g," ").replace(/^[\t\n\f\r ]+/,"").replace(/[\t\n\f\r ]+$/,""):"",ve=n=>cc(n?.textContent),Qt={XLINK:"http://www.w3.org/1999/xlink",EPUB:"http://www.idpf.org/2007/ops"},er={XML:"application/xml",XHTML:"application/xhtml+xml"},be={strong:["strong","self"],emphasis:["em","self"],style:["span","self"],a:"anchor",strikethrough:["s","self"],sub:["sub","self"],sup:["sup","self"],code:["code","self"],image:"image"},Vh={tr:["tr",{th:["th",be,["colspan","rowspan","align","valign"]],td:["td",be,["colspan","rowspan","align","valign"]]},["align"]]},lc={epigraph:["blockquote"],subtitle:["h2",be],"text-author":["p",be],date:["p",be],stanza:"stanza"},tr={title:["header",{p:["h1",be],"empty-line":["br"]}],epigraph:["blockquote","self"],image:"image",annotation:["aside"],section:["section","self"],p:["p",be],poem:["blockquote",lc],subtitle:["h2",be],cite:["blockquote","self"],"empty-line":["br"],table:["table",Vh],"text-author":["p",be]};lc.epigraph.push(tr);const Gh={image:"image",title:["section",{p:["h1",be],"empty-line":["br"]}],epigraph:["section",tr],section:["section",tr]};class Xh{constructor(e){this.fb2=e,this.doc=document.implementation.createDocument(Qt.XHTML,"html"),this.bins=new Map(Array.from(this.fb2.getElementsByTagName("binary"),t=>[t.id,t]))}getImageSrc(e){const t=e.getAttributeNS(Qt.XLINK,"href");if(!t)return"data:,";const[,r]=t.split("#");if(!r)return t;const i=this.bins.get(r);return i?`data:${i.getAttribute("content-type")};base64,${i.textContent}`:t}image(e){const t=this.doc.createElement("img");return t.alt=e.getAttribute("alt"),t.title=e.getAttribute("title"),t.setAttribute("src",this.getImageSrc(e)),t}anchor(e){const t=this.convert(e,{a:["a",be]});return t.setAttribute("href",e.getAttributeNS(Qt.XLINK,"href")),e.getAttribute("type")==="note"&&t.setAttributeNS(Qt.EPUB,"epub:type","noteref"),t}stanza(e){const t=this.convert(e,{stanza:["p",{title:["header",{p:["strong",be],"empty-line":["br"]}],subtitle:["p",be]}]});for(const r of e.children)r.nodeName==="v"&&(t.append(this.doc.createTextNode(r.textContent)),t.append(this.doc.createElement("br")));return t}convert(e,t){if(e.nodeType===3)return this.doc.createTextNode(e.textContent);if(e.nodeType===4)return this.doc.createCDATASection(e.textContent);if(e.nodeType===8)return this.doc.createComment(e.textContent);const r=t?.[e.nodeName];if(!r)return null;if(typeof r=="string")return this[r](e);const[i,s,a]=r,o=this.doc.createElement(i);if(e.id&&(o.id=e.id),o.classList.add(e.nodeName),Array.isArray(a))for(const u of a){const h=e.getAttribute(u);h&&o.setAttribute(u,h)}const c=s==="self"?t:s;let l=e.firstChild;for(;l;){const u=this.convert(l,c);u&&o.append(u),l=l.nextSibling}return o}}const Kh=async n=>{const e=await n.arrayBuffer(),t=new TextDecoder("utf-8").decode(e),r=new DOMParser,i=r.parseFromString(t,er.XML),s=i.xmlEncoding||t.match(/^<\?xml\s+version\s*=\s*["']1.\d+"\s+encoding\s*=\s*["']([A-Za-z0-9._-]*)["']/)?.[1];if(s&&s.toLowerCase()!=="utf-8"){const a=new TextDecoder(s).decode(e);return r.parseFromString(a,er.XML)}return i},Yh=URL.createObjectURL(new Blob([`
17
17
  @namespace epub "http://www.idpf.org/2007/ops";
18
18
  body > img, section > img {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-book-reader",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "type": "module",
5
5
  "main": "lib/react-book-reader.cjs.js",
6
6
  "module": "lib/react-book-reader.es.js",
@@ -27,11 +27,12 @@
27
27
  "build": "vite build",
28
28
  "preview": "vite preview",
29
29
  "compile": "vite build",
30
- "docs:dev": "npm -C docs run dev",
30
+ "docs:dev": "npm -C docs run docs:dev",
31
31
  "docs:build": "npm -C docs run docs:build",
32
32
  "docs:preview": "npm -C docs run docs:preview"
33
33
  },
34
34
  "devDependencies": {
35
+ "@types/node": "^25.2.0",
35
36
  "@types/react": "^18.2.66",
36
37
  "@types/react-dom": "^18.2.22",
37
38
  "@typescript-eslint/eslint-plugin": "^7.2.0",