@serifpersia/dango 3.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +247 -0
  3. package/client/dist/assets/AnimeInfo-CMxs0nRH.css +1 -0
  4. package/client/dist/assets/AnimeInfo-DVdaocCl.js +1 -0
  5. package/client/dist/assets/AnimeInfoPage-Bx5EvGt-.js +2 -0
  6. package/client/dist/assets/Asmr-C2i9GKD4.css +1 -0
  7. package/client/dist/assets/Asmr-CIjmFtRH.js +2 -0
  8. package/client/dist/assets/Asmr.module-DPG2JhDJ.js +1 -0
  9. package/client/dist/assets/AvSyncCalibrator-CIYcyon5.css +1 -0
  10. package/client/dist/assets/AvSyncCalibrator-vqErH7Cm.js +10 -0
  11. package/client/dist/assets/ErrorMessage-BwSjzblw.js +1 -0
  12. package/client/dist/assets/ErrorMessage-CXoRbrLN.css +1 -0
  13. package/client/dist/assets/Home-D7YfGBUk.js +1 -0
  14. package/client/dist/assets/Home-DKCfEiwl.css +1 -0
  15. package/client/dist/assets/Insights-BljI64Ua.css +1 -0
  16. package/client/dist/assets/Insights-CLQGrlpX.js +1 -0
  17. package/client/dist/assets/Manga-DQ9HYnpk.js +1 -0
  18. package/client/dist/assets/Manga-H8Wb04w3.css +1 -0
  19. package/client/dist/assets/Map-CXFqXmsZ.css +1 -0
  20. package/client/dist/assets/Map-L_ryVBTq.js +1 -0
  21. package/client/dist/assets/Mature-BeWzAJ7B.js +1 -0
  22. package/client/dist/assets/Mature-DJmUUtlF.css +1 -0
  23. package/client/dist/assets/Player-CYpd__FP.js +30 -0
  24. package/client/dist/assets/Player-DreAhybc.css +1 -0
  25. package/client/dist/assets/PlayerRedirect-fxUAp9JV.js +1 -0
  26. package/client/dist/assets/PlayerSettings-BcsotxP9.js +1 -0
  27. package/client/dist/assets/PlayerSettings-Cqua1CDD.css +1 -0
  28. package/client/dist/assets/QueueRail-B9Pgbqc3.js +1 -0
  29. package/client/dist/assets/QueueRail-BnaltOP8.css +1 -0
  30. package/client/dist/assets/Radio-BvdY5twD.js +1 -0
  31. package/client/dist/assets/Radio-CUuYy3DY.css +1 -0
  32. package/client/dist/assets/Search-BzO-aRP7.css +1 -0
  33. package/client/dist/assets/Search-R9YLAXS1.js +1 -0
  34. package/client/dist/assets/Search.module-D8ZbQAiK.js +1 -0
  35. package/client/dist/assets/Settings-9kYcXdTR.js +21 -0
  36. package/client/dist/assets/Settings-DF8JThUL.css +1 -0
  37. package/client/dist/assets/SkeletonGrid-D5vRvX5q.js +1 -0
  38. package/client/dist/assets/SkeletonGrid-DEbYtO4H.css +1 -0
  39. package/client/dist/assets/SynopsisText-BlFw0R-0.js +1 -0
  40. package/client/dist/assets/SynopsisText-CUgOjOxt.css +1 -0
  41. package/client/dist/assets/Trackers-DfZlnnVq.js +2 -0
  42. package/client/dist/assets/Trackers-Dt9lR_uP.css +1 -0
  43. package/client/dist/assets/Tv-CVKC2YBs.css +1 -0
  44. package/client/dist/assets/Tv-Db1Wx_b7.js +15 -0
  45. package/client/dist/assets/Watchlist-B2nkNZqM.css +1 -0
  46. package/client/dist/assets/Watchlist-a77CYtzu.js +1 -0
  47. package/client/dist/assets/hls-6Owgw2Aj.js +1 -0
  48. package/client/dist/assets/hls-BOLXTnjL.js +42 -0
  49. package/client/dist/assets/index-B6qdXFtl.css +1 -0
  50. package/client/dist/assets/index-B8TPVaIS.js +30354 -0
  51. package/client/dist/assets/index-CpjgU8ou.js +178 -0
  52. package/client/dist/assets/useAnimeInfoData-BOfyi9UJ.js +1 -0
  53. package/client/dist/assets/useIsMobile-CM15uQn8.css +1 -0
  54. package/client/dist/assets/useIsMobile-Cb8HcKRj.js +1 -0
  55. package/client/dist/assets/useMatureConsent-CZMYBVXd.js +1 -0
  56. package/client/dist/assets/vendor-rLNfZm7Y.js +1 -0
  57. package/client/dist/av-sync-test.mp4 +0 -0
  58. package/client/dist/favicon.ico +0 -0
  59. package/client/dist/index.html +31 -0
  60. package/client/dist/logo-mochi.png +0 -0
  61. package/client/dist/logo-sakura.png +0 -0
  62. package/client/dist/logo.png +0 -0
  63. package/client/dist/placeholder.svg +4 -0
  64. package/client/dist/robots.txt +3 -0
  65. package/orchestrator.js +416 -0
  66. package/package.json +89 -0
  67. package/server/dist/app-auth.js +231 -0
  68. package/server/dist/config.js +133 -0
  69. package/server/dist/controllers/auth.controller.js +247 -0
  70. package/server/dist/controllers/data.controller.js +785 -0
  71. package/server/dist/controllers/insights.controller.js +197 -0
  72. package/server/dist/controllers/proxy.controller.js +665 -0
  73. package/server/dist/controllers/settings.controller.js +267 -0
  74. package/server/dist/controllers/watchlist.controller.js +967 -0
  75. package/server/dist/db.js +152 -0
  76. package/server/dist/discord-gateway.js +381 -0
  77. package/server/dist/discord-rpc.js +424 -0
  78. package/server/dist/github-sync.js +403 -0
  79. package/server/dist/google.js +549 -0
  80. package/server/dist/lib/anilist.js +1519 -0
  81. package/server/dist/lib/anischedule.js +202 -0
  82. package/server/dist/lib/ipc.js +32 -0
  83. package/server/dist/lib/kitsu.js +552 -0
  84. package/server/dist/lib/mal.js +886 -0
  85. package/server/dist/lib/migration.js +335 -0
  86. package/server/dist/lib/temp-ids.js +11 -0
  87. package/server/dist/lib/tmdb.js +71 -0
  88. package/server/dist/lib/tracker/anilist-tracker.js +250 -0
  89. package/server/dist/lib/tracker/sync.service.js +312 -0
  90. package/server/dist/logger.js +19 -0
  91. package/server/dist/providers/123anime.provider.js +240 -0
  92. package/server/dist/providers/anilight.provider.js +366 -0
  93. package/server/dist/providers/animepahe.provider.js +531 -0
  94. package/server/dist/providers/animeya.provider.js +746 -0
  95. package/server/dist/providers/base-provider.js +45 -0
  96. package/server/dist/providers/hn.provider.js +473 -0
  97. package/server/dist/providers/ht.provider.js +439 -0
  98. package/server/dist/providers/jasmr.provider.js +504 -0
  99. package/server/dist/providers/kaa.provider.js +388 -0
  100. package/server/dist/providers/manga/manga.types.js +10 -0
  101. package/server/dist/providers/manga/mangadex.provider.js +227 -0
  102. package/server/dist/providers/manga/mangapill.provider.js +232 -0
  103. package/server/dist/providers/megaplay.provider.js +583 -0
  104. package/server/dist/providers/op.provider.js +440 -0
  105. package/server/dist/providers/provider.interface.js +2 -0
  106. package/server/dist/providers/title-matching.js +234 -0
  107. package/server/dist/providers/wh.provider.js +600 -0
  108. package/server/dist/rclone.js +126 -0
  109. package/server/dist/repositories/insights.repository.js +43 -0
  110. package/server/dist/repositories/mal-cache.repository.js +66 -0
  111. package/server/dist/repositories/notifications.repository.js +40 -0
  112. package/server/dist/repositories/queue.repository.js +64 -0
  113. package/server/dist/repositories/settings.repository.js +15 -0
  114. package/server/dist/repositories/shows-meta.repository.js +43 -0
  115. package/server/dist/repositories/temp-show-ids.repository.js +54 -0
  116. package/server/dist/repositories/watched-episodes.repository.js +54 -0
  117. package/server/dist/repositories/watchlist.repository.js +74 -0
  118. package/server/dist/routes/asmr.routes.js +72 -0
  119. package/server/dist/routes/auth.routes.js +28 -0
  120. package/server/dist/routes/data.routes.js +50 -0
  121. package/server/dist/routes/discord-gateway.routes.js +57 -0
  122. package/server/dist/routes/insights.routes.js +12 -0
  123. package/server/dist/routes/lan-auth.routes.js +49 -0
  124. package/server/dist/routes/manga.routes.js +115 -0
  125. package/server/dist/routes/proxy.routes.js +15 -0
  126. package/server/dist/routes/radio.routes.js +143 -0
  127. package/server/dist/routes/settings.routes.js +27 -0
  128. package/server/dist/routes/tracker.routes.js +143 -0
  129. package/server/dist/routes/translate.routes.js +90 -0
  130. package/server/dist/routes/tv.routes.js +843 -0
  131. package/server/dist/routes/watchlist.routes.js +312 -0
  132. package/server/dist/server.js +310 -0
  133. package/server/dist/shipped-defaults.js +8 -0
  134. package/server/dist/sync-config.js +32 -0
  135. package/server/dist/sync.js +506 -0
  136. package/server/dist/utils/cookie.utils.js +17 -0
  137. package/server/dist/utils/db-utils.js +15 -0
  138. package/server/dist/utils/env.utils.js +83 -0
  139. package/server/dist/utils/machine-id.js +46 -0
  140. package/server/dist/utils/request-context.js +5 -0
  141. package/server/dist/utils/security.utils.js +99 -0
@@ -0,0 +1 @@
1
+ import{D as qt,g as Q,N as kr,T as ee,q as xo,x as Eo,d as Ot,h as Qt,X as ea,S as So,A as Bt,e as X}from"./vendor-rLNfZm7Y.js";import{a$ as Mo,b0 as ko}from"./index-CpjgU8ou.js";class rt{constructor(){this._partials=new Float64Array(32),this._n=0}add(n){const e=this._partials;let r=0;for(let i=0;i<this._n&&i<32;i++){const a=e[i],o=n+a,u=Math.abs(n)<Math.abs(a)?n-(o-a):a-(o-n);u&&(e[r++]=u),n=o}return e[r]=n,this._n=r+1,this}valueOf(){const n=this._partials;let e=this._n,r,i,a,o=0;if(e>0){for(o=n[--e];e>0&&(r=o,i=n[--e],o=r+i,a=i-(o-r),!a););e>0&&(a<0&&n[e-1]<0||a>0&&n[e-1]>0)&&(i=a*2,r=o+i,i==r-o&&(o=r))}return o}}function*No(t){for(const n of t)yield*n}function ra(t){return Array.from(No(t))}function jt(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=Math.max(0,Math.ceil((n-t)/e))|0,a=new Array(i);++r<i;)a[r]=t+r*e;return a}var C=1e-6,Sn=1e-12,B=Math.PI,Z=B/2,re=B/4,ut=B*2,Y=180/B,R=B/180,F=Math.abs,cn=Math.atan,ct=Math.atan2,b=Math.cos,Bn=Math.ceil,ia=Math.exp,Ve=Math.hypot,ie=Math.log,Be=Math.pow,P=Math.sin,mt=Math.sign||function(t){return t>0?1:t<0?-1:0},nt=Math.sqrt,Nr=Math.tan;function aa(t){return t>1?0:t<-1?B:Math.acos(t)}function st(t){return t>1?Z:t<-1?-Z:Math.asin(t)}function Qr(t){return(t=P(t/2))*t}function V(){}function ae(t,n){t&&ni.hasOwnProperty(t.type)&&ni[t.type](t,n)}var ti={Feature:function(t,n){ae(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)ae(e[r].geometry,n)}},ni={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){We(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)We(e[r],n,0)},Polygon:function(t,n){ei(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)ei(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)ae(e[r],n)}};function We(t,n,e){var r=-1,i=t.length-e,a;for(n.lineStart();++r<i;)a=t[r],n.point(a[0],a[1],a[2]);n.lineEnd()}function ei(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)We(t[e],n,1);n.polygonEnd()}function yt(t,n){t&&ti.hasOwnProperty(t.type)?ti[t.type](t,n):ae(t,n)}var oe=new rt,ue=new rt,oa,ua,Ue,Ze,je,Mt={point:V,lineStart:V,lineEnd:V,polygonStart:function(){oe=new rt,Mt.lineStart=Po,Mt.lineEnd=$o},polygonEnd:function(){var t=+oe;ue.add(t<0?ut+t:t),this.lineStart=this.lineEnd=this.point=V},sphere:function(){ue.add(ut)}};function Po(){Mt.point=bo}function $o(){ca(oa,ua)}function bo(t,n){Mt.point=ca,oa=t,ua=n,t*=R,n*=R,Ue=t,Ze=b(n=n/2+re),je=P(n)}function ca(t,n){t*=R,n*=R,n=n/2+re;var e=t-Ue,r=e>=0?1:-1,i=r*e,a=b(n),o=P(n),u=je*o,s=Ze*a+u*b(i),l=u*r*P(i);oe.add(ct(l,s)),Ue=t,Ze=a,je=o}function Co(t){return ue=new rt,yt(t,Mt),ue*2}function ce(t){return[ct(t[1],t[0]),st(t[2])]}function Vt(t){var n=t[0],e=t[1],r=b(e);return[r*b(n),r*P(n),P(e)]}function Fn(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function en(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function Fe(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Gn(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function se(t){var n=nt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}var K,lt,U,pt,Xt,sa,la,tn,An,Ft,Lt,Ct={point:Je,lineStart:ri,lineEnd:ii,polygonStart:function(){Ct.point=ha,Ct.lineStart=Ro,Ct.lineEnd=zo,An=new rt,Mt.polygonStart()},polygonEnd:function(){Mt.polygonEnd(),Ct.point=Je,Ct.lineStart=ri,Ct.lineEnd=ii,oe<0?(K=-(U=180),lt=-(pt=90)):An>C?pt=90:An<-C&&(lt=-90),Lt[0]=K,Lt[1]=U},sphere:function(){K=-(U=180),lt=-(pt=90)}};function Je(t,n){Ft.push(Lt=[K=t,U=t]),n<lt&&(lt=n),n>pt&&(pt=n)}function fa(t,n){var e=Vt([t*R,n*R]);if(tn){var r=en(tn,e),i=[r[1],-r[0],0],a=en(i,r);se(a),a=ce(a);var o=t-Xt,u=o>0?1:-1,s=a[0]*Y*u,l,c=F(o)>180;c^(u*Xt<s&&s<u*t)?(l=a[1]*Y,l>pt&&(pt=l)):(s=(s+360)%360-180,c^(u*Xt<s&&s<u*t)?(l=-a[1]*Y,l<lt&&(lt=l)):(n<lt&&(lt=n),n>pt&&(pt=n))),c?t<Xt?ht(K,t)>ht(K,U)&&(U=t):ht(t,U)>ht(K,U)&&(K=t):U>=K?(t<K&&(K=t),t>U&&(U=t)):t>Xt?ht(K,t)>ht(K,U)&&(U=t):ht(t,U)>ht(K,U)&&(K=t)}else Ft.push(Lt=[K=t,U=t]);n<lt&&(lt=n),n>pt&&(pt=n),tn=e,Xt=t}function ri(){Ct.point=fa}function ii(){Lt[0]=K,Lt[1]=U,Ct.point=Je,tn=null}function ha(t,n){if(tn){var e=t-Xt;An.add(F(e)>180?e+(e>0?360:-360):e)}else sa=t,la=n;Mt.point(t,n),fa(t,n)}function Ro(){Mt.lineStart()}function zo(){ha(sa,la),Mt.lineEnd(),F(An)>C&&(K=-(U=180)),Lt[0]=K,Lt[1]=U,tn=null}function ht(t,n){return(n-=t)<0?n+360:n}function To(t,n){return t[0]-n[0]}function ai(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Lo(t){var n,e,r,i,a,o,u;if(pt=U=-(K=lt=1/0),Ft=[],yt(t,Ct),e=Ft.length){for(Ft.sort(To),n=1,r=Ft[0],a=[r];n<e;++n)i=Ft[n],ai(r,i[0])||ai(r,i[1])?(ht(r[0],i[1])>ht(r[0],r[1])&&(r[1]=i[1]),ht(i[0],r[1])>ht(r[0],r[1])&&(r[0]=i[0])):a.push(r=i);for(o=-1/0,e=a.length-1,n=0,r=a[e];n<=e;r=i,++n)i=a[n],(u=ht(r[1],i[0]))>o&&(o=u,K=i[0],U=r[1])}return Ft=Lt=null,K===1/0||lt===1/0?[[NaN,NaN],[NaN,NaN]]:[[K,lt],[U,pt]]}var fn,le,fe,he,pe,ge,de,me,Qe,tr,nr,pa,ga,it,at,ot,wt={sphere:V,point:Pr,lineStart:oi,lineEnd:ui,polygonStart:function(){wt.lineStart=Do,wt.lineEnd=Bo},polygonEnd:function(){wt.lineStart=oi,wt.lineEnd=ui}};function Pr(t,n){t*=R,n*=R;var e=b(n);zn(e*b(t),e*P(t),P(n))}function zn(t,n,e){++fn,fe+=(t-fe)/fn,he+=(n-he)/fn,pe+=(e-pe)/fn}function oi(){wt.point=Io}function Io(t,n){t*=R,n*=R;var e=b(n);it=e*b(t),at=e*P(t),ot=P(n),wt.point=qo,zn(it,at,ot)}function qo(t,n){t*=R,n*=R;var e=b(n),r=e*b(t),i=e*P(t),a=P(n),o=ct(nt((o=at*a-ot*i)*o+(o=ot*r-it*a)*o+(o=it*i-at*r)*o),it*r+at*i+ot*a);le+=o,ge+=o*(it+(it=r)),de+=o*(at+(at=i)),me+=o*(ot+(ot=a)),zn(it,at,ot)}function ui(){wt.point=Pr}function Do(){wt.point=Fo}function Bo(){da(pa,ga),wt.point=Pr}function Fo(t,n){pa=t,ga=n,t*=R,n*=R,wt.point=da;var e=b(n);it=e*b(t),at=e*P(t),ot=P(n),zn(it,at,ot)}function da(t,n){t*=R,n*=R;var e=b(n),r=e*b(t),i=e*P(t),a=P(n),o=at*a-ot*i,u=ot*r-it*a,s=it*i-at*r,l=Ve(o,u,s),c=st(l),f=l&&-c/l;Qe.add(f*o),tr.add(f*u),nr.add(f*s),le+=c,ge+=c*(it+(it=r)),de+=c*(at+(at=i)),me+=c*(ot+(ot=a)),zn(it,at,ot)}function Go(t){fn=le=fe=he=pe=ge=de=me=0,Qe=new rt,tr=new rt,nr=new rt,yt(t,wt);var n=+Qe,e=+tr,r=+nr,i=Ve(n,e,r);return i<Sn&&(n=ge,e=de,r=me,le<C&&(n=fe,e=he,r=pe),i=Ve(n,e,r),i<Sn)?[NaN,NaN]:[ct(e,n)*Y,st(r/i)*Y]}function Zt(t){return function(){return t}}function er(t,n){function e(r,i){return r=t(r,i),n(r[0],r[1])}return t.invert&&n.invert&&(e.invert=function(r,i){return r=n.invert(r,i),r&&t.invert(r[0],r[1])}),e}function rr(t,n){return F(t)>B&&(t-=Math.round(t/ut)*ut),[t,n]}rr.invert=rr;function $r(t,n,e){return(t%=ut)?n||e?er(si(t),li(n,e)):si(t):n||e?li(n,e):rr}function ci(t){return function(n,e){return n+=t,F(n)>B&&(n-=Math.round(n/ut)*ut),[n,e]}}function si(t){var n=ci(t);return n.invert=ci(-t),n}function li(t,n){var e=b(t),r=P(t),i=b(n),a=P(n);function o(u,s){var l=b(s),c=b(u)*l,f=P(u)*l,h=P(s),p=h*e+c*r;return[ct(f*i-p*a,c*e-h*r),st(p*i+f*a)]}return o.invert=function(u,s){var l=b(s),c=b(u)*l,f=P(u)*l,h=P(s),p=h*i-f*a;return[ct(f*i+h*a,c*e+p*r),st(p*e-c*r)]},o}function ma(t){t=$r(t[0]*R,t[1]*R,t.length>2?t[2]*R:0);function n(e){return e=t(e[0]*R,e[1]*R),e[0]*=Y,e[1]*=Y,e}return n.invert=function(e){return e=t.invert(e[0]*R,e[1]*R),e[0]*=Y,e[1]*=Y,e},n}function va(t,n,e,r,i,a){if(e){var o=b(n),u=P(n),s=r*e;i==null?(i=n+r*ut,a=n-s/2):(i=fi(o,i),a=fi(o,a),(r>0?i<a:i>a)&&(i+=r*ut));for(var l,c=i;r>0?c>a:c<a;c-=s)l=ce([o,-u*b(c),-u*P(c)]),t.point(l[0],l[1])}}function fi(t,n){n=Vt(n),n[0]-=t,se(n);var e=aa(-n[1]);return((-n[2]<0?-e:e)+ut-C)%ut}function Ho(){var t=Zt([0,0]),n=Zt(90),e=Zt(2),r,i,a={point:o};function o(s,l){r.push(s=i(s,l)),s[0]*=Y,s[1]*=Y}function u(){var s=t.apply(this,arguments),l=n.apply(this,arguments)*R,c=e.apply(this,arguments)*R;return r=[],i=$r(-s[0]*R,-s[1]*R,0).invert,va(a,l,c,1),s={type:"Polygon",coordinates:[r]},r=i=null,s}return u.center=function(s){return arguments.length?(t=typeof s=="function"?s:Zt([+s[0],+s[1]]),u):t},u.radius=function(s){return arguments.length?(n=typeof s=="function"?s:Zt(+s),u):n},u.precision=function(s){return arguments.length?(e=typeof s=="function"?s:Zt(+s),u):e},u}function ya(){var t=[],n;return{point:function(e,r,i){n.push([e,r,i])},lineStart:function(){t.push(n=[])},lineEnd:V,rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))},result:function(){var e=t;return t=[],n=null,e}}}function Un(t,n){return F(t[0]-n[0])<C&&F(t[1]-n[1])<C}function Hn(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function Aa(t,n,e,r,i){var a=[],o=[],u,s;if(t.forEach(function(g){if(!((_=g.length-1)<=0)){var _,w=g[0],y=g[_],E;if(Un(w,y)){if(!w[2]&&!y[2]){for(i.lineStart(),u=0;u<_;++u)i.point((w=g[u])[0],w[1]);i.lineEnd();return}y[0]+=2*C}a.push(E=new Hn(w,g,null,!0)),o.push(E.o=new Hn(w,null,E,!1)),a.push(E=new Hn(y,g,null,!1)),o.push(E.o=new Hn(y,null,E,!0))}}),!!a.length){for(o.sort(n),hi(a),hi(o),u=0,s=o.length;u<s;++u)o[u].e=e=!e;for(var l=a[0],c,f;;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;c=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(u=0,s=c.length;u<s;++u)i.point((f=c[u])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(c=h.p.z,u=c.length-1;u>=0;--u)i.point((f=c[u])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,c=h.z,p=!p}while(!h.v);i.lineEnd()}}}function hi(t){if(n=t.length){for(var n,e=0,r=t[0],i;++e<n;)r.n=i=t[e],i.p=r,r=i;r.n=i=t[0],i.p=r}}function Ge(t){return F(t[0])<=B?t[0]:mt(t[0])*((F(t[0])+B)%ut-B)}function wa(t,n){var e=Ge(n),r=n[1],i=P(r),a=[P(e),-b(e),0],o=0,u=0,s=new rt;i===1?r=Z+C:i===-1&&(r=-Z-C);for(var l=0,c=t.length;l<c;++l)if(h=(f=t[l]).length)for(var f,h,p=f[h-1],g=Ge(p),_=p[1]/2+re,w=P(_),y=b(_),E=0;E<h;++E,g=x,w=N,y=T,p=A){var A=f[E],x=Ge(A),S=A[1]/2+re,N=P(S),T=b(S),I=x-g,q=I>=0?1:-1,G=q*I,z=G>B,j=w*N;if(s.add(ct(j*q*P(G),y*T+j*b(G))),o+=z?I+q*ut:I,z^g>=e^x>=e){var O=en(Vt(p),Vt(A));se(O);var m=en(a,O);se(m);var d=(z^I>=0?-1:1)*st(m[2]);(r>d||r===d&&(O[0]||O[1]))&&(u+=z^I>=0?1:-1)}}return(o<-C||o<C&&s<-Sn)^u&1}function _a(t,n,e,r){return function(i){var a=n(i),o=ya(),u=n(o),s=!1,l,c,f,h={point:p,lineStart:_,lineEnd:w,polygonStart:function(){h.point=y,h.lineStart=E,h.lineEnd=A,c=[],l=[]},polygonEnd:function(){h.point=p,h.lineStart=_,h.lineEnd=w,c=ra(c);var x=wa(l,r);c.length?(s||(i.polygonStart(),s=!0),Aa(c,Oo,x,e,i)):x&&(s||(i.polygonStart(),s=!0),i.lineStart(),e(null,null,1,i),i.lineEnd()),s&&(i.polygonEnd(),s=!1),c=l=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}};function p(x,S){t(x,S)&&i.point(x,S)}function g(x,S){a.point(x,S)}function _(){h.point=g,a.lineStart()}function w(){h.point=p,a.lineEnd()}function y(x,S){f.push([x,S]),u.point(x,S)}function E(){u.lineStart(),f=[]}function A(){y(f[0][0],f[0][1]),u.lineEnd();var x=u.clean(),S=o.result(),N,T=S.length,I,q,G;if(f.pop(),l.push(f),f=null,!!T){if(x&1){if(q=S[0],(I=q.length-1)>0){for(s||(i.polygonStart(),s=!0),i.lineStart(),N=0;N<I;++N)i.point((G=q[N])[0],G[1]);i.lineEnd()}return}T>1&&x&2&&S.push(S.pop().concat(S.shift())),c.push(S.filter(Xo))}}return h}}function Xo(t){return t.length>1}function Oo(t,n){return((t=t.x)[0]<0?t[1]-Z-C:Z-t[1])-((n=n.x)[0]<0?n[1]-Z-C:Z-n[1])}const ir=_a(function(){return!0},Yo,Vo,[-B,-Z]);function Yo(t){var n=NaN,e=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(a,o){var u=a>0?B:-B,s=F(a-n);F(s-B)<C?(t.point(n,e=(e+o)/2>0?Z:-Z),t.point(r,e),t.lineEnd(),t.lineStart(),t.point(u,e),t.point(a,e),i=0):r!==u&&s>=B&&(F(n-r)<C&&(n-=r*C),F(a-u)<C&&(a-=u*C),e=Ko(n,e,a,o),t.point(r,e),t.lineEnd(),t.lineStart(),t.point(u,e),i=0),t.point(n=a,e=o),r=u},lineEnd:function(){t.lineEnd(),n=e=NaN},clean:function(){return 2-i}}}function Ko(t,n,e,r){var i,a,o=P(t-e);return F(o)>C?cn((P(n)*(a=b(r))*P(e)-P(r)*(i=b(n))*P(t))/(i*a*o)):(n+r)/2}function Vo(t,n,e,r){var i;if(t==null)i=e*Z,r.point(-B,i),r.point(0,i),r.point(B,i),r.point(B,0),r.point(B,-i),r.point(0,-i),r.point(-B,-i),r.point(-B,0),r.point(-B,i);else if(F(t[0]-n[0])>C){var a=t[0]<n[0]?B:-B;i=e*a/2,r.point(-a,i),r.point(0,i),r.point(a,i)}else r.point(n[0],n[1])}function xa(t){var n=b(t),e=2*R,r=n>0,i=F(n)>C;function a(c,f,h,p){va(p,t,e,h,c,f)}function o(c,f){return b(c)*b(f)>n}function u(c){var f,h,p,g,_;return{lineStart:function(){g=p=!1,_=1},point:function(w,y){var E=[w,y],A,x=o(w,y),S=r?x?0:l(w,y):x?l(w+(w<0?B:-B),y):0;if(!f&&(g=p=x)&&c.lineStart(),x!==p&&(A=s(f,E),(!A||Un(f,A)||Un(E,A))&&(E[2]=1)),x!==p)_=0,x?(c.lineStart(),A=s(E,f),c.point(A[0],A[1])):(A=s(f,E),c.point(A[0],A[1],2),c.lineEnd()),f=A;else if(i&&f&&r^x){var N;!(S&h)&&(N=s(E,f,!0))&&(_=0,r?(c.lineStart(),c.point(N[0][0],N[0][1]),c.point(N[1][0],N[1][1]),c.lineEnd()):(c.point(N[1][0],N[1][1]),c.lineEnd(),c.lineStart(),c.point(N[0][0],N[0][1],3)))}x&&(!f||!Un(f,E))&&c.point(E[0],E[1]),f=E,p=x,h=S},lineEnd:function(){p&&c.lineEnd(),f=null},clean:function(){return _|(g&&p)<<1}}}function s(c,f,h){var p=Vt(c),g=Vt(f),_=[1,0,0],w=en(p,g),y=Fn(w,w),E=w[0],A=y-E*E;if(!A)return!h&&c;var x=n*y/A,S=-n*E/A,N=en(_,w),T=Gn(_,x),I=Gn(w,S);Fe(T,I);var q=N,G=Fn(T,q),z=Fn(q,q),j=G*G-z*(Fn(T,T)-1);if(!(j<0)){var O=nt(j),m=Gn(q,(-G-O)/z);if(Fe(m,T),m=ce(m),!h)return m;var d=c[0],v=f[0],M=c[1],k=f[1],$;v<d&&($=d,d=v,v=$);var L=v-d,D=F(L-B)<C,H=D||L<C;if(!D&&k<M&&($=M,M=k,k=$),H?D?M+k>0^m[1]<(F(m[0]-d)<C?M:k):M<=m[1]&&m[1]<=k:L>B^(d<=m[0]&&m[0]<=v)){var J=Gn(q,(-G+O)/z);return Fe(J,T),[m,ce(J)]}}}function l(c,f){var h=r?t:B-t,p=0;return c<-h?p|=1:c>h&&(p|=2),f<-h?p|=4:f>h&&(p|=8),p}return _a(o,u,a,r?[0,-t]:[-B,t-B])}function Wo(t,n,e,r,i,a){var o=t[0],u=t[1],s=n[0],l=n[1],c=0,f=1,h=s-o,p=l-u,g;if(g=e-o,!(!h&&g>0)){if(g/=h,h<0){if(g<c)return;g<f&&(f=g)}else if(h>0){if(g>f)return;g>c&&(c=g)}if(g=i-o,!(!h&&g<0)){if(g/=h,h<0){if(g>f)return;g>c&&(c=g)}else if(h>0){if(g<c)return;g<f&&(f=g)}if(g=r-u,!(!p&&g>0)){if(g/=p,p<0){if(g<c)return;g<f&&(f=g)}else if(p>0){if(g>f)return;g>c&&(c=g)}if(g=a-u,!(!p&&g<0)){if(g/=p,p<0){if(g>f)return;g>c&&(c=g)}else if(p>0){if(g<c)return;g<f&&(f=g)}return c>0&&(t[0]=o+c*h,t[1]=u+c*p),f<1&&(n[0]=o+f*h,n[1]=u+f*p),!0}}}}}var hn=1e9,Xn=-hn;function ze(t,n,e,r){function i(l,c){return t<=l&&l<=e&&n<=c&&c<=r}function a(l,c,f,h){var p=0,g=0;if(l==null||(p=o(l,f))!==(g=o(c,f))||s(l,c)<0^f>0)do h.point(p===0||p===3?t:e,p>1?r:n);while((p=(p+f+4)%4)!==g);else h.point(c[0],c[1])}function o(l,c){return F(l[0]-t)<C?c>0?0:3:F(l[0]-e)<C?c>0?2:1:F(l[1]-n)<C?c>0?1:0:c>0?3:2}function u(l,c){return s(l.x,c.x)}function s(l,c){var f=o(l,1),h=o(c,1);return f!==h?f-h:f===0?c[1]-l[1]:f===1?l[0]-c[0]:f===2?l[1]-c[1]:c[0]-l[0]}return function(l){var c=l,f=ya(),h,p,g,_,w,y,E,A,x,S,N,T={point:I,lineStart:j,lineEnd:O,polygonStart:G,polygonEnd:z};function I(d,v){i(d,v)&&c.point(d,v)}function q(){for(var d=0,v=0,M=p.length;v<M;++v)for(var k=p[v],$=1,L=k.length,D=k[0],H,J,W=D[0],tt=D[1];$<L;++$)H=W,J=tt,D=k[$],W=D[0],tt=D[1],J<=r?tt>r&&(W-H)*(r-J)>(tt-J)*(t-H)&&++d:tt<=r&&(W-H)*(r-J)<(tt-J)*(t-H)&&--d;return d}function G(){c=f,h=[],p=[],N=!0}function z(){var d=q(),v=N&&d,M=(h=ra(h)).length;(v||M)&&(l.polygonStart(),v&&(l.lineStart(),a(null,null,1,l),l.lineEnd()),M&&Aa(h,u,d,a,l),l.polygonEnd()),c=l,h=p=g=null}function j(){T.point=m,p&&p.push(g=[]),S=!0,x=!1,E=A=NaN}function O(){h&&(m(_,w),y&&x&&f.rejoin(),h.push(f.result())),T.point=I,x&&c.lineEnd()}function m(d,v){var M=i(d,v);if(p&&g.push([d,v]),S)_=d,w=v,y=M,S=!1,M&&(c.lineStart(),c.point(d,v));else if(M&&x)c.point(d,v);else{var k=[E=Math.max(Xn,Math.min(hn,E)),A=Math.max(Xn,Math.min(hn,A))],$=[d=Math.max(Xn,Math.min(hn,d)),v=Math.max(Xn,Math.min(hn,v))];Wo(k,$,t,n,e,r)?(x||(c.lineStart(),c.point(k[0],k[1])),c.point($[0],$[1]),M||c.lineEnd(),N=!1):M&&(c.lineStart(),c.point(d,v),N=!1)}E=d,A=v,x=M}return T}}function Uo(){var t=0,n=0,e=960,r=500,i,a,o;return o={stream:function(u){return i&&a===u?i:i=ze(t,n,e,r)(a=u)},extent:function(u){return arguments.length?(t=+u[0][0],n=+u[0][1],e=+u[1][0],r=+u[1][1],i=a=null,o):[[t,n],[e,r]]}}}var ar,or,Zn,jn,rn={sphere:V,point:V,lineStart:Zo,lineEnd:V,polygonStart:V,polygonEnd:V};function Zo(){rn.point=Jo,rn.lineEnd=jo}function jo(){rn.point=rn.lineEnd=V}function Jo(t,n){t*=R,n*=R,or=t,Zn=P(n),jn=b(n),rn.point=Qo}function Qo(t,n){t*=R,n*=R;var e=P(n),r=b(n),i=F(t-or),a=b(i),o=P(i),u=r*o,s=jn*e-Zn*r*a,l=Zn*e+jn*r*a;ar.add(ct(nt(u*u+s*s),l)),or=t,Zn=e,jn=r}function Ea(t){return ar=new rt,yt(t,rn),+ar}var ur=[null,null],tu={type:"LineString",coordinates:ur};function ve(t,n){return ur[0]=t,ur[1]=n,Ea(tu)}var pi={Feature:function(t,n){return ye(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(ye(e[r].geometry,n))return!0;return!1}},gi={Sphere:function(){return!0},Point:function(t,n){return di(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(di(e[r],n))return!0;return!1},LineString:function(t,n){return mi(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(mi(e[r],n))return!0;return!1},Polygon:function(t,n){return vi(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(vi(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(ye(e[r],n))return!0;return!1}};function ye(t,n){return t&&gi.hasOwnProperty(t.type)?gi[t.type](t,n):!1}function di(t,n){return ve(t,n)===0}function mi(t,n){for(var e,r,i,a=0,o=t.length;a<o;a++){if(r=ve(t[a],n),r===0||a>0&&(i=ve(t[a],t[a-1]),i>0&&e<=i&&r<=i&&(e+r-i)*(1-Math.pow((e-r)/i,2))<Sn*i))return!0;e=r}return!1}function vi(t,n){return!!wa(t.map(nu),Sa(n))}function nu(t){return t=t.map(Sa),t.pop(),t}function Sa(t){return[t[0]*R,t[1]*R]}function eu(t,n){return(t&&pi.hasOwnProperty(t.type)?pi[t.type]:ye)(t,n)}function yi(t,n,e){var r=jt(t,n-C,e).concat(n);return function(i){return r.map(function(a){return[i,a]})}}function Ai(t,n,e){var r=jt(t,n-C,e).concat(n);return function(i){return r.map(function(a){return[a,i]})}}function br(){var t,n,e,r,i,a,o,u,s=10,l=s,c=90,f=360,h,p,g,_,w=2.5;function y(){return{type:"MultiLineString",coordinates:E()}}function E(){return jt(Bn(r/c)*c,e,c).map(g).concat(jt(Bn(u/f)*f,o,f).map(_)).concat(jt(Bn(n/s)*s,t,s).filter(function(A){return F(A%c)>C}).map(h)).concat(jt(Bn(a/l)*l,i,l).filter(function(A){return F(A%f)>C}).map(p))}return y.lines=function(){return E().map(function(A){return{type:"LineString",coordinates:A}})},y.outline=function(){return{type:"Polygon",coordinates:[g(r).concat(_(o).slice(1),g(e).reverse().slice(1),_(u).reverse().slice(1))]}},y.extent=function(A){return arguments.length?y.extentMajor(A).extentMinor(A):y.extentMinor()},y.extentMajor=function(A){return arguments.length?(r=+A[0][0],e=+A[1][0],u=+A[0][1],o=+A[1][1],r>e&&(A=r,r=e,e=A),u>o&&(A=u,u=o,o=A),y.precision(w)):[[r,u],[e,o]]},y.extentMinor=function(A){return arguments.length?(n=+A[0][0],t=+A[1][0],a=+A[0][1],i=+A[1][1],n>t&&(A=n,n=t,t=A),a>i&&(A=a,a=i,i=A),y.precision(w)):[[n,a],[t,i]]},y.step=function(A){return arguments.length?y.stepMajor(A).stepMinor(A):y.stepMinor()},y.stepMajor=function(A){return arguments.length?(c=+A[0],f=+A[1],y):[c,f]},y.stepMinor=function(A){return arguments.length?(s=+A[0],l=+A[1],y):[s,l]},y.precision=function(A){return arguments.length?(w=+A,h=yi(a,i,90),p=Ai(n,t,w),g=yi(u,o,90),_=Ai(r,e,w),y):w},y.extentMajor([[-180,-90+C],[180,90-C]]).extentMinor([[-180,-80-C],[180,80+C]])}function ru(){return br()()}function iu(t,n){var e=t[0]*R,r=t[1]*R,i=n[0]*R,a=n[1]*R,o=b(r),u=P(r),s=b(a),l=P(a),c=o*b(e),f=o*P(e),h=s*b(i),p=s*P(i),g=2*st(nt(Qr(a-r)+o*s*Qr(i-e))),_=P(g),w=g?function(y){var E=P(y*=g)/_,A=P(g-y)/_,x=A*c+E*h,S=A*f+E*p,N=A*u+E*l;return[ct(S,x)*Y,ct(N,nt(x*x+S*S))*Y]}:function(){return[e*Y,r*Y]};return w.distance=g,w}const Mn=t=>t;var He=new rt,cr=new rt,Ma,ka,sr,lr,Rt={point:V,lineStart:V,lineEnd:V,polygonStart:function(){Rt.lineStart=au,Rt.lineEnd=uu},polygonEnd:function(){Rt.lineStart=Rt.lineEnd=Rt.point=V,He.add(F(cr)),cr=new rt},result:function(){var t=He/2;return He=new rt,t}};function au(){Rt.point=ou}function ou(t,n){Rt.point=Na,Ma=sr=t,ka=lr=n}function Na(t,n){cr.add(lr*t-sr*n),sr=t,lr=n}function uu(){Na(Ma,ka)}var an=1/0,Ae=an,kn=-an,we=kn,_e={point:cu,lineStart:V,lineEnd:V,polygonStart:V,polygonEnd:V,result:function(){var t=[[an,Ae],[kn,we]];return kn=we=-(Ae=an=1/0),t}};function cu(t,n){t<an&&(an=t),t>kn&&(kn=t),n<Ae&&(Ae=n),n>we&&(we=n)}var fr=0,hr=0,pn=0,xe=0,Ee=0,Jt=0,pr=0,gr=0,gn=0,Pa,$a,xt,Et,dt={point:Wt,lineStart:wi,lineEnd:_i,polygonStart:function(){dt.lineStart=fu,dt.lineEnd=hu},polygonEnd:function(){dt.point=Wt,dt.lineStart=wi,dt.lineEnd=_i},result:function(){var t=gn?[pr/gn,gr/gn]:Jt?[xe/Jt,Ee/Jt]:pn?[fr/pn,hr/pn]:[NaN,NaN];return fr=hr=pn=xe=Ee=Jt=pr=gr=gn=0,t}};function Wt(t,n){fr+=t,hr+=n,++pn}function wi(){dt.point=su}function su(t,n){dt.point=lu,Wt(xt=t,Et=n)}function lu(t,n){var e=t-xt,r=n-Et,i=nt(e*e+r*r);xe+=i*(xt+t)/2,Ee+=i*(Et+n)/2,Jt+=i,Wt(xt=t,Et=n)}function _i(){dt.point=Wt}function fu(){dt.point=pu}function hu(){ba(Pa,$a)}function pu(t,n){dt.point=ba,Wt(Pa=xt=t,$a=Et=n)}function ba(t,n){var e=t-xt,r=n-Et,i=nt(e*e+r*r);xe+=i*(xt+t)/2,Ee+=i*(Et+n)/2,Jt+=i,i=Et*t-xt*n,pr+=i*(xt+t),gr+=i*(Et+n),gn+=i*3,Wt(xt=t,Et=n)}function Ca(t){this._context=t}Ca.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){this._line===0&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:{this._context.moveTo(t,n),this._point=1;break}case 1:{this._context.lineTo(t,n);break}default:{this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,ut);break}}},result:V};var dr=new rt,Xe,Ra,za,dn,mn,Nn={point:V,lineStart:function(){Nn.point=gu},lineEnd:function(){Xe&&Ta(Ra,za),Nn.point=V},polygonStart:function(){Xe=!0},polygonEnd:function(){Xe=null},result:function(){var t=+dr;return dr=new rt,t}};function gu(t,n){Nn.point=Ta,Ra=dn=t,za=mn=n}function Ta(t,n){dn-=t,mn-=n,dr.add(nt(dn*dn+mn*mn)),dn=t,mn=n}let xi,Se,Ei,Si;class Mi{constructor(n){this._append=n==null?La:du(n),this._radius=4.5,this._=""}pointRadius(n){return this._radius=+n,this}polygonStart(){this._line=0}polygonEnd(){this._line=NaN}lineStart(){this._point=0}lineEnd(){this._line===0&&(this._+="Z"),this._point=NaN}point(n,e){switch(this._point){case 0:{this._append`M${n},${e}`,this._point=1;break}case 1:{this._append`L${n},${e}`;break}default:{if(this._append`M${n},${e}`,this._radius!==Ei||this._append!==Se){const r=this._radius,i=this._;this._="",this._append`m0,${r}a${r},${r} 0 1,1 0,${-2*r}a${r},${r} 0 1,1 0,${2*r}z`,Ei=r,Se=this._append,Si=this._,this._=i}this._+=Si;break}}}result(){const n=this._;return this._="",n.length?n:null}}function La(t){let n=1;this._+=t[0];for(const e=t.length;n<e;++n)this._+=arguments[n]+t[n]}function du(t){const n=Math.floor(t);if(!(n>=0))throw new RangeError(`invalid digits: ${t}`);if(n>15)return La;if(n!==xi){const e=10**n;xi=n,Se=function(i){let a=1;this._+=i[0];for(const o=i.length;a<o;++a)this._+=Math.round(arguments[a]*e)/e+i[a]}}return Se}function mu(t,n){let e=3,r=4.5,i,a;function o(u){return u&&(typeof r=="function"&&a.pointRadius(+r.apply(this,arguments)),yt(u,i(a))),a.result()}return o.area=function(u){return yt(u,i(Rt)),Rt.result()},o.measure=function(u){return yt(u,i(Nn)),Nn.result()},o.bounds=function(u){return yt(u,i(_e)),_e.result()},o.centroid=function(u){return yt(u,i(dt)),dt.result()},o.projection=function(u){return arguments.length?(i=u==null?(t=null,Mn):(t=u).stream,o):t},o.context=function(u){return arguments.length?(a=u==null?(n=null,new Mi(e)):new Ca(n=u),typeof r!="function"&&a.pointRadius(r),o):n},o.pointRadius=function(u){return arguments.length?(r=typeof u=="function"?u:(a.pointRadius(+u),+u),o):r},o.digits=function(u){if(!arguments.length)return e;if(u==null)e=null;else{const s=Math.floor(u);if(!(s>=0))throw new RangeError(`invalid digits: ${u}`);e=s}return n===null&&(a=new Mi(e)),o},o.projection(t).digits(e).context(n)}function vu(t){return{stream:Tn(t)}}function Tn(t){return function(n){var e=new mr;for(var r in t)e[r]=t[r];return e.stream=n,e}}function mr(){}mr.prototype={constructor:mr,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function Cr(t,n,e){var r=t.clipExtent&&t.clipExtent();return t.scale(150).translate([0,0]),r!=null&&t.clipExtent(null),yt(e,t.stream(_e)),n(_e.result()),r!=null&&t.clipExtent(r),t}function Te(t,n,e){return Cr(t,function(r){var i=n[1][0]-n[0][0],a=n[1][1]-n[0][1],o=Math.min(i/(r[1][0]-r[0][0]),a/(r[1][1]-r[0][1])),u=+n[0][0]+(i-o*(r[1][0]+r[0][0]))/2,s=+n[0][1]+(a-o*(r[1][1]+r[0][1]))/2;t.scale(150*o).translate([u,s])},e)}function Rr(t,n,e){return Te(t,[[0,0],n],e)}function zr(t,n,e){return Cr(t,function(r){var i=+n,a=i/(r[1][0]-r[0][0]),o=(i-a*(r[1][0]+r[0][0]))/2,u=-a*r[0][1];t.scale(150*a).translate([o,u])},e)}function Tr(t,n,e){return Cr(t,function(r){var i=+n,a=i/(r[1][1]-r[0][1]),o=-a*r[0][0],u=(i-a*(r[1][1]+r[0][1]))/2;t.scale(150*a).translate([o,u])},e)}var ki=16,yu=b(30*R);function Ni(t,n){return+n?wu(t,n):Au(t)}function Au(t){return Tn({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function wu(t,n){function e(r,i,a,o,u,s,l,c,f,h,p,g,_,w){var y=l-r,E=c-i,A=y*y+E*E;if(A>4*n&&_--){var x=o+h,S=u+p,N=s+g,T=nt(x*x+S*S+N*N),I=st(N/=T),q=F(F(N)-1)<C||F(a-f)<C?(a+f)/2:ct(S,x),G=t(q,I),z=G[0],j=G[1],O=z-r,m=j-i,d=E*O-y*m;(d*d/A>n||F((y*O+E*m)/A-.5)>.3||o*h+u*p+s*g<yu)&&(e(r,i,a,o,u,s,z,j,q,x/=T,S/=T,N,_,w),w.point(z,j),e(z,j,q,x,S,N,l,c,f,h,p,g,_,w))}}return function(r){var i,a,o,u,s,l,c,f,h,p,g,_,w={point:y,lineStart:E,lineEnd:x,polygonStart:function(){r.polygonStart(),w.lineStart=S},polygonEnd:function(){r.polygonEnd(),w.lineStart=E}};function y(I,q){I=t(I,q),r.point(I[0],I[1])}function E(){f=NaN,w.point=A,r.lineStart()}function A(I,q){var G=Vt([I,q]),z=t(I,q);e(f,h,c,p,g,_,f=z[0],h=z[1],c=I,p=G[0],g=G[1],_=G[2],ki,r),r.point(f,h)}function x(){w.point=y,r.lineEnd()}function S(){E(),w.point=N,w.lineEnd=T}function N(I,q){A(i=I,q),a=f,o=h,u=p,s=g,l=_,w.point=A}function T(){e(f,h,c,p,g,_,a,o,i,u,s,l,ki,r),w.lineEnd=x,x()}return w}}var _u=Tn({point:function(t,n){this.stream.point(t*R,n*R)}});function xu(t){return Tn({point:function(n,e){var r=t(n,e);return this.stream.point(r[0],r[1])}})}function Eu(t,n,e,r,i){function a(o,u){return o*=r,u*=i,[n+t*o,e-t*u]}return a.invert=function(o,u){return[(o-n)/t*r,(e-u)/t*i]},a}function Pi(t,n,e,r,i,a){if(!a)return Eu(t,n,e,r,i);var o=b(a),u=P(a),s=o*t,l=u*t,c=o/t,f=u/t,h=(u*e-o*n)/t,p=(u*n+o*e)/t;function g(_,w){return _*=r,w*=i,[s*_-l*w+n,e-l*_-s*w]}return g.invert=function(_,w){return[r*(c*_-f*w+h),i*(p-f*_-c*w)]},g}function kt(t){return Lr(function(){return t})()}function Lr(t){var n,e=150,r=480,i=250,a=0,o=0,u=0,s=0,l=0,c,f=0,h=1,p=1,g=null,_=ir,w=null,y,E,A,x=Mn,S=.5,N,T,I,q,G;function z(d){return I(d[0]*R,d[1]*R)}function j(d){return d=I.invert(d[0],d[1]),d&&[d[0]*Y,d[1]*Y]}z.stream=function(d){return q&&G===d?q:q=_u(xu(c)(_(N(x(G=d)))))},z.preclip=function(d){return arguments.length?(_=d,g=void 0,m()):_},z.postclip=function(d){return arguments.length?(x=d,w=y=E=A=null,m()):x},z.clipAngle=function(d){return arguments.length?(_=+d?xa(g=d*R):(g=null,ir),m()):g*Y},z.clipExtent=function(d){return arguments.length?(x=d==null?(w=y=E=A=null,Mn):ze(w=+d[0][0],y=+d[0][1],E=+d[1][0],A=+d[1][1]),m()):w==null?null:[[w,y],[E,A]]},z.scale=function(d){return arguments.length?(e=+d,O()):e},z.translate=function(d){return arguments.length?(r=+d[0],i=+d[1],O()):[r,i]},z.center=function(d){return arguments.length?(a=d[0]%360*R,o=d[1]%360*R,O()):[a*Y,o*Y]},z.rotate=function(d){return arguments.length?(u=d[0]%360*R,s=d[1]%360*R,l=d.length>2?d[2]%360*R:0,O()):[u*Y,s*Y,l*Y]},z.angle=function(d){return arguments.length?(f=d%360*R,O()):f*Y},z.reflectX=function(d){return arguments.length?(h=d?-1:1,O()):h<0},z.reflectY=function(d){return arguments.length?(p=d?-1:1,O()):p<0},z.precision=function(d){return arguments.length?(N=Ni(T,S=d*d),m()):nt(S)},z.fitExtent=function(d,v){return Te(z,d,v)},z.fitSize=function(d,v){return Rr(z,d,v)},z.fitWidth=function(d,v){return zr(z,d,v)},z.fitHeight=function(d,v){return Tr(z,d,v)};function O(){var d=Pi(e,0,0,h,p,f).apply(null,n(a,o)),v=Pi(e,r-d[0],i-d[1],h,p,f);return c=$r(u,s,l),T=er(n,v),I=er(c,T),N=Ni(T,S),m()}function m(){return q=G=null,z}return function(){return n=t.apply(this,arguments),z.invert=n.invert&&j,O()}}function Ir(t){var n=0,e=B/3,r=Lr(t),i=r(n,e);return i.parallels=function(a){return arguments.length?r(n=a[0]*R,e=a[1]*R):[n*Y,e*Y]},i}function Su(t){var n=b(t);function e(r,i){return[r*n,P(i)/n]}return e.invert=function(r,i){return[r/n,st(i*n)]},e}function Ia(t,n){var e=P(t),r=(e+P(n))/2;if(F(r)<C)return Su(t);var i=1+e*(2*r-e),a=nt(i)/r;function o(u,s){var l=nt(i-2*r*P(s))/r;return[l*P(u*=r),a-l*b(u)]}return o.invert=function(u,s){var l=a-s,c=ct(u,F(l))*mt(l);return l*r<0&&(c-=B*mt(u)*mt(l)),[c/r,st((i-(u*u+l*l)*r*r)/(2*r))]},o}function Me(){return Ir(Ia).scale(155.424).center([0,33.6442])}function qa(){return Me().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])}function Mu(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function ku(){var t,n,e=qa(),r,i=Me().rotate([154,0]).center([-2,58.5]).parallels([55,65]),a,o=Me().rotate([157,0]).center([-3,19.9]).parallels([8,18]),u,s,l={point:function(h,p){s=[h,p]}};function c(h){var p=h[0],g=h[1];return s=null,r.point(p,g),s||(a.point(p,g),s)||(u.point(p,g),s)}c.invert=function(h){var p=e.scale(),g=e.translate(),_=(h[0]-g[0])/p,w=(h[1]-g[1])/p;return(w>=.12&&w<.234&&_>=-.425&&_<-.214?i:w>=.166&&w<.234&&_>=-.214&&_<-.115?o:e).invert(h)},c.stream=function(h){return t&&n===h?t:t=Mu([e.stream(n=h),i.stream(h),o.stream(h)])},c.precision=function(h){return arguments.length?(e.precision(h),i.precision(h),o.precision(h),f()):e.precision()},c.scale=function(h){return arguments.length?(e.scale(h),i.scale(h*.35),o.scale(h),c.translate(e.translate())):e.scale()},c.translate=function(h){if(!arguments.length)return e.translate();var p=e.scale(),g=+h[0],_=+h[1];return r=e.translate(h).clipExtent([[g-.455*p,_-.238*p],[g+.455*p,_+.238*p]]).stream(l),a=i.translate([g-.307*p,_+.201*p]).clipExtent([[g-.425*p+C,_+.12*p+C],[g-.214*p-C,_+.234*p-C]]).stream(l),u=o.translate([g-.205*p,_+.212*p]).clipExtent([[g-.214*p+C,_+.166*p+C],[g-.115*p-C,_+.234*p-C]]).stream(l),f()},c.fitExtent=function(h,p){return Te(c,h,p)},c.fitSize=function(h,p){return Rr(c,h,p)},c.fitWidth=function(h,p){return zr(c,h,p)},c.fitHeight=function(h,p){return Tr(c,h,p)};function f(){return t=n=null,c}return c.scale(1070)}function Da(t){return function(n,e){var r=b(n),i=b(e),a=t(r*i);return a===1/0?[2,0]:[a*i*P(n),a*P(e)]}}function Ln(t){return function(n,e){var r=nt(n*n+e*e),i=t(r),a=P(i),o=b(i);return[ct(n*a,r*o),st(r&&e*a/r)]}}var qr=Da(function(t){return nt(2/(1+t))});qr.invert=Ln(function(t){return 2*st(t/2)});function Nu(){return kt(qr).scale(124.75).clipAngle(180-.001)}var Dr=Da(function(t){return(t=aa(t))&&t/P(t)});Dr.invert=Ln(function(t){return t});function Pu(){return kt(Dr).scale(79.4188).clipAngle(180-.001)}function In(t,n){return[t,ie(Nr((Z+n)/2))]}In.invert=function(t,n){return[t,2*cn(ia(n))-Z]};function $u(){return Ba(In).scale(961/ut)}function Ba(t){var n=kt(t),e=n.center,r=n.scale,i=n.translate,a=n.clipExtent,o=null,u,s,l;n.scale=function(f){return arguments.length?(r(f),c()):r()},n.translate=function(f){return arguments.length?(i(f),c()):i()},n.center=function(f){return arguments.length?(e(f),c()):e()},n.clipExtent=function(f){return arguments.length?(f==null?o=u=s=l=null:(o=+f[0][0],u=+f[0][1],s=+f[1][0],l=+f[1][1]),c()):o==null?null:[[o,u],[s,l]]};function c(){var f=B*r(),h=n(ma(n.rotate()).invert([0,0]));return a(o==null?[[h[0]-f,h[1]-f],[h[0]+f,h[1]+f]]:t===In?[[Math.max(h[0]-f,o),u],[Math.min(h[0]+f,s),l]]:[[o,Math.max(h[1]-f,u)],[s,Math.min(h[1]+f,l)]])}return c()}function On(t){return Nr((Z+t)/2)}function Fa(t,n){var e=b(t),r=t===n?P(t):ie(e/b(n))/ie(On(n)/On(t)),i=e*Be(On(t),r)/r;if(!r)return In;function a(o,u){i>0?u<-Z+C&&(u=-Z+C):u>Z-C&&(u=Z-C);var s=i/Be(On(u),r);return[s*P(r*o),i-s*b(r*o)]}return a.invert=function(o,u){var s=i-u,l=mt(r)*nt(o*o+s*s),c=ct(o,F(s))*mt(s);return s*r<0&&(c-=B*mt(o)*mt(s)),[c/r,2*cn(Be(i/l,1/r))-Z]},a}function bu(){return Ir(Fa).scale(109.5).parallels([30,30])}function Pn(t,n){return[t,n]}Pn.invert=Pn;function Cu(){return kt(Pn).scale(152.63)}function Ga(t,n){var e=b(t),r=t===n?P(t):(e-b(n))/(n-t),i=e/r+t;if(F(r)<C)return Pn;function a(o,u){var s=i-u,l=r*o;return[s*P(l),i-s*b(l)]}return a.invert=function(o,u){var s=i-u,l=ct(o,F(s))*mt(s);return s*r<0&&(l-=B*mt(o)*mt(s)),[l/r,i-mt(r)*nt(o*o+s*s)]},a}function Ru(){return Ir(Ga).scale(131.154).center([0,13.9389])}var wn=1.340264,_n=-.081106,xn=893e-6,En=.003796,ke=nt(3)/2,zu=12;function Br(t,n){var e=st(ke*P(n)),r=e*e,i=r*r*r;return[t*b(e)/(ke*(wn+3*_n*r+i*(7*xn+9*En*r))),e*(wn+_n*r+i*(xn+En*r))]}Br.invert=function(t,n){for(var e=n,r=e*e,i=r*r*r,a=0,o,u,s;a<zu&&(u=e*(wn+_n*r+i*(xn+En*r))-n,s=wn+3*_n*r+i*(7*xn+9*En*r),e-=o=u/s,r=e*e,i=r*r*r,!(F(o)<Sn));++a);return[ke*t*(wn+3*_n*r+i*(7*xn+9*En*r))/b(e),st(P(e)/ke)]};function Tu(){return kt(Br).scale(177.158)}function Fr(t,n){var e=b(n),r=b(t)*e;return[e*P(t)/r,P(n)/r]}Fr.invert=Ln(cn);function Lu(){return kt(Fr).scale(144.049).clipAngle(60)}function Iu(){var t=1,n=0,e=0,r=1,i=1,a=0,o,u,s=null,l,c,f,h=1,p=1,g=Tn({point:function(x,S){var N=A([x,S]);this.stream.point(N[0],N[1])}}),_=Mn,w,y;function E(){return h=t*r,p=t*i,w=y=null,A}function A(x){var S=x[0]*h,N=x[1]*p;if(a){var T=N*o-S*u;S=S*o+N*u,N=T}return[S+n,N+e]}return A.invert=function(x){var S=x[0]-n,N=x[1]-e;if(a){var T=N*o+S*u;S=S*o-N*u,N=T}return[S/h,N/p]},A.stream=function(x){return w&&y===x?w:w=g(_(y=x))},A.postclip=function(x){return arguments.length?(_=x,s=l=c=f=null,E()):_},A.clipExtent=function(x){return arguments.length?(_=x==null?(s=l=c=f=null,Mn):ze(s=+x[0][0],l=+x[0][1],c=+x[1][0],f=+x[1][1]),E()):s==null?null:[[s,l],[c,f]]},A.scale=function(x){return arguments.length?(t=+x,E()):t},A.translate=function(x){return arguments.length?(n=+x[0],e=+x[1],E()):[n,e]},A.angle=function(x){return arguments.length?(a=x%360*R,u=P(a),o=b(a),E()):a*Y},A.reflectX=function(x){return arguments.length?(r=x?-1:1,E()):r<0},A.reflectY=function(x){return arguments.length?(i=x?-1:1,E()):i<0},A.fitExtent=function(x,S){return Te(A,x,S)},A.fitSize=function(x,S){return Rr(A,x,S)},A.fitWidth=function(x,S){return zr(A,x,S)},A.fitHeight=function(x,S){return Tr(A,x,S)},A}function Gr(t,n){var e=n*n,r=e*e;return[t*(.8707-.131979*e+r*(-.013791+r*(.003971*e-.001529*r))),n*(1.007226+e*(.015085+r*(-.044475+.028874*e-.005916*r)))]}Gr.invert=function(t,n){var e=n,r=25,i;do{var a=e*e,o=a*a;e-=i=(e*(1.007226+a*(.015085+o*(-.044475+.028874*a-.005916*o)))-n)/(1.007226+a*(.015085*3+o*(-.044475*7+.028874*9*a-.005916*11*o)))}while(F(i)>C&&--r>0);return[t/(.8707+(a=e*e)*(-.131979+a*(-.013791+a*a*a*(.003971-.001529*a)))),e]};function qu(){return kt(Gr).scale(175.295)}function Hr(t,n){return[b(n)*P(t),P(n)]}Hr.invert=Ln(st);function Du(){return kt(Hr).scale(249.5).clipAngle(90+C)}function Xr(t,n){var e=b(n),r=1+b(t)*e;return[e*P(t)/r,P(n)/r]}Xr.invert=Ln(function(t){return 2*cn(t)});function Bu(){return kt(Xr).scale(250).clipAngle(142)}function Or(t,n){return[ie(Nr((Z+n)/2)),-t]}Or.invert=function(t,n){return[-n,2*cn(ia(t))-Z]};function Fu(){var t=Ba(Or),n=t.center,e=t.rotate;return t.center=function(r){return arguments.length?n([-r[1],r[0]]):(r=n(),[r[1],-r[0]])},t.rotate=function(r){return arguments.length?e([r[0],r[1],r.length>2?r[2]+90:90]):(r=e(),[r[0],r[1],r[2]-90])},e([0,0,90]).scale(159.155)}const Gu=Object.freeze(Object.defineProperty({__proto__:null,geoAlbers:qa,geoAlbersUsa:ku,geoArea:Co,geoAzimuthalEqualArea:Nu,geoAzimuthalEqualAreaRaw:qr,geoAzimuthalEquidistant:Pu,geoAzimuthalEquidistantRaw:Dr,geoBounds:Lo,geoCentroid:Go,geoCircle:Ho,geoClipAntimeridian:ir,geoClipCircle:xa,geoClipExtent:Uo,geoClipRectangle:ze,geoConicConformal:bu,geoConicConformalRaw:Fa,geoConicEqualArea:Me,geoConicEqualAreaRaw:Ia,geoConicEquidistant:Ru,geoConicEquidistantRaw:Ga,geoContains:eu,geoDistance:ve,geoEqualEarth:Tu,geoEqualEarthRaw:Br,geoEquirectangular:Cu,geoEquirectangularRaw:Pn,geoGnomonic:Lu,geoGnomonicRaw:Fr,geoGraticule:br,geoGraticule10:ru,geoIdentity:Iu,geoInterpolate:iu,geoLength:Ea,geoMercator:$u,geoMercatorRaw:In,geoNaturalEarth1:qu,geoNaturalEarth1Raw:Gr,geoOrthographic:Du,geoOrthographicRaw:Hr,geoPath:mu,geoProjection:kt,geoProjectionMutator:Lr,geoRotation:ma,geoStereographic:Bu,geoStereographicRaw:Xr,geoStream:yt,geoTransform:vu,geoTransverseMercator:Fu,geoTransverseMercatorRaw:Or},Symbol.toStringTag,{value:"Module"}));function Hu(t){return t}function Xu(t){if(t==null)return Hu;var n,e,r=t.scale[0],i=t.scale[1],a=t.translate[0],o=t.translate[1];return function(u,s){s||(n=e=0);var l=2,c=u.length,f=new Array(c);for(f[0]=(n+=u[0])*r+a,f[1]=(e+=u[1])*i+o;l<c;)f[l]=u[l],++l;return f}}function Ou(t,n){for(var e,r=t.length,i=r-n;i<--r;)e=t[i],t[i++]=t[r],t[r]=e}function Yu(t,n){return typeof n=="string"&&(n=t.objects[n]),n.type==="GeometryCollection"?{type:"FeatureCollection",features:n.geometries.map(function(e){return $i(t,e)})}:$i(t,n)}function $i(t,n){var e=n.id,r=n.bbox,i=n.properties==null?{}:n.properties,a=Ha(t,n);return e==null&&r==null?{type:"Feature",properties:i,geometry:a}:r==null?{type:"Feature",id:e,properties:i,geometry:a}:{type:"Feature",id:e,bbox:r,properties:i,geometry:a}}function Ha(t,n){var e=Xu(t.transform),r=t.arcs;function i(c,f){f.length&&f.pop();for(var h=r[c<0?~c:c],p=0,g=h.length;p<g;++p)f.push(e(h[p],p));c<0&&Ou(f,g)}function a(c){return e(c)}function o(c){for(var f=[],h=0,p=c.length;h<p;++h)i(c[h],f);return f.length<2&&f.push(f[0]),f}function u(c){for(var f=o(c);f.length<4;)f.push(f[0]);return f}function s(c){return c.map(u)}function l(c){var f=c.type,h;switch(f){case"GeometryCollection":return{type:f,geometries:c.geometries.map(l)};case"Point":h=a(c.coordinates);break;case"MultiPoint":h=c.coordinates.map(a);break;case"LineString":h=o(c.arcs);break;case"MultiLineString":h=c.arcs.map(o);break;case"Polygon":h=s(c.arcs);break;case"MultiPolygon":h=c.arcs.map(s);break;default:return null}return{type:f,coordinates:h}}return l(n)}function Ku(t,n){var e={},r={},i={},a=[],o=-1;n.forEach(function(l,c){var f=t.arcs[l<0?~l:l],h;f.length<3&&!f[1][0]&&!f[1][1]&&(h=n[++o],n[o]=l,n[c]=h)}),n.forEach(function(l){var c=u(l),f=c[0],h=c[1],p,g;if(p=i[f])if(delete i[p.end],p.push(l),p.end=h,g=r[h]){delete r[g.start];var _=g===p?p:p.concat(g);r[_.start=p.start]=i[_.end=g.end]=_}else r[p.start]=i[p.end]=p;else if(p=r[h])if(delete r[p.start],p.unshift(l),p.start=f,g=i[f]){delete i[g.end];var w=g===p?p:g.concat(p);r[w.start=g.start]=i[w.end=p.end]=w}else r[p.start]=i[p.end]=p;else p=[l],r[p.start=f]=i[p.end=h]=p});function u(l){var c=t.arcs[l<0?~l:l],f=c[0],h;return t.transform?(h=[0,0],c.forEach(function(p){h[0]+=p[0],h[1]+=p[1]})):h=c[c.length-1],l<0?[h,f]:[f,h]}function s(l,c){for(var f in l){var h=l[f];delete c[h.start],delete h.start,delete h.end,h.forEach(function(p){e[p<0?~p:p]=1}),a.push(h)}}return s(i,r),s(r,i),n.forEach(function(l){e[l<0?~l:l]||a.push([l])}),a}function bi(t){return Ha(t,Vu.apply(this,arguments))}function Vu(t,n,e){var r,i,a;if(arguments.length>1)r=Wu(t,n,e);else for(i=0,r=new Array(a=t.arcs.length);i<a;++i)r[i]=i;return{type:"MultiLineString",arcs:Ku(t,r)}}function Wu(t,n,e){var r=[],i=[],a;function o(f){var h=f<0?~f:f;(i[h]||(i[h]=[])).push({i:f,g:a})}function u(f){f.forEach(o)}function s(f){f.forEach(u)}function l(f){f.forEach(s)}function c(f){switch(a=f,f.type){case"GeometryCollection":f.geometries.forEach(c);break;case"LineString":u(f.arcs);break;case"MultiLineString":case"Polygon":s(f.arcs);break;case"MultiPolygon":l(f.arcs);break}}return c(n),i.forEach(e==null?function(f){r.push(f[0].i)}:function(f){e(f[0].g,f[f.length-1].g)&&r.push(f[0].i)}),r}const{geoPath:Uu,...Zu}=Gu,ju=Zu,Xa=ea(void 0),Ju=({width:t=800,height:n=600,projection:e="geoEqualEarth",projectionConfig:r={},children:i})=>{const[a,o]=r.center||[],[u,s,l]=r.rotate||[],[c,f]=r.parallels||[],h=r.scale||null,p=ee(()=>(({projectionConfig:w={},projection:y="geoEqualEarth",width:E=800,height:A=600})=>{if(typeof y=="function")return y;const x=ju[y]().translate([E/2,A/2]);if(w.center&&x.center(w.center),w.rotate){const[S,N,T]=w.rotate;x.rotate(T===void 0?[S,N]:[S,N,T])}return w.scale&&x.scale(w.scale),w.parallels&&(function(S){return"parallels"in S})(x)&&x.parallels(w.parallels),x})({projectionConfig:{center:typeof a=="number"&&typeof o=="number"?[a,o]:void 0,rotate:typeof u=="number"&&typeof s=="number"?[u,s,l]:void 0,parallels:typeof c=="number"&&typeof f=="number"?[c,f]:void 0,scale:h||void 0},projection:e,width:t,height:n}),[t,n,e,a,o,u,s,l,c,f,h]),g=xo(p,[p]),_=ee(()=>({width:t,height:n,projection:g,path:Uu().projection(g)}),[t,n,g]);return Q.createElement(Xa.Provider,{value:_},i)},Dt=()=>{const t=Eo(Xa);if(!t)throw new Error("useMapContext must be used within MapProvider");return t},Oa=qt(({width:t=800,height:n=600,projection:e="geoEqualEarth",projectionConfig:r={},className:i="",children:a,...o},u)=>Q.createElement(Ju,{width:t,height:n,projection:e,projectionConfig:r},Q.createElement("svg",{ref:u,viewBox:`0 0 ${t} ${n}`,className:`rsm-svg ${i}`,...o,children:a})));function Ci(t,n){if(!Array.isArray(t)&&"type"in t&&t.type==="Topology"){const r=t.objects[Object.keys(t.objects)[0]],i=Yu(t,r).features;return n?n(i):i}const e=!Array.isArray(t)&&"features"in t?t.features:t;return n?n(e):e}function Ri(t){if(Array.isArray(t)||!("type"in t)||t.type!=="Topology")return null;const n=t.objects[Object.keys(t.objects)[0]];return{outline:bi(t,n,(e,r)=>e===r),borders:bi(t,n,(e,r)=>e!==r)}}function Qu(t,n){return t?t.map((e,r)=>({...e,rsmKey:`geo-${r}`,svgPath:n(e)})):[]}function zi(t){return typeof t=="string"}function tc({geography:t,parseGeographies:n}){const{path:e}=Dt(),[r,i]=Ot({}),a=zi(t)?t:JSON.stringify(t);Qt(()=>{var l;typeof window<"u"&&t&&(zi(t)?(l=t,fetch(l).then(c=>{if(!c.ok)throw Error(c.statusText);return c.json()}).catch(c=>{console.log("There was a problem when fetching the data: ",c)})).then(c=>{c&&i({geographies:Ci(c,n),mesh:Ri(c)})}):i({geographies:Ci(t,n),mesh:Ri(t)}))},[a,n]);const{geographies:o,outline:u,borders:s}=ee(()=>{const l=(function(c,f,h){return c&&f?{outline:{...c,rsmKey:"outline",svgPath:h(c)},borders:{...f,rsmKey:"borders",svgPath:h(f)}}:{}})(r.mesh?.outline,r.mesh?.borders,e);return{geographies:Qu(r.geographies,e),outline:l.outline,borders:l.borders}},[r,e]);return{geographies:o,outline:u,borders:s}}Oa.displayName="ComposableMap";const Ya=qt(({geography:t,children:n,parseGeographies:e,className:r="",...i},a)=>{const{path:o,projection:u}=Dt(),{geographies:s,outline:l,borders:c}=tc({geography:t,parseGeographies:e});return Q.createElement("g",{ref:a,className:`rsm-geographies ${r}`,...i},s&&s.length>0&&n({geographies:s,outline:l,borders:c,path:o,projection:u}))});Ya.displayName="Geographies";const Ka=qt(({geography:t,className:n="",...e},r)=>Q.createElement("path",{ref:r,tabIndex:0,className:`rsm-geography ${n}`,d:t.svgPath,...e}));Ka.displayName="Geography";var nc=kr(Ka);const Va=qt(({fill:t="transparent",stroke:n="currentcolor",step:e=[10,10],className:r="",...i},a)=>{const{path:o}=Dt();return Q.createElement("path",{ref:a,d:o(br().step(e)()),fill:t,stroke:n,className:`rsm-graticule ${r}`,...i})});Va.displayName="Graticule";kr(Va);const Wa=qt(({id:t="rsm-sphere",fill:n="transparent",stroke:e="currentcolor",strokeWidth:r=.5,className:i="",...a},o)=>{const{path:u}=Dt(),s=ee(()=>u({type:"Sphere"}),[u]);return Q.createElement(So,null,Q.createElement("defs",null,Q.createElement("clipPath",{id:t},Q.createElement("path",{d:s}))),Q.createElement("path",{ref:o,d:s,fill:n,stroke:e,strokeWidth:r,style:{pointerEvents:"none"},className:`rsm-sphere ${i}`,...a}))});Wa.displayName="Sphere";kr(Wa);const Ua=qt(({coordinates:t,children:n,className:e="",...r},i)=>{const{projection:a}=Dt(),o=a(t);if(!o)return null;const[u,s]=o;return Q.createElement("g",{ref:i,transform:`translate(${u}, ${s})`,className:`rsm-marker ${e}`,...r},n)});Ua.displayName="Marker";const ec=qt(({from:t=[0,0],to:n=[0,0],coordinates:e,stroke:r="currentcolor",strokeWidth:i=3,fill:a="transparent",className:o="",...u},s)=>{const{path:l}=Dt(),c={type:"LineString",coordinates:e||[t,n]};return Q.createElement("path",{ref:s,d:l(c),className:`rsm-line ${o}`,stroke:r,strokeWidth:i,fill:a,...u})});ec.displayName="Line";const rc=qt(({subject:t,children:n,connectorProps:e,dx:r=30,dy:i=30,curve:a=0,className:o="",...u},s)=>{const{projection:l}=Dt(),c=l(t),f=(function(g=30,_=30,w=.5){const y=Array.isArray(w)?w:[w,w];return`M0,0 Q${-g/2-g/2*y[0]},${-_/2+_/2*y[1]} ${-g},${-_}`})(r,i,a);if(!c)return null;const[h,p]=c;return Q.createElement("g",{ref:s,transform:`translate(${h+r}, ${p+i})`,className:`rsm-annotation ${o}`,...u},Q.createElement("path",{d:f,fill:"transparent",stroke:"#000",...e}),n)});rc.displayName="Annotation";var ic={value:()=>{}};function Yr(){for(var t=0,n=arguments.length,e={},r;t<n;++t){if(!(r=arguments[t]+"")||r in e||/[\s.]/.test(r))throw new Error("illegal type: "+r);e[r]=[]}return new Jn(e)}function Jn(t){this._=t}function ac(t,n){return t.trim().split(/^|\s+/).map(function(e){var r="",i=e.indexOf(".");if(i>=0&&(r=e.slice(i+1),e=e.slice(0,i)),e&&!n.hasOwnProperty(e))throw new Error("unknown type: "+e);return{type:e,name:r}})}Jn.prototype=Yr.prototype={constructor:Jn,on:function(t,n){var e=this._,r=ac(t+"",e),i,a=-1,o=r.length;if(arguments.length<2){for(;++a<o;)if((i=(t=r[a]).type)&&(i=oc(e[i],t.name)))return i;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++a<o;)if(i=(t=r[a]).type)e[i]=Ti(e[i],t.name,n);else if(n==null)for(i in e)e[i]=Ti(e[i],t.name,null);return this},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new Jn(t)},call:function(t,n){if((i=arguments.length-2)>0)for(var e=new Array(i),r=0,i,a;r<i;++r)e[r]=arguments[r+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(a=this._[t],r=0,i=a.length;r<i;++r)a[r].value.apply(n,e)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,a=r.length;i<a;++i)r[i].value.apply(n,e)}};function oc(t,n){for(var e=0,r=t.length,i;e<r;++e)if((i=t[e]).name===n)return i.value}function Ti(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=ic,t=t.slice(0,r).concat(t.slice(r+1));break}return e!=null&&t.push({name:n,value:e}),t}var vr="http://www.w3.org/1999/xhtml";const Li={svg:"http://www.w3.org/2000/svg",xhtml:vr,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Le(t){var n=t+="",e=n.indexOf(":");return e>=0&&(n=t.slice(0,e))!=="xmlns"&&(t=t.slice(e+1)),Li.hasOwnProperty(n)?{space:Li[n],local:t}:t}function uc(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===vr&&n.documentElement.namespaceURI===vr?n.createElement(t):n.createElementNS(e,t)}}function cc(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function Za(t){var n=Le(t);return(n.local?cc:uc)(n)}function sc(){}function Kr(t){return t==null?sc:function(){return this.querySelector(t)}}function lc(t){typeof t!="function"&&(t=Kr(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=new Array(o),s,l,c=0;c<o;++c)(s=a[c])&&(l=t.call(s,s.__data__,c,a))&&("__data__"in s&&(l.__data__=s.__data__),u[c]=l);return new gt(r,this._parents)}function fc(t){return t==null?[]:Array.isArray(t)?t:Array.from(t)}function hc(){return[]}function ja(t){return t==null?hc:function(){return this.querySelectorAll(t)}}function pc(t){return function(){return fc(t.apply(this,arguments))}}function gc(t){typeof t=="function"?t=pc(t):t=ja(t);for(var n=this._groups,e=n.length,r=[],i=[],a=0;a<e;++a)for(var o=n[a],u=o.length,s,l=0;l<u;++l)(s=o[l])&&(r.push(t.call(s,s.__data__,l,o)),i.push(s));return new gt(r,i)}function Ja(t){return function(){return this.matches(t)}}function Qa(t){return function(n){return n.matches(t)}}var dc=Array.prototype.find;function mc(t){return function(){return dc.call(this.children,t)}}function vc(){return this.firstElementChild}function yc(t){return this.select(t==null?vc:mc(typeof t=="function"?t:Qa(t)))}var Ac=Array.prototype.filter;function wc(){return Array.from(this.children)}function _c(t){return function(){return Ac.call(this.children,t)}}function xc(t){return this.selectAll(t==null?wc:_c(typeof t=="function"?t:Qa(t)))}function Ec(t){typeof t!="function"&&(t=Ja(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&u.push(s);return new gt(r,this._parents)}function to(t){return new Array(t.length)}function Sc(){return new gt(this._enter||this._groups.map(to),this._parents)}function Ne(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}Ne.prototype={constructor:Ne,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};function Mc(t){return function(){return t}}function kc(t,n,e,r,i,a){for(var o=0,u,s=n.length,l=a.length;o<l;++o)(u=n[o])?(u.__data__=a[o],r[o]=u):e[o]=new Ne(t,a[o]);for(;o<s;++o)(u=n[o])&&(i[o]=u)}function Nc(t,n,e,r,i,a,o){var u,s,l=new Map,c=n.length,f=a.length,h=new Array(c),p;for(u=0;u<c;++u)(s=n[u])&&(h[u]=p=o.call(s,s.__data__,u,n)+"",l.has(p)?i[u]=s:l.set(p,s));for(u=0;u<f;++u)p=o.call(t,a[u],u,a)+"",(s=l.get(p))?(r[u]=s,s.__data__=a[u],l.delete(p)):e[u]=new Ne(t,a[u]);for(u=0;u<c;++u)(s=n[u])&&l.get(h[u])===s&&(i[u]=s)}function Pc(t){return t.__data__}function $c(t,n){if(!arguments.length)return Array.from(this,Pc);var e=n?Nc:kc,r=this._parents,i=this._groups;typeof t!="function"&&(t=Mc(t));for(var a=i.length,o=new Array(a),u=new Array(a),s=new Array(a),l=0;l<a;++l){var c=r[l],f=i[l],h=f.length,p=bc(t.call(c,c&&c.__data__,l,r)),g=p.length,_=u[l]=new Array(g),w=o[l]=new Array(g),y=s[l]=new Array(h);e(c,f,_,w,y,p,n);for(var E=0,A=0,x,S;E<g;++E)if(x=_[E]){for(E>=A&&(A=E+1);!(S=w[A])&&++A<g;);x._next=S||null}}return o=new gt(o,r),o._enter=u,o._exit=s,o}function bc(t){return typeof t=="object"&&"length"in t?t:Array.from(t)}function Cc(){return new gt(this._exit||this._groups.map(to),this._parents)}function Rc(t,n,e){var r=this.enter(),i=this,a=this.exit();return typeof t=="function"?(r=t(r),r&&(r=r.selection())):r=r.append(t+""),n!=null&&(i=n(i),i&&(i=i.selection())),e==null?a.remove():e(a),r&&i?r.merge(i).order():i}function zc(t){for(var n=t.selection?t.selection():t,e=this._groups,r=n._groups,i=e.length,a=r.length,o=Math.min(i,a),u=new Array(i),s=0;s<o;++s)for(var l=e[s],c=r[s],f=l.length,h=u[s]=new Array(f),p,g=0;g<f;++g)(p=l[g]||c[g])&&(h[g]=p);for(;s<i;++s)u[s]=e[s];return new gt(u,this._parents)}function Tc(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r=t[n],i=r.length-1,a=r[i],o;--i>=0;)(o=r[i])&&(a&&o.compareDocumentPosition(a)^4&&a.parentNode.insertBefore(o,a),a=o);return this}function Lc(t){t||(t=Ic);function n(f,h){return f&&h?t(f.__data__,h.__data__):!f-!h}for(var e=this._groups,r=e.length,i=new Array(r),a=0;a<r;++a){for(var o=e[a],u=o.length,s=i[a]=new Array(u),l,c=0;c<u;++c)(l=o[c])&&(s[c]=l);s.sort(n)}return new gt(i,this._parents).order()}function Ic(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function qc(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this}function Dc(){return Array.from(this)}function Bc(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length;i<a;++i){var o=r[i];if(o)return o}return null}function Fc(){let t=0;for(const n of this)++t;return t}function Gc(){return!this.node()}function Hc(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i=n[e],a=0,o=i.length,u;a<o;++a)(u=i[a])&&t.call(u,u.__data__,a,i);return this}function Xc(t){return function(){this.removeAttribute(t)}}function Oc(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Yc(t,n){return function(){this.setAttribute(t,n)}}function Kc(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function Vc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttribute(t):this.setAttribute(t,e)}}function Wc(t,n){return function(){var e=n.apply(this,arguments);e==null?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Uc(t,n){var e=Le(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((n==null?e.local?Oc:Xc:typeof n=="function"?e.local?Wc:Vc:e.local?Kc:Yc)(e,n))}function no(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView}function Zc(t){return function(){this.style.removeProperty(t)}}function jc(t,n,e){return function(){this.style.setProperty(t,n,e)}}function Jc(t,n,e){return function(){var r=n.apply(this,arguments);r==null?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function Qc(t,n,e){return arguments.length>1?this.each((n==null?Zc:typeof n=="function"?Jc:jc)(t,n,e??"")):on(this.node(),t)}function on(t,n){return t.style.getPropertyValue(n)||no(t).getComputedStyle(t,null).getPropertyValue(n)}function ts(t){return function(){delete this[t]}}function ns(t,n){return function(){this[t]=n}}function es(t,n){return function(){var e=n.apply(this,arguments);e==null?delete this[t]:this[t]=e}}function rs(t,n){return arguments.length>1?this.each((n==null?ts:typeof n=="function"?es:ns)(t,n)):this.node()[t]}function eo(t){return t.trim().split(/^|\s+/)}function Vr(t){return t.classList||new ro(t)}function ro(t){this._node=t,this._names=eo(t.getAttribute("class")||"")}ro.prototype={add:function(t){var n=this._names.indexOf(t);n<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};function io(t,n){for(var e=Vr(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function ao(t,n){for(var e=Vr(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function is(t){return function(){io(this,t)}}function as(t){return function(){ao(this,t)}}function os(t,n){return function(){(n.apply(this,arguments)?io:ao)(this,t)}}function us(t,n){var e=eo(t+"");if(arguments.length<2){for(var r=Vr(this.node()),i=-1,a=e.length;++i<a;)if(!r.contains(e[i]))return!1;return!0}return this.each((typeof n=="function"?os:n?is:as)(e,n))}function cs(){this.textContent=""}function ss(t){return function(){this.textContent=t}}function ls(t){return function(){var n=t.apply(this,arguments);this.textContent=n??""}}function fs(t){return arguments.length?this.each(t==null?cs:(typeof t=="function"?ls:ss)(t)):this.node().textContent}function hs(){this.innerHTML=""}function ps(t){return function(){this.innerHTML=t}}function gs(t){return function(){var n=t.apply(this,arguments);this.innerHTML=n??""}}function ds(t){return arguments.length?this.each(t==null?hs:(typeof t=="function"?gs:ps)(t)):this.node().innerHTML}function ms(){this.nextSibling&&this.parentNode.appendChild(this)}function vs(){return this.each(ms)}function ys(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function As(){return this.each(ys)}function ws(t){var n=typeof t=="function"?t:Za(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function _s(){return null}function xs(t,n){var e=typeof t=="function"?t:Za(t),r=n==null?_s:typeof n=="function"?n:Kr(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})}function Es(){var t=this.parentNode;t&&t.removeChild(this)}function Ss(){return this.each(Es)}function Ms(){var t=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function ks(){var t=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(t,this.nextSibling):t}function Ns(t){return this.select(t?ks:Ms)}function Ps(t){return arguments.length?this.property("__data__",t):this.node().__data__}function $s(t){return function(n){t.call(this,n,this.__data__)}}function bs(t){return t.trim().split(/^|\s+/).map(function(n){var e="",r=n.indexOf(".");return r>=0&&(e=n.slice(r+1),n=n.slice(0,r)),{type:n,name:e}})}function Cs(t){return function(){var n=this.__on;if(n){for(var e=0,r=-1,i=n.length,a;e<i;++e)a=n[e],(!t.type||a.type===t.type)&&a.name===t.name?this.removeEventListener(a.type,a.listener,a.options):n[++r]=a;++r?n.length=r:delete this.__on}}}function Rs(t,n,e){return function(){var r=this.__on,i,a=$s(n);if(r){for(var o=0,u=r.length;o<u;++o)if((i=r[o]).type===t.type&&i.name===t.name){this.removeEventListener(i.type,i.listener,i.options),this.addEventListener(i.type,i.listener=a,i.options=e),i.value=n;return}}this.addEventListener(t.type,a,e),i={type:t.type,name:t.name,value:n,listener:a,options:e},r?r.push(i):this.__on=[i]}}function zs(t,n,e){var r=bs(t+""),i,a=r.length,o;if(arguments.length<2){var u=this.node().__on;if(u){for(var s=0,l=u.length,c;s<l;++s)for(i=0,c=u[s];i<a;++i)if((o=r[i]).type===c.type&&o.name===c.name)return c.value}return}for(u=n?Rs:Cs,i=0;i<a;++i)this.each(u(r[i],n,e));return this}function oo(t,n,e){var r=no(t),i=r.CustomEvent;typeof i=="function"?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function Ts(t,n){return function(){return oo(this,t,n)}}function Ls(t,n){return function(){return oo(this,t,n.apply(this,arguments))}}function Is(t,n){return this.each((typeof n=="function"?Ls:Ts)(t,n))}function*qs(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,a=r.length,o;i<a;++i)(o=r[i])&&(yield o)}var uo=[null];function gt(t,n){this._groups=t,this._parents=n}function qn(){return new gt([[document.documentElement]],uo)}function Ds(){return this}gt.prototype=qn.prototype={constructor:gt,select:lc,selectAll:gc,selectChild:yc,selectChildren:xc,filter:Ec,data:$c,enter:Sc,exit:Cc,join:Rc,merge:zc,selection:Ds,order:Tc,sort:Lc,call:qc,nodes:Dc,node:Bc,size:Fc,empty:Gc,each:Hc,attr:Uc,style:Qc,property:rs,classed:us,text:fs,html:ds,raise:vs,lower:As,append:ws,insert:xs,remove:Ss,clone:Ns,datum:Ps,on:zs,dispatch:Is,[Symbol.iterator]:qs};function zt(t){return typeof t=="string"?new gt([[document.querySelector(t)]],[document.documentElement]):new gt([[t]],uo)}function Bs(t){let n;for(;n=t.sourceEvent;)t=n;return t}function Ht(t,n){if(t=Bs(t),n===void 0&&(n=t.currentTarget),n){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=t.clientX,r.y=t.clientY,r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}if(n.getBoundingClientRect){var i=n.getBoundingClientRect();return[t.clientX-i.left-n.clientLeft,t.clientY-i.top-n.clientTop]}}return[t.pageX,t.pageY]}const yr={capture:!0,passive:!1};function Ar(t){t.preventDefault(),t.stopImmediatePropagation()}function Fs(t){var n=t.document.documentElement,e=zt(t).on("dragstart.drag",Ar,yr);"onselectstart"in n?e.on("selectstart.drag",Ar,yr):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function Gs(t,n){var e=t.document.documentElement,r=zt(t).on("dragstart.drag",null);n&&(r.on("click.drag",Ar,yr),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function Wr(t,n,e){t.prototype=n.prototype=e,e.constructor=t}function co(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Dn(){}var $n=.7,Pe=1/$n,nn="\\s*([+-]?\\d+)\\s*",bn="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",St="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Hs=/^#([0-9a-f]{3,8})$/,Xs=new RegExp(`^rgb\\(${nn},${nn},${nn}\\)$`),Os=new RegExp(`^rgb\\(${St},${St},${St}\\)$`),Ys=new RegExp(`^rgba\\(${nn},${nn},${nn},${bn}\\)$`),Ks=new RegExp(`^rgba\\(${St},${St},${St},${bn}\\)$`),Vs=new RegExp(`^hsl\\(${bn},${St},${St}\\)$`),Ws=new RegExp(`^hsla\\(${bn},${St},${St},${bn}\\)$`),Ii={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Wr(Dn,Cn,{copy(t){return Object.assign(new this.constructor,this,t)},displayable(){return this.rgb().displayable()},hex:qi,formatHex:qi,formatHex8:Us,formatHsl:Zs,formatRgb:Di,toString:Di});function qi(){return this.rgb().formatHex()}function Us(){return this.rgb().formatHex8()}function Zs(){return so(this).formatHsl()}function Di(){return this.rgb().formatRgb()}function Cn(t){var n,e;return t=(t+"").trim().toLowerCase(),(n=Hs.exec(t))?(e=n[1].length,n=parseInt(n[1],16),e===6?Bi(n):e===3?new ft(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):e===8?Yn(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):e===4?Yn(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=Xs.exec(t))?new ft(n[1],n[2],n[3],1):(n=Os.exec(t))?new ft(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=Ys.exec(t))?Yn(n[1],n[2],n[3],n[4]):(n=Ks.exec(t))?Yn(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=Vs.exec(t))?Hi(n[1],n[2]/100,n[3]/100,1):(n=Ws.exec(t))?Hi(n[1],n[2]/100,n[3]/100,n[4]):Ii.hasOwnProperty(t)?Bi(Ii[t]):t==="transparent"?new ft(NaN,NaN,NaN,0):null}function Bi(t){return new ft(t>>16&255,t>>8&255,t&255,1)}function Yn(t,n,e,r){return r<=0&&(t=n=e=NaN),new ft(t,n,e,r)}function js(t){return t instanceof Dn||(t=Cn(t)),t?(t=t.rgb(),new ft(t.r,t.g,t.b,t.opacity)):new ft}function wr(t,n,e,r){return arguments.length===1?js(t):new ft(t,n,e,r??1)}function ft(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}Wr(ft,wr,co(Dn,{brighter(t){return t=t==null?Pe:Math.pow(Pe,t),new ft(this.r*t,this.g*t,this.b*t,this.opacity)},darker(t){return t=t==null?$n:Math.pow($n,t),new ft(this.r*t,this.g*t,this.b*t,this.opacity)},rgb(){return this},clamp(){return new ft(Kt(this.r),Kt(this.g),Kt(this.b),$e(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:Fi,formatHex:Fi,formatHex8:Js,formatRgb:Gi,toString:Gi}));function Fi(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}`}function Js(){return`#${Yt(this.r)}${Yt(this.g)}${Yt(this.b)}${Yt((isNaN(this.opacity)?1:this.opacity)*255)}`}function Gi(){const t=$e(this.opacity);return`${t===1?"rgb(":"rgba("}${Kt(this.r)}, ${Kt(this.g)}, ${Kt(this.b)}${t===1?")":`, ${t})`}`}function $e(t){return isNaN(t)?1:Math.max(0,Math.min(1,t))}function Kt(t){return Math.max(0,Math.min(255,Math.round(t)||0))}function Yt(t){return t=Kt(t),(t<16?"0":"")+t.toString(16)}function Hi(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new At(t,n,e,r)}function so(t){if(t instanceof At)return new At(t.h,t.s,t.l,t.opacity);if(t instanceof Dn||(t=Cn(t)),!t)return new At;if(t instanceof At)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),a=Math.max(n,e,r),o=NaN,u=a-i,s=(a+i)/2;return u?(n===a?o=(e-r)/u+(e<r)*6:e===a?o=(r-n)/u+2:o=(n-e)/u+4,u/=s<.5?a+i:2-a-i,o*=60):u=s>0&&s<1?0:o,new At(o,u,s,t.opacity)}function Qs(t,n,e,r){return arguments.length===1?so(t):new At(t,n,e,r??1)}function At(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}Wr(At,Qs,co(Dn,{brighter(t){return t=t==null?Pe:Math.pow(Pe,t),new At(this.h,this.s,this.l*t,this.opacity)},darker(t){return t=t==null?$n:Math.pow($n,t),new At(this.h,this.s,this.l*t,this.opacity)},rgb(){var t=this.h%360+(this.h<0)*360,n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new ft(Oe(t>=240?t-240:t+120,i,r),Oe(t,i,r),Oe(t<120?t+240:t-120,i,r),this.opacity)},clamp(){return new At(Xi(this.h),Kn(this.s),Kn(this.l),$e(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const t=$e(this.opacity);return`${t===1?"hsl(":"hsla("}${Xi(this.h)}, ${Kn(this.s)*100}%, ${Kn(this.l)*100}%${t===1?")":`, ${t})`}`}}));function Xi(t){return t=(t||0)%360,t<0?t+360:t}function Kn(t){return Math.max(0,Math.min(1,t||0))}function Oe(t,n,e){return(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)*255}const lo=t=>()=>t;function tl(t,n){return function(e){return t+e*n}}function nl(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function el(t){return(t=+t)==1?fo:function(n,e){return e-n?nl(n,e,t):lo(isNaN(n)?e:n)}}function fo(t,n){var e=n-t;return e?tl(t,e):lo(isNaN(t)?n:t)}const Oi=(function t(n){var e=el(n);function r(i,a){var o=e((i=wr(i)).r,(a=wr(a)).r),u=e(i.g,a.g),s=e(i.b,a.b),l=fo(i.opacity,a.opacity);return function(c){return i.r=o(c),i.g=u(c),i.b=s(c),i.opacity=l(c),i+""}}return r.gamma=t,r})(1);function Gt(t,n){return t=+t,n=+n,function(e){return t*(1-e)+n*e}}var _r=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,Ye=new RegExp(_r.source,"g");function rl(t){return function(){return t}}function il(t){return function(n){return t(n)+""}}function al(t,n){var e=_r.lastIndex=Ye.lastIndex=0,r,i,a,o=-1,u=[],s=[];for(t=t+"",n=n+"";(r=_r.exec(t))&&(i=Ye.exec(n));)(a=i.index)>e&&(a=n.slice(e,a),u[o]?u[o]+=a:u[++o]=a),(r=r[0])===(i=i[0])?u[o]?u[o]+=i:u[++o]=i:(u[++o]=null,s.push({i:o,x:Gt(r,i)})),e=Ye.lastIndex;return e<n.length&&(a=n.slice(e),u[o]?u[o]+=a:u[++o]=a),u.length<2?s[0]?il(s[0].x):rl(n):(n=s.length,function(l){for(var c=0,f;c<n;++c)u[(f=s[c]).i]=f.x(l);return u.join("")})}var Yi=180/Math.PI,xr={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function ho(t,n,e,r,i,a){var o,u,s;return(o=Math.sqrt(t*t+n*n))&&(t/=o,n/=o),(s=t*e+n*r)&&(e-=t*s,r-=n*s),(u=Math.sqrt(e*e+r*r))&&(e/=u,r/=u,s/=u),t*r<n*e&&(t=-t,n=-n,s=-s,o=-o),{translateX:i,translateY:a,rotate:Math.atan2(n,t)*Yi,skewX:Math.atan(s)*Yi,scaleX:o,scaleY:u}}var Vn;function ol(t){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(t+"");return n.isIdentity?xr:ho(n.a,n.b,n.c,n.d,n.e,n.f)}function ul(t){return t==null||(Vn||(Vn=document.createElementNS("http://www.w3.org/2000/svg","g")),Vn.setAttribute("transform",t),!(t=Vn.transform.baseVal.consolidate()))?xr:(t=t.matrix,ho(t.a,t.b,t.c,t.d,t.e,t.f))}function po(t,n,e,r){function i(l){return l.length?l.pop()+" ":""}function a(l,c,f,h,p,g){if(l!==f||c!==h){var _=p.push("translate(",null,n,null,e);g.push({i:_-4,x:Gt(l,f)},{i:_-2,x:Gt(c,h)})}else(f||h)&&p.push("translate("+f+n+h+e)}function o(l,c,f,h){l!==c?(l-c>180?c+=360:c-l>180&&(l+=360),h.push({i:f.push(i(f)+"rotate(",null,r)-2,x:Gt(l,c)})):c&&f.push(i(f)+"rotate("+c+r)}function u(l,c,f,h){l!==c?h.push({i:f.push(i(f)+"skewX(",null,r)-2,x:Gt(l,c)}):c&&f.push(i(f)+"skewX("+c+r)}function s(l,c,f,h,p,g){if(l!==f||c!==h){var _=p.push(i(p)+"scale(",null,",",null,")");g.push({i:_-4,x:Gt(l,f)},{i:_-2,x:Gt(c,h)})}else(f!==1||h!==1)&&p.push(i(p)+"scale("+f+","+h+")")}return function(l,c){var f=[],h=[];return l=t(l),c=t(c),a(l.translateX,l.translateY,c.translateX,c.translateY,f,h),o(l.rotate,c.rotate,f,h),u(l.skewX,c.skewX,f,h),s(l.scaleX,l.scaleY,c.scaleX,c.scaleY,f,h),l=c=null,function(p){for(var g=-1,_=h.length,w;++g<_;)f[(w=h[g]).i]=w.x(p);return f.join("")}}}var cl=po(ol,"px, ","px)","deg)"),sl=po(ul,", ",")",")"),ll=1e-12;function Ki(t){return((t=Math.exp(t))+1/t)/2}function fl(t){return((t=Math.exp(t))-1/t)/2}function hl(t){return((t=Math.exp(2*t))-1)/(t+1)}const pl=(function t(n,e,r){function i(a,o){var u=a[0],s=a[1],l=a[2],c=o[0],f=o[1],h=o[2],p=c-u,g=f-s,_=p*p+g*g,w,y;if(_<ll)y=Math.log(h/l)/n,w=function(T){return[u+T*p,s+T*g,l*Math.exp(n*T*y)]};else{var E=Math.sqrt(_),A=(h*h-l*l+r*_)/(2*l*e*E),x=(h*h-l*l-r*_)/(2*h*e*E),S=Math.log(Math.sqrt(A*A+1)-A),N=Math.log(Math.sqrt(x*x+1)-x);y=(N-S)/n,w=function(T){var I=T*y,q=Ki(S),G=l/(e*E)*(q*hl(n*I+S)-fl(S));return[u+G*p,s+G*g,l*q/Ki(n*I+S)]}}return w.duration=y*1e3*n/Math.SQRT2,w}return i.rho=function(a){var o=Math.max(.001,+a),u=o*o,s=u*u;return t(o,u,s)},i})(Math.SQRT2,2,4);var un=0,vn=0,sn=0,go=1e3,be,yn,Ce=0,Ut=0,Ie=0,Rn=typeof performance=="object"&&performance.now?performance:Date,mo=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(t){setTimeout(t,17)};function Ur(){return Ut||(mo(gl),Ut=Rn.now()+Ie)}function gl(){Ut=0}function Re(){this._call=this._time=this._next=null}Re.prototype=vo.prototype={constructor:Re,restart:function(t,n,e){if(typeof t!="function")throw new TypeError("callback is not a function");e=(e==null?Ur():+e)+(n==null?0:+n),!this._next&&yn!==this&&(yn?yn._next=this:be=this,yn=this),this._call=t,this._time=e,Er()},stop:function(){this._call&&(this._call=null,this._time=1/0,Er())}};function vo(t,n,e){var r=new Re;return r.restart(t,n,e),r}function dl(){Ur(),++un;for(var t=be,n;t;)(n=Ut-t._time)>=0&&t._call.call(void 0,n),t=t._next;--un}function Vi(){Ut=(Ce=Rn.now())+Ie,un=vn=0;try{dl()}finally{un=0,vl(),Ut=0}}function ml(){var t=Rn.now(),n=t-Ce;n>go&&(Ie-=n,Ce=t)}function vl(){for(var t,n=be,e,r=1/0;n;)n._call?(r>n._time&&(r=n._time),t=n,n=n._next):(e=n._next,n._next=null,n=t?t._next=e:be=e);yn=t,Er(r)}function Er(t){if(!un){vn&&(vn=clearTimeout(vn));var n=t-Ut;n>24?(t<1/0&&(vn=setTimeout(Vi,t-Rn.now()-Ie)),sn&&(sn=clearInterval(sn))):(sn||(Ce=Rn.now(),sn=setInterval(ml,go)),un=1,mo(Vi))}}function Wi(t,n,e){var r=new Re;return n=n==null?0:+n,r.restart(i=>{r.stop(),t(i+n)},n,e),r}var yl=Yr("start","end","cancel","interrupt"),Al=[],yo=0,Ui=1,Sr=2,Qn=3,Zi=4,Mr=5,te=6;function qe(t,n,e,r,i,a){var o=t.__transition;if(!o)t.__transition={};else if(e in o)return;wl(t,e,{name:n,index:r,group:i,on:yl,tween:Al,time:a.time,delay:a.delay,duration:a.duration,ease:a.ease,timer:null,state:yo})}function Zr(t,n){var e=_t(t,n);if(e.state>yo)throw new Error("too late; already scheduled");return e}function Nt(t,n){var e=_t(t,n);if(e.state>Qn)throw new Error("too late; already running");return e}function _t(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("transition not found");return e}function wl(t,n,e){var r=t.__transition,i;r[n]=e,e.timer=vo(a,0,e.time);function a(l){e.state=Ui,e.timer.restart(o,e.delay,e.time),e.delay<=l&&o(l-e.delay)}function o(l){var c,f,h,p;if(e.state!==Ui)return s();for(c in r)if(p=r[c],p.name===e.name){if(p.state===Qn)return Wi(o);p.state===Zi?(p.state=te,p.timer.stop(),p.on.call("interrupt",t,t.__data__,p.index,p.group),delete r[c]):+c<n&&(p.state=te,p.timer.stop(),p.on.call("cancel",t,t.__data__,p.index,p.group),delete r[c])}if(Wi(function(){e.state===Qn&&(e.state=Zi,e.timer.restart(u,e.delay,e.time),u(l))}),e.state=Sr,e.on.call("start",t,t.__data__,e.index,e.group),e.state===Sr){for(e.state=Qn,i=new Array(h=e.tween.length),c=0,f=-1;c<h;++c)(p=e.tween[c].value.call(t,t.__data__,e.index,e.group))&&(i[++f]=p);i.length=f+1}}function u(l){for(var c=l<e.duration?e.ease.call(null,l/e.duration):(e.timer.restart(s),e.state=Mr,1),f=-1,h=i.length;++f<h;)i[f].call(t,c);e.state===Mr&&(e.on.call("end",t,t.__data__,e.index,e.group),s())}function s(){e.state=te,e.timer.stop(),delete r[n];for(var l in r)return;delete t.__transition}}function ne(t,n){var e=t.__transition,r,i,a=!0,o;if(e){n=n==null?null:n+"";for(o in e){if((r=e[o]).name!==n){a=!1;continue}i=r.state>Sr&&r.state<Mr,r.state=te,r.timer.stop(),r.on.call(i?"interrupt":"cancel",t,t.__data__,r.index,r.group),delete e[o]}a&&delete t.__transition}}function _l(t){return this.each(function(){ne(this,t)})}function xl(t,n){var e,r;return function(){var i=Nt(this,t),a=i.tween;if(a!==e){r=e=a;for(var o=0,u=r.length;o<u;++o)if(r[o].name===n){r=r.slice(),r.splice(o,1);break}}i.tween=r}}function El(t,n,e){var r,i;if(typeof e!="function")throw new Error;return function(){var a=Nt(this,t),o=a.tween;if(o!==r){i=(r=o).slice();for(var u={name:n,value:e},s=0,l=i.length;s<l;++s)if(i[s].name===n){i[s]=u;break}s===l&&i.push(u)}a.tween=i}}function Sl(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r=_t(this.node(),e).tween,i=0,a=r.length,o;i<a;++i)if((o=r[i]).name===t)return o.value;return null}return this.each((n==null?xl:El)(e,t,n))}function jr(t,n,e){var r=t._id;return t.each(function(){var i=Nt(this,r);(i.value||(i.value={}))[n]=e.apply(this,arguments)}),function(i){return _t(i,r).value[n]}}function Ao(t,n){var e;return(typeof n=="number"?Gt:n instanceof Cn?Oi:(e=Cn(n))?(n=e,Oi):al)(t,n)}function Ml(t){return function(){this.removeAttribute(t)}}function kl(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Nl(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttribute(t);return o===i?null:o===r?a:a=n(r=o,e)}}function Pl(t,n,e){var r,i=e+"",a;return function(){var o=this.getAttributeNS(t.space,t.local);return o===i?null:o===r?a:a=n(r=o,e)}}function $l(t,n,e){var r,i,a;return function(){var o,u=e(this),s;return u==null?void this.removeAttribute(t):(o=this.getAttribute(t),s=u+"",o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u)))}}function bl(t,n,e){var r,i,a;return function(){var o,u=e(this),s;return u==null?void this.removeAttributeNS(t.space,t.local):(o=this.getAttributeNS(t.space,t.local),s=u+"",o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u)))}}function Cl(t,n){var e=Le(t),r=e==="transform"?sl:Ao;return this.attrTween(t,typeof n=="function"?(e.local?bl:$l)(e,r,jr(this,"attr."+t,n)):n==null?(e.local?kl:Ml)(e):(e.local?Pl:Nl)(e,r,n))}function Rl(t,n){return function(e){this.setAttribute(t,n.call(this,e))}}function zl(t,n){return function(e){this.setAttributeNS(t.space,t.local,n.call(this,e))}}function Tl(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&zl(t,a)),e}return i._value=n,i}function Ll(t,n){var e,r;function i(){var a=n.apply(this,arguments);return a!==r&&(e=(r=a)&&Rl(t,a)),e}return i._value=n,i}function Il(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(n==null)return this.tween(e,null);if(typeof n!="function")throw new Error;var r=Le(t);return this.tween(e,(r.local?Tl:Ll)(r,n))}function ql(t,n){return function(){Zr(this,t).delay=+n.apply(this,arguments)}}function Dl(t,n){return n=+n,function(){Zr(this,t).delay=n}}function Bl(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?ql:Dl)(n,t)):_t(this.node(),n).delay}function Fl(t,n){return function(){Nt(this,t).duration=+n.apply(this,arguments)}}function Gl(t,n){return n=+n,function(){Nt(this,t).duration=n}}function Hl(t){var n=this._id;return arguments.length?this.each((typeof t=="function"?Fl:Gl)(n,t)):_t(this.node(),n).duration}function Xl(t,n){if(typeof n!="function")throw new Error;return function(){Nt(this,t).ease=n}}function Ol(t){var n=this._id;return arguments.length?this.each(Xl(n,t)):_t(this.node(),n).ease}function Yl(t,n){return function(){var e=n.apply(this,arguments);if(typeof e!="function")throw new Error;Nt(this,t).ease=e}}function Kl(t){if(typeof t!="function")throw new Error;return this.each(Yl(this._id,t))}function Vl(t){typeof t!="function"&&(t=Ja(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var a=n[i],o=a.length,u=r[i]=[],s,l=0;l<o;++l)(s=a[l])&&t.call(s,s.__data__,l,a)&&u.push(s);return new It(r,this._parents,this._name,this._id)}function Wl(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,a=Math.min(r,i),o=new Array(r),u=0;u<a;++u)for(var s=n[u],l=e[u],c=s.length,f=o[u]=new Array(c),h,p=0;p<c;++p)(h=s[p]||l[p])&&(f[p]=h);for(;u<r;++u)o[u]=n[u];return new It(o,this._parents,this._name,this._id)}function Ul(t){return(t+"").trim().split(/^|\s+/).every(function(n){var e=n.indexOf(".");return e>=0&&(n=n.slice(0,e)),!n||n==="start"})}function Zl(t,n,e){var r,i,a=Ul(n)?Zr:Nt;return function(){var o=a(this,t),u=o.on;u!==r&&(i=(r=u).copy()).on(n,e),o.on=i}}function jl(t,n){var e=this._id;return arguments.length<2?_t(this.node(),e).on.on(t):this.each(Zl(e,t,n))}function Jl(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Ql(){return this.on("end.remove",Jl(this._id))}function tf(t){var n=this._name,e=this._id;typeof t!="function"&&(t=Kr(t));for(var r=this._groups,i=r.length,a=new Array(i),o=0;o<i;++o)for(var u=r[o],s=u.length,l=a[o]=new Array(s),c,f,h=0;h<s;++h)(c=u[h])&&(f=t.call(c,c.__data__,h,u))&&("__data__"in c&&(f.__data__=c.__data__),l[h]=f,qe(l[h],n,e,h,l,_t(c,e)));return new It(a,this._parents,n,e)}function nf(t){var n=this._name,e=this._id;typeof t!="function"&&(t=ja(t));for(var r=this._groups,i=r.length,a=[],o=[],u=0;u<i;++u)for(var s=r[u],l=s.length,c,f=0;f<l;++f)if(c=s[f]){for(var h=t.call(c,c.__data__,f,s),p,g=_t(c,e),_=0,w=h.length;_<w;++_)(p=h[_])&&qe(p,n,e,_,h,g);a.push(h),o.push(c)}return new It(a,o,n,e)}var ef=qn.prototype.constructor;function rf(){return new ef(this._groups,this._parents)}function af(t,n){var e,r,i;return function(){var a=on(this,t),o=(this.style.removeProperty(t),on(this,t));return a===o?null:a===e&&o===r?i:i=n(e=a,r=o)}}function wo(t){return function(){this.style.removeProperty(t)}}function of(t,n,e){var r,i=e+"",a;return function(){var o=on(this,t);return o===i?null:o===r?a:a=n(r=o,e)}}function uf(t,n,e){var r,i,a;return function(){var o=on(this,t),u=e(this),s=u+"";return u==null&&(s=u=(this.style.removeProperty(t),on(this,t))),o===s?null:o===r&&s===i?a:(i=s,a=n(r=o,u))}}function cf(t,n){var e,r,i,a="style."+n,o="end."+a,u;return function(){var s=Nt(this,t),l=s.on,c=s.value[a]==null?u||(u=wo(n)):void 0;(l!==e||i!==c)&&(r=(e=l).copy()).on(o,i=c),s.on=r}}function sf(t,n,e){var r=(t+="")=="transform"?cl:Ao;return n==null?this.styleTween(t,af(t,r)).on("end.style."+t,wo(t)):typeof n=="function"?this.styleTween(t,uf(t,r,jr(this,"style."+t,n))).each(cf(this._id,t)):this.styleTween(t,of(t,r,n),e).on("end.style."+t,null)}function lf(t,n,e){return function(r){this.style.setProperty(t,n.call(this,r),e)}}function ff(t,n,e){var r,i;function a(){var o=n.apply(this,arguments);return o!==i&&(r=(i=o)&&lf(t,o,e)),r}return a._value=n,a}function hf(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;return this.tween(r,ff(t,n,e??""))}function pf(t){return function(){this.textContent=t}}function gf(t){return function(){var n=t(this);this.textContent=n??""}}function df(t){return this.tween("text",typeof t=="function"?gf(jr(this,"text",t)):pf(t==null?"":t+""))}function mf(t){return function(n){this.textContent=t.call(this,n)}}function vf(t){var n,e;function r(){var i=t.apply(this,arguments);return i!==e&&(n=(e=i)&&mf(i)),n}return r._value=t,r}function yf(t){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(t==null)return this.tween(n,null);if(typeof t!="function")throw new Error;return this.tween(n,vf(t))}function Af(){for(var t=this._name,n=this._id,e=_o(),r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],u=o.length,s,l=0;l<u;++l)if(s=o[l]){var c=_t(s,n);qe(s,t,e,l,o,{time:c.time+c.delay+c.duration,delay:0,duration:c.duration,ease:c.ease})}return new It(r,this._parents,t,e)}function wf(){var t,n,e=this,r=e._id,i=e.size();return new Promise(function(a,o){var u={value:o},s={value:function(){--i===0&&a()}};e.each(function(){var l=Nt(this,r),c=l.on;c!==t&&(n=(t=c).copy(),n._.cancel.push(u),n._.interrupt.push(u),n._.end.push(s)),l.on=n}),i===0&&a()})}var _f=0;function It(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function _o(){return++_f}var bt=qn.prototype;It.prototype={constructor:It,select:tf,selectAll:nf,selectChild:bt.selectChild,selectChildren:bt.selectChildren,filter:Vl,merge:Wl,selection:rf,transition:Af,call:bt.call,nodes:bt.nodes,node:bt.node,size:bt.size,empty:bt.empty,each:bt.each,on:jl,attr:Cl,attrTween:Il,style:sf,styleTween:hf,text:df,textTween:yf,remove:Ql,tween:Sl,delay:Bl,duration:Hl,ease:Ol,easeVarying:Kl,end:wf,[Symbol.iterator]:bt[Symbol.iterator]};function xf(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}var Ef={time:null,delay:0,duration:250,ease:xf};function Sf(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))throw new Error(`transition ${n} not found`);return e}function Mf(t){var n,e;t instanceof It?(n=t._id,t=t._name):(n=_o(),(e=Ef).time=Ur(),t=t==null?null:t+"");for(var r=this._groups,i=r.length,a=0;a<i;++a)for(var o=r[a],u=o.length,s,l=0;l<u;++l)(s=o[l])&&qe(s,t,n,l,o,e||Sf(s,n));return new It(r,this._parents,t,n)}qn.prototype.interrupt=_l;qn.prototype.transition=Mf;const Wn=t=>()=>t;function kf(t,{sourceEvent:n,target:e,transform:r,dispatch:i}){Object.defineProperties(this,{type:{value:t,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:e,enumerable:!0,configurable:!0},transform:{value:r,enumerable:!0,configurable:!0},_:{value:i}})}function Tt(t,n,e){this.k=t,this.x=n,this.y=e}Tt.prototype={constructor:Tt,scale:function(t){return t===1?this:new Tt(this.k*t,this.x,this.y)},translate:function(t,n){return t===0&n===0?this:new Tt(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Jr=new Tt(1,0,0);Tt.prototype;function Ke(t){t.stopImmediatePropagation()}function ln(t){t.preventDefault(),t.stopImmediatePropagation()}function Nf(t){return(!t.ctrlKey||t.type==="wheel")&&!t.button}function Pf(){var t=this;return t instanceof SVGElement?(t=t.ownerSVGElement||t,t.hasAttribute("viewBox")?(t=t.viewBox.baseVal,[[t.x,t.y],[t.x+t.width,t.y+t.height]]):[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]):[[0,0],[t.clientWidth,t.clientHeight]]}function ji(){return this.__zoom||Jr}function $f(t){return-t.deltaY*(t.deltaMode===1?.05:t.deltaMode?1:.002)*(t.ctrlKey?10:1)}function bf(){return navigator.maxTouchPoints||"ontouchstart"in this}function Cf(t,n,e){var r=t.invertX(n[0][0])-e[0][0],i=t.invertX(n[1][0])-e[1][0],a=t.invertY(n[0][1])-e[0][1],o=t.invertY(n[1][1])-e[1][1];return t.translate(i>r?(r+i)/2:Math.min(0,r)||Math.max(0,i),o>a?(a+o)/2:Math.min(0,a)||Math.max(0,o))}function Rf(){var t=Nf,n=Pf,e=Cf,r=$f,i=bf,a=[0,1/0],o=[[-1/0,-1/0],[1/0,1/0]],u=250,s=pl,l=Yr("start","zoom","end"),c,f,h,p=500,g=150,_=0,w=10;function y(m){m.property("__zoom",ji).on("wheel.zoom",I,{passive:!1}).on("mousedown.zoom",q).on("dblclick.zoom",G).filter(i).on("touchstart.zoom",z).on("touchmove.zoom",j).on("touchend.zoom touchcancel.zoom",O).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}y.transform=function(m,d,v,M){var k=m.selection?m.selection():m;k.property("__zoom",ji),m!==k?S(m,d,v,M):k.interrupt().each(function(){N(this,arguments).event(M).start().zoom(null,typeof d=="function"?d.apply(this,arguments):d).end()})},y.scaleBy=function(m,d,v,M){y.scaleTo(m,function(){var k=this.__zoom.k,$=typeof d=="function"?d.apply(this,arguments):d;return k*$},v,M)},y.scaleTo=function(m,d,v,M){y.transform(m,function(){var k=n.apply(this,arguments),$=this.__zoom,L=v==null?x(k):typeof v=="function"?v.apply(this,arguments):v,D=$.invert(L),H=typeof d=="function"?d.apply(this,arguments):d;return e(A(E($,H),L,D),k,o)},v,M)},y.translateBy=function(m,d,v,M){y.transform(m,function(){return e(this.__zoom.translate(typeof d=="function"?d.apply(this,arguments):d,typeof v=="function"?v.apply(this,arguments):v),n.apply(this,arguments),o)},null,M)},y.translateTo=function(m,d,v,M,k){y.transform(m,function(){var $=n.apply(this,arguments),L=this.__zoom,D=M==null?x($):typeof M=="function"?M.apply(this,arguments):M;return e(Jr.translate(D[0],D[1]).scale(L.k).translate(typeof d=="function"?-d.apply(this,arguments):-d,typeof v=="function"?-v.apply(this,arguments):-v),$,o)},M,k)};function E(m,d){return d=Math.max(a[0],Math.min(a[1],d)),d===m.k?m:new Tt(d,m.x,m.y)}function A(m,d,v){var M=d[0]-v[0]*m.k,k=d[1]-v[1]*m.k;return M===m.x&&k===m.y?m:new Tt(m.k,M,k)}function x(m){return[(+m[0][0]+ +m[1][0])/2,(+m[0][1]+ +m[1][1])/2]}function S(m,d,v,M){m.on("start.zoom",function(){N(this,arguments).event(M).start()}).on("interrupt.zoom end.zoom",function(){N(this,arguments).event(M).end()}).tween("zoom",function(){var k=this,$=arguments,L=N(k,$).event(M),D=n.apply(k,$),H=v==null?x(D):typeof v=="function"?v.apply(k,$):v,J=Math.max(D[1][0]-D[0][0],D[1][1]-D[0][1]),W=k.__zoom,tt=typeof d=="function"?d.apply(k,$):d,Pt=s(W.invert(H).concat(J/W.k),tt.invert(H).concat(J/tt.k));return function(vt){if(vt===1)vt=tt;else{var $t=Pt(vt),De=J/$t[2];vt=new Tt(De,H[0]-$t[0]*De,H[1]-$t[1]*De)}L.zoom(null,vt)}})}function N(m,d,v){return!v&&m.__zooming||new T(m,d)}function T(m,d){this.that=m,this.args=d,this.active=0,this.sourceEvent=null,this.extent=n.apply(m,d),this.taps=0}T.prototype={event:function(m){return m&&(this.sourceEvent=m),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(m,d){return this.mouse&&m!=="mouse"&&(this.mouse[1]=d.invert(this.mouse[0])),this.touch0&&m!=="touch"&&(this.touch0[1]=d.invert(this.touch0[0])),this.touch1&&m!=="touch"&&(this.touch1[1]=d.invert(this.touch1[0])),this.that.__zoom=d,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(m){var d=zt(this.that).datum();l.call(m,this.that,new kf(m,{sourceEvent:this.sourceEvent,target:y,transform:this.that.__zoom,dispatch:l}),d)}};function I(m,...d){if(!t.apply(this,arguments))return;var v=N(this,d).event(m),M=this.__zoom,k=Math.max(a[0],Math.min(a[1],M.k*Math.pow(2,r.apply(this,arguments)))),$=Ht(m);if(v.wheel)(v.mouse[0][0]!==$[0]||v.mouse[0][1]!==$[1])&&(v.mouse[1]=M.invert(v.mouse[0]=$)),clearTimeout(v.wheel);else{if(M.k===k)return;v.mouse=[$,M.invert($)],ne(this),v.start()}ln(m),v.wheel=setTimeout(L,g),v.zoom("mouse",e(A(E(M,k),v.mouse[0],v.mouse[1]),v.extent,o));function L(){v.wheel=null,v.end()}}function q(m,...d){if(h||!t.apply(this,arguments))return;var v=m.currentTarget,M=N(this,d,!0).event(m),k=zt(m.view).on("mousemove.zoom",H,!0).on("mouseup.zoom",J,!0),$=Ht(m,v),L=m.clientX,D=m.clientY;Fs(m.view),Ke(m),M.mouse=[$,this.__zoom.invert($)],ne(this),M.start();function H(W){if(ln(W),!M.moved){var tt=W.clientX-L,Pt=W.clientY-D;M.moved=tt*tt+Pt*Pt>_}M.event(W).zoom("mouse",e(A(M.that.__zoom,M.mouse[0]=Ht(W,v),M.mouse[1]),M.extent,o))}function J(W){k.on("mousemove.zoom mouseup.zoom",null),Gs(W.view,M.moved),ln(W),M.event(W).end()}}function G(m,...d){if(t.apply(this,arguments)){var v=this.__zoom,M=Ht(m.changedTouches?m.changedTouches[0]:m,this),k=v.invert(M),$=v.k*(m.shiftKey?.5:2),L=e(A(E(v,$),M,k),n.apply(this,d),o);ln(m),u>0?zt(this).transition().duration(u).call(S,L,M,m):zt(this).call(y.transform,L,M,m)}}function z(m,...d){if(t.apply(this,arguments)){var v=m.touches,M=v.length,k=N(this,d,m.changedTouches.length===M).event(m),$,L,D,H;for(Ke(m),L=0;L<M;++L)D=v[L],H=Ht(D,this),H=[H,this.__zoom.invert(H),D.identifier],k.touch0?!k.touch1&&k.touch0[2]!==H[2]&&(k.touch1=H,k.taps=0):(k.touch0=H,$=!0,k.taps=1+!!c);c&&(c=clearTimeout(c)),$&&(k.taps<2&&(f=H[0],c=setTimeout(function(){c=null},p)),ne(this),k.start())}}function j(m,...d){if(this.__zooming){var v=N(this,d).event(m),M=m.changedTouches,k=M.length,$,L,D,H;for(ln(m),$=0;$<k;++$)L=M[$],D=Ht(L,this),v.touch0&&v.touch0[2]===L.identifier?v.touch0[0]=D:v.touch1&&v.touch1[2]===L.identifier&&(v.touch1[0]=D);if(L=v.that.__zoom,v.touch1){var J=v.touch0[0],W=v.touch0[1],tt=v.touch1[0],Pt=v.touch1[1],vt=(vt=tt[0]-J[0])*vt+(vt=tt[1]-J[1])*vt,$t=($t=Pt[0]-W[0])*$t+($t=Pt[1]-W[1])*$t;L=E(L,Math.sqrt(vt/$t)),D=[(J[0]+tt[0])/2,(J[1]+tt[1])/2],H=[(W[0]+Pt[0])/2,(W[1]+Pt[1])/2]}else if(v.touch0)D=v.touch0[0],H=v.touch0[1];else return;v.zoom("touch",e(A(L,D,H),v.extent,o))}}function O(m,...d){if(this.__zooming){var v=N(this,d).event(m),M=m.changedTouches,k=M.length,$,L;for(Ke(m),h&&clearTimeout(h),h=setTimeout(function(){h=null},p),$=0;$<k;++$)L=M[$],v.touch0&&v.touch0[2]===L.identifier?delete v.touch0:v.touch1&&v.touch1[2]===L.identifier&&delete v.touch1;if(v.touch1&&!v.touch0&&(v.touch0=v.touch1,delete v.touch1),v.touch0)v.touch0[1]=this.__zoom.invert(v.touch0[0]);else if(v.end(),v.taps===2&&(L=Ht(L,this),Math.hypot(f[0]-L[0],f[1]-L[1])<w)){var D=zt(this).on("dblclick.zoom");D&&D.apply(this,arguments)}}}return y.wheelDelta=function(m){return arguments.length?(r=typeof m=="function"?m:Wn(+m),y):r},y.filter=function(m){return arguments.length?(t=typeof m=="function"?m:Wn(!!m),y):t},y.touchable=function(m){return arguments.length?(i=typeof m=="function"?m:Wn(!!m),y):i},y.extent=function(m){return arguments.length?(n=typeof m=="function"?m:Wn([[+m[0][0],+m[0][1]],[+m[1][0],+m[1][1]]]),y):n},y.scaleExtent=function(m){return arguments.length?(a[0]=+m[0],a[1]=+m[1],y):[a[0],a[1]]},y.translateExtent=function(m){return arguments.length?(o[0][0]=+m[0][0],o[1][0]=+m[1][0],o[0][1]=+m[0][1],o[1][1]=+m[1][1],y):[[o[0][0],o[0][1]],[o[1][0],o[1][1]]]},y.constrain=function(m){return arguments.length?(e=m,y):e},y.duration=function(m){return arguments.length?(u=+m,y):u},y.interpolate=function(m){return arguments.length?(s=m,y):s},y.on=function(){var m=l.on.apply(l,arguments);return m===l?y:m},y.clickDistance=function(m){return arguments.length?(_=(m=+m)*m,y):Math.sqrt(_)},y.tapDistance=function(m){return arguments.length?(w=+m,y):w},y}const zf=ea(void 0),Tf={x:0,y:0,k:1,transformString:"translate(0 0) scale(1)"},Lf=({value:t=Tf,children:n})=>Q.createElement(zf.Provider,{value:t},n);function Ji(t,n,e){const r=(t*e.k-t)/2,i=(n*e.k-n)/2;return[t/2-(r+e.x)/e.k,n/2-(i+e.y)/e.k]}function Qi(t,n,e,r,i,a){const o=t([r,i]);return o?{x:n/2-o[0]*a,y:e/2-o[1]*a,k:a}:null}function If({center:t=[0,0],filterZoomEvent:n,onMoveStart:e,onMoveEnd:r,onMove:i,translateExtent:a=[[-1/0,-1/0],[1/0,1/0]],scaleExtent:o=[1,8],zoom:u=1}){const{width:s,height:l,projection:c}=Dt(),[f,h]=t,[p,g]=Ot(()=>Qi(c,s,l,f,h,u)??{x:0,y:0,k:1}),_=Bt(null),w=Bt(null),y=Bt(null),E=Bt(!1),[A,x]=a,[S,N]=A,[T,I]=x,[q,G]=o,z=Bt(e),j=Bt(i),O=Bt(r),m=Bt(n);return Qt(()=>{z.current=e,j.current=i,O.current=r,m.current=n}),Qt(()=>{const d=w.current;if(!d)return;const v=zt(d),M=Rf().extent([[0,0],[s,l]]).filter(k=>{if(m.current)return m.current(k);const $=k;return!!k&&!$.ctrlKey&&!$.button}).scaleExtent([q,G]).translateExtent([[S,N],[T,I]]).on("start",k=>{if(!z.current||E.current)return;const $=c.invert?.(Ji(s,l,k.transform));z.current({coordinates:$??void 0,zoom:k.transform.k},k)}).on("zoom",k=>{if(E.current)return;const{transform:$,sourceEvent:L}=k;g({x:$.x,y:$.y,k:$.k,dragging:L}),j.current&&j.current({x:$.x,y:$.y,zoom:$.k,dragging:L},k)}).on("end",k=>{if(E.current)return void(E.current=!1);const $=c.invert?.(Ji(s,l,k.transform));if($){const[L,D]=$;_.current={x:L,y:D,k:k.transform.k}}O.current&&O.current({coordinates:$??void 0,zoom:k.transform.k},k)});y.current=M,v.call(M)},[s,l,S,N,T,I,q,G,c]),Qt(()=>{if(_.current&&f===_.current.x&&h===_.current.y&&u===_.current.k)return;const d=Qi(c,s,l,f,h,u);if(!d||!w.current||!y.current)return;const v=zt(w.current);E.current=!0,v.call(y.current.transform,Jr.translate(d.x,d.y).scale(d.k)),g(M=>M.x===d.x&&M.y===d.y&&M.k===d.k?M:d),_.current={x:f,y:h,k:u}},[f,h,u,s,l,c]),{mapRef:w,position:p,transformString:`translate(${p.x} ${p.y}) scale(${p.k})`}}const qf=qt(({center:t=[0,0],zoom:n=1,minZoom:e=1,maxZoom:r=8,translateExtent:i,filterZoomEvent:a,onMoveStart:o,onMove:u,onMoveEnd:s,className:l="",children:c,...f},h)=>{const{width:p,height:g}=Dt(),{mapRef:_,transformString:w,position:y}=If({center:t,filterZoomEvent:a,onMoveStart:o,onMove:u,onMoveEnd:s,scaleExtent:[e,r],translateExtent:i,zoom:n});return Q.createElement(Lf,{value:{x:y.x,y:y.y,k:y.k,transformString:w}},Q.createElement("g",{ref:_},Q.createElement("rect",{width:p,height:g,fill:"transparent"}),Q.createElement("g",{ref:h,transform:w,className:`rsm-zoomable-group ${l}`,...f},c)))});qf.displayName="ZoomableGroup";const Df="_header_lm0yk_1",Bf="_subtitle_lm0yk_10",Ff="_mapCard_lm0yk_17",Gf="_canvasWrap_lm0yk_28",Hf="_mapSvg_lm0yk_33",Xf="_tooltip_lm0yk_39",Of="_statsGrid_lm0yk_63",Yf="_statCard_lm0yk_73",Kf="_statValue_lm0yk_96",Vf="_statLabel_lm0yk_104",Wf="_loading_lm0yk_111",Uf="_error_lm0yk_118",Zf="_glow_lm0yk_161",et={header:Df,subtitle:Bf,mapCard:Ff,canvasWrap:Gf,mapSvg:Hf,tooltip:Xf,statsGrid:Of,statCard:Yf,statValue:Kf,statLabel:Vf,loading:Wf,error:Uf,glow:Zf},ta={"Africa/Abidjan":[-4.03,5.32],"Africa/Accra":[-.22,5.55],"Africa/Addis_Ababa":[38.7,9.03],"Africa/Algiers":[3.05,36.78],"Africa/Asmara":[38.88,15.33],"Africa/Bamako":[-8,12.65],"Africa/Bangui":[18.58,4.37],"Africa/Banjul":[-16.65,13.47],"Africa/Bissau":[-15.58,11.85],"Africa/Blantyre":[35,-15.78],"Africa/Brazzaville":[15.28,-4.27],"Africa/Bujumbura":[29.37,-3.38],"Africa/Cairo":[31.25,30.05],"Africa/Casablanca":[-7.58,33.65],"Africa/Ceuta":[-5.32,35.88],"Africa/Conakry":[-13.72,9.52],"Africa/Dakar":[-17.43,14.67],"Africa/Dar_es_Salaam":[39.28,-6.8],"Africa/Djibouti":[43.15,11.6],"Africa/Douala":[9.7,4.05],"Africa/El_Aaiun":[-13.2,27.15],"Africa/Freetown":[-13.25,8.5],"Africa/Gaborone":[25.92,-24.65],"Africa/Harare":[31.05,-17.83],"Africa/Johannesburg":[28,-26.25],"Africa/Juba":[31.62,4.85],"Africa/Kampala":[32.42,.32],"Africa/Khartoum":[32.53,15.6],"Africa/Kigali":[30.07,-1.95],"Africa/Kinshasa":[15.3,-4.3],"Africa/Lagos":[3.4,6.45],"Africa/Libreville":[9.45,.38],"Africa/Lome":[1.22,6.13],"Africa/Luanda":[13.23,-8.8],"Africa/Lubumbashi":[27.47,-11.67],"Africa/Lusaka":[28.28,-15.42],"Africa/Malabo":[8.78,3.75],"Africa/Maputo":[32.58,-25.97],"Africa/Maseru":[27.5,-29.47],"Africa/Mbabane":[31.1,-26.3],"Africa/Mogadishu":[45.37,2.07],"Africa/Monrovia":[-10.78,6.3],"Africa/Nairobi":[36.82,-1.28],"Africa/Ndjamena":[15.05,12.12],"Africa/Niamey":[2.12,13.52],"Africa/Nouakchott":[-15.95,18.1],"Africa/Ouagadougou":[-1.52,12.37],"Africa/Porto-Novo":[2.62,6.48],"Africa/Sao_Tome":[6.73,.33],"Africa/Tripoli":[13.18,32.9],"Africa/Tunis":[10.18,36.8],"Africa/Windhoek":[17.1,-22.57],"America/Adak":[-176.66,51.88],"America/Anchorage":[-149.9,61.22],"America/Anguilla":[-63.07,18.2],"America/Antigua":[-61.8,17.05],"America/Araguaina":[-48.2,-7.2],"America/Argentina/Buenos_Aires":[-58.45,-34.6],"America/Argentina/Catamarca":[-65.78,-28.47],"America/Argentina/Cordoba":[-64.18,-31.4],"America/Argentina/Jujuy":[-65.3,-24.18],"America/Argentina/La_Rioja":[-66.85,-29.43],"America/Argentina/Mendoza":[-68.82,-32.88],"America/Argentina/Rio_Gallegos":[-69.22,-51.63],"America/Argentina/Salta":[-65.42,-24.78],"America/Argentina/San_Juan":[-68.52,-31.53],"America/Argentina/San_Luis":[-66.35,-33.32],"America/Argentina/Tucuman":[-65.22,-26.82],"America/Argentina/Ushuaia":[-68.3,-54.8],"America/Aruba":[-69.97,12.5],"America/Asuncion":[-57.67,-25.27],"America/Atikokan":[-91.62,48.76],"America/Bahia":[-38.52,-12.98],"America/Bahia_Banderas":[-105.25,20.8],"America/Barbados":[-59.62,13.1],"America/Belem":[-48.48,-1.45],"America/Belize":[-88.2,17.5],"America/Blanc-Sablon":[-57.12,51.42],"America/Boa_Vista":[-60.67,2.82],"America/Bogota":[-74.08,4.6],"America/Boise":[-116.2,43.61],"America/Cambridge_Bay":[-105.05,69.11],"America/Campo_Grande":[-54.62,-20.45],"America/Cancun":[-86.77,21.08],"America/Caracas":[-66.93,10.5],"America/Cayenne":[-52.33,4.93],"America/Cayman":[-81.38,19.3],"America/Chicago":[-87.65,41.85],"America/Chihuahua":[-106.08,28.63],"America/Ciudad_Juarez":[-106.48,31.73],"America/Costa_Rica":[-84.08,9.93],"America/Coyhaique":[-72.07,-45.57],"America/Creston":[-116.52,49.1],"America/Cuiaba":[-56.08,-15.58],"America/Curacao":[-69,12.18],"America/Danmarkshavn":[-18.67,76.77],"America/Dawson":[-139.42,64.07],"America/Dawson_Creek":[-120.23,55.77],"America/Denver":[-104.98,39.74],"America/Detroit":[-83.05,42.33],"America/Dominica":[-61.4,15.3],"America/Edmonton":[-113.47,53.55],"America/Eirunepe":[-69.87,-6.67],"America/El_Salvador":[-89.2,13.7],"America/Fort_Nelson":[-122.7,58.8],"America/Fortaleza":[-38.5,-3.72],"America/Glace_Bay":[-59.95,46.2],"America/Goose_Bay":[-60.42,53.33],"America/Grand_Turk":[-71.13,21.47],"America/Grenada":[-61.75,12.05],"America/Guadeloupe":[-61.53,16.23],"America/Guatemala":[-90.52,14.63],"America/Guayaquil":[-79.83,-2.17],"America/Guyana":[-58.17,6.8],"America/Halifax":[-63.6,44.65],"America/Havana":[-82.37,23.13],"America/Hermosillo":[-110.97,29.07],"America/Indiana/Indianapolis":[-86.16,39.77],"America/Indiana/Knox":[-86.62,41.3],"America/Indiana/Marengo":[-86.34,38.38],"America/Indiana/Petersburg":[-87.28,38.49],"America/Indiana/Tell_City":[-86.76,37.95],"America/Indiana/Vevay":[-85.07,38.75],"America/Indiana/Vincennes":[-87.53,38.68],"America/Indiana/Winamac":[-86.6,41.05],"America/Inuvik":[-133.72,68.35],"America/Iqaluit":[-68.47,63.73],"America/Jamaica":[-76.79,17.97],"America/Juneau":[-134.42,58.3],"America/Kentucky/Louisville":[-85.76,38.25],"America/Kentucky/Monticello":[-84.85,36.83],"America/Kralendijk":[-68.28,12.15],"America/La_Paz":[-68.15,-16.5],"America/Lima":[-77.05,-12.05],"America/Los_Angeles":[-118.24,34.05],"America/Lower_Princes":[-63.05,18.05],"America/Maceio":[-35.72,-9.67],"America/Managua":[-86.28,12.15],"America/Manaus":[-60.02,-3.13],"America/Marigot":[-63.08,18.07],"America/Martinique":[-61.08,14.6],"America/Matamoros":[-97.5,25.83],"America/Mazatlan":[-106.42,23.22],"America/Menominee":[-87.61,45.11],"America/Merida":[-89.62,20.97],"America/Metlakatla":[-131.58,55.13],"America/Mexico_City":[-99.15,19.4],"America/Miquelon":[-56.33,47.05],"America/Moncton":[-64.78,46.1],"America/Monterrey":[-100.32,25.67],"America/Montevideo":[-56.21,-34.91],"America/Montserrat":[-62.22,16.72],"America/Nassau":[-77.35,25.08],"America/New_York":[-74.01,40.71],"America/Nome":[-165.41,64.5],"America/Noronha":[-32.42,-3.85],"America/North_Dakota/Beulah":[-101.78,47.26],"America/North_Dakota/Center":[-101.3,47.12],"America/North_Dakota/New_Salem":[-101.41,46.85],"America/Nuuk":[-51.73,64.18],"America/Ojinaga":[-104.42,29.57],"America/Panama":[-79.53,8.97],"America/Paramaribo":[-55.17,5.83],"America/Phoenix":[-112.07,33.45],"America/Port-au-Prince":[-72.33,18.53],"America/Port_of_Spain":[-61.52,10.65],"America/Porto_Velho":[-63.9,-8.77],"America/Puerto_Rico":[-66.11,18.47],"America/Punta_Arenas":[-70.92,-53.15],"America/Rankin_Inlet":[-92.08,62.82],"America/Recife":[-34.9,-8.05],"America/Regina":[-104.65,50.4],"America/Resolute":[-94.83,74.7],"America/Rio_Branco":[-67.8,-9.97],"America/Santarem":[-54.87,-2.43],"America/Santiago":[-70.67,-33.45],"America/Santo_Domingo":[-69.9,18.47],"America/Sao_Paulo":[-46.62,-23.53],"America/Scoresbysund":[-21.97,70.48],"America/Sitka":[-135.3,57.18],"America/St_Barthelemy":[-62.85,17.88],"America/St_Johns":[-52.72,47.57],"America/St_Kitts":[-62.72,17.3],"America/St_Lucia":[-61,14.02],"America/St_Thomas":[-64.93,18.35],"America/St_Vincent":[-61.23,13.15],"America/Swift_Current":[-107.83,50.28],"America/Tegucigalpa":[-87.22,14.1],"America/Thule":[-68.78,76.57],"America/Tijuana":[-117.02,32.53],"America/Toronto":[-79.38,43.65],"America/Tortola":[-64.62,18.45],"America/Vancouver":[-123.12,49.27],"America/Whitehorse":[-135.05,60.72],"America/Winnipeg":[-97.15,49.88],"America/Yakutat":[-139.73,59.55],"Antarctica/Casey":[110.52,-66.28],"Antarctica/Davis":[77.97,-68.58],"Antarctica/DumontDUrville":[140.02,-66.67],"Antarctica/Macquarie":[158.95,-54.5],"Antarctica/Mawson":[62.88,-67.6],"Antarctica/McMurdo":[166.6,-77.83],"Antarctica/Palmer":[-64.1,-64.8],"Antarctica/Rothera":[-68.13,-67.57],"Antarctica/Syowa":[39.59,-69.01],"Antarctica/Troll":[2.53,-72.01],"Antarctica/Vostok":[106.9,-78.4],"Arctic/Longyearbyen":[16,78],"Asia/Aden":[45.2,12.75],"Asia/Almaty":[76.95,43.25],"Asia/Amman":[35.93,31.95],"Asia/Anadyr":[177.48,64.75],"Asia/Aqtau":[50.27,44.52],"Asia/Aqtobe":[57.17,50.28],"Asia/Ashgabat":[58.38,37.95],"Asia/Atyrau":[51.93,47.12],"Asia/Baghdad":[44.42,33.35],"Asia/Bahrain":[50.58,26.38],"Asia/Baku":[49.85,40.38],"Asia/Bangkok":[100.52,13.75],"Asia/Barnaul":[83.75,53.37],"Asia/Beirut":[35.5,33.88],"Asia/Bishkek":[74.6,42.9],"Asia/Brunei":[114.92,4.93],"Asia/Chita":[113.47,52.05],"Asia/Colombo":[79.85,6.93],"Asia/Damascus":[36.3,33.5],"Asia/Dhaka":[90.42,23.72],"Asia/Dili":[125.58,-8.55],"Asia/Dubai":[55.3,25.3],"Asia/Dushanbe":[68.8,38.58],"Asia/Famagusta":[33.95,35.12],"Asia/Gaza":[34.47,31.5],"Asia/Hebron":[35.1,31.53],"Asia/Ho_Chi_Minh":[106.67,10.75],"Asia/Hong_Kong":[114.15,22.28],"Asia/Hovd":[91.65,48.02],"Asia/Irkutsk":[104.33,52.27],"Asia/Jakarta":[106.8,-6.17],"Asia/Jayapura":[140.7,-2.53],"Asia/Jerusalem":[35.22,31.78],"Asia/Kabul":[69.2,34.52],"Asia/Kamchatka":[158.65,53.02],"Asia/Karachi":[67.05,24.87],"Asia/Kathmandu":[85.32,27.72],"Asia/Khandyga":[135.55,62.66],"Asia/Kolkata":[88.37,22.53],"Asia/Krasnoyarsk":[92.83,56.02],"Asia/Kuala_Lumpur":[101.7,3.17],"Asia/Kuching":[110.33,1.55],"Asia/Kuwait":[47.98,29.33],"Asia/Macau":[113.54,22.2],"Asia/Magadan":[150.8,59.57],"Asia/Makassar":[119.4,-5.12],"Asia/Manila":[120.97,14.59],"Asia/Muscat":[58.58,23.6],"Asia/Nicosia":[33.37,35.17],"Asia/Novokuznetsk":[87.12,53.75],"Asia/Novosibirsk":[82.92,55.03],"Asia/Omsk":[73.4,55],"Asia/Oral":[51.35,51.22],"Asia/Phnom_Penh":[104.92,11.55],"Asia/Pontianak":[109.33,-.03],"Asia/Pyongyang":[125.75,39.02],"Asia/Qatar":[51.53,25.28],"Asia/Qostanay":[63.62,53.2],"Asia/Qyzylorda":[65.47,44.8],"Asia/Riyadh":[46.72,24.63],"Asia/Sakhalin":[142.7,46.97],"Asia/Samarkand":[66.8,39.67],"Asia/Seoul":[126.97,37.55],"Asia/Shanghai":[121.47,31.23],"Asia/Singapore":[103.85,1.28],"Asia/Srednekolymsk":[153.72,67.47],"Asia/Taipei":[121.5,25.05],"Asia/Tashkent":[69.3,41.33],"Asia/Tbilisi":[44.82,41.72],"Asia/Tehran":[51.43,35.67],"Asia/Thimphu":[89.65,27.47],"Asia/Tokyo":[139.74,35.65],"Asia/Tomsk":[84.97,56.5],"Asia/Ulaanbaatar":[106.88,47.92],"Asia/Urumqi":[87.58,43.8],"Asia/Ust-Nera":[143.23,64.56],"Asia/Vientiane":[102.6,17.97],"Asia/Vladivostok":[131.93,43.17],"Asia/Yakutsk":[129.67,62],"Asia/Yangon":[96.17,16.78],"Asia/Yekaterinburg":[60.6,56.85],"Asia/Yerevan":[44.5,40.18],"Atlantic/Azores":[-25.67,37.73],"Atlantic/Bermuda":[-64.77,32.28],"Atlantic/Canary":[-15.4,28.1],"Atlantic/Cape_Verde":[-23.52,14.92],"Atlantic/Faroe":[-6.77,62.02],"Atlantic/Madeira":[-16.9,32.63],"Atlantic/Reykjavik":[-21.85,64.15],"Atlantic/South_Georgia":[-36.53,-54.27],"Atlantic/St_Helena":[-5.7,-15.92],"Atlantic/Stanley":[-57.85,-51.7],"Australia/Adelaide":[138.58,-34.92],"Australia/Brisbane":[153.03,-27.47],"Australia/Broken_Hill":[141.45,-31.95],"Australia/Darwin":[130.83,-12.47],"Australia/Eucla":[128.87,-31.72],"Australia/Hobart":[147.32,-42.88],"Australia/Lindeman":[149,-20.27],"Australia/Lord_Howe":[159.08,-31.55],"Australia/Melbourne":[144.97,-37.82],"Australia/Perth":[115.85,-31.95],"Australia/Sydney":[151.22,-33.87],"Europe/Amsterdam":[4.9,52.37],"Europe/Andorra":[1.52,42.5],"Europe/Astrakhan":[48.05,46.35],"Europe/Athens":[23.72,37.97],"Europe/Belgrade":[20.5,44.83],"Europe/Berlin":[13.37,52.5],"Europe/Bratislava":[17.12,48.15],"Europe/Brussels":[4.33,50.83],"Europe/Bucharest":[26.1,44.43],"Europe/Budapest":[19.08,47.5],"Europe/Busingen":[8.68,47.7],"Europe/Chisinau":[28.83,47],"Europe/Copenhagen":[12.58,55.67],"Europe/Dublin":[-6.25,53.33],"Europe/Gibraltar":[-5.35,36.13],"Europe/Guernsey":[-2.54,49.45],"Europe/Helsinki":[24.97,60.17],"Europe/Isle_of_Man":[-4.47,54.15],"Europe/Istanbul":[28.97,41.02],"Europe/Jersey":[-2.11,49.18],"Europe/Kaliningrad":[20.5,54.72],"Europe/Kirov":[49.65,58.6],"Europe/Kyiv":[30.52,50.43],"Europe/Lisbon":[-9.13,38.72],"Europe/Ljubljana":[14.52,46.05],"Europe/London":[-.13,51.51],"Europe/Luxembourg":[6.15,49.6],"Europe/Madrid":[-3.68,40.4],"Europe/Malta":[14.52,35.9],"Europe/Mariehamn":[19.95,60.1],"Europe/Minsk":[27.57,53.9],"Europe/Monaco":[7.38,43.7],"Europe/Moscow":[37.62,55.76],"Europe/Oslo":[10.75,59.92],"Europe/Paris":[2.33,48.87],"Europe/Podgorica":[19.27,42.43],"Europe/Prague":[14.43,50.08],"Europe/Riga":[24.1,56.95],"Europe/Rome":[12.48,41.9],"Europe/Samara":[50.15,53.2],"Europe/San_Marino":[12.47,43.92],"Europe/Sarajevo":[18.42,43.87],"Europe/Saratov":[46.03,51.57],"Europe/Simferopol":[34.1,44.95],"Europe/Skopje":[21.43,41.98],"Europe/Sofia":[23.32,42.68],"Europe/Stockholm":[18.05,59.33],"Europe/Tallinn":[24.75,59.42],"Europe/Tirane":[19.83,41.33],"Europe/Ulyanovsk":[48.4,54.33],"Europe/Vaduz":[9.52,47.15],"Europe/Vatican":[12.45,41.9],"Europe/Vienna":[16.33,48.22],"Europe/Vilnius":[25.32,54.68],"Europe/Volgograd":[44.42,48.73],"Europe/Warsaw":[21,52.25],"Europe/Zagreb":[15.97,45.8],"Europe/Zurich":[8.53,47.38],"Indian/Antananarivo":[47.52,-18.92],"Indian/Chagos":[72.42,-7.33],"Indian/Christmas":[105.72,-10.42],"Indian/Cocos":[96.92,-12.17],"Indian/Comoro":[43.27,-11.68],"Indian/Kerguelen":[70.22,-49.35],"Indian/Mahe":[55.47,-4.67],"Indian/Maldives":[73.5,4.17],"Indian/Mauritius":[57.5,-20.17],"Indian/Mayotte":[45.23,-12.78],"Indian/Reunion":[55.47,-20.87],"Pacific/Apia":[-171.73,-13.83],"Pacific/Auckland":[174.77,-36.87],"Pacific/Bougainville":[155.57,-6.22],"Pacific/Chatham":[-176.55,-43.95],"Pacific/Chuuk":[151.78,7.42],"Pacific/Easter":[-109.43,-27.15],"Pacific/Efate":[168.42,-17.67],"Pacific/Fakaofo":[-171.23,-9.37],"Pacific/Fiji":[178.42,-18.13],"Pacific/Funafuti":[179.22,-8.52],"Pacific/Galapagos":[-89.6,-.9],"Pacific/Gambier":[-134.95,-23.13],"Pacific/Guadalcanal":[160.2,-9.53],"Pacific/Guam":[144.75,13.47],"Pacific/Honolulu":[-157.86,21.31],"Pacific/Kanton":[-171.72,-2.78],"Pacific/Kiritimati":[-157.33,1.87],"Pacific/Kosrae":[162.98,5.32],"Pacific/Kwajalein":[167.33,9.08],"Pacific/Majuro":[171.2,7.15],"Pacific/Marquesas":[-139.5,-9],"Pacific/Midway":[-177.37,28.22],"Pacific/Nauru":[166.92,-.52],"Pacific/Niue":[-169.92,-19.02],"Pacific/Norfolk":[167.97,-29.05],"Pacific/Noumea":[166.45,-22.27],"Pacific/Pago_Pago":[-170.7,-14.27],"Pacific/Palau":[134.48,7.33],"Pacific/Pitcairn":[-130.08,-25.07],"Pacific/Pohnpei":[158.22,6.97],"Pacific/Port_Moresby":[147.17,-9.5],"Pacific/Rarotonga":[-159.77,-21.23],"Pacific/Saipan":[145.75,15.2],"Pacific/Tahiti":[-149.57,-17.53],"Pacific/Tarawa":[173,1.42],"Pacific/Tongatapu":[-175.2,-21.13],"Pacific/Wake":[166.62,19.28],"Pacific/Wallis":[-176.17,-13.3]},na="https://script.google.com/macros/s/AKfycbxpllCbhqNjqFN02er9WV-0Tv-Y9br13UqXZqGHzSMetAgqKaFX5oFKGHgxji1fxJ6udw/exec",jf="https://cdn.jsdelivr.net/npm/world-atlas@2/countries-110m.json",t0=()=>{const[t,n]=Ot(null),[e,r]=Ot(!0),[i,a]=Ot(""),[o,u]=Ot(null),[s,l]=Ot({x:0,y:0});Qt(()=>{document.title="Map - dango"},[]),Qt(()=>{(async()=>{try{const[h,p]=await Promise.all([fetch(`${na}?type=locations`),fetch(na)]),g=await h.json(),_=await p.json(),w=g&&g.locations||{},y={};for(const[E,A]of Object.entries(w))!E||E==="Unknown"||ta[E]&&(y[E]=A);n({locations:y,total:(_&&_.total)??0,active:(_&&_.active)??0})}catch(h){console.error("Map fetch failed:",h),a("Failed to load map data. Please try again later.")}finally{r(!1)}})()},[]);const c=[];if(t){Math.max(1,...Object.values(t.locations));for(const[f,h]of Object.entries(t.locations)){const p=ta[f];if(!p)continue;const g=1.5+Math.min(3,Math.sqrt(h+1)*.6-.8);c.push({tz:f,count:h,coordinates:p,r:g})}}return e?X("div",{className:et.loading,children:"Loading global map..."}):i?X("div",{className:et.error,children:i}):t?X("div",{className:"page-container",children:[X("div",{className:et.header,children:X("div",{children:[X("h2",{className:"section-title",children:"Global User Map"}),X("p",{className:et.subtitle,children:"Purple dots show where installations are located, derived from the timezone each device reports. Hover a dot for details."})]})}),X("div",{className:et.mapCard,children:X("div",{className:et.canvasWrap,children:[X(Oa,{projection:"geoEqualEarth",projectionConfig:{rotate:[0,0,0],scale:105},className:et.mapSvg,children:[X(Ya,{geography:jf,children:({geographies:f})=>f.map(h=>X(nc,{geography:h,fill:"#1a1a2e",stroke:"#2a2a4a",strokeWidth:.5,style:{default:{outline:"none"},hover:{outline:"none",fill:"#252545"},pressed:{outline:"none"}}},h.rsmKey))}),c.map(f=>X(Ua,{coordinates:f.coordinates,onMouseEnter:h=>{u(f),l({x:h.clientX,y:h.clientY})},onMouseMove:h=>{l({x:h.clientX,y:h.clientY})},onMouseLeave:()=>u(null),children:[X("circle",{r:f.r+3,fill:"#a855f7",className:et.glow}),X("circle",{r:f.r,fill:"#a855f7",stroke:"#a855f7",strokeWidth:.8})]},f.tz))]}),o&&X("div",{className:et.tooltip,style:{left:s.x+14,top:s.y-40,position:"fixed"},children:[X("strong",{children:o.tz}),X("span",{children:[o.count," user",o.count===1?"":"s"]})]}),X("div",{className:et.statsGrid,children:[X("div",{className:et.statCard,children:[X(Mo,{}),X("div",{children:[X("span",{className:et.statValue,children:t.total}),X("span",{className:et.statLabel,children:"Total Users"})]})]}),X("div",{className:et.statCard,children:[X(ko,{}),X("div",{children:[X("span",{className:et.statValue,children:t.active}),X("span",{className:et.statLabel,children:"Active (24h)"})]})]})]})]})})]}):null};export{t0 as default};
@@ -0,0 +1 @@
1
+ import{e as a,f as Le,r as Oe,h as Z,d as n,b as X,S as ee}from"./vendor-rLNfZm7Y.js";import{B as A,an as Ee,am as N,J as Ie,K as ae,F as te,a as re,av as Te,C as Pe}from"./index-CpjgU8ou.js";import{S as $e,a as Ge}from"./SkeletonGrid-D5vRvX5q.js";import{E as we}from"./ErrorMessage-BwSjzblw.js";import{u as Be}from"./useMatureConsent-CZMYBVXd.js";import{s as t}from"./Search.module-D8ZbQAiK.js";import"./useIsMobile-Cb8HcKRj.js";import"./useAnimeInfoData-BOfyi9UJ.js";const ke=({isOpen:s,onClose:i,onGrant:k})=>a(Ee,{isOpen:s,title:"Content Warning",onClose:i,children:a("div",{style:{padding:"1rem",textAlign:"center"},children:[a("p",{children:"This title contains mature content intended for adult audiences."}),a("p",{children:["By proceeding, you confirm that you are ",a("strong",{children:"18 years of age or older"})," (or the age of majority in your jurisdiction) and wish to view this content."]}),a("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[a(A,{variant:"secondary",onClick:i,children:"Go Back"}),a(A,{onClick:k,children:"I'm 18+, Continue"})]})]})}),Fe="_shrinkSelect_130sm_1",Re="_tightGrid_130sm_7",C={shrinkSelect:Fe,tightGrid:Re},le=[{value:"anilist",label:"AniList"},{value:"mal",label:"MAL"},{value:"wh",label:"WH"},{value:"op",label:"OP"},{value:"ht",label:"HT"},{value:"hn",label:"HN"}],_e=[{value:"POPULARITY_DESC",label:"Popularity"},{value:"TRENDING_DESC",label:"Trending"},{value:"SCORE_DESC",label:"Score"},{value:"START_DATE_DESC",label:"Newest"},{value:"FAVOURITES_DESC",label:"Favourites"}],De=[{value:"",label:"All Status"},{value:"RELEASING",label:"Currently Airing"},{value:"FINISHED",label:"Finished"},{value:"NOT_YET_RELEASED",label:"Not Yet Released"}],qe=[{value:"",label:"Relevance"},{value:"visits:desc",label:"Most Visited"},{value:"title:asc",label:"Title A-Z"}],Me={recent:"Latest",popular:"Popular",views:"Most Viewed",rating:"Top Rated",random:"Random"},xe=[{value:"ALL",label:"All Seasons"},{value:"Winter",label:"Winter"},{value:"Spring",label:"Spring"},{value:"Summer",label:"Summer"},{value:"Fall",label:"Fall"}],Ue=s=>s==="op"?24:14,x=s=>s.split("-").map(i=>i&&i[0].toUpperCase()+i.slice(1)).join(" ");function Ze(){const s=Le(),[i,k]=Oe(),{hasConsent:F,grant:ie}=Be();Z(()=>{document.title="Mature - dango"},[]);const[r,ne]=n(i.get("provider")||"anilist"),[p,U]=n(i.get("query")||""),[L,R]=n(i.get("query")||""),[o,u]=n(parseInt(i.get("page")||"1",10)||1),[O,_]=n(()=>{const e=i.get("sortBy");return e||(r==="mal"?"SCORE_DESC":"POPULARITY_DESC")}),[E,Y]=n(i.get("provider")==="hn"&&i.get("sortBy")||""),[v,se]=n(i.get("status")||""),[I,oe]=n(i.get("season")||"ALL"),[T,ce]=n(i.get("year")||"ALL"),[c,P]=n(i.get("genre")||""),[D,de]=n(i.get("order")||"recent"),[q,ue]=n(i.get("studio")||""),[$,he]=n(i.get("studio")||""),[me,pe]=n([]),[S,H]=n(!1),[ve,j]=n(null),K=Ue(r),h=e=>{const l=new URLSearchParams;e.provider!=="anilist"&&l.set("provider",e.provider),e.query.trim()&&l.set("query",e.query.trim()),e.page>1&&l.set("page",String(e.page)),e.provider==="anilist"&&(e.sort!=="POPULARITY_DESC"&&l.set("sortBy",e.sort),e.status&&l.set("status",e.status),e.season!=="ALL"&&l.set("season",e.season),e.year!=="ALL"&&l.set("year",e.year)),e.provider==="mal"&&(e.sort!=="SCORE_DESC"&&l.set("sortBy",e.sort),e.status&&l.set("status",e.status)),e.provider==="hn"&&e.hnSort&&l.set("sortBy",e.hnSort),(e.provider==="wh"||e.provider==="ht"||e.provider==="hn")&&e.genre&&l.set("genre",e.genre),e.provider==="op"&&(e.opOrder!=="recent"&&l.set("order",e.opOrder),e.genre&&l.set("genres",e.genre),e.opStudio.trim()&&l.set("studio",e.opStudio.trim())),k(l,{replace:!0})},m=(e={})=>({provider:r,query:L,page:o,sort:O,hnSort:E,status:v,season:I,year:T,genre:c,opOrder:D,opStudio:$,...e}),{data:G}=X({queryKey:["mature-filters"],queryFn:()=>N("/api/mature/filters"),enabled:F,staleTime:1/0}),W=(()=>{const e=new URLSearchParams;return e.set("provider",r),L.trim()&&e.set("query",L.trim()),e.set("page",String(o)),e.set("limit",String(K)),r==="anilist"&&(e.set("sortBy",O),v&&e.set("status",v),I!=="ALL"&&e.set("season",I),T!=="ALL"&&e.set("year",T)),r==="mal"&&(e.set("sortBy",O),v&&e.set("status",v)),r==="hn"&&E&&e.set("sortBy",E),(r==="wh"||r==="ht"||r==="hn")&&c&&e.set("genre",c),r==="op"&&(e.set("order",D),c&&e.set("genres",c),$.trim()&&e.set("studio",$.trim())),e.toString()})(),{data:g,isLoading:ge,isError:fe,error:Se}=X({queryKey:["mature-search",W],queryFn:()=>N(`/api/mature/search?${W}`),enabled:F});Z(()=>{const e=g?.genres;r==="hn"&&e&&e.length>0&&pe(l=>{const f=new Set(l.map(d=>d.slug)),y=[...l];for(const d of e)d.slug&&!f.has(d.slug)&&(f.add(d.slug),y.push(d));return y.length===l.length?l:y})},[g,r]);const w=(g?.data||[]).map(e=>({...e,isAdult:!0})),Q=g?.hasMore??!1,b=()=>{Te(),u(1);let e=c;(r==="wh"||r==="ht"||r==="hn")&&p.trim()&&(e=""),P(e),r==="op"&&he(q),R(p),h(m({query:p,page:1,genre:e,opStudio:r==="op"?q:$}))},be=e=>{ne(e),u(1),Y(""),P(""),e==="mal"?_("SCORE_DESC"):e==="anilist"&&_("POPULARITY_DESC"),R(p),h(m({provider:e,page:1,hnSort:"",genre:"",query:p}))},ye=e=>{P(e),u(1),e&&(U(""),R("")),h(m({genre:e,page:1,query:e?"":L}))},B=e=>{u(e),h(m({page:e})),window.scrollTo({top:0,behavior:"smooth"})},Ne=async(e,l)=>{const f=l.id||l._id;if(r!=="mal"&&!/^\d+$/.test(f)&&(e.preventDefault(),e.stopPropagation(),!ve)){j(f);try{if(r!=="anilist"){let d=!1;try{d=(await N("/api/anilist-status"))?.available===!0}catch{d=!1}if(d){const z=await N(`/api/mature/resolve?title=${encodeURIComponent(l.name)}`);s(`/anime/${z.id}`);return}const V=await fetch("/api/mature/allocate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:r,nativeId:f,title:l.name,thumbnail:l.thumbnail})}),J=await V.json().catch(()=>null);if(!V.ok||!J?.id)throw new Error("Allocate failed");s(`/anime/${J.id}`);return}const y=await N(`/api/mature/resolve?title=${encodeURIComponent(l.name)}`);s(`/anime/${y.id}`)}catch{Pe.error("Could not match this title on AniList")}finally{j(null)}}},M=new Date().getFullYear(),Ce=[{value:"ALL",label:"All Years"},...Array.from({length:M-1980+1},(e,l)=>({value:String(M-l),label:String(M-l)}))],Ae=r==="wh"?(G?.whGenres||[]).map(e=>({value:e,label:x(e)})):r==="ht"?(G?.htGenres||[]).map(e=>({value:e,label:x(e)})):r==="hn"?me.map(e=>({value:e.slug,label:e.name})):[];return F?a("div",{className:"page-container",children:[a("div",{className:t.header,children:[a("h1",{className:t.pageTitle,children:"Mature"}),a("p",{className:t.pageSubtitle,children:"Browse 18+ titles across AniList and streaming providers"})]}),a("div",{className:t.filterContainer,children:[a("div",{className:t.searchBarWrapper,children:[a("div",{className:t.inputIconWrapper,children:[a(Ie,{className:t.searchIcon}),a("input",{type:"text",placeholder:`Search ${le.find(e=>e.value===r)?.label}...`,value:p,onChange:e=>U(e.target.value),onKeyDown:e=>{e.key==="Enter"&&b()},className:t.searchInput})]}),a("div",{className:t.searchActions,children:[a("select",{value:r,onChange:e=>be(e.target.value),className:t.providerSelect,"aria-label":"Provider",children:le.map(e=>a("option",{value:e.value,children:e.label},e.value))}),a(A,{onClick:b,className:t.searchBtn,children:"Search"}),r==="anilist"&&a("button",{onClick:()=>H(!S),className:`${t.filterToggleBtn} ${S?t.active:""}`,children:[a(ae,{})," Filters"]}),r==="mal"&&a("button",{onClick:()=>H(!S),className:`${t.filterToggleBtn} ${S?t.active:""}`,children:[a(ae,{})," Filters"]}),r==="hn"&&a("select",{value:E,onChange:e=>{Y(e.target.value),u(1),h(m({hnSort:e.target.value,page:1}))},className:t.providerSelect,"aria-label":"Sort",children:qe.map(e=>a("option",{value:e.value,children:e.label},e.value))})]})]}),(r==="anilist"||r==="mal")&&a("div",{className:`${t.advancedFilters} ${S?t.show:""}`,children:[a("div",{className:t.filterDivider}),a("div",{className:t.filterGrid,children:[a("div",{className:t.filterItem,children:[a("label",{children:"Sort By"}),a("select",{value:O,onChange:e=>_(e.currentTarget.value),children:_e.map(e=>a("option",{value:e.value,children:e.label},e.value))})]}),a("div",{className:t.filterItem,children:[a("label",{children:"Status"}),a("select",{value:v,onChange:e=>se(e.currentTarget.value),children:De.map(e=>a("option",{value:e.value,children:e.label},e.value))})]}),r==="anilist"&&a(ee,{children:[a("div",{className:t.filterItem,children:[a("label",{children:"Season"}),a("select",{value:I,onChange:e=>oe(e.currentTarget.value),children:xe.map(e=>a("option",{value:e.value,children:e.label},e.value))})]}),a("div",{className:t.filterItem,children:[a("label",{children:"Year"}),a("select",{value:T,onChange:e=>ce(e.currentTarget.value),children:Ce.map(e=>a("option",{value:e.value,children:e.label},e.value))})]})]})]}),a("div",{className:t.filterActions,children:a(A,{onClick:b,className:t.searchBtn,children:"Apply Filters"})})]}),(r==="wh"||r==="ht"||r==="hn")&&a("div",{className:`${t.advancedFilters} ${t.show}`,children:[a("div",{className:t.filterDivider}),a("div",{className:`${t.filterGrid} ${C.tightGrid}`,children:a("div",{className:`${t.filterItem} ${C.shrinkSelect}`,children:[a("label",{children:"Genre"}),a("select",{value:c,onChange:e=>ye(e.target.value),children:[a("option",{value:"",children:"All Genres"}),Ae.map(e=>a("option",{value:e.value,children:e.label},e.value))]})]})}),c&&a("p",{className:t.pageSubtitle,children:["Browsing the ",x(c)," genre — search text is ignored while a genre is selected."]})]}),r==="op"&&a("div",{className:`${t.advancedFilters} ${t.show}`,children:[a("div",{className:t.filterDivider}),a("div",{className:`${t.filterGrid} ${C.tightGrid}`,children:[a("div",{className:`${t.filterItem} ${C.shrinkSelect}`,children:[a("label",{children:"Order"}),a("select",{value:D,onChange:e=>{de(e.target.value),u(1),h(m({opOrder:e.target.value,page:1}))},children:(G?.opOrders||["recent"]).map(e=>a("option",{value:e,children:Me[e]||e},e))})]}),a("div",{className:`${t.filterItem} ${C.shrinkSelect}`,children:[a("label",{children:"Genre"}),a("select",{value:c,onChange:e=>{P(e.target.value),u(1),h(m({genre:e.target.value,page:1}))},children:[a("option",{value:"",children:"All Genres"}),(G?.opTags||[]).map(e=>a("option",{value:e,children:e},e))]})]}),a("div",{className:t.filterItem,children:[a("label",{children:"Studio"}),a("input",{type:"text",placeholder:"Studio name...",value:q,onChange:e=>ue(e.target.value),onKeyDown:e=>{e.key==="Enter"&&b()},className:t.searchInput})]})]}),a("div",{className:t.filterActions,children:a(A,{onClick:b,className:t.searchBtn,children:"Apply Filters"})})]})]}),fe&&a(we,{message:Se?.message||"Search failed"}),ge?a($e,{count:K}):w.length===0?a("div",{className:t.noResults,children:[a("h3",{children:"No results found"}),a("p",{children:"Try a different query, genre or provider"})]}):a(ee,{children:[a("div",{className:t.resultsHeader,children:[a("h2",{className:t.resultsTitle,children:[g?.total??w.length," result",(g?.total??w.length)===1?"":"s"]}),a("div",{className:t.pagination,children:[a("button",{className:t.pageBtn,disabled:o<=1,onClick:()=>B(o-1),children:[a(te,{})," ",a("span",{children:"Prev"})]}),a("span",{className:t.pageInfo,children:["Page ",a("strong",{children:o})]}),a("button",{className:t.pageBtn,disabled:!Q,onClick:()=>B(o+1),children:[a("span",{children:"Next"})," ",a(re,{})]})]})]}),a("div",{className:t.resultsGrid,children:w.map(e=>a("div",{onClickCapture:l=>Ne(l,e),children:a(Ge,{anime:e})},`${r}-${e._id}`))}),a("div",{className:t.bottomPagination,children:a("div",{className:t.pagination,children:[a("button",{className:t.pageBtn,disabled:o<=1,onClick:()=>B(o-1),children:[a(te,{})," ",a("span",{children:"Prev"})]}),a("span",{className:t.pageInfo,children:["Page ",a("strong",{children:o})]}),a("button",{className:t.pageBtn,disabled:!Q,onClick:()=>B(o+1),children:[a("span",{children:"Next"})," ",a(re,{})]})]})})]})]}):a(ke,{isOpen:!0,onClose:()=>s("/"),onGrant:ie})}export{Ze as default};
@@ -0,0 +1 @@
1
+ ._shrinkSelect_130sm_1>select{align-self:flex-start;width:auto;max-width:100%}div._tightGrid_130sm_7{grid-template-columns:repeat(auto-fit,minmax(120px,max-content));justify-content:start;gap:var(--space-4)}
@@ -0,0 +1,30 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/PlayerSettings-BcsotxP9.js","assets/vendor-rLNfZm7Y.js","assets/index-CpjgU8ou.js","assets/index-B6qdXFtl.css","assets/AvSyncCalibrator-vqErH7Cm.js","assets/AvSyncCalibrator-CIYcyon5.css","assets/PlayerSettings-Cqua1CDD.css","assets/index-B8TPVaIS.js"])))=>i.map(i=>d[i]);
2
+ import{g as it,h as E,e as t,P as ur,z as dr,d as k,A as g,T as Ct,$ as pr,u as Ot,q as I,y as mr,b as Gt,a as Dt,p as hr,f as fr,i as gr,_ as vr,S as Bt}from"./vendor-rLNfZm7Y.js";import{F as Yt,a5 as yr,j as br,a6 as _r,X as Sr,a7 as wr,a8 as Cr,a9 as Er,aa as Tr,ab as kr,ac as Nr,ad as Mr,ae as Zt,af as Rr,b as er,c as Wt,ag as Br,ah as Ar,ai as Pr,aj as Lr,ak as lt,al as xr,am as wt,C as dt,n as Ir,o as $r,p as Dr,q as Fr,g as Or,an as Wr,B as At,M as Pt,ao as Vr,ap as Ur,aq as Kt,h as qr,Q as jt,ar as Hr,a as Qr,as as zr}from"./index-CpjgU8ou.js";import{l as Gr}from"./hls-6Owgw2Aj.js";import{C as Kr,p as Ft,s as jr,l as Jr,u as Xr,b as Yr,a as Zr,c as en,r as tn,A as rn}from"./AvSyncCalibrator-vqErH7Cm.js";import{u as nn}from"./useMatureConsent-CZMYBVXd.js";import{u as sn,a as on,Q as an}from"./useIsMobile-Cb8HcKRj.js";import{s as at,Q as ln}from"./QueueRail-B9Pgbqc3.js";import{S as cn,A as un}from"./SynopsisText-BlFw0R-0.js";const dn="_controls_1ua34_1",pn="_titleContainer_1ua34_9",mn="_scheduleInfo_1ua34_15",hn="_status_1ua34_23",fn="_nextEpisode_1ua34_35",gn="_watchlistBtn_1ua34_45",vn="_inList_1ua34_72",yn="_queueBtn_1ua34_83",bn="_queueActive_1ua34_95",_n="_modeToggleBtn_1ua34_101",Sn="_modeToggleActive_1ua34_108",wn="_nativeToggleBtn_1ua34_119",Cn="_nativeToggleActive_1ua34_132",En="_markWatchedBtn_1ua34_153",Tn="_markWatchedDone_1ua34_167",kn="_completeSeriesBtn_1ua34_178",Nn="_providerAndEpisodeRow_1ua34_192",Mn="_episodeActions_1ua34_199",Rn="_desktopEpisodeActions_1ua34_206",Bn="_mobileEpisodeActions_1ua34_213",An="_episodeNavBtn_1ua34_217",Pn="_primary_1ua34_247",Ln="_secondary_1ua34_257",xn="_episodePickerBtn_1ua34_261",In="_queueCountdown_1ua34_265",$n="_speedBoostBadge_1ua34_280",Dn="_videoContainer_1ua34_311",Fn="_loadingOverlay_1ua34_324",On="_loadingDots_1ua34_338",Wn="_dot_1ua34_343",Vn="_bounce_1ua34_1",Un="_bufferingOverlay_1ua34_372",qn="_bufferingSpinner_1ua34_381",Hn="_spin_1ua34_921",Qn="_videoIframe_1ua34_396",zn="_videoElementHidden_1ua34_421",Gn="_upscalerCanvas_1ua34_426",Kn="_upscalerActive_1ua34_439",jn="_upscalerStatusBadge_1ua34_443",Jn="_subtitleOverlay_1ua34_458",Xn="_controlsOverlay_1ua34_470",Yn="_hidden_1ua34_500",Zn="_centerPlayPause_1ua34_506",es="_bottomControls_1ua34_537",ts="_progressBarContainer_1ua34_554",rs="_progressBar_1ua34_554",ns="_scrubbing_1ua34_577",ss="_watchedBar_1ua34_582",os="_bufferedBar_1ua34_583",as="_thumb_1ua34_605",is="_timeBubble_1ua34_626",ls="_skipSegment_1ua34_648",cs="_op_1ua34_662",us="_ed_1ua34_666",ds="_recap_1ua34_670",ps="_bottomControlsRow_1ua34_674",ms="_controlBtn_1ua34_682",hs="_timeDisplay_1ua34_706",fs="_leftControls_1ua34_715",gs="_rightControls_1ua34_716",vs="_middleControls_1ua34_717",ys="_skipControls_1ua34_723",bs="_skipBtn_1ua34_729",_s="_volumeContainer_1ua34_753",Ss="_volumeSlider_1ua34_760",ws="_settingsMenu_1ua34_838",Cs="_slideUp_1ua34_1",Es="_qualityListInMenu_1ua34_877",Ts="_ccOptionsContainer_1ua34_878",ks="_qualityItemInMenu_1ua34_886",Ns="_ccItem_1ua34_887",Ms="_active_1ua34_908",Rs="_sourceLoader_1ua34_915",Bs="_spinner_1ua34_921",As="_skipBubble_1ua34_972",Ps="_skipIcon_1ua34_976",Ls="_skipText_1ua34_979",xs="_watchBtn_1ua34_991",Is="_errorOverlay_1ua34_1037",$s="_retryButton_1ua34_1047",Ds="_skipIndicatorContainer_1ua34_1074",Fs="_leftSkip_1ua34_1074",Os="_rightSkip_1ua34_1077",Ws="_sourceSelectionContainer_1ua34_1082",Vs="_slideUpIn_1ua34_1",Us="_providerSelectContainer_1ua34_1097",qs="_providerSelect_1ua34_1097",Hs="_sourceSelect_1ua34_1082",Qs="_sourceButtons_1ua34_1153",zs="_sourceButton_1ua34_1153",Gs="_detailsBox_1ua34_1185",Ks="_detailsToggleBtn_1ua34_1198",js="_detailsGridContainer_1ua34_1222",Js="_fadeIn_1ua34_1",Xs="_detailItem_1ua34_1234",Ys="_animeStatus_1ua34_1254",Zs="_genresList_1ua34_1267",eo="_genreTag_1ua34_1274",to="_loadingDetails_1ua34_1292",ro="_descriptionSection_1ua34_1299",no="_description_1ua34_1299",so="_epJumpControls_1ua34_1335",oo="_epRangeButtons_1ua34_1346",ao="_metaTags_1ua34_1352",io="_epRangeBtn_1ua34_1359",lo="_epJumpInputGroup_1ua34_1374",co="_fullscreenActive_1ua34_1406",uo="_skipRipple_1ua34_1",po="_errorSubtext_1ua34_1503",m={controls:dn,titleContainer:pn,scheduleInfo:mn,status:hn,nextEpisode:fn,watchlistBtn:gn,inList:vn,queueBtn:yn,queueActive:bn,modeToggleBtn:_n,modeToggleActive:Sn,nativeToggleBtn:wn,nativeToggleActive:Cn,markWatchedBtn:En,markWatchedDone:Tn,completeSeriesBtn:kn,providerAndEpisodeRow:Nn,episodeActions:Mn,desktopEpisodeActions:Rn,mobileEpisodeActions:Bn,episodeNavBtn:An,primary:Pn,secondary:Ln,episodePickerBtn:xn,queueCountdown:In,speedBoostBadge:$n,videoContainer:Dn,loadingOverlay:Fn,loadingDots:On,dot:Wn,bounce:Vn,bufferingOverlay:Un,bufferingSpinner:qn,spin:Hn,videoIframe:Qn,videoElementHidden:zn,upscalerCanvas:Gn,upscalerActive:Kn,upscalerStatusBadge:jn,subtitleOverlay:Jn,controlsOverlay:Xn,hidden:Yn,centerPlayPause:Zn,bottomControls:es,progressBarContainer:ts,progressBar:rs,scrubbing:ns,watchedBar:ss,bufferedBar:os,thumb:as,timeBubble:is,skipSegment:ls,op:cs,ed:us,recap:ds,bottomControlsRow:ps,controlBtn:ms,timeDisplay:hs,leftControls:fs,rightControls:gs,middleControls:vs,skipControls:ys,skipBtn:bs,volumeContainer:_s,volumeSlider:Ss,settingsMenu:ws,slideUp:Cs,qualityListInMenu:Es,ccOptionsContainer:Ts,qualityItemInMenu:ks,ccItem:Ns,active:Ms,sourceLoader:Rs,spinner:Bs,skipBubble:As,skipIcon:Ps,skipText:Ls,watchBtn:xs,errorOverlay:Is,retryButton:$s,skipIndicatorContainer:Ds,leftSkip:Fs,rightSkip:Os,sourceSelectionContainer:Ws,slideUpIn:Vs,providerSelectContainer:Us,providerSelect:qs,sourceSelect:Hs,sourceButtons:Qs,sourceButton:zs,detailsBox:Gs,detailsToggleBtn:Ks,detailsGridContainer:js,fadeIn:Js,detailItem:Xs,animeStatus:Ys,genresList:Zs,genreTag:eo,loadingDetails:to,descriptionSection:ro,description:no,epJumpControls:so,epRangeButtons:oo,metaTags:ao,epRangeBtn:io,epJumpInputGroup:lo,fullscreenActive:co,skipRipple:uo,errorSubtext:po},mo="_playerPageLayout_n8o7e_1",ho="_episodeSidebar_n8o7e_15",fo="_playerMain_n8o7e_28",go="_videoPlayerWrapper_n8o7e_36",vo="_playerInfoHeader_n8o7e_56",yo="_playerAnimeCard_n8o7e_62",bo="_playerInfoContainer_n8o7e_74",_o="_videoTitleSection_n8o7e_98",So="_theaterMode_n8o7e_266",Ze={playerPageLayout:mo,episodeSidebar:ho,playerMain:fo,videoPlayerWrapper:go,playerInfoHeader:vo,playerAnimeCard:yo,playerInfoContainer:bo,videoTitleSection:_o,theaterMode:So},wo="_controlsOverlay_1b7ea_1",Co="_hidden_1b7ea_21",Eo="_topControls_1b7ea_27",To="_backBtn_1b7ea_47",ko="_videoTitleInfo_1b7ea_67",No="_animeTitle_1b7ea_73",Mo="_episodeNumber_1b7ea_81",Ro="_bottomControls_1b7ea_89",Bo="_progressBarContainer_1b7ea_108",Ao="_progressBar_1b7ea_108",Po="_thumb_1b7ea_127",Lo="_scrubbing_1b7ea_142",xo="_watchedBar_1b7ea_146",Io="_bufferedBar_1b7ea_147",$o="_timeBubble_1b7ea_185",Do="_skipSegment_1b7ea_219",Fo="_op_1b7ea_229",Oo="_ed_1b7ea_232",Wo="_recap_1b7ea_235",Vo="_bottomControlsRow_1b7ea_239",Uo="_leftControls_1b7ea_247",qo="_rightControls_1b7ea_248",Ho="_controlBtn_1b7ea_255",Qo="_theaterBtn_1b7ea_296",zo="_nextEpisodeBtn_1b7ea_300",Go="_active_1b7ea_317",Ko="_timeDisplay_1b7ea_321",jo="_skipControls_1b7ea_329",Jo="_skipBtn_1b7ea_335",Xo="_volumeContainer_1b7ea_376",Yo="_volumeSlider_1b7ea_382",Zo="_playerPageLayout_1b7ea_440",ea="_videoPlayerWrapper_1b7ea_444",ta="_playerInfoContainer_1b7ea_449",ra="_visible_1b7ea_566",na="_shortcuts_1b7ea_584",L={controlsOverlay:wo,hidden:Co,topControls:Eo,backBtn:To,videoTitleInfo:ko,animeTitle:No,episodeNumber:Mo,bottomControls:Ro,progressBarContainer:Bo,progressBar:Ao,thumb:Po,scrubbing:Lo,watchedBar:xo,bufferedBar:Io,timeBubble:$o,skipSegment:Do,op:Fo,ed:Oo,recap:Wo,bottomControlsRow:Vo,leftControls:Uo,rightControls:qo,controlBtn:Ho,theaterBtn:Qo,nextEpisodeBtn:zo,active:Go,timeDisplay:Ko,skipControls:jo,skipBtn:Jo,volumeContainer:Xo,volumeSlider:Yo,playerPageLayout:Zo,videoPlayerWrapper:ea,playerInfoContainer:ta,visible:ra,shortcuts:na},sa=dr(()=>Zt(()=>import("./PlayerSettings-BcsotxP9.js"),__vite__mapDeps([0,1,2,3,4,5,6]))),oa=({player:s,isAutoplayEnabled:p,onAutoplayChange:y,showNextEpisodeButton:H,onNextEpisode:d,videoSources:_,selectedSource:B,selectedLink:e,onSourceChange:S,skipIntervals:Q,animeTitle:D,episodeNumber:v,isTheaterMode:z,onTheaterModeToggle:ne,anime4kEnabled:R,onAnime4kToggle:U,anime4kSupported:Y,anime4kProfile:Z,onAnime4kProfileChange:n,anime4kInitializing:l,anime4kError:A,videoDelayEnabled:_e,onVideoDelayToggle:De,videoDelayMs:ke,onVideoDelayChange:ge,onCalibrateAvSync:Ee})=>{const{state:i,refs:T,actions:C}=s,{showSettings:ce,showVolumeSlider:c}=i,{setShowSettings:w,setShowVolumeSlider:M}=C,G=it.useRef(null),F=it.useRef(null),O=it.useRef(null);E(()=>{const u=b=>{G.current&&!G.current.contains(b.target)&&F.current&&!F.current.contains(b.target)&&ce&&w(!1),O.current&&!O.current.contains(b.target)&&c&&M(!1)};return(ce||c)&&document.addEventListener("mousedown",u),()=>{document.removeEventListener("mousedown",u)}},[ce,c,w,M]);const ve=it.useRef(null),Ne=it.useRef(null),He=it.useRef(null),Me=it.useRef(null),Qe=it.useRef(0);E(()=>{const u=T.videoRef.current;if(!u)return;const b=()=>{if(!i.isScrubbing){const X=u.currentTime;Qe.current=X;const le=X/i.duration*100||0;ve.current&&(ve.current.style.width=`${le}%`),Ne.current&&(Ne.current.style.left=`${le}%`),Me.current&&(Me.current.innerText=`${C.formatTime(X)} / ${C.formatTime(i.duration)}`)}},P=()=>{if(u.buffered.length>0){const le=u.buffered.end(u.buffered.length-1)/i.duration*100||0;He.current&&(He.current.style.width=`${le}%`)}};return b(),P(),u.addEventListener("timeupdate",b),u.addEventListener("progress",P),()=>{u.removeEventListener("timeupdate",b),u.removeEventListener("progress",P)}},[T.videoRef,i.isScrubbing,i.duration,C]);const te=u=>{if(!T.videoRef.current)return;const b=parseFloat(u.target.value);T.videoRef.current.volume=b,T.videoRef.current.muted=b===0,localStorage.setItem("playerVolume",b.toString())},K=u=>{if(!T.videoRef.current||!T.progressBarRef.current||isNaN(i.duration)||i.duration===0)return;const b=T.progressBarRef.current.getBoundingClientRect(),P=Math.min(1,Math.max(0,(u.clientX-b.left)/b.width));T.videoRef.current.currentTime=P*i.duration,C.sendProgressUpdate(!1,!0)},ze=u=>{if(!T.progressBarRef.current||!i.duration)return;const b=T.progressBarRef.current.getBoundingClientRect(),X=Math.min(1,Math.max(0,(u.clientX-b.left)/b.width))*i.duration;C.setHoverTime({time:X,position:u.clientX-b.left})},Se=u=>{u.preventDefault(),T.videoRef.current&&(C.setIsScrubbing(!0),C.wasPlayingBeforeScrub.current=!T.videoRef.current.paused,T.videoRef.current.pause())},ie=u=>{if(!T.videoRef.current)return;C.setActiveSubtitleTrack(u);try{if(u===null||u==="off")localStorage.setItem("playerSubtitlesEnabled","false");else{localStorage.setItem("playerSubtitlesEnabled","true");const P=i.availableSubtitles.find(X=>X.label===u||X.lang===u);P?localStorage.setItem("playerLastSubtitle",jr(P)):localStorage.setItem("playerLastSubtitle",u)}}catch{}let b=!1;Array.from(T.videoRef.current.textTracks).forEach(P=>{const le=u!==null&&u!=="off"&&(P.language===u||P.label===u)&&!b;P.mode=le?"showing":"hidden",le&&(b=!0)})},Re=i.activeSubtitleTrack!==null&&i.activeSubtitleTrack!=="off",Et=()=>{if(!T.videoRef.current)return;if(Re){ie("off");return}if(i.availableSubtitles.length===0)return;let u=null;try{u=localStorage.getItem("playerLastSubtitle")}catch{}const b=Ft(i.availableSubtitles,{lastKey:u,enabled:!0});if(b<0)return;const P=i.availableSubtitles[b];ie(P.label||P.lang)},pt=()=>i.isMuted?t(Tr,{}):i.volume===0?t(kr,{}):i.volume<.5?t(Nr,{}):t(Mr,{});return E(()=>{const u=P=>{if(!i.isScrubbing||!T.videoRef.current||!T.progressBarRef.current||!i.duration)return;const X=T.progressBarRef.current.getBoundingClientRect(),ee=Math.min(1,Math.max(0,(P.clientX-X.left)/X.width))*i.duration;T.videoRef.current.currentTime=ee;const Ve=ee/i.duration*100||0;ve.current&&(ve.current.style.width=`${Ve}%`),Ne.current&&(Ne.current.style.left=`${Ve}%`),Me.current&&(Me.current.innerText=`${C.formatTime(ee)} / ${C.formatTime(i.duration)}`),C.setHoverTime({time:ee,position:P.clientX-X.left})},b=()=>{i.isScrubbing&&(C.setIsScrubbing(!1),C.setHoverTime({time:0,position:null}),C.wasPlayingBeforeScrub.current&&T.videoRef.current?.play())};return document.addEventListener("mousemove",u),document.addEventListener("mouseup",b),()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",b)}},[i.isScrubbing,i.duration,T.videoRef,T.progressBarRef,C]),t("div",{className:`${L.controlsOverlay} ${!i.showControls&&!ce&&!c&&!i.isScrubbing?L.hidden:""} `,"data-speed-boost-ignore":"true",onDoubleClick:u=>u.stopPropagation(),children:[t("div",{className:L.topControls,onClick:u=>u.stopPropagation(),children:[t("button",{className:L.backBtn,onClick:u=>{u.stopPropagation(),window.history.back()},title:"Back","aria-label":"Back",children:t(Yt,{})}),t("div",{className:L.videoTitleInfo,children:[t("span",{className:L.animeTitle,children:D}),v&&t("span",{className:L.episodeNumber,children:["Episode ",v]})]})]}),t(Kr,{isPlaying:i.isPlaying,onTogglePlay:C.togglePlay,onSkipBack:()=>C.seek(-10),onSkipForward:()=>C.seek(10)}),t("div",{className:L.bottomControls,"data-speed-boost-ignore":"true",onClick:u=>u.stopPropagation(),children:[t("div",{className:`${L.progressBarContainer} ${i.isScrubbing?L.scrubbing:""} `,ref:T.progressBarRef,onClick:K,onMouseMove:ze,onMouseLeave:()=>{i.isScrubbing||C.setHoverTime({time:0,position:null})},children:[i.hoverTime.position!==null&&t("div",{className:L.timeBubble,style:{left:i.hoverTime.position},children:C.formatTime(i.hoverTime.time)}),t("div",{className:L.progressBar,children:[i.duration>0&&s.state.currentSkipInterval&&t("div",{className:`${L.skipSegment} ${L[s.state.currentSkipInterval.skip_type]} `,style:{left:`${s.state.currentSkipInterval.start_time/i.duration*100}% `,width:`${(s.state.currentSkipInterval.end_time-s.state.currentSkipInterval.start_time)/i.duration*100}% `}}),t("div",{className:L.bufferedBar,ref:He}),t("div",{className:L.watchedBar,ref:ve}),t("div",{className:L.thumb,ref:Ne,onMouseDown:Se}),Q.map(u=>{const b=u.start_time/i.duration*100,P=(u.end_time-u.start_time)/i.duration*100;return t("div",{className:`${L.skipSegment} ${L[u.skip_type]} `,style:{left:`${b}% `,width:`${P}% `},title:u.skip_type.toUpperCase()},u.skip_id)})]})]}),t("div",{className:L.bottomControlsRow,children:[t("div",{className:L.leftControls,children:[t("button",{className:L.controlBtn,onClick:C.togglePlay,"aria-label":i.isPlaying?"Pause":"Play",children:i.isPlaying?t(yr,{}):t(br,{})}),t("div",{className:`${L.volumeContainer} ${c?L.visible:""}`,ref:O,children:[t("button",{className:L.controlBtn,onClick:u=>{u.stopPropagation(),window.innerWidth<=768?M(!c):C.toggleMute()},"aria-label":i.isMuted?"Unmute":"Mute",children:pt()}),t("input",{type:"range",min:"0",max:"1",step:"0.05",value:i.isMuted?0:i.volume,onChange:te,className:L.volumeSlider,style:{"--volume-percent":`${(i.isMuted?0:i.volume)*100}% `}})]}),t("span",{className:L.timeDisplay,ref:Me,children:[C.formatTime(Qe.current)," / ",C.formatTime(i.duration)]}),i.currentSkipInterval&&!i.isAutoSkipEnabled&&t("button",{className:L.controlBtn,onClick:()=>{T.videoRef.current&&i.currentSkipInterval&&(T.videoRef.current.currentTime=i.currentSkipInterval.end_time,C.setCurrentSkipInterval(null))},children:["Skip ",i.currentSkipInterval.skip_type==="op"?"Opening":"Ending"]})]}),t("div",{className:L.rightControls,children:[t("div",{className:L.skipControls,children:H&&t("button",{className:L.nextEpisodeBtn,onClick:d,title:"Play next episode",children:"Next EP"})}),t("button",{className:`${L.controlBtn} ${Re?L.active:""}`,onClick:Et,title:Re?"Disable Subtitles":"Enable Subtitles","aria-label":"Toggle Subtitles",children:t(_r,{size:22})}),t("button",{ref:F,className:`${L.controlBtn} ${ce?L.active:""} `,onClick:()=>w(!ce),"aria-label":"Settings",children:t(Sr,{})}),t("button",{className:`${L.controlBtn} ${L.theaterBtn} ${z?L.active:""} `,onClick:u=>{u.stopPropagation(),ne()},title:z?"Exit Theater Mode":"Theater Mode","aria-label":z?"Exit Theater Mode":"Theater Mode",children:t(wr,{})}),t("button",{className:L.controlBtn,onClick:C.toggleFullscreen,"aria-label":i.isFullscreen?"Exit Fullscreen":"Fullscreen",children:i.isFullscreen?t(Cr,{}):t(Er,{})})]})]})]}),t(ur,{fallback:null,children:t(sa,{ref:G,isOpen:ce,onClose:()=>w(!1),videoSources:_,currentSource:B,currentLink:e,onSourceChange:S,subtitles:i.availableSubtitles,activeSubtitleTrack:i.activeSubtitleTrack,onSubtitleChange:ie,subtitleSettings:{fontSize:i.subtitleFontSize,position:i.subtitlePosition,bgOpacity:i.subtitleBgOpacity,bgColor:i.subtitleBgColor,textColor:i.subtitleTextColor,edge:i.subtitleEdge,bold:i.subtitleBold},onSubtitleSettingsChange:(u,b)=>{const P=(X,le)=>{try{localStorage.setItem(X,String(le))}catch{}};switch(u){case"fontSize":C.setSubtitleFontSize(b),P("subtitleFontSize",b);break;case"position":C.setSubtitlePosition(b),P("subtitlePosition",b);break;case"bgOpacity":C.setSubtitleBgOpacity(b),P("subtitleBgOpacity",b);break;case"bgColor":C.setSubtitleBgColor(b),P("subtitleBgColor",b);break;case"textColor":C.setSubtitleTextColor(b),P("subtitleTextColor",b);break;case"edge":C.setSubtitleEdge(b),P("subtitleEdge",b);break;case"bold":C.setSubtitleBold(b),P("subtitleBold",b);break}},useNativeControls:i.useNativeControls,onNativeControlsToggle:C.setUseNativeControls,anime4kEnabled:R,onAnime4kToggle:U,anime4kSupported:Y,anime4kProfile:Z,onAnime4kProfileChange:n,anime4kInitializing:l,anime4kError:A,videoDelayEnabled:_e,onVideoDelayToggle:De,videoDelayMs:ke,onVideoDelayChange:ge,onCalibrateAvSync:Ee,isAutoSkipEnabled:i.isAutoSkipEnabled,onAutoSkipChange:u=>{C.setIsAutoSkipEnabled(u);try{localStorage.setItem("autoSkipEnabled",u.toString())}catch{}},isAutoplayEnabled:p,onAutoplayChange:y})})]})},aa="_statusArea_1xccu_1",ia="_toggleBtn_1xccu_20",la="_shortcuts_1xccu_46",ca="_shortcutGroup_1xccu_56",ua="_shortcut_1xccu_46",da="_key_1xccu_70",pa="_label_1xccu_91",J={statusArea:aa,toggleBtn:ia,shortcuts:la,shortcutGroup:ca,shortcut:ua,key:da,label:pa},ma=()=>{const[s,p]=k(!1);return t("div",{className:J.statusArea,children:[t("button",{type:"button",className:J.toggleBtn,onClick:()=>p(y=>!y),"aria-expanded":s,"aria-controls":"player-shortcuts",children:[t(Rr,{size:14}),t("span",{children:"Keyboard Shortcuts"}),s?t(er,{size:12}):t(Wt,{size:12})]}),s&&t("div",{id:"player-shortcuts",className:J.shortcuts,children:[t("div",{className:J.shortcutGroup,children:[t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:t(Br,{size:10})}),t("span",{className:J.key,children:t(Ar,{size:10})}),t("span",{className:J.label,children:"Volume"})]}),t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:t(Pr,{size:10})}),t("span",{className:J.key,children:t(Lr,{size:10})}),t("span",{className:J.label,children:"Seek"})]})]}),t("div",{className:J.shortcutGroup,children:[t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:"Space"}),t("span",{className:J.label,children:"Play/Pause"})]}),t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:"F"}),t("span",{className:J.label,children:"Fullscreen"})]}),t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:"M"}),t("span",{className:J.label,children:"Mute"})]}),t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:"T"}),t("span",{className:J.label,children:"Theater"})]}),t("div",{className:J.shortcut,children:[t("span",{className:J.key,children:"N"}),t("span",{className:J.label,children:"Next"})]})]})]})]})},ha=({count:s=3})=>t("section",{className:at.section,children:[t("div",{className:at.header,children:t("button",{className:at.headerToggle,disabled:!0,children:[t("span",{className:at.title,children:t(lt,{width:"60px",height:"1.2rem",variant:"text"})}),t(Wt,{style:{opacity:.3}})]})}),t("div",{className:at.list,children:Array.from({length:s}).map((p,y)=>t("div",{className:at.item,style:{pointerEvents:"none"},children:[t("div",{className:at.dragHandle,style:{opacity:.2},children:t(lt,{width:"16px",height:"16px",variant:"rectangular"})}),t("div",{className:at.thumbnail,style:{overflow:"hidden",background:"transparent"},children:t(lt,{width:"100%",height:"100%",variant:"rectangular"})}),t("div",{className:at.meta,children:[t(lt,{width:"80%",height:"1.2rem",variant:"text",className:"mb-2"}),t(lt,{width:"40%",height:"0.8rem",variant:"rectangular",style:{borderRadius:"var(--radius-sm)"}})]})]},y))})]}),fa="_episodeListContainer_1hhgs_1",ga="_drawerContainer_1hhgs_9",va="_episodeListHeader_1hhgs_14",ya="_drawerHeader_1hhgs_20",ba="_episodeListTitle_1hhgs_28",_a="_rangeSelector_1hhgs_40",Sa="_rangeButton_1hhgs_46",wa="_active_1hhgs_69",Ca="_episodeList_1hhgs_1",Ea="_drawerList_1hhgs_88",Ta="_episodeItem_1hhgs_117",ka="_watched_1hhgs_144",ae={episodeListContainer:fa,drawerContainer:ga,episodeListHeader:va,drawerHeader:ya,episodeListTitle:ba,rangeSelector:_a,rangeButton:Sa,active:wa,episodeList:Ca,drawerList:Ea,episodeItem:Ta,watched:ka},tr=({episodes:s,currentEpisode:p,watchedEpisodes:y,onEpisodeClick:H,variant:d="sidebar"})=>{const[_,B]=k(0),e=g(null);E(()=>{const D=e.current;if(!D)return;let v=D.parentElement;for(;v;){const R=window.getComputedStyle(v);if((R.overflowY==="auto"||R.overflowY==="scroll")&&v.scrollHeight>v.clientHeight)break;v=v.parentElement}if(!v)return;const z=v.getBoundingClientRect(),ne=D.getBoundingClientRect();v.scrollTop+=ne.top+ne.height/2-(z.top+v.clientHeight/2)},[p,_]);const S=Ct(()=>{if(s.length<=100)return[];const D=[];for(let v=0;v<s.length;v+=100){const z=v+1,ne=Math.min(v+100,s.length);D.push(`${z}-${ne}`)}return D},[s]),Q=Ct(()=>{if(S.length===0)return s;const D=S[_],[v,z]=D.split("-"),ne=parseInt(v,10),R=parseInt(z,10);return s.slice(ne-1,R)},[s,S,_]);return t("div",{className:`${ae.episodeListContainer} ${d==="drawer"?ae.drawerContainer:""}`,children:[t("div",{className:`${ae.episodeListHeader} ${d==="drawer"?ae.drawerHeader:""}`,children:[t("h3",{className:ae.episodeListTitle,children:"Episodes"}),S.length>0&&t("div",{className:ae.rangeSelector,children:S.map((D,v)=>t("button",{className:`${ae.rangeButton} ${_===v?ae.active:""}`,onClick:()=>B(v),children:D},D))})]}),t("div",{className:`${ae.episodeList} ${d==="drawer"?ae.drawerList:""}`,children:Q.map(D=>t("div",{ref:D===p?e:void 0,className:`${ae.episodeItem} ${y.includes(D)?ae.watched:""} ${D===p?ae.active:""}`,onClick:()=>H(D),children:t("span",{children:["Episode ",D]})},D))})]})},Na=({variant:s="sidebar",count:p=12})=>t("div",{className:`${ae.episodeListContainer} ${s==="drawer"?ae.drawerContainer:""}`,children:[t("div",{className:`${ae.episodeListHeader} ${s==="drawer"?ae.drawerHeader:""}`,children:[t("h3",{className:ae.episodeListTitle,children:"Episodes"}),t("div",{className:ae.rangeSelector,children:[t(lt,{width:"60px",height:"28px",variant:"rectangular"}),t(lt,{width:"60px",height:"28px",variant:"rectangular"}),t(lt,{width:"60px",height:"28px",variant:"rectangular"})]})]}),t("div",{className:`${ae.episodeList} ${s==="drawer"?ae.drawerList:""}`,children:Array.from({length:p}).map((y,H)=>t("div",{className:ae.episodeItem,style:{border:"none",background:"transparent"},children:t(lt,{width:"120px",height:"1.2rem",variant:"text"})},H))})]}),Ma="_shell_cys6s_1",Ra="_overlay_cys6s_10",Ba="_drawer_cys6s_21",Aa="_handle_cys6s_56",Pa="_header_cys6s_64",La="_headerCopy_cys6s_73",xa="_kicker_cys6s_79",Ia="_title_cys6s_87",$a="_closeBtn_cys6s_94",Da="_body_cys6s_116",et={shell:Ma,overlay:Ra,drawer:Ba,handle:Aa,header:Pa,headerCopy:La,kicker:xa,title:Ia,closeBtn:$a,body:Da};function Fa({isOpen:s,onClose:p,episodes:y,currentEpisode:H,watchedEpisodes:d,onEpisodeClick:_}){return E(()=>{if(!s)return;const B=S=>{S.key==="Escape"&&p()},e=document.body.style.overflow;return document.body.style.overflow="hidden",document.addEventListener("keydown",B),()=>{document.body.style.overflow=e,document.removeEventListener("keydown",B)}},[s,p]),s?pr(t("div",{className:et.shell,role:"dialog","aria-modal":"true","aria-label":"Episode picker",children:[t("button",{className:et.overlay,type:"button",onClick:p,"aria-label":"Close episodes"}),t("aside",{className:et.drawer,children:[t("div",{className:et.handle}),t("div",{className:et.header,children:[t("div",{className:et.headerCopy,children:[t("span",{className:et.kicker,children:"Episode picker"}),t("h3",{className:et.title,children:"Choose an episode"})]}),t("button",{className:et.closeBtn,type:"button",onClick:p,"aria-label":"Close",children:t(xr,{})})]}),t("div",{className:et.body,children:t(tr,{episodes:y,currentEpisode:H,watchedEpisodes:d,onEpisodeClick:_,variant:"drawer"})})]})]}),document.body):null}const Oa="_sourceSelectionContainer_hp53a_76",Wa="_providerSelectContainer_hp53a_89",Va="_providerSelect_hp53a_89",Ua="_sourceButtons_hp53a_145",qa="_sourceButton_hp53a_145",Ha="_active_hp53a_170",Mt={sourceSelectionContainer:Oa,providerSelectContainer:Wa,providerSelect:Va,sourceButtons:Ua,sourceButton:qa,active:Ha},Jt=[{value:"megaplay",label:"MegaPlay",mature:!1},{value:"kaa",label:"KAA",mature:!1},{value:"anilight",label:"Anilight",mature:!1},{value:"animepahe",label:"AnimePahe",mature:!1},{value:"animeya",label:"Animeya",mature:!1},{value:"123anime",label:"123Anime",mature:!1},{value:"wh",label:"WH",mature:!0},{value:"hn",label:"HN",mature:!0},{value:"ht",label:"HT",mature:!0},{value:"op",label:"OP",mature:!0}],Qa=({selectedProvider:s,onProviderChange:p,isAdult:y})=>{const H=y===void 0?Jt:Jt.filter(d=>d.mature===y);return t("div",{className:Mt.providerSelectContainer,children:[t("h4",{children:"Provider"}),t("select",{className:Mt.providerSelect,value:s,onChange:d=>p(d.target.value),children:H.map(d=>t("option",{value:d.value,children:d.label},d.value))})]})},za=({videoSources:s,selectedSource:p,onSourceChange:y})=>{const H=Array.isArray(s)?s:[];return H.length===0?null:t("div",{className:Mt.sourceSelectionContainer,children:[t("h4",{children:"Source"}),t("div",{className:Mt.sourceButtons,children:H.map((d,_)=>t("button",{className:`${Mt.sourceButton} ${p?.sourceName===d.sourceName?Mt.active:""} `,onClick:()=>y(d),children:d.sourceName},`${d.sourceName}-${_}`))})]})},Ga=it.memo(za,(s,p)=>s.selectedSource?.sourceName===p.selectedSource?.sourceName&&s.videoSources===p.videoSources),Ka=({skipIntervals:s,showId:p,episodeNumber:y,episodeCount:H,sourceType:d,showMeta:_})=>{const B=Ot(),e=g(null),S=g(null),Q=g(null),D=g(null),v=g(!1),z=g(null),ne=g(0),R=g(1),U=g({mouse:!1,keyboard:!1}),Y=g(null),Z=g(null),n=g(!1),l=g(Math.random().toString(36).substring(2)),[A,_e]=k(!1),[De,ke]=k(()=>{try{return localStorage.getItem("playerMuted")==="true"}catch{return!1}}),[ge,Ee]=k(()=>{try{const a=parseFloat(localStorage.getItem("playerVolume")||"");return isNaN(a)?1:Math.max(0,Math.min(1,a))}catch{return 1}}),[i,T]=k(!1),[C,ce]=k(0),[c,w]=k(!0),[M,G]=k(!1),[F,O]=k({time:0,position:null}),[ve,Ne]=k(localStorage.getItem("autoSkipEnabled")==="true"),[He,Me]=k(null),[Qe,te]=k(!1),[K]=k(Jr),[ze,Se]=k(K.fontSize),[ie,Re]=k(K.position),[Et,pt]=k(K.bgOpacity),[u,b]=k(K.bgColor),[P,X]=k(K.textColor),[le,ee]=k(K.edge),[Ve,tt]=k(K.bold),[mt,Tt]=k([]),[ht,W]=k(null),[Ge,ft]=k(!1),[Le,gt]=k(!1),[rt,$]=k(!1),[vt,Fe]=k(!1),[ct,yt]=k(()=>{try{return localStorage.getItem("playerUseNativeControls")==="true"}catch{return!1}}),Ke=g(!1),ue=g(-1),Xe=I(()=>{const a=e.current;return!p||!y||!_?.name?null:{showId:p,episodeNumber:y,episodeCount:H,currentTime:a?a.currentTime:0,duration:a?a.duration:0,showName:_.name,showThumbnail:_.thumbnail,nativeName:_.names?.native,englishName:_.names?.english,genres:Array.isArray(_.genres)?_.genres.map(x=>typeof x=="string"?x:x?.name).filter(Boolean):void 0,popularityScore:_.score,type:_.type,isPlaying:a?!a.paused:!0,sessionId:l.current,isAdult:_.isAdult}},[p,y,H,_]),j=I((a=!1,x=!1)=>{if(Ke.current)return!1;const V=Xe();if(!V)return!1;const re=e.current;if(!re&&d!=="iframe")return!1;const se=re?re.currentTime>=re.duration*.8:!1;let Je=re?re.currentTime:0;if(a&&se&&(Je=re?re.duration:0),!x){if(Je===0&&!se)return!1;const St=re?Math.abs(Je-ue.current):0;if(!a&&re&&Je!==re.duration&&St<5)return!1}V.currentTime=Je,ue.current=Je;const xt={"Content-Type":"application/json"};return a?(async()=>{try{await fetch("/api/update-progress",{method:"POST",headers:xt,body:JSON.stringify(V)}),B.invalidateQueries({queryKey:["video-sources",p,y]}),B.invalidateQueries({queryKey:["allContinueWatching"]})}catch(St){console.error("Failed to update progress:",St)}})():fetch("/api/update-progress",{method:"POST",headers:xt,body:JSON.stringify(V),keepalive:!0}).catch(St=>console.error("Failed to update progress:",St)),!0},[Xe,d,B,p,y]);E(()=>{const a=e.current;a&&(a.volume=ge,a.muted=De)},[e,ge,De]),E(()=>{const a=()=>{Ke.current||j(!0)};window.addEventListener("beforeunload",a);const x=z,V=D;return()=>{window.removeEventListener("beforeunload",a),Ke.current||j(!0),x.current&&clearTimeout(x.current),V.current&&clearTimeout(V.current)}},[j]);const de=a=>{if(isNaN(a)||a<=0)return"00:00";const x=new Date(a*1e3).toISOString().slice(11,19);return parseInt(x.slice(0,2),10)>0?x:x.slice(3)},pe=I(()=>{S.current&&(document.fullscreenElement?document.fullscreenElement&&document.exitFullscreen():S.current.requestFullscreen().catch(a=>{console.error(`Error attempting to enable full-screen mode: ${a.message} (${a.name})`)}))},[]),Oe=I(()=>{e.current&&(e.current.paused?e.current.play().catch(()=>console.warn("Autoplay was prevented.")):(e.current.pause(),w(!0)))},[w]),Te=I(()=>{const a=e.current;if(!a)return;const x=U.current.mouse||U.current.keyboard;a.playbackRate=x?2:R.current},[]),me=I(a=>{U.current.mouse!==a&&(U.current.mouse=a,Fe(a||U.current.keyboard),Te())},[Te]),je=I(a=>{U.current.keyboard!==a&&(U.current.keyboard=a,Fe(U.current.mouse||a),Te())},[Te]),Be=I(a=>{e.current&&(e.current.currentTime+=a,z.current&&clearTimeout(z.current),z.current=setTimeout(()=>{j(!1,!0)},1500),w(!0))},[j,w]),Ue=I(()=>{if(!e.current)return;const a=!e.current.muted;e.current.muted=a,ke(a),localStorage.setItem("playerMuted",String(a)),!a&&e.current.volume===0&&(e.current.volume=.5,Ee(.5),localStorage.setItem("playerVolume",String(.5))),w(!0)},[w]);E(()=>{const a=()=>{const x=document.fullscreenElement!==null;T(x),x&&w(!0)};return document.addEventListener("fullscreenchange",a),()=>document.removeEventListener("fullscreenchange",a)},[w]),E(()=>{const a=V=>{if(!V.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')){if(V.code==="Space"){if(V.preventDefault(),n.current)return;n.current=!0,Z.current&&clearTimeout(Z.current),Z.current=window.setTimeout(()=>{Z.current=null,n.current&&je(!0)},180);return}switch(V.key.toLowerCase()){case"f":pe();break;case"m":Ue();break;case"arrowright":Be(10);break;case"arrowleft":Be(-10);break;case"arrowup":if(V.preventDefault(),e.current){const se=Math.min(1,e.current.volume+.1);e.current.volume=se,Ee(se)}break;case"arrowdown":if(V.preventDefault(),e.current){const se=Math.max(0,e.current.volume-.1);e.current.volume=se,Ee(se)}break}}},x=V=>{if(V.code==="Space"){if(V.preventDefault(),n.current=!1,U.current.keyboard){je(!1);return}Z.current&&(clearTimeout(Z.current),Z.current=null,Oe())}};return document.addEventListener("keydown",a),document.addEventListener("keyup",x),()=>{document.removeEventListener("keydown",a),document.removeEventListener("keyup",x),Z.current&&(clearTimeout(Z.current),Z.current=null),n.current=!1,je(!1),Fe(!1)}},[je,Oe,pe,Ue,Be]),E(()=>{const a=re=>{if(re.button!==0)return;const se=re.target;if(!se||se.closest('[data-speed-boost-ignore="true"]'))return;const Je=S.current;!Je||!Je.contains(se)||(Y.current&&clearTimeout(Y.current),Y.current=window.setTimeout(()=>{Y.current=null,me(!0)},180))},x=()=>{Y.current&&(clearTimeout(Y.current),Y.current=null),me(!1)},V=()=>{Y.current&&(clearTimeout(Y.current),Y.current=null),n.current=!1,Z.current&&(clearTimeout(Z.current),Z.current=null),je(!1),me(!1),Fe(!1)};return document.addEventListener("mousedown",a),document.addEventListener("mouseup",x),window.addEventListener("blur",V),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("mouseup",x),window.removeEventListener("blur",V),Y.current&&(clearTimeout(Y.current),Y.current=null)}},[je,me]);const xe=I(()=>{_e(!0),$(!1),setTimeout(()=>j(!1,!0),50)},[j]),Ae=I(()=>{$(!1)},[]),We=I(()=>{$(!0)},[]),bt=I(()=>{_e(!1),w(!0),setTimeout(()=>j(!1,!0),50)},[j]);E(()=>{Ke.current=!1,ue.current=-1,ne.current=0,l.current=Math.random().toString(36).substring(2)},[p,y]),E(()=>{const a=l.current;return()=>{const x=JSON.stringify({sessionId:a}),V=new Blob([x],{type:"application/json"});navigator.sendBeacon("/api/discord/clear",V)}},[p,y]),E(()=>{if(d!=="iframe")return;j(!1,!0);const a=setInterval(()=>{j(!1,!0)},6e4);return()=>clearInterval(a)},[d,j]);const qe=I(()=>{ce(e.current?.duration||0),Te()},[Te]),he=I(()=>{if(e.current){const a=e.current.muted,x=e.current.volume;ke(a),Ee(x),localStorage.setItem("playerMuted",String(a)),localStorage.setItem("playerVolume",String(x))}},[]),nt=I(()=>{},[]),_t=I(()=>{const a=e.current;if(!a)return;const x=a.currentTime||0,V=Date.now();V-ne.current>6e4&&j()&&(ne.current=V);const re=s.find(se=>x>=se.start_time&&x<se.end_time)||null;Me(se=>se?.skip_id!==re?.skip_id?re:se),ve&&re&&!a.paused&&(a.currentTime=re.end_time,Me(null))},[s,ve,j]),Rt=I(()=>{const a=Xe();if(!a)return;a.currentTime=a.duration,fetch("/api/update-progress",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}).then(()=>{B.invalidateQueries({queryKey:["video-sources",p,y]}),B.invalidateQueries({queryKey:["allContinueWatching"]})}).catch(V=>console.error("Failed to send final progress:",V))},[Xe,B,p,y]),Lt=I(()=>{Ke.current=!0,Rt()},[Rt]);E(()=>{const a=()=>{M&&(G(!1),O({time:0,position:null}),v.current&&e.current?.play(),j(!1,!0))};return M&&document.addEventListener("mouseup",a),()=>{document.removeEventListener("mouseup",a)}},[M,j]);const kt=Ct(()=>({togglePlay:Oe,seek:Be,toggleMute:Ue,toggleFullscreen:pe,onPlay:xe,onPause:bt,onLoadedMetadata:qe,formatTime:de,onVolumeChange:he,onProgress:nt,onTimeUpdate:_t,onEnded:Lt,setShowControls:w,setIsScrubbing:G,setHoverTime:O,setIsAutoSkipEnabled:Ne,setCurrentSkipInterval:Me,setShowCCMenu:te,setSubtitleFontSize:Se,setSubtitlePosition:Re,setSubtitleBgOpacity:pt,setSubtitleBgColor:b,setSubtitleTextColor:X,setSubtitleEdge:ee,setSubtitleBold:tt,setAvailableSubtitles:Tt,setActiveSubtitleTrack:W,setShowSettings:ft,setShowVolumeSlider:gt,wasPlayingBeforeScrub:v,inactivityTimer:D,setIsFullscreen:T,onWaiting:We,onPlaying:Ae,sendProgressUpdate:j,setUseNativeControls:yt}),[Oe,Be,Ue,pe,xe,bt,qe,he,nt,_t,Lt,T,We,Ae,j,yt]);return{refs:{videoRef:e,playerContainerRef:S,progressBarRef:Q},state:{isPlaying:A,isMuted:De,volume:ge,isFullscreen:i,duration:C,showControls:c,isScrubbing:M,hoverTime:F,isAutoSkipEnabled:ve,currentSkipInterval:He,showCCMenu:Qe,subtitleFontSize:ze,subtitlePosition:ie,subtitleBgOpacity:Et,subtitleBgColor:u,subtitleTextColor:P,subtitleEdge:le,subtitleBold:Ve,availableSubtitles:mt,activeSubtitleTrack:ht,showSettings:Ge,showVolumeSlider:Le,isBuffering:rt,isSpeedBoostActive:vt,useNativeControls:ct},actions:kt}},ja={low:{sd:1.5,hd:1.3,fhd:1.25},balanced:{sd:2,hd:1.5,fhd:1.25},high:{sd:2.5,hd:2,fhd:1.5},denoise:{sd:1.5,hd:1.5,fhd:1.5}},Ja={low:"ModeB",balanced:"ModeA",high:"ModeAA",denoise:"ModeC"},Xa=5,Ya=15e3;function Za({videoRef:s,canvasRef:p,profile:y="balanced",delayMs:H=0}){const[d,_]=k(!1),[B,e]=k(!1),[S,Q]=k(!1),[D,v]=k(null),[z,ne]=k(0),R=g(0),U=g(null),Y=g(null),Z=g(null),n=g(null),l=g(null),A=g(null),_e=g(null),De=g(null),ke=g(null),ge=g(!1),Ee=g(-1),i=g(0),T=g(H);T.current=H;const C=g([]),ce=g(-1),c=g(-1),w=g(!1),M=g(0);E(()=>{async function F(){if(typeof navigator>"u"||!navigator.gpu){_(!1);return}try{const O=await navigator.gpu.requestAdapter();_(!!O)}catch{_(!1)}}F()},[]),E(()=>{if(!B||!d)return;let F=!1;const O=++R.current,ve=te=>{if(te)try{te.close()}catch{}},Ne=()=>{for(const te of C.current)ve(te.bitmap);C.current=[]},He=te=>Math.max(8,Math.min(40,Math.ceil(te/16.7)+4));function Me(){ke.current!==null&&(cancelAnimationFrame(ke.current),ke.current=null)}async function Qe(){let te=s.current;const K=p.current;if(!te||!K||R.current!==O)return;const ze=performance.now()+Ya;for(;(!te||te.videoWidth===0)&&performance.now()<ze;){if(await new Promise(ee=>requestAnimationFrame(ee)),F||R.current!==O)return;te=s.current}if(!te||te.videoWidth===0){!F&&R.current===O&&(v("Timed out waiting for video metadata"),Q(!1),e(!1));return}const Se=te.videoWidth,ie=te.videoHeight,Re=Math.max(Se,ie),Et=window.innerWidth,pt=window.innerHeight,u=Math.max(Et,pt),b=Re<u?u/Re:1,P=ja[y],X=Re<=480?P.sd:Re<=720?P.hd:Re<=1080?P.fhd:1,le=Math.min(X,b);K.width=Math.round(Se*le),K.height=Math.round(ie*le),Q(!0),v(null),i.current=0,Ee.current=-1,ge.current=!1;try{let ee=function(){F||R.current!==O||(Me(),ke.current=requestAnimationFrame(()=>{j()}))};const{ModeA:Ve,ModeB:tt,ModeC:mt,ModeAA:Tt}=await Zt(async()=>{const{ModeA:de,ModeB:pe,ModeC:Oe,ModeAA:Te}=await import("./index-B8TPVaIS.js").then(me=>me.i);return{ModeA:de,ModeB:pe,ModeC:Oe,ModeAA:Te}},__vite__mapDeps([7,2,1,3]));if(!navigator.gpu)throw new Error("WebGPU not available");const ht=await navigator.gpu.requestAdapter();if(!ht)throw new Error("No GPU adapter found");const W=await ht.requestDevice();if(!W)throw new Error("Failed to get GPU device");const Ge=K.getContext("webgpu");if(!Ge)throw new Error("Failed to get WebGPU context");const ft=navigator.gpu.getPreferredCanvasFormat();Ge.configure({device:W,format:ft,alphaMode:"premultiplied"});const Le=W.createTexture({size:[Se,ie],format:"rgba16float",usage:GPUTextureUsage.TEXTURE_BINDING|GPUTextureUsage.COPY_DST|GPUTextureUsage.RENDER_ATTACHMENT}),gt=Ja[y],rt=Math.round(Se*le),$=Math.round(ie*le),vt=(()=>{switch(gt){case"ModeB":return new tt({device:W,inputTexture:Le,nativeDimensions:{width:Se,height:ie},targetDimensions:{width:rt,height:$}});case"ModeC":return new mt({device:W,inputTexture:Le,nativeDimensions:{width:Se,height:ie},targetDimensions:{width:rt,height:$}});case"ModeAA":return new Tt({device:W,inputTexture:Le,nativeDimensions:{width:Se,height:ie},targetDimensions:{width:rt,height:$}});default:return new Ve({device:W,inputTexture:Le,nativeDimensions:{width:Se,height:ie},targetDimensions:{width:rt,height:$}})}})(),Fe=vt.getOutputTexture(),ct=W.createSampler({magFilter:"linear",minFilter:"linear"}),yt=W.createShaderModule({code:`
3
+ @group(0) @binding(0) var tex: texture_2d<f32>;
4
+ @group(0) @binding(1) var samp: sampler;
5
+ struct VertexOutput {
6
+ @builtin(position) pos: vec4f,
7
+ @location(0) uv: vec2f,
8
+ }
9
+ @vertex
10
+ fn vs(@builtin(vertex_index) idx: u32) -> VertexOutput {
11
+ var positions = array<vec2f, 6>(
12
+ vec2f(-1.0, -1.0), vec2f(1.0, -1.0), vec2f(-1.0, 1.0),
13
+ vec2f(-1.0, 1.0), vec2f(1.0, -1.0), vec2f(1.0, 1.0)
14
+ );
15
+ var uvs = array<vec2f, 6>(
16
+ vec2f(0.0, 1.0), vec2f(1.0, 1.0), vec2f(0.0, 0.0),
17
+ vec2f(0.0, 0.0), vec2f(1.0, 1.0), vec2f(1.0, 0.0)
18
+ );
19
+ var out: VertexOutput;
20
+ out.pos = vec4f(positions[idx], 0.0, 1.0);
21
+ out.uv = uvs[idx];
22
+ return out;
23
+ }
24
+ @fragment
25
+ fn fs(@location(0) uv: vec2f) -> @location(0) vec4f {
26
+ return textureSample(tex, samp, uv);
27
+ }
28
+ `}),Ke=W.createBindGroupLayout({entries:[{binding:0,visibility:GPUShaderStage.FRAGMENT,texture:{sampleType:"float"}},{binding:1,visibility:GPUShaderStage.FRAGMENT,sampler:{type:"filtering"}}]}),ue=W.createRenderPipeline({layout:W.createPipelineLayout({bindGroupLayouts:[Ke]}),vertex:{module:yt,entryPoint:"vs"},fragment:{module:yt,entryPoint:"fs",targets:[{format:ft}]},primitive:{topology:"triangle-list"}}),Xe=W.createBindGroup({layout:Ke,entries:[{binding:0,resource:Fe.createView()},{binding:1,resource:ct}]});if(R.current!==O){Le.destroy(),W.destroy();return}U.current=W,Y.current=Ge,Z.current=vt,n.current=Le,l.current=Fe,A.current=ue,_e.current=ct,De.current=Ke,Q(!1);async function j(){if(F||R.current!==O)return;const de=s.current;if(!de||de.videoWidth===0){ee();return}if(de!==te||de.videoWidth!==Se||de.videoHeight!==ie){ne(me=>me+1);return}if(de.paused||de.ended||document.hidden||de.readyState<HTMLMediaElement.HAVE_CURRENT_DATA){ee();return}const pe=de.getVideoPlaybackQuality().totalVideoFrames;if(pe===c.current){ee();return}if(ge.current){ee();return}const Oe=de.currentTime;(de.seeking||ce.current>=0&&Math.abs(Oe-ce.current)>.5)&&(Ne(),w.current=!1,M.current=0,c.current=-1),ce.current=Oe;const Te=Math.max(0,T.current||0);Te>M.current&&(w.current=!1),ge.current=!0;try{const me=await createImageBitmap(de),je=performance.now();c.current=pe;let Be=null,Ue=!1;if(Te<=0)C.current.length>0&&Ne(),w.current=!1,M.current=0,Be=me;else{const We=C.current;We.push({bitmap:me,capture:je});const bt=He(Te);for(;We.length>bt;)ve(We.shift()?.bitmap);let qe=-1;for(let he=We.length-1;he>=0;he--)if(je-We[he].capture>=Te){qe=he;break}if(qe!==-1){for(let nt=0;nt<qe;nt++)ve(We.shift()?.bitmap);const he=We.shift();he?(Be=he.bitmap,w.current=!0,M.current=Te):(Be=me,Ue=!0)}else if(!w.current)Be=me,Ue=!0;else{const he=We.shift();Be=he?he.bitmap:me,he||(Ue=!0)}}if(!Be){ge.current=!1,ee();return}W.queue.copyExternalImageToTexture({source:Be},{texture:Le},[Se,ie]),Ue||ve(Be);const xe=W.createCommandEncoder();await vt.pass(xe);const Ae=xe.beginRenderPass({colorAttachments:[{view:Ge.getCurrentTexture().createView(),clearValue:{r:0,g:0,b:0,a:1},loadOp:"clear",storeOp:"store"}]});Ae.setPipeline(ue),Ae.setBindGroup(0,Xe),Ae.draw(6),Ae.end(),W.queue.submit([xe.finish()]),Ee.current=pe,i.current=0,W.queue.onSubmittedWorkDone().then(()=>{R.current===O&&(ge.current=!1)})}catch(me){if(ge.current=!1,i.current+=1,i.current>=Xa&&!F&&R.current===O){console.error(me),v(me instanceof Error?me.message:"Render error"),e(!1);return}}ee()}ee()}catch(ee){!F&&R.current===O&&(v(ee instanceof Error?ee.message:"Failed to initialize upscaler"),Q(!1),e(!1))}}return Qe(),()=>{F=!0,R.current+=1,Me(),Ne(),n.current&&(n.current.destroy(),n.current=null),l.current&&(l.current.destroy(),l.current=null),U.current&&(U.current.destroy(),U.current=null),Z.current=null,A.current=null,_e.current=null,De.current=null,Y.current=null,ge.current=!1}},[B,d,s,p,y,z]);const G=I(()=>{e(F=>!F)},[]);return{isWebGPUSupported:d,isEnabled:B,isInitializing:S,error:D,toggle:G}}const ei=()=>localStorage.getItem("preferredMode")==="dub"?"dub":"sub",ti=()=>{const s=localStorage.getItem("preferredProvider");return s&&["megaplay","anilight","kaa","animeya","animepahe","123anime","wh","hn","ht","op"].includes(s)?s:"megaplay"},rr=()=>({showMeta:{},episodes:[],watchedEpisodes:[],watchlistStatus:null,showCombinedDetails:!1,currentMode:ei(),inWatchlist:!1,videoSources:[],selectedSource:null,selectedLink:null,forceNativePlayer:localStorage.getItem("forceNativePlayer")==="true",isAutoplayEnabled:localStorage.getItem("autoplayEnabled")==="true",showResumeModal:!0,resumeTime:0,resumeDuration:0,skipIntervals:[],selectedProvider:ti(),loadingShowData:!0,loadingVideo:!1,loadingDetails:!1,error:null,detailsError:null,showCookieModal:!1,cookieProvider:null});rr();function ri(s,p){switch(p.type){case"SET_STATE":return{...s,...p.payload};case"SET_MODE":return{...s,currentMode:p.payload,videoSources:[],selectedSource:null,selectedLink:null};case"SET_PROVIDER":return{...s,selectedProvider:p.payload};case"SET_OVERRIDE_SOURCE":return{...s,selectedSource:p.payload?.source??null,selectedLink:p.payload?.link??null};default:return s}}async function Xt(s,p,y,H,d=!1){if(!s||!p)throw new Error("Missing params");try{const[_,B,e,S]=await Promise.all([wt(`/api/video?showId=${s}&episodeNumber=${p}&mode=${y.currentMode}&provider=${y.selectedProvider}`).catch(()=>null),wt(`/api/episode-progress/${s}/${p}`).catch(()=>null),wt("/api/settings?key=preferredSource").catch(()=>null),wt(`/api/skip-times/${s}/${p}`).catch(()=>[])]),Q=e?.value,D=_?.filter(n=>{const l=n.sourceName.toLowerCase();return y.currentMode==="dub"?l.includes("eng")||l.includes("dub"):l.includes("jpn")||l.includes("sub")||!l.includes("eng")&&!l.includes("dub")})??[],v=D.length>0?D:_??[];let z=v.length>0?v[0]:null;if(Q){const n=v.find(l=>l.sourceName===Q);n&&(z=n)}const ne=z&&z.links.length>0?z.links.sort((n,l)=>(parseInt(l.resolutionStr)||0)-(parseInt(n.resolutionStr)||0))[0]:null,R=B?.currentTime||0,U=B?.duration||0,Z=(Array.isArray(S)?S:S?.results||[]).map(n=>({skip_id:n.skip_id||"",skip_type:n.skip_type||"",start_time:n.interval?.start_time??n.start_time??0,end_time:n.interval?.end_time??n.end_time??0})).filter(n=>n.end_time>0);return(!_||_.length===0)&&(d||dt.error(`No video sources found for ${y.selectedProvider}`)),{videoSources:_,selectedSource:z,selectedLink:ne,resumeTime:R,resumeDuration:U,showResumeModal:R>5&&z?.type!=="iframe",skipIntervals:Z,fetchedEpisodeNumber:p}}catch(_){const B=_;if(B.message==="AUTH_REQUIRED")return H({type:"SET_STATE",payload:{showCookieModal:!0,cookieProvider:B.provider}}),{videoSources:[],selectedSource:null,selectedLink:null,resumeTime:0,resumeDuration:0,showResumeModal:!1,skipIntervals:[],fetchedEpisodeNumber:p};throw _}}const ni=(s,p,y,H)=>{const[d,_]=mr(ri,y,c=>({...rr(),showMeta:c?.name?{name:c.name,thumbnail:c.thumbnail,nativeName:c.nativeName,englishName:c.englishName,names:{romaji:c.name||c.englishName,english:c.englishName||c.name,native:c.nativeName}}:{}})),B=Ot(),e=g(null),S=g(null),Q=p||d.initialEpisode,D=g(Q);E(()=>{D.current!==Q&&(D.current=Q,_({type:"SET_STATE",payload:{selectedSource:null,selectedLink:null}}))},[Q,_]),E(()=>{s&&/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(s)&&d.selectedProvider!=="animepahe"&&e.current!==s&&(e.current=s,_({type:"SET_PROVIDER",payload:"animepahe"}))},[s,d.selectedProvider]);const{data:v,isLoading:z,error:ne}=sn(s),{data:R}=Gt({queryKey:["player-data",s,d.currentMode,d.selectedProvider],queryFn:async()=>{if(!s)throw new Error("No showId");const c=async()=>{try{const O=await wt(`/api/episodes?showId=${s}&mode=${d.currentMode}&provider=${d.selectedProvider}`);if(O?.episodes?.length)return O}catch{}return null},[w,M,G]=await Promise.all([c(),wt(`/api/watchlist/check/${s}`).catch(()=>({inWatchlist:!1})),wt(`/api/watched-episodes/${s}`).catch(()=>[])]),F=w?.episodes?w.episodes.sort((O,ve)=>parseFloat(O)-parseFloat(ve)):[];return{description:w?.description||"",episodes:F,inWatchlist:M.inWatchlist,watchlistStatus:M.status??null,watchedEpisodes:G}},enabled:!!s});E(()=>{!p&&R?.episodes&&R.episodes.length>0&&!p&&_({type:"SET_STATE",payload:{initialEpisode:R.episodes[0]}})},[R,p]),E(()=>{if(v?.isAdult===void 0)return;const c=d.selectedProvider==="wh"||d.selectedProvider==="hn"||d.selectedProvider==="ht"||d.selectedProvider==="op";S.current!==s&&(v.isAdult&&!c&&(S.current=s,_({type:"SET_PROVIDER",payload:"wh"})),!v.isAdult&&c&&(S.current=s,_({type:"SET_PROVIDER",payload:"animepahe"})))},[v?.isAdult,d.selectedProvider,s]),E(()=>{if(!s||!/^dango-mt-\d+$/.test(s)||S.current===`temp:${s}`)return;const c=v?.provider;c&&(S.current=`temp:${s}`,(c==="wh"||c==="hn"||c==="ht"||c==="op")&&d.selectedProvider!==c&&_({type:"SET_PROVIDER",payload:c}))},[s,v,d.selectedProvider]);const{data:U,isLoading:Y,error:Z}=Gt({queryKey:["video-sources",s,Q,d.selectedProvider,d.currentMode],queryFn:()=>Xt(s,Q,d,_),enabled:!!s&&!!Q&&!(d.showMeta?.isAdult===!0&&!H?.hasMatureConsent)}),n=!1,{mutateAsync:l}=Dt({mutationFn:async({wasIn:c,showMeta:w})=>{const M=c?"/api/watchlist/remove":"/api/watchlist/add",G={id:s,name:w.name||w.names?.romaji,thumbnail:w.thumbnail,nativeName:w.names?.native,englishName:w.names?.english,type:w.type,isAdult:w.isAdult},F=await fetch(M,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(G)});if(!F.ok){const O=await F.json().catch(()=>null);throw new Error(O?.error||"Failed to update watchlist")}return!c},onSuccess:c=>{dt.success(c?"Added to watchlist":"Removed from watchlist"),B.invalidateQueries({queryKey:["player-data",s]}),B.invalidateQueries({queryKey:["show-data",s]}),B.invalidateQueries({queryKey:["watchlist"]})},onError:c=>dt.error(c instanceof Error?c.message:"Failed to update watchlist")}),A=I(async()=>{!s||!v||await l({wasIn:!!R?.inWatchlist,showMeta:v})},[s,v,R?.inWatchlist,l]),_e=I(async c=>{try{await fetch("/api/settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({key:"preferredSource",value:c})})}catch(w){console.error(w)}},[]),{mutateAsync:De,isPending:ke}=Dt({mutationFn:async({status:c})=>{if(!s)throw new Error("Missing showId");if(!(await fetch("/api/watchlist/status",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({id:s,status:c})})).ok)throw new Error("Failed to update watchlist status");return c},onSuccess:c=>{_({type:"SET_STATE",payload:{inWatchlist:!0,watchlistStatus:c}}),dt.success(`Moved to ${c}`),B.invalidateQueries({queryKey:["show-data",s]}),B.invalidateQueries({queryKey:["watchlist"]}),B.invalidateQueries({queryKey:["allContinueWatching"]})},onError:()=>dt.error("Failed to update watchlist status")}),ge=I(async()=>{await De({status:"Completed"})},[De]),{mutateAsync:Ee}=Dt({mutationFn:async({episodeNumber:c,duration:w,showMeta:M,episodes:G})=>{await fetch("/api/update-progress",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({showId:s,episodeNumber:c,currentTime:w,duration:w,showName:M.name,showThumbnail:M.thumbnail,nativeName:M.names?.native,englishName:M.names?.english,genres:M.genres?.map(F=>F.name),popularityScore:M.score??M.stats?.averageScore,type:M.type,status:M.status,episodeCount:G.length,isAdult:M.isAdult}),keepalive:!0})},onSuccess:(c,w)=>{dt.success(`Episode ${w.episodeNumber} marked as watched`),B.invalidateQueries({queryKey:["player-data",s]}),B.invalidateQueries({queryKey:["show-meta",s]}),B.invalidateQueries({queryKey:["video-sources",s,w.episodeNumber]}),B.invalidateQueries({queryKey:["allContinueWatching"]})},onError:()=>dt.error("Failed to mark episode as watched")}),i=I(async(c,w)=>{!s||!v||await Ee({episodeNumber:c,duration:w,showMeta:v,episodes:R?.episodes||[]})},[s,v,R?.episodes,Ee]),T=I(async()=>{_({type:"SET_STATE",payload:{showCombinedDetails:!d.showCombinedDetails}})},[d.showCombinedDetails]),C=Ct(()=>{const c=ne||Z,w=c?c.message:null,M=w==="AUTH_REQUIRED"?null:w,G=U&&U.fetchedEpisodeNumber===Q?U:null,F=!!U&&!G;return{...d,currentEpisode:Q,showMeta:{...d.showMeta||{},...v||{}},episodes:R?.episodes||[],watchedEpisodes:R?.watchedEpisodes||[],inWatchlist:!!R?.inWatchlist,watchlistStatus:R?.watchlistStatus??d.watchlistStatus??null,videoSources:G?.videoSources||[],selectedSource:d.selectedSource||G?.selectedSource||null,selectedLink:d.selectedLink||G?.selectedLink||null,resumeTime:G?.resumeTime||0,resumeDuration:G?.resumeDuration||0,showResumeModal:d.showResumeModal&&(G?.showResumeModal??!1),skipIntervals:G?.skipIntervals||[],loadingShowData:z,loadingVideo:Y||F,loadingDetails:n,error:M,fetchedEpisodeNumber:G?.fetchedEpisodeNumber}},[d,v,R,U,z,Y,n,ne,Z,Q]),ce=I((c,w)=>{const M=w||s;if(!M||!c||M===s&&c===Q)return;const F=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i.test(M)&&d.selectedProvider!=="animepahe"?"animepahe":d.selectedProvider,O=["video-sources",M,c,F,d.currentMode];B.getQueryState(O)?.status!=="success"&&B.prefetchQuery({queryKey:O,queryFn:()=>Xt(M,c,{selectedProvider:F,currentMode:d.currentMode},_,!0),staleTime:300*1e3,gcTime:1800*1e3})},[s,Q,B,d,_]);return{state:C,dispatch:_,toggleWatchlist:A,moveToCompleted:ge,setPreferredSource:_e,handleToggleDetails:T,markEpisodeWatched:i,prefetchEpisodeSources:ce,isMarkingWatched:Ee.isPending,isUpdatingWatchlistStatus:ke}},hi=()=>{const{id:s,episodeNumber:p}=hr(),y=fr(),H=Ot(),d=gr(),{hasConsent:_,grant:B}=nn(),{state:e,dispatch:S,toggleWatchlist:Q,moveToCompleted:D,setPreferredSource:v,handleToggleDetails:z,markEpisodeWatched:ne,prefetchEpisodeSources:R,isMarkingWatched:U,isUpdatingWatchlistStatus:Y}=ni(s,p,d.state||null,{hasMatureConsent:_});E(()=>{if(s&&e.showMeta?.id&&e.showMeta.id!==s){const r=p?`/watch/${e.showMeta.id}/${p}${window.location.search}`:`/watch/${e.showMeta.id}${window.location.search}`;y(r,{replace:!0})}},[s,e.showMeta?.id,p,y]);const Z=Ct(()=>{if(e.showMeta.name)return{name:e.showMeta.name,thumbnail:e.showMeta.thumbnail,names:e.showMeta.names,genres:e.showMeta.genres,score:e.showMeta.score,isAdult:e.showMeta.isAdult}},[e.showMeta.name,e.showMeta.thumbnail,e.showMeta.names,e.showMeta.genres,e.showMeta.score,e.showMeta.isAdult]),n=Ka({skipIntervals:e.skipIntervals,showId:s,episodeNumber:e.currentEpisode?.toString(),episodeCount:e.episodes.length||void 0,sourceType:e.selectedSource?.type,showMeta:Z}),{refs:l,actions:A}=n,_e=g(null),De=on(),ke=g(null),ge=g(null),Ee=g(null),i=g(null),T=g(0),C=g(e.resumeTime),ce=g(e.showResumeModal),[c,w]=k(()=>{try{const r=localStorage.getItem("anime4kProfile");return["low","balanced","high","denoise"].includes(r)?r:"balanced"}catch{return"balanced"}}),[M,G]=k(()=>{try{const r=Number(localStorage.getItem("playerVideoDelayMs"));if(Number.isFinite(r)&&r>=0&&r<=500)return Math.round(r)}catch{}return 180}),[F,O]=k(()=>{try{return localStorage.getItem("playerVideoDelayEnabled")==="true"}catch{return!1}}),[ve,Ne]=k(!1),He=g(!1),Me=()=>{He.current&&(He.current=!1,l.videoRef.current?.play()?.catch(()=>{}))},Qe=F?M:0,te=g(null),K=Za({videoRef:l.videoRef,canvasRef:Ee,profile:c,delayMs:Qe}),ze=K.isEnabled&&K.isWebGPUSupported;Xr({videoRef:l.videoRef,canvasRef:te,delayMs:Qe,enabled:F&&!ze});const Se=F&&!ze,ie=ze||Se;E(()=>{C.current=e.resumeTime,ce.current=e.showResumeModal},[e.resumeTime,e.showResumeModal]);const[Re,Et]=k(null),[pt,u]=k(!1),[b,P]=k(!1),[X,le]=k(!1),ee=g(!1),[Ve,tt]=k(null),mt=g(!1),Tt=g(e.videoSources);Tt.current=e.videoSources;const ht=g(()=>{}),[W,Ge]=k(null),ft=g(p);E(()=>{ft.current!==p&&(ft.current=p,Ge(null),tt(null),ee.current=!1)},[p]),E(()=>{b||(ee.current=!1)},[b]);const Le=g(0),gt=g(null),rt=g(0),{data:$=[],isLoading:vt}=Ir(),Fe=$r(),ct=g(Fe);ct.current=Fe;const yt=Dr(),Ke=Fr(),[ue,Xe]=k(()=>{try{return localStorage.getItem("playerTheaterMode")==="true"}catch{return!1}});E(()=>{try{ue?document.body.classList.add("theater-mode"):document.body.classList.remove("theater-mode")}catch(r){console.error(r)}return()=>{try{document.body.classList.remove("theater-mode")}catch(r){console.error(r)}}},[ue]),vr(()=>{if(n.state.isFullscreen||ue)return;const r=l.playerContainerRef.current,o=ge.current;if(!r||!o)return;const h=()=>{const q=r.getBoundingClientRect().height;o.style.height=`${q}px`};h();const f=new ResizeObserver(h);return f.observe(r),()=>f.disconnect()},[n.state.isFullscreen,ue,l.playerContainerRef]);const j=Ct(()=>e.episodes.findIndex(r=>r===e.currentEpisode),[e.episodes,e.currentEpisode]),de=j>0?e.episodes[j-1]:null,pe=j>=0&&j<e.episodes.length-1?e.episodes[j+1]:null,Oe=j>-1&&j<e.episodes.length-1,Te=e.episodes.length>0&&!!e.currentEpisode&&e.episodes[e.episodes.length-1]===e.currentEpisode,me=String(e.showMeta.status||"").trim().toLowerCase(),je=["finished","completed","complete","ended"].some(r=>me.includes(r)),Ue=e.resumeTime>0&&e.resumeDuration>0&&e.resumeTime>=e.resumeDuration*.8||b,xe=Te&&je&&Ue,Ae=e.showResumeModal&&(xe||!Ue),We=I(r=>{if(r.target?.closest(`.${m.controlsOverlay}`))return;const h=n.state.showControls;if(A.setShowControls(!n.state.showControls),h&&(rt.current=Date.now()),Le.current+=1,gt.current&&clearTimeout(gt.current),Le.current===2){A.toggleFullscreen(),Le.current=0;return}gt.current=setTimeout(()=>{Le.current=0},250)},[A,n.state.showControls]);E(()=>{const r=l.videoRef.current;if(!r)return;let o=!1;for(_e.current&&(_e.current.destroy(),_e.current=null),(e.loadingVideo||e.selectedSource)&&(r.pause(),r.removeAttribute("src"),r.load());r.firstChild;)r.removeChild(r.firstChild);if(!e.selectedSource||!e.selectedLink)return;if(e.selectedSource.type==="iframe"){T.current=0;return}C.current>5&&!ce.current?T.current=C.current:ce.current&&(T.current=0);let h=e.selectedLink.link;if(h.startsWith("/api/proxy")||(h=`/api/proxy?url=${encodeURIComponent(h)}`,e.selectedLink.headers?.Referer&&(h+=`&referer=${encodeURIComponent(e.selectedLink.headers.Referer)}`)),e.selectedSource.subtitles){const Ce=localStorage.getItem("playerSubtitlesEnabled")!=="false";let Ie=null;try{Ie=localStorage.getItem("playerLastSubtitle")}catch{}const Pe=Ft(e.selectedSource.subtitles,{lastKey:Ie,enabled:Ce}),ot=Pe>=0?e.selectedSource.subtitles[Pe]:null;e.selectedSource.subtitles.forEach($e=>{const N=document.createElement("track");N.kind="subtitles",N.label=$e.label,N.srclang=$e.lang;const oe=$e.src??$e.url;if(oe){let be=`/api/subtitle-proxy?url=${encodeURIComponent(oe)}`;e.selectedLink?.headers?.Referer&&(be+=`&referer=${encodeURIComponent(e.selectedLink.headers.Referer)}`),N.src=be}ot&&$e.label===ot.label&&$e.lang===ot.lang&&(N.default=!0),r.appendChild(N)}),Ce||A.setActiveSubtitleTrack("off"),A.setAvailableSubtitles(e.selectedSource.subtitles)}const f=T.current;T.current=0;const q=()=>{f>0&&(r.currentTime=f)};r.addEventListener("loadedmetadata",q,{once:!0});const we=!(ce.current&&C.current>5),ye=()=>{we&&r.play().catch(()=>{A.setShowControls(!0)})};e.selectedLink.hls?(async()=>{const Ce=await Gr();if(o)return;if(!Ce||!Ce.isSupported()){r.src=h,ye();return}const Ie=document.body.classList.contains("low-end"),Pe=new Ce({maxBufferLength:Ie?15:30,maxMaxBufferLength:Ie?30:60,maxBufferSize:Ie?25*1e3*1e3:60*1e3*1e3,startLevel:-1,enableWorker:!0});_e.current=Pe,Pe.on(Ce.Events.ERROR,(ot,$e)=>{$e.fatal&&!mt.current&&ht.current()}),Pe.loadSource(h),Pe.attachMedia(r),Pe.once(Ce.Events.MANIFEST_PARSED,()=>{o||ye()})})():(r.src=h,ye());const fe=localStorage.getItem("playerVolume"),Ye=localStorage.getItem("playerMuted");return fe!==null&&(r.volume=parseFloat(fe)),Ye!==null&&(r.muted=Ye==="true"),()=>{o=!0,r.removeEventListener("loadedmetadata",q),_e.current&&(_e.current.destroy(),_e.current=null)}},[e.selectedSource,e.selectedLink,l.videoRef,A,e.loadingVideo]);const bt=I(()=>{if(mt.current)return;const r=Tt.current;if(e.selectedSource?.type!=="player")return;const o=r.find(f=>f.type==="iframe");if(!o?.links?.length)return;mt.current=!0;const h=o.links[0];v(o.sourceName),S({type:"SET_STATE",payload:{selectedSource:o,selectedLink:h}})},[e.selectedSource,S,v]);ht.current=bt;const qe=(r,o,h)=>r.showId===o||!!h&&r.showId===h,he=I(()=>{A.onEnded();const r=$.find(h=>qe(h,s,e.showMeta?.id)&&h.episodeNumber===e.currentEpisode);if($.length>0){const h=$.findIndex(q=>qe(q,s,e.showMeta?.id)&&q.episodeNumber===e.currentEpisode),f=h>=0?$[h+1]||null:$[0];Ge({nextItem:f,playedItem:r||null}),tt(2)}else r&&ct.current.mutate({showId:r.showId,episodeNumber:r.episodeNumber});let o=!1;if(e.isAutoplayEnabled&&$.length===0){const h=e.episodes.findIndex(f=>f===e.currentEpisode);if(h>-1&&h<e.episodes.length-1){const f=e.episodes[h+1];H.invalidateQueries({queryKey:["allContinueWatching"]}),y(`/watch/${s}/${f}`),o=!0}}if(!o&&$.length===0&&!W&&!ee.current){const h=e.episodes.length>0&&!!e.currentEpisode&&e.episodes[e.episodes.length-1]===e.currentEpisode,f=String(e.showMeta.status||"").trim().toLowerCase(),q=["finished","completed","complete","ended"].some(we=>f.includes(we));h&&q&&S({type:"SET_STATE",payload:{showResumeModal:!0}})}},[A,y,$,s,e.showMeta?.id,e.showMeta?.status,e.currentEpisode,e.episodes,e.isAutoplayEnabled,W,S,H]),nt=I(()=>{if($.length===0)return;A.onEnded();const r=$.find(f=>qe(f,s,e.showMeta?.id)&&f.episodeNumber===e.currentEpisode),o=$.findIndex(f=>qe(f,s,e.showMeta?.id)&&f.episodeNumber===e.currentEpisode),h=o>=0?$[o+1]||null:$[0];r&&Fe.mutate({showId:r.showId,episodeNumber:r.episodeNumber}),h?y(`/watch/${h.showId}/${h.episodeNumber}`):r&&S({type:"SET_STATE",payload:{showResumeModal:!0}})},[A,y,$,Fe,s,e.showMeta?.id,e.currentEpisode,S]),_t=I(()=>{pe&&(H.invalidateQueries({queryKey:["allContinueWatching"]}),y(`/watch/${s}/${pe}`)),S({type:"SET_STATE",payload:{showResumeModal:!1}})},[pe,y,s,S,H]),Rt=I(()=>{$.length>0?nt():pe?_t():dt.error("No next episode available")},[$.length,nt,_t,pe]),Lt=()=>{de&&y(`/watch/${s}/${de}`)};E(()=>{const r=l.videoRef.current;if(!r)return;const o=()=>{he()};return r.addEventListener("ended",o),()=>{r&&r.removeEventListener("ended",o)}},[he,l.videoRef,n.state.isFullscreen]),E(()=>{const r=o=>{o.origin===window.location.origin&&e.selectedSource?.type==="iframe"&&o.data?.type==="ANI_WEB_MEDIA_ENDED"&&he()};return window.addEventListener("message",r),()=>window.removeEventListener("message",r)},[he,e.selectedSource?.type]),E(()=>{if(!W||Ve===null)return;if(Ve<=0){const{nextItem:o,playedItem:h}=W;Ge(null),tt(null),h&&ct.current.mutate({showId:h.showId,episodeNumber:h.episodeNumber}),o?y(`/watch/${o.showId}/${o.episodeNumber}`):h&&S({type:"SET_STATE",payload:{showResumeModal:!0}});return}const r=window.setTimeout(()=>{tt(o=>o===null?null:o-1)},1e3);return()=>window.clearTimeout(r)},[W,Ve,y,S]),E(()=>{Ae&&n.state.isFullscreen&&n.actions.toggleFullscreen()},[Ae,n.state.isFullscreen,n.actions]),E(()=>{Ae&&l.videoRef.current&&l.videoRef.current.pause()},[Ae,l.videoRef]);const{titlePreference:kt}=Or(),a=Ct(()=>{if(!e.showMeta||e.loadingShowData)return"Loading...";const{name:r,names:o}=e.showMeta;return kt==="name"?r||"Loading...":kt==="nativeName"?o?.native||r||"Loading...":kt==="englishName"?o?.english||r||"Loading...":r||"Loading..."},[e.showMeta,kt,e.loadingShowData]);E(()=>{a&&a!=="Loading..."&&e.currentEpisode&&(document.title=`► ${a} Episode ${e.currentEpisode} - dango`)},[a,e.currentEpisode]);const x=I(r=>{const o=l.playerContainerRef.current;if(!o)return;const h=r.type==="touchstart"?800:500;Date.now()-rt.current<h||ke.current===null&&(ke.current=requestAnimationFrame(()=>{!n.state.showControls&&!n.state.useNativeControls&&A.setShowControls(!0),o.style.cursor="default",n.actions.inactivityTimer.current&&clearTimeout(n.actions.inactivityTimer.current);const f=n.state.isScrubbing||n.state.showSettings||n.state.showVolumeSlider||X;n.state.isPlaying&&!f&&(n.actions.inactivityTimer.current=window.setTimeout(()=>{n.state.useNativeControls||A.setShowControls(!1),n.state.isFullscreen&&(o.style.cursor="none")},3e3)),ke.current=null}))},[n.state.isPlaying,n.state.isFullscreen,n.state.showControls,n.state.isScrubbing,n.state.showSettings,n.state.showVolumeSlider,n.state.useNativeControls,X,A,n.actions,l.playerContainerRef]);E(()=>{(n.state.isScrubbing||n.state.showSettings||n.state.showVolumeSlider||X)&&(A.setShowControls(!0),n.actions.inactivityTimer.current&&clearTimeout(n.actions.inactivityTimer.current))},[n.state.isScrubbing,n.state.showSettings,n.state.showVolumeSlider,X,A,n.actions]),E(()=>{const r=l.playerContainerRef.current;if(r){r.addEventListener("mousemove",x);const o=f=>{x(f)};r.addEventListener("touchstart",o,{passive:!0});const h=()=>{A.setShowControls(!1)};return r.addEventListener("mouseleave",h),()=>{r.removeEventListener("mousemove",x),r.removeEventListener("touchstart",o),r.removeEventListener("mouseleave",h)}}},[x,l.playerContainerRef,A]),E(()=>{const r=o=>{if(!o.target.closest('input, textarea, button, select, a, [role="button"], [contenteditable="true"]')&&(["arrowup","arrowdown","arrowleft","arrowright"].includes(o.key.toLowerCase())&&(A.setShowControls(!0),n.actions.inactivityTimer.current&&clearTimeout(n.actions.inactivityTimer.current),n.actions.inactivityTimer.current=window.setTimeout(()=>{A.setShowControls(!1)},1e3)),o.key.toLowerCase()==="n"&&Rt(),o.key.toLowerCase()==="t")){const f=!ue;Xe(f),localStorage.setItem("playerTheaterMode",f.toString())}};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[A,n.actions.inactivityTimer,Rt,ue]);const{setIsFullscreen:V,setAvailableSubtitles:re,setActiveSubtitleTrack:se}=A;E(()=>{const r=()=>V(!!document.fullscreenElement);return document.addEventListener("fullscreenchange",r),()=>document.removeEventListener("fullscreenchange",r)},[V]),E(()=>{const r=l.videoRef.current;if(!r)return;const o=()=>{const h=Array.from(r.textTracks).map(f=>({label:f.label,lang:f.language,src:void 0,mode:f.mode}));re(h)};return r.textTracks.addEventListener("addtrack",o),r.textTracks.addEventListener("removetrack",o),o(),()=>{r&&(r.textTracks.removeEventListener("addtrack",o),r.textTracks.removeEventListener("removetrack",o))}},[l.videoRef,re]),E(()=>{if(n.state.activeSubtitleTrack===null&&n.state.availableSubtitles.length>0&&localStorage.getItem("playerSubtitlesEnabled")!=="false"){let r=null;try{r=localStorage.getItem("playerLastSubtitle")}catch{}const o=Ft(n.state.availableSubtitles,{lastKey:r,enabled:!0});if(o<0){se("off");return}const h=n.state.availableSubtitles[o];se(h.lang||h.label)}},[n.state.activeSubtitleTrack,n.state.availableSubtitles,se]),E(()=>{const r=l.videoRef.current;if(!r||n.state.availableSubtitles.length===0)return;const o=n.state.activeSubtitleTrack;if(!(localStorage.getItem("playerSubtitlesEnabled")!=="false")||o==="off"||o===null){Array.from(r.textTracks).forEach(q=>{q.mode="hidden"});return}let f=!1;if(Array.from(r.textTracks).forEach(q=>{const ye=(q.language===o||q.label===o)&&!f;q.mode=ye?"showing":"hidden",ye&&(f=!0)}),!f&&r.textTracks.length>0){const q=Array.from(r.textTracks).find(we=>we.language==="en"||we.label==="English")||r.textTracks[0];q&&(q.mode="showing")}},[n.state.activeSubtitleTrack,n.state.availableSubtitles,l.videoRef]),E(()=>{const r="dynamic-subtitle-styles";let o=document.getElementById(r);o||(o=document.createElement("style"),o.id=r,document.head.appendChild(o));const h={fontSize:n.state.subtitleFontSize,position:n.state.subtitlePosition,bgOpacity:n.state.subtitleBgOpacity,bgColor:n.state.subtitleBgColor,textColor:n.state.subtitleTextColor,edge:n.state.subtitleEdge,bold:n.state.subtitleBold};o.textContent=Yr(h);const f=l.videoRef.current;if(!f)return;const q=()=>{const N=Number(n.state.subtitlePosition),oe=isNaN(N)?0:Math.max(0,Math.min(100,N));return Math.max(0,Math.min(100,100-oe))},we=(N,oe)=>{try{const be=N;be.snapToLines=!1,be.line=oe}catch{}},ye=()=>{const N=Number(n.state.subtitleFontSize),oe=(isNaN(N)?1.8:N)*16,be=f.videoHeight||f.clientHeight||720,ut=f.videoWidth||f.clientWidth||1280;return{step:oe*1.3/be*100,chars:Math.max(20,Math.floor(ut/(oe*.55)))}},fe=N=>{const oe=q(),be=Array.from(N.activeCues??[]);if(be.length<=1){be.forEach(Nt=>we(Nt,oe));return}const{step:ut,chars:$t}=ye();let Qt=oe;for(let Nt=be.length-1;Nt>=0;Nt--){const ir=String(be[Nt].text??"").replace(/<[^>]*>/g,"").split(`
29
+ `).reduce((lr,cr)=>lr+Math.max(1,Math.ceil(cr.length/$t)),0),zt=Qt-ir*ut;we(be[Nt],Math.max(0,zt)),Qt=zt-ut*.4}},Ye=N=>{if(!N.cues)return;const oe=q();Array.from(N.cues).forEach(be=>we(be,oe)),N.mode==="showing"&&fe(N)},Ce=()=>{Array.from(f.textTracks).forEach(Ye)};Ce();const Ie=N=>{const oe=N.target;oe.mode==="showing"&&fe(oe)};Array.from(f.textTracks).forEach(N=>{N.addEventListener("cuechange",Ie)});const Pe=()=>{Array.from(f.textTracks).forEach(N=>{N.removeEventListener("cuechange",Ie),N.addEventListener("cuechange",Ie)}),Ce()};f.textTracks.addEventListener("addtrack",Pe),f.textTracks.addEventListener("removetrack",Pe);const ot=Array.from(f.querySelectorAll("track")),$e=()=>{Ce()};return ot.forEach(N=>{N.addEventListener("load",$e)}),()=>{Array.from(f.textTracks).forEach(N=>{N.removeEventListener("cuechange",Ie)}),f.textTracks.removeEventListener("addtrack",Pe),f.textTracks.removeEventListener("removetrack",Pe),ot.forEach(N=>{N.removeEventListener("load",$e)})}},[n.state.subtitleFontSize,n.state.subtitlePosition,n.state.subtitleBgOpacity,n.state.subtitleBgColor,n.state.subtitleTextColor,n.state.subtitleEdge,n.state.subtitleBold,n.state.activeSubtitleTrack,n.state.availableSubtitles,e.selectedSource,e.selectedLink,l.videoRef]),E(()=>{if(!ie)return;const r=l.videoRef.current,o=i.current;if(!r||!o)return;const h=localStorage.getItem("playerSubtitlesEnabled")!=="false",f=n.state.activeSubtitleTrack;function q(){if(o.innerHTML="",!h||f==="off"||f===null)return;const fe=Array.from(r.textTracks).find(N=>N.language===f||N.label===f);if(!fe||fe.mode!=="showing")return;const Ye=Qe/1e3;let Ce;if(Ye>0&&fe.cues){const N=r.currentTime-Ye;Ce=Array.from(fe.cues).filter(oe=>oe.startTime<=N&&N<=oe.endTime)}else Ce=Array.from(fe.activeCues??[]);if(Ce.length===0)return;const Ie={fontSize:n.state.subtitleFontSize,position:n.state.subtitlePosition,bgOpacity:n.state.subtitleBgOpacity,bgColor:n.state.subtitleBgColor,textColor:n.state.subtitleTextColor,edge:n.state.subtitleEdge,bold:n.state.subtitleBold},Pe=Zr(Ie),ot=Ie.position,$e=Array.from(Ce);$e.forEach((N,oe)=>{const be=String(N.text??"");if(!en(be).trim())return;const ut=document.createElement("div"),$t=($e.length-1-oe)*1.7;ut.style.cssText=`${Pe}
30
+ bottom: calc(${ot}% + ${$t}em);`,ut.innerHTML=tn(be),o.appendChild(ut)})}const we=()=>q(),ye=()=>q();return Array.from(r.textTracks).forEach(fe=>{fe.addEventListener("cuechange",we)}),r.addEventListener("timeupdate",ye),q(),()=>{Array.from(r.textTracks).forEach(fe=>{fe.removeEventListener("cuechange",we)}),r.removeEventListener("timeupdate",ye),o.innerHTML=""}},[K.isEnabled,K.isWebGPUSupported,n.state.subtitleFontSize,n.state.subtitlePosition,n.state.subtitleBgOpacity,n.state.subtitleBgColor,n.state.subtitleTextColor,n.state.subtitleEdge,n.state.subtitleBold,n.state.activeSubtitleTrack,l.videoRef,ie,Qe]),E(()=>{try{localStorage.setItem("anime4kProfile",c)}catch{}},[c]);const Je=()=>{l.videoRef.current&&(l.videoRef.current.currentTime=e.resumeTime,l.videoRef.current.play()),S({type:"SET_STATE",payload:{showResumeModal:!1}})},xt=()=>{l.videoRef.current&&(l.videoRef.current.currentTime=0,l.videoRef.current.play()),S({type:"SET_STATE",payload:{showResumeModal:!1}})},Vt=I(()=>{xe&&(ee.current=!0),S({type:"SET_STATE",payload:{showResumeModal:!1}})},[S,xe]),St=I(async()=>{try{await D(),S({type:"SET_STATE",payload:{showResumeModal:!1}}),y("/")}catch{}},[D,S,y]),Ut=(r,o)=>t("div",{className:r,children:[t("button",{className:`${m.episodeNavBtn} ${m.secondary}`,onClick:Lt,disabled:!de,type:"button",children:[t(Yt,{size:12}),"Prev EP"]}),t("button",{className:`${m.episodeNavBtn} ${m.primary}`,onClick:_t,disabled:!pe,type:"button",children:["Next EP",t(Qr,{size:12})]}),o==="mobile"&&De&&t("button",{className:`${m.episodeNavBtn} ${m.episodePickerBtn}`,onClick:()=>le(!0),type:"button",children:[t(zr,{size:12}),"Episodes"]})]});E(()=>{b&&(e.showResumeModal||$.length>0||W||ee.current||xe&&S({type:"SET_STATE",payload:{showResumeModal:!0}}))},[b,xe,e.showResumeModal,$.length,W,S]);const nr=r=>{S({type:"SET_STATE",payload:{isAutoplayEnabled:r}}),localStorage.setItem("autoplayEnabled",r.toString())},qt=!!(e.currentEpisode&&e.watchedEpisodes.includes(e.currentEpisode)),sr=e.selectedProvider!=="megaplay"||e.selectedSource?.type==="iframe",It=g(R);It.current=R;const Ht=g("");E(()=>{const r=l.videoRef.current;if(u(!1),P(!1),!r||e.selectedSource?.type==="iframe")return;const o=()=>{const h=r.duration,f=r.currentTime;if(!h||Number.isNaN(h)){u(!1),P(!1);return}const q=f/h;if(h-f<=60){const we=$.findIndex(Ye=>qe(Ye,s,e.showMeta?.id)&&Ye.episodeNumber===e.currentEpisode),ye=$.length>0?we>=0?$[we+1]||null:$[0]:null,fe=ye?`${ye.showId}:${ye.episodeNumber}`:Oe?`${s}:${pe}`:"";fe&&Ht.current!==fe&&(Ht.current=fe,ye?It.current(ye.episodeNumber,ye.showId):It.current(pe))}u(Oe&&q>=.8),P(f>=Math.max(h*.98,h-10))};return o(),r.addEventListener("timeupdate",o),r.addEventListener("loadedmetadata",o),()=>{r.removeEventListener("timeupdate",o),r.removeEventListener("loadedmetadata",o)}},[l.videoRef,Oe,e.currentEpisode,e.selectedSource,pe,s,$,e.showMeta?.id]);const or=I(async()=>{if(!s||!e.currentEpisode||!e.showMeta.name||U)return;const r=l.videoRef.current?.duration,o=Math.max(r||0,e.resumeDuration||0,(e.showMeta.lengthMin||0)*60,1);await ne(e.currentEpisode,o)},[s,e.currentEpisode,e.showMeta,e.resumeDuration,ne,U,l.videoRef]);if(e.error&&!e.showMeta.name&&e.videoSources.length===0&&e.episodes.length===0)return t("p",{className:"error-message",children:["Error: ",e.error]});const st=e.loadingShowData||e.loadingVideo,ar=r=>{ue&&r.target===r.currentTarget&&(Xe(!1),localStorage.setItem("playerTheaterMode","false"))};return e.showMeta?.isAdult===!0&&!_?t("div",{className:Ze.playerPageLayout,children:t(Wr,{isOpen:!0,title:"Content Warning",onClose:()=>y("/home"),children:t("div",{style:{padding:"1rem",textAlign:"center"},children:[t("p",{children:"This title contains mature content intended for adult audiences."}),t("p",{children:["By proceeding, you confirm that you are ",t("strong",{children:"18 years of age or older"})," (or the age of majority in your jurisdiction) and wish to view this content."]}),t("div",{style:{marginTop:"1rem",display:"flex",gap:"10px",justifyContent:"center"},children:[t(At,{variant:"secondary",onClick:()=>y("/home"),children:"Go Back"}),t(At,{onClick:B,children:"I'm 18+, Continue"})]})]})})}):t("div",{className:`${Ze.playerPageLayout} ${ue?Ze.theaterMode:""}`,onClick:ar,children:[t(Pt,{isOpen:Ae,onClose:Vt,title:xe?"Show Completed!":"Resume Playback?",width:"sm",children:xe?t(Bt,{children:[t(Pt.Body,{children:t("p",{children:"Congratulations! You've finished the final episode of this series."})}),t(Pt.Actions,{children:t(At,{onClick:St,disabled:Y,children:Y?"Saving...":"Move to Completed"})})]}):t(Bt,{children:[t(Pt.Body,{children:t("p",{children:["You were watching at ",t("strong",{children:n.actions.formatTime(e.resumeTime)}),". Would you like to continue?"]})}),t(Pt.Actions,{children:[t(At,{variant:"secondary",onClick:xt,children:"Start Over"}),t(At,{onClick:Je,children:"Resume"})]})]})}),t(Vr,{isOpen:!!e.showCookieModal,onClose:()=>S({type:"SET_STATE",payload:{showCookieModal:!1}}),onSuccess:()=>{H.invalidateQueries({queryKey:["video-sources",s,e.currentEpisode,e.selectedProvider,e.currentMode]})}}),!ue&&t("aside",{ref:ge,className:Ze.episodeSidebar,children:e.loadingShowData?t(Na,{variant:"sidebar"}):t(tr,{episodes:e.episodes,currentEpisode:e.currentEpisode,watchedEpisodes:e.watchedEpisodes,onEpisodeClick:r=>y(`/watch/${s}/${r}`)})}),t("div",{className:Ze.playerMain,children:[t("div",{ref:l.playerContainerRef,className:`${m.videoContainer} ${n.state.isFullscreen?"":Ze.videoPlayerWrapper} ${n.state.isFullscreen?m.fullscreenActive:""}`,onClick:We,style:{...Ae?{visibility:"hidden"}:{}},children:[Re&&t("div",{className:`${m.skipIndicatorContainer} ${Re.side==="left"?m.leftSkip:m.rightSkip} `,children:t("div",{className:m.skipBubble,children:[t("div",{className:m.skipIcon,children:Re.side==="left"?t(Ur,{}):t(Kt,{})}),t("div",{className:m.skipText,children:"15s"})]})}),n.state.isSpeedBoostActive&&t("div",{className:m.speedBoostBadge,"aria-hidden":"true",children:[t("span",{children:"2x"}),t(Kt,{size:12})]}),st&&t("div",{className:m.loadingOverlay,children:t("div",{className:m.loadingDots,children:[t("div",{className:m.dot}),t("div",{className:m.dot}),t("div",{className:m.dot})]})}),n.state.isBuffering&&!st&&e.selectedSource?.type!=="iframe"&&t("div",{className:m.bufferingOverlay,children:t("div",{className:m.bufferingSpinner})}),e.selectedSource?.type==="iframe"?!st&&t("iframe",{src:e.selectedLink?.link,className:m.videoIframe,allow:"autoplay; fullscreen; picture-in-picture",allowFullScreen:!0,sandbox:e.selectedSource.sandbox?`${e.selectedSource.sandbox} allow-fullscreen allow-popups allow-popups-to-escape-sandbox`:void 0}):t(Bt,{children:[!st&&e.videoSources.length===0&&t("div",{className:m.errorOverlay,children:[t("p",{children:["No sources found for this episode with ",e.selectedProvider,"."]}),t("p",{className:m.errorSubtext,children:"Please try selecting a different provider below."}),t("button",{className:m.retryButton,onClick:()=>window.location.reload(),"data-speed-boost-ignore":"true",style:{marginTop:8},children:"Retry"})]}),!st&&e.videoSources.length>0&&!n.state.useNativeControls&&t(oa,{player:n,isAutoplayEnabled:e.isAutoplayEnabled,onAutoplayChange:nr,showNextEpisodeButton:!Ae&&pt&&$.length===0,onNextEpisode:_t,videoSources:e.videoSources,selectedSource:e.selectedSource,selectedLink:e.selectedLink,onSourceChange:(r,o)=>{l.videoRef.current&&!isNaN(l.videoRef.current.currentTime)&&(T.current=l.videoRef.current.currentTime),v(r.sourceName),S({type:"SET_STATE",payload:{selectedSource:r,selectedLink:o,showResumeModal:e.showResumeModal&&r.type!=="iframe"}})},loadingVideo:e.loadingVideo,skipIntervals:e.skipIntervals,animeTitle:a,episodeNumber:e.currentEpisode,isTheaterMode:ue,onTheaterModeToggle:()=>{const r=!ue;Xe(r),localStorage.setItem("playerTheaterMode",r.toString())},anime4kEnabled:K.isEnabled,onAnime4kToggle:K.toggle,anime4kSupported:K.isWebGPUSupported,anime4kProfile:c,onAnime4kProfileChange:w,anime4kInitializing:K.isInitializing,anime4kError:K.error,videoDelayEnabled:F,onVideoDelayToggle:r=>{O(r);try{localStorage.setItem("playerVideoDelayEnabled",String(r))}catch{}},videoDelayMs:M,onVideoDelayChange:r=>{const o=Math.max(0,Math.min(500,Math.round(r)));G(o);try{localStorage.setItem("playerVideoDelayMs",String(o))}catch{}},onCalibrateAvSync:()=>{const r=l.videoRef.current;He.current=!!r&&!r.paused&&!r.ended,r?.pause(),Ne(!0)}})," ",!st&&e.videoSources.length>0&&t("video",{ref:l.videoRef,controls:n.state.useNativeControls,playsInline:!0,"webkit-playsinline":"true",disablePictureInPicture:!0,disableRemotePlayback:!0,onPlay:A.onPlay,onPause:A.onPause,onLoadedMetadata:A.onLoadedMetadata,onTimeUpdate:()=>{A.onTimeUpdate(),W&&l.videoRef.current&&l.videoRef.current.currentTime<l.videoRef.current.duration-1&&(Ge(null),tt(null))},onProgress:A.onProgress,onVolumeChange:A.onVolumeChange,onWaiting:A.onWaiting,onPlaying:A.onPlaying,onError:bt,className:ie?m.videoElementHidden:""}),K.isWebGPUSupported&&!st&&e.videoSources.length>0&&t("canvas",{ref:Ee,className:`${m.upscalerCanvas} ${ze?m.upscalerActive:""}`}),!ze&&!st&&e.videoSources.length>0&&t("canvas",{ref:te,className:`${m.upscalerCanvas} ${Se?m.upscalerActive:""}`}),K.isEnabled&&K.isWebGPUSupported&&K.isInitializing&&t("div",{className:m.upscalerStatusBadge,children:"Preparing upscaler…"}),ie&&t("div",{ref:i,className:m.subtitleOverlay}),t(rn,{isOpen:ve,initialMs:M,onClose:()=>{Ne(!1),Me()},onApply:r=>{const o=Math.max(0,Math.min(500,Math.round(r)));G(o),O(!0);try{localStorage.setItem("playerVideoDelayMs",String(o)),localStorage.setItem("playerVideoDelayEnabled","true")}catch{}Ne(!1),Me()}})]}),Ve!==null&&W?.nextItem&&t("div",{className:m.queueCountdown,children:["Queue next in ",Ve,"s"]})]}),!ue&&t(ma,{}),!ue&&t(Bt,{children:[vt&&$.length===0?t(ha,{count:3}):t(ln,{title:"Queue",items:$,currentShowId:s,currentEpisode:e.currentEpisode,onNextQueue:nt,onRemove:r=>Fe.mutate({showId:r.showId,episodeNumber:r.episodeNumber}),onClear:()=>yt.mutate(),showClearAll:!0,onReorder:r=>Ke.mutate(r.map(o=>({id:o.id,showId:o.showId,episodeNumber:o.episodeNumber})))}),t("div",{className:m.providerAndEpisodeRow,children:[t(Qa,{selectedProvider:e.selectedProvider,isAdult:e.showMeta?.isAdult,onProviderChange:r=>{S({type:"SET_STATE",payload:{selectedProvider:r,videoSources:[],selectedSource:null,selectedLink:null,loadingVideo:!0}}),localStorage.setItem("preferredProvider",r)}}),Ut(`${m.episodeActions} ${m.desktopEpisodeActions}`,"desktop")]}),st?t("div",{className:m.sourceLoader,children:t("div",{className:m.spinner})}):t(Bt,{children:t(Ga,{videoSources:e.videoSources,selectedSource:e.selectedSource,onSourceChange:r=>{l.videoRef.current&&!isNaN(l.videoRef.current.currentTime)&&(T.current=l.videoRef.current.currentTime);const h=(r.links||[]).sort((f,q)=>(parseInt(q.resolutionStr)||0)-(parseInt(f.resolutionStr)||0))[0]||null;v(r.sourceName),S({type:"SET_STATE",payload:{selectedSource:r,selectedLink:h,showResumeModal:e.showResumeModal&&r.type!=="iframe"}})}})}),t("div",{className:Ze.playerInfoContainer,children:[t("div",{className:Ze.playerInfoHeader,children:[t("div",{className:Ze.playerAnimeCard,children:t("img",{src:qr(e.showMeta.thumbnail||""),alt:a,onError:r=>{r.target.src="/placeholder.svg"}})}),t("div",{className:Ze.videoTitleSection,children:[t("div",{className:m.titleContainer,children:[t("h1",{children:a}),t("div",{className:m.scheduleInfo,children:[e.showMeta.status&&t("span",{className:m.status,children:e.showMeta.status}),e.showMeta.nextEpisodeAirDate&&t("span",{className:m.nextEpisode,children:["Next episode: ",e.showMeta.nextEpisodeAirDate]})]})]}),t("div",{className:m.controls,children:[t("button",{className:`${m.watchlistBtn} ${e.inWatchlist?m.inList:""}`,onClick:Q,children:[e.inWatchlist?t(jt,{size:14}):t(Hr,{size:14}),e.inWatchlist?"In Watchlist":"Add to Watchlist"]}),t(an,{showId:s,showName:e.showMeta.name||e.showMeta.names?.romaji,showThumbnail:e.showMeta.thumbnail,nativeName:e.showMeta.names?.native,englishName:e.showMeta.names?.english,showType:e.showMeta.type,className:`${m.watchlistBtn} ${m.queueBtn}`,activeClassName:m.queueActive}),sr&&t("button",{className:`${m.watchlistBtn} ${m.markWatchedBtn} ${qt?m.markWatchedDone:""}`,onClick:or,disabled:U||!e.currentEpisode,children:[t(jt,{size:14}),U?"Saving...":qt?"Watched":"Mark Watched"]}),t("button",{className:`${m.watchlistBtn} ${m.modeToggleBtn} ${e.currentMode==="dub"?m.modeToggleActive:""}`,onClick:()=>{const r=e.currentMode==="dub"?"sub":"dub";S({type:"SET_MODE",payload:r}),localStorage.setItem("preferredMode",r)},type:"button","aria-pressed":e.currentMode==="dub",children:e.currentMode==="dub"?"DUB":"SUB"}),t("button",{className:`${m.watchlistBtn} ${m.modeToggleBtn} ${n.state.useNativeControls?m.modeToggleActive:""}`,onClick:()=>{const r=!n.state.useNativeControls;n.actions.setUseNativeControls(r),localStorage.setItem("playerUseNativeControls",r.toString())},type:"button",children:n.state.useNativeControls?"NATIVE: ON":"NATIVE: OFF"})]})]})]}),Ut(`${m.episodeActions} ${m.mobileEpisodeActions}`,"mobile"),t("div",{className:m.descriptionSection,children:[t("h3",{children:"Synopsis"}),t(cn,{text:e.showMeta.description?e.showMeta.description.replace(/<[^>]*>?/gm,""):"",emptyText:"No description available."})]}),t("button",{className:m.detailsToggleBtn,onClick:z,children:[e.showCombinedDetails?t(er,{}):t(Wt,{}),e.showCombinedDetails?"Hide Details":"Show Details"]}),e.showCombinedDetails&&t(un,{showMeta:e.showMeta,styles:m})]})]})]}),t(Fa,{isOpen:X,onClose:()=>le(!1),episodes:e.episodes,currentEpisode:e.currentEpisode,watchedEpisodes:e.watchedEpisodes,onEpisodeClick:r=>{le(!1),y(`/watch/${s}/${r}`)}})]})};export{hi as default};