brainsmatics 1.0.31 → 1.0.33

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.
@@ -4306,9 +4306,9 @@ echarts.use([`+U+"]);":"Unknown series "+N))}return}if(f==="tooltip"){if(b){proc
4306
4306
  discard;
4307
4307
  }
4308
4308
  }
4309
- `,transparent:!1,depthWrite:!1,depthTest:!1}),Un=new Q1(wt,Hn);Un.translateX(Ko.current),Un.translateY(Io.current),Un.translateZ(Ao.current),Un.myMeshType="neuronSphere",Un.name=`${kt}-${Pt.line[0].start_name}`,Un.userData.color="#1771FF",Un.myMeshType="neuronSphere",Un.name=`${kt}-${Pt.line[0].start_name}`,Un.userData.color="#1771FF",yn(Un),Ht.add(Un),Ht.name=`swcPointGroup${kt}`,He.current.push(Ht),Ce.current.add(Ht);let Ne=1;for(let fe=0;fe<Pt.line.length;fe++){let tt=[],Xe=[Pt.position[0].x,Pt.position[0].y,Pt.position[0].z];for(let nn=Pt.line[fe].start;nn<=Pt.line[fe].end;nn++){nn===Pt.line[fe].start&&(Xe=[Pt.position[nn].x,Pt.position[nn].y,Pt.position[nn].z]);let vn=Pt.position[nn].x,on=Pt.position[nn].y,pn=Pt.position[nn].z;(Math.sqrt((vn-Xe[0])*(vn-Xe[0])+(on-Xe[1])*(on-Xe[1])+(pn-Xe[2])*(pn-Xe[2]))>Ne||nn===Pt.line[fe].end||nn===Pt.line[fe].start)&&(tt.push(new ye(vn,on,pn)),Xe=[vn,on,pn])}let st=new xa(new Zi().setFromPoints(tt),new yh({color:At}));st.myMeshType="SWC",dt.add(st)}dt.scale.set(Do.current,Do.current,Do.current),dt.translateX(Ko.current),dt.translateY(Io.current),dt.translateZ(Ao.current),dt.name=kt,dt.myMeshType="SWC",Z.current[kt]=dt,Ce.current.add(Z.current[kt]),Ze&&Ze()})},Pn=function(ot){return ot.replace("/","_").replace(" ","_")},zn=(ot,ut,kt)=>{var Ze;kt.color=ut;let At=Ce.current.children.find(qt=>qt.name==kt.name);if(s=="vessel")i.current[kt.name]&&At&&At.traverse(function(qt){(qt instanceof xa||qt instanceof kn)&&qt.material.color.set(kt.color)});else if(s=="fbx"){if(No.current[kt.name]&&At){const qt=kt.color.slice(0,7),Pt=kt.color.slice(7,9),dt=parseInt(Pt,16)/255;At.traverse(function(Ht){Ht instanceof kn&&(Ht.material.color.set(qt),Pt&&(Ht.material.transparent=!0,Ht.material.opacity=dt))})}}else if(s=="soma")Y.current.includes(kt.name)&&At&&At.traverse(function(qt){qt instanceof Q1&&(qt.material.uniforms.color.value=Hr(kt.color))});else if(s=="swc"){if(Z.current[kt.name]&&At){let dt=new URL(window.location.href),Ht=new URLSearchParams(dt.search);It.current[kt.name]=kt.color.replace("#","!"),Ht.set("neuronsColor",encodeURIComponent(JSON.stringify(It.current))),dt.search=Ht.toString(),window.history.replaceState({},"",dt),At.traverse(function(wt){wt instanceof xa&&wt.material.color.set(kt.color)})}Ce.current.traverse(dt=>{if(dt.myMeshType==="neuronSphere"&&dt.userData.type=="end"&&kt.name===dt.name.split("-")[0]){let Ht=kt.color;dt.material.uniforms.color.value=new Qr(Ht),dt.userData.color=Ht}});let[qt,Pt]=Lt(Je.current,kt.name);for(let dt in Pt){let Ht=dt;dt.indexOf("_")>-1&&(Ht=dt.split("_")[0]);let wt=(Ze=Je.current[`${Ht}`])==null?void 0:Ze.find(fr=>fr.name===kt.name);wt&&(wt.color=kt.color)}Ce.current.traverse(dt=>{if(dt.name==="lineNameMesh"&&dt.userData.type=="end"&&kt.name===dt.userData.wholeName.split("-")[0]){let Ht=kt.color;dt.material.color.set(Ht),dt.userData.initColor=Ht}})}},Ar=w.useCallback((ot,ut,kt,At,Ze)=>{ot.stopPropagation();let qt=new URL(window.location.href),Pt=new URLSearchParams(qt.search),dt=ut,Ht=E0e(dt,he.current),fr=WS(dt,he.current).children,Hn=U+"/data/"+Q.current+"/"+Pn(dt)+".FBX";for(var Un=0;Un<Ht.length;Un++){if(ri(Ht[Un],!0),ke.includes(Ht[Un])){Ie(tt=>tt.filter(Xe=>Xe!==Ht[Un]));const fe=JSON.stringify(ke.filter(tt=>tt!==Ht[Un]));Pt.set("regionsExpanded",fe)}Y.current=Y.current.filter(fe=>fe!==Ht[Un])}if(ke.includes(dt)){Ie(tt=>tt.filter(Xe=>Xe!==dt));const fe=JSON.stringify(ke.filter(tt=>tt!==dt));Pt.set("regionsExpanded",fe),Y.current.includes(dt)||Y.current.push(dt),No.current[dt]?(Ce.current.remove(No.current[dt]),No.current[dt].children[0].material.color.set(At),Ce.current.add(No.current[dt]),dg.current&&(Ce.current.remove(es.current[dt]),es.current[dt].children[0].material.color.set(At),Ce.current.add(es.current[dt]))):qh(Hn,dt,At,.6,parseInt(Ze));for(var Un=0;Un<fr.length;Un++)Y.current=Y.current.filter(Xe=>Xe!==fr[Un].name),ri(fr[Un].name,!0),Ae.current=0,delete ne.current[fr[Un].name]}else{const fe=document.getElementById("spinner"),tt=JSON.stringify([...ke,dt]);Pt.set("regionsExpanded",tt),Ie(Xe=>[...Xe,dt]),fe&&(fe.style.display="block"),No.current[dt]?(Ce.current.remove(No.current[dt]),No.current[dt].children[0].material.color.set("#DBDBDB"),Ce.current.add(No.current[dt]),dg.current&&(Ce.current.remove(es.current[dt]),es.current[dt].children[0].material.color.set("#DBDBDB"),Ce.current.add(es.current[dt]))):qh(Hn,dt,"#DBDBDB",.6,parseInt(Ze)),Y.current=Y.current.filter(Xe=>Xe!==dt);for(var Un=0;Un<fr.length;Un++)if(fr[Un]["3D"]){let st=parseInt(fr[Un].z),nn=fr[Un].color,vn=U+"/data/"+Q.current+"/"+Pn(fr[Un].name)+".FBX";Y.current.push(fr[Un].name),oi(vn,fr[Un].name,nn,.6,st,function(){fe&&(fe.style.display="none")})}}g(Y.current);const Ne=JSON.stringify(Y.current);Pt.set("regionsChecked",Ne),qt.search=Pt.toString(),window.history.replaceState({},"",qt)},[m,f,ke]),Ri=(ot,ut,kt)=>{if(ut===Y.current[0]&&x)return;const At=Y.current.indexOf(ut);if(At!==-1){x&&(ot.target.style.color="black"),g(dt=>dt.filter(Ht=>Ht!==ut)),Y.current.splice(At,1);let Ze=new URL(window.location.href),qt=new URLSearchParams(Ze.search);const Pt=JSON.stringify(Y.current);s==="fbx"?qt.set("regionsChecked",Pt):s==="vessel"&&qt.set("vesselsChecked",Pt),Ze.search=qt.toString(),window.history.replaceState({},"",Ze),ri(ut,!0)}else{x&&(ot.target.style.color="red"),Y.current.push(ut),g([...Y.current]);let Ze=new URL(window.location.href),qt=new URLSearchParams(Ze.search);const Pt=JSON.stringify(Y.current);s==="fbx"?qt.set("regionsChecked",Pt):s==="vessel"&&qt.set("vesselsChecked",Pt),Ze.search=qt.toString(),window.history.replaceState({},"",Ze);let dt=U+"/data/FBX/"+ut+".FBX";qh(dt,ut,kt,.8,0)}if(b){const Ze=b.current.indexOf(ut);Ze>-1?b.current.splice(Ze,1):b.current.push(ut)}},Mr=w.useMemo(()=>{var Ze,qt;let ot=J&&J.split(" ")[0]||"",ut=typeof G=="string"?G.split(" ")[0]:"",kt=["MO","MOs","MOp","CP","Isocortex"];if(s=="swc"){let Pt=[],dt=[];if(E&&ut){let Ht=((Ze=E[ut])==null?void 0:Ze.axon)||[];Pt=[...Pt,...Ht]}if(E&&ot){let Ht=((qt=E[ot])==null?void 0:qt.soma)||[];dt=[...dt,...Ht]}if(ut&&ot){let Ht=new Set(Pt),wt=new Set(dt);Oe.current=[...Ht].filter(fr=>wt.has(fr))}else ut?Oe.current=Pt:ot&&(Oe.current=dt)}const At=Pt=>Pt&&Pt.map((dt,Ht)=>{I7.push(dt),dt.nameflag?dt.key=dt.nameflag:dt.key=dt.name;let wt=dt.name;if(localStorage.getItem("lang")=="zh_cn"&&dt.cname&&(wt=dt.cname),s==="vessel"){const fe=LT(dt.key,n);fe[fe.length-1]}dt.path||(s==="vessel"?dt.path=U+"/data/Vessel/":s==="fbx"&&(dt.path=U+"/data/FBX/"));const fr=ht.reduce((fe,tt)=>{const[Xe,st]=tt.split(":");return fe[Xe]=st,fe},{}),Hn=(fe,tt)=>fe in fr?fr[fe]===tt[fe]:!0;let Un;const Ne=G&&dt["3D"]&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1||x&&Y.current.slice(1).includes(wt)||s=="vessel"&&G&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1;if(s==="fbx"||s==="vessel")return Un=w.createElement("span",{style:{display:"flex",alignItems:"center"},onClick:fe=>fe.stopPropagation()},w.createElement(aL,{format:"rgb",defaultValue:dt.color,onChange:(fe,tt)=>zn(fe,tt,dt)}),w.createElement(Aa,{placement:"right",title:dt.fullname},w.createElement("div",{onClick:fe=>Ri(fe,dt.key,dt.color),style:Ne?{color:"red",whiteSpace:"nowrap"}:{color:"black",whiteSpace:"nowrap"}},wt)),ir.includes(dt.name)?w.createElement(Aa,{placement:"right",title:p("5000.6041")||"新标注"},w.createElement("svg",{className:"svgleft",width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",style:{marginLeft:"8px"},xmlns:"http://www.w3.org/2000/svg"},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 12.39 0.00 L 187.60 0.00 C 193.55 1.76 198.40 6.33 200.00 12.39 L 200.00 197.03 C 197.21 200.36 192.66 199.74 189.30 197.68 C 160.70 182.89 131.92 168.44 103.27 153.76 C 100.74 151.94 97.96 153.23 95.58 154.56 C 79.92 162.65 64.11 170.45 48.45 178.54 C 34.57 185.85 20.35 192.53 6.55 200.00 L 4.06 200.00 C 2.44 198.91 1.07 197.50 0.00 195.87 L 0.00 12.40 C 1.80 6.43 6.41 1.77 12.39 0.00 M 68.04 50.93 C 67.96 68.97 68.00 87.02 68.01 105.06 C 67.45 108.62 71.21 112.26 74.72 110.75 C 77.57 109.92 78.36 106.64 78.30 104.03 C 78.31 90.37 78.34 76.71 78.25 63.05 C 93.63 78.23 108.28 94.13 123.37 109.59 C 124.85 111.28 127.53 111.57 129.39 110.34 C 131.68 109.12 132.04 106.39 132.00 104.06 C 131.96 86.01 132.08 67.96 131.94 49.91 C 132.41 46.10 127.58 43.22 124.42 45.37 C 121.60 46.80 121.73 50.30 121.67 53.00 C 121.74 66.29 121.62 79.57 121.76 92.85 C 107.86 78.88 94.47 64.40 80.64 50.36 C 78.20 48.09 75.99 44.09 72.08 44.90 C 69.30 45.36 67.87 48.32 68.04 50.93 Z"})))):null,D!=null&&D.includes("neurons")&&kt.includes(dt.name)&&(N=="task3D"||N=="3Dneurons")?w.createElement(Aa,{placement:"right",title:p("5000.6040")||"投射丰富"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",style:{marginLeft:"5px"},version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:()=>{R==null||R.current.tabChange(7),setTimeout(()=>{L&&L(dt.name)},50)}},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 161.22 29.23 C 170.61 22.47 184.66 24.19 192.68 32.31 C 197.08 36.53 199.12 42.53 200.00 48.42 L 200.00 51.57 C 199.07 58.41 196.19 65.28 190.43 69.42 C 182.96 75.76 171.77 76.37 163.24 71.84 C 157.18 68.92 153.36 63.05 150.76 57.07 C 143.17 57.08 135.57 56.74 127.99 57.09 C 125.64 57.08 124.07 59.04 122.49 60.48 C 109.60 73.80 96.19 86.60 83.39 100.00 C 96.19 113.40 109.60 126.20 122.49 139.52 C 124.07 140.96 125.64 142.92 127.98 142.91 C 135.58 143.26 143.19 142.92 150.80 142.94 C 152.36 139.60 153.87 136.15 156.39 133.41 C 161.32 127.99 168.67 124.81 176.01 125.13 C 183.62 125.37 191.06 129.33 195.32 135.66 C 200.14 142.64 201.01 152.08 197.83 159.90 C 193.64 169.75 182.73 176.08 172.08 174.81 C 162.13 173.99 153.99 166.24 150.70 157.12 C 141.45 156.77 132.19 157.20 122.94 156.99 C 119.96 157.25 117.95 154.84 116.03 152.98 C 102.37 138.97 88.30 125.36 74.64 111.35 C 72.74 109.58 70.92 107.06 68.05 107.07 C 61.80 106.71 55.54 107.06 49.29 107.12 C 46.34 115.79 38.83 122.99 29.63 124.43 C 19.13 126.37 7.56 120.75 2.99 111.02 C -1.82 101.38 0.34 88.66 8.45 81.45 C 16.25 74.63 28.64 72.73 37.60 78.39 C 43.12 81.56 46.99 86.86 49.37 92.67 C 55.88 92.61 62.41 93.06 68.91 92.61 C 70.92 92.57 72.27 90.88 73.65 89.65 C 87.81 75.15 102.36 61.03 116.53 46.53 C 118.28 44.79 120.23 42.76 122.94 43.01 C 132.21 42.82 141.49 43.18 150.76 42.93 C 153.10 37.64 156.28 32.47 161.22 29.23 Z"})))):null,w.createElement("div",{ref:Ht==0?u:null,style:{width:20,height:20,marginLeft:8}},dt.children&&y&&(N=="task3D"||N=="3Dlabel")?w.createElement(Aa,{placement:"right",title:ke.includes(dt.key)?"Assemle":"Expand"},ke.includes(dt.key)?w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:fe=>Ar(fe,dt.key,`${dt.key}`,dt.color,dt.z)},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 63.29 5.38 C 64.77 5.01 66.21 5.93 67.59 6.37 C 76.47 10.42 84.89 15.45 93.99 19.03 C 96.79 20.32 100.17 21.53 101.43 24.64 C 103.43 28.57 100.65 33.35 96.69 34.67 C 89.18 37.63 82.15 41.64 74.68 44.70 C 70.42 46.40 65.85 50.45 61.12 47.92 C 51.83 43.67 42.87 38.75 33.64 34.38 C 30.76 33.08 27.65 31.24 27.03 27.85 C 26.96 24.60 28.32 20.85 31.64 19.65 C 42.33 15.22 52.50 9.55 63.29 5.38 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 15.39 56.26 C 17.98 55.30 20.40 57.34 22.69 58.29 C 30.72 62.68 39.29 66.09 47.05 70.95 C 50.29 72.73 50.08 76.80 50.06 79.98 C 49.82 91.26 50.26 102.56 49.87 113.83 C 48.69 117.23 44.23 120.17 40.62 118.42 C 31.59 115.01 22.81 110.92 14.00 106.99 C 9.42 104.95 9.09 99.37 8.97 95.04 C 9.05 85.36 8.92 75.67 9.02 66.00 C 8.93 61.81 11.32 57.64 15.39 56.26 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 109.45 56.37 C 113.43 54.97 117.33 58.88 118.67 62.35 C 119.44 66.85 118.87 71.46 119.00 76.00 C 118.77 84.93 119.77 94.00 117.79 102.80 C 117.39 105.12 115.10 106.29 113.17 107.17 C 105.54 110.54 97.93 113.93 90.31 117.31 C 88.05 118.18 85.69 119.33 83.20 118.99 C 80.27 117.96 77.59 115.38 77.99 112.02 C 77.99 100.34 77.98 88.66 78.00 76.98 C 77.80 73.81 79.74 70.88 82.64 69.66 C 91.60 65.29 100.43 60.62 109.45 56.37 Z"})),w.createElement("g",{id:"#8da6d9ff"},w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 10.48 33.45 C 14.12 32.46 17.23 35.20 20.36 36.61 C 22.35 38.00 25.96 38.81 25.77 41.84 C 25.91 43.53 23.62 44.66 22.18 43.98 C 18.23 42.43 14.41 40.41 10.91 38.01 C 9.31 36.99 10.24 34.90 10.48 33.45 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 113.64 33.62 C 114.86 32.90 116.24 33.28 117.54 33.44 C 117.65 34.89 118.71 37.04 117.12 38.02 C 113.32 40.46 109.32 42.77 105.00 44.17 C 102.38 44.63 101.22 40.71 103.32 39.38 C 106.46 36.98 110.08 35.28 113.64 33.62 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 32.35 44.38 C 36.95 44.43 40.98 47.92 44.91 50.13 C 47.61 51.34 45.87 56.15 43.02 55.20 C 38.83 53.64 34.78 51.46 31.23 48.74 C 29.51 47.51 30.52 44.85 32.35 44.38 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 83.15 50.18 C 86.59 47.86 90.26 45.76 94.16 44.30 C 96.46 43.58 97.45 46.12 97.82 47.88 C 94.55 50.84 90.52 52.76 86.56 54.60 C 85.18 55.35 83.62 54.93 82.16 54.82 C 82.08 53.21 81.21 51.03 83.15 50.18 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 51.49 55.43 C 56.19 54.55 59.78 58.65 64.01 59.97 C 68.18 58.57 71.82 54.46 76.48 55.50 C 76.69 56.83 77.25 58.23 76.74 59.58 C 73.79 61.91 70.21 63.25 67.06 65.27 C 66.80 69.37 67.00 73.50 66.42 77.57 C 64.81 77.78 63.19 77.76 61.59 77.55 C 61.00 73.47 61.20 69.34 60.94 65.24 C 57.78 63.24 54.16 61.96 51.27 59.56 C 50.53 58.23 51.26 56.78 51.49 55.43 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 61.61 84.44 C 63.20 84.05 64.82 84.09 66.42 84.44 C 67.10 89.77 67.19 95.20 66.42 100.53 C 64.82 101.13 63.15 101.18 61.52 100.63 C 60.93 95.26 60.78 89.80 61.61 84.44 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 61.65 108.59 C 62.39 106.51 65.30 107.03 66.52 108.37 C 67.25 112.72 67.03 117.20 66.40 121.55 C 64.81 122.00 63.19 122.00 61.60 121.55 C 61.04 117.28 60.56 112.81 61.65 108.59 Z"}))):w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:fe=>Ar(fe,dt.key,`${dt.key}`,dt.color,dt.z)},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 61.53 12.67 C 65.46 11.54 69.30 13.51 72.75 15.18 C 79.87 18.83 87.26 21.90 94.40 25.50 C 98.14 27.43 102.24 28.74 105.61 31.32 C 108.79 33.88 107.69 39.53 104.04 41.12 C 97.03 44.96 89.48 47.73 82.40 51.44 C 77.12 53.83 71.95 56.48 66.60 58.70 C 63.66 60.17 60.60 58.42 57.90 57.25 C 46.68 51.71 35.19 46.70 23.99 41.12 C 19.70 39.29 19.26 32.55 23.58 30.52 C 32.09 25.74 41.21 22.17 49.92 17.78 C 53.73 15.95 57.45 13.86 61.53 12.67 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 19.32 48.10 C 22.27 47.30 25.07 49.17 27.71 50.24 C 36.66 54.75 45.89 58.69 54.87 63.12 C 56.99 64.25 59.54 65.55 60.07 68.13 C 60.64 70.71 60.51 73.37 60.53 76.00 C 60.40 86.34 60.51 96.69 60.51 107.03 C 60.44 109.78 60.34 113.19 57.72 114.82 C 54.77 117.03 51.17 114.98 48.27 113.77 C 39.28 109.37 30.16 105.24 21.11 100.97 C 19.03 99.85 16.43 98.92 15.46 96.58 C 14.66 93.80 14.87 90.85 14.82 87.99 C 14.97 77.31 14.77 66.62 14.88 55.94 C 14.74 52.76 16.06 49.18 19.32 48.10 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 105.40 48.21 C 108.42 46.98 112.09 49.16 112.66 52.32 C 113.43 56.16 113.11 60.11 113.15 64.00 C 113.03 73.34 113.25 82.69 113.10 92.04 C 113.14 95.16 112.21 98.70 109.04 100.01 C 99.09 104.78 89.00 109.29 79.06 114.12 C 76.54 115.15 73.59 116.72 70.92 115.21 C 67.85 113.76 67.50 110.02 67.50 107.03 C 67.51 95.68 67.56 84.34 67.48 72.99 C 67.64 70.22 67.28 66.64 70.01 64.96 C 74.57 61.94 79.73 60.01 84.64 57.66 C 91.64 54.70 98.21 50.72 105.40 48.21 Z"})))):null)),dt.title=Un,dt.key=dt.name,dt["3D"]==!1&&(dt.disabled=!0),x||ke.includes(dt.name)?dt.disableCheckbox=!0:dt.disableCheckbox=!1,dt.children&&(dt.children=At(dt.children)),dt;if(s=="swc"){if(ut||ot)return Oe.current&&Oe.current.includes(wt)&&Hn("strain",dt)&&Hn("age",dt)&&Hn("weight",dt)&&Hn("gender",dt)&&Hn("injected_viruses",dt)&&Hn("imaging_system",dt)&&Hn("species",dt)?(dt.title=dt.name,dt.key=dt.name,dt.color=dt.color?dt.color:"green",!tn||dt.show?dt:null):null}else{const fe=G&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1;return Un=w.createElement(Aa,{placement:"right",title:dt.fullname},w.createElement("span",{style:{display:"flex",alignItems:"center"},onClick:tt=>tt.stopPropagation()},dt.children&&s=="swc"?null:w.createElement(aL,{disabled:s=="swc",format:"rgb",defaultValue:s=="swc"?"green":dt.color,onChange:(tt,Xe)=>zn(tt,Xe,dt)}),w.createElement("div",{style:fe?{color:"red"}:{}},wt))),dt.title=Un,dt.key=dt.name,dt.children&&(dt.children=At(dt.children)),dt}});return At(n).filter(Boolean)},[G,n,J,ke,x,y,M,pe,ht,E,tn,N]),gr=(ot,ut)=>{g(Pt=>[...Pt,ot]),Y.current.push(ot);let kt=new URL(window.location.href),At=new URLSearchParams(kt.search);const Ze=JSON.stringify(Y.current);At.set("neuronsChecked",Ze),kt.search=At.toString(),window.history.replaceState({},"",kt);let qt=Gr(Mr,ot);fetch(qt.path).then(Pt=>Pt.json()).then(Pt=>{cn(Pt)}),Z.current[ot]?(yt({name:ot,color:ut}),Qe(!0)):gn(qt.path,6,ot,qt.color,function(){_s(ot,qt.color),yt({name:ot,color:ut}),Qe(!0)})},mr=[{title:"Name",dataIndex:"name"},{title:"Color",dataIndex:"Picker",width:50,render:(ot,ut)=>(It[ut.name]&&(ut.color=It[ut.name]),w.createElement(aL,{disabled:!ut.show,format:"rgb",defaultValue:ut.color?ut.color:"green",onChange:(kt,At)=>zn(kt,At,ut)}))},{title:"Ana.",dataIndex:"Ana",align:"center",render:(ot,ut)=>w.createElement(Aa,{placement:"right",title:p("5000.7008")||"分析"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",xmlns:"http://www.w3.org/2000/svg",cursor:"pointer",pointerEvents:ut.show?"auto":"none",onClick:kt=>{gr(ut.name,ut.color)}},w.createElement("g",{id:"#515151ff"},w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 93.31 23.38 C 99.84 22.59 106.48 23.11 113.05 23.06 C 116.47 22.96 118.74 26.28 119.64 29.16 C 119.69 72.38 119.68 115.62 119.65 158.85 C 118.76 161.25 117.05 164.47 114.01 164.31 C 107.36 164.33 100.70 164.43 94.05 164.27 C 90.19 163.42 89.10 158.51 89.04 155.07 C 88.96 114.37 88.99 73.66 89.03 32.95 C 88.88 29.39 89.91 25.14 93.31 23.38 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 154.30 33.38 C 160.49 32.55 166.82 33.20 173.07 33.01 C 177.49 32.53 180.75 36.93 180.68 41.00 C 180.64 79.96 180.71 118.92 180.65 157.87 C 180.10 160.67 178.42 164.46 175.00 164.30 C 168.35 164.35 161.68 164.43 155.03 164.26 C 150.70 163.82 149.84 158.51 149.68 155.00 C 149.66 117.67 149.67 80.35 149.67 43.02 C 149.50 39.30 150.67 35.07 154.30 33.38 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 31.38 68.42 C 36.43 66.93 41.81 67.98 47.00 67.67 C 50.60 67.83 55.31 66.86 57.74 70.26 C 59.28 71.73 58.83 74.05 59.00 75.97 C 58.96 103.34 59.07 130.71 58.95 158.08 C 59.30 161.45 56.33 164.46 52.99 164.32 C 46.66 164.36 40.33 164.36 34.01 164.32 C 30.72 164.36 27.65 161.48 28.05 158.09 C 27.95 130.37 28.00 102.64 28.03 74.92 C 27.75 72.28 28.89 69.58 31.38 68.42 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 7.94 174.89 C 8.70 174.83 10.24 174.70 11.01 174.64 C 47.00 174.68 83.00 174.65 119.00 174.66 C 146.00 174.78 173.01 174.42 200.00 174.84 L 200.00 184.15 C 198.66 184.25 197.33 184.31 196.00 184.35 C 134.33 184.34 72.67 184.34 11.01 184.35 C 10.24 184.29 8.70 184.17 7.94 184.11 C 7.49 181.06 7.48 177.94 7.94 174.89 Z"}))))},{title:"Path",dataIndex:"img",align:"center",width:50,render:(ot,ut)=>w.createElement(Aa,{placement:"right",title:p("5000.6003")||"投射路径"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",xmlns:"http://www.w3.org/2000/svg",cursor:"pointer",pointerEvents:ut.show?"auto":"none",onClick:kt=>{jt(ut.name)}},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:T&&ut.name in T.current?"#1296db":"#515151",opacity:"1.00",d:" M 49.85 22.81 C 59.71 14.23 76.52 14.87 85.29 24.74 C 87.48 27.08 88.68 30.09 90.41 32.73 C 91.80 33.49 93.46 33.21 94.98 33.33 C 111.66 33.26 128.35 33.27 145.03 33.31 C 156.32 33.34 168.08 37.82 175.15 46.90 C 184.45 58.34 185.39 75.18 179.31 88.32 C 175.60 95.86 169.21 102.22 161.27 105.20 C 155.18 107.71 148.53 108.28 142.00 108.29 C 112.98 108.27 83.95 108.30 54.93 108.29 C 47.32 108.11 39.18 111.60 35.74 118.72 C 31.96 126.77 32.58 137.41 38.92 144.04 C 43.19 148.73 49.91 149.96 55.98 150.00 C 72.33 150.03 88.68 149.95 105.04 150.04 C 106.56 150.01 108.10 150.00 109.60 149.65 C 111.78 145.95 113.50 141.75 117.13 139.15 C 126.54 131.15 141.94 131.52 150.80 140.19 C 153.70 142.84 155.15 146.56 157.28 149.78 C 164.10 150.58 171.02 149.34 177.82 150.39 C 184.67 152.33 185.10 163.99 178.15 166.09 C 171.31 167.70 164.18 165.87 157.29 167.06 C 155.14 170.31 153.62 174.04 150.68 176.70 C 140.24 186.50 121.13 185.09 112.96 173.05 C 111.06 170.87 110.76 166.29 107.04 166.72 C 93.69 166.66 80.35 166.74 67.00 166.71 C 57.97 166.58 48.53 167.54 39.99 163.97 C 31.40 160.72 23.97 154.20 20.28 145.72 C 13.84 131.17 16.41 112.32 28.35 101.31 C 36.18 93.81 47.48 91.52 58.00 91.71 C 87.34 91.67 116.69 91.78 146.03 91.68 C 153.59 91.69 161.48 87.76 164.60 80.60 C 168.03 72.44 167.24 61.77 160.57 55.44 C 156.20 51.22 149.90 49.98 144.02 50.00 C 128.01 49.96 112.00 50.06 95.99 49.95 C 94.12 49.98 92.23 49.93 90.41 50.34 C 88.22 54.05 86.50 58.25 82.87 60.85 C 73.46 68.85 58.08 68.47 49.22 59.81 C 46.25 57.21 44.85 53.43 42.73 50.21 C 35.91 49.42 28.99 50.67 22.20 49.60 C 15.26 47.64 14.91 36.10 21.94 33.95 C 28.72 32.23 35.86 34.16 42.71 32.94 C 44.97 29.49 46.61 25.52 49.85 22.81 M 63.32 34.12 C 56.99 36.45 57.07 46.16 62.70 49.22 C 65.17 50.16 68.00 50.11 70.52 49.39 C 73.84 47.68 75.46 43.66 74.83 40.07 C 74.41 34.85 67.77 32.10 63.32 34.12 M 130.37 150.45 C 125.27 151.88 123.75 158.64 126.14 162.91 C 128.25 166.43 133.18 167.23 136.81 165.90 C 141.61 164.64 142.31 158.29 140.69 154.36 C 139.16 150.30 134.12 149.42 130.37 150.45 Z"}))))},{title:"Src.",dataIndex:"source",align:"center",width:50,render:(ot,ut)=>{const kt=ut.type;return w.createElement(Aa,{placement:"right",title:p("5000.6038",{name:kt})||'数据来源"'+kt+'"'},w.createElement("a",{href:ut.url,target:"_blank"},w.createElement("img",{src:ut.image,width:"20px",height:"20px"})))}}],gi=ot=>{for(var ut=window.location.search.substring(1),kt=ut.split("&"),At=0;At<kt.length;At++){var Ze=kt[At].split("=");if(Ze[0]==ot)return Ze[1]}return!1},Gi=(ot,ut)=>{let At=WS(ag(ot,ut),ut).children;for(var Ze=[],qt=0;qt<At.length;qt++)At[qt]["3D"]&&Ze.push(At[qt].name);return Ze},Li=()=>{const ot=Object.keys(ne.current);Object.keys(ne.current).length!==0&&Wr(ot,ne.current,.2,0,void 0,!0)};w.useEffect(()=>{Li()},[f]);const oi=(ot,ut,kt,At,Ze,qt)=>{var Pt=new ka;if(Pt.setFromAxisAngle(new ye(1,0,0),Math.PI/2),!No.current[ut]){var dt=new iH;At=At||.1,dt.load(ot,function(Ht){Ht.scale.set(Do.current,Do.current,Do.current),Ht.applyQuaternion(Pt),Ze&&Ht.translateY(Ze*Do.current*.1),Ht.children[0].material.transparent=!0,Ht.children[0].material.opacity=At,Ht.children[0].material.depthTest=!1,Ht.children[0].material.color.set(kt);let wt=Ht.clone();if(ut!="Brain"){var fr=new si,Hn=new ye(1,0,0);fr.set(1-2*Hn.x*Hn.x,-2*Hn.x*Hn.y,-2*Hn.x*Hn.z,0,-2*Hn.x*Hn.y,1-2*Hn.y*Hn.y,-2*Hn.y*Hn.z,0,-2*Hn.x*Hn.z,-2*Hn.y*Hn.z,1-2*Hn.z*Hn.z,0,0,0,0,1),wt.applyMatrix4(fr),wt.translateX(-Ko.current),wt.translateY(Ao.current),wt.translateZ(-Io.current),wt.name=ut,wt.myMeshType="FBX",wt.children[0].name=ut,wt.children[0].myMeshType="FBX",es.current[ut]=wt,dg.current&&Ce.current.add(wt)}Ht.translateX(Ko.current),Ht.translateY(Ao.current),Ht.translateZ(-Io.current),Ht.name=ut,Ht.myMeshType="FBX",Ht.children[0].name=ut,Ht.children[0].myMeshType="FBX",No.current[ut]=Ht,Ce.current.add(No.current[ut]);var Un=new ye,Ne=new ns().setFromObject(Ht);Ne.getCenter(Un);var fe=new ye;Ne.getSize(fe);var tt=fe.x*fe.y*fe.z;RT.current[ut]=[Un,tt];for(var Xe=LT(ut,he.current),st=0;st<Xe.length;st++)if(o!=null&&o.current&&ne.current[Xe[st]])if(q.current||de.current){Ht.translateOnAxis(ne==null?void 0:ne.current[Xe[st]].axis,o.current*(ne==null?void 0:ne.current[Xe[st]].length));var nn=ne==null?void 0:ne.current[Xe[st]].axis.clone();nn.x=nn.x*-1,wt.translateOnAxis(nn,o.current*(ne==null?void 0:ne.current[Xe[st]].length))}else{var nn=ne[Xe[st]].axis.clone();nn.x=nn.x*-1,wt.translateOnAxis(nn,o.current*(ne==null?void 0:ne.current[Xe[st]].length)),Ht.translateOnAxis(ne==null?void 0:ne.current[Xe[st]].axis,o.current*(ne==null?void 0:ne.current[Xe[st]].length))}No.current[ut]=Ht;let vn=Gi(ut,he.current);for(var on=!0,pn=0;pn<vn.length;pn++)vn[pn]in No.current||(on=!1);if(on){for(var Nt=0,pn=0;pn<vn.length;pn++){var Xt=vn[pn];if(!q.current)if(de.current){let hr=new ye(0,0,5);ne.current[Xt]={axis:RT.current[Xt][0].clone().sub(hr).applyAxisAngle(new ye(1,0,0),-1*Math.PI/2).normalize(),length:Math.cbrt(RT.current[Xt][1])}}else se.current;Nt=Nt+ne.current[Xt].length}if(!(de.current||q.current))for(pn=0;pn<vn.length;pn++)ne.current[vn[pn]].length=ne.current[vn[pn]].length/Nt*vn.length;var li=setInterval(function(){if(o!=null&&o.current&&Ae.current<(o==null?void 0:o.current)){Ae.current=Ae.current+.2;let Dr;Ae.current>(o==null?void 0:o.current)&&(Dr=(o==null?void 0:o.current)-Ae.current+.2,Ae.current=o.current),Wr(vn,ne.current,.2,0,Dr)}else Ae.current=0,clearInterval(li)},20)}qt&&qt()})}},Wr=(ot,ut,kt,At,Ze,qt=!1)=>{var Pt,dt;if(q.current||de.current)var Ht=.2;else var Ht=kt;for(var wt in ot){var fr=ot[wt];Pt=No.current[fr],dt=es.current[fr];var Hn=ut[fr].axis,Un=Hn.clone();Un.x=Un.x*-1;var Ne=ut[fr].length;if(qt&&o){No.current[ot[wt]].locationLength=o==null?void 0:o.current,No.current[ot[wt]].position.set(0,0,0),No.current[ot[wt]].translateX(Ko.current),No.current[ot[wt]].translateY(Ao.current),No.current[ot[wt]].translateZ(-Io.current),No.current[ot[wt]].translateOnAxis(Hn,(o==null?void 0:o.current)*Ne),es.current[ot[wt]].position.set(0,0,0),es.current[ot[wt]].translateX(-Ko.current),es.current[ot[wt]].translateY(Ao.current),es.current[ot[wt]].translateZ(-Io.current),es.current[ot[wt]].locationLength=o==null?void 0:o.current,es.current[ot[wt]].translateOnAxis(Un,(o==null?void 0:o.current)*Ne);continue}switch(At){case 0:Ze?(No.current[ot[wt]].translateOnAxis(Hn,Ze*Ne),es.current[ot[wt]].translateOnAxis(Un,Ze*Ne)):(No.current[ot[wt]].translateOnAxis(Hn,Ht*Ne),es.current[ot[wt]].translateOnAxis(Un,Ht*Ne));break;case 1:Ht<=0?(Pt.translateOnAxis(Hn,-1*Math.sqrt(Math.abs(Ht*Ne))),dt.translateOnAxis(Un,-1*Math.sqrt(Math.abs(Ht*Ne)))):(Pt.translateOnAxis(Hn,Math.sqrt(Ht*Ne)),dt.translateOnAxis(Un,Math.sqrt(Ht*Ne)));break;case 2:Ht<=0?(Pt.translateOnAxis(Hn,-1*Math.pow(Ht,2)*Ne),dt.translateOnAxis(Un,-1*Math.pow(Ht,2)*Ne)):(Pt.translateOnAxis(Hn,Math.pow(Ht,2)*Ne),dt.translateOnAxis(Un,Math.pow(Ht,2)*Ne));break}}},wi=ot=>{for(let ut=0;ut<ot.length;ut++){const kt=ot[ut],{key:At,cname:Ze}=kt;localStorage.getItem("lang")=="zh_cn"&&Ze?_e.current.push({key:At,title:Ze}):_e.current.push({key:At,title:At}),kt.children&&wi(kt.children)}},ca=ot=>{const{value:ut}=ot.target;if(ut!=""){Re.current=!1,I7=[];const kt=_e.current.map(Ze=>Ze.title.toLowerCase().indexOf(ut.toLowerCase())>-1?ag(Ze.key,n):null).filter((Ze,qt,Pt)=>!!(Ze&&Pt.indexOf(Ze)===qt));let At=[];for(let Ze in kt){let qt=kt[Ze];if(qt){let Pt=LT(qt,n);ut.length===1?(Pt.length>2&&(Pt=Pt.slice(Pt.length-3,Pt.length)),At.push(...Pt)):At.push(qt,...Pt)}}At.filter((Ze,qt,Pt)=>!!(Ze&&Pt.indexOf(Ze)===qt)),B(At),K(!0),W(ut)}else B(le.current),W(""),Re.current=!0},wa=(ot,ut)=>(...At)=>{clearTimeout(F.current),F.current=setTimeout(()=>{ot(...At)},ut)},Xa=wa(ca,50),so=ot=>{B(ot),I7=[],K(!1)},_s=(ot,ut)=>{Z.current[ot]&&Z.current[ot].children[0].material.color.set(ut)},po=w.useCallback((ot,ut,kt,At)=>{let Ze=ot,qt="",Pt;if(s!=="swc"){if(Ze=ut.node.name,qt=ut.node.path,Pt=ut.node.color,Ze===Y.current[0]&&S===2)return;if(b){const Ne=b.current.indexOf(Ze);Ne>-1?b.current.splice(Ne,1):Y.current.length!==0&&b.current.push(Ze)}let Ht=m.findIndex(Ne=>Ne==Ze),wt=JSON.parse(JSON.stringify(m));Ht>-1?wt.splice(Ht,1):wt.push(Ze),g(wt),Y.current=wt;let fr=new URL(window.location.href),Hn=new URLSearchParams(fr.search);const Un=JSON.stringify(wt);s==="fbx"?Hn.set("regionsChecked",Un):s==="vessel"&&Hn.set("vesselsChecked",Un),fr.search=Hn.toString(),window.history.replaceState({},"",fr)}const dt=document.getElementById("spinner");switch(s){case"vessel":{Ze=="Unnamed vein"&&(Ze="Unnamed_Vein");let Ht=qt+Ze+".js";ut.checked?(Lm=!0,dt&&(dt.style.display="block"),yr(Ht,8,Pt,Ze,function(){dt&&(dt.style.display="none")})):(Lm=!1,dt&&(dt.style.display="none"),Bn(Ze));break}case"swc":{if(kt)if(At){let Ht=ut.map(wt=>new Promise((fr,Hn)=>{if(ut)if(Z.current[wt.name])fr("");else{g(Xe=>[...Xe,wt.name]);let Un=new URL(window.location.href),Ne=new URLSearchParams(Un.search);const fe=[...m,wt.name],tt=JSON.stringify(fe);Ne.set("neuronsChecked",tt),Un.search=Ne.toString(),window.history.replaceState({},"",Un),dt&&(dt.style.display="block"),gn(wt.path,6,wt.name,wt.color,function(){_s(wt.name,"green"),fr("")})}else{Lm=!1,Ke(wt.name);let Un=new URL(window.location.href),Ne=new URLSearchParams(Un.search);const tt=JSON.stringify([]);Ne.set("neuronsChecked",tt),Un.search=Ne.toString(),window.history.replaceState({},"",Un),fr("")}}));Promise.all(Ht).then(()=>{dt&&(dt.style.display="none")})}else{Y.current.push(ot.name),dt&&(dt.style.display="block"),g(Hn=>[...Hn,ot.name]);let Ht=new URL(window.location.href),wt=new URLSearchParams(Ht.search);const fr=JSON.stringify(Y.current);wt.set("neuronsChecked",fr),Ht.search=wt.toString(),window.history.replaceState({},"",Ht),gn(ot.path,6,ot.name,ot.color,function(){_s(ot.name,"green"),dt&&(dt.style.display="none")})}else if(At)ut.forEach(Ht=>{if(ut){g(Un=>Un.filter(Ne=>Ne!==Ht.name)),Y.current=Y.current.filter(Un=>Un!==Ht.name),Ke(Ht.name);let wt=new URL(window.location.href),fr=new URLSearchParams(wt.search);const Hn=JSON.stringify(Y.current);if(fr.set("neuronsChecked",Hn),wt.search=fr.toString(),window.history.replaceState({},"",wt),T&&Ht.name in T.current){ee(Un=>Un.filter(Ne=>Ne!==Ht.name));for(let Un in T.current[Ht.name])Ce.current.remove(T.current[Ht.name][Un]);delete T.current[Ht.name]}}});else{if(T&&ot.name in T.current){ee(Hn=>Hn.filter(Un=>Un!==ot.name));for(let Hn in T.current[ot.name])Ce.current.remove(T.current[ot.name][Hn]);delete T.current[ot.name]}Ke(ot.name),Y.current=Y.current.filter(Hn=>Hn!==ot.name),g(Hn=>Hn.filter(Un=>Un!==ot.name));let Ht=new URL(window.location.href),wt=new URLSearchParams(Ht.search);const fr=JSON.stringify(Y.current);wt.set("neuronsChecked",fr),Ht.search=wt.toString(),window.history.replaceState({},"",Ht)}break}case"soma":{S0e(Ze,Mr).forEach(wt=>{ut.checked?(Lm=!0,Z.current[Ze]||(h!=null&&h.current?ii(qt,wt.color,Ze):ii(U+"/data/json/"+Ze,wt.color,Ze))):(Lm=!1,Ke(Ze))});break}case"fbx":{let Ht=parseInt(ut.node.z),wt=U+"/data/FBX/"+Pn(Ze)+".FBX";ut.checked?(dt&&(dt.style.display="block"),qh(wt,Ze,Pt,.8,Ht,"FBX",function(){dt&&(dt.style.display="none")})):ri(Ze)}}},[m]),Ws=()=>{if(he.current.length>0&&s!=="swc"&&m.length>0&&(s==="fbx"||s==="vessel"))return new Promise((ot,ut)=>{const kt=document.getElementById("spinner");let At=0;for(let Ze=0;Ze<m.length;Ze++){let qt=WS(m[Ze],he.current);if(qt){let Pt={node:{...qt,checked:!0}};if(s==="fbx"){let dt=U+"/data/FBX/"+Pn(qt.key)+".FBX";qh(dt,qt.key,qt.color,.8,qt.z,"FBX",function(){kt&&(kt.style.display="none"),At+=1,At===m.length&&ot("")})}else if(s==="vessel"){let dt=qt.name,Ht=Pt.node.path;dt=="Unnamed vein"&&(dt="Unnamed_Vein");let wt=Ht+dt+".js";Lm=!0,kt&&(kt.style.display="block"),yr(wt,8,qt.color,dt,function(){kt&&(kt.style.display="none"),At+=1,At===m.length&&ot("")})}}}}).then(ot=>{if(mse){let ut=JSON.parse(mse);for(let kt=0;kt<ut.length;kt++){let At=WS(ut[kt],he.current);At&&Ar({stopPropagation:()=>{}},At.key,`${At.key}`,At.color,At.z)}}})},Fr=()=>{if(A7&&JSON.parse(A7).length!=0){const ot=document.getElementById("spinner"),ut=JSON.parse(A7);let kt=0;ot&&(ot.style.display="block");for(let At=0;At<ut.length;At++){let Ze=n.find(qt=>qt.name===ut[At]);Ze&&(It.current[ut[At]]?Ze.color=It.current[ut[At]].replace("!","#"):Ze.color="green",gn(Ze.path,6,Ze.name,Ze.color,function(){if(_s(Ze.name,Ze.color),yse){const qt=JSON.parse(yse);for(let Pt=0;Pt<qt.length;Pt++)Ze.name==qt[Pt]&&jt(Ze.name)}kt++,kt===ut.length&&ot&&(ot.style.display="none")}))}}};w.useEffect(()=>{!Ct.current&&n&&n.length>0&&(Fr(),Ws(),Ct.current=!1)},[n]);const ri=(ot,ut=!1)=>{No.current[ot]&&(Ce.current.remove(No.current[ot]),No.current[ot].children[0].geometry.dispose(),ut&&delete No.current[ot]),es.current[ot]&&(Ce.current.remove(es.current[ot]),es.current[ot].children[0].geometry.dispose(),ut&&delete es.current[ot]),ne.current[ot]&&ut&&delete ne.current[ot]},Lt=(ot,ut)=>{const kt={},At={};for(const Ze in ot){const qt=ot[Ze];for(const Pt of qt)if(Pt.name==ut){if(Pt.color==="#1771FF"){kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}if(Pt.color==="#A7B5A1"){kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type}}}for(const Ze in ot){const qt=ot[Ze];for(const Pt of qt)if(Pt.name==ut){if(Pt.type=="cell"){At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}Pt.type==="end"&&(Pt.point[0]<570?At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type}:At[Ze+"_111"]={point:Pt.point,color:Pt.color,type:Pt.type}),!At[Ze]&&!At[Ze+"_111"]&&Pt.point[0]<570&&(At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type})}}return[kt,At]},lt=(ot,ut)=>{if(Object.keys(ot).length>0){const kt=Ai.current.position;let At=Ce.current.getObjectByName("DR-anterior"),Ze=0;At&&(Ze=kt.distanceTo(At.position));for(let qt in ot){let{point:Pt,color:dt,type:Ht}=ot[qt];swt.load(U+"/fonts/helvetiker_bold.typeface.json",function(wt){const fr=new s0e(qt.replace("_111",""),{font:wt,size:.3,height:.01}),Hn=new zs({color:dt,specular:0,shininess:0}),Un=new kn(fr,Hn),Ne=Ze<6?.2:Ze<9?.3:.5;Un.scale.set(Ne,Ne,Ne),Un.position.set(Pt[0]*.01,Pt[1]*.01,Pt[2]*.01),Un.name="lineNameMesh",Un.userData.name=qt.replace("_111",""),Un.userData.wholeName=`${ut}-${qt.replace("_111","")}`,Un.userData.initColor=dt,Un.userData.type=Ht,Un.translateY(Io.current),Un.translateZ(Ao.current),Un.translateX(Ko.current),fr.center(),T!=null&&T.current&&T.current[ut].push(Un),Ce.current.add(Un)})}}else setTimeout(()=>{const[kt,At]=Lt(Je.current,ut);lt(At,ut)},100)},jt=(ot,ut,kt)=>{let At=new URL(window.location.href),Ze=new URLSearchParams(At.search),qt,Pt;if(kt?[qt,Pt]=Lt(kt,ot):[qt,Pt]=Lt(Je.current,ot),T!=null&&T.current){const dt=document.getElementById("spinner");if(ot in T.current){for(let wt in T.current[ot])ee(fr=>fr.filter(Hn=>Hn!==ot)),Ce.current.remove(T.current[ot][wt]);const Ht=pe.filter(wt=>wt!==ot);Ze.set("neuronsText",JSON.stringify(Ht)),delete T.current[ot]}else{if(T.current[ot]=[],ee(Ht=>[...Ht,ot]),Ze.set("neuronsText",JSON.stringify([...pe,ot])),!(ot in Z.current)){g(fr=>[...fr,ot]),Y.current=[...Y.current,ot];const Ht=JSON.stringify(Y.current);Ze.set("neuronsChecked",Ht);let wt=Gr(Mr,ot);if(dt&&(dt.style.display="block"),!Z.current[ot]){let fr=wt.color;wt.path&&fr&&gn(wt.path,6,ot,fr,function(){fr&&_s(ot,fr),dt&&(dt.style.display="none")})}}lt(Pt,ot)}At.search=Ze.toString(),window.history.replaceState({},"",At)}},Ke=ot=>{Z.current[ot]&&(Ce.current.remove(Z.current[ot]),Z.current[ot]=null,delete Z.current[ot]);const ut=Ce.current.getObjectByName(`swcPointGroup${ot}`);ut&&Ce.current.remove(ut)},Kt=ot=>ot.map(ut=>({value:ut.name+" "+ut.fullname,title:w.createElement(Aa,{placement:"right",title:ut.fullname},w.createElement("div",{style:{whiteSpace:"nowrap",display:"flex",alignItems:"center",lineHeight:"2.4"}},ut.name," ",ut.fullname)),children:ut.children?Kt(ut.children):void 0})),Bn=ot=>{Ce.current.remove(wm),Ce.current.remove(Dc),i.current[ot]&&(Ce.current.remove(i.current[ot].contentobj),i.current[ot].contentobj.traverse(function(ut){ut.type=="Mesh"&&(ut.geometry.dispose(),ut.geometry=null)}),i.current[ot].contentmaterial.dispose(),i.current[ot].contentmaterial=null,i.current[ot]=null,delete i.current[ot])},yr=(ot,ut,kt,At,Ze)=>{i.current[At]?(Ce.current.add(i.current[At].obj),Ze&&Ze()):fetch(ot).then(qt=>qt.json()).then(qt=>{var Pt=new Hu,dt=new Qme({color:kt}),Ht=!1;qt.line.length>1e4&&(Ht=!0);let wt=1;for(let Hn=0;Hn<qt.line.length;Hn++)qt.line[Hn].layer>wt&&(wt=qt.line[Hn].layer);wt++;for(let Hn=0;Hn<qt.line.length;Hn++){let Un=(wt-qt.line[Hn].layer)*20/wt,Ne=0,fe=[];for(let pn=qt.line[Hn].start;pn<=qt.line[Hn].end;pn++){let Nt=qt.position[pn].x,Xt=qt.position[pn].y,li=qt.position[pn].z;Ne++,fe.push(new ye(Nt,Xt,li))}let tt=new Gme(fe);Ne=Ht?Math.ceil(Ne/5):Ne;const Xe=new fL,st=new kn(new Qz(tt,Ne,Un,ut,!1),dt);st.scale.set(1,1,1),Xe.addLevel(st,0);const nn=80,vn=[fe[0]];for(let pn=1;pn<fe.length;pn++){const Nt=vn[vn.length-1],Xt=fe[pn];(Nt.distanceTo(Xt)>nn||pn===fe.length-1)&&vn.push(Xt)}const on=new xa(new Zi().setFromPoints(vn),new yh({color:kt}));on.scale.set(1,1,1),Xe.addLevel(on,10),Xe.name=At,Xe.myMeshType="Vessel",Xe.autoUpdate=!1,Pt.add(Xe)}Pt.scale.set(Do.current*.1,Do.current*.1,Do.current*.1),Pt.translateX(Ko.current),Pt.translateY(Io.current),Pt.translateZ(Ao.current),Pt.name=At,Pt.myMeshType="Vessel",Ce.current.add(Pt);let fr={contentobj:Pt,contentmaterial:dt};i.current[At]=fr,Ze&&Ze()})},Hr=ot=>{ot=ot.replace("#","");const ut=parseInt(ot.slice(0,2),16),kt=parseInt(ot.slice(2,4),16),At=parseInt(ot.slice(4,6),16),Ze=ut/255,qt=kt/255,Pt=At/255;return new ye(Ze,qt,Pt)},ii=(ot,ut,kt,At)=>{fetch(ot).then(Ze=>Ze.json()).then(Ze=>{let qt=new Q1,Pt=new Zi,dt=[];for(let wt=0;wt<Ze.position.length;wt++){let fr=Ze.position[wt].split(","),Hn=fr[0],Un=fr[1],Ne=fr[2];dt.push(Hn*Do.current*.099,Un*Do.current*.099,Ne*Do.current*.099)}Pt.setAttribute("position",new pa(dt,3)),Hr(ut);let Ht=new Zz({size:te.current/100,color:new Qr(ut)});qt=new Q1(Pt,Ht),qt.translateX(Ko.current),qt.translateY(Io.current),qt.translateZ(Ao.current-.45),qt.name=kt,Z.current[kt]=qt,Ce.current.add(qt)}),At&&At()},Nn=ot=>{ft.current=!0;let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);kt.set("neuronsProjects",JSON.stringify(ot)),ut.search=kt.toString(),window.history.replaceState({},"",ut),ot!=""?W(ot):(W(ot),B(le.current))},On=wa(Nn,50),rr=ot=>{ft.current=!0;let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);kt.set("neuronsSomaLocates",JSON.stringify(ot)),ut.search=kt.toString(),window.history.replaceState({},"",ut),ot!=""?re(ot):(re(ot),B(le.current))},Vt=wa(rr,50),_n=()=>{let ot=[No.current,es.current,ne.current];for(let Ze of ot)for(let qt in Ze)qt!="Brain"&&ri(qt,!0);ee([]),Object.keys(Z.current).forEach(Ze=>{for(let qt in T==null?void 0:T.current[Ze])Ce.current.remove(T==null?void 0:T.current[Ze][qt]);Ke(Ze)}),Object.keys(i.current).forEach(Ze=>{Bn(Ze)}),g([]),T&&(T.current={}),Y.current=[];let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);const At=JSON.stringify(Y.current);s==="fbx"?kt.set("regionsChecked",At):s==="vessel"?kt.set("vesselsChecked",At):s==="swc"&&(kt.set("neuronsChecked",At),kt.set("neuronsText",At)),ut.search=kt.toString(),window.history.replaceState({},"",ut)},Wn=(ot,ut)=>{let kt=0;for(const At of ot.toLowerCase())if(At===ut[kt]&&(kt++,kt===ut.length))return!0;return!1},Rn=ot=>{if(ot){const ut=ot.toLowerCase(),kt=ce.current.map(At=>{const Ze=At.name&&At.name.toLowerCase()===ut,qt=At.fullname&&Wn(At.fullname,ut);return{...At,matchPriority:Ze?1:qt?2:3}}).filter(At=>At.matchPriority<3).sort((At,Ze)=>At.matchPriority-Ze.matchPriority).map(At=>({value:`${At.name} ${At.fullname}`,label:`${At.name} ${At.fullname}`}));ue(kt)}else ue([])};w.useEffect(()=>{ft.current&&(J?oe.current&&oe.current.focus():Me.current&&Me.current.focus())},[J]),w.useEffect(()=>{ft.current&&(G?Ve.current&&Ve.current.focus():we.current&&we.current.focus())},[G]);const Gr=(ot,ut)=>{let kt=null,At=null;for(let Ze=0;Ze<ot.length;Ze++)if(ot[Ze].name==ut)return kt=ot[Ze].path,At=ot[Ze].color,{path:kt,color:At};return{path:kt,color:At}},Vr={emptyText:w.createElement(Om,{description:w.createElement("div",{style:{color:"#ccc"}},"Neurons that meet the filter criteria entered in the input boxes above will be displayed here.")})},Zr={selectedRowKeys:m,onSelectAll:(ot,ut,kt)=>{po(ut,kt,ot,!0)},onSelect:(ot,ut,kt)=>{po(ot,kt,ut,!1)},getCheckboxProps:ot=>({name:ot.name})},ta=ot=>{let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);const At=JSON.stringify(ot);kt.set("neuronsFilterInfo",At),ut.search=kt.toString(),window.history.replaceState({},"",ut),at(ot)},Za=ot=>{zt(ot)};return w.createElement("div",{ref:c,style:{transition:"all ease-in 0.5s"}},s==="swc"?w.createElement(w.Fragment,null,J?w.createElement(R9,{ref:oe,style:{width:"100%",marginBottom:8},options:Fe,placeholder:p("5000.5040")||"Input the region that soma locates",onSearch:Rn,onChange:Vt,value:J}):w.createElement(sL,{ref:Me,showSearch:!0,style:{width:"100%",marginBottom:8},value:J,dropdownStyle:{maxHeight:400,overflow:"hidden"},placeholder:p("5000.5040")||"Input the region that soma locates",allowClear:!0,treeDefaultExpandAll:!1,onChange:rr,onSearch:rr,treeData:Kt(r)}),G?w.createElement(R9,{ref:Ve,style:{width:"100%",marginBottom:8},options:Fe,placeholder:p("5000.5041")||"Input the region that neuron projects",onSearch:Rn,onChange:On,value:G}):w.createElement(sL,{showSearch:!0,ref:we,style:{width:"100%"},value:G,dropdownStyle:{maxHeight:400,overflow:"hidden",marginBottom:8},placeholder:p("5000.5041")||"Input the region that neuron projects",allowClear:!0,treeDefaultExpandAll:!1,onChange:Nn,onSearch:Nn,treeData:Kt(r)}),k&&w.createElement(w.Fragment,null,w.createElement(sL,{treeData:ct,value:ht,onChange:ta,treeCheckable:!0,placeholder:"Filter by data information",style:{width:"100%",marginTop:8}}),w.createElement(Eo,{style:{marginTop:"5px"}},w.createElement(ab,{onChange:ot=>{wn(ot.target.checked)}},p("7000.7025")||"只展示可用神经元"),w.createElement(Eo,{style:{fontStyle:"italic",marginTop:"5px"}},p("7000.7026")||"点击Color按钮,修改神经元颜色;点击Ana.按钮,显示神经元投射路径分析结果;点击Path按钮,在主界面显示神经元经过的脑结构;Src按钮展示了神经元数据的来源"))),w.createElement("div",null,w.createElement($s,{className:"Echart",open:pt,onOk:()=>{Qe(!1)},onCancel:()=>{Qe(!1)},width:"auto",footer:null},w.createElement(k2,{activeKey:In,onChange:Za},w.createElement(_7,{tab:p("5000.7009")||"神经元末梢分布",key:"1"},mt&&w.createElement(ia,null,"Isocortex"),w.createElement(cf,{ref:Se,className:"Isocortex",Name:"Isocortex",t:p,data_change:Ue,data_c:Je.current,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),St&&w.createElement(ia,null,"HPF"),w.createElement(cf,{ref:Ln[0],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["CA1_","CA1_dd","CA1_d","CA1_i","CA1_v","CA1_vv","CA2_dd","CA2_d","CA2_i","CA2_v","CA2_vv","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv"],row:["so","sp","slu","sr","slm"]}),w.createElement(cf,{ref:Ln[1],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),w.createElement(cf,{ref:Ln[2],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),bn&&w.createElement(ia,null,"CNU"),w.createElement(cf,{ref:nr,className:"CNU",Name:"CNU",t:p,data_change:Ue,data_c:Je.current,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),Zn&&w.createElement(ia,null,"OLF"),w.createElement(cf,{ref:Mn[0],className:"OLF",Name:"OLF",t:p,data_change:Ue,data_c:Je.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),w.createElement(cf,{ref:Mn[1],className:"OLF",Name:"OLF",t:p,data_change:Ue,data_c:Je.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),Dn&&w.createElement(ia,null,"TH"),w.createElement(cf,{ref:qe,className:"TH",Name:"TH",t:p,data_change:Ue,data_c:Je.current,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),An&&w.createElement(ia,null,"HY"),w.createElement(cf,{ref:je,className:"HY",Name:"HY",t:p,data_change:Ue,data_c:Je.current,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),zr&&w.createElement(ia,null,"MB"),w.createElement(cf,{ref:Ye,className:"MB",Name:"MB",t:p,data_change:Ue,data_c:Je.current,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),rn&&w.createElement(ia,null,"HB"),w.createElement(cf,{ref:gt,className:"HB",Name:"HB",t:p,data_change:Ue,data_c:Je.current,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Ot&&w.createElement(ia,null,"CB"),w.createElement(cf,{ref:Jn[0],className:"CB",Name:"CB",t:p,data_change:Ue,data_c:Je.current,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),w.createElement(cf,{ref:Jn[1],className:"CB",Name:"CB",t:p,data_change:Ue,data_c:Je.current,col:["FN","IP","DN","VeCB"],row:["_"]})),w.createElement(_7,{tab:p("5000.7011")||"神经元投射模式",key:"2"},r?w.createElement(awt,{data:Mt,fbxTreeDatas:r}):null),w.createElement(_7,{tab:p("5000.7012")||"投射长度分布",key:"3"},mt&&w.createElement(ia,null,"Isocortex"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),St&&w.createElement(ia,null,"HPF"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["CA1_d","CA1_i","CA1_v","CA1_","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv","CA2_"],row:["so","sp","slu","sr","slm"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),bn&&w.createElement(ia,null,"CNU"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),Zn&&w.createElement(ia,null,"OLF"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),Dn&&w.createElement(ia,null,"TH"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),An&&w.createElement(ia,null,"HY"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),zr&&w.createElement(ia,null,"MB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),rn&&w.createElement(ia,null,"HB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Ot&&w.createElement(ia,null,"CB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["FN","IP","DN","VeCB"],row:["_"]})))),w.createElement(Tz,{className:"SwcTable",rowSelection:Zr,columns:mr,dataSource:Mr,locale:Vr}))):w.createElement(w.Fragment,null,w.createElement(owt,{style:{marginBottom:8},placeholder:"Search",onChange:Xa}),w.createElement(b_,{showLine:!0,onExpand:so,defaultExpandParent:!0,expandedKeys:V,onCheck:po,checkable:!0,selectable:!1,treeData:Mr,checkedKeys:m,checkStrictly:!0,autoExpandParent:j,style:{paddingLeft:"2px"}})))});let cwt=new URL(window.location.href),uwt=new URLSearchParams(cwt.search),xse=uwt.get("brainContourOpacity");const dwt=t=>{const{regionData:e}=t,[n,r]=w.useState(!1);return w.useEffect(()=>{let i=xse?JSON.parse(xse):.3;Pm({filepath:e+"/data/FBX/outline.FBX",index:"Brain",color:"0xcccccc",opacity:i,offsetZ:0,R:1,callback:function(){r(!1)}})},[]),w.createElement("div",{id:"spinner",style:{position:"absolute",zIndex:999,left:0,top:0,width:"100%",height:"100%",display:`${n?"block":"none"}`,opacity:.7,backgroundColor:"#ffffff"}},w.createElement("div",{style:{position:"absolute",zIndex:999,left:"50%",top:"50%",fontWeight:"bold",textAlign:"center"}},w.createElement(hz,{spinning:!0,size:"large"}),w.createElement("br",null),"Loading....wait..."))};(function(t){if(t.TextEncoder&&t.TextDecoder)return!1;function e(r="utf-8"){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextEncoder': The encoding label provided ('${r}') is invalid.`)}Object.defineProperty(e.prototype,"encoding",{value:"utf-8"}),e.prototype.encode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to encode: the 'stream' option is unsupported.");let a=0;const o=r.length;let s=0,c=Math.max(32,o+(o>>1)+7),u=new Uint8Array(c>>3<<3);for(;a<o;){let d=r.charCodeAt(a++);if(d>=55296&&d<=56319){if(a<o){const f=r.charCodeAt(a);(f&64512)===56320&&(++a,d=((d&1023)<<10)+(f&1023)+65536)}if(d>=55296&&d<=56319)continue}if(s+4>u.length){c+=8,c*=1+a/r.length*2,c=c>>3<<3;const f=new Uint8Array(c);f.set(u),u=f}if(d&4294967168)if(!(d&4294965248))u[s++]=d>>6&31|192;else if(!(d&4294901760))u[s++]=d>>12&15|224,u[s++]=d>>6&63|128;else if(!(d&4292870144))u[s++]=d>>18&7|240,u[s++]=d>>12&63|128,u[s++]=d>>6&63|128;else continue;else{u[s++]=d;continue}u[s++]=d&63|128}return u.slice(0,s)};function n(r="utf-8",i={fatal:!1}){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextDecoder': The encoding label provided ('${r}') is invalid.`);if(i.fatal)throw new Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}Object.defineProperty(n.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(n.prototype,"fatal",{value:!1}),Object.defineProperty(n.prototype,"ignoreBOM",{value:!1}),n.prototype.decode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to decode: the 'stream' option is unsupported.");const a=new Uint8Array(r);let o=0;const s=a.length,c=[];for(;o<s;){const u=a[o++];if(u===0)break;if(!(u&128))c.push(u);else if((u&224)===192){const d=a[o++]&63;c.push((u&31)<<6|d)}else if((u&240)===224){const d=a[o++]&63,f=a[o++]&63;c.push((u&31)<<12|d<<6|f)}else if((u&248)===240){const d=a[o++]&63,f=a[o++]&63,h=a[o++]&63;let p=(u&7)<<18|d<<12|f<<6|h;p>65535&&(p-=65536,c.push(p>>>10&1023|55296),p=56320|p&1023),c.push(p)}}return String.fromCharCode.apply(null,c)},t.TextEncoder=e,t.TextDecoder=n})(typeof window<"u"?window:typeof self<"u"?self:globalThis);function Sse(t,e="utf8"){return new TextDecoder(e).decode(t)}const fwt=new TextEncoder;function hwt(t){return fwt.encode(t)}const pwt=1024*8,vwt=(()=>{const t=new Uint8Array(4),e=new Uint32Array(t.buffer);return!((e[0]=1)&t[0])})(),M7={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array};class MN{constructor(e=pwt,n={}){let r=!1;typeof e=="number"?e=new ArrayBuffer(e):(r=!0,this.lastWrittenByte=e.byteLength);const i=n.offset?n.offset>>>0:0,a=e.byteLength-i;let o=i;(ArrayBuffer.isView(e)||e instanceof MN)&&(e.byteLength!==e.buffer.byteLength&&(o=e.byteOffset+i),e=e.buffer),r?this.lastWrittenByte=a:this.lastWrittenByte=0,this.buffer=e,this.length=a,this.byteLength=a,this.byteOffset=o,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,o,a),this._mark=0,this._marks=[]}available(e=1){return this.offset+e<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(e=1){return this.offset+=e,this}back(e=1){return this.offset-=e,this}seek(e){return this.offset=e,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const e=this._marks.pop();if(e===void 0)throw new Error("Mark stack empty");return this.seek(e),this}rewind(){return this.offset=0,this}ensureAvailable(e=1){if(!this.available(e)){const r=(this.offset+e)*2,i=new Uint8Array(r);i.set(new Uint8Array(this.buffer)),this.buffer=i.buffer,this.length=this.byteLength=r,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(e=1){return this.readArray(e,"uint8")}readArray(e,n){const r=M7[n].BYTES_PER_ELEMENT*e,i=this.byteOffset+this.offset,a=this.buffer.slice(i,i+r);if(this.littleEndian===vwt&&n!=="uint8"&&n!=="int8"){const s=new Uint8Array(this.buffer.slice(i,i+r));s.reverse();const c=new M7[n](s.buffer);return this.offset+=r,c.reverse(),c}const o=new M7[n](a);return this.offset+=r,o}readInt16(){const e=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}readUint16(){const e=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,e}readInt32(){const e=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}readUint32(){const e=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat32(){const e=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat64(){const e=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}readBigInt64(){const e=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,e}readBigUint64(){const e=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,e}readChar(){return String.fromCharCode(this.readInt8())}readChars(e=1){let n="";for(let r=0;r<e;r++)n+=this.readChar();return n}readUtf8(e=1){return Sse(this.readBytes(e))}decodeText(e=1,n="utf-8"){return Sse(this.readBytes(e),n)}writeBoolean(e){return this.writeUint8(e?255:0),this}writeInt8(e){return this.ensureAvailable(1),this._data.setInt8(this.offset++,e),this._updateLastWrittenByte(),this}writeUint8(e){return this.ensureAvailable(1),this._data.setUint8(this.offset++,e),this._updateLastWrittenByte(),this}writeByte(e){return this.writeUint8(e)}writeBytes(e){this.ensureAvailable(e.length);for(let n=0;n<e.length;n++)this._data.setUint8(this.offset++,e[n]);return this._updateLastWrittenByte(),this}writeInt16(e){return this.ensureAvailable(2),this._data.setInt16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(e){return this.ensureAvailable(2),this._data.setUint16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(e){return this.ensureAvailable(4),this._data.setInt32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(e){return this.ensureAvailable(4),this._data.setUint32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(e){return this.ensureAvailable(4),this._data.setFloat32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(e){return this.ensureAvailable(8),this._data.setFloat64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(e){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(e){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(e){return this.writeUint8(e.charCodeAt(0))}writeChars(e){for(let n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));return this}writeUtf8(e){return this.writeBytes(hwt(e))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}function gwt(t){if(t.compression!==1)throw new Error("missing mandatory StripByteCounts field in compressed image");const e=t.rowsPerStrip*t.width*t.samplesPerPixel*(t.bitsPerSample/8);return new Array(t.stripOffsets.length).fill(e)}function mwt(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&255;r+=e*n}}function ywt(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&65535;r+=e*n}}const SB={33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",36864:"ExifVersion",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBiasValue",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37386:"FocalLength",37396:"SubjectArea",37500:"MakerNote",37510:"UserComment",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",40964:"RelatedSoundFile",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",42240:"Gamma"},UEe={};for(const t in SB)UEe[SB[t]]=Number(t);const bwt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:SB,tagsByName:UEe},Symbol.toStringTag,{value:"Module"})),EB={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},kEe={};for(const t in EB)kEe[EB[t]]=Number(t);const xwt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:EB,tagsByName:kEe},Symbol.toStringTag,{value:"Module"})),CB={254:"NewSubfileType",255:"SubfileType",256:"ImageWidth",257:"ImageLength",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",263:"Threshholding",264:"CellWidth",265:"CellLength",266:"FillOrder",270:"ImageDescription",271:"Make",272:"Model",273:"StripOffsets",274:"Orientation",277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",280:"MinSampleValue",281:"MaxSampleValue",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",288:"FreeOffsets",289:"FreeByteCounts",290:"GrayResponseUnit",291:"GrayResponseCurve",296:"ResolutionUnit",305:"Software",306:"DateTime",315:"Artist",316:"HostComputer",320:"ColorMap",338:"ExtraSamples",33432:"Copyright",269:"DocumentName",285:"PageName",286:"XPosition",287:"YPosition",292:"T4Options",293:"T6Options",297:"PageNumber",301:"TransferFunction",317:"Predictor",318:"WhitePoint",319:"PrimaryChromaticities",321:"HalftoneHints",322:"TileWidth",323:"TileLength",324:"TileOffsets",325:"TileByteCounts",326:"BadFaxLines",327:"CleanFaxData",328:"ConsecutiveBadFaxLines",330:"SubIFDs",332:"InkSet",333:"InkNames",334:"NumberOfInks",336:"DotRange",337:"TargetPrinter",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",342:"TransferRange",343:"ClipPath",344:"XClipPathUnits",345:"YClipPathUnits",346:"Indexed",347:"JPEGTables",351:"OPIProxy",400:"GlobalParametersIFD",401:"ProfileType",402:"FaxProfile",403:"CodingMethods",404:"VersionYear",405:"ModeNumber",433:"Decode",434:"DefaultImageColor",512:"JPEGProc",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",515:"JPEGRestartInterval",517:"JPEGLosslessPredictors",518:"JPEGPointTransforms",519:"JPEGQTables",520:"JPEGDCTables",521:"JPEGACTables",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:"YCbCrPositioning",532:"ReferenceBlackWhite",559:"StripRowCounts",700:"XMP",32781:"ImageID",34732:"ImageLayer",32932:"WangAnnotatio",33445:"MDFileTag",33446:"MDScalePixel",33447:"MDColorTable",33448:"MDLabName",33449:"MDSampleInfo",33450:"MDPrepDate",33451:"MDPrepTime",33452:"MDFileUnits",33550:"ModelPixelScaleTag",33723:"IPTC",33918:"INGRPacketDataTag",33919:"INGRFlagRegisters",33920:"IrasBTransformationMatrix",33922:"ModelTiepointTag",34264:"ModelTransformationTag",34377:"Photoshop",34665:"ExifIFD",34675:"ICCProfile",34735:"GeoKeyDirectoryTag",34736:"GeoDoubleParamsTag",34737:"GeoAsciiParamsTag",34853:"GPSIFD",34908:"HylaFAXFaxRecvParams",34909:"HylaFAXFaxSubAddress",34910:"HylaFAXFaxRecvTime",37724:"ImageSourceData",40965:"InteroperabilityIFD",42112:"GDAL_METADATA",42113:"GDAL_NODATA",50215:"OceScanjobDescription",50216:"OceApplicationSelector",50217:"OceIdentificationNumber",50218:"OceImageLogicCharacteristics",50706:"DNGVersion",50707:"DNGBackwardVersion",50708:"UniqueCameraModel",50709:"LocalizedCameraModel",50710:"CFAPlaneColor",50711:"CFALayout",50712:"LinearizationTable",50713:"BlackLevelRepeatDim",50714:"BlackLevel",50715:"BlackLevelDeltaH",50716:"BlackLevelDeltaV",50717:"WhiteLevel",50718:"DefaultScale",50719:"DefaultCropOrigin",50720:"DefaultCropSize",50721:"ColorMatrix1",50722:"ColorMatrix2",50723:"CameraCalibration1",50724:"CameraCalibration2",50725:"ReductionMatrix1",50726:"ReductionMatrix2",50727:"AnalogBalance",50728:"AsShotNeutral",50729:"AsShotWhiteXY",50730:"BaselineExposure",50731:"BaselineNoise",50732:"BaselineSharpness",50733:"BayerGreenSplit",50734:"LinearResponseLimit",50735:"CameraSerialNumber",50736:"LensInfo",50737:"ChromaBlurRadius",50738:"AntiAliasStrength",50740:"DNGPrivateData",50741:"MakerNoteSafety",50778:"CalibrationIlluminant1",50779:"CalibrationIlluminant2",50780:"BestQualityScale",50784:"AliasLayerMetadata"},FEe={};for(const t in CB)FEe[CB[t]]=Number(t);const Swt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:CB,tagsByName:FEe},Symbol.toStringTag,{value:"Module"})),Ese={standard:Swt,exif:bwt,gps:xwt};class VEe{constructor(e){if(!e)throw new Error("missing kind");this.data=new Uint8Array,this.fields=new Map,this.kind=e,this._hasMap=!1,this._map={}}get(e){if(typeof e=="number")return this.fields.get(e);if(typeof e=="string")return this.fields.get(Ese[this.kind].tagsByName[e]);throw new Error("expected a number or string")}get map(){if(!this._hasMap){const e=Ese[this.kind].tagsById;for(const n of this.fields.keys())e[n]&&(this._map[e[n]]=this.fields.get(n));this._hasMap=!0}return this._map}}const BEe=new Map([[1,[1,Cse]],[2,[1,wwt]],[3,[2,Twt]],[4,[4,_wt]],[5,[8,Iwt]],[6,[1,Awt]],[7,[1,Cse]],[8,[2,Mwt]],[9,[4,Rwt]],[10,[8,Lwt]],[11,[4,Owt]],[12,[8,Pwt]]]);function Ewt(t,e){const n=BEe.get(t);if(!n)throw new Error(`type not found: ${t}`);return n[0]*e}function Cwt(t,e,n){const r=BEe.get(e);if(!r)throw new Error(`type not found: ${e}`);return r[1](t,n)}function Cse(t,e){if(e===1)return t.readUint8();const n=new Uint8Array(e);for(let r=0;r<e;r++)n[r]=t.readUint8();return n}function wwt(t,e){const n=[];let r="";for(let i=0;i<e;i++){const a=String.fromCharCode(t.readUint8());a==="\0"?(n.push(r),r=""):r+=a}return n.length===1?n[0]:n}function Twt(t,e){if(e===1)return t.readUint16();const n=new Uint16Array(e);for(let r=0;r<e;r++)n[r]=t.readUint16();return n}function _wt(t,e){if(e===1)return t.readUint32();const n=new Uint32Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32();return n}function Iwt(t,e){if(e===1)return t.readUint32()/t.readUint32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32()/t.readUint32();return n}function Awt(t,e){if(e===1)return t.readInt8();const n=new Int8Array(e);for(let r=0;r<e;r++)n[r]=t.readInt8();return n}function Mwt(t,e){if(e===1)return t.readInt16();const n=new Int16Array(e);for(let r=0;r<e;r++)n[r]=t.readInt16();return n}function Rwt(t,e){if(e===1)return t.readInt32();const n=new Int32Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32();return n}function Lwt(t,e){if(e===1)return t.readInt32()/t.readInt32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32()/t.readInt32();return n}function Owt(t,e){if(e===1)return t.readFloat32();const n=new Float32Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat32();return n}function Pwt(t,e){if(e===1)return t.readFloat64();const n=new Float64Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat64();return n}const Nwt=256,wse=257,Tse=258,_se=9;let Oy=[];function Dwt(){if(Oy.length===0){for(let e=0;e<256;e++)Oy.push([e]);const t=[];for(let e=256;e<4096;e++)Oy.push(t)}}const Uwt=[511,1023,2047,4095],kwt=[0,0,0,0,0,0,0,0,0,511,1023,2047,4095];class Fwt{constructor(e){this.nextData=0,this.nextBits=0,this.bytePointer=0,this.tableLength=Tse,this.currentBitLength=_se,this.stripArray=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),this.outData=new MN(e.byteLength),this.initializeTable()}decode(){let e=0,n=0;for(;(e=this.getNextCode())!==wse;)if(e===Nwt){if(this.initializeTable(),e=this.getNextCode(),e===wse)break;this.writeString(this.stringFromCode(e)),n=e}else if(this.isInTable(e))this.writeString(this.stringFromCode(e)),this.addStringToTable(this.stringFromCode(n).concat(this.stringFromCode(e)[0])),n=e;else{const i=this.stringFromCode(n).concat(this.stringFromCode(n)[0]);this.writeString(i),this.addStringToTable(i),n=e}const r=this.outData.toArray();return new DataView(r.buffer,r.byteOffset,r.byteLength)}initializeTable(){Dwt(),this.tableLength=Tse,this.currentBitLength=_se}writeString(e){this.outData.writeBytes(e)}stringFromCode(e){return Oy[e]}isInTable(e){return e<this.tableLength}addStringToTable(e){if(Oy[this.tableLength++]=e,Oy.length>4096)throw Oy=[],new Error("LZW decoding error. Please open an issue at https://github.com/image-js/tiff/issues/new/choose (include a test image).");this.tableLength===kwt[this.currentBitLength]&&this.currentBitLength++}getNextCode(){this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8,this.nextBits<this.currentBitLength&&(this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8);const e=this.nextData>>this.nextBits-this.currentBitLength&Uwt[this.currentBitLength-9];return this.nextBits-=this.currentBitLength,this.bytePointer>this.stripArray.length?257:e}}function Vwt(t){return new Fwt(t).decode()}const Bwt=/^(\d{4}):(\d{2}):(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;class Ise extends VEe{constructor(){super("standard")}get size(){return this.width*this.height}get width(){return this.imageWidth}get height(){return this.imageLength}get components(){return this.samplesPerPixel}get date(){const e=new Date,n=Bwt.exec(this.dateTime);if(n===null)throw new Error(`invalid dateTime: ${this.dateTime}`);return e.setFullYear(Number(n[1]),Number(n[2])-1,Number(n[3])),e.setHours(Number(n[4]),Number(n[5]),Number(n[6])),e}get newSubfileType(){return this.get("NewSubfileType")}get imageWidth(){return this.get("ImageWidth")}get imageLength(){return this.get("ImageLength")}get bitsPerSample(){const e=this.get("BitsPerSample");return e&&typeof e!="number"?e[0]:e}get alpha(){const e=this.extraSamples;return e?e[0]!==0:!1}get associatedAlpha(){const e=this.extraSamples;return e?e[0]===1:!1}get extraSamples(){return hR(this.get("ExtraSamples"))}get compression(){return this.get("Compression")||1}get type(){return this.get("PhotometricInterpretation")}get fillOrder(){return this.get("FillOrder")||1}get documentName(){return this.get("DocumentName")}get imageDescription(){return this.get("ImageDescription")}get stripOffsets(){return hR(this.get("StripOffsets"))}get orientation(){return this.get("Orientation")}get samplesPerPixel(){return this.get("SamplesPerPixel")||1}get rowsPerStrip(){return this.get("RowsPerStrip")}get stripByteCounts(){return hR(this.get("StripByteCounts"))}get minSampleValue(){return this.get("MinSampleValue")||0}get maxSampleValue(){return this.get("MaxSampleValue")||2**this.bitsPerSample-1}get xResolution(){return this.get("XResolution")}get yResolution(){return this.get("YResolution")}get planarConfiguration(){return this.get("PlanarConfiguration")||1}get resolutionUnit(){return this.get("ResolutionUnit")||2}get dateTime(){return this.get("DateTime")}get predictor(){return this.get("Predictor")||1}get sampleFormat(){return hR(this.get("SampleFormat")||1)[0]}get sMinSampleValue(){return this.get("SMinSampleValue")||this.minSampleValue}get sMaxSampleValue(){return this.get("SMaxSampleValue")||this.maxSampleValue}get palette(){const e=2**this.bitsPerSample,n=this.get("ColorMap");if(!n)return;if(n.length!==3*e)throw new Error(`ColorMap size must be ${e}`);const r=[];for(let i=0;i<e;i++)r.push([n[i],n[i+e],n[i+2*e]]);return r}}function hR(t){return typeof t=="number"?[t]:t}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const $wt=4,Ase=0,Mse=1,zwt=2;function jE(t){let e=t.length;for(;--e>=0;)t[e]=0}const Hwt=0,$Ee=1,Gwt=2,Wwt=3,jwt=258,mW=29,nA=256,J_=nA+1+mW,A2=30,yW=19,zEe=2*J_+1,Py=15,R7=16,Xwt=7,bW=256,HEe=16,GEe=17,WEe=18,wB=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),kL=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Zwt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),jEe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Kwt=512,eg=new Array((J_+2)*2);jE(eg);const ZT=new Array(A2*2);jE(ZT);const Q_=new Array(Kwt);jE(Q_);const eI=new Array(jwt-Wwt+1);jE(eI);const xW=new Array(mW);jE(xW);const C4=new Array(A2);jE(C4);function L7(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let XEe,ZEe,KEe;function O7(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const YEe=t=>t<256?Q_[t]:Q_[256+(t>>>7)],tI=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},jd=(t,e,n)=>{t.bi_valid>R7-n?(t.bi_buf|=e<<t.bi_valid&65535,tI(t,t.bi_buf),t.bi_buf=e>>R7-t.bi_valid,t.bi_valid+=n-R7):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},Kp=(t,e,n)=>{jd(t,n[e*2],n[e*2+1])},qEe=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},Ywt=t=>{t.bi_valid===16?(tI(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},qwt=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,c=e.stat_desc.max_length;let u,d,f,h,p,v,y=0;for(h=0;h<=Py;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<zEe;u++)d=t.heap[u],h=n[n[d*2+1]*2+1]+1,h>c&&(h=c,y++),n[d*2+1]=h,!(d>r)&&(t.bl_count[h]++,p=0,d>=s&&(p=o[d-s]),v=n[d*2],t.opt_len+=v*(h+p),a&&(t.static_len+=v*(i[d*2+1]+p)));if(y!==0){do{for(h=c-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[c]--,y-=2}while(y>0);for(h=c;h!==0;h--)for(d=t.bl_count[h];d!==0;)f=t.heap[--u],!(f>r)&&(n[f*2+1]!==h&&(t.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),d--)}},JEe=(t,e,n)=>{const r=new Array(Py+1);let i=0,a,o;for(a=1;a<=Py;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=qEe(r[s]++,s))}},Jwt=()=>{let t,e,n,r,i;const a=new Array(Py+1);for(n=0,r=0;r<mW-1;r++)for(xW[r]=n,t=0;t<1<<wB[r];t++)eI[n++]=r;for(eI[n-1]=r,i=0,r=0;r<16;r++)for(C4[r]=i,t=0;t<1<<kL[r];t++)Q_[i++]=r;for(i>>=7;r<A2;r++)for(C4[r]=i<<7,t=0;t<1<<kL[r]-7;t++)Q_[256+i++]=r;for(e=0;e<=Py;e++)a[e]=0;for(t=0;t<=143;)eg[t*2+1]=8,t++,a[8]++;for(;t<=255;)eg[t*2+1]=9,t++,a[9]++;for(;t<=279;)eg[t*2+1]=7,t++,a[7]++;for(;t<=287;)eg[t*2+1]=8,t++,a[8]++;for(JEe(eg,J_+1,a),t=0;t<A2;t++)ZT[t*2+1]=5,ZT[t*2]=qEe(t,5);XEe=new L7(eg,wB,nA+1,J_,Py),ZEe=new L7(ZT,kL,0,A2,Py),KEe=new L7(new Array(0),Zwt,0,yW,Xwt)},QEe=t=>{let e;for(e=0;e<J_;e++)t.dyn_ltree[e*2]=0;for(e=0;e<A2;e++)t.dyn_dtree[e*2]=0;for(e=0;e<yW;e++)t.bl_tree[e*2]=0;t.dyn_ltree[bW*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},eCe=t=>{t.bi_valid>8?tI(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Rse=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},P7=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Rse(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Rse(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},Lse=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?Kp(t,i,e):(o=eI[i],Kp(t,o+nA+1,e),s=wB[o],s!==0&&(i-=xW[o],jd(t,i,s)),r--,o=YEe(r),Kp(t,o,n),s=kL[o],s!==0&&(r-=C4[o],jd(t,r,s)));while(a<t.sym_next);Kp(t,bW,e)},TB=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,c=-1,u;for(t.heap_len=0,t.heap_max=zEe,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=c=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=c<2?++c:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=c,o=t.heap_len>>1;o>=1;o--)P7(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],P7(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,P7(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],qwt(t,e),JEe(n,c,t.bl_count)},Ose=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<c&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[HEe*2]++):s<=10?t.bl_tree[GEe*2]++:t.bl_tree[WEe*2]++,s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4))},Pse=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<c&&a===o)){if(s<u)do Kp(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Kp(t,a,t.bl_tree),s--),Kp(t,HEe,t.bl_tree),jd(t,s-3,2)):s<=10?(Kp(t,GEe,t.bl_tree),jd(t,s-3,3)):(Kp(t,WEe,t.bl_tree),jd(t,s-11,7));s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4)}},Qwt=t=>{let e;for(Ose(t,t.dyn_ltree,t.l_desc.max_code),Ose(t,t.dyn_dtree,t.d_desc.max_code),TB(t,t.bl_desc),e=yW-1;e>=3&&t.bl_tree[jEe[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},eTt=(t,e,n,r)=>{let i;for(jd(t,e-257,5),jd(t,n-1,5),jd(t,r-4,4),i=0;i<r;i++)jd(t,t.bl_tree[jEe[i]*2+1],3);Pse(t,t.dyn_ltree,e-1),Pse(t,t.dyn_dtree,n-1)},tTt=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return Ase;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return Mse;for(n=32;n<nA;n++)if(t.dyn_ltree[n*2]!==0)return Mse;return Ase};let Nse=!1;const nTt=t=>{Nse||(Jwt(),Nse=!0),t.l_desc=new O7(t.dyn_ltree,XEe),t.d_desc=new O7(t.dyn_dtree,ZEe),t.bl_desc=new O7(t.bl_tree,KEe),t.bi_buf=0,t.bi_valid=0,QEe(t)},tCe=(t,e,n,r)=>{jd(t,(Hwt<<1)+(r?1:0),3),eCe(t),tI(t,n),tI(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},rTt=t=>{jd(t,$Ee<<1,3),Kp(t,bW,eg),Ywt(t)},iTt=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===zwt&&(t.strm.data_type=tTt(t)),TB(t,t.l_desc),TB(t,t.d_desc),o=Qwt(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?tCe(t,e,n,r):t.strategy===$wt||a===i?(jd(t,($Ee<<1)+(r?1:0),3),Lse(t,eg,ZT)):(jd(t,(Gwt<<1)+(r?1:0),3),eTt(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),Lse(t,t.dyn_ltree,t.dyn_dtree)),QEe(t),r&&eCe(t)},aTt=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(eI[n]+nA+1)*2]++,t.dyn_dtree[YEe(e)*2]++),t.sym_next===t.sym_end);var oTt=nTt,sTt=tCe,lTt=iTt,cTt=aTt,uTt=rTt,dTt={_tr_init:oTt,_tr_stored_block:sTt,_tr_flush_block:lTt,_tr_tally:cTt,_tr_align:uTt};const fTt=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};var nI=fTt;const hTt=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},pTt=new Uint32Array(hTt()),vTt=(t,e,n,r)=>{const i=pTt,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1};var kc=vTt,aE={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},rA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:gTt,_tr_stored_block:_B,_tr_flush_block:mTt,_tr_tally:r0,_tr_align:yTt}=dTt,{Z_NO_FLUSH:i0,Z_PARTIAL_FLUSH:bTt,Z_FULL_FLUSH:xTt,Z_FINISH:ph,Z_BLOCK:Dse,Z_OK:ru,Z_STREAM_END:Use,Z_STREAM_ERROR:iv,Z_DATA_ERROR:STt,Z_BUF_ERROR:N7,Z_DEFAULT_COMPRESSION:ETt,Z_FILTERED:CTt,Z_HUFFMAN_ONLY:pR,Z_RLE:wTt,Z_FIXED:TTt,Z_DEFAULT_STRATEGY:_Tt,Z_UNKNOWN:ITt,Z_DEFLATED:RN}=rA,ATt=9,MTt=15,RTt=8,LTt=29,OTt=256,IB=OTt+1+LTt,PTt=30,NTt=19,DTt=2*IB+1,UTt=15,fo=3,Zm=258,av=Zm+fo+1,kTt=32,oE=42,SW=57,AB=69,MB=73,RB=91,LB=103,Ny=113,dT=666,xd=1,XE=2,Eb=3,ZE=4,FTt=3,Dy=(t,e)=>(t.msg=aE[e],e),kse=t=>t*2-(t>4?9:0),Nm=t=>{let e=t.length;for(;--e>=0;)t[e]=0},VTt=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let BTt=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask,a0=BTt;const gf=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},Tf=(t,e)=>{mTt(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,gf(t.strm)},Po=(t,e)=>{t.pending_buf[t.pending++]=e},_w=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},OB=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=nI(t.adler,e,i,n):t.state.wrap===2&&(t.adler=kc(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},nCe=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const c=t.strstart>t.w_size-av?t.strstart-(t.w_size-av):0,u=t.window,d=t.w_mask,f=t.prev,h=t.strstart+Zm;let p=u[r+o-1],v=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==v||u[i+o-1]!==p||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=Zm-(h-r),r=h-Zm,a>o){if(t.match_start=e,o=a,a>=s)break;p=u[r+o-1],v=u[r+o]}}while((e=f[e&d])>c&&--n!==0);return o<=t.lookahead?o:t.lookahead},sE=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-av)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),VTt(t),r+=e),t.strm.avail_in===0)break;if(n=OB(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=fo)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=a0(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=a0(t,t.ins_h,t.window[i+fo-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<fo)););}while(t.lookahead<av&&t.strm.avail_in!==0)},rCe=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==ph||e===i0||r!==i+t.strm.avail_in)))break;o=e===ph&&r===i+t.strm.avail_in?1:0,_B(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,gf(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(OB(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?ZE:e!==i0&&e!==ph&&t.strm.avail_in===0&&t.strstart===t.block_start?XE:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&(OB(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===ph)&&e!==i0&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===ph&&t.strm.avail_in===0&&r===i?1:0,_B(t,t.block_start,r,o),t.block_start+=r,gf(t.strm)),o?Eb:xd)},D7=(t,e)=>{let n,r;for(;;){if(t.lookahead<av){if(sE(t),t.lookahead<av&&e===i0)return xd;if(t.lookahead===0)break}if(n=0,t.lookahead>=fo&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-av&&(t.match_length=nCe(t,n)),t.match_length>=fo)if(r=r0(t,t.strstart-t.match_start,t.match_length-fo),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=fo){t.match_length--;do t.strstart++,t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=a0(t,t.ins_h,t.window[t.strstart+1]);else r=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=t.strstart<fo-1?t.strstart:fo-1,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},iS=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<av){if(sE(t),t.lookahead<av&&e===i0)return xd;if(t.lookahead===0)break}if(n=0,t.lookahead>=fo&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=fo-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-av&&(t.match_length=nCe(t,n),t.match_length<=5&&(t.strategy===CTt||t.match_length===fo&&t.strstart-t.match_start>4096)&&(t.match_length=fo-1)),t.prev_length>=fo&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-fo,r=r0(t,t.strstart-1-t.prev_match,t.prev_length-fo),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=fo-1,t.strstart++,r&&(Tf(t,!1),t.strm.avail_out===0))return xd}else if(t.match_available){if(r=r0(t,0,t.window[t.strstart-1]),r&&Tf(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return xd}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=r0(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<fo-1?t.strstart:fo-1,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},$Tt=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=Zm){if(sE(t),t.lookahead<=Zm&&e===i0)return xd;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=fo&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+Zm;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=Zm-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=fo?(n=r0(t,1,t.match_length-fo),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=0,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},zTt=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(sE(t),t.lookahead===0)){if(e===i0)return xd;break}if(t.match_length=0,n=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=0,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE};function Pp(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const fT=[new Pp(0,0,0,0,rCe),new Pp(4,4,8,4,D7),new Pp(4,5,16,8,D7),new Pp(4,6,32,32,D7),new Pp(4,4,16,16,iS),new Pp(8,16,32,32,iS),new Pp(8,16,128,128,iS),new Pp(8,32,128,256,iS),new Pp(32,128,258,1024,iS),new Pp(32,258,258,4096,iS)],HTt=t=>{t.window_size=2*t.w_size,Nm(t.head),t.max_lazy_match=fT[t.level].max_lazy,t.good_match=fT[t.level].good_length,t.nice_match=fT[t.level].nice_length,t.max_chain_length=fT[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=fo-1,t.match_available=0,t.ins_h=0};function GTt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=RN,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(DTt*2),this.dyn_dtree=new Uint16Array((2*PTt+1)*2),this.bl_tree=new Uint16Array((2*NTt+1)*2),Nm(this.dyn_ltree),Nm(this.dyn_dtree),Nm(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(UTt+1),this.heap=new Uint16Array(2*IB+1),Nm(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*IB+1),Nm(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const iA=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==oE&&e.status!==SW&&e.status!==AB&&e.status!==MB&&e.status!==RB&&e.status!==LB&&e.status!==Ny&&e.status!==dT?1:0},iCe=t=>{if(iA(t))return Dy(t,iv);t.total_in=t.total_out=0,t.data_type=ITt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?SW:e.wrap?oE:Ny,t.adler=e.wrap===2?0:1,e.last_flush=-2,gTt(e),ru},aCe=t=>{const e=iCe(t);return e===ru&&HTt(t.state),e},WTt=(t,e)=>iA(t)||t.state.wrap!==2?iv:(t.state.gzhead=e,ru),oCe=(t,e,n,r,i,a)=>{if(!t)return iv;let o=1;if(e===ETt&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>ATt||n!==RN||r<8||r>15||e<0||e>9||a<0||a>TTt||r===8&&o!==1)return Dy(t,iv);r===8&&(r=9);const s=new GTt;return t.state=s,s.strm=t,s.status=oE,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+fo-1)/fo),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=e,s.strategy=a,s.method=n,aCe(t)},jTt=(t,e)=>oCe(t,e,RN,MTt,RTt,_Tt),XTt=(t,e)=>{if(iA(t)||e>Dse||e<0)return t?Dy(t,iv):iv;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===dT&&e!==ph)return Dy(t,t.avail_out===0?N7:iv);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(gf(t),t.avail_out===0)return n.last_flush=-1,ru}else if(t.avail_in===0&&kse(e)<=kse(r)&&e!==ph)return Dy(t,N7);if(n.status===dT&&t.avail_in!==0)return Dy(t,N7);if(n.status===oE&&n.wrap===0&&(n.status=Ny),n.status===oE){let i=RN+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pR||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=kTt),i+=31-i%31,_w(n,i),n.strstart!==0&&(_w(n,t.adler>>>16),_w(n,t.adler&65535)),t.adler=1,n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(n.status===SW){if(t.adler=0,Po(n,31),Po(n,139),Po(n,8),n.gzhead)Po(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Po(n,n.gzhead.time&255),Po(n,n.gzhead.time>>8&255),Po(n,n.gzhead.time>>16&255),Po(n,n.gzhead.time>>24&255),Po(n,n.level===9?2:n.strategy>=pR||n.level<2?4:0),Po(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Po(n,n.gzhead.extra.length&255),Po(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=kc(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=AB;else if(Po(n,0),Po(n,0),Po(n,0),Po(n,0),Po(n,0),Po(n,n.level===9?2:n.strategy>=pR||n.level<2?4:0),Po(n,FTt),n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(n.status===AB){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=MB}if(n.status===MB){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,Po(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=RB}if(n.status===RB){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,Po(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i))}n.status=LB}if(n.status===LB){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(gf(t),n.pending!==0))return n.last_flush=-1,ru;Po(n,t.adler&255),Po(n,t.adler>>8&255),t.adler=0}if(n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(t.avail_in!==0||n.lookahead!==0||e!==i0&&n.status!==dT){let i=n.level===0?rCe(n,e):n.strategy===pR?zTt(n,e):n.strategy===wTt?$Tt(n,e):fT[n.level].func(n,e);if((i===Eb||i===ZE)&&(n.status=dT),i===xd||i===Eb)return t.avail_out===0&&(n.last_flush=-1),ru;if(i===XE&&(e===bTt?yTt(n):e!==Dse&&(_B(n,0,0,!1),e===xTt&&(Nm(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),gf(t),t.avail_out===0))return n.last_flush=-1,ru}return e!==ph?ru:n.wrap<=0?Use:(n.wrap===2?(Po(n,t.adler&255),Po(n,t.adler>>8&255),Po(n,t.adler>>16&255),Po(n,t.adler>>24&255),Po(n,t.total_in&255),Po(n,t.total_in>>8&255),Po(n,t.total_in>>16&255),Po(n,t.total_in>>24&255)):(_w(n,t.adler>>>16),_w(n,t.adler&65535)),gf(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?ru:Use)},ZTt=t=>{if(iA(t))return iv;const e=t.state.status;return t.state=null,e===Ny?Dy(t,STt):ru},KTt=(t,e)=>{let n=e.length;if(iA(t))return iv;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==oE||r.lookahead)return iv;if(i===1&&(t.adler=nI(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Nm(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(e.subarray(n-r.w_size,n),0),e=c,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,sE(r);r.lookahead>=fo;){let c=r.strstart,u=r.lookahead-(fo-1);do r.ins_h=a0(r,r.ins_h,r.window[c+fo-1]),r.prev[c&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=c,c++;while(--u);r.strstart=c,r.lookahead=fo-1,sE(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=fo-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,ru};var YTt=jTt,qTt=oCe,JTt=aCe,QTt=iCe,e_t=WTt,t_t=XTt,n_t=ZTt,r_t=KTt,i_t="pako deflate (from Nodeca project)",KT={deflateInit:YTt,deflateInit2:qTt,deflateReset:JTt,deflateResetKeep:QTt,deflateSetHeader:e_t,deflate:t_t,deflateEnd:n_t,deflateSetDictionary:r_t,deflateInfo:i_t};const a_t=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o_t=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)a_t(n,r)&&(t[r]=n[r])}}return t},s_t=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},LN={assign:o_t,flattenChunks:s_t};let sCe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{sCe=!1}const rI=new Uint8Array(256);for(let t=0;t<256;t++)rI[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;rI[254]=rI[254]=1;var l_t=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const c_t=(t,e)=>{if(e<65534&&t.subarray&&sCe)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var u_t=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=rI[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return c_t(a,i)},d_t=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+rI[t[n]]>e?n:e},iI={string2buf:l_t,buf2string:u_t,utf8border:d_t};function f_t(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var lCe=f_t;const cCe=Object.prototype.toString,{Z_NO_FLUSH:h_t,Z_SYNC_FLUSH:p_t,Z_FULL_FLUSH:v_t,Z_FINISH:g_t,Z_OK:w4,Z_STREAM_END:m_t,Z_DEFAULT_COMPRESSION:y_t,Z_DEFAULT_STRATEGY:b_t,Z_DEFLATED:x_t}=rA;function EW(t){this.options=LN.assign({level:y_t,method:x_t,chunkSize:16384,windowBits:15,memLevel:8,strategy:b_t},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new lCe,this.strm.avail_out=0;let n=KT.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==w4)throw new Error(aE[n]);if(e.header&&KT.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=iI.string2buf(e.dictionary):cCe.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=KT.deflateSetDictionary(this.strm,r),n!==w4)throw new Error(aE[n]);this._dict_set=!0}}EW.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?g_t:h_t,typeof t=="string"?n.input=iI.string2buf(t):cCe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===p_t||a===v_t)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=KT.deflate(n,a),i===m_t)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=KT.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===w4;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};EW.prototype.onData=function(t){this.chunks.push(t)};EW.prototype.onEnd=function(t){t===w4&&(this.result=LN.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const vR=16209,S_t=16191;var E_t=function(e,n){let r,i,a,o,s,c,u,d,f,h,p,v,y,m,g,x,b,S,E,T,M,L,R,O;const N=e.state;r=e.next_in,R=e.input,i=r+(e.avail_in-5),a=e.next_out,O=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),c=N.dmax,u=N.wsize,d=N.whave,f=N.wnext,h=N.window,p=N.hold,v=N.bits,y=N.lencode,m=N.distcode,g=(1<<N.lenbits)-1,x=(1<<N.distbits)-1;e:do{v<15&&(p+=R[r++]<<v,v+=8,p+=R[r++]<<v,v+=8),b=y[p&g];t:for(;;){if(S=b>>>24,p>>>=S,v-=S,S=b>>>16&255,S===0)O[a++]=b&65535;else if(S&16){E=b&65535,S&=15,S&&(v<S&&(p+=R[r++]<<v,v+=8),E+=p&(1<<S)-1,p>>>=S,v-=S),v<15&&(p+=R[r++]<<v,v+=8,p+=R[r++]<<v,v+=8),b=m[p&x];n:for(;;){if(S=b>>>24,p>>>=S,v-=S,S=b>>>16&255,S&16){if(T=b&65535,S&=15,v<S&&(p+=R[r++]<<v,v+=8,v<S&&(p+=R[r++]<<v,v+=8)),T+=p&(1<<S)-1,T>c){e.msg="invalid distance too far back",N.mode=vR;break e}if(p>>>=S,v-=S,S=a-o,T>S){if(S=T-S,S>d&&N.sane){e.msg="invalid distance too far back",N.mode=vR;break e}if(M=0,L=h,f===0){if(M+=u-S,S<E){E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}}else if(f<S){if(M+=u+f-S,S-=f,S<E){E-=S;do O[a++]=h[M++];while(--S);if(M=0,f<E){S=f,E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}}}else if(M+=f-S,S<E){E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}for(;E>2;)O[a++]=L[M++],O[a++]=L[M++],O[a++]=L[M++],E-=3;E&&(O[a++]=L[M++],E>1&&(O[a++]=L[M++]))}else{M=a-T;do O[a++]=O[M++],O[a++]=O[M++],O[a++]=O[M++],E-=3;while(E>2);E&&(O[a++]=O[M++],E>1&&(O[a++]=O[M++]))}}else if(S&64){e.msg="invalid distance code",N.mode=vR;break e}else{b=m[(b&65535)+(p&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){N.mode=S_t;break e}else{e.msg="invalid literal/length code",N.mode=vR;break e}else{b=y[(b&65535)+(p&(1<<S)-1)];continue t}break}}while(r<i&&a<s);E=v>>3,r-=E,v-=E<<3,p&=(1<<v)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),N.hold=p,N.bits=v};const aS=15,Fse=852,Vse=592,Bse=0,U7=1,$se=2,C_t=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),w_t=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),T_t=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),__t=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),I_t=(t,e,n,r,i,a,o,s)=>{const c=s.bits;let u=0,d=0,f=0,h=0,p=0,v=0,y=0,m=0,g=0,x=0,b,S,E,T,M,L=null,R;const O=new Uint16Array(aS+1),N=new Uint16Array(aS+1);let U=null,k,D,V;for(u=0;u<=aS;u++)O[u]=0;for(d=0;d<r;d++)O[e[n+d]]++;for(p=c,h=aS;h>=1&&O[h]===0;h--);if(p>h&&(p=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&O[f]===0;f++);for(p<f&&(p=f),m=1,u=1;u<=aS;u++)if(m<<=1,m-=O[u],m<0)return-1;if(m>0&&(t===Bse||h!==1))return-1;for(N[1]=0,u=1;u<aS;u++)N[u+1]=N[u]+O[u];for(d=0;d<r;d++)e[n+d]!==0&&(o[N[e[n+d]]++]=d);if(t===Bse?(L=U=o,R=20):t===U7?(L=C_t,U=w_t,R=257):(L=T_t,U=__t,R=0),x=0,d=0,u=f,M=a,v=p,y=0,E=-1,g=1<<p,T=g-1,t===U7&&g>Fse||t===$se&&g>Vse)return 1;for(;;){k=u-y,o[d]+1<R?(D=0,V=o[d]):o[d]>=R?(D=U[o[d]-R],V=L[o[d]-R]):(D=32+64,V=0),b=1<<u-y,S=1<<v,f=S;do S-=b,i[M+(x>>y)+S]=k<<24|D<<16|V|0;while(S!==0);for(b=1<<u-1;x&b;)b>>=1;if(b!==0?(x&=b-1,x+=b):x=0,d++,--O[u]===0){if(u===h)break;u=e[n+o[d]]}if(u>p&&(x&T)!==E){for(y===0&&(y=p),M+=f,v=u-y,m=1<<v;v+y<h&&(m-=O[v+y],!(m<=0));)v++,m<<=1;if(g+=1<<v,t===U7&&g>Fse||t===$se&&g>Vse)return 1;E=x&T,i[E]=p<<24|v<<16|M-a|0}}return x!==0&&(i[M+x]=u-y<<24|64<<16|0),s.bits=p,0};var YT=I_t;const A_t=0,uCe=1,dCe=2,{Z_FINISH:zse,Z_BLOCK:M_t,Z_TREES:gR,Z_OK:Cb,Z_STREAM_END:R_t,Z_NEED_DICT:L_t,Z_STREAM_ERROR:wh,Z_DATA_ERROR:fCe,Z_MEM_ERROR:hCe,Z_BUF_ERROR:O_t,Z_DEFLATED:Hse}=rA,ON=16180,Gse=16181,Wse=16182,jse=16183,Xse=16184,Zse=16185,Kse=16186,Yse=16187,qse=16188,Jse=16189,T4=16190,$v=16191,k7=16192,Qse=16193,F7=16194,ele=16195,tle=16196,nle=16197,rle=16198,mR=16199,yR=16200,ile=16201,ale=16202,ole=16203,sle=16204,lle=16205,V7=16206,cle=16207,ule=16208,Vs=16209,pCe=16210,vCe=16211,P_t=852,N_t=592,D_t=15,U_t=D_t,dle=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function k_t(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Hb=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<ON||e.mode>vCe?1:0},gCe=t=>{if(Hb(t))return wh;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=ON,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(P_t),e.distcode=e.distdyn=new Int32Array(N_t),e.sane=1,e.back=-1,Cb},mCe=t=>{if(Hb(t))return wh;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,gCe(t)},yCe=(t,e)=>{let n;if(Hb(t))return wh;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?wh:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,mCe(t))},bCe=(t,e)=>{if(!t)return wh;const n=new k_t;t.state=n,n.strm=t,n.window=null,n.mode=ON;const r=yCe(t,e);return r!==Cb&&(t.state=null),r},F_t=t=>bCe(t,U_t);let fle=!0,B7,$7;const V_t=t=>{if(fle){B7=new Int32Array(512),$7=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(YT(uCe,t.lens,0,288,B7,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;YT(dCe,t.lens,0,32,$7,0,t.work,{bits:5}),fle=!1}t.lencode=B7,t.lenbits=9,t.distcode=$7,t.distbits=5},xCe=(t,e,n,r)=>{let i;const a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},B_t=(t,e)=>{let n,r,i,a,o,s,c,u,d,f,h,p,v,y,m=0,g,x,b,S,E,T,M,L;const R=new Uint8Array(4);let O,N;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Hb(t)||!t.output||!t.input&&t.avail_in!==0)return wh;n=t.state,n.mode===$v&&(n.mode=k7),o=t.next_out,i=t.output,c=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,f=s,h=c,L=Cb;e:for(;;)switch(n.mode){case ON:if(n.wrap===0){n.mode=k7;break}for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0),u=0,d=0,n.mode=Gse;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Vs;break}if((u&15)!==Hse){t.msg="unknown compression method",n.mode=Vs;break}if(u>>>=4,d-=4,M=(u&15)+8,n.wbits===0&&(n.wbits=M),M>15||M>n.wbits){t.msg="invalid window size",n.mode=Vs;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?Jse:$v,u=0,d=0;break;case Gse:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.flags=u,(n.flags&255)!==Hse){t.msg="unknown compression method",n.mode=Vs;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Vs;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0,n.mode=Wse;case Wse:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,R[2]=u>>>16&255,R[3]=u>>>24&255,n.check=kc(n.check,R,4,0)),u=0,d=0,n.mode=jse;case jse:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0,n.mode=Xse;case Xse:if(n.flags&1024){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0}else n.head&&(n.head.extra=null);n.mode=Zse;case Zse:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),M)),n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break e;n.length=0,n.mode=Kse;case Kse:if(n.flags&2048){if(s===0)break e;p=0;do M=r[a+p++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Yse;case Yse:if(n.flags&4096){if(s===0)break e;p=0;do M=r[a+p++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,M)break e}else n.head&&(n.head.comment=null);n.mode=qse;case qse:if(n.flags&512){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Vs;break}u=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=$v;break;case Jse:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}t.adler=n.check=dle(u),u=0,d=0,n.mode=T4;case T4:if(n.havedict===0)return t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,L_t;t.adler=n.check=1,n.mode=$v;case $v:if(e===M_t||e===gR)break e;case k7:if(n.last){u>>>=d&7,d-=d&7,n.mode=V7;break}for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}switch(n.last=u&1,u>>>=1,d-=1,u&3){case 0:n.mode=Qse;break;case 1:if(V_t(n),n.mode=mR,e===gR){u>>>=2,d-=2;break e}break;case 2:n.mode=tle;break;case 3:t.msg="invalid block type",n.mode=Vs}u>>>=2,d-=2;break;case Qse:for(u>>>=d&7,d-=d&7;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Vs;break}if(n.length=u&65535,u=0,d=0,n.mode=F7,e===gR)break e;case F7:n.mode=ele;case ele:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break e;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=$v;break;case tle:for(;d<14;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.nlen=(u&31)+257,u>>>=5,d-=5,n.ndist=(u&31)+1,u>>>=5,d-=5,n.ncode=(u&15)+4,u>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Vs;break}n.have=0,n.mode=nle;case nle:for(;n.have<n.ncode;){for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.lens[U[n.have++]]=u&7,u>>>=3,d-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},L=YT(A_t,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,L){t.msg="invalid code lengths set",n.mode=Vs;break}n.have=0,n.mode=rle;case rle:for(;n.have<n.nlen+n.ndist;){for(;m=n.lencode[u&(1<<n.lenbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(b<16)u>>>=g,d-=g,n.lens[n.have++]=b;else{if(b===16){for(N=g+2;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(u>>>=g,d-=g,n.have===0){t.msg="invalid bit length repeat",n.mode=Vs;break}M=n.lens[n.have-1],p=3+(u&3),u>>>=2,d-=2}else if(b===17){for(N=g+3;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=g,d-=g,M=0,p=3+(u&7),u>>>=3,d-=3}else{for(N=g+7;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=g,d-=g,M=0,p=11+(u&127),u>>>=7,d-=7}if(n.have+p>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Vs;break}for(;p--;)n.lens[n.have++]=M}}if(n.mode===Vs)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Vs;break}if(n.lenbits=9,O={bits:n.lenbits},L=YT(uCe,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,L){t.msg="invalid literal/lengths set",n.mode=Vs;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},L=YT(dCe,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,L){t.msg="invalid distances set",n.mode=Vs;break}if(n.mode=mR,e===gR)break e;case mR:n.mode=yR;case yR:if(s>=6&&c>=258){t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,E_t(t,h),o=t.next_out,i=t.output,c=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,n.mode===$v&&(n.back=-1);break}for(n.back=0;m=n.lencode[u&(1<<n.lenbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(x&&!(x&240)){for(S=g,E=x,T=b;m=n.lencode[T+((u&(1<<S+E)-1)>>S)],g=m>>>24,x=m>>>16&255,b=m&65535,!(S+g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=g,d-=g,n.back+=g,n.length=b,x===0){n.mode=lle;break}if(x&32){n.back=-1,n.mode=$v;break}if(x&64){t.msg="invalid literal/length code",n.mode=Vs;break}n.extra=x&15,n.mode=ile;case ile:if(n.extra){for(N=n.extra;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=ale;case ale:for(;m=n.distcode[u&(1<<n.distbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(!(x&240)){for(S=g,E=x,T=b;m=n.distcode[T+((u&(1<<S+E)-1)>>S)],g=m>>>24,x=m>>>16&255,b=m&65535,!(S+g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=g,d-=g,n.back+=g,x&64){t.msg="invalid distance code",n.mode=Vs;break}n.offset=b,n.extra=x&15,n.mode=ole;case ole:if(n.extra){for(N=n.extra;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Vs;break}n.mode=sle;case sle:if(c===0)break e;if(p=h-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Vs;break}p>n.wnext?(p-=n.wnext,v=n.wsize-p):v=n.wnext-p,p>n.length&&(p=n.length),y=n.window}else y=i,v=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=y[v++];while(--p);n.length===0&&(n.mode=yR);break;case lle:if(c===0)break e;i[o++]=n.length,c--,n.mode=yR;break;case V7:if(n.wrap){for(;d<32;){if(s===0)break e;s--,u|=r[a++]<<d,d+=8}if(h-=c,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?kc(n.check,i,h,o-h):nI(n.check,i,h,o-h)),h=c,n.wrap&4&&(n.flags?u:dle(u))!==n.check){t.msg="incorrect data check",n.mode=Vs;break}u=0,d=0}n.mode=cle;case cle:if(n.wrap&&n.flags){for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Vs;break}u=0,d=0}n.mode=ule;case ule:L=R_t;break e;case Vs:L=fCe;break e;case pCe:return hCe;case vCe:default:return wh}return t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,(n.wsize||h!==t.avail_out&&n.mode<Vs&&(n.mode<V7||e!==zse))&&xCe(t,t.output,t.next_out,h-t.avail_out),f-=t.avail_in,h-=t.avail_out,t.total_in+=f,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?kc(n.check,i,h,t.next_out-h):nI(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===$v?128:0)+(n.mode===mR||n.mode===F7?256:0),(f===0&&h===0||e===zse)&&L===Cb&&(L=O_t),L},$_t=t=>{if(Hb(t))return wh;let e=t.state;return e.window&&(e.window=null),t.state=null,Cb},z_t=(t,e)=>{if(Hb(t))return wh;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,Cb):wh},H_t=(t,e)=>{const n=e.length;let r,i,a;return Hb(t)||(r=t.state,r.wrap!==0&&r.mode!==T4)?wh:r.mode===T4&&(i=1,i=nI(i,e,n,0),i!==r.check)?fCe:(a=xCe(t,e,n,n),a?(r.mode=pCe,hCe):(r.havedict=1,Cb))};var G_t=mCe,W_t=yCe,j_t=gCe,X_t=F_t,Z_t=bCe,K_t=B_t,Y_t=$_t,q_t=z_t,J_t=H_t,Q_t="pako inflate (from Nodeca project)",tg={inflateReset:G_t,inflateReset2:W_t,inflateResetKeep:j_t,inflateInit:X_t,inflateInit2:Z_t,inflate:K_t,inflateEnd:Y_t,inflateGetHeader:q_t,inflateSetDictionary:J_t,inflateInfo:Q_t};function eIt(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var tIt=eIt;const SCe=Object.prototype.toString,{Z_NO_FLUSH:nIt,Z_FINISH:rIt,Z_OK:aI,Z_STREAM_END:z7,Z_NEED_DICT:H7,Z_STREAM_ERROR:iIt,Z_DATA_ERROR:hle,Z_MEM_ERROR:aIt}=rA;function aA(t){this.options=LN.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new lCe,this.strm.avail_out=0;let n=tg.inflateInit2(this.strm,e.windowBits);if(n!==aI)throw new Error(aE[n]);if(this.header=new tIt,tg.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=iI.string2buf(e.dictionary):SCe.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=tg.inflateSetDictionary(this.strm,e.dictionary),n!==aI)))throw new Error(aE[n])}aA.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?rIt:nIt,SCe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=tg.inflate(n,o),a===H7&&i&&(a=tg.inflateSetDictionary(n,i),a===aI?a=tg.inflate(n,o):a===hle&&(a=H7));n.avail_in>0&&a===z7&&n.state.wrap>0&&t[n.next_in]!==0;)tg.inflateReset(n),a=tg.inflate(n,o);switch(a){case iIt:case hle:case H7:case aIt:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===z7))if(this.options.to==="string"){let c=iI.utf8border(n.output,n.next_out),u=n.next_out-c,d=iI.buf2string(n.output,c);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(c,c+u),0),this.onData(d)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===aI&&s===0)){if(a===z7)return a=tg.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};aA.prototype.onData=function(t){this.chunks.push(t)};aA.prototype.onEnd=function(t){t===aI&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=LN.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function CW(t,e){const n=new aA(e);if(n.push(t),n.err)throw n.msg||aE[n.err];return n.result}function oIt(t,e){return e=e||{},e.raw=!0,CW(t,e)}var sIt=aA,lIt=CW,cIt=oIt,uIt=CW,dIt=rA,fIt={Inflate:sIt,inflate:lIt,inflateRaw:cIt,ungzip:uIt,constants:dIt};const{Inflate:yMt,inflate:hIt,inflateRaw:bMt,ungzip:xMt}=fIt;var ECe=hIt;function pIt(t){const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=ECe(e);return new DataView(n.buffer,n.byteOffset,n.byteLength)}const vIt={ignoreImageData:!1};class CCe extends MN{constructor(e){super(e),this._nextIFD=0}get isMultiPage(){let e=0;for(this.decodeHeader();this._nextIFD;)if(e++,this.decodeIFD({ignoreImageData:!0},!0),e===2)return!0;if(e===1)return!1;throw Kv("ifdCount",e)}get pageCount(){let e=0;for(this.decodeHeader();this._nextIFD;)e++,this.decodeIFD({ignoreImageData:!0},!0);if(e>0)return e;throw Kv("ifdCount",e)}decode(e={}){const{pages:n}=e;xIt(n);const r=n?Math.max(...n):1/0;e={...vIt,...e};const i=[];this.decodeHeader();let a=0;for(;this._nextIFD;){if(n){if(n.includes(a)?i.push(this.decodeIFD(e,!0)):this.decodeIFD({ignoreImageData:!0},!0),a===r)break}else i.push(this.decodeIFD(e,!0));a++}if(a<r&&r!==1/0)throw new RangeError(`Index ${r} is out of bounds. The stack only contains ${a} images.`);return i}decodeHeader(){const e=this.readUint16();if(e===18761)this.setLittleEndian();else if(e===19789)this.setBigEndian();else throw new Error(`invalid byte order: 0x${e.toString(16)}`);if(this.readUint16()!==42)throw new Error("not a TIFF file");this._nextIFD=this.readUint32()}decodeIFD(e,n){this.seek(this._nextIFD);let r;if(n)r=new Ise;else{if(!e.kind)throw new Error("kind is missing");r=new VEe(e.kind)}const i=this.readUint16();for(let a=0;a<i;a++)this.decodeIFDEntry(r);if(!e.ignoreImageData){if(!(r instanceof Ise))throw new Error("must be a tiff ifd");this.decodeImageData(r)}return this._nextIFD=this.readUint32(),r}decodeIFDEntry(e){const n=this.offset,r=this.readUint16(),i=this.readUint16(),a=this.readUint32();if(i<1||i>12){this.skip(4);return}Ewt(i,a)>4&&this.seek(this.readUint32());const s=Cwt(this,i,a);if(e.fields.set(r,s),r===34665||r===34853){const c=this.offset;let u="exif";r===34665?u="exif":r===34853&&(u="gps"),this._nextIFD=s,e[u]=this.decodeIFD({kind:u,ignoreImageData:!0},!1),this.offset=c}this.seek(n),this.skip(12)}decodeImageData(e){const n=e.orientation;if(n&&n!==1)throw Kv("orientation",n);switch(e.type){case 0:case 1:case 2:case 3:this.readStripData(e);break;default:throw Kv("image type",e.type)}if(this.applyPredictor(e),this.convertAlpha(e),e.type===0){const i=2**e.bitsPerSample-1;for(let a=0;a<e.data.length;a++)e.data[a]=i-e.data[a]}}readStripData(e){const n=e.width,r=e.height,i=e.bitsPerSample,a=e.sampleFormat,o=n*r*e.samplesPerPixel,s=gIt(o,i,a),u=e.rowsPerStrip*n*e.samplesPerPixel,d=e.stripOffsets,f=e.stripByteCounts||gwt(e);let h=o,p=0;for(let v=0;v<d.length;v++){const y=new DataView(this.buffer,this.byteOffset+d[v],f[v]),m=h>u?u:h;h-=m;let g=y;switch(e.compression){case 1:break;case 5:{g=Vwt(y);break}case 8:{g=pIt(y);break}case 2:throw Kv("Compression","CCITT Group 3");case 32773:throw Kv("Compression","PackBits");default:throw Kv("Compression",e.compression)}p=this.fillUncompressed(i,a,s,g,p,m)}e.data=s}fillUncompressed(e,n,r,i,a,o){if(e===8)return mIt(r,i,a,o);if(e===16)return yIt(r,i,a,o,this.isLittleEndian());if(e===32&&n===3)return bIt(r,i,a,o,this.isLittleEndian());throw Kv("bitDepth",e)}applyPredictor(e){const n=e.bitsPerSample;switch(e.predictor){case 1:break;case 2:{if(n===8)mwt(e.data,e.width,e.components);else if(n===16)ywt(e.data,e.width,e.components);else throw new Error(`Horizontal differencing is only supported for images with a bit depth of ${n}`);break}default:throw new Error(`invalid predictor: ${e.predictor}`)}}convertAlpha(e){if(e.alpha&&e.associatedAlpha){const{data:n,components:r,maxSampleValue:i}=e;for(let a=0;a<n.length;a+=r){const o=n[a+r-1];for(let s=0;s<r-1;s++)n[a+s]=Math.round(n[a+s]*i/o)}}}}function gIt(t,e,n){if(e===8)return new Uint8Array(t);if(e===16)return new Uint16Array(t);if(e===32&&n===3)return new Float32Array(t);throw Kv("bit depth / sample format",`${e} / ${n}`)}function mIt(t,e,n,r){for(let i=0;i<r;i++)t[n++]=e.getUint8(i);return n}function yIt(t,e,n,r,i){for(let a=0;a<r*2;a+=2)t[n++]=e.getUint16(a,i);return n}function bIt(t,e,n,r,i){for(let a=0;a<r*4;a+=4)t[n++]=e.getFloat32(a,i);return n}function Kv(t,e){return new Error(`Unsupported ${t}: ${e}`)}function xIt(t){if(t){for(const e of t)if(e<0||!Number.isInteger(e))throw new RangeError(`Index ${e} is invalid. Must be a positive integer.`)}}function G7(t,e){return new CCe(t).decode(e)}function ple(t){return new CCe(t).pageCount}function gu(t){return(e,...n)=>SIt(t,e,n)}function KE(t,e){return gu(wCe(t,e).get)}const{apply:SIt,construct:SMt,defineProperty:EMt,get:CMt,getOwnPropertyDescriptor:wCe,getPrototypeOf:wW,has:wMt,ownKeys:EIt,set:TMt,setPrototypeOf:_Mt}=Reflect,{iterator:oA,species:IMt,toStringTag:CIt,for:AMt}=Symbol,wIt=Object,{create:TW,defineProperty:TIt,freeze:MMt,is:RMt}=wIt,_It=Array,IIt=_It.prototype,TCe=IIt[oA],AIt=gu(TCe),_Ce=ArrayBuffer,MIt=_Ce.prototype;KE(MIt,"byteLength");const vle=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null;vle&&KE(vle.prototype,"byteLength");const ICe=wW(Uint8Array);ICe.from;const Md=ICe.prototype;Md[oA];gu(Md.keys);gu(Md.values);gu(Md.entries);gu(Md.set);gu(Md.reverse);gu(Md.fill);gu(Md.copyWithin);gu(Md.sort);gu(Md.slice);gu(Md.subarray);KE(Md,"buffer");KE(Md,"byteOffset");KE(Md,"length");KE(Md,CIt);const RIt=Uint8Array,ACe=Uint16Array,_W=Uint32Array,LIt=Float32Array,oI=wW([][oA]()),MCe=gu(oI.next),OIt=gu(function*(){}().next),PIt=wW(oI),NIt=DataView.prototype,DIt=gu(NIt.getUint16),IW=WeakMap,RCe=IW.prototype,LCe=gu(RCe.get),UIt=gu(RCe.set),OCe=new IW,kIt=TW(null,{next:{value:function(){const e=LCe(OCe,this);return MCe(e)}},[oA]:{value:function(){return this}}});function FIt(t){if(t[oA]===TCe&&oI.next===MCe)return t;const e=TW(kIt);return UIt(OCe,e,AIt(t)),e}const VIt=new IW,BIt=TW(PIt,{next:{value:function(){const e=LCe(VIt,this);return OIt(e)},writable:!0,configurable:!0}});for(const t of EIt(oI))t!=="next"&&TIt(BIt,t,wCe(oI,t));const PCe=new _Ce(4),$It=new LIt(PCe),zIt=new _W(PCe),Np=new ACe(512),Dp=new RIt(512);for(let t=0;t<256;++t){const e=t-127;e<-24?(Np[t]=0,Np[t|256]=32768,Dp[t]=24,Dp[t|256]=24):e<-14?(Np[t]=1024>>-e-14,Np[t|256]=1024>>-e-14|32768,Dp[t]=-e-1,Dp[t|256]=-e-1):e<=15?(Np[t]=e+15<<10,Np[t|256]=e+15<<10|32768,Dp[t]=13,Dp[t|256]=13):e<128?(Np[t]=31744,Np[t|256]=64512,Dp[t]=24,Dp[t|256]=24):(Np[t]=31744,Np[t|256]=64512,Dp[t]=13,Dp[t|256]=13)}const AW=new _W(2048);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;!(e&8388608);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,AW[t]=e|n}for(let t=1024;t<2048;++t)AW[t]=939524096+(t-1024<<13);const YE=new _W(64);for(let t=1;t<31;++t)YE[t]=t<<23;YE[31]=1199570944;YE[32]=2147483648;for(let t=33;t<63;++t)YE[t]=2147483648+(t-32<<23);YE[63]=3347054592;const NCe=new ACe(64);for(let t=1;t<64;++t)t!==32&&(NCe[t]=1024);function HIt(t){const e=t>>10;return zIt[0]=AW[NCe[e]+(t&1023)]+YE[e],$It[0]}function DCe(t,e,...n){return HIt(DIt(t,e,...FIt(n)))}var M2={},GIt={get exports(){return M2},set exports(t){M2=t}};function UCe(t,e,n){const r=n&&n.debug||!1;r&&console.log("[xml-utils] getting "+e+" in "+t);const i=typeof t=="object"?t.outer:t,a=i.slice(0,i.indexOf(">")+1),o=['"',"'"];for(let s=0;s<o.length;s++){const c=o[s],u=e+"\\="+c+"([^"+c+"]*)"+c;r&&console.log("[xml-utils] pattern:",u);const f=new RegExp(u).exec(a);if(r&&console.log("[xml-utils] match:",f),f)return f[1]}}GIt.exports=UCe;M2.default=UCe;var _4={},WIt={get exports(){return _4},set exports(t){_4=t}},I4={},jIt={get exports(){return I4},set exports(t){I4=t}},A4={},XIt={get exports(){return A4},set exports(t){A4=t}};function kCe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index:-1}XIt.exports=kCe;A4.default=kCe;var M4={},ZIt={get exports(){return M4},set exports(t){M4=t}};function FCe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index+i[0].length-1:-1}ZIt.exports=FCe;M4.default=FCe;var R4={},KIt={get exports(){return R4},set exports(t){R4=t}};function VCe(t,e){const n=new RegExp(e,"g"),r=t.match(n);return r?r.length:0}KIt.exports=VCe;R4.default=VCe;const YIt=A4,W7=M4,gle=R4;function BCe(t,e,n){const r=n&&n.debug||!1,i=!(n&&typeof n.nested===!1),a=n&&n.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",n);const o=YIt(t,`<${e}[
4309
+ `,transparent:!1,depthWrite:!1,depthTest:!1}),Un=new Q1(wt,Hn);Un.translateX(Ko.current),Un.translateY(Io.current),Un.translateZ(Ao.current),Un.myMeshType="neuronSphere",Un.name=`${kt}-${Pt.line[0].start_name}`,Un.userData.color="#1771FF",Un.myMeshType="neuronSphere",Un.name=`${kt}-${Pt.line[0].start_name}`,Un.userData.color="#1771FF",yn(Un),Ht.add(Un),Ht.name=`swcPointGroup${kt}`,He.current.push(Ht),Ce.current.add(Ht);let Ne=1;for(let fe=0;fe<Pt.line.length;fe++){let tt=[],Xe=[Pt.position[0].x,Pt.position[0].y,Pt.position[0].z];for(let nn=Pt.line[fe].start;nn<=Pt.line[fe].end;nn++){nn===Pt.line[fe].start&&(Xe=[Pt.position[nn].x,Pt.position[nn].y,Pt.position[nn].z]);let vn=Pt.position[nn].x,on=Pt.position[nn].y,pn=Pt.position[nn].z;(Math.sqrt((vn-Xe[0])*(vn-Xe[0])+(on-Xe[1])*(on-Xe[1])+(pn-Xe[2])*(pn-Xe[2]))>Ne||nn===Pt.line[fe].end||nn===Pt.line[fe].start)&&(tt.push(new ye(vn,on,pn)),Xe=[vn,on,pn])}let st=new xa(new Zi().setFromPoints(tt),new yh({color:At}));st.myMeshType="SWC",dt.add(st)}dt.scale.set(Do.current,Do.current,Do.current),dt.translateX(Ko.current),dt.translateY(Io.current),dt.translateZ(Ao.current),dt.name=kt,dt.myMeshType="SWC",Z.current[kt]=dt,Ce.current.add(Z.current[kt]),Ze&&Ze()})},Pn=function(ot){return ot.replace("/","_").replace(" ","_")},zn=(ot,ut,kt)=>{var Ze;kt.color=ut;let At=Ce.current.children.find(qt=>qt.name==kt.name);if(s=="vessel")i.current[kt.name]&&At&&At.traverse(function(qt){(qt instanceof xa||qt instanceof kn)&&qt.material.color.set(kt.color)});else if(s=="fbx"){if(No.current[kt.name]&&At){const qt=kt.color.slice(0,7),Pt=kt.color.slice(7,9),dt=parseInt(Pt,16)/255;At.traverse(function(Ht){Ht instanceof kn&&(Ht.material.color.set(qt),Pt&&(Ht.material.transparent=!0,Ht.material.opacity=dt))})}}else if(s=="soma")Y.current.includes(kt.name)&&At&&At.traverse(function(qt){qt instanceof Q1&&(qt.material.uniforms.color.value=Hr(kt.color))});else if(s=="swc"){if(Z.current[kt.name]&&At){let dt=new URL(window.location.href),Ht=new URLSearchParams(dt.search);It.current[kt.name]=kt.color.replace("#","!"),Ht.set("neuronsColor",encodeURIComponent(JSON.stringify(It.current))),dt.search=Ht.toString(),window.history.replaceState({},"",dt),At.traverse(function(wt){wt instanceof xa&&wt.material.color.set(kt.color)})}Ce.current.traverse(dt=>{if(dt.myMeshType==="neuronSphere"&&dt.userData.type=="end"&&kt.name===dt.name.split("-")[0]){let Ht=kt.color;dt.material.uniforms.color.value=new Qr(Ht),dt.userData.color=Ht}});let[qt,Pt]=Lt(Je.current,kt.name);for(let dt in Pt){let Ht=dt;dt.indexOf("_")>-1&&(Ht=dt.split("_")[0]);let wt=(Ze=Je.current[`${Ht}`])==null?void 0:Ze.find(fr=>fr.name===kt.name);wt&&(wt.color=kt.color)}Ce.current.traverse(dt=>{if(dt.name==="lineNameMesh"&&dt.userData.type=="end"&&kt.name===dt.userData.wholeName.split("-")[0]){let Ht=kt.color;dt.material.color.set(Ht),dt.userData.initColor=Ht}})}},Ar=w.useCallback((ot,ut,kt,At,Ze)=>{ot.stopPropagation();let qt=new URL(window.location.href),Pt=new URLSearchParams(qt.search),dt=ut,Ht=E0e(dt,he.current),fr=WS(dt,he.current).children,Hn=U+"/data/"+Q.current+"/"+Pn(dt)+".FBX";for(var Un=0;Un<Ht.length;Un++){if(ri(Ht[Un],!0),ke.includes(Ht[Un])){Ie(tt=>tt.filter(Xe=>Xe!==Ht[Un]));const fe=JSON.stringify(ke.filter(tt=>tt!==Ht[Un]));Pt.set("regionsExpanded",fe)}Y.current=Y.current.filter(fe=>fe!==Ht[Un])}if(ke.includes(dt)){Ie(tt=>tt.filter(Xe=>Xe!==dt));const fe=JSON.stringify(ke.filter(tt=>tt!==dt));Pt.set("regionsExpanded",fe),Y.current.includes(dt)||Y.current.push(dt),No.current[dt]?(Ce.current.remove(No.current[dt]),No.current[dt].children[0].material.color.set(At),Ce.current.add(No.current[dt]),dg.current&&(Ce.current.remove(es.current[dt]),es.current[dt].children[0].material.color.set(At),Ce.current.add(es.current[dt]))):qh(Hn,dt,At,.6,parseInt(Ze));for(var Un=0;Un<fr.length;Un++)Y.current=Y.current.filter(Xe=>Xe!==fr[Un].name),ri(fr[Un].name,!0),Ae.current=0,delete ne.current[fr[Un].name]}else{const fe=document.getElementById("spinner"),tt=JSON.stringify([...ke,dt]);Pt.set("regionsExpanded",tt),Ie(Xe=>[...Xe,dt]),fe&&(fe.style.display="block"),No.current[dt]?(Ce.current.remove(No.current[dt]),No.current[dt].children[0].material.color.set("#DBDBDB"),Ce.current.add(No.current[dt]),dg.current&&(Ce.current.remove(es.current[dt]),es.current[dt].children[0].material.color.set("#DBDBDB"),Ce.current.add(es.current[dt]))):qh(Hn,dt,"#DBDBDB",.6,parseInt(Ze)),Y.current=Y.current.filter(Xe=>Xe!==dt);for(var Un=0;Un<fr.length;Un++)if(fr[Un]["3D"]){let st=parseInt(fr[Un].z),nn=fr[Un].color,vn=U+"/data/"+Q.current+"/"+Pn(fr[Un].name)+".FBX";Y.current.push(fr[Un].name),oi(vn,fr[Un].name,nn,.6,st,function(){fe&&(fe.style.display="none")})}}g(Y.current);const Ne=JSON.stringify(Y.current);Pt.set("regionsChecked",Ne),qt.search=Pt.toString(),window.history.replaceState({},"",qt)},[m,f,ke]),Ri=(ot,ut,kt)=>{if(ut===Y.current[0]&&x)return;const At=Y.current.indexOf(ut);if(At!==-1){x&&(ot.target.style.color="black"),g(dt=>dt.filter(Ht=>Ht!==ut)),Y.current.splice(At,1);let Ze=new URL(window.location.href),qt=new URLSearchParams(Ze.search);const Pt=JSON.stringify(Y.current);s==="fbx"?qt.set("regionsChecked",Pt):s==="vessel"&&qt.set("vesselsChecked",Pt),Ze.search=qt.toString(),window.history.replaceState({},"",Ze),ri(ut,!0)}else{x&&(ot.target.style.color="red"),Y.current.push(ut),g([...Y.current]);let Ze=new URL(window.location.href),qt=new URLSearchParams(Ze.search);const Pt=JSON.stringify(Y.current);s==="fbx"?qt.set("regionsChecked",Pt):s==="vessel"&&qt.set("vesselsChecked",Pt),Ze.search=qt.toString(),window.history.replaceState({},"",Ze);let dt=U+"/data/FBX/"+ut+".FBX";qh(dt,ut,kt,.8,0)}if(b){const Ze=b.current.indexOf(ut);Ze>-1?b.current.splice(Ze,1):b.current.push(ut)}},Mr=w.useMemo(()=>{var Ze,qt;let ot=J&&J.split(" ")[0]||"",ut=typeof G=="string"?G.split(" ")[0]:"",kt=["MO","MOs","MOp","CP","Isocortex"];if(s=="swc"){let Pt=[],dt=[];if(E&&ut){let Ht=((Ze=E[ut])==null?void 0:Ze.axon)||[];Pt=[...Pt,...Ht]}if(E&&ot){let Ht=((qt=E[ot])==null?void 0:qt.soma)||[];dt=[...dt,...Ht]}if(ut&&ot){let Ht=new Set(Pt),wt=new Set(dt);Oe.current=[...Ht].filter(fr=>wt.has(fr))}else ut?Oe.current=Pt:ot&&(Oe.current=dt)}const At=Pt=>Pt&&Pt.map((dt,Ht)=>{I7.push(dt),dt.nameflag?dt.key=dt.nameflag:dt.key=dt.name;let wt=dt.name;if(localStorage.getItem("lang")=="zh_cn"&&dt.cname&&(wt=dt.cname),s==="vessel"){const fe=LT(dt.key,n);fe[fe.length-1]}dt.path||(s==="vessel"?dt.path=U+"/data/Vessel/":s==="fbx"&&(dt.path=U+"/data/FBX/"));const fr=ht.reduce((fe,tt)=>{const[Xe,st]=tt.split(":");return fe[Xe]=st,fe},{}),Hn=(fe,tt)=>fe in fr?fr[fe]===tt[fe]:!0;let Un;const Ne=G&&dt["3D"]&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1||x&&Y.current.slice(1).includes(wt)||s=="vessel"&&G&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1;if(s==="fbx"||s==="vessel")return Un=w.createElement("span",{style:{display:"flex",alignItems:"center"},onClick:fe=>fe.stopPropagation()},w.createElement(aL,{format:"rgb",defaultValue:dt.color,onChange:(fe,tt)=>zn(fe,tt,dt)}),w.createElement(Aa,{placement:"right",title:dt.fullname},w.createElement("div",{onClick:fe=>Ri(fe,dt.key,dt.color),style:Ne?{color:"red",whiteSpace:"nowrap"}:{color:"black",whiteSpace:"nowrap"}},wt)),ir.includes(dt.name)?w.createElement(Aa,{placement:"right",title:p("5000.6041")||"新标注"},w.createElement("svg",{className:"svgleft",width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",style:{marginLeft:"8px"},xmlns:"http://www.w3.org/2000/svg"},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 12.39 0.00 L 187.60 0.00 C 193.55 1.76 198.40 6.33 200.00 12.39 L 200.00 197.03 C 197.21 200.36 192.66 199.74 189.30 197.68 C 160.70 182.89 131.92 168.44 103.27 153.76 C 100.74 151.94 97.96 153.23 95.58 154.56 C 79.92 162.65 64.11 170.45 48.45 178.54 C 34.57 185.85 20.35 192.53 6.55 200.00 L 4.06 200.00 C 2.44 198.91 1.07 197.50 0.00 195.87 L 0.00 12.40 C 1.80 6.43 6.41 1.77 12.39 0.00 M 68.04 50.93 C 67.96 68.97 68.00 87.02 68.01 105.06 C 67.45 108.62 71.21 112.26 74.72 110.75 C 77.57 109.92 78.36 106.64 78.30 104.03 C 78.31 90.37 78.34 76.71 78.25 63.05 C 93.63 78.23 108.28 94.13 123.37 109.59 C 124.85 111.28 127.53 111.57 129.39 110.34 C 131.68 109.12 132.04 106.39 132.00 104.06 C 131.96 86.01 132.08 67.96 131.94 49.91 C 132.41 46.10 127.58 43.22 124.42 45.37 C 121.60 46.80 121.73 50.30 121.67 53.00 C 121.74 66.29 121.62 79.57 121.76 92.85 C 107.86 78.88 94.47 64.40 80.64 50.36 C 78.20 48.09 75.99 44.09 72.08 44.90 C 69.30 45.36 67.87 48.32 68.04 50.93 Z"})))):null,D!=null&&D.includes("neurons")&&kt.includes(dt.name)&&(N=="task3D"||N=="3Dneurons")?w.createElement(Aa,{placement:"right",title:p("5000.6040")||"投射丰富"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",style:{marginLeft:"5px"},version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:()=>{R==null||R.current.tabChange(7),setTimeout(()=>{L&&L(dt.name)},50)}},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 161.22 29.23 C 170.61 22.47 184.66 24.19 192.68 32.31 C 197.08 36.53 199.12 42.53 200.00 48.42 L 200.00 51.57 C 199.07 58.41 196.19 65.28 190.43 69.42 C 182.96 75.76 171.77 76.37 163.24 71.84 C 157.18 68.92 153.36 63.05 150.76 57.07 C 143.17 57.08 135.57 56.74 127.99 57.09 C 125.64 57.08 124.07 59.04 122.49 60.48 C 109.60 73.80 96.19 86.60 83.39 100.00 C 96.19 113.40 109.60 126.20 122.49 139.52 C 124.07 140.96 125.64 142.92 127.98 142.91 C 135.58 143.26 143.19 142.92 150.80 142.94 C 152.36 139.60 153.87 136.15 156.39 133.41 C 161.32 127.99 168.67 124.81 176.01 125.13 C 183.62 125.37 191.06 129.33 195.32 135.66 C 200.14 142.64 201.01 152.08 197.83 159.90 C 193.64 169.75 182.73 176.08 172.08 174.81 C 162.13 173.99 153.99 166.24 150.70 157.12 C 141.45 156.77 132.19 157.20 122.94 156.99 C 119.96 157.25 117.95 154.84 116.03 152.98 C 102.37 138.97 88.30 125.36 74.64 111.35 C 72.74 109.58 70.92 107.06 68.05 107.07 C 61.80 106.71 55.54 107.06 49.29 107.12 C 46.34 115.79 38.83 122.99 29.63 124.43 C 19.13 126.37 7.56 120.75 2.99 111.02 C -1.82 101.38 0.34 88.66 8.45 81.45 C 16.25 74.63 28.64 72.73 37.60 78.39 C 43.12 81.56 46.99 86.86 49.37 92.67 C 55.88 92.61 62.41 93.06 68.91 92.61 C 70.92 92.57 72.27 90.88 73.65 89.65 C 87.81 75.15 102.36 61.03 116.53 46.53 C 118.28 44.79 120.23 42.76 122.94 43.01 C 132.21 42.82 141.49 43.18 150.76 42.93 C 153.10 37.64 156.28 32.47 161.22 29.23 Z"})))):null,w.createElement("div",{ref:Ht==0?u:null,style:{width:20,height:20,marginLeft:8}},dt.children&&y&&(N=="task3D"||N=="3Dlabel")?w.createElement(Aa,{placement:"right",title:ke.includes(dt.key)?"Assemle":"Expand"},ke.includes(dt.key)?w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:fe=>Ar(fe,dt.key,`${dt.key}`,dt.color,dt.z)},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 63.29 5.38 C 64.77 5.01 66.21 5.93 67.59 6.37 C 76.47 10.42 84.89 15.45 93.99 19.03 C 96.79 20.32 100.17 21.53 101.43 24.64 C 103.43 28.57 100.65 33.35 96.69 34.67 C 89.18 37.63 82.15 41.64 74.68 44.70 C 70.42 46.40 65.85 50.45 61.12 47.92 C 51.83 43.67 42.87 38.75 33.64 34.38 C 30.76 33.08 27.65 31.24 27.03 27.85 C 26.96 24.60 28.32 20.85 31.64 19.65 C 42.33 15.22 52.50 9.55 63.29 5.38 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 15.39 56.26 C 17.98 55.30 20.40 57.34 22.69 58.29 C 30.72 62.68 39.29 66.09 47.05 70.95 C 50.29 72.73 50.08 76.80 50.06 79.98 C 49.82 91.26 50.26 102.56 49.87 113.83 C 48.69 117.23 44.23 120.17 40.62 118.42 C 31.59 115.01 22.81 110.92 14.00 106.99 C 9.42 104.95 9.09 99.37 8.97 95.04 C 9.05 85.36 8.92 75.67 9.02 66.00 C 8.93 61.81 11.32 57.64 15.39 56.26 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 109.45 56.37 C 113.43 54.97 117.33 58.88 118.67 62.35 C 119.44 66.85 118.87 71.46 119.00 76.00 C 118.77 84.93 119.77 94.00 117.79 102.80 C 117.39 105.12 115.10 106.29 113.17 107.17 C 105.54 110.54 97.93 113.93 90.31 117.31 C 88.05 118.18 85.69 119.33 83.20 118.99 C 80.27 117.96 77.59 115.38 77.99 112.02 C 77.99 100.34 77.98 88.66 78.00 76.98 C 77.80 73.81 79.74 70.88 82.64 69.66 C 91.60 65.29 100.43 60.62 109.45 56.37 Z"})),w.createElement("g",{id:"#8da6d9ff"},w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 10.48 33.45 C 14.12 32.46 17.23 35.20 20.36 36.61 C 22.35 38.00 25.96 38.81 25.77 41.84 C 25.91 43.53 23.62 44.66 22.18 43.98 C 18.23 42.43 14.41 40.41 10.91 38.01 C 9.31 36.99 10.24 34.90 10.48 33.45 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 113.64 33.62 C 114.86 32.90 116.24 33.28 117.54 33.44 C 117.65 34.89 118.71 37.04 117.12 38.02 C 113.32 40.46 109.32 42.77 105.00 44.17 C 102.38 44.63 101.22 40.71 103.32 39.38 C 106.46 36.98 110.08 35.28 113.64 33.62 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 32.35 44.38 C 36.95 44.43 40.98 47.92 44.91 50.13 C 47.61 51.34 45.87 56.15 43.02 55.20 C 38.83 53.64 34.78 51.46 31.23 48.74 C 29.51 47.51 30.52 44.85 32.35 44.38 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 83.15 50.18 C 86.59 47.86 90.26 45.76 94.16 44.30 C 96.46 43.58 97.45 46.12 97.82 47.88 C 94.55 50.84 90.52 52.76 86.56 54.60 C 85.18 55.35 83.62 54.93 82.16 54.82 C 82.08 53.21 81.21 51.03 83.15 50.18 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 51.49 55.43 C 56.19 54.55 59.78 58.65 64.01 59.97 C 68.18 58.57 71.82 54.46 76.48 55.50 C 76.69 56.83 77.25 58.23 76.74 59.58 C 73.79 61.91 70.21 63.25 67.06 65.27 C 66.80 69.37 67.00 73.50 66.42 77.57 C 64.81 77.78 63.19 77.76 61.59 77.55 C 61.00 73.47 61.20 69.34 60.94 65.24 C 57.78 63.24 54.16 61.96 51.27 59.56 C 50.53 58.23 51.26 56.78 51.49 55.43 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 61.61 84.44 C 63.20 84.05 64.82 84.09 66.42 84.44 C 67.10 89.77 67.19 95.20 66.42 100.53 C 64.82 101.13 63.15 101.18 61.52 100.63 C 60.93 95.26 60.78 89.80 61.61 84.44 Z"}),w.createElement("path",{fill:"#8da6d9",opacity:"1.00",d:" M 61.65 108.59 C 62.39 106.51 65.30 107.03 66.52 108.37 C 67.25 112.72 67.03 117.20 66.40 121.55 C 64.81 122.00 63.19 122.00 61.60 121.55 C 61.04 117.28 60.56 112.81 61.65 108.59 Z"}))):w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 128 128",version:"1.1",xmlns:"http://www.w3.org/2000/svg",onClick:fe=>Ar(fe,dt.key,`${dt.key}`,dt.color,dt.z)},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 61.53 12.67 C 65.46 11.54 69.30 13.51 72.75 15.18 C 79.87 18.83 87.26 21.90 94.40 25.50 C 98.14 27.43 102.24 28.74 105.61 31.32 C 108.79 33.88 107.69 39.53 104.04 41.12 C 97.03 44.96 89.48 47.73 82.40 51.44 C 77.12 53.83 71.95 56.48 66.60 58.70 C 63.66 60.17 60.60 58.42 57.90 57.25 C 46.68 51.71 35.19 46.70 23.99 41.12 C 19.70 39.29 19.26 32.55 23.58 30.52 C 32.09 25.74 41.21 22.17 49.92 17.78 C 53.73 15.95 57.45 13.86 61.53 12.67 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 19.32 48.10 C 22.27 47.30 25.07 49.17 27.71 50.24 C 36.66 54.75 45.89 58.69 54.87 63.12 C 56.99 64.25 59.54 65.55 60.07 68.13 C 60.64 70.71 60.51 73.37 60.53 76.00 C 60.40 86.34 60.51 96.69 60.51 107.03 C 60.44 109.78 60.34 113.19 57.72 114.82 C 54.77 117.03 51.17 114.98 48.27 113.77 C 39.28 109.37 30.16 105.24 21.11 100.97 C 19.03 99.85 16.43 98.92 15.46 96.58 C 14.66 93.80 14.87 90.85 14.82 87.99 C 14.97 77.31 14.77 66.62 14.88 55.94 C 14.74 52.76 16.06 49.18 19.32 48.10 Z"}),w.createElement("path",{fill:"#1296db",opacity:"1.00",d:" M 105.40 48.21 C 108.42 46.98 112.09 49.16 112.66 52.32 C 113.43 56.16 113.11 60.11 113.15 64.00 C 113.03 73.34 113.25 82.69 113.10 92.04 C 113.14 95.16 112.21 98.70 109.04 100.01 C 99.09 104.78 89.00 109.29 79.06 114.12 C 76.54 115.15 73.59 116.72 70.92 115.21 C 67.85 113.76 67.50 110.02 67.50 107.03 C 67.51 95.68 67.56 84.34 67.48 72.99 C 67.64 70.22 67.28 66.64 70.01 64.96 C 74.57 61.94 79.73 60.01 84.64 57.66 C 91.64 54.70 98.21 50.72 105.40 48.21 Z"})))):null)),dt.title=Un,dt.key=dt.name,dt["3D"]==!1&&(dt.disabled=!0),x||ke.includes(dt.name)?dt.disableCheckbox=!0:dt.disableCheckbox=!1,dt.children&&(dt.children=At(dt.children)),dt;if(s=="swc"){if(ut||ot)return Oe.current&&Oe.current.includes(wt)&&Hn("strain",dt)&&Hn("age",dt)&&Hn("weight",dt)&&Hn("gender",dt)&&Hn("injected_viruses",dt)&&Hn("imaging_system",dt)&&Hn("species",dt)?(dt.title=dt.name,dt.key=dt.name,dt.color=dt.color?dt.color:"#045404",!tn||dt.show?dt:null):null}else{const fe=G&&wt.toLowerCase().indexOf(G.toLowerCase())!==-1;return Un=w.createElement(Aa,{placement:"right",title:dt.fullname},w.createElement("span",{style:{display:"flex",alignItems:"center"},onClick:tt=>tt.stopPropagation()},dt.children&&s=="swc"?null:w.createElement(aL,{disabled:s=="swc",format:"rgb",defaultValue:s=="swc"?"#045404":dt.color,onChange:(tt,Xe)=>zn(tt,Xe,dt)}),w.createElement("div",{style:fe?{color:"red"}:{}},wt))),dt.title=Un,dt.key=dt.name,dt.children&&(dt.children=At(dt.children)),dt}});return At(n).filter(Boolean)},[G,n,J,ke,x,y,M,pe,ht,E,tn,N]),gr=(ot,ut)=>{g(Pt=>[...Pt,ot]),Y.current.push(ot);let kt=new URL(window.location.href),At=new URLSearchParams(kt.search);const Ze=JSON.stringify(Y.current);At.set("neuronsChecked",Ze),kt.search=At.toString(),window.history.replaceState({},"",kt);let qt=Gr(Mr,ot);fetch(qt.path).then(Pt=>Pt.json()).then(Pt=>{cn(Pt)}),Z.current[ot]?(yt({name:ot,color:ut}),Qe(!0)):gn(qt.path,6,ot,qt.color,function(){_s(ot,qt.color),yt({name:ot,color:ut}),Qe(!0)})},mr=[{title:"Name",dataIndex:"name"},{title:"Color",dataIndex:"Picker",width:50,render:(ot,ut)=>(It[ut.name]&&(ut.color=It[ut.name]),w.createElement(aL,{disabled:!ut.show,format:"rgb",defaultValue:ut.color?ut.color:"#045404",onChange:(kt,At)=>zn(kt,At,ut)}))},{title:"Ana.",dataIndex:"Ana",align:"center",render:(ot,ut)=>w.createElement(Aa,{placement:"right",title:p("5000.7008")||"分析"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",xmlns:"http://www.w3.org/2000/svg",cursor:"pointer",pointerEvents:ut.show?"auto":"none",onClick:kt=>{gr(ut.name,ut.color)}},w.createElement("g",{id:"#515151ff"},w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 93.31 23.38 C 99.84 22.59 106.48 23.11 113.05 23.06 C 116.47 22.96 118.74 26.28 119.64 29.16 C 119.69 72.38 119.68 115.62 119.65 158.85 C 118.76 161.25 117.05 164.47 114.01 164.31 C 107.36 164.33 100.70 164.43 94.05 164.27 C 90.19 163.42 89.10 158.51 89.04 155.07 C 88.96 114.37 88.99 73.66 89.03 32.95 C 88.88 29.39 89.91 25.14 93.31 23.38 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 154.30 33.38 C 160.49 32.55 166.82 33.20 173.07 33.01 C 177.49 32.53 180.75 36.93 180.68 41.00 C 180.64 79.96 180.71 118.92 180.65 157.87 C 180.10 160.67 178.42 164.46 175.00 164.30 C 168.35 164.35 161.68 164.43 155.03 164.26 C 150.70 163.82 149.84 158.51 149.68 155.00 C 149.66 117.67 149.67 80.35 149.67 43.02 C 149.50 39.30 150.67 35.07 154.30 33.38 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 31.38 68.42 C 36.43 66.93 41.81 67.98 47.00 67.67 C 50.60 67.83 55.31 66.86 57.74 70.26 C 59.28 71.73 58.83 74.05 59.00 75.97 C 58.96 103.34 59.07 130.71 58.95 158.08 C 59.30 161.45 56.33 164.46 52.99 164.32 C 46.66 164.36 40.33 164.36 34.01 164.32 C 30.72 164.36 27.65 161.48 28.05 158.09 C 27.95 130.37 28.00 102.64 28.03 74.92 C 27.75 72.28 28.89 69.58 31.38 68.42 Z"}),w.createElement("path",{fill:"#515151",opacity:"1.00",d:" M 7.94 174.89 C 8.70 174.83 10.24 174.70 11.01 174.64 C 47.00 174.68 83.00 174.65 119.00 174.66 C 146.00 174.78 173.01 174.42 200.00 174.84 L 200.00 184.15 C 198.66 184.25 197.33 184.31 196.00 184.35 C 134.33 184.34 72.67 184.34 11.01 184.35 C 10.24 184.29 8.70 184.17 7.94 184.11 C 7.49 181.06 7.48 177.94 7.94 174.89 Z"}))))},{title:"Path",dataIndex:"img",align:"center",width:50,render:(ot,ut)=>w.createElement(Aa,{placement:"right",title:p("5000.6003")||"投射路径"},w.createElement("svg",{width:"20px",height:"20px",viewBox:"0 0 200 200",version:"1.1",xmlns:"http://www.w3.org/2000/svg",cursor:"pointer",pointerEvents:ut.show?"auto":"none",onClick:kt=>{jt(ut.name)}},w.createElement("g",{id:"#1296dbff"},w.createElement("path",{fill:T&&ut.name in T.current?"#1296db":"#515151",opacity:"1.00",d:" M 49.85 22.81 C 59.71 14.23 76.52 14.87 85.29 24.74 C 87.48 27.08 88.68 30.09 90.41 32.73 C 91.80 33.49 93.46 33.21 94.98 33.33 C 111.66 33.26 128.35 33.27 145.03 33.31 C 156.32 33.34 168.08 37.82 175.15 46.90 C 184.45 58.34 185.39 75.18 179.31 88.32 C 175.60 95.86 169.21 102.22 161.27 105.20 C 155.18 107.71 148.53 108.28 142.00 108.29 C 112.98 108.27 83.95 108.30 54.93 108.29 C 47.32 108.11 39.18 111.60 35.74 118.72 C 31.96 126.77 32.58 137.41 38.92 144.04 C 43.19 148.73 49.91 149.96 55.98 150.00 C 72.33 150.03 88.68 149.95 105.04 150.04 C 106.56 150.01 108.10 150.00 109.60 149.65 C 111.78 145.95 113.50 141.75 117.13 139.15 C 126.54 131.15 141.94 131.52 150.80 140.19 C 153.70 142.84 155.15 146.56 157.28 149.78 C 164.10 150.58 171.02 149.34 177.82 150.39 C 184.67 152.33 185.10 163.99 178.15 166.09 C 171.31 167.70 164.18 165.87 157.29 167.06 C 155.14 170.31 153.62 174.04 150.68 176.70 C 140.24 186.50 121.13 185.09 112.96 173.05 C 111.06 170.87 110.76 166.29 107.04 166.72 C 93.69 166.66 80.35 166.74 67.00 166.71 C 57.97 166.58 48.53 167.54 39.99 163.97 C 31.40 160.72 23.97 154.20 20.28 145.72 C 13.84 131.17 16.41 112.32 28.35 101.31 C 36.18 93.81 47.48 91.52 58.00 91.71 C 87.34 91.67 116.69 91.78 146.03 91.68 C 153.59 91.69 161.48 87.76 164.60 80.60 C 168.03 72.44 167.24 61.77 160.57 55.44 C 156.20 51.22 149.90 49.98 144.02 50.00 C 128.01 49.96 112.00 50.06 95.99 49.95 C 94.12 49.98 92.23 49.93 90.41 50.34 C 88.22 54.05 86.50 58.25 82.87 60.85 C 73.46 68.85 58.08 68.47 49.22 59.81 C 46.25 57.21 44.85 53.43 42.73 50.21 C 35.91 49.42 28.99 50.67 22.20 49.60 C 15.26 47.64 14.91 36.10 21.94 33.95 C 28.72 32.23 35.86 34.16 42.71 32.94 C 44.97 29.49 46.61 25.52 49.85 22.81 M 63.32 34.12 C 56.99 36.45 57.07 46.16 62.70 49.22 C 65.17 50.16 68.00 50.11 70.52 49.39 C 73.84 47.68 75.46 43.66 74.83 40.07 C 74.41 34.85 67.77 32.10 63.32 34.12 M 130.37 150.45 C 125.27 151.88 123.75 158.64 126.14 162.91 C 128.25 166.43 133.18 167.23 136.81 165.90 C 141.61 164.64 142.31 158.29 140.69 154.36 C 139.16 150.30 134.12 149.42 130.37 150.45 Z"}))))},{title:"Src.",dataIndex:"source",align:"center",width:50,render:(ot,ut)=>{const kt=ut.type;return w.createElement(Aa,{placement:"right",title:p("5000.6038",{name:kt})||'数据来源"'+kt+'"'},w.createElement("a",{href:ut.url,target:"_blank"},w.createElement("img",{src:ut.image,width:"20px",height:"20px"})))}}],gi=ot=>{for(var ut=window.location.search.substring(1),kt=ut.split("&"),At=0;At<kt.length;At++){var Ze=kt[At].split("=");if(Ze[0]==ot)return Ze[1]}return!1},Gi=(ot,ut)=>{let At=WS(ag(ot,ut),ut).children;for(var Ze=[],qt=0;qt<At.length;qt++)At[qt]["3D"]&&Ze.push(At[qt].name);return Ze},Li=()=>{const ot=Object.keys(ne.current);Object.keys(ne.current).length!==0&&Wr(ot,ne.current,.2,0,void 0,!0)};w.useEffect(()=>{Li()},[f]);const oi=(ot,ut,kt,At,Ze,qt)=>{var Pt=new ka;if(Pt.setFromAxisAngle(new ye(1,0,0),Math.PI/2),!No.current[ut]){var dt=new iH;At=At||.1,dt.load(ot,function(Ht){Ht.scale.set(Do.current,Do.current,Do.current),Ht.applyQuaternion(Pt),Ze&&Ht.translateY(Ze*Do.current*.1),Ht.children[0].material.transparent=!0,Ht.children[0].material.opacity=At,Ht.children[0].material.depthTest=!1,Ht.children[0].material.color.set(kt);let wt=Ht.clone();if(ut!="Brain"){var fr=new si,Hn=new ye(1,0,0);fr.set(1-2*Hn.x*Hn.x,-2*Hn.x*Hn.y,-2*Hn.x*Hn.z,0,-2*Hn.x*Hn.y,1-2*Hn.y*Hn.y,-2*Hn.y*Hn.z,0,-2*Hn.x*Hn.z,-2*Hn.y*Hn.z,1-2*Hn.z*Hn.z,0,0,0,0,1),wt.applyMatrix4(fr),wt.translateX(-Ko.current),wt.translateY(Ao.current),wt.translateZ(-Io.current),wt.name=ut,wt.myMeshType="FBX",wt.children[0].name=ut,wt.children[0].myMeshType="FBX",es.current[ut]=wt,dg.current&&Ce.current.add(wt)}Ht.translateX(Ko.current),Ht.translateY(Ao.current),Ht.translateZ(-Io.current),Ht.name=ut,Ht.myMeshType="FBX",Ht.children[0].name=ut,Ht.children[0].myMeshType="FBX",No.current[ut]=Ht,Ce.current.add(No.current[ut]);var Un=new ye,Ne=new ns().setFromObject(Ht);Ne.getCenter(Un);var fe=new ye;Ne.getSize(fe);var tt=fe.x*fe.y*fe.z;RT.current[ut]=[Un,tt];for(var Xe=LT(ut,he.current),st=0;st<Xe.length;st++)if(o!=null&&o.current&&ne.current[Xe[st]])if(q.current||de.current){Ht.translateOnAxis(ne==null?void 0:ne.current[Xe[st]].axis,o.current*(ne==null?void 0:ne.current[Xe[st]].length));var nn=ne==null?void 0:ne.current[Xe[st]].axis.clone();nn.x=nn.x*-1,wt.translateOnAxis(nn,o.current*(ne==null?void 0:ne.current[Xe[st]].length))}else{var nn=ne[Xe[st]].axis.clone();nn.x=nn.x*-1,wt.translateOnAxis(nn,o.current*(ne==null?void 0:ne.current[Xe[st]].length)),Ht.translateOnAxis(ne==null?void 0:ne.current[Xe[st]].axis,o.current*(ne==null?void 0:ne.current[Xe[st]].length))}No.current[ut]=Ht;let vn=Gi(ut,he.current);for(var on=!0,pn=0;pn<vn.length;pn++)vn[pn]in No.current||(on=!1);if(on){for(var Nt=0,pn=0;pn<vn.length;pn++){var Xt=vn[pn];if(!q.current)if(de.current){let hr=new ye(0,0,5);ne.current[Xt]={axis:RT.current[Xt][0].clone().sub(hr).applyAxisAngle(new ye(1,0,0),-1*Math.PI/2).normalize(),length:Math.cbrt(RT.current[Xt][1])}}else se.current;Nt=Nt+ne.current[Xt].length}if(!(de.current||q.current))for(pn=0;pn<vn.length;pn++)ne.current[vn[pn]].length=ne.current[vn[pn]].length/Nt*vn.length;var li=setInterval(function(){if(o!=null&&o.current&&Ae.current<(o==null?void 0:o.current)){Ae.current=Ae.current+.2;let Dr;Ae.current>(o==null?void 0:o.current)&&(Dr=(o==null?void 0:o.current)-Ae.current+.2,Ae.current=o.current),Wr(vn,ne.current,.2,0,Dr)}else Ae.current=0,clearInterval(li)},20)}qt&&qt()})}},Wr=(ot,ut,kt,At,Ze,qt=!1)=>{var Pt,dt;if(q.current||de.current)var Ht=.2;else var Ht=kt;for(var wt in ot){var fr=ot[wt];Pt=No.current[fr],dt=es.current[fr];var Hn=ut[fr].axis,Un=Hn.clone();Un.x=Un.x*-1;var Ne=ut[fr].length;if(qt&&o){No.current[ot[wt]].locationLength=o==null?void 0:o.current,No.current[ot[wt]].position.set(0,0,0),No.current[ot[wt]].translateX(Ko.current),No.current[ot[wt]].translateY(Ao.current),No.current[ot[wt]].translateZ(-Io.current),No.current[ot[wt]].translateOnAxis(Hn,(o==null?void 0:o.current)*Ne),es.current[ot[wt]].position.set(0,0,0),es.current[ot[wt]].translateX(-Ko.current),es.current[ot[wt]].translateY(Ao.current),es.current[ot[wt]].translateZ(-Io.current),es.current[ot[wt]].locationLength=o==null?void 0:o.current,es.current[ot[wt]].translateOnAxis(Un,(o==null?void 0:o.current)*Ne);continue}switch(At){case 0:Ze?(No.current[ot[wt]].translateOnAxis(Hn,Ze*Ne),es.current[ot[wt]].translateOnAxis(Un,Ze*Ne)):(No.current[ot[wt]].translateOnAxis(Hn,Ht*Ne),es.current[ot[wt]].translateOnAxis(Un,Ht*Ne));break;case 1:Ht<=0?(Pt.translateOnAxis(Hn,-1*Math.sqrt(Math.abs(Ht*Ne))),dt.translateOnAxis(Un,-1*Math.sqrt(Math.abs(Ht*Ne)))):(Pt.translateOnAxis(Hn,Math.sqrt(Ht*Ne)),dt.translateOnAxis(Un,Math.sqrt(Ht*Ne)));break;case 2:Ht<=0?(Pt.translateOnAxis(Hn,-1*Math.pow(Ht,2)*Ne),dt.translateOnAxis(Un,-1*Math.pow(Ht,2)*Ne)):(Pt.translateOnAxis(Hn,Math.pow(Ht,2)*Ne),dt.translateOnAxis(Un,Math.pow(Ht,2)*Ne));break}}},wi=ot=>{for(let ut=0;ut<ot.length;ut++){const kt=ot[ut],{key:At,cname:Ze}=kt;localStorage.getItem("lang")=="zh_cn"&&Ze?_e.current.push({key:At,title:Ze}):_e.current.push({key:At,title:At}),kt.children&&wi(kt.children)}},ca=ot=>{const{value:ut}=ot.target;if(ut!=""){Re.current=!1,I7=[];const kt=_e.current.map(Ze=>Ze.title.toLowerCase().indexOf(ut.toLowerCase())>-1?ag(Ze.key,n):null).filter((Ze,qt,Pt)=>!!(Ze&&Pt.indexOf(Ze)===qt));let At=[];for(let Ze in kt){let qt=kt[Ze];if(qt){let Pt=LT(qt,n);ut.length===1?(Pt.length>2&&(Pt=Pt.slice(Pt.length-3,Pt.length)),At.push(...Pt)):At.push(qt,...Pt)}}At.filter((Ze,qt,Pt)=>!!(Ze&&Pt.indexOf(Ze)===qt)),B(At),K(!0),W(ut)}else B(le.current),W(""),Re.current=!0},wa=(ot,ut)=>(...At)=>{clearTimeout(F.current),F.current=setTimeout(()=>{ot(...At)},ut)},Xa=wa(ca,50),so=ot=>{B(ot),I7=[],K(!1)},_s=(ot,ut)=>{Z.current[ot]&&Z.current[ot].children[0].material.color.set(ut)},po=w.useCallback((ot,ut,kt,At)=>{let Ze=ot,qt="",Pt;if(s!=="swc"){if(Ze=ut.node.name,qt=ut.node.path,Pt=ut.node.color,Ze===Y.current[0]&&S===2)return;if(b){const Ne=b.current.indexOf(Ze);Ne>-1?b.current.splice(Ne,1):Y.current.length!==0&&b.current.push(Ze)}let Ht=m.findIndex(Ne=>Ne==Ze),wt=JSON.parse(JSON.stringify(m));Ht>-1?wt.splice(Ht,1):wt.push(Ze),g(wt),Y.current=wt;let fr=new URL(window.location.href),Hn=new URLSearchParams(fr.search);const Un=JSON.stringify(wt);s==="fbx"?Hn.set("regionsChecked",Un):s==="vessel"&&Hn.set("vesselsChecked",Un),fr.search=Hn.toString(),window.history.replaceState({},"",fr)}const dt=document.getElementById("spinner");switch(s){case"vessel":{Ze=="Unnamed vein"&&(Ze="Unnamed_Vein");let Ht=qt+Ze+".js";ut.checked?(Lm=!0,dt&&(dt.style.display="block"),yr(Ht,8,Pt,Ze,function(){dt&&(dt.style.display="none")})):(Lm=!1,dt&&(dt.style.display="none"),Bn(Ze));break}case"swc":{if(kt)if(At){let Ht=ut.map(wt=>new Promise((fr,Hn)=>{if(ut)if(Z.current[wt.name])fr("");else{g(Xe=>[...Xe,wt.name]);let Un=new URL(window.location.href),Ne=new URLSearchParams(Un.search);const fe=[...m,wt.name],tt=JSON.stringify(fe);Ne.set("neuronsChecked",tt),Un.search=Ne.toString(),window.history.replaceState({},"",Un),dt&&(dt.style.display="block"),gn(wt.path,6,wt.name,wt.color,function(){_s(wt.name,"#045404"),fr("")})}else{Lm=!1,Ke(wt.name);let Un=new URL(window.location.href),Ne=new URLSearchParams(Un.search);const tt=JSON.stringify([]);Ne.set("neuronsChecked",tt),Un.search=Ne.toString(),window.history.replaceState({},"",Un),fr("")}}));Promise.all(Ht).then(()=>{dt&&(dt.style.display="none")})}else{Y.current.push(ot.name),dt&&(dt.style.display="block"),g(Hn=>[...Hn,ot.name]);let Ht=new URL(window.location.href),wt=new URLSearchParams(Ht.search);const fr=JSON.stringify(Y.current);wt.set("neuronsChecked",fr),Ht.search=wt.toString(),window.history.replaceState({},"",Ht),gn(ot.path,6,ot.name,ot.color,function(){_s(ot.name,"#045404"),dt&&(dt.style.display="none")})}else if(At)ut.forEach(Ht=>{if(ut){g(Un=>Un.filter(Ne=>Ne!==Ht.name)),Y.current=Y.current.filter(Un=>Un!==Ht.name),Ke(Ht.name);let wt=new URL(window.location.href),fr=new URLSearchParams(wt.search);const Hn=JSON.stringify(Y.current);if(fr.set("neuronsChecked",Hn),wt.search=fr.toString(),window.history.replaceState({},"",wt),T&&Ht.name in T.current){ee(Un=>Un.filter(Ne=>Ne!==Ht.name));for(let Un in T.current[Ht.name])Ce.current.remove(T.current[Ht.name][Un]);delete T.current[Ht.name]}}});else{if(T&&ot.name in T.current){ee(Hn=>Hn.filter(Un=>Un!==ot.name));for(let Hn in T.current[ot.name])Ce.current.remove(T.current[ot.name][Hn]);delete T.current[ot.name]}Ke(ot.name),Y.current=Y.current.filter(Hn=>Hn!==ot.name),g(Hn=>Hn.filter(Un=>Un!==ot.name));let Ht=new URL(window.location.href),wt=new URLSearchParams(Ht.search);const fr=JSON.stringify(Y.current);wt.set("neuronsChecked",fr),Ht.search=wt.toString(),window.history.replaceState({},"",Ht)}break}case"soma":{S0e(Ze,Mr).forEach(wt=>{ut.checked?(Lm=!0,Z.current[Ze]||(h!=null&&h.current?ii(qt,wt.color,Ze):ii(U+"/data/json/"+Ze,wt.color,Ze))):(Lm=!1,Ke(Ze))});break}case"fbx":{let Ht=parseInt(ut.node.z),wt=U+"/data/FBX/"+Pn(Ze)+".FBX";ut.checked?(dt&&(dt.style.display="block"),qh(wt,Ze,Pt,.8,Ht,"FBX",function(){dt&&(dt.style.display="none")})):ri(Ze)}}},[m]),Ws=()=>{if(he.current.length>0&&s!=="swc"&&m.length>0&&(s==="fbx"||s==="vessel"))return new Promise((ot,ut)=>{const kt=document.getElementById("spinner");let At=0;for(let Ze=0;Ze<m.length;Ze++){let qt=WS(m[Ze],he.current);if(qt){let Pt={node:{...qt,checked:!0}};if(s==="fbx"){let dt=U+"/data/FBX/"+Pn(qt.key)+".FBX";qh(dt,qt.key,qt.color,.8,qt.z,"FBX",function(){kt&&(kt.style.display="none"),At+=1,At===m.length&&ot("")})}else if(s==="vessel"){let dt=qt.name,Ht=Pt.node.path;dt=="Unnamed vein"&&(dt="Unnamed_Vein");let wt=Ht+dt+".js";Lm=!0,kt&&(kt.style.display="block"),yr(wt,8,qt.color,dt,function(){kt&&(kt.style.display="none"),At+=1,At===m.length&&ot("")})}}}}).then(ot=>{if(mse){let ut=JSON.parse(mse);for(let kt=0;kt<ut.length;kt++){let At=WS(ut[kt],he.current);At&&Ar({stopPropagation:()=>{}},At.key,`${At.key}`,At.color,At.z)}}})},Fr=()=>{if(A7&&JSON.parse(A7).length!=0){const ot=document.getElementById("spinner"),ut=JSON.parse(A7);let kt=0;ot&&(ot.style.display="block");for(let At=0;At<ut.length;At++){let Ze=n.find(qt=>qt.name===ut[At]);Ze&&(It.current[ut[At]]?Ze.color=It.current[ut[At]].replace("!","#"):Ze.color="#045404",gn(Ze.path,6,Ze.name,Ze.color,function(){if(_s(Ze.name,Ze.color),yse){const qt=JSON.parse(yse);for(let Pt=0;Pt<qt.length;Pt++)Ze.name==qt[Pt]&&jt(Ze.name)}kt++,kt===ut.length&&ot&&(ot.style.display="none")}))}}};w.useEffect(()=>{!Ct.current&&n&&n.length>0&&(Fr(),Ws(),Ct.current=!1)},[n]);const ri=(ot,ut=!1)=>{No.current[ot]&&(Ce.current.remove(No.current[ot]),No.current[ot].children[0].geometry.dispose(),ut&&delete No.current[ot]),es.current[ot]&&(Ce.current.remove(es.current[ot]),es.current[ot].children[0].geometry.dispose(),ut&&delete es.current[ot]),ne.current[ot]&&ut&&delete ne.current[ot]},Lt=(ot,ut)=>{const kt={},At={};for(const Ze in ot){const qt=ot[Ze];for(const Pt of qt)if(Pt.name==ut){if(Pt.color==="#1771FF"){kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}if(Pt.color==="#A7B5A1"){kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}kt[Ze]={point:Pt.point,color:Pt.color,type:Pt.type}}}for(const Ze in ot){const qt=ot[Ze];for(const Pt of qt)if(Pt.name==ut){if(Pt.type=="cell"){At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type};break}Pt.type==="end"&&(Pt.point[0]<570?At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type}:At[Ze+"_111"]={point:Pt.point,color:Pt.color,type:Pt.type}),!At[Ze]&&!At[Ze+"_111"]&&Pt.point[0]<570&&(At[Ze]={point:Pt.point,color:Pt.color,type:Pt.type})}}return[kt,At]},lt=(ot,ut)=>{if(Object.keys(ot).length>0){const kt=Ai.current.position;let At=Ce.current.getObjectByName("DR-anterior"),Ze=0;At&&(Ze=kt.distanceTo(At.position));for(let qt in ot){let{point:Pt,color:dt,type:Ht}=ot[qt];swt.load(U+"/fonts/helvetiker_bold.typeface.json",function(wt){const fr=new s0e(qt.replace("_111",""),{font:wt,size:.3,height:.01}),Hn=new zs({color:dt,specular:0,shininess:0}),Un=new kn(fr,Hn),Ne=Ze<6?.2:Ze<9?.3:.5;Un.scale.set(Ne,Ne,Ne),Un.position.set(Pt[0]*.01,Pt[1]*.01,Pt[2]*.01),Un.name="lineNameMesh",Un.userData.name=qt.replace("_111",""),Un.userData.wholeName=`${ut}-${qt.replace("_111","")}`,Un.userData.initColor=dt,Un.userData.type=Ht,Un.translateY(Io.current),Un.translateZ(Ao.current),Un.translateX(Ko.current),fr.center(),T!=null&&T.current&&T.current[ut].push(Un),Ce.current.add(Un)})}}else setTimeout(()=>{const[kt,At]=Lt(Je.current,ut);lt(At,ut)},100)},jt=(ot,ut,kt)=>{let At=new URL(window.location.href),Ze=new URLSearchParams(At.search),qt,Pt;if(kt?[qt,Pt]=Lt(kt,ot):[qt,Pt]=Lt(Je.current,ot),T!=null&&T.current){const dt=document.getElementById("spinner");if(ot in T.current){for(let wt in T.current[ot])ee(fr=>fr.filter(Hn=>Hn!==ot)),Ce.current.remove(T.current[ot][wt]);const Ht=pe.filter(wt=>wt!==ot);Ze.set("neuronsText",JSON.stringify(Ht)),delete T.current[ot]}else{if(T.current[ot]=[],ee(Ht=>[...Ht,ot]),Ze.set("neuronsText",JSON.stringify([...pe,ot])),!(ot in Z.current)){g(fr=>[...fr,ot]),Y.current=[...Y.current,ot];const Ht=JSON.stringify(Y.current);Ze.set("neuronsChecked",Ht);let wt=Gr(Mr,ot);if(dt&&(dt.style.display="block"),!Z.current[ot]){let fr=wt.color;wt.path&&fr&&gn(wt.path,6,ot,fr,function(){fr&&_s(ot,fr),dt&&(dt.style.display="none")})}}lt(Pt,ot)}At.search=Ze.toString(),window.history.replaceState({},"",At)}},Ke=ot=>{Z.current[ot]&&(Ce.current.remove(Z.current[ot]),Z.current[ot]=null,delete Z.current[ot]);const ut=Ce.current.getObjectByName(`swcPointGroup${ot}`);ut&&Ce.current.remove(ut)},Kt=ot=>ot.map(ut=>({value:ut.name+" "+ut.fullname,title:w.createElement(Aa,{placement:"right",title:ut.fullname},w.createElement("div",{style:{whiteSpace:"nowrap",display:"flex",alignItems:"center",lineHeight:"2.4"}},ut.name," ",ut.fullname)),children:ut.children?Kt(ut.children):void 0})),Bn=ot=>{Ce.current.remove(wm),Ce.current.remove(Dc),i.current[ot]&&(Ce.current.remove(i.current[ot].contentobj),i.current[ot].contentobj.traverse(function(ut){ut.type=="Mesh"&&(ut.geometry.dispose(),ut.geometry=null)}),i.current[ot].contentmaterial.dispose(),i.current[ot].contentmaterial=null,i.current[ot]=null,delete i.current[ot])},yr=(ot,ut,kt,At,Ze)=>{i.current[At]?(Ce.current.add(i.current[At].obj),Ze&&Ze()):fetch(ot).then(qt=>qt.json()).then(qt=>{var Pt=new Hu,dt=new Qme({color:kt}),Ht=!1;qt.line.length>1e4&&(Ht=!0);let wt=1;for(let Hn=0;Hn<qt.line.length;Hn++)qt.line[Hn].layer>wt&&(wt=qt.line[Hn].layer);wt++;for(let Hn=0;Hn<qt.line.length;Hn++){let Un=(wt-qt.line[Hn].layer)*20/wt,Ne=0,fe=[];for(let pn=qt.line[Hn].start;pn<=qt.line[Hn].end;pn++){let Nt=qt.position[pn].x,Xt=qt.position[pn].y,li=qt.position[pn].z;Ne++,fe.push(new ye(Nt,Xt,li))}let tt=new Gme(fe);Ne=Ht?Math.ceil(Ne/5):Ne;const Xe=new fL,st=new kn(new Qz(tt,Ne,Un,ut,!1),dt);st.scale.set(1,1,1),Xe.addLevel(st,0);const nn=80,vn=[fe[0]];for(let pn=1;pn<fe.length;pn++){const Nt=vn[vn.length-1],Xt=fe[pn];(Nt.distanceTo(Xt)>nn||pn===fe.length-1)&&vn.push(Xt)}const on=new xa(new Zi().setFromPoints(vn),new yh({color:kt}));on.scale.set(1,1,1),Xe.addLevel(on,10),Xe.name=At,Xe.myMeshType="Vessel",Xe.autoUpdate=!1,Pt.add(Xe)}Pt.scale.set(Do.current*.1,Do.current*.1,Do.current*.1),Pt.translateX(Ko.current),Pt.translateY(Io.current),Pt.translateZ(Ao.current),Pt.name=At,Pt.myMeshType="Vessel",Ce.current.add(Pt);let fr={contentobj:Pt,contentmaterial:dt};i.current[At]=fr,Ze&&Ze()})},Hr=ot=>{ot=ot.replace("#","");const ut=parseInt(ot.slice(0,2),16),kt=parseInt(ot.slice(2,4),16),At=parseInt(ot.slice(4,6),16),Ze=ut/255,qt=kt/255,Pt=At/255;return new ye(Ze,qt,Pt)},ii=(ot,ut,kt,At)=>{fetch(ot).then(Ze=>Ze.json()).then(Ze=>{let qt=new Q1,Pt=new Zi,dt=[];for(let wt=0;wt<Ze.position.length;wt++){let fr=Ze.position[wt].split(","),Hn=fr[0],Un=fr[1],Ne=fr[2];dt.push(Hn*Do.current*.099,Un*Do.current*.099,Ne*Do.current*.099)}Pt.setAttribute("position",new pa(dt,3)),Hr(ut);let Ht=new Zz({size:te.current/100,color:new Qr(ut)});qt=new Q1(Pt,Ht),qt.translateX(Ko.current),qt.translateY(Io.current),qt.translateZ(Ao.current-.45),qt.name=kt,Z.current[kt]=qt,Ce.current.add(qt)}),At&&At()},Nn=ot=>{ft.current=!0;let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);kt.set("neuronsProjects",JSON.stringify(ot)),ut.search=kt.toString(),window.history.replaceState({},"",ut),ot!=""?W(ot):(W(ot),B(le.current))},On=wa(Nn,50),rr=ot=>{ft.current=!0;let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);kt.set("neuronsSomaLocates",JSON.stringify(ot)),ut.search=kt.toString(),window.history.replaceState({},"",ut),ot!=""?re(ot):(re(ot),B(le.current))},Vt=wa(rr,50),_n=()=>{let ot=[No.current,es.current,ne.current];for(let Ze of ot)for(let qt in Ze)qt!="Brain"&&ri(qt,!0);ee([]),Object.keys(Z.current).forEach(Ze=>{for(let qt in T==null?void 0:T.current[Ze])Ce.current.remove(T==null?void 0:T.current[Ze][qt]);Ke(Ze)}),Object.keys(i.current).forEach(Ze=>{Bn(Ze)}),g([]),T&&(T.current={}),Y.current=[];let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);const At=JSON.stringify(Y.current);s==="fbx"?kt.set("regionsChecked",At):s==="vessel"?kt.set("vesselsChecked",At):s==="swc"&&(kt.set("neuronsChecked",At),kt.set("neuronsText",At)),ut.search=kt.toString(),window.history.replaceState({},"",ut)},Wn=(ot,ut)=>{let kt=0;for(const At of ot.toLowerCase())if(At===ut[kt]&&(kt++,kt===ut.length))return!0;return!1},Rn=ot=>{if(ot){const ut=ot.toLowerCase(),kt=ce.current.map(At=>{const Ze=At.name&&At.name.toLowerCase()===ut,qt=At.fullname&&Wn(At.fullname,ut);return{...At,matchPriority:Ze?1:qt?2:3}}).filter(At=>At.matchPriority<3).sort((At,Ze)=>At.matchPriority-Ze.matchPriority).map(At=>({value:`${At.name} ${At.fullname}`,label:`${At.name} ${At.fullname}`}));ue(kt)}else ue([])};w.useEffect(()=>{ft.current&&(J?oe.current&&oe.current.focus():Me.current&&Me.current.focus())},[J]),w.useEffect(()=>{ft.current&&(G?Ve.current&&Ve.current.focus():we.current&&we.current.focus())},[G]);const Gr=(ot,ut)=>{let kt=null,At=null;for(let Ze=0;Ze<ot.length;Ze++)if(ot[Ze].name==ut)return kt=ot[Ze].path,At=ot[Ze].color,{path:kt,color:At};return{path:kt,color:At}},Vr={emptyText:w.createElement(Om,{description:w.createElement("div",{style:{color:"#ccc"}},"Neurons that meet the filter criteria entered in the input boxes above will be displayed here.")})},Zr={selectedRowKeys:m,onSelectAll:(ot,ut,kt)=>{po(ut,kt,ot,!0)},onSelect:(ot,ut,kt)=>{po(ot,kt,ut,!1)},getCheckboxProps:ot=>({name:ot.name})},ta=ot=>{let ut=new URL(window.location.href),kt=new URLSearchParams(ut.search);const At=JSON.stringify(ot);kt.set("neuronsFilterInfo",At),ut.search=kt.toString(),window.history.replaceState({},"",ut),at(ot)},Za=ot=>{zt(ot)};return w.createElement("div",{ref:c,style:{transition:"all ease-in 0.5s"}},s==="swc"?w.createElement(w.Fragment,null,J?w.createElement(R9,{ref:oe,style:{width:"100%",marginBottom:8},options:Fe,placeholder:p("5000.5040")||"Input the region that soma locates",onSearch:Rn,onChange:Vt,value:J}):w.createElement(sL,{ref:Me,showSearch:!0,style:{width:"100%",marginBottom:8},value:J,dropdownStyle:{maxHeight:400,overflow:"hidden"},placeholder:p("5000.5040")||"Input the region that soma locates",allowClear:!0,treeDefaultExpandAll:!1,onChange:rr,onSearch:rr,treeData:Kt(r)}),G?w.createElement(R9,{ref:Ve,style:{width:"100%",marginBottom:8},options:Fe,placeholder:p("5000.5041")||"Input the region that neuron projects",onSearch:Rn,onChange:On,value:G}):w.createElement(sL,{showSearch:!0,ref:we,style:{width:"100%"},value:G,dropdownStyle:{maxHeight:400,overflow:"hidden",marginBottom:8},placeholder:p("5000.5041")||"Input the region that neuron projects",allowClear:!0,treeDefaultExpandAll:!1,onChange:Nn,onSearch:Nn,treeData:Kt(r)}),k&&w.createElement(w.Fragment,null,w.createElement(sL,{treeData:ct,value:ht,onChange:ta,treeCheckable:!0,placeholder:"Filter by data information",style:{width:"100%",marginTop:8}}),w.createElement(Eo,{style:{marginTop:"5px"}},w.createElement(ab,{onChange:ot=>{wn(ot.target.checked)}},p("7000.7025")||"只展示可用神经元"),w.createElement(Eo,{style:{fontStyle:"italic",marginTop:"5px"}},p("7000.7026")||"点击Color按钮,修改神经元颜色;点击Ana.按钮,显示神经元投射路径分析结果;点击Path按钮,在主界面显示神经元经过的脑结构;Src按钮展示了神经元数据的来源"))),w.createElement("div",null,w.createElement($s,{className:"Echart",open:pt,onOk:()=>{Qe(!1)},onCancel:()=>{Qe(!1)},width:"auto",footer:null},w.createElement(k2,{activeKey:In,onChange:Za},w.createElement(_7,{tab:p("5000.7009")||"神经元末梢分布",key:"1"},mt&&w.createElement(ia,null,"Isocortex"),w.createElement(cf,{ref:Se,className:"Isocortex",Name:"Isocortex",t:p,data_change:Ue,data_c:Je.current,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),St&&w.createElement(ia,null,"HPF"),w.createElement(cf,{ref:Ln[0],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["CA1_","CA1_dd","CA1_d","CA1_i","CA1_v","CA1_vv","CA2_dd","CA2_d","CA2_i","CA2_v","CA2_vv","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv"],row:["so","sp","slu","sr","slm"]}),w.createElement(cf,{ref:Ln[1],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),w.createElement(cf,{ref:Ln[2],className:"HPF",Name:"HPF",t:p,data_change:Ue,data_c:Je.current,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),bn&&w.createElement(ia,null,"CNU"),w.createElement(cf,{ref:nr,className:"CNU",Name:"CNU",t:p,data_change:Ue,data_c:Je.current,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),Zn&&w.createElement(ia,null,"OLF"),w.createElement(cf,{ref:Mn[0],className:"OLF",Name:"OLF",t:p,data_change:Ue,data_c:Je.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),w.createElement(cf,{ref:Mn[1],className:"OLF",Name:"OLF",t:p,data_change:Ue,data_c:Je.current,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),Dn&&w.createElement(ia,null,"TH"),w.createElement(cf,{ref:qe,className:"TH",Name:"TH",t:p,data_change:Ue,data_c:Je.current,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),An&&w.createElement(ia,null,"HY"),w.createElement(cf,{ref:je,className:"HY",Name:"HY",t:p,data_change:Ue,data_c:Je.current,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),zr&&w.createElement(ia,null,"MB"),w.createElement(cf,{ref:Ye,className:"MB",Name:"MB",t:p,data_change:Ue,data_c:Je.current,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),rn&&w.createElement(ia,null,"HB"),w.createElement(cf,{ref:gt,className:"HB",Name:"HB",t:p,data_change:Ue,data_c:Je.current,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Ot&&w.createElement(ia,null,"CB"),w.createElement(cf,{ref:Jn[0],className:"CB",Name:"CB",t:p,data_change:Ue,data_c:Je.current,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),w.createElement(cf,{ref:Jn[1],className:"CB",Name:"CB",t:p,data_change:Ue,data_c:Je.current,col:["FN","IP","DN","VeCB"],row:["_"]})),w.createElement(_7,{tab:p("5000.7011")||"神经元投射模式",key:"2"},r?w.createElement(awt,{data:Mt,fbxTreeDatas:r}):null),w.createElement(_7,{tab:p("5000.7012")||"投射长度分布",key:"3"},mt&&w.createElement(ia,null,"Isocortex"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["RSPv_","FRP_","MOp_","MOs_","SSp_","SSp-n_","SSp-bfd_","SSp-ll_","SSp-m_","SSp-ul_","SSp-tr_","SSp-un_","SSs_","GU_","VISC_","AUDd_","AUDp_","AUDpo_","AUDv_","VISal_","VISam_","VISl_","VISp_","VISpl_","VISpm_","VISli_","VISpor_","ACAd_","ACAv_","PL_","ILA_","ORB_","AId_","AIp_","AIv_","RSPagl_","RSPd_","PTLp_","TEa_","PERI_","ECT_"],row:["1","2/3","5","6a","6b"]}),St&&w.createElement(ia,null,"HPF"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["CA1_d","CA1_i","CA1_v","CA1_","CA3_dd","CA3_d","CA3_i","CA3_v","CA3_vv","CA2_"],row:["so","sp","slu","sr","slm"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["DG_d","DG_i","DG_V"],row:["mo","sg","po"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SUBd_1","SUBv_1","SUBd_2","SUBv_2","SUBd_3","SUBv_3","SUBd_4","SUBv_4","SUBd_","SUBv_"],row:["sp","sr","m"]}),bn&&w.createElement(ia,null,"CNU"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["CP_","ACBv_","ACBd_","FS_","OTisl_","OTislm_","OT1","OT2","OT3","LSc","LSr_","SF","SH","AAA","BA","CEAc","CEAm","IA","MEAad","MEAav","MEApd","MEApv","GPe","GPi","SI","MA","NDB","TRS","PALc","BSTse","BAC"],row:["_"]}),Zn&&w.createElement(ia,null,"OLF"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["gr","mi","ipl","opl","gl"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["MOB_","AOB_","AON_","TTv_","TTd_","DP_","PIR_","NLOT_","NLOT_","COAa_","COApm_","COApl_","PAA_","TR_"],row:["1","2","3","4","5","6a","2/3"]}),Dn&&w.createElement(ia,null,"TH"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["VAL","VM","VPL","VPLpc","VPM","VPMpc","PoT","SPFm","SPFp","SPA","PP","MGd","MGv","MGm","LGdsh","LGdco","LGdip","LP","PO","POL","SGN","Eth","REth","AV","AMd","AMv","AD","IAM","IAD","LD","IMD","MDc","MDl","MDm","SMT","PR","PVT","PT","RE","Xi","RH","CM","PCN","CL","PF","PIL","RT","IGL","IntG","LGvl","LGvm","SubG","MH","LH","PIN"],row:["_"]}),An&&w.createElement(ia,null,"HY"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SO","NC","PVHam","PVHmm","PVHpmm","PVHpml","PVHap","PVHmpd","PVHpv","PVa","PVi","ARH","ADP","AHA","AVP","DMHa","DMHp","DMHv","MEPO","MPO","OV","PD","PS","PSCH","PVp","PVpo","SBPV","SCH","SFO","VMPO","VLPO","AVPV","AHNa","AHNc","AHNd","AHNp","LM","MMme","MMl","MMm","MMp","MMd","SUMm","SUMl","TMd","TMv","MPNc","MPNl","MPNm","PMd","PMv","PVHdp","PVHf","PVHlp","PVHmpv","VMHa","VMHc","VMHdm","VMHvl","PH","LHA","LPO","PST","PSTN","RCH","PeF","STN","TU","A13","FF","ZIr","ZIc","ZId","ZIv","ME"],row:["_"]}),zr&&w.createElement(ia,null,"MB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["SCop","SCsg","SCzo","ICc","ICd","ICe","NB","SAG","PBG","MEV","SCO","SNr","VTA","RR","MRNm","MRNmg","MRNp","SCdg","SCdw","SCiw","SCig-a","SCig-b","SCig-c","PRC","INC","ND","Su3","PAGdm","PAGl","PAGvl","PAGdl","PAGvm","APN","MPT","NOT","NPC","OP","PPT","RPF","InCo","CUN","RN","III","MA3","EW","IV","PA4","VTN","AT","LT","DT","MT","SNl","SNc","PPN","IF","IPR","IPC","IPA","IPL","IPI","IPDM","IPDL","IPRL","RL","CLI","DR"],row:["_"]}),rn&&w.createElement(ia,null,"HB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["NLLd","NLLh","NLLv","PSV","KF","PBlc","PBld","PBle","PBls","PBlv","PBme","PBmm","PBmv","POR","SOCm","SOCl","B","DTN","LTN","PDTg","PCG","PG","PRNc","PRNv","SG","SSN","SUT","TRN","V","P5","Acs5","PC5","I5","CSl","CSm","LC","LDT","NI","PRNr","RPO","SLC","SLD","AP","CNlam","CNspg","DCO","VCO","CU","GR","ECU","NTB","NTSce","NTSco","NTSge","NTSl","NTSm","SPVC","SPVI","SPVOcdm","SPVOmdmd","SPVOmdmv","SPVOrdm","SPVOvl","Pa5","z","VI","ACVI","VII","ACVII","EV","AMBd","AMBv","DMX","ECO","GRN","ICB","IO","LRNm","LRNp","ISN","LIN","IRN","MARN","MDRNd","MDRNv","PARN","PAS","PGRNd","PGRNl","NIS","NR","PRP","PMR","PPYd","PPYs","LAV","MV","SPIV","SUV","XII","x","y","RM","RPA","RO"],row:["_"]}),Ot&&w.createElement(ia,null,"CB"),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["LING_","LING_","CENT2_","CENT2_","CENT3_","CENT3_","CUL4/5_","CUL4/5_","DEC_","DEC_","FOTU_","FOTU_","PYR_","PYR_","UVU_","UVU_","NOD_","NOD_","SIM_","SIM_","ANcr1_","ANcr1_","ANcr2_","ANcr2_","PRM_","PRM_","COPY_","COPY_","PFL_","PFL_","FL_","FL_","IP","DN"],row:["gr","mo"]}),w.createElement(df,{t:p,data_change:Ue,data_c:Mt,col:["FN","IP","DN","VeCB"],row:["_"]})))),w.createElement(Tz,{className:"SwcTable",rowSelection:Zr,columns:mr,dataSource:Mr,locale:Vr}))):w.createElement(w.Fragment,null,w.createElement(owt,{style:{marginBottom:8},placeholder:"Search",onChange:Xa}),w.createElement(b_,{showLine:!0,onExpand:so,defaultExpandParent:!0,expandedKeys:V,onCheck:po,checkable:!0,selectable:!1,treeData:Mr,checkedKeys:m,checkStrictly:!0,autoExpandParent:j,style:{paddingLeft:"2px"}})))});let cwt=new URL(window.location.href),uwt=new URLSearchParams(cwt.search),xse=uwt.get("brainContourOpacity");const dwt=t=>{const{regionData:e}=t,[n,r]=w.useState(!1);return w.useEffect(()=>{let i=xse?JSON.parse(xse):.3;Pm({filepath:e+"/data/FBX/outline.FBX",index:"Brain",color:"0xcccccc",opacity:i,offsetZ:0,R:1,callback:function(){r(!1)}})},[]),w.createElement("div",{id:"spinner",style:{position:"absolute",zIndex:999,left:0,top:0,width:"100%",height:"100%",display:`${n?"block":"none"}`,opacity:.7,backgroundColor:"#ffffff"}},w.createElement("div",{style:{position:"absolute",zIndex:999,left:"50%",top:"50%",fontWeight:"bold",textAlign:"center"}},w.createElement(hz,{spinning:!0,size:"large"}),w.createElement("br",null),"Loading....wait..."))};(function(t){if(t.TextEncoder&&t.TextDecoder)return!1;function e(r="utf-8"){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextEncoder': The encoding label provided ('${r}') is invalid.`)}Object.defineProperty(e.prototype,"encoding",{value:"utf-8"}),e.prototype.encode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to encode: the 'stream' option is unsupported.");let a=0;const o=r.length;let s=0,c=Math.max(32,o+(o>>1)+7),u=new Uint8Array(c>>3<<3);for(;a<o;){let d=r.charCodeAt(a++);if(d>=55296&&d<=56319){if(a<o){const f=r.charCodeAt(a);(f&64512)===56320&&(++a,d=((d&1023)<<10)+(f&1023)+65536)}if(d>=55296&&d<=56319)continue}if(s+4>u.length){c+=8,c*=1+a/r.length*2,c=c>>3<<3;const f=new Uint8Array(c);f.set(u),u=f}if(d&4294967168)if(!(d&4294965248))u[s++]=d>>6&31|192;else if(!(d&4294901760))u[s++]=d>>12&15|224,u[s++]=d>>6&63|128;else if(!(d&4292870144))u[s++]=d>>18&7|240,u[s++]=d>>12&63|128,u[s++]=d>>6&63|128;else continue;else{u[s++]=d;continue}u[s++]=d&63|128}return u.slice(0,s)};function n(r="utf-8",i={fatal:!1}){if(r!=="utf-8")throw new RangeError(`Failed to construct 'TextDecoder': The encoding label provided ('${r}') is invalid.`);if(i.fatal)throw new Error("Failed to construct 'TextDecoder': the 'fatal' option is unsupported.")}Object.defineProperty(n.prototype,"encoding",{value:"utf-8"}),Object.defineProperty(n.prototype,"fatal",{value:!1}),Object.defineProperty(n.prototype,"ignoreBOM",{value:!1}),n.prototype.decode=function(r,i={stream:!1}){if(i.stream)throw new Error("Failed to decode: the 'stream' option is unsupported.");const a=new Uint8Array(r);let o=0;const s=a.length,c=[];for(;o<s;){const u=a[o++];if(u===0)break;if(!(u&128))c.push(u);else if((u&224)===192){const d=a[o++]&63;c.push((u&31)<<6|d)}else if((u&240)===224){const d=a[o++]&63,f=a[o++]&63;c.push((u&31)<<12|d<<6|f)}else if((u&248)===240){const d=a[o++]&63,f=a[o++]&63,h=a[o++]&63;let p=(u&7)<<18|d<<12|f<<6|h;p>65535&&(p-=65536,c.push(p>>>10&1023|55296),p=56320|p&1023),c.push(p)}}return String.fromCharCode.apply(null,c)},t.TextEncoder=e,t.TextDecoder=n})(typeof window<"u"?window:typeof self<"u"?self:globalThis);function Sse(t,e="utf8"){return new TextDecoder(e).decode(t)}const fwt=new TextEncoder;function hwt(t){return fwt.encode(t)}const pwt=1024*8,vwt=(()=>{const t=new Uint8Array(4),e=new Uint32Array(t.buffer);return!((e[0]=1)&t[0])})(),M7={int8:globalThis.Int8Array,uint8:globalThis.Uint8Array,int16:globalThis.Int16Array,uint16:globalThis.Uint16Array,int32:globalThis.Int32Array,uint32:globalThis.Uint32Array,uint64:globalThis.BigUint64Array,int64:globalThis.BigInt64Array,float32:globalThis.Float32Array,float64:globalThis.Float64Array};class MN{constructor(e=pwt,n={}){let r=!1;typeof e=="number"?e=new ArrayBuffer(e):(r=!0,this.lastWrittenByte=e.byteLength);const i=n.offset?n.offset>>>0:0,a=e.byteLength-i;let o=i;(ArrayBuffer.isView(e)||e instanceof MN)&&(e.byteLength!==e.buffer.byteLength&&(o=e.byteOffset+i),e=e.buffer),r?this.lastWrittenByte=a:this.lastWrittenByte=0,this.buffer=e,this.length=a,this.byteLength=a,this.byteOffset=o,this.offset=0,this.littleEndian=!0,this._data=new DataView(this.buffer,o,a),this._mark=0,this._marks=[]}available(e=1){return this.offset+e<=this.length}isLittleEndian(){return this.littleEndian}setLittleEndian(){return this.littleEndian=!0,this}isBigEndian(){return!this.littleEndian}setBigEndian(){return this.littleEndian=!1,this}skip(e=1){return this.offset+=e,this}back(e=1){return this.offset-=e,this}seek(e){return this.offset=e,this}mark(){return this._mark=this.offset,this}reset(){return this.offset=this._mark,this}pushMark(){return this._marks.push(this.offset),this}popMark(){const e=this._marks.pop();if(e===void 0)throw new Error("Mark stack empty");return this.seek(e),this}rewind(){return this.offset=0,this}ensureAvailable(e=1){if(!this.available(e)){const r=(this.offset+e)*2,i=new Uint8Array(r);i.set(new Uint8Array(this.buffer)),this.buffer=i.buffer,this.length=this.byteLength=r,this._data=new DataView(this.buffer)}return this}readBoolean(){return this.readUint8()!==0}readInt8(){return this._data.getInt8(this.offset++)}readUint8(){return this._data.getUint8(this.offset++)}readByte(){return this.readUint8()}readBytes(e=1){return this.readArray(e,"uint8")}readArray(e,n){const r=M7[n].BYTES_PER_ELEMENT*e,i=this.byteOffset+this.offset,a=this.buffer.slice(i,i+r);if(this.littleEndian===vwt&&n!=="uint8"&&n!=="int8"){const s=new Uint8Array(this.buffer.slice(i,i+r));s.reverse();const c=new M7[n](s.buffer);return this.offset+=r,c.reverse(),c}const o=new M7[n](a);return this.offset+=r,o}readInt16(){const e=this._data.getInt16(this.offset,this.littleEndian);return this.offset+=2,e}readUint16(){const e=this._data.getUint16(this.offset,this.littleEndian);return this.offset+=2,e}readInt32(){const e=this._data.getInt32(this.offset,this.littleEndian);return this.offset+=4,e}readUint32(){const e=this._data.getUint32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat32(){const e=this._data.getFloat32(this.offset,this.littleEndian);return this.offset+=4,e}readFloat64(){const e=this._data.getFloat64(this.offset,this.littleEndian);return this.offset+=8,e}readBigInt64(){const e=this._data.getBigInt64(this.offset,this.littleEndian);return this.offset+=8,e}readBigUint64(){const e=this._data.getBigUint64(this.offset,this.littleEndian);return this.offset+=8,e}readChar(){return String.fromCharCode(this.readInt8())}readChars(e=1){let n="";for(let r=0;r<e;r++)n+=this.readChar();return n}readUtf8(e=1){return Sse(this.readBytes(e))}decodeText(e=1,n="utf-8"){return Sse(this.readBytes(e),n)}writeBoolean(e){return this.writeUint8(e?255:0),this}writeInt8(e){return this.ensureAvailable(1),this._data.setInt8(this.offset++,e),this._updateLastWrittenByte(),this}writeUint8(e){return this.ensureAvailable(1),this._data.setUint8(this.offset++,e),this._updateLastWrittenByte(),this}writeByte(e){return this.writeUint8(e)}writeBytes(e){this.ensureAvailable(e.length);for(let n=0;n<e.length;n++)this._data.setUint8(this.offset++,e[n]);return this._updateLastWrittenByte(),this}writeInt16(e){return this.ensureAvailable(2),this._data.setInt16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeUint16(e){return this.ensureAvailable(2),this._data.setUint16(this.offset,e,this.littleEndian),this.offset+=2,this._updateLastWrittenByte(),this}writeInt32(e){return this.ensureAvailable(4),this._data.setInt32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeUint32(e){return this.ensureAvailable(4),this._data.setUint32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat32(e){return this.ensureAvailable(4),this._data.setFloat32(this.offset,e,this.littleEndian),this.offset+=4,this._updateLastWrittenByte(),this}writeFloat64(e){return this.ensureAvailable(8),this._data.setFloat64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigInt64(e){return this.ensureAvailable(8),this._data.setBigInt64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeBigUint64(e){return this.ensureAvailable(8),this._data.setBigUint64(this.offset,e,this.littleEndian),this.offset+=8,this._updateLastWrittenByte(),this}writeChar(e){return this.writeUint8(e.charCodeAt(0))}writeChars(e){for(let n=0;n<e.length;n++)this.writeUint8(e.charCodeAt(n));return this}writeUtf8(e){return this.writeBytes(hwt(e))}toArray(){return new Uint8Array(this.buffer,this.byteOffset,this.lastWrittenByte)}_updateLastWrittenByte(){this.offset>this.lastWrittenByte&&(this.lastWrittenByte=this.offset)}}function gwt(t){if(t.compression!==1)throw new Error("missing mandatory StripByteCounts field in compressed image");const e=t.rowsPerStrip*t.width*t.samplesPerPixel*(t.bitsPerSample/8);return new Array(t.stripOffsets.length).fill(e)}function mwt(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&255;r+=e*n}}function ywt(t,e,n){let r=0;for(;r<t.length;){for(let i=n;i<e*n;i+=n)for(let a=0;a<n;a++)t[r+i+a]=t[r+i+a]+t[r+i-(n-a)]&65535;r+=e*n}}const SB={33434:"ExposureTime",33437:"FNumber",34850:"ExposureProgram",34852:"SpectralSensitivity",34855:"ISOSpeedRatings",34856:"OECF",34864:"SensitivityType",34865:"StandardOutputSensitivity",34866:"RecommendedExposureIndex",34867:"ISOSpeed",34868:"ISOSpeedLatitudeyyy",34869:"ISOSpeedLatitudezzz",36864:"ExifVersion",36867:"DateTimeOriginal",36868:"DateTimeDigitized",37121:"ComponentsConfiguration",37122:"CompressedBitsPerPixel",37377:"ShutterSpeedValue",37378:"ApertureValue",37379:"BrightnessValue",37380:"ExposureBiasValue",37381:"MaxApertureValue",37382:"SubjectDistance",37383:"MeteringMode",37384:"LightSource",37385:"Flash",37386:"FocalLength",37396:"SubjectArea",37500:"MakerNote",37510:"UserComment",37520:"SubsecTime",37521:"SubsecTimeOriginal",37522:"SubsecTimeDigitized",40960:"FlashpixVersion",40961:"ColorSpace",40962:"PixelXDimension",40963:"PixelYDimension",40964:"RelatedSoundFile",41483:"FlashEnergy",41484:"SpatialFrequencyResponse",41486:"FocalPlaneXResolution",41487:"FocalPlaneYResolution",41488:"FocalPlaneResolutionUnit",41492:"SubjectLocation",41493:"ExposureIndex",41495:"SensingMethod",41728:"FileSource",41729:"SceneType",41730:"CFAPattern",41985:"CustomRendered",41986:"ExposureMode",41987:"WhiteBalance",41988:"DigitalZoomRatio",41989:"FocalLengthIn35mmFilm",41990:"SceneCaptureType",41991:"GainControl",41992:"Contrast",41993:"Saturation",41994:"Sharpness",41995:"DeviceSettingDescription",41996:"SubjectDistanceRange",42016:"ImageUniqueID",42032:"CameraOwnerName",42033:"BodySerialNumber",42034:"LensSpecification",42035:"LensMake",42036:"LensModel",42037:"LensSerialNumber",42240:"Gamma"},UEe={};for(const t in SB)UEe[SB[t]]=Number(t);const bwt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:SB,tagsByName:UEe},Symbol.toStringTag,{value:"Module"})),EB={0:"GPSVersionID",1:"GPSLatitudeRef",2:"GPSLatitude",3:"GPSLongitudeRef",4:"GPSLongitude",5:"GPSAltitudeRef",6:"GPSAltitude",7:"GPSTimeStamp",8:"GPSSatellites",9:"GPSStatus",10:"GPSMeasureMode",11:"GPSDOP",12:"GPSSpeedRef",13:"GPSSpeed",14:"GPSTrackRef",15:"GPSTrack",16:"GPSImgDirectionRef",17:"GPSImgDirection",18:"GPSMapDatum",19:"GPSDestLatitudeRef",20:"GPSDestLatitude",21:"GPSDestLongitudeRef",22:"GPSDestLongitude",23:"GPSDestBearingRef",24:"GPSDestBearing",25:"GPSDestDistanceRef",26:"GPSDestDistance",27:"GPSProcessingMethod",28:"GPSAreaInformation",29:"GPSDateStamp",30:"GPSDifferential",31:"GPSHPositioningError"},kEe={};for(const t in EB)kEe[EB[t]]=Number(t);const xwt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:EB,tagsByName:kEe},Symbol.toStringTag,{value:"Module"})),CB={254:"NewSubfileType",255:"SubfileType",256:"ImageWidth",257:"ImageLength",258:"BitsPerSample",259:"Compression",262:"PhotometricInterpretation",263:"Threshholding",264:"CellWidth",265:"CellLength",266:"FillOrder",270:"ImageDescription",271:"Make",272:"Model",273:"StripOffsets",274:"Orientation",277:"SamplesPerPixel",278:"RowsPerStrip",279:"StripByteCounts",280:"MinSampleValue",281:"MaxSampleValue",282:"XResolution",283:"YResolution",284:"PlanarConfiguration",288:"FreeOffsets",289:"FreeByteCounts",290:"GrayResponseUnit",291:"GrayResponseCurve",296:"ResolutionUnit",305:"Software",306:"DateTime",315:"Artist",316:"HostComputer",320:"ColorMap",338:"ExtraSamples",33432:"Copyright",269:"DocumentName",285:"PageName",286:"XPosition",287:"YPosition",292:"T4Options",293:"T6Options",297:"PageNumber",301:"TransferFunction",317:"Predictor",318:"WhitePoint",319:"PrimaryChromaticities",321:"HalftoneHints",322:"TileWidth",323:"TileLength",324:"TileOffsets",325:"TileByteCounts",326:"BadFaxLines",327:"CleanFaxData",328:"ConsecutiveBadFaxLines",330:"SubIFDs",332:"InkSet",333:"InkNames",334:"NumberOfInks",336:"DotRange",337:"TargetPrinter",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",342:"TransferRange",343:"ClipPath",344:"XClipPathUnits",345:"YClipPathUnits",346:"Indexed",347:"JPEGTables",351:"OPIProxy",400:"GlobalParametersIFD",401:"ProfileType",402:"FaxProfile",403:"CodingMethods",404:"VersionYear",405:"ModeNumber",433:"Decode",434:"DefaultImageColor",512:"JPEGProc",513:"JPEGInterchangeFormat",514:"JPEGInterchangeFormatLength",515:"JPEGRestartInterval",517:"JPEGLosslessPredictors",518:"JPEGPointTransforms",519:"JPEGQTables",520:"JPEGDCTables",521:"JPEGACTables",529:"YCbCrCoefficients",530:"YCbCrSubSampling",531:"YCbCrPositioning",532:"ReferenceBlackWhite",559:"StripRowCounts",700:"XMP",32781:"ImageID",34732:"ImageLayer",32932:"WangAnnotatio",33445:"MDFileTag",33446:"MDScalePixel",33447:"MDColorTable",33448:"MDLabName",33449:"MDSampleInfo",33450:"MDPrepDate",33451:"MDPrepTime",33452:"MDFileUnits",33550:"ModelPixelScaleTag",33723:"IPTC",33918:"INGRPacketDataTag",33919:"INGRFlagRegisters",33920:"IrasBTransformationMatrix",33922:"ModelTiepointTag",34264:"ModelTransformationTag",34377:"Photoshop",34665:"ExifIFD",34675:"ICCProfile",34735:"GeoKeyDirectoryTag",34736:"GeoDoubleParamsTag",34737:"GeoAsciiParamsTag",34853:"GPSIFD",34908:"HylaFAXFaxRecvParams",34909:"HylaFAXFaxSubAddress",34910:"HylaFAXFaxRecvTime",37724:"ImageSourceData",40965:"InteroperabilityIFD",42112:"GDAL_METADATA",42113:"GDAL_NODATA",50215:"OceScanjobDescription",50216:"OceApplicationSelector",50217:"OceIdentificationNumber",50218:"OceImageLogicCharacteristics",50706:"DNGVersion",50707:"DNGBackwardVersion",50708:"UniqueCameraModel",50709:"LocalizedCameraModel",50710:"CFAPlaneColor",50711:"CFALayout",50712:"LinearizationTable",50713:"BlackLevelRepeatDim",50714:"BlackLevel",50715:"BlackLevelDeltaH",50716:"BlackLevelDeltaV",50717:"WhiteLevel",50718:"DefaultScale",50719:"DefaultCropOrigin",50720:"DefaultCropSize",50721:"ColorMatrix1",50722:"ColorMatrix2",50723:"CameraCalibration1",50724:"CameraCalibration2",50725:"ReductionMatrix1",50726:"ReductionMatrix2",50727:"AnalogBalance",50728:"AsShotNeutral",50729:"AsShotWhiteXY",50730:"BaselineExposure",50731:"BaselineNoise",50732:"BaselineSharpness",50733:"BayerGreenSplit",50734:"LinearResponseLimit",50735:"CameraSerialNumber",50736:"LensInfo",50737:"ChromaBlurRadius",50738:"AntiAliasStrength",50740:"DNGPrivateData",50741:"MakerNoteSafety",50778:"CalibrationIlluminant1",50779:"CalibrationIlluminant2",50780:"BestQualityScale",50784:"AliasLayerMetadata"},FEe={};for(const t in CB)FEe[CB[t]]=Number(t);const Swt=Object.freeze(Object.defineProperty({__proto__:null,tagsById:CB,tagsByName:FEe},Symbol.toStringTag,{value:"Module"})),Ese={standard:Swt,exif:bwt,gps:xwt};class VEe{constructor(e){if(!e)throw new Error("missing kind");this.data=new Uint8Array,this.fields=new Map,this.kind=e,this._hasMap=!1,this._map={}}get(e){if(typeof e=="number")return this.fields.get(e);if(typeof e=="string")return this.fields.get(Ese[this.kind].tagsByName[e]);throw new Error("expected a number or string")}get map(){if(!this._hasMap){const e=Ese[this.kind].tagsById;for(const n of this.fields.keys())e[n]&&(this._map[e[n]]=this.fields.get(n));this._hasMap=!0}return this._map}}const BEe=new Map([[1,[1,Cse]],[2,[1,wwt]],[3,[2,Twt]],[4,[4,_wt]],[5,[8,Iwt]],[6,[1,Awt]],[7,[1,Cse]],[8,[2,Mwt]],[9,[4,Rwt]],[10,[8,Lwt]],[11,[4,Owt]],[12,[8,Pwt]]]);function Ewt(t,e){const n=BEe.get(t);if(!n)throw new Error(`type not found: ${t}`);return n[0]*e}function Cwt(t,e,n){const r=BEe.get(e);if(!r)throw new Error(`type not found: ${e}`);return r[1](t,n)}function Cse(t,e){if(e===1)return t.readUint8();const n=new Uint8Array(e);for(let r=0;r<e;r++)n[r]=t.readUint8();return n}function wwt(t,e){const n=[];let r="";for(let i=0;i<e;i++){const a=String.fromCharCode(t.readUint8());a==="\0"?(n.push(r),r=""):r+=a}return n.length===1?n[0]:n}function Twt(t,e){if(e===1)return t.readUint16();const n=new Uint16Array(e);for(let r=0;r<e;r++)n[r]=t.readUint16();return n}function _wt(t,e){if(e===1)return t.readUint32();const n=new Uint32Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32();return n}function Iwt(t,e){if(e===1)return t.readUint32()/t.readUint32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readUint32()/t.readUint32();return n}function Awt(t,e){if(e===1)return t.readInt8();const n=new Int8Array(e);for(let r=0;r<e;r++)n[r]=t.readInt8();return n}function Mwt(t,e){if(e===1)return t.readInt16();const n=new Int16Array(e);for(let r=0;r<e;r++)n[r]=t.readInt16();return n}function Rwt(t,e){if(e===1)return t.readInt32();const n=new Int32Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32();return n}function Lwt(t,e){if(e===1)return t.readInt32()/t.readInt32();const n=new Array(e);for(let r=0;r<e;r++)n[r]=t.readInt32()/t.readInt32();return n}function Owt(t,e){if(e===1)return t.readFloat32();const n=new Float32Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat32();return n}function Pwt(t,e){if(e===1)return t.readFloat64();const n=new Float64Array(e);for(let r=0;r<e;r++)n[r]=t.readFloat64();return n}const Nwt=256,wse=257,Tse=258,_se=9;let Oy=[];function Dwt(){if(Oy.length===0){for(let e=0;e<256;e++)Oy.push([e]);const t=[];for(let e=256;e<4096;e++)Oy.push(t)}}const Uwt=[511,1023,2047,4095],kwt=[0,0,0,0,0,0,0,0,0,511,1023,2047,4095];class Fwt{constructor(e){this.nextData=0,this.nextBits=0,this.bytePointer=0,this.tableLength=Tse,this.currentBitLength=_se,this.stripArray=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),this.outData=new MN(e.byteLength),this.initializeTable()}decode(){let e=0,n=0;for(;(e=this.getNextCode())!==wse;)if(e===Nwt){if(this.initializeTable(),e=this.getNextCode(),e===wse)break;this.writeString(this.stringFromCode(e)),n=e}else if(this.isInTable(e))this.writeString(this.stringFromCode(e)),this.addStringToTable(this.stringFromCode(n).concat(this.stringFromCode(e)[0])),n=e;else{const i=this.stringFromCode(n).concat(this.stringFromCode(n)[0]);this.writeString(i),this.addStringToTable(i),n=e}const r=this.outData.toArray();return new DataView(r.buffer,r.byteOffset,r.byteLength)}initializeTable(){Dwt(),this.tableLength=Tse,this.currentBitLength=_se}writeString(e){this.outData.writeBytes(e)}stringFromCode(e){return Oy[e]}isInTable(e){return e<this.tableLength}addStringToTable(e){if(Oy[this.tableLength++]=e,Oy.length>4096)throw Oy=[],new Error("LZW decoding error. Please open an issue at https://github.com/image-js/tiff/issues/new/choose (include a test image).");this.tableLength===kwt[this.currentBitLength]&&this.currentBitLength++}getNextCode(){this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8,this.nextBits<this.currentBitLength&&(this.nextData=this.nextData<<8|this.stripArray[this.bytePointer++]&255,this.nextBits+=8);const e=this.nextData>>this.nextBits-this.currentBitLength&Uwt[this.currentBitLength-9];return this.nextBits-=this.currentBitLength,this.bytePointer>this.stripArray.length?257:e}}function Vwt(t){return new Fwt(t).decode()}const Bwt=/^(\d{4}):(\d{2}):(\d{2}) (\d{2}):(\d{2}):(\d{2})$/;class Ise extends VEe{constructor(){super("standard")}get size(){return this.width*this.height}get width(){return this.imageWidth}get height(){return this.imageLength}get components(){return this.samplesPerPixel}get date(){const e=new Date,n=Bwt.exec(this.dateTime);if(n===null)throw new Error(`invalid dateTime: ${this.dateTime}`);return e.setFullYear(Number(n[1]),Number(n[2])-1,Number(n[3])),e.setHours(Number(n[4]),Number(n[5]),Number(n[6])),e}get newSubfileType(){return this.get("NewSubfileType")}get imageWidth(){return this.get("ImageWidth")}get imageLength(){return this.get("ImageLength")}get bitsPerSample(){const e=this.get("BitsPerSample");return e&&typeof e!="number"?e[0]:e}get alpha(){const e=this.extraSamples;return e?e[0]!==0:!1}get associatedAlpha(){const e=this.extraSamples;return e?e[0]===1:!1}get extraSamples(){return hR(this.get("ExtraSamples"))}get compression(){return this.get("Compression")||1}get type(){return this.get("PhotometricInterpretation")}get fillOrder(){return this.get("FillOrder")||1}get documentName(){return this.get("DocumentName")}get imageDescription(){return this.get("ImageDescription")}get stripOffsets(){return hR(this.get("StripOffsets"))}get orientation(){return this.get("Orientation")}get samplesPerPixel(){return this.get("SamplesPerPixel")||1}get rowsPerStrip(){return this.get("RowsPerStrip")}get stripByteCounts(){return hR(this.get("StripByteCounts"))}get minSampleValue(){return this.get("MinSampleValue")||0}get maxSampleValue(){return this.get("MaxSampleValue")||2**this.bitsPerSample-1}get xResolution(){return this.get("XResolution")}get yResolution(){return this.get("YResolution")}get planarConfiguration(){return this.get("PlanarConfiguration")||1}get resolutionUnit(){return this.get("ResolutionUnit")||2}get dateTime(){return this.get("DateTime")}get predictor(){return this.get("Predictor")||1}get sampleFormat(){return hR(this.get("SampleFormat")||1)[0]}get sMinSampleValue(){return this.get("SMinSampleValue")||this.minSampleValue}get sMaxSampleValue(){return this.get("SMaxSampleValue")||this.maxSampleValue}get palette(){const e=2**this.bitsPerSample,n=this.get("ColorMap");if(!n)return;if(n.length!==3*e)throw new Error(`ColorMap size must be ${e}`);const r=[];for(let i=0;i<e;i++)r.push([n[i],n[i+e],n[i+2*e]]);return r}}function hR(t){return typeof t=="number"?[t]:t}/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */const $wt=4,Ase=0,Mse=1,zwt=2;function jE(t){let e=t.length;for(;--e>=0;)t[e]=0}const Hwt=0,$Ee=1,Gwt=2,Wwt=3,jwt=258,mW=29,nA=256,J_=nA+1+mW,A2=30,yW=19,zEe=2*J_+1,Py=15,R7=16,Xwt=7,bW=256,HEe=16,GEe=17,WEe=18,wB=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),kL=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),Zwt=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),jEe=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Kwt=512,eg=new Array((J_+2)*2);jE(eg);const ZT=new Array(A2*2);jE(ZT);const Q_=new Array(Kwt);jE(Q_);const eI=new Array(jwt-Wwt+1);jE(eI);const xW=new Array(mW);jE(xW);const C4=new Array(A2);jE(C4);function L7(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}let XEe,ZEe,KEe;function O7(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}const YEe=t=>t<256?Q_[t]:Q_[256+(t>>>7)],tI=(t,e)=>{t.pending_buf[t.pending++]=e&255,t.pending_buf[t.pending++]=e>>>8&255},jd=(t,e,n)=>{t.bi_valid>R7-n?(t.bi_buf|=e<<t.bi_valid&65535,tI(t,t.bi_buf),t.bi_buf=e>>R7-t.bi_valid,t.bi_valid+=n-R7):(t.bi_buf|=e<<t.bi_valid&65535,t.bi_valid+=n)},Kp=(t,e,n)=>{jd(t,n[e*2],n[e*2+1])},qEe=(t,e)=>{let n=0;do n|=t&1,t>>>=1,n<<=1;while(--e>0);return n>>>1},Ywt=t=>{t.bi_valid===16?(tI(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=t.bi_buf&255,t.bi_buf>>=8,t.bi_valid-=8)},qwt=(t,e)=>{const n=e.dyn_tree,r=e.max_code,i=e.stat_desc.static_tree,a=e.stat_desc.has_stree,o=e.stat_desc.extra_bits,s=e.stat_desc.extra_base,c=e.stat_desc.max_length;let u,d,f,h,p,v,y=0;for(h=0;h<=Py;h++)t.bl_count[h]=0;for(n[t.heap[t.heap_max]*2+1]=0,u=t.heap_max+1;u<zEe;u++)d=t.heap[u],h=n[n[d*2+1]*2+1]+1,h>c&&(h=c,y++),n[d*2+1]=h,!(d>r)&&(t.bl_count[h]++,p=0,d>=s&&(p=o[d-s]),v=n[d*2],t.opt_len+=v*(h+p),a&&(t.static_len+=v*(i[d*2+1]+p)));if(y!==0){do{for(h=c-1;t.bl_count[h]===0;)h--;t.bl_count[h]--,t.bl_count[h+1]+=2,t.bl_count[c]--,y-=2}while(y>0);for(h=c;h!==0;h--)for(d=t.bl_count[h];d!==0;)f=t.heap[--u],!(f>r)&&(n[f*2+1]!==h&&(t.opt_len+=(h-n[f*2+1])*n[f*2],n[f*2+1]=h),d--)}},JEe=(t,e,n)=>{const r=new Array(Py+1);let i=0,a,o;for(a=1;a<=Py;a++)i=i+n[a-1]<<1,r[a]=i;for(o=0;o<=e;o++){let s=t[o*2+1];s!==0&&(t[o*2]=qEe(r[s]++,s))}},Jwt=()=>{let t,e,n,r,i;const a=new Array(Py+1);for(n=0,r=0;r<mW-1;r++)for(xW[r]=n,t=0;t<1<<wB[r];t++)eI[n++]=r;for(eI[n-1]=r,i=0,r=0;r<16;r++)for(C4[r]=i,t=0;t<1<<kL[r];t++)Q_[i++]=r;for(i>>=7;r<A2;r++)for(C4[r]=i<<7,t=0;t<1<<kL[r]-7;t++)Q_[256+i++]=r;for(e=0;e<=Py;e++)a[e]=0;for(t=0;t<=143;)eg[t*2+1]=8,t++,a[8]++;for(;t<=255;)eg[t*2+1]=9,t++,a[9]++;for(;t<=279;)eg[t*2+1]=7,t++,a[7]++;for(;t<=287;)eg[t*2+1]=8,t++,a[8]++;for(JEe(eg,J_+1,a),t=0;t<A2;t++)ZT[t*2+1]=5,ZT[t*2]=qEe(t,5);XEe=new L7(eg,wB,nA+1,J_,Py),ZEe=new L7(ZT,kL,0,A2,Py),KEe=new L7(new Array(0),Zwt,0,yW,Xwt)},QEe=t=>{let e;for(e=0;e<J_;e++)t.dyn_ltree[e*2]=0;for(e=0;e<A2;e++)t.dyn_dtree[e*2]=0;for(e=0;e<yW;e++)t.bl_tree[e*2]=0;t.dyn_ltree[bW*2]=1,t.opt_len=t.static_len=0,t.sym_next=t.matches=0},eCe=t=>{t.bi_valid>8?tI(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0},Rse=(t,e,n,r)=>{const i=e*2,a=n*2;return t[i]<t[a]||t[i]===t[a]&&r[e]<=r[n]},P7=(t,e,n)=>{const r=t.heap[n];let i=n<<1;for(;i<=t.heap_len&&(i<t.heap_len&&Rse(e,t.heap[i+1],t.heap[i],t.depth)&&i++,!Rse(e,r,t.heap[i],t.depth));)t.heap[n]=t.heap[i],n=i,i<<=1;t.heap[n]=r},Lse=(t,e,n)=>{let r,i,a=0,o,s;if(t.sym_next!==0)do r=t.pending_buf[t.sym_buf+a++]&255,r+=(t.pending_buf[t.sym_buf+a++]&255)<<8,i=t.pending_buf[t.sym_buf+a++],r===0?Kp(t,i,e):(o=eI[i],Kp(t,o+nA+1,e),s=wB[o],s!==0&&(i-=xW[o],jd(t,i,s)),r--,o=YEe(r),Kp(t,o,n),s=kL[o],s!==0&&(r-=C4[o],jd(t,r,s)));while(a<t.sym_next);Kp(t,bW,e)},TB=(t,e)=>{const n=e.dyn_tree,r=e.stat_desc.static_tree,i=e.stat_desc.has_stree,a=e.stat_desc.elems;let o,s,c=-1,u;for(t.heap_len=0,t.heap_max=zEe,o=0;o<a;o++)n[o*2]!==0?(t.heap[++t.heap_len]=c=o,t.depth[o]=0):n[o*2+1]=0;for(;t.heap_len<2;)u=t.heap[++t.heap_len]=c<2?++c:0,n[u*2]=1,t.depth[u]=0,t.opt_len--,i&&(t.static_len-=r[u*2+1]);for(e.max_code=c,o=t.heap_len>>1;o>=1;o--)P7(t,n,o);u=a;do o=t.heap[1],t.heap[1]=t.heap[t.heap_len--],P7(t,n,1),s=t.heap[1],t.heap[--t.heap_max]=o,t.heap[--t.heap_max]=s,n[u*2]=n[o*2]+n[s*2],t.depth[u]=(t.depth[o]>=t.depth[s]?t.depth[o]:t.depth[s])+1,n[o*2+1]=n[s*2+1]=u,t.heap[1]=u++,P7(t,n,1);while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],qwt(t,e),JEe(n,c,t.bl_count)},Ose=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),e[(n+1)*2+1]=65535,r=0;r<=n;r++)a=o,o=e[(r+1)*2+1],!(++s<c&&a===o)&&(s<u?t.bl_tree[a*2]+=s:a!==0?(a!==i&&t.bl_tree[a*2]++,t.bl_tree[HEe*2]++):s<=10?t.bl_tree[GEe*2]++:t.bl_tree[WEe*2]++,s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4))},Pse=(t,e,n)=>{let r,i=-1,a,o=e[0*2+1],s=0,c=7,u=4;for(o===0&&(c=138,u=3),r=0;r<=n;r++)if(a=o,o=e[(r+1)*2+1],!(++s<c&&a===o)){if(s<u)do Kp(t,a,t.bl_tree);while(--s!==0);else a!==0?(a!==i&&(Kp(t,a,t.bl_tree),s--),Kp(t,HEe,t.bl_tree),jd(t,s-3,2)):s<=10?(Kp(t,GEe,t.bl_tree),jd(t,s-3,3)):(Kp(t,WEe,t.bl_tree),jd(t,s-11,7));s=0,i=a,o===0?(c=138,u=3):a===o?(c=6,u=3):(c=7,u=4)}},Qwt=t=>{let e;for(Ose(t,t.dyn_ltree,t.l_desc.max_code),Ose(t,t.dyn_dtree,t.d_desc.max_code),TB(t,t.bl_desc),e=yW-1;e>=3&&t.bl_tree[jEe[e]*2+1]===0;e--);return t.opt_len+=3*(e+1)+5+5+4,e},eTt=(t,e,n,r)=>{let i;for(jd(t,e-257,5),jd(t,n-1,5),jd(t,r-4,4),i=0;i<r;i++)jd(t,t.bl_tree[jEe[i]*2+1],3);Pse(t,t.dyn_ltree,e-1),Pse(t,t.dyn_dtree,n-1)},tTt=t=>{let e=4093624447,n;for(n=0;n<=31;n++,e>>>=1)if(e&1&&t.dyn_ltree[n*2]!==0)return Ase;if(t.dyn_ltree[9*2]!==0||t.dyn_ltree[10*2]!==0||t.dyn_ltree[13*2]!==0)return Mse;for(n=32;n<nA;n++)if(t.dyn_ltree[n*2]!==0)return Mse;return Ase};let Nse=!1;const nTt=t=>{Nse||(Jwt(),Nse=!0),t.l_desc=new O7(t.dyn_ltree,XEe),t.d_desc=new O7(t.dyn_dtree,ZEe),t.bl_desc=new O7(t.bl_tree,KEe),t.bi_buf=0,t.bi_valid=0,QEe(t)},tCe=(t,e,n,r)=>{jd(t,(Hwt<<1)+(r?1:0),3),eCe(t),tI(t,n),tI(t,~n),n&&t.pending_buf.set(t.window.subarray(e,e+n),t.pending),t.pending+=n},rTt=t=>{jd(t,$Ee<<1,3),Kp(t,bW,eg),Ywt(t)},iTt=(t,e,n,r)=>{let i,a,o=0;t.level>0?(t.strm.data_type===zwt&&(t.strm.data_type=tTt(t)),TB(t,t.l_desc),TB(t,t.d_desc),o=Qwt(t),i=t.opt_len+3+7>>>3,a=t.static_len+3+7>>>3,a<=i&&(i=a)):i=a=n+5,n+4<=i&&e!==-1?tCe(t,e,n,r):t.strategy===$wt||a===i?(jd(t,($Ee<<1)+(r?1:0),3),Lse(t,eg,ZT)):(jd(t,(Gwt<<1)+(r?1:0),3),eTt(t,t.l_desc.max_code+1,t.d_desc.max_code+1,o+1),Lse(t,t.dyn_ltree,t.dyn_dtree)),QEe(t),r&&eCe(t)},aTt=(t,e,n)=>(t.pending_buf[t.sym_buf+t.sym_next++]=e,t.pending_buf[t.sym_buf+t.sym_next++]=e>>8,t.pending_buf[t.sym_buf+t.sym_next++]=n,e===0?t.dyn_ltree[n*2]++:(t.matches++,e--,t.dyn_ltree[(eI[n]+nA+1)*2]++,t.dyn_dtree[YEe(e)*2]++),t.sym_next===t.sym_end);var oTt=nTt,sTt=tCe,lTt=iTt,cTt=aTt,uTt=rTt,dTt={_tr_init:oTt,_tr_stored_block:sTt,_tr_flush_block:lTt,_tr_tally:cTt,_tr_align:uTt};const fTt=(t,e,n,r)=>{let i=t&65535|0,a=t>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+e[r++]|0,a=a+i|0;while(--o);i%=65521,a%=65521}return i|a<<16|0};var nI=fTt;const hTt=()=>{let t,e=[];for(var n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;e[n]=t}return e},pTt=new Uint32Array(hTt()),vTt=(t,e,n,r)=>{const i=pTt,a=r+n;t^=-1;for(let o=r;o<a;o++)t=t>>>8^i[(t^e[o])&255];return t^-1};var kc=vTt,aE={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},rA={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:gTt,_tr_stored_block:_B,_tr_flush_block:mTt,_tr_tally:r0,_tr_align:yTt}=dTt,{Z_NO_FLUSH:i0,Z_PARTIAL_FLUSH:bTt,Z_FULL_FLUSH:xTt,Z_FINISH:ph,Z_BLOCK:Dse,Z_OK:ru,Z_STREAM_END:Use,Z_STREAM_ERROR:iv,Z_DATA_ERROR:STt,Z_BUF_ERROR:N7,Z_DEFAULT_COMPRESSION:ETt,Z_FILTERED:CTt,Z_HUFFMAN_ONLY:pR,Z_RLE:wTt,Z_FIXED:TTt,Z_DEFAULT_STRATEGY:_Tt,Z_UNKNOWN:ITt,Z_DEFLATED:RN}=rA,ATt=9,MTt=15,RTt=8,LTt=29,OTt=256,IB=OTt+1+LTt,PTt=30,NTt=19,DTt=2*IB+1,UTt=15,fo=3,Zm=258,av=Zm+fo+1,kTt=32,oE=42,SW=57,AB=69,MB=73,RB=91,LB=103,Ny=113,dT=666,xd=1,XE=2,Eb=3,ZE=4,FTt=3,Dy=(t,e)=>(t.msg=aE[e],e),kse=t=>t*2-(t>4?9:0),Nm=t=>{let e=t.length;for(;--e>=0;)t[e]=0},VTt=t=>{let e,n,r,i=t.w_size;e=t.hash_size,r=e;do n=t.head[--r],t.head[r]=n>=i?n-i:0;while(--e);e=i,r=e;do n=t.prev[--r],t.prev[r]=n>=i?n-i:0;while(--e)};let BTt=(t,e,n)=>(e<<t.hash_shift^n)&t.hash_mask,a0=BTt;const gf=t=>{const e=t.state;let n=e.pending;n>t.avail_out&&(n=t.avail_out),n!==0&&(t.output.set(e.pending_buf.subarray(e.pending_out,e.pending_out+n),t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,e.pending===0&&(e.pending_out=0))},Tf=(t,e)=>{mTt(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,gf(t.strm)},Po=(t,e)=>{t.pending_buf[t.pending++]=e},_w=(t,e)=>{t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=e&255},OB=(t,e,n,r)=>{let i=t.avail_in;return i>r&&(i=r),i===0?0:(t.avail_in-=i,e.set(t.input.subarray(t.next_in,t.next_in+i),n),t.state.wrap===1?t.adler=nI(t.adler,e,i,n):t.state.wrap===2&&(t.adler=kc(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)},nCe=(t,e)=>{let n=t.max_chain_length,r=t.strstart,i,a,o=t.prev_length,s=t.nice_match;const c=t.strstart>t.w_size-av?t.strstart-(t.w_size-av):0,u=t.window,d=t.w_mask,f=t.prev,h=t.strstart+Zm;let p=u[r+o-1],v=u[r+o];t.prev_length>=t.good_match&&(n>>=2),s>t.lookahead&&(s=t.lookahead);do if(i=e,!(u[i+o]!==v||u[i+o-1]!==p||u[i]!==u[r]||u[++i]!==u[r+1])){r+=2,i++;do;while(u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&u[++r]===u[++i]&&r<h);if(a=Zm-(h-r),r=h-Zm,a>o){if(t.match_start=e,o=a,a>=s)break;p=u[r+o-1],v=u[r+o]}}while((e=f[e&d])>c&&--n!==0);return o<=t.lookahead?o:t.lookahead},sE=t=>{const e=t.w_size;let n,r,i;do{if(r=t.window_size-t.lookahead-t.strstart,t.strstart>=e+(e-av)&&(t.window.set(t.window.subarray(e,e+e-r),0),t.match_start-=e,t.strstart-=e,t.block_start-=e,t.insert>t.strstart&&(t.insert=t.strstart),VTt(t),r+=e),t.strm.avail_in===0)break;if(n=OB(t.strm,t.window,t.strstart+t.lookahead,r),t.lookahead+=n,t.lookahead+t.insert>=fo)for(i=t.strstart-t.insert,t.ins_h=t.window[i],t.ins_h=a0(t,t.ins_h,t.window[i+1]);t.insert&&(t.ins_h=a0(t,t.ins_h,t.window[i+fo-1]),t.prev[i&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=i,i++,t.insert--,!(t.lookahead+t.insert<fo)););}while(t.lookahead<av&&t.strm.avail_in!==0)},rCe=(t,e)=>{let n=t.pending_buf_size-5>t.w_size?t.w_size:t.pending_buf_size-5,r,i,a,o=0,s=t.strm.avail_in;do{if(r=65535,a=t.bi_valid+42>>3,t.strm.avail_out<a||(a=t.strm.avail_out-a,i=t.strstart-t.block_start,r>i+t.strm.avail_in&&(r=i+t.strm.avail_in),r>a&&(r=a),r<n&&(r===0&&e!==ph||e===i0||r!==i+t.strm.avail_in)))break;o=e===ph&&r===i+t.strm.avail_in?1:0,_B(t,0,0,o),t.pending_buf[t.pending-4]=r,t.pending_buf[t.pending-3]=r>>8,t.pending_buf[t.pending-2]=~r,t.pending_buf[t.pending-1]=~r>>8,gf(t.strm),i&&(i>r&&(i=r),t.strm.output.set(t.window.subarray(t.block_start,t.block_start+i),t.strm.next_out),t.strm.next_out+=i,t.strm.avail_out-=i,t.strm.total_out+=i,t.block_start+=i,r-=i),r&&(OB(t.strm,t.strm.output,t.strm.next_out,r),t.strm.next_out+=r,t.strm.avail_out-=r,t.strm.total_out+=r)}while(o===0);return s-=t.strm.avail_in,s&&(s>=t.w_size?(t.matches=2,t.window.set(t.strm.input.subarray(t.strm.next_in-t.w_size,t.strm.next_in),0),t.strstart=t.w_size,t.insert=t.strstart):(t.window_size-t.strstart<=s&&(t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,t.insert>t.strstart&&(t.insert=t.strstart)),t.window.set(t.strm.input.subarray(t.strm.next_in-s,t.strm.next_in),t.strstart),t.strstart+=s,t.insert+=s>t.w_size-t.insert?t.w_size-t.insert:s),t.block_start=t.strstart),t.high_water<t.strstart&&(t.high_water=t.strstart),o?ZE:e!==i0&&e!==ph&&t.strm.avail_in===0&&t.strstart===t.block_start?XE:(a=t.window_size-t.strstart,t.strm.avail_in>a&&t.block_start>=t.w_size&&(t.block_start-=t.w_size,t.strstart-=t.w_size,t.window.set(t.window.subarray(t.w_size,t.w_size+t.strstart),0),t.matches<2&&t.matches++,a+=t.w_size,t.insert>t.strstart&&(t.insert=t.strstart)),a>t.strm.avail_in&&(a=t.strm.avail_in),a&&(OB(t.strm,t.window,t.strstart,a),t.strstart+=a,t.insert+=a>t.w_size-t.insert?t.w_size-t.insert:a),t.high_water<t.strstart&&(t.high_water=t.strstart),a=t.bi_valid+42>>3,a=t.pending_buf_size-a>65535?65535:t.pending_buf_size-a,n=a>t.w_size?t.w_size:a,i=t.strstart-t.block_start,(i>=n||(i||e===ph)&&e!==i0&&t.strm.avail_in===0&&i<=a)&&(r=i>a?a:i,o=e===ph&&t.strm.avail_in===0&&r===i?1:0,_B(t,t.block_start,r,o),t.block_start+=r,gf(t.strm)),o?Eb:xd)},D7=(t,e)=>{let n,r;for(;;){if(t.lookahead<av){if(sE(t),t.lookahead<av&&e===i0)return xd;if(t.lookahead===0)break}if(n=0,t.lookahead>=fo&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),n!==0&&t.strstart-n<=t.w_size-av&&(t.match_length=nCe(t,n)),t.match_length>=fo)if(r=r0(t,t.strstart-t.match_start,t.match_length-fo),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=fo){t.match_length--;do t.strstart++,t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart;while(--t.match_length!==0);t.strstart++}else t.strstart+=t.match_length,t.match_length=0,t.ins_h=t.window[t.strstart],t.ins_h=a0(t,t.ins_h,t.window[t.strstart+1]);else r=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++;if(r&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=t.strstart<fo-1?t.strstart:fo-1,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},iS=(t,e)=>{let n,r,i;for(;;){if(t.lookahead<av){if(sE(t),t.lookahead<av&&e===i0)return xd;if(t.lookahead===0)break}if(n=0,t.lookahead>=fo&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart),t.prev_length=t.match_length,t.prev_match=t.match_start,t.match_length=fo-1,n!==0&&t.prev_length<t.max_lazy_match&&t.strstart-n<=t.w_size-av&&(t.match_length=nCe(t,n),t.match_length<=5&&(t.strategy===CTt||t.match_length===fo&&t.strstart-t.match_start>4096)&&(t.match_length=fo-1)),t.prev_length>=fo&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-fo,r=r0(t,t.strstart-1-t.prev_match,t.prev_length-fo),t.lookahead-=t.prev_length-1,t.prev_length-=2;do++t.strstart<=i&&(t.ins_h=a0(t,t.ins_h,t.window[t.strstart+fo-1]),n=t.prev[t.strstart&t.w_mask]=t.head[t.ins_h],t.head[t.ins_h]=t.strstart);while(--t.prev_length!==0);if(t.match_available=0,t.match_length=fo-1,t.strstart++,r&&(Tf(t,!1),t.strm.avail_out===0))return xd}else if(t.match_available){if(r=r0(t,0,t.window[t.strstart-1]),r&&Tf(t,!1),t.strstart++,t.lookahead--,t.strm.avail_out===0)return xd}else t.match_available=1,t.strstart++,t.lookahead--}return t.match_available&&(r=r0(t,0,t.window[t.strstart-1]),t.match_available=0),t.insert=t.strstart<fo-1?t.strstart:fo-1,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},$Tt=(t,e)=>{let n,r,i,a;const o=t.window;for(;;){if(t.lookahead<=Zm){if(sE(t),t.lookahead<=Zm&&e===i0)return xd;if(t.lookahead===0)break}if(t.match_length=0,t.lookahead>=fo&&t.strstart>0&&(i=t.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){a=t.strstart+Zm;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<a);t.match_length=Zm-(a-i),t.match_length>t.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=fo?(n=r0(t,1,t.match_length-fo),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=0,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE},zTt=(t,e)=>{let n;for(;;){if(t.lookahead===0&&(sE(t),t.lookahead===0)){if(e===i0)return xd;break}if(t.match_length=0,n=r0(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(Tf(t,!1),t.strm.avail_out===0))return xd}return t.insert=0,e===ph?(Tf(t,!0),t.strm.avail_out===0?Eb:ZE):t.sym_next&&(Tf(t,!1),t.strm.avail_out===0)?xd:XE};function Pp(t,e,n,r,i){this.good_length=t,this.max_lazy=e,this.nice_length=n,this.max_chain=r,this.func=i}const fT=[new Pp(0,0,0,0,rCe),new Pp(4,4,8,4,D7),new Pp(4,5,16,8,D7),new Pp(4,6,32,32,D7),new Pp(4,4,16,16,iS),new Pp(8,16,32,32,iS),new Pp(8,16,128,128,iS),new Pp(8,32,128,256,iS),new Pp(32,128,258,1024,iS),new Pp(32,258,258,4096,iS)],HTt=t=>{t.window_size=2*t.w_size,Nm(t.head),t.max_lazy_match=fT[t.level].max_lazy,t.good_match=fT[t.level].good_length,t.nice_match=fT[t.level].nice_length,t.max_chain_length=fT[t.level].max_chain,t.strstart=0,t.block_start=0,t.lookahead=0,t.insert=0,t.match_length=t.prev_length=fo-1,t.match_available=0,t.ins_h=0};function GTt(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=RN,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(DTt*2),this.dyn_dtree=new Uint16Array((2*PTt+1)*2),this.bl_tree=new Uint16Array((2*NTt+1)*2),Nm(this.dyn_ltree),Nm(this.dyn_dtree),Nm(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(UTt+1),this.heap=new Uint16Array(2*IB+1),Nm(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*IB+1),Nm(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const iA=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.status!==oE&&e.status!==SW&&e.status!==AB&&e.status!==MB&&e.status!==RB&&e.status!==LB&&e.status!==Ny&&e.status!==dT?1:0},iCe=t=>{if(iA(t))return Dy(t,iv);t.total_in=t.total_out=0,t.data_type=ITt;const e=t.state;return e.pending=0,e.pending_out=0,e.wrap<0&&(e.wrap=-e.wrap),e.status=e.wrap===2?SW:e.wrap?oE:Ny,t.adler=e.wrap===2?0:1,e.last_flush=-2,gTt(e),ru},aCe=t=>{const e=iCe(t);return e===ru&&HTt(t.state),e},WTt=(t,e)=>iA(t)||t.state.wrap!==2?iv:(t.state.gzhead=e,ru),oCe=(t,e,n,r,i,a)=>{if(!t)return iv;let o=1;if(e===ETt&&(e=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>ATt||n!==RN||r<8||r>15||e<0||e>9||a<0||a>TTt||r===8&&o!==1)return Dy(t,iv);r===8&&(r=9);const s=new GTt;return t.state=s,s.strm=t,s.status=oE,s.wrap=o,s.gzhead=null,s.w_bits=r,s.w_size=1<<s.w_bits,s.w_mask=s.w_size-1,s.hash_bits=i+7,s.hash_size=1<<s.hash_bits,s.hash_mask=s.hash_size-1,s.hash_shift=~~((s.hash_bits+fo-1)/fo),s.window=new Uint8Array(s.w_size*2),s.head=new Uint16Array(s.hash_size),s.prev=new Uint16Array(s.w_size),s.lit_bufsize=1<<i+6,s.pending_buf_size=s.lit_bufsize*4,s.pending_buf=new Uint8Array(s.pending_buf_size),s.sym_buf=s.lit_bufsize,s.sym_end=(s.lit_bufsize-1)*3,s.level=e,s.strategy=a,s.method=n,aCe(t)},jTt=(t,e)=>oCe(t,e,RN,MTt,RTt,_Tt),XTt=(t,e)=>{if(iA(t)||e>Dse||e<0)return t?Dy(t,iv):iv;const n=t.state;if(!t.output||t.avail_in!==0&&!t.input||n.status===dT&&e!==ph)return Dy(t,t.avail_out===0?N7:iv);const r=n.last_flush;if(n.last_flush=e,n.pending!==0){if(gf(t),t.avail_out===0)return n.last_flush=-1,ru}else if(t.avail_in===0&&kse(e)<=kse(r)&&e!==ph)return Dy(t,N7);if(n.status===dT&&t.avail_in!==0)return Dy(t,N7);if(n.status===oE&&n.wrap===0&&(n.status=Ny),n.status===oE){let i=RN+(n.w_bits-8<<4)<<8,a=-1;if(n.strategy>=pR||n.level<2?a=0:n.level<6?a=1:n.level===6?a=2:a=3,i|=a<<6,n.strstart!==0&&(i|=kTt),i+=31-i%31,_w(n,i),n.strstart!==0&&(_w(n,t.adler>>>16),_w(n,t.adler&65535)),t.adler=1,n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(n.status===SW){if(t.adler=0,Po(n,31),Po(n,139),Po(n,8),n.gzhead)Po(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),Po(n,n.gzhead.time&255),Po(n,n.gzhead.time>>8&255),Po(n,n.gzhead.time>>16&255),Po(n,n.gzhead.time>>24&255),Po(n,n.level===9?2:n.strategy>=pR||n.level<2?4:0),Po(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(Po(n,n.gzhead.extra.length&255),Po(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(t.adler=kc(t.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=AB;else if(Po(n,0),Po(n,0),Po(n,0),Po(n,0),Po(n,0),Po(n,n.level===9?2:n.strategy>=pR||n.level<2?4:0),Po(n,FTt),n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(n.status===AB){if(n.gzhead.extra){let i=n.pending,a=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+a>n.pending_buf_size;){let s=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=s,gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0,a-=s}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending+=a,n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=MB}if(n.status===MB){if(n.gzhead.name){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0}n.gzindex<n.gzhead.name.length?a=n.gzhead.name.charCodeAt(n.gzindex++)&255:a=0,Po(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=RB}if(n.status===RB){if(n.gzhead.comment){let i=n.pending,a;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i)),gf(t),n.pending!==0)return n.last_flush=-1,ru;i=0}n.gzindex<n.gzhead.comment.length?a=n.gzhead.comment.charCodeAt(n.gzindex++)&255:a=0,Po(n,a)}while(a!==0);n.gzhead.hcrc&&n.pending>i&&(t.adler=kc(t.adler,n.pending_buf,n.pending-i,i))}n.status=LB}if(n.status===LB){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(gf(t),n.pending!==0))return n.last_flush=-1,ru;Po(n,t.adler&255),Po(n,t.adler>>8&255),t.adler=0}if(n.status=Ny,gf(t),n.pending!==0)return n.last_flush=-1,ru}if(t.avail_in!==0||n.lookahead!==0||e!==i0&&n.status!==dT){let i=n.level===0?rCe(n,e):n.strategy===pR?zTt(n,e):n.strategy===wTt?$Tt(n,e):fT[n.level].func(n,e);if((i===Eb||i===ZE)&&(n.status=dT),i===xd||i===Eb)return t.avail_out===0&&(n.last_flush=-1),ru;if(i===XE&&(e===bTt?yTt(n):e!==Dse&&(_B(n,0,0,!1),e===xTt&&(Nm(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),gf(t),t.avail_out===0))return n.last_flush=-1,ru}return e!==ph?ru:n.wrap<=0?Use:(n.wrap===2?(Po(n,t.adler&255),Po(n,t.adler>>8&255),Po(n,t.adler>>16&255),Po(n,t.adler>>24&255),Po(n,t.total_in&255),Po(n,t.total_in>>8&255),Po(n,t.total_in>>16&255),Po(n,t.total_in>>24&255)):(_w(n,t.adler>>>16),_w(n,t.adler&65535)),gf(t),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?ru:Use)},ZTt=t=>{if(iA(t))return iv;const e=t.state.status;return t.state=null,e===Ny?Dy(t,STt):ru},KTt=(t,e)=>{let n=e.length;if(iA(t))return iv;const r=t.state,i=r.wrap;if(i===2||i===1&&r.status!==oE||r.lookahead)return iv;if(i===1&&(t.adler=nI(t.adler,e,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Nm(r.head),r.strstart=0,r.block_start=0,r.insert=0);let c=new Uint8Array(r.w_size);c.set(e.subarray(n-r.w_size,n),0),e=c,n=r.w_size}const a=t.avail_in,o=t.next_in,s=t.input;for(t.avail_in=n,t.next_in=0,t.input=e,sE(r);r.lookahead>=fo;){let c=r.strstart,u=r.lookahead-(fo-1);do r.ins_h=a0(r,r.ins_h,r.window[c+fo-1]),r.prev[c&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=c,c++;while(--u);r.strstart=c,r.lookahead=fo-1,sE(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=fo-1,r.match_available=0,t.next_in=o,t.input=s,t.avail_in=a,r.wrap=i,ru};var YTt=jTt,qTt=oCe,JTt=aCe,QTt=iCe,e_t=WTt,t_t=XTt,n_t=ZTt,r_t=KTt,i_t="pako deflate (from Nodeca project)",KT={deflateInit:YTt,deflateInit2:qTt,deflateReset:JTt,deflateResetKeep:QTt,deflateSetHeader:e_t,deflate:t_t,deflateEnd:n_t,deflateSetDictionary:r_t,deflateInfo:i_t};const a_t=(t,e)=>Object.prototype.hasOwnProperty.call(t,e);var o_t=function(t){const e=Array.prototype.slice.call(arguments,1);for(;e.length;){const n=e.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)a_t(n,r)&&(t[r]=n[r])}}return t},s_t=t=>{let e=0;for(let r=0,i=t.length;r<i;r++)e+=t[r].length;const n=new Uint8Array(e);for(let r=0,i=0,a=t.length;r<a;r++){let o=t[r];n.set(o,i),i+=o.length}return n},LN={assign:o_t,flattenChunks:s_t};let sCe=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{sCe=!1}const rI=new Uint8Array(256);for(let t=0;t<256;t++)rI[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;rI[254]=rI[254]=1;var l_t=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let e,n,r,i,a,o=t.length,s=0;for(i=0;i<o;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),s+=n<128?1:n<2048?2:n<65536?3:4;for(e=new Uint8Array(s),a=0,i=0;a<s;i++)n=t.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=t.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?e[a++]=n:n<2048?(e[a++]=192|n>>>6,e[a++]=128|n&63):n<65536?(e[a++]=224|n>>>12,e[a++]=128|n>>>6&63,e[a++]=128|n&63):(e[a++]=240|n>>>18,e[a++]=128|n>>>12&63,e[a++]=128|n>>>6&63,e[a++]=128|n&63);return e};const c_t=(t,e)=>{if(e<65534&&t.subarray&&sCe)return String.fromCharCode.apply(null,t.length===e?t:t.subarray(0,e));let n="";for(let r=0;r<e;r++)n+=String.fromCharCode(t[r]);return n};var u_t=(t,e)=>{const n=e||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,e));let r,i;const a=new Array(n*2);for(i=0,r=0;r<n;){let o=t[r++];if(o<128){a[i++]=o;continue}let s=rI[o];if(s>4){a[i++]=65533,r+=s-1;continue}for(o&=s===2?31:s===3?15:7;s>1&&r<n;)o=o<<6|t[r++]&63,s--;if(s>1){a[i++]=65533;continue}o<65536?a[i++]=o:(o-=65536,a[i++]=55296|o>>10&1023,a[i++]=56320|o&1023)}return c_t(a,i)},d_t=(t,e)=>{e=e||t.length,e>t.length&&(e=t.length);let n=e-1;for(;n>=0&&(t[n]&192)===128;)n--;return n<0||n===0?e:n+rI[t[n]]>e?n:e},iI={string2buf:l_t,buf2string:u_t,utf8border:d_t};function f_t(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var lCe=f_t;const cCe=Object.prototype.toString,{Z_NO_FLUSH:h_t,Z_SYNC_FLUSH:p_t,Z_FULL_FLUSH:v_t,Z_FINISH:g_t,Z_OK:w4,Z_STREAM_END:m_t,Z_DEFAULT_COMPRESSION:y_t,Z_DEFAULT_STRATEGY:b_t,Z_DEFLATED:x_t}=rA;function EW(t){this.options=LN.assign({level:y_t,method:x_t,chunkSize:16384,windowBits:15,memLevel:8,strategy:b_t},t||{});let e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new lCe,this.strm.avail_out=0;let n=KT.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(n!==w4)throw new Error(aE[n]);if(e.header&&KT.deflateSetHeader(this.strm,e.header),e.dictionary){let r;if(typeof e.dictionary=="string"?r=iI.string2buf(e.dictionary):cCe.call(e.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(e.dictionary):r=e.dictionary,n=KT.deflateSetDictionary(this.strm,r),n!==w4)throw new Error(aE[n]);this._dict_set=!0}}EW.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize;let i,a;if(this.ended)return!1;for(e===~~e?a=e:a=e===!0?g_t:h_t,typeof t=="string"?n.input=iI.string2buf(t):cCe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(a===p_t||a===v_t)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=KT.deflate(n,a),i===m_t)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=KT.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===w4;if(n.avail_out===0){this.onData(n.output);continue}if(a>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};EW.prototype.onData=function(t){this.chunks.push(t)};EW.prototype.onEnd=function(t){t===w4&&(this.result=LN.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};const vR=16209,S_t=16191;var E_t=function(e,n){let r,i,a,o,s,c,u,d,f,h,p,v,y,m,g,x,b,S,E,T,M,L,R,O;const N=e.state;r=e.next_in,R=e.input,i=r+(e.avail_in-5),a=e.next_out,O=e.output,o=a-(n-e.avail_out),s=a+(e.avail_out-257),c=N.dmax,u=N.wsize,d=N.whave,f=N.wnext,h=N.window,p=N.hold,v=N.bits,y=N.lencode,m=N.distcode,g=(1<<N.lenbits)-1,x=(1<<N.distbits)-1;e:do{v<15&&(p+=R[r++]<<v,v+=8,p+=R[r++]<<v,v+=8),b=y[p&g];t:for(;;){if(S=b>>>24,p>>>=S,v-=S,S=b>>>16&255,S===0)O[a++]=b&65535;else if(S&16){E=b&65535,S&=15,S&&(v<S&&(p+=R[r++]<<v,v+=8),E+=p&(1<<S)-1,p>>>=S,v-=S),v<15&&(p+=R[r++]<<v,v+=8,p+=R[r++]<<v,v+=8),b=m[p&x];n:for(;;){if(S=b>>>24,p>>>=S,v-=S,S=b>>>16&255,S&16){if(T=b&65535,S&=15,v<S&&(p+=R[r++]<<v,v+=8,v<S&&(p+=R[r++]<<v,v+=8)),T+=p&(1<<S)-1,T>c){e.msg="invalid distance too far back",N.mode=vR;break e}if(p>>>=S,v-=S,S=a-o,T>S){if(S=T-S,S>d&&N.sane){e.msg="invalid distance too far back",N.mode=vR;break e}if(M=0,L=h,f===0){if(M+=u-S,S<E){E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}}else if(f<S){if(M+=u+f-S,S-=f,S<E){E-=S;do O[a++]=h[M++];while(--S);if(M=0,f<E){S=f,E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}}}else if(M+=f-S,S<E){E-=S;do O[a++]=h[M++];while(--S);M=a-T,L=O}for(;E>2;)O[a++]=L[M++],O[a++]=L[M++],O[a++]=L[M++],E-=3;E&&(O[a++]=L[M++],E>1&&(O[a++]=L[M++]))}else{M=a-T;do O[a++]=O[M++],O[a++]=O[M++],O[a++]=O[M++],E-=3;while(E>2);E&&(O[a++]=O[M++],E>1&&(O[a++]=O[M++]))}}else if(S&64){e.msg="invalid distance code",N.mode=vR;break e}else{b=m[(b&65535)+(p&(1<<S)-1)];continue n}break}}else if(S&64)if(S&32){N.mode=S_t;break e}else{e.msg="invalid literal/length code",N.mode=vR;break e}else{b=y[(b&65535)+(p&(1<<S)-1)];continue t}break}}while(r<i&&a<s);E=v>>3,r-=E,v-=E<<3,p&=(1<<v)-1,e.next_in=r,e.next_out=a,e.avail_in=r<i?5+(i-r):5-(r-i),e.avail_out=a<s?257+(s-a):257-(a-s),N.hold=p,N.bits=v};const aS=15,Fse=852,Vse=592,Bse=0,U7=1,$se=2,C_t=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),w_t=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),T_t=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),__t=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),I_t=(t,e,n,r,i,a,o,s)=>{const c=s.bits;let u=0,d=0,f=0,h=0,p=0,v=0,y=0,m=0,g=0,x=0,b,S,E,T,M,L=null,R;const O=new Uint16Array(aS+1),N=new Uint16Array(aS+1);let U=null,k,D,V;for(u=0;u<=aS;u++)O[u]=0;for(d=0;d<r;d++)O[e[n+d]]++;for(p=c,h=aS;h>=1&&O[h]===0;h--);if(p>h&&(p=h),h===0)return i[a++]=1<<24|64<<16|0,i[a++]=1<<24|64<<16|0,s.bits=1,0;for(f=1;f<h&&O[f]===0;f++);for(p<f&&(p=f),m=1,u=1;u<=aS;u++)if(m<<=1,m-=O[u],m<0)return-1;if(m>0&&(t===Bse||h!==1))return-1;for(N[1]=0,u=1;u<aS;u++)N[u+1]=N[u]+O[u];for(d=0;d<r;d++)e[n+d]!==0&&(o[N[e[n+d]]++]=d);if(t===Bse?(L=U=o,R=20):t===U7?(L=C_t,U=w_t,R=257):(L=T_t,U=__t,R=0),x=0,d=0,u=f,M=a,v=p,y=0,E=-1,g=1<<p,T=g-1,t===U7&&g>Fse||t===$se&&g>Vse)return 1;for(;;){k=u-y,o[d]+1<R?(D=0,V=o[d]):o[d]>=R?(D=U[o[d]-R],V=L[o[d]-R]):(D=32+64,V=0),b=1<<u-y,S=1<<v,f=S;do S-=b,i[M+(x>>y)+S]=k<<24|D<<16|V|0;while(S!==0);for(b=1<<u-1;x&b;)b>>=1;if(b!==0?(x&=b-1,x+=b):x=0,d++,--O[u]===0){if(u===h)break;u=e[n+o[d]]}if(u>p&&(x&T)!==E){for(y===0&&(y=p),M+=f,v=u-y,m=1<<v;v+y<h&&(m-=O[v+y],!(m<=0));)v++,m<<=1;if(g+=1<<v,t===U7&&g>Fse||t===$se&&g>Vse)return 1;E=x&T,i[E]=p<<24|v<<16|M-a|0}}return x!==0&&(i[M+x]=u-y<<24|64<<16|0),s.bits=p,0};var YT=I_t;const A_t=0,uCe=1,dCe=2,{Z_FINISH:zse,Z_BLOCK:M_t,Z_TREES:gR,Z_OK:Cb,Z_STREAM_END:R_t,Z_NEED_DICT:L_t,Z_STREAM_ERROR:wh,Z_DATA_ERROR:fCe,Z_MEM_ERROR:hCe,Z_BUF_ERROR:O_t,Z_DEFLATED:Hse}=rA,ON=16180,Gse=16181,Wse=16182,jse=16183,Xse=16184,Zse=16185,Kse=16186,Yse=16187,qse=16188,Jse=16189,T4=16190,$v=16191,k7=16192,Qse=16193,F7=16194,ele=16195,tle=16196,nle=16197,rle=16198,mR=16199,yR=16200,ile=16201,ale=16202,ole=16203,sle=16204,lle=16205,V7=16206,cle=16207,ule=16208,Vs=16209,pCe=16210,vCe=16211,P_t=852,N_t=592,D_t=15,U_t=D_t,dle=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function k_t(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Hb=t=>{if(!t)return 1;const e=t.state;return!e||e.strm!==t||e.mode<ON||e.mode>vCe?1:0},gCe=t=>{if(Hb(t))return wh;const e=t.state;return t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=e.wrap&1),e.mode=ON,e.last=0,e.havedict=0,e.flags=-1,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new Int32Array(P_t),e.distcode=e.distdyn=new Int32Array(N_t),e.sane=1,e.back=-1,Cb},mCe=t=>{if(Hb(t))return wh;const e=t.state;return e.wsize=0,e.whave=0,e.wnext=0,gCe(t)},yCe=(t,e)=>{let n;if(Hb(t))return wh;const r=t.state;return e<0?(n=0,e=-e):(n=(e>>4)+5,e<48&&(e&=15)),e&&(e<8||e>15)?wh:(r.window!==null&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,mCe(t))},bCe=(t,e)=>{if(!t)return wh;const n=new k_t;t.state=n,n.strm=t,n.window=null,n.mode=ON;const r=yCe(t,e);return r!==Cb&&(t.state=null),r},F_t=t=>bCe(t,U_t);let fle=!0,B7,$7;const V_t=t=>{if(fle){B7=new Int32Array(512),$7=new Int32Array(32);let e=0;for(;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(YT(uCe,t.lens,0,288,B7,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;YT(dCe,t.lens,0,32,$7,0,t.work,{bits:5}),fle=!1}t.lencode=B7,t.lenbits=9,t.distcode=$7,t.distbits=5},xCe=(t,e,n,r)=>{let i;const a=t.state;return a.window===null&&(a.wsize=1<<a.wbits,a.wnext=0,a.whave=0,a.window=new Uint8Array(a.wsize)),r>=a.wsize?(a.window.set(e.subarray(n-a.wsize,n),0),a.wnext=0,a.whave=a.wsize):(i=a.wsize-a.wnext,i>r&&(i=r),a.window.set(e.subarray(n-r,n-r+i),a.wnext),r-=i,r?(a.window.set(e.subarray(n-r,n),0),a.wnext=r,a.whave=a.wsize):(a.wnext+=i,a.wnext===a.wsize&&(a.wnext=0),a.whave<a.wsize&&(a.whave+=i))),0},B_t=(t,e)=>{let n,r,i,a,o,s,c,u,d,f,h,p,v,y,m=0,g,x,b,S,E,T,M,L;const R=new Uint8Array(4);let O,N;const U=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Hb(t)||!t.output||!t.input&&t.avail_in!==0)return wh;n=t.state,n.mode===$v&&(n.mode=k7),o=t.next_out,i=t.output,c=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,f=s,h=c,L=Cb;e:for(;;)switch(n.mode){case ON:if(n.wrap===0){n.mode=k7;break}for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&2&&u===35615){n.wbits===0&&(n.wbits=15),n.check=0,R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0),u=0,d=0,n.mode=Gse;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((u&255)<<8)+(u>>8))%31){t.msg="incorrect header check",n.mode=Vs;break}if((u&15)!==Hse){t.msg="unknown compression method",n.mode=Vs;break}if(u>>>=4,d-=4,M=(u&15)+8,n.wbits===0&&(n.wbits=M),M>15||M>n.wbits){t.msg="invalid window size",n.mode=Vs;break}n.dmax=1<<n.wbits,n.flags=0,t.adler=n.check=1,n.mode=u&512?Jse:$v,u=0,d=0;break;case Gse:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.flags=u,(n.flags&255)!==Hse){t.msg="unknown compression method",n.mode=Vs;break}if(n.flags&57344){t.msg="unknown header flags set",n.mode=Vs;break}n.head&&(n.head.text=u>>8&1),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0,n.mode=Wse;case Wse:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.time=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,R[2]=u>>>16&255,R[3]=u>>>24&255,n.check=kc(n.check,R,4,0)),u=0,d=0,n.mode=jse;case jse:for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.head&&(n.head.xflags=u&255,n.head.os=u>>8),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0,n.mode=Xse;case Xse:if(n.flags&1024){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length=u,n.head&&(n.head.extra_len=u),n.flags&512&&n.wrap&4&&(R[0]=u&255,R[1]=u>>>8&255,n.check=kc(n.check,R,2,0)),u=0,d=0}else n.head&&(n.head.extra=null);n.mode=Zse;case Zse:if(n.flags&1024&&(p=n.length,p>s&&(p=s),p&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(a,a+p),M)),n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,n.length-=p),n.length))break e;n.length=0,n.mode=Kse;case Kse:if(n.flags&2048){if(s===0)break e;p=0;do M=r[a+p++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M));while(M&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=Yse;case Yse:if(n.flags&4096){if(s===0)break e;p=0;do M=r[a+p++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M));while(M&&p<s);if(n.flags&512&&n.wrap&4&&(n.check=kc(n.check,r,p,a)),s-=p,a+=p,M)break e}else n.head&&(n.head.comment=null);n.mode=qse;case qse:if(n.flags&512){for(;d<16;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.check&65535)){t.msg="header crc mismatch",n.mode=Vs;break}u=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=$v;break;case Jse:for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}t.adler=n.check=dle(u),u=0,d=0,n.mode=T4;case T4:if(n.havedict===0)return t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,L_t;t.adler=n.check=1,n.mode=$v;case $v:if(e===M_t||e===gR)break e;case k7:if(n.last){u>>>=d&7,d-=d&7,n.mode=V7;break}for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}switch(n.last=u&1,u>>>=1,d-=1,u&3){case 0:n.mode=Qse;break;case 1:if(V_t(n),n.mode=mR,e===gR){u>>>=2,d-=2;break e}break;case 2:n.mode=tle;break;case 3:t.msg="invalid block type",n.mode=Vs}u>>>=2,d-=2;break;case Qse:for(u>>>=d&7,d-=d&7;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if((u&65535)!==(u>>>16^65535)){t.msg="invalid stored block lengths",n.mode=Vs;break}if(n.length=u&65535,u=0,d=0,n.mode=F7,e===gR)break e;case F7:n.mode=ele;case ele:if(p=n.length,p){if(p>s&&(p=s),p>c&&(p=c),p===0)break e;i.set(r.subarray(a,a+p),o),s-=p,a+=p,c-=p,o+=p,n.length-=p;break}n.mode=$v;break;case tle:for(;d<14;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.nlen=(u&31)+257,u>>>=5,d-=5,n.ndist=(u&31)+1,u>>>=5,d-=5,n.ncode=(u&15)+4,u>>>=4,d-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=Vs;break}n.have=0,n.mode=nle;case nle:for(;n.have<n.ncode;){for(;d<3;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.lens[U[n.have++]]=u&7,u>>>=3,d-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,O={bits:n.lenbits},L=YT(A_t,n.lens,0,19,n.lencode,0,n.work,O),n.lenbits=O.bits,L){t.msg="invalid code lengths set",n.mode=Vs;break}n.have=0,n.mode=rle;case rle:for(;n.have<n.nlen+n.ndist;){for(;m=n.lencode[u&(1<<n.lenbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(b<16)u>>>=g,d-=g,n.lens[n.have++]=b;else{if(b===16){for(N=g+2;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(u>>>=g,d-=g,n.have===0){t.msg="invalid bit length repeat",n.mode=Vs;break}M=n.lens[n.have-1],p=3+(u&3),u>>>=2,d-=2}else if(b===17){for(N=g+3;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=g,d-=g,M=0,p=3+(u&7),u>>>=3,d-=3}else{for(N=g+7;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=g,d-=g,M=0,p=11+(u&127),u>>>=7,d-=7}if(n.have+p>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=Vs;break}for(;p--;)n.lens[n.have++]=M}}if(n.mode===Vs)break;if(n.lens[256]===0){t.msg="invalid code -- missing end-of-block",n.mode=Vs;break}if(n.lenbits=9,O={bits:n.lenbits},L=YT(uCe,n.lens,0,n.nlen,n.lencode,0,n.work,O),n.lenbits=O.bits,L){t.msg="invalid literal/lengths set",n.mode=Vs;break}if(n.distbits=6,n.distcode=n.distdyn,O={bits:n.distbits},L=YT(dCe,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,O),n.distbits=O.bits,L){t.msg="invalid distances set",n.mode=Vs;break}if(n.mode=mR,e===gR)break e;case mR:n.mode=yR;case yR:if(s>=6&&c>=258){t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,E_t(t,h),o=t.next_out,i=t.output,c=t.avail_out,a=t.next_in,r=t.input,s=t.avail_in,u=n.hold,d=n.bits,n.mode===$v&&(n.back=-1);break}for(n.back=0;m=n.lencode[u&(1<<n.lenbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(x&&!(x&240)){for(S=g,E=x,T=b;m=n.lencode[T+((u&(1<<S+E)-1)>>S)],g=m>>>24,x=m>>>16&255,b=m&65535,!(S+g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=g,d-=g,n.back+=g,n.length=b,x===0){n.mode=lle;break}if(x&32){n.back=-1,n.mode=$v;break}if(x&64){t.msg="invalid literal/length code",n.mode=Vs;break}n.extra=x&15,n.mode=ile;case ile:if(n.extra){for(N=n.extra;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.length+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=ale;case ale:for(;m=n.distcode[u&(1<<n.distbits)-1],g=m>>>24,x=m>>>16&255,b=m&65535,!(g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(!(x&240)){for(S=g,E=x,T=b;m=n.distcode[T+((u&(1<<S+E)-1)>>S)],g=m>>>24,x=m>>>16&255,b=m&65535,!(S+g<=d);){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}u>>>=S,d-=S,n.back+=S}if(u>>>=g,d-=g,n.back+=g,x&64){t.msg="invalid distance code",n.mode=Vs;break}n.offset=b,n.extra=x&15,n.mode=ole;case ole:if(n.extra){for(N=n.extra;d<N;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}n.offset+=u&(1<<n.extra)-1,u>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=Vs;break}n.mode=sle;case sle:if(c===0)break e;if(p=h-c,n.offset>p){if(p=n.offset-p,p>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=Vs;break}p>n.wnext?(p-=n.wnext,v=n.wsize-p):v=n.wnext-p,p>n.length&&(p=n.length),y=n.window}else y=i,v=o-n.offset,p=n.length;p>c&&(p=c),c-=p,n.length-=p;do i[o++]=y[v++];while(--p);n.length===0&&(n.mode=yR);break;case lle:if(c===0)break e;i[o++]=n.length,c--,n.mode=yR;break;case V7:if(n.wrap){for(;d<32;){if(s===0)break e;s--,u|=r[a++]<<d,d+=8}if(h-=c,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?kc(n.check,i,h,o-h):nI(n.check,i,h,o-h)),h=c,n.wrap&4&&(n.flags?u:dle(u))!==n.check){t.msg="incorrect data check",n.mode=Vs;break}u=0,d=0}n.mode=cle;case cle:if(n.wrap&&n.flags){for(;d<32;){if(s===0)break e;s--,u+=r[a++]<<d,d+=8}if(n.wrap&4&&u!==(n.total&4294967295)){t.msg="incorrect length check",n.mode=Vs;break}u=0,d=0}n.mode=ule;case ule:L=R_t;break e;case Vs:L=fCe;break e;case pCe:return hCe;case vCe:default:return wh}return t.next_out=o,t.avail_out=c,t.next_in=a,t.avail_in=s,n.hold=u,n.bits=d,(n.wsize||h!==t.avail_out&&n.mode<Vs&&(n.mode<V7||e!==zse))&&xCe(t,t.output,t.next_out,h-t.avail_out),f-=t.avail_in,h-=t.avail_out,t.total_in+=f,t.total_out+=h,n.total+=h,n.wrap&4&&h&&(t.adler=n.check=n.flags?kc(n.check,i,h,t.next_out-h):nI(n.check,i,h,t.next_out-h)),t.data_type=n.bits+(n.last?64:0)+(n.mode===$v?128:0)+(n.mode===mR||n.mode===F7?256:0),(f===0&&h===0||e===zse)&&L===Cb&&(L=O_t),L},$_t=t=>{if(Hb(t))return wh;let e=t.state;return e.window&&(e.window=null),t.state=null,Cb},z_t=(t,e)=>{if(Hb(t))return wh;const n=t.state;return n.wrap&2?(n.head=e,e.done=!1,Cb):wh},H_t=(t,e)=>{const n=e.length;let r,i,a;return Hb(t)||(r=t.state,r.wrap!==0&&r.mode!==T4)?wh:r.mode===T4&&(i=1,i=nI(i,e,n,0),i!==r.check)?fCe:(a=xCe(t,e,n,n),a?(r.mode=pCe,hCe):(r.havedict=1,Cb))};var G_t=mCe,W_t=yCe,j_t=gCe,X_t=F_t,Z_t=bCe,K_t=B_t,Y_t=$_t,q_t=z_t,J_t=H_t,Q_t="pako inflate (from Nodeca project)",tg={inflateReset:G_t,inflateReset2:W_t,inflateResetKeep:j_t,inflateInit:X_t,inflateInit2:Z_t,inflate:K_t,inflateEnd:Y_t,inflateGetHeader:q_t,inflateSetDictionary:J_t,inflateInfo:Q_t};function eIt(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var tIt=eIt;const SCe=Object.prototype.toString,{Z_NO_FLUSH:nIt,Z_FINISH:rIt,Z_OK:aI,Z_STREAM_END:z7,Z_NEED_DICT:H7,Z_STREAM_ERROR:iIt,Z_DATA_ERROR:hle,Z_MEM_ERROR:aIt}=rA;function aA(t){this.options=LN.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});const e=this.options;e.raw&&e.windowBits>=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,e.windowBits===0&&(e.windowBits=-15)),e.windowBits>=0&&e.windowBits<16&&!(t&&t.windowBits)&&(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&(e.windowBits&15||(e.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new lCe,this.strm.avail_out=0;let n=tg.inflateInit2(this.strm,e.windowBits);if(n!==aI)throw new Error(aE[n]);if(this.header=new tIt,tg.inflateGetHeader(this.strm,this.header),e.dictionary&&(typeof e.dictionary=="string"?e.dictionary=iI.string2buf(e.dictionary):SCe.call(e.dictionary)==="[object ArrayBuffer]"&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=tg.inflateSetDictionary(this.strm,e.dictionary),n!==aI)))throw new Error(aE[n])}aA.prototype.push=function(t,e){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let a,o,s;if(this.ended)return!1;for(e===~~e?o=e:o=e===!0?rIt:nIt,SCe.call(t)==="[object ArrayBuffer]"?n.input=new Uint8Array(t):n.input=t,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),a=tg.inflate(n,o),a===H7&&i&&(a=tg.inflateSetDictionary(n,i),a===aI?a=tg.inflate(n,o):a===hle&&(a=H7));n.avail_in>0&&a===z7&&n.state.wrap>0&&t[n.next_in]!==0;)tg.inflateReset(n),a=tg.inflate(n,o);switch(a){case iIt:case hle:case H7:case aIt:return this.onEnd(a),this.ended=!0,!1}if(s=n.avail_out,n.next_out&&(n.avail_out===0||a===z7))if(this.options.to==="string"){let c=iI.utf8border(n.output,n.next_out),u=n.next_out-c,d=iI.buf2string(n.output,c);n.next_out=u,n.avail_out=r-u,u&&n.output.set(n.output.subarray(c,c+u),0),this.onData(d)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(a===aI&&s===0)){if(a===z7)return a=tg.inflateEnd(this.strm),this.onEnd(a),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};aA.prototype.onData=function(t){this.chunks.push(t)};aA.prototype.onEnd=function(t){t===aI&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=LN.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function CW(t,e){const n=new aA(e);if(n.push(t),n.err)throw n.msg||aE[n.err];return n.result}function oIt(t,e){return e=e||{},e.raw=!0,CW(t,e)}var sIt=aA,lIt=CW,cIt=oIt,uIt=CW,dIt=rA,fIt={Inflate:sIt,inflate:lIt,inflateRaw:cIt,ungzip:uIt,constants:dIt};const{Inflate:yMt,inflate:hIt,inflateRaw:bMt,ungzip:xMt}=fIt;var ECe=hIt;function pIt(t){const e=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),n=ECe(e);return new DataView(n.buffer,n.byteOffset,n.byteLength)}const vIt={ignoreImageData:!1};class CCe extends MN{constructor(e){super(e),this._nextIFD=0}get isMultiPage(){let e=0;for(this.decodeHeader();this._nextIFD;)if(e++,this.decodeIFD({ignoreImageData:!0},!0),e===2)return!0;if(e===1)return!1;throw Kv("ifdCount",e)}get pageCount(){let e=0;for(this.decodeHeader();this._nextIFD;)e++,this.decodeIFD({ignoreImageData:!0},!0);if(e>0)return e;throw Kv("ifdCount",e)}decode(e={}){const{pages:n}=e;xIt(n);const r=n?Math.max(...n):1/0;e={...vIt,...e};const i=[];this.decodeHeader();let a=0;for(;this._nextIFD;){if(n){if(n.includes(a)?i.push(this.decodeIFD(e,!0)):this.decodeIFD({ignoreImageData:!0},!0),a===r)break}else i.push(this.decodeIFD(e,!0));a++}if(a<r&&r!==1/0)throw new RangeError(`Index ${r} is out of bounds. The stack only contains ${a} images.`);return i}decodeHeader(){const e=this.readUint16();if(e===18761)this.setLittleEndian();else if(e===19789)this.setBigEndian();else throw new Error(`invalid byte order: 0x${e.toString(16)}`);if(this.readUint16()!==42)throw new Error("not a TIFF file");this._nextIFD=this.readUint32()}decodeIFD(e,n){this.seek(this._nextIFD);let r;if(n)r=new Ise;else{if(!e.kind)throw new Error("kind is missing");r=new VEe(e.kind)}const i=this.readUint16();for(let a=0;a<i;a++)this.decodeIFDEntry(r);if(!e.ignoreImageData){if(!(r instanceof Ise))throw new Error("must be a tiff ifd");this.decodeImageData(r)}return this._nextIFD=this.readUint32(),r}decodeIFDEntry(e){const n=this.offset,r=this.readUint16(),i=this.readUint16(),a=this.readUint32();if(i<1||i>12){this.skip(4);return}Ewt(i,a)>4&&this.seek(this.readUint32());const s=Cwt(this,i,a);if(e.fields.set(r,s),r===34665||r===34853){const c=this.offset;let u="exif";r===34665?u="exif":r===34853&&(u="gps"),this._nextIFD=s,e[u]=this.decodeIFD({kind:u,ignoreImageData:!0},!1),this.offset=c}this.seek(n),this.skip(12)}decodeImageData(e){const n=e.orientation;if(n&&n!==1)throw Kv("orientation",n);switch(e.type){case 0:case 1:case 2:case 3:this.readStripData(e);break;default:throw Kv("image type",e.type)}if(this.applyPredictor(e),this.convertAlpha(e),e.type===0){const i=2**e.bitsPerSample-1;for(let a=0;a<e.data.length;a++)e.data[a]=i-e.data[a]}}readStripData(e){const n=e.width,r=e.height,i=e.bitsPerSample,a=e.sampleFormat,o=n*r*e.samplesPerPixel,s=gIt(o,i,a),u=e.rowsPerStrip*n*e.samplesPerPixel,d=e.stripOffsets,f=e.stripByteCounts||gwt(e);let h=o,p=0;for(let v=0;v<d.length;v++){const y=new DataView(this.buffer,this.byteOffset+d[v],f[v]),m=h>u?u:h;h-=m;let g=y;switch(e.compression){case 1:break;case 5:{g=Vwt(y);break}case 8:{g=pIt(y);break}case 2:throw Kv("Compression","CCITT Group 3");case 32773:throw Kv("Compression","PackBits");default:throw Kv("Compression",e.compression)}p=this.fillUncompressed(i,a,s,g,p,m)}e.data=s}fillUncompressed(e,n,r,i,a,o){if(e===8)return mIt(r,i,a,o);if(e===16)return yIt(r,i,a,o,this.isLittleEndian());if(e===32&&n===3)return bIt(r,i,a,o,this.isLittleEndian());throw Kv("bitDepth",e)}applyPredictor(e){const n=e.bitsPerSample;switch(e.predictor){case 1:break;case 2:{if(n===8)mwt(e.data,e.width,e.components);else if(n===16)ywt(e.data,e.width,e.components);else throw new Error(`Horizontal differencing is only supported for images with a bit depth of ${n}`);break}default:throw new Error(`invalid predictor: ${e.predictor}`)}}convertAlpha(e){if(e.alpha&&e.associatedAlpha){const{data:n,components:r,maxSampleValue:i}=e;for(let a=0;a<n.length;a+=r){const o=n[a+r-1];for(let s=0;s<r-1;s++)n[a+s]=Math.round(n[a+s]*i/o)}}}}function gIt(t,e,n){if(e===8)return new Uint8Array(t);if(e===16)return new Uint16Array(t);if(e===32&&n===3)return new Float32Array(t);throw Kv("bit depth / sample format",`${e} / ${n}`)}function mIt(t,e,n,r){for(let i=0;i<r;i++)t[n++]=e.getUint8(i);return n}function yIt(t,e,n,r,i){for(let a=0;a<r*2;a+=2)t[n++]=e.getUint16(a,i);return n}function bIt(t,e,n,r,i){for(let a=0;a<r*4;a+=4)t[n++]=e.getFloat32(a,i);return n}function Kv(t,e){return new Error(`Unsupported ${t}: ${e}`)}function xIt(t){if(t){for(const e of t)if(e<0||!Number.isInteger(e))throw new RangeError(`Index ${e} is invalid. Must be a positive integer.`)}}function G7(t,e){return new CCe(t).decode(e)}function ple(t){return new CCe(t).pageCount}function gu(t){return(e,...n)=>SIt(t,e,n)}function KE(t,e){return gu(wCe(t,e).get)}const{apply:SIt,construct:SMt,defineProperty:EMt,get:CMt,getOwnPropertyDescriptor:wCe,getPrototypeOf:wW,has:wMt,ownKeys:EIt,set:TMt,setPrototypeOf:_Mt}=Reflect,{iterator:oA,species:IMt,toStringTag:CIt,for:AMt}=Symbol,wIt=Object,{create:TW,defineProperty:TIt,freeze:MMt,is:RMt}=wIt,_It=Array,IIt=_It.prototype,TCe=IIt[oA],AIt=gu(TCe),_Ce=ArrayBuffer,MIt=_Ce.prototype;KE(MIt,"byteLength");const vle=typeof SharedArrayBuffer<"u"?SharedArrayBuffer:null;vle&&KE(vle.prototype,"byteLength");const ICe=wW(Uint8Array);ICe.from;const Md=ICe.prototype;Md[oA];gu(Md.keys);gu(Md.values);gu(Md.entries);gu(Md.set);gu(Md.reverse);gu(Md.fill);gu(Md.copyWithin);gu(Md.sort);gu(Md.slice);gu(Md.subarray);KE(Md,"buffer");KE(Md,"byteOffset");KE(Md,"length");KE(Md,CIt);const RIt=Uint8Array,ACe=Uint16Array,_W=Uint32Array,LIt=Float32Array,oI=wW([][oA]()),MCe=gu(oI.next),OIt=gu(function*(){}().next),PIt=wW(oI),NIt=DataView.prototype,DIt=gu(NIt.getUint16),IW=WeakMap,RCe=IW.prototype,LCe=gu(RCe.get),UIt=gu(RCe.set),OCe=new IW,kIt=TW(null,{next:{value:function(){const e=LCe(OCe,this);return MCe(e)}},[oA]:{value:function(){return this}}});function FIt(t){if(t[oA]===TCe&&oI.next===MCe)return t;const e=TW(kIt);return UIt(OCe,e,AIt(t)),e}const VIt=new IW,BIt=TW(PIt,{next:{value:function(){const e=LCe(VIt,this);return OIt(e)},writable:!0,configurable:!0}});for(const t of EIt(oI))t!=="next"&&TIt(BIt,t,wCe(oI,t));const PCe=new _Ce(4),$It=new LIt(PCe),zIt=new _W(PCe),Np=new ACe(512),Dp=new RIt(512);for(let t=0;t<256;++t){const e=t-127;e<-24?(Np[t]=0,Np[t|256]=32768,Dp[t]=24,Dp[t|256]=24):e<-14?(Np[t]=1024>>-e-14,Np[t|256]=1024>>-e-14|32768,Dp[t]=-e-1,Dp[t|256]=-e-1):e<=15?(Np[t]=e+15<<10,Np[t|256]=e+15<<10|32768,Dp[t]=13,Dp[t|256]=13):e<128?(Np[t]=31744,Np[t|256]=64512,Dp[t]=24,Dp[t|256]=24):(Np[t]=31744,Np[t|256]=64512,Dp[t]=13,Dp[t|256]=13)}const AW=new _W(2048);for(let t=1;t<1024;++t){let e=t<<13,n=0;for(;!(e&8388608);)e<<=1,n-=8388608;e&=-8388609,n+=947912704,AW[t]=e|n}for(let t=1024;t<2048;++t)AW[t]=939524096+(t-1024<<13);const YE=new _W(64);for(let t=1;t<31;++t)YE[t]=t<<23;YE[31]=1199570944;YE[32]=2147483648;for(let t=33;t<63;++t)YE[t]=2147483648+(t-32<<23);YE[63]=3347054592;const NCe=new ACe(64);for(let t=1;t<64;++t)t!==32&&(NCe[t]=1024);function HIt(t){const e=t>>10;return zIt[0]=AW[NCe[e]+(t&1023)]+YE[e],$It[0]}function DCe(t,e,...n){return HIt(DIt(t,e,...FIt(n)))}var M2={},GIt={get exports(){return M2},set exports(t){M2=t}};function UCe(t,e,n){const r=n&&n.debug||!1;r&&console.log("[xml-utils] getting "+e+" in "+t);const i=typeof t=="object"?t.outer:t,a=i.slice(0,i.indexOf(">")+1),o=['"',"'"];for(let s=0;s<o.length;s++){const c=o[s],u=e+"\\="+c+"([^"+c+"]*)"+c;r&&console.log("[xml-utils] pattern:",u);const f=new RegExp(u).exec(a);if(r&&console.log("[xml-utils] match:",f),f)return f[1]}}GIt.exports=UCe;M2.default=UCe;var _4={},WIt={get exports(){return _4},set exports(t){_4=t}},I4={},jIt={get exports(){return I4},set exports(t){I4=t}},A4={},XIt={get exports(){return A4},set exports(t){A4=t}};function kCe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index:-1}XIt.exports=kCe;A4.default=kCe;var M4={},ZIt={get exports(){return M4},set exports(t){M4=t}};function FCe(t,e,n){const i=new RegExp(e).exec(t.slice(n));return i?n+i.index+i[0].length-1:-1}ZIt.exports=FCe;M4.default=FCe;var R4={},KIt={get exports(){return R4},set exports(t){R4=t}};function VCe(t,e){const n=new RegExp(e,"g"),r=t.match(n);return r?r.length:0}KIt.exports=VCe;R4.default=VCe;const YIt=A4,W7=M4,gle=R4;function BCe(t,e,n){const r=n&&n.debug||!1,i=!(n&&typeof n.nested===!1),a=n&&n.startIndex||0;r&&console.log("[xml-utils] starting findTagByName with",e," and ",n);const o=YIt(t,`<${e}[
4310
4310
  >/]`,a);if(r&&console.log("[xml-utils] start:",o),o===-1)return;const s=t.slice(o+e.length);let c=W7(s,"^[^<]*[ /]>",0);const u=c!==-1&&s[c-1]==="/";if(r&&console.log("[xml-utils] selfClosing:",u),u===!1)if(i){let p=0,v=1,y=0;for(;(c=W7(s,"[ /]"+e+">",p))!==-1;){const m=s.substring(p,c+1);if(v+=gle(m,"<"+e+`[
4311
- >]`),y+=gle(m,"</"+e+">"),y>=v)break;p=c}}else c=W7(s,"[ /]"+e+">",0);const d=o+e.length+c+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;const f=t.slice(o,d);let h;return u?h=null:h=f.slice(f.indexOf(">")+1,f.lastIndexOf("<")),{inner:h,outer:f,start:o,end:d}}jIt.exports=BCe;I4.default=BCe;const qIt=I4;function $Ce(t,e,n){const r=[],i=n&&n.debug||!1,a=n&&typeof n.nested=="boolean"?n.nested:!0;let o=n&&n.startIndex||0,s;for(;s=qIt(t,e,{debug:i,startIndex:o});)a?o=s.start+1+e.length:o=s.end,r.push(s);return i&&console.log("findTagsByName found",r.length,"tags"),r}WIt.exports=$Ce;_4.default=$Ce;const qT={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},zp={};for(const t in qT)qT.hasOwnProperty(t)&&(zp[qT[t]]=parseInt(t,10));const JIt=[zp.BitsPerSample,zp.ExtraSamples,zp.SampleFormat,zp.StripByteCounts,zp.StripOffsets,zp.StripRowCounts,zp.TileByteCounts,zp.TileOffsets,zp.SubIFDs],j7={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},Sa={};for(const t in j7)j7.hasOwnProperty(t)&&(Sa[j7[t]]=parseInt(t,10));const ff={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},QIt={Unspecified:0,Assocalpha:1,Unassalpha:2},eAt={Version:0,AddCompression:1},tAt={None:0,Deflate:1,Zstandard:2},nAt={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function rAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=256-t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function iAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function aAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3),a=e.length/3,o=e.length/3*2;for(let s=0,c=0;s<t.length;++s,c+=3){const u=t[s];i[c]=e[u]/65536*256,i[c+1]=e[u+a]/65536*256,i[c+2]=e[u+o]/65536*256}return i}function oAt(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=4,a+=3){const o=t[i],s=t[i+1],c=t[i+2],u=t[i+3];r[a]=255*((255-o)/256)*((255-u)/256),r[a+1]=255*((255-s)/256)*((255-u)/256),r[a+2]=255*((255-c)/256)*((255-u)/256)}return r}function sAt(t){const{width:e,height:n}=t,r=new Uint8ClampedArray(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i],s=t[i+1],c=t[i+2];r[a]=o+1.402*(c-128),r[a+1]=o-.34414*(s-128)-.71414*(c-128),r[a+2]=o+1.772*(s-128)}return r}const lAt=.95047,cAt=1,uAt=1.08883;function dAt(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i+0],s=t[i+1]<<24>>24,c=t[i+2]<<24>>24;let u=(o+16)/116,d=s/500+u,f=u-c/200,h,p,v;d=lAt*(d*d*d>.008856?d*d*d:(d-16/116)/7.787),u=cAt*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),f=uAt*(f*f*f>.008856?f*f*f:(f-16/116)/7.787),h=d*3.2406+u*-1.5372+f*-.4986,p=d*-.9689+u*1.8758+f*.0415,v=d*.0557+u*-.204+f*1.057,h=h>.0031308?1.055*h**(1/2.4)-.055:12.92*h,p=p>.0031308?1.055*p**(1/2.4)-.055:12.92*p,v=v>.0031308?1.055*v**(1/2.4)-.055:12.92*v,r[a]=Math.max(0,Math.min(1,h))*255,r[a+1]=Math.max(0,Math.min(1,p))*255,r[a+2]=Math.max(0,Math.min(1,v))*255}return r}const zCe=new Map;function N0(t,e){Array.isArray(t)||(t=[t]),t.forEach(n=>zCe.set(n,e))}async function fAt(t){const e=zCe.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);const n=await e();return new n(t)}N0([void 0,1],()=>Promise.resolve().then(()=>require("./raw-9c0f4034.js")).then(t=>t.default));N0(5,()=>Promise.resolve().then(()=>require("./lzw-f00e8c8c.js")).then(t=>t.default));N0(6,()=>{throw new Error("old style JPEG compression is not supported.")});N0(7,()=>Promise.resolve().then(()=>require("./jpeg-f3c7cefc.js")).then(t=>t.default));N0([8,32946],()=>Promise.resolve().then(()=>require("./deflate-7ee40dd3.js")).then(t=>t.default));N0(32773,()=>Promise.resolve().then(()=>require("./packbits-58fd9c05.js")).then(t=>t.default));N0(34887,()=>Promise.resolve().then(()=>require("./lerc-0cc2a934.js")).then(async t=>(await t.zstd.init(),t)).then(t=>t.default));N0(50001,()=>Promise.resolve().then(()=>require("./webimage-bc81928d.js")).then(t=>t.default));function PN(t,e,n,r=1){return new(Object.getPrototypeOf(t)).constructor(e*n*r)}function hAt(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const c=PN(s,r,i);for(let u=0;u<i;++u){const d=Math.min(Math.round(o*u),n-1);for(let f=0;f<r;++f){const h=Math.min(Math.round(a*f),e-1),p=s[d*e+h];c[u*r+f]=p}}return c})}function R2(t,e,n){return(1-n)*t+n*e}function pAt(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const c=PN(s,r,i);for(let u=0;u<i;++u){const d=o*u,f=Math.floor(d),h=Math.min(Math.ceil(d),n-1);for(let p=0;p<r;++p){const v=a*p,y=v%1,m=Math.floor(v),g=Math.min(Math.ceil(v),e-1),x=s[f*e+m],b=s[f*e+g],S=s[h*e+m],E=s[h*e+g],T=R2(R2(x,b,y),R2(S,E,y),d%1);c[u*r+p]=T}}return c})}function vAt(t,e,n,r,i,a="nearest"){switch(a.toLowerCase()){case"nearest":return hAt(t,e,n,r,i);case"bilinear":case"linear":return pAt(t,e,n,r,i);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function gAt(t,e,n,r,i,a){const o=e/r,s=n/i,c=PN(t,r,i,a);for(let u=0;u<i;++u){const d=Math.min(Math.round(s*u),n-1);for(let f=0;f<r;++f){const h=Math.min(Math.round(o*f),e-1);for(let p=0;p<a;++p){const v=t[d*e*a+h*a+p];c[u*r*a+f*a+p]=v}}}return c}function mAt(t,e,n,r,i,a){const o=e/r,s=n/i,c=PN(t,r,i,a);for(let u=0;u<i;++u){const d=s*u,f=Math.floor(d),h=Math.min(Math.ceil(d),n-1);for(let p=0;p<r;++p){const v=o*p,y=v%1,m=Math.floor(v),g=Math.min(Math.ceil(v),e-1);for(let x=0;x<a;++x){const b=t[f*e*a+m*a+x],S=t[f*e*a+g*a+x],E=t[h*e*a+m*a+x],T=t[h*e*a+g*a+x],M=R2(R2(b,S,y),R2(E,T,y),d%1);c[u*r*a+p*a+x]=M}}}return c}function yAt(t,e,n,r,i,a,o="nearest"){switch(o.toLowerCase()){case"nearest":return gAt(t,e,n,r,i,a);case"bilinear":case"linear":return mAt(t,e,n,r,i,a);default:throw new Error(`Unsupported resampling method: '${o}'`)}}function bAt(t,e,n){let r=0;for(let i=e;i<n;++i)r+=t[i];return r}function PB(t,e,n){switch(t){case 1:if(e<=8)return new Uint8Array(n);if(e<=16)return new Uint16Array(n);if(e<=32)return new Uint32Array(n);break;case 2:if(e===8)return new Int8Array(n);if(e===16)return new Int16Array(n);if(e===32)return new Int32Array(n);break;case 3:switch(e){case 16:case 32:return new Float32Array(n);case 64:return new Float64Array(n)}break}throw Error("Unsupported data format/bitsPerSample")}function xAt(t,e){return(t===1||t===2)&&e<=32&&e%8===0?!1:!(t===3&&(e===16||e===32||e===64))}function SAt(t,e,n,r,i,a,o){const s=new DataView(t),c=n===2?o*a:o*a*r,u=n===2?1:r,d=PB(e,i,c),f=parseInt("1".repeat(i),2);if(e===1){let h;n===1?h=r*i:h=i;let p=a*h;p&7&&(p=p+7&-8);for(let v=0;v<o;++v){const y=v*p;for(let m=0;m<a;++m){const g=y+m*u*i;for(let x=0;x<u;++x){const b=g+x*i,S=(v*a+m)*u+x,E=Math.floor(b/8),T=b%8;if(T+i<=8)d[S]=s.getUint8(E)>>8-i-T&f;else if(T+i<=16)d[S]=s.getUint16(E)>>16-i-T&f;else if(T+i<=24){const M=s.getUint16(E)<<8|s.getUint8(E+2);d[S]=M>>24-i-T&f}else d[S]=s.getUint32(E)>>32-i-T&f}}}}return d.buffer}class EAt{constructor(e,n,r,i,a,o){this.fileDirectory=e,this.geoKeys=n,this.dataView=r,this.littleEndian=i,this.tiles=a?{}:null,this.isTiled=!e.StripOffsets;const s=e.PlanarConfiguration;if(this.planarConfiguration=typeof s>"u"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let n=0;n<this.fileDirectory.BitsPerSample.length;++n)e+=this.getSampleByteSize(n);return e}getSampleByteSize(e){if(e>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){const n=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,r=this.fileDirectory.BitsPerSample[e];switch(n){case 1:if(r<=8)return DataView.prototype.getUint8;if(r<=16)return DataView.prototype.getUint16;if(r<=32)return DataView.prototype.getUint32;break;case 2:if(r<=8)return DataView.prototype.getInt8;if(r<=16)return DataView.prototype.getInt16;if(r<=32)return DataView.prototype.getInt32;break;case 3:switch(r){case 16:return function(i,a){return DCe(this,i,a)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,n){const r=this.getSampleFormat(e),i=this.getBitsPerSample(e);return PB(r,i,n)}async getTileOrStrip(e,n,r,i,a){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let c;const{tiles:u}=this;this.planarConfiguration===1?c=n*o+e:this.planarConfiguration===2&&(c=r*o*s+n*o+e);let d,f;this.isTiled?(d=this.fileDirectory.TileOffsets[c],f=this.fileDirectory.TileByteCounts[c]):(d=this.fileDirectory.StripOffsets[c],f=this.fileDirectory.StripByteCounts[c]);const h=(await this.source.fetch([{offset:d,length:f}],a))[0];let p;return u===null||!u[c]?(p=(async()=>{let v=await i.decode(this.fileDirectory,h);const y=this.getSampleFormat(),m=this.getBitsPerSample();return xAt(y,m)&&(v=SAt(v,y,this.planarConfiguration,this.getSamplesPerPixel(),m,this.getTileWidth(),this.getBlockHeight(n))),v})(),u!==null&&(u[c]=p)):p=u[c],{x:e,y:n,sample:r,data:await p}}async _readRaster(e,n,r,i,a,o,s,c,u){const d=this.getTileWidth(),f=this.getTileHeight(),h=this.getWidth(),p=this.getHeight(),v=Math.max(Math.floor(e[0]/d),0),y=Math.min(Math.ceil(e[2]/d),Math.ceil(h/d)),m=Math.max(Math.floor(e[1]/f),0),g=Math.min(Math.ceil(e[3]/f),Math.ceil(p/f)),x=e[2]-e[0];let b=this.getBytesPerPixel();const S=[],E=[];for(let L=0;L<n.length;++L)this.planarConfiguration===1?S.push(bAt(this.fileDirectory.BitsPerSample,0,n[L])/8):S.push(0),E.push(this.getReaderForSample(n[L]));const T=[],{littleEndian:M}=this;for(let L=m;L<g;++L)for(let R=v;R<y;++R){let O;this.planarConfiguration===1&&(O=this.getTileOrStrip(R,L,0,a,u));for(let N=0;N<n.length;++N){const U=N,k=n[N];this.planarConfiguration===2&&(b=this.getSampleByteSize(k),O=this.getTileOrStrip(R,L,k,a,u));const D=O.then(V=>{const B=V.data,F=new DataView(B),j=this.getBlockHeight(V.y),K=V.y*f,G=V.x*d,W=K+j,J=(V.x+1)*d,re=E[U],Z=Math.min(j,j-(W-e[3]),p-K),Y=Math.min(d,d-(J-e[2]),h-G);for(let ne=Math.max(0,e[1]-K);ne<Z;++ne)for(let q=Math.max(0,e[0]-G);q<Y;++q){const te=(ne*d+q)*b,de=re.call(F,te+S[U],M);let se;i?(se=(ne+K-e[1])*x*n.length+(q+G-e[0])*n.length+U,r[se]=de):(se=(ne+K-e[1])*x+q+G-e[0],r[U][se]=de)}});T.push(D)}}if(await Promise.all(T),o&&e[2]-e[0]!==o||s&&e[3]-e[1]!==s){let L;return i?L=yAt(r,e[2]-e[0],e[3]-e[1],o,s,n.length,c):L=vAt(r,e[2]-e[0],e[3]-e[1],o,s,c),L.width=o,L.height=s,L}return r.width=o||e[2]-e[0],r.height=s||e[3]-e[1],r}async readRasters({window:e,samples:n=[],interleave:r,pool:i=null,width:a,height:o,resampleMethod:s,fillValue:c,signal:u}={}){const d=e||[0,0,this.getWidth(),this.getHeight()];if(d[0]>d[2]||d[1]>d[3])throw new Error("Invalid subsets");const f=d[2]-d[0],h=d[3]-d[1],p=f*h,v=this.getSamplesPerPixel();if(!n||!n.length)for(let x=0;x<v;++x)n.push(x);else for(let x=0;x<n.length;++x)if(n[x]>=v)return Promise.reject(new RangeError(`Invalid sample index '${n[x]}'.`));let y;if(r){const x=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,b=Math.max.apply(null,this.fileDirectory.BitsPerSample);y=PB(x,b,p*n.length),c&&y.fill(c)}else{y=[];for(let x=0;x<n.length;++x){const b=this.getArrayForSample(n[x],p);Array.isArray(c)&&x<c.length?b.fill(c[x]):c&&!Array.isArray(c)&&b.fill(c),y.push(b)}}const m=i||await fAt(this.fileDirectory);return await this._readRaster(d,n,y,r,m,a,o,s,u)}async readRGB({window:e,interleave:n=!0,pool:r=null,width:i,height:a,resampleMethod:o,enableAlpha:s=!1,signal:c}={}){const u=e||[0,0,this.getWidth(),this.getHeight()];if(u[0]>u[2]||u[1]>u[3])throw new Error("Invalid subsets");const d=this.fileDirectory.PhotometricInterpretation;if(d===ff.RGB){let g=[0,1,2];if(this.fileDirectory.ExtraSamples!==QIt.Unspecified&&s){g=[];for(let x=0;x<this.fileDirectory.BitsPerSample.length;x+=1)g.push(x)}return this.readRasters({window:e,interleave:n,samples:g,pool:r,width:i,height:a,resampleMethod:o,signal:c})}let f;switch(d){case ff.WhiteIsZero:case ff.BlackIsZero:case ff.Palette:f=[0];break;case ff.CMYK:f=[0,1,2,3];break;case ff.YCbCr:case ff.CIELab:f=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:u,interleave:!0,samples:f,pool:r,width:i,height:a,resampleMethod:o,signal:c},{fileDirectory:p}=this,v=await this.readRasters(h),y=2**this.fileDirectory.BitsPerSample[0];let m;switch(d){case ff.WhiteIsZero:m=rAt(v,y);break;case ff.BlackIsZero:m=iAt(v,y);break;case ff.Palette:m=aAt(v,p.ColorMap);break;case ff.CMYK:m=oAt(v);break;case ff.YCbCr:m=sAt(v);break;case ff.CIELab:m=dAt(v);break;default:throw new Error("Unsupported photometric interpretation.")}if(!n){const g=new Uint8Array(m.length/3),x=new Uint8Array(m.length/3),b=new Uint8Array(m.length/3);for(let S=0,E=0;S<m.length;S+=3,++E)g[E]=m[S],x[E]=m[S+1],b[E]=m[S+2];m=[g,x,b]}return m.width=v.width,m.height=v.height,m}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const e=[];for(let n=0;n<this.fileDirectory.ModelTiepoint.length;n+=6)e.push({i:this.fileDirectory.ModelTiepoint[n],j:this.fileDirectory.ModelTiepoint[n+1],k:this.fileDirectory.ModelTiepoint[n+2],x:this.fileDirectory.ModelTiepoint[n+3],y:this.fileDirectory.ModelTiepoint[n+4],z:this.fileDirectory.ModelTiepoint[n+5]});return e}getGDALMetadata(e=null){const n={};if(!this.fileDirectory.GDAL_METADATA)return null;const r=this.fileDirectory.GDAL_METADATA;let i=_4(r,"Item");e===null?i=i.filter(a=>M2(a,"sample")===void 0):i=i.filter(a=>Number(M2(a,"sample"))===e);for(let a=0;a<i.length;++a){const o=i[a];n[M2(o,"name")]=o.inner}return n}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const e=this.fileDirectory.GDAL_NODATA;return Number(e.substring(0,e.length-1))}getOrigin(){const e=this.fileDirectory.ModelTiepoint,n=this.fileDirectory.ModelTransformation;if(e&&e.length===6)return[e[3],e[4],e[5]];if(n)return[n[3],n[7],n[11]];throw new Error("The image does not have an affine transformation.")}getResolution(e=null){const n=this.fileDirectory.ModelPixelScale,r=this.fileDirectory.ModelTransformation;if(n)return[n[0],-n[1],n[2]];if(r)return r[1]===0&&r[4]===0?[r[0],-r[5],r[10]]:[Math.sqrt(r[0]*r[0]+r[4]*r[4]),-Math.sqrt(r[1]*r[1]+r[5]*r[5]),r[10]];if(e){const[i,a,o]=e.getResolution();return[i*e.getWidth()/this.getWidth(),a*e.getHeight()/this.getHeight(),o*e.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.geoKeys.GTRasterTypeGeoKey===1}getBoundingBox(e=!1){const n=this.getHeight(),r=this.getWidth();if(this.fileDirectory.ModelTransformation&&!e){const[i,a,o,s,c,u,d,f]=this.fileDirectory.ModelTransformation,p=[[0,0],[0,n],[r,0],[r,n]].map(([m,g])=>[s+i*m+a*g,f+c*m+u*g]),v=p.map(m=>m[0]),y=p.map(m=>m[1]);return[Math.min(...v),Math.min(...y),Math.max(...v),Math.max(...y)]}else{const i=this.getOrigin(),a=this.getResolution(),o=i[0],s=i[1],c=o+a[0]*r,u=s+a[1]*n;return[Math.min(o,c),Math.min(s,u),Math.max(o,c),Math.max(s,u)]}}}const CAt=EAt;class wAt{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,n){const r=this.getUint32(e,n),i=this.getUint32(e+4,n);let a;if(n){if(a=r+2**32*i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}if(a=2**32*r+i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}getInt64(e,n){let r=0;const i=(this._dataView.getUint8(e+(n?7:0))&128)>0;let a=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(n?o:7-o));i&&(a?s!==0&&(s=~(s-1)&255,a=!1):s=~s&255),r+=s*256**o}return i&&(r=-r),r}getUint8(e,n){return this._dataView.getUint8(e,n)}getInt8(e,n){return this._dataView.getInt8(e,n)}getUint16(e,n){return this._dataView.getUint16(e,n)}getInt16(e,n){return this._dataView.getInt16(e,n)}getUint32(e,n){return this._dataView.getUint32(e,n)}getInt32(e,n){return this._dataView.getInt32(e,n)}getFloat16(e,n){return DCe(this._dataView,e,n)}getFloat32(e,n){return this._dataView.getFloat32(e,n)}getFloat64(e,n){return this._dataView.getFloat64(e,n)}}class TAt{constructor(e,n,r,i){this._dataView=new DataView(e),this._sliceOffset=n,this._littleEndian=r,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,n){return this.sliceOffset<=e&&this.sliceTop>=e+n}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){const n=this.readUint32(e),r=this.readUint32(e+4);let i;if(this._littleEndian){if(i=n+2**32*r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*n+r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(e){let n=0;const r=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0;let i=!0;for(let a=0;a<8;a++){let o=this._dataView.getUint8(e+(this._littleEndian?a:7-a));r&&(i?o!==0&&(o=~(o-1)&255,i=!1):o=~o&255),n+=o*256**a}return r&&(n=-n),n}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}}class _At{async fetch(e,n=void 0){return Promise.all(e.map(r=>this.fetchSlice(r,n)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}}class MW extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,MW),this.name="AbortError"}}class IAt extends _At{constructor(e){super(),this.arrayBuffer=e}fetchSlice(e,n){if(n&&n.aborted)throw new MW("Request aborted");return this.arrayBuffer.slice(e.offset,e.offset+e.length)}}function AAt(t){return new IAt(t)}function NB(t){switch(t){case Sa.BYTE:case Sa.ASCII:case Sa.SBYTE:case Sa.UNDEFINED:return 1;case Sa.SHORT:case Sa.SSHORT:return 2;case Sa.LONG:case Sa.SLONG:case Sa.FLOAT:case Sa.IFD:return 4;case Sa.RATIONAL:case Sa.SRATIONAL:case Sa.DOUBLE:case Sa.LONG8:case Sa.SLONG8:case Sa.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function MAt(t){const e=t.GeoKeyDirectory;if(!e)return null;const n={};for(let r=4;r<=e[3]*4;r+=4){const i=nAt[e[r]],a=e[r+1]?qT[e[r+1]]:null,o=e[r+2],s=e[r+3];let c=null;if(!a)c=s;else{if(c=t[a],typeof c>"u"||c===null)throw new Error(`Could not get value of geoKey '${i}'.`);typeof c=="string"?c=c.substring(s,s+o-1):c.subarray&&(c=c.subarray(s,s+o),o===1&&(c=c[0]))}n[i]=c}return n}function oS(t,e,n,r){let i=null,a=null;const o=NB(e);switch(e){case Sa.BYTE:case Sa.ASCII:case Sa.UNDEFINED:i=new Uint8Array(n),a=t.readUint8;break;case Sa.SBYTE:i=new Int8Array(n),a=t.readInt8;break;case Sa.SHORT:i=new Uint16Array(n),a=t.readUint16;break;case Sa.SSHORT:i=new Int16Array(n),a=t.readInt16;break;case Sa.LONG:case Sa.IFD:i=new Uint32Array(n),a=t.readUint32;break;case Sa.SLONG:i=new Int32Array(n),a=t.readInt32;break;case Sa.LONG8:case Sa.IFD8:i=new Array(n),a=t.readUint64;break;case Sa.SLONG8:i=new Array(n),a=t.readInt64;break;case Sa.RATIONAL:i=new Uint32Array(n*2),a=t.readUint32;break;case Sa.SRATIONAL:i=new Int32Array(n*2),a=t.readInt32;break;case Sa.FLOAT:i=new Float32Array(n),a=t.readFloat32;break;case Sa.DOUBLE:i=new Float64Array(n),a=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===Sa.RATIONAL||e===Sa.SRATIONAL)for(let s=0;s<n;s+=2)i[s]=a.call(t,r+s*o),i[s+1]=a.call(t,r+(s*o+4));else for(let s=0;s<n;++s)i[s]=a.call(t,r+s*o);return e===Sa.ASCII?new TextDecoder("utf-8").decode(i):i}class RAt{constructor(e,n,r){this.fileDirectory=e,this.geoKeyDirectory=n,this.nextIFDByteOffset=r}}class bR extends Error{constructor(e){super(`No image at index ${e}`),this.index=e}}class LAt{async readRasters(e={}){const{window:n,width:r,height:i}=e;let{resX:a,resY:o,bbox:s}=e;const c=await this.getImage();let u=c;const d=await this.getImageCount(),f=c.getBoundingBox();if(n&&s)throw new Error('Both "bbox" and "window" passed.');if(r||i){if(n){const[v,y]=c.getOrigin(),[m,g]=c.getResolution();s=[v+n[0]*m,y+n[1]*g,v+n[2]*m,y+n[3]*g]}const p=s||f;if(r){if(a)throw new Error("Both width and resX passed");a=(p[2]-p[0])/r}if(i){if(o)throw new Error("Both width and resY passed");o=(p[3]-p[1])/i}}if(a||o){const p=[];for(let v=0;v<d;++v){const y=await this.getImage(v),{SubfileType:m,NewSubfileType:g}=y.fileDirectory;(v===0||m===2||g&1)&&p.push(y)}p.sort((v,y)=>v.getWidth()-y.getWidth());for(let v=0;v<p.length;++v){const y=p[v],m=(f[2]-f[0])/y.getWidth(),g=(f[3]-f[1])/y.getHeight();if(u=y,a&&a>m||o&&o>g)break}}let h=n;if(s){const[p,v]=c.getOrigin(),[y,m]=u.getResolution(c);h=[Math.round((s[0]-p)/y),Math.round((s[1]-v)/m),Math.round((s[2]-p)/y),Math.round((s[3]-v)/m)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return u.readRasters({...e,window:h})}}class RW extends LAt{constructor(e,n,r,i,a={}){super(),this.source=e,this.littleEndian=n,this.bigTiff=r,this.firstIFDOffset=i,this.cache=a.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,n){const r=this.bigTiff?4048:1024;return new TAt((await this.source.fetch([{offset:e,length:typeof n<"u"?n:r}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){const n=this.bigTiff?20:12,r=this.bigTiff?8:2;let i=await this.getSlice(e);const a=this.bigTiff?i.readUint64(e):i.readUint16(e),o=a*n+(this.bigTiff?16:6);i.covers(e,o)||(i=await this.getSlice(e,o));const s={};let c=e+(this.bigTiff?8:2);for(let f=0;f<a;c+=n,++f){const h=i.readUint16(c),p=i.readUint16(c+2),v=this.bigTiff?i.readUint64(c+4):i.readUint32(c+4);let y,m;const g=NB(p),x=c+(this.bigTiff?12:8);if(g*v<=(this.bigTiff?8:4))y=oS(i,p,v,x);else{const b=i.readOffset(x),S=NB(p)*v;if(i.covers(b,S))y=oS(i,p,v,b);else{const E=await this.getSlice(b,S);y=oS(E,p,v,b)}}v===1&&JIt.indexOf(h)===-1&&!(p===Sa.RATIONAL||p===Sa.SRATIONAL)?m=y[0]:m=y,s[qT[h]]=m}const u=MAt(s),d=i.readOffset(e+r+n*a);return new RAt(s,u,d)}async requestIFD(e){if(this.ifdRequests[e])return this.ifdRequests[e];if(e===0)return this.ifdRequests[e]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[e];if(!this.ifdRequests[e-1])try{this.ifdRequests[e-1]=this.requestIFD(e-1)}catch(n){throw n instanceof bR?new bR(e):n}return this.ifdRequests[e]=(async()=>{const n=await this.ifdRequests[e-1];if(n.nextIFDByteOffset===0)throw new bR(e);return this.parseFileDirectoryAt(n.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){const n=await this.requestIFD(e);return new CAt(n.fileDirectory,n.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,n=!0;for(;n;)try{await this.requestIFD(e),++e}catch(r){if(r instanceof bR)n=!1;else throw r}return e}async getGhostValues(){const e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const n="GDAL_STRUCTURAL_METADATA_SIZE=",r=n.length+100;let i=await this.getSlice(e,r);if(n===oS(i,Sa.ASCII,n.length,e)){const o=oS(i,Sa.ASCII,r,e).split(`
4311
+ >]`),y+=gle(m,"</"+e+">"),y>=v)break;p=c}}else c=W7(s,"[ /]"+e+">",0);const d=o+e.length+c+1;if(r&&console.log("[xml-utils] end:",d),d===-1)return;const f=t.slice(o,d);let h;return u?h=null:h=f.slice(f.indexOf(">")+1,f.lastIndexOf("<")),{inner:h,outer:f,start:o,end:d}}jIt.exports=BCe;I4.default=BCe;const qIt=I4;function $Ce(t,e,n){const r=[],i=n&&n.debug||!1,a=n&&typeof n.nested=="boolean"?n.nested:!0;let o=n&&n.startIndex||0,s;for(;s=qIt(t,e,{debug:i,startIndex:o});)a?o=s.start+1+e.length:o=s.end,r.push(s);return i&&console.log("findTagsByName found",r.length,"tags"),r}WIt.exports=$Ce;_4.default=$Ce;const qT={315:"Artist",258:"BitsPerSample",265:"CellLength",264:"CellWidth",320:"ColorMap",259:"Compression",33432:"Copyright",306:"DateTime",338:"ExtraSamples",266:"FillOrder",289:"FreeByteCounts",288:"FreeOffsets",291:"GrayResponseCurve",290:"GrayResponseUnit",316:"HostComputer",270:"ImageDescription",257:"ImageLength",256:"ImageWidth",271:"Make",281:"MaxSampleValue",280:"MinSampleValue",272:"Model",254:"NewSubfileType",274:"Orientation",262:"PhotometricInterpretation",284:"PlanarConfiguration",296:"ResolutionUnit",278:"RowsPerStrip",277:"SamplesPerPixel",305:"Software",279:"StripByteCounts",273:"StripOffsets",255:"SubfileType",263:"Threshholding",282:"XResolution",283:"YResolution",326:"BadFaxLines",327:"CleanFaxData",343:"ClipPath",328:"ConsecutiveBadFaxLines",433:"Decode",434:"DefaultImageColor",269:"DocumentName",336:"DotRange",321:"HalftoneHints",346:"Indexed",347:"JPEGTables",285:"PageName",297:"PageNumber",317:"Predictor",319:"PrimaryChromaticities",532:"ReferenceBlackWhite",339:"SampleFormat",340:"SMinSampleValue",341:"SMaxSampleValue",559:"StripRowCounts",330:"SubIFDs",292:"T4Options",293:"T6Options",325:"TileByteCounts",323:"TileLength",324:"TileOffsets",322:"TileWidth",301:"TransferFunction",318:"WhitePoint",344:"XClipPathUnits",286:"XPosition",529:"YCbCrCoefficients",531:"YCbCrPositioning",530:"YCbCrSubSampling",345:"YClipPathUnits",287:"YPosition",37378:"ApertureValue",40961:"ColorSpace",36868:"DateTimeDigitized",36867:"DateTimeOriginal",34665:"Exif IFD",36864:"ExifVersion",33434:"ExposureTime",41728:"FileSource",37385:"Flash",40960:"FlashpixVersion",33437:"FNumber",42016:"ImageUniqueID",37384:"LightSource",37500:"MakerNote",37377:"ShutterSpeedValue",37510:"UserComment",33723:"IPTC",34675:"ICC Profile",700:"XMP",42112:"GDAL_METADATA",42113:"GDAL_NODATA",34377:"Photoshop",33550:"ModelPixelScale",33922:"ModelTiepoint",34264:"ModelTransformation",34735:"GeoKeyDirectory",34736:"GeoDoubleParams",34737:"GeoAsciiParams",50674:"LercParameters"},zp={};for(const t in qT)qT.hasOwnProperty(t)&&(zp[qT[t]]=parseInt(t,10));const JIt=[zp.BitsPerSample,zp.ExtraSamples,zp.SampleFormat,zp.StripByteCounts,zp.StripOffsets,zp.StripRowCounts,zp.TileByteCounts,zp.TileOffsets,zp.SubIFDs],j7={1:"BYTE",2:"ASCII",3:"SHORT",4:"LONG",5:"RATIONAL",6:"SBYTE",7:"UNDEFINED",8:"SSHORT",9:"SLONG",10:"SRATIONAL",11:"FLOAT",12:"DOUBLE",13:"IFD",16:"LONG8",17:"SLONG8",18:"IFD8"},Sa={};for(const t in j7)j7.hasOwnProperty(t)&&(Sa[j7[t]]=parseInt(t,10));const ff={WhiteIsZero:0,BlackIsZero:1,RGB:2,Palette:3,TransparencyMask:4,CMYK:5,YCbCr:6,CIELab:8,ICCLab:9},QIt={Unspecified:0,Assocalpha:1,Unassalpha:2},eAt={Version:0,AddCompression:1},tAt={None:0,Deflate:1,Zstandard:2},nAt={1024:"GTModelTypeGeoKey",1025:"GTRasterTypeGeoKey",1026:"GTCitationGeoKey",2048:"GeographicTypeGeoKey",2049:"GeogCitationGeoKey",2050:"GeogGeodeticDatumGeoKey",2051:"GeogPrimeMeridianGeoKey",2052:"GeogLinearUnitsGeoKey",2053:"GeogLinearUnitSizeGeoKey",2054:"GeogAngularUnitsGeoKey",2055:"GeogAngularUnitSizeGeoKey",2056:"GeogEllipsoidGeoKey",2057:"GeogSemiMajorAxisGeoKey",2058:"GeogSemiMinorAxisGeoKey",2059:"GeogInvFlatteningGeoKey",2060:"GeogAzimuthUnitsGeoKey",2061:"GeogPrimeMeridianLongGeoKey",2062:"GeogTOWGS84GeoKey",3072:"ProjectedCSTypeGeoKey",3073:"PCSCitationGeoKey",3074:"ProjectionGeoKey",3075:"ProjCoordTransGeoKey",3076:"ProjLinearUnitsGeoKey",3077:"ProjLinearUnitSizeGeoKey",3078:"ProjStdParallel1GeoKey",3079:"ProjStdParallel2GeoKey",3080:"ProjNatOriginLongGeoKey",3081:"ProjNatOriginLatGeoKey",3082:"ProjFalseEastingGeoKey",3083:"ProjFalseNorthingGeoKey",3084:"ProjFalseOriginLongGeoKey",3085:"ProjFalseOriginLatGeoKey",3086:"ProjFalseOriginEastingGeoKey",3087:"ProjFalseOriginNorthingGeoKey",3088:"ProjCenterLongGeoKey",3089:"ProjCenterLatGeoKey",3090:"ProjCenterEastingGeoKey",3091:"ProjCenterNorthingGeoKey",3092:"ProjScaleAtNatOriginGeoKey",3093:"ProjScaleAtCenterGeoKey",3094:"ProjAzimuthAngleGeoKey",3095:"ProjStraightVertPoleLongGeoKey",3096:"ProjRectifiedGridAngleGeoKey",4096:"VerticalCSTypeGeoKey",4097:"VerticalCitationGeoKey",4098:"VerticalDatumGeoKey",4099:"VerticalUnitsGeoKey"};function rAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=256-t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function iAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3);let a;for(let o=0,s=0;o<t.length;++o,s+=3)a=t[o]/e*256,i[s]=a,i[s+1]=a,i[s+2]=a;return i}function aAt(t,e){const{width:n,height:r}=t,i=new Uint8Array(n*r*3),a=e.length/3,o=e.length/3*2;for(let s=0,c=0;s<t.length;++s,c+=3){const u=t[s];i[c]=e[u]/65536*256,i[c+1]=e[u+a]/65536*256,i[c+2]=e[u+o]/65536*256}return i}function oAt(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=4,a+=3){const o=t[i],s=t[i+1],c=t[i+2],u=t[i+3];r[a]=255*((255-o)/256)*((255-u)/256),r[a+1]=255*((255-s)/256)*((255-u)/256),r[a+2]=255*((255-c)/256)*((255-u)/256)}return r}function sAt(t){const{width:e,height:n}=t,r=new Uint8ClampedArray(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i],s=t[i+1],c=t[i+2];r[a]=o+1.402*(c-128),r[a+1]=o-.34414*(s-128)-.71414*(c-128),r[a+2]=o+1.772*(s-128)}return r}const lAt=.95047,cAt=1,uAt=1.08883;function dAt(t){const{width:e,height:n}=t,r=new Uint8Array(e*n*3);for(let i=0,a=0;i<t.length;i+=3,a+=3){const o=t[i+0],s=t[i+1]<<24>>24,c=t[i+2]<<24>>24;let u=(o+16)/116,d=s/500+u,f=u-c/200,h,p,v;d=lAt*(d*d*d>.008856?d*d*d:(d-16/116)/7.787),u=cAt*(u*u*u>.008856?u*u*u:(u-16/116)/7.787),f=uAt*(f*f*f>.008856?f*f*f:(f-16/116)/7.787),h=d*3.2406+u*-1.5372+f*-.4986,p=d*-.9689+u*1.8758+f*.0415,v=d*.0557+u*-.204+f*1.057,h=h>.0031308?1.055*h**(1/2.4)-.055:12.92*h,p=p>.0031308?1.055*p**(1/2.4)-.055:12.92*p,v=v>.0031308?1.055*v**(1/2.4)-.055:12.92*v,r[a]=Math.max(0,Math.min(1,h))*255,r[a+1]=Math.max(0,Math.min(1,p))*255,r[a+2]=Math.max(0,Math.min(1,v))*255}return r}const zCe=new Map;function N0(t,e){Array.isArray(t)||(t=[t]),t.forEach(n=>zCe.set(n,e))}async function fAt(t){const e=zCe.get(t.Compression);if(!e)throw new Error(`Unknown compression method identifier: ${t.Compression}`);const n=await e();return new n(t)}N0([void 0,1],()=>Promise.resolve().then(()=>require("./raw-9c0f4034.js")).then(t=>t.default));N0(5,()=>Promise.resolve().then(()=>require("./lzw-f00e8c8c.js")).then(t=>t.default));N0(6,()=>{throw new Error("old style JPEG compression is not supported.")});N0(7,()=>Promise.resolve().then(()=>require("./jpeg-f3c7cefc.js")).then(t=>t.default));N0([8,32946],()=>Promise.resolve().then(()=>require("./deflate-b7f42afc.js")).then(t=>t.default));N0(32773,()=>Promise.resolve().then(()=>require("./packbits-58fd9c05.js")).then(t=>t.default));N0(34887,()=>Promise.resolve().then(()=>require("./lerc-995bcf6f.js")).then(async t=>(await t.zstd.init(),t)).then(t=>t.default));N0(50001,()=>Promise.resolve().then(()=>require("./webimage-bc81928d.js")).then(t=>t.default));function PN(t,e,n,r=1){return new(Object.getPrototypeOf(t)).constructor(e*n*r)}function hAt(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const c=PN(s,r,i);for(let u=0;u<i;++u){const d=Math.min(Math.round(o*u),n-1);for(let f=0;f<r;++f){const h=Math.min(Math.round(a*f),e-1),p=s[d*e+h];c[u*r+f]=p}}return c})}function R2(t,e,n){return(1-n)*t+n*e}function pAt(t,e,n,r,i){const a=e/r,o=n/i;return t.map(s=>{const c=PN(s,r,i);for(let u=0;u<i;++u){const d=o*u,f=Math.floor(d),h=Math.min(Math.ceil(d),n-1);for(let p=0;p<r;++p){const v=a*p,y=v%1,m=Math.floor(v),g=Math.min(Math.ceil(v),e-1),x=s[f*e+m],b=s[f*e+g],S=s[h*e+m],E=s[h*e+g],T=R2(R2(x,b,y),R2(S,E,y),d%1);c[u*r+p]=T}}return c})}function vAt(t,e,n,r,i,a="nearest"){switch(a.toLowerCase()){case"nearest":return hAt(t,e,n,r,i);case"bilinear":case"linear":return pAt(t,e,n,r,i);default:throw new Error(`Unsupported resampling method: '${a}'`)}}function gAt(t,e,n,r,i,a){const o=e/r,s=n/i,c=PN(t,r,i,a);for(let u=0;u<i;++u){const d=Math.min(Math.round(s*u),n-1);for(let f=0;f<r;++f){const h=Math.min(Math.round(o*f),e-1);for(let p=0;p<a;++p){const v=t[d*e*a+h*a+p];c[u*r*a+f*a+p]=v}}}return c}function mAt(t,e,n,r,i,a){const o=e/r,s=n/i,c=PN(t,r,i,a);for(let u=0;u<i;++u){const d=s*u,f=Math.floor(d),h=Math.min(Math.ceil(d),n-1);for(let p=0;p<r;++p){const v=o*p,y=v%1,m=Math.floor(v),g=Math.min(Math.ceil(v),e-1);for(let x=0;x<a;++x){const b=t[f*e*a+m*a+x],S=t[f*e*a+g*a+x],E=t[h*e*a+m*a+x],T=t[h*e*a+g*a+x],M=R2(R2(b,S,y),R2(E,T,y),d%1);c[u*r*a+p*a+x]=M}}}return c}function yAt(t,e,n,r,i,a,o="nearest"){switch(o.toLowerCase()){case"nearest":return gAt(t,e,n,r,i,a);case"bilinear":case"linear":return mAt(t,e,n,r,i,a);default:throw new Error(`Unsupported resampling method: '${o}'`)}}function bAt(t,e,n){let r=0;for(let i=e;i<n;++i)r+=t[i];return r}function PB(t,e,n){switch(t){case 1:if(e<=8)return new Uint8Array(n);if(e<=16)return new Uint16Array(n);if(e<=32)return new Uint32Array(n);break;case 2:if(e===8)return new Int8Array(n);if(e===16)return new Int16Array(n);if(e===32)return new Int32Array(n);break;case 3:switch(e){case 16:case 32:return new Float32Array(n);case 64:return new Float64Array(n)}break}throw Error("Unsupported data format/bitsPerSample")}function xAt(t,e){return(t===1||t===2)&&e<=32&&e%8===0?!1:!(t===3&&(e===16||e===32||e===64))}function SAt(t,e,n,r,i,a,o){const s=new DataView(t),c=n===2?o*a:o*a*r,u=n===2?1:r,d=PB(e,i,c),f=parseInt("1".repeat(i),2);if(e===1){let h;n===1?h=r*i:h=i;let p=a*h;p&7&&(p=p+7&-8);for(let v=0;v<o;++v){const y=v*p;for(let m=0;m<a;++m){const g=y+m*u*i;for(let x=0;x<u;++x){const b=g+x*i,S=(v*a+m)*u+x,E=Math.floor(b/8),T=b%8;if(T+i<=8)d[S]=s.getUint8(E)>>8-i-T&f;else if(T+i<=16)d[S]=s.getUint16(E)>>16-i-T&f;else if(T+i<=24){const M=s.getUint16(E)<<8|s.getUint8(E+2);d[S]=M>>24-i-T&f}else d[S]=s.getUint32(E)>>32-i-T&f}}}}return d.buffer}class EAt{constructor(e,n,r,i,a,o){this.fileDirectory=e,this.geoKeys=n,this.dataView=r,this.littleEndian=i,this.tiles=a?{}:null,this.isTiled=!e.StripOffsets;const s=e.PlanarConfiguration;if(this.planarConfiguration=typeof s>"u"?1:s,this.planarConfiguration!==1&&this.planarConfiguration!==2)throw new Error("Invalid planar configuration.");this.source=o}getFileDirectory(){return this.fileDirectory}getGeoKeys(){return this.geoKeys}getWidth(){return this.fileDirectory.ImageWidth}getHeight(){return this.fileDirectory.ImageLength}getSamplesPerPixel(){return typeof this.fileDirectory.SamplesPerPixel<"u"?this.fileDirectory.SamplesPerPixel:1}getTileWidth(){return this.isTiled?this.fileDirectory.TileWidth:this.getWidth()}getTileHeight(){return this.isTiled?this.fileDirectory.TileLength:typeof this.fileDirectory.RowsPerStrip<"u"?Math.min(this.fileDirectory.RowsPerStrip,this.getHeight()):this.getHeight()}getBlockWidth(){return this.getTileWidth()}getBlockHeight(e){return this.isTiled||(e+1)*this.getTileHeight()<=this.getHeight()?this.getTileHeight():this.getHeight()-e*this.getTileHeight()}getBytesPerPixel(){let e=0;for(let n=0;n<this.fileDirectory.BitsPerSample.length;++n)e+=this.getSampleByteSize(n);return e}getSampleByteSize(e){if(e>=this.fileDirectory.BitsPerSample.length)throw new RangeError(`Sample index ${e} is out of range.`);return Math.ceil(this.fileDirectory.BitsPerSample[e]/8)}getReaderForSample(e){const n=this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1,r=this.fileDirectory.BitsPerSample[e];switch(n){case 1:if(r<=8)return DataView.prototype.getUint8;if(r<=16)return DataView.prototype.getUint16;if(r<=32)return DataView.prototype.getUint32;break;case 2:if(r<=8)return DataView.prototype.getInt8;if(r<=16)return DataView.prototype.getInt16;if(r<=32)return DataView.prototype.getInt32;break;case 3:switch(r){case 16:return function(i,a){return DCe(this,i,a)};case 32:return DataView.prototype.getFloat32;case 64:return DataView.prototype.getFloat64}break}throw Error("Unsupported data format/bitsPerSample")}getSampleFormat(e=0){return this.fileDirectory.SampleFormat?this.fileDirectory.SampleFormat[e]:1}getBitsPerSample(e=0){return this.fileDirectory.BitsPerSample[e]}getArrayForSample(e,n){const r=this.getSampleFormat(e),i=this.getBitsPerSample(e);return PB(r,i,n)}async getTileOrStrip(e,n,r,i,a){const o=Math.ceil(this.getWidth()/this.getTileWidth()),s=Math.ceil(this.getHeight()/this.getTileHeight());let c;const{tiles:u}=this;this.planarConfiguration===1?c=n*o+e:this.planarConfiguration===2&&(c=r*o*s+n*o+e);let d,f;this.isTiled?(d=this.fileDirectory.TileOffsets[c],f=this.fileDirectory.TileByteCounts[c]):(d=this.fileDirectory.StripOffsets[c],f=this.fileDirectory.StripByteCounts[c]);const h=(await this.source.fetch([{offset:d,length:f}],a))[0];let p;return u===null||!u[c]?(p=(async()=>{let v=await i.decode(this.fileDirectory,h);const y=this.getSampleFormat(),m=this.getBitsPerSample();return xAt(y,m)&&(v=SAt(v,y,this.planarConfiguration,this.getSamplesPerPixel(),m,this.getTileWidth(),this.getBlockHeight(n))),v})(),u!==null&&(u[c]=p)):p=u[c],{x:e,y:n,sample:r,data:await p}}async _readRaster(e,n,r,i,a,o,s,c,u){const d=this.getTileWidth(),f=this.getTileHeight(),h=this.getWidth(),p=this.getHeight(),v=Math.max(Math.floor(e[0]/d),0),y=Math.min(Math.ceil(e[2]/d),Math.ceil(h/d)),m=Math.max(Math.floor(e[1]/f),0),g=Math.min(Math.ceil(e[3]/f),Math.ceil(p/f)),x=e[2]-e[0];let b=this.getBytesPerPixel();const S=[],E=[];for(let L=0;L<n.length;++L)this.planarConfiguration===1?S.push(bAt(this.fileDirectory.BitsPerSample,0,n[L])/8):S.push(0),E.push(this.getReaderForSample(n[L]));const T=[],{littleEndian:M}=this;for(let L=m;L<g;++L)for(let R=v;R<y;++R){let O;this.planarConfiguration===1&&(O=this.getTileOrStrip(R,L,0,a,u));for(let N=0;N<n.length;++N){const U=N,k=n[N];this.planarConfiguration===2&&(b=this.getSampleByteSize(k),O=this.getTileOrStrip(R,L,k,a,u));const D=O.then(V=>{const B=V.data,F=new DataView(B),j=this.getBlockHeight(V.y),K=V.y*f,G=V.x*d,W=K+j,J=(V.x+1)*d,re=E[U],Z=Math.min(j,j-(W-e[3]),p-K),Y=Math.min(d,d-(J-e[2]),h-G);for(let ne=Math.max(0,e[1]-K);ne<Z;++ne)for(let q=Math.max(0,e[0]-G);q<Y;++q){const te=(ne*d+q)*b,de=re.call(F,te+S[U],M);let se;i?(se=(ne+K-e[1])*x*n.length+(q+G-e[0])*n.length+U,r[se]=de):(se=(ne+K-e[1])*x+q+G-e[0],r[U][se]=de)}});T.push(D)}}if(await Promise.all(T),o&&e[2]-e[0]!==o||s&&e[3]-e[1]!==s){let L;return i?L=yAt(r,e[2]-e[0],e[3]-e[1],o,s,n.length,c):L=vAt(r,e[2]-e[0],e[3]-e[1],o,s,c),L.width=o,L.height=s,L}return r.width=o||e[2]-e[0],r.height=s||e[3]-e[1],r}async readRasters({window:e,samples:n=[],interleave:r,pool:i=null,width:a,height:o,resampleMethod:s,fillValue:c,signal:u}={}){const d=e||[0,0,this.getWidth(),this.getHeight()];if(d[0]>d[2]||d[1]>d[3])throw new Error("Invalid subsets");const f=d[2]-d[0],h=d[3]-d[1],p=f*h,v=this.getSamplesPerPixel();if(!n||!n.length)for(let x=0;x<v;++x)n.push(x);else for(let x=0;x<n.length;++x)if(n[x]>=v)return Promise.reject(new RangeError(`Invalid sample index '${n[x]}'.`));let y;if(r){const x=this.fileDirectory.SampleFormat?Math.max.apply(null,this.fileDirectory.SampleFormat):1,b=Math.max.apply(null,this.fileDirectory.BitsPerSample);y=PB(x,b,p*n.length),c&&y.fill(c)}else{y=[];for(let x=0;x<n.length;++x){const b=this.getArrayForSample(n[x],p);Array.isArray(c)&&x<c.length?b.fill(c[x]):c&&!Array.isArray(c)&&b.fill(c),y.push(b)}}const m=i||await fAt(this.fileDirectory);return await this._readRaster(d,n,y,r,m,a,o,s,u)}async readRGB({window:e,interleave:n=!0,pool:r=null,width:i,height:a,resampleMethod:o,enableAlpha:s=!1,signal:c}={}){const u=e||[0,0,this.getWidth(),this.getHeight()];if(u[0]>u[2]||u[1]>u[3])throw new Error("Invalid subsets");const d=this.fileDirectory.PhotometricInterpretation;if(d===ff.RGB){let g=[0,1,2];if(this.fileDirectory.ExtraSamples!==QIt.Unspecified&&s){g=[];for(let x=0;x<this.fileDirectory.BitsPerSample.length;x+=1)g.push(x)}return this.readRasters({window:e,interleave:n,samples:g,pool:r,width:i,height:a,resampleMethod:o,signal:c})}let f;switch(d){case ff.WhiteIsZero:case ff.BlackIsZero:case ff.Palette:f=[0];break;case ff.CMYK:f=[0,1,2,3];break;case ff.YCbCr:case ff.CIELab:f=[0,1,2];break;default:throw new Error("Invalid or unsupported photometric interpretation.")}const h={window:u,interleave:!0,samples:f,pool:r,width:i,height:a,resampleMethod:o,signal:c},{fileDirectory:p}=this,v=await this.readRasters(h),y=2**this.fileDirectory.BitsPerSample[0];let m;switch(d){case ff.WhiteIsZero:m=rAt(v,y);break;case ff.BlackIsZero:m=iAt(v,y);break;case ff.Palette:m=aAt(v,p.ColorMap);break;case ff.CMYK:m=oAt(v);break;case ff.YCbCr:m=sAt(v);break;case ff.CIELab:m=dAt(v);break;default:throw new Error("Unsupported photometric interpretation.")}if(!n){const g=new Uint8Array(m.length/3),x=new Uint8Array(m.length/3),b=new Uint8Array(m.length/3);for(let S=0,E=0;S<m.length;S+=3,++E)g[E]=m[S],x[E]=m[S+1],b[E]=m[S+2];m=[g,x,b]}return m.width=v.width,m.height=v.height,m}getTiePoints(){if(!this.fileDirectory.ModelTiepoint)return[];const e=[];for(let n=0;n<this.fileDirectory.ModelTiepoint.length;n+=6)e.push({i:this.fileDirectory.ModelTiepoint[n],j:this.fileDirectory.ModelTiepoint[n+1],k:this.fileDirectory.ModelTiepoint[n+2],x:this.fileDirectory.ModelTiepoint[n+3],y:this.fileDirectory.ModelTiepoint[n+4],z:this.fileDirectory.ModelTiepoint[n+5]});return e}getGDALMetadata(e=null){const n={};if(!this.fileDirectory.GDAL_METADATA)return null;const r=this.fileDirectory.GDAL_METADATA;let i=_4(r,"Item");e===null?i=i.filter(a=>M2(a,"sample")===void 0):i=i.filter(a=>Number(M2(a,"sample"))===e);for(let a=0;a<i.length;++a){const o=i[a];n[M2(o,"name")]=o.inner}return n}getGDALNoData(){if(!this.fileDirectory.GDAL_NODATA)return null;const e=this.fileDirectory.GDAL_NODATA;return Number(e.substring(0,e.length-1))}getOrigin(){const e=this.fileDirectory.ModelTiepoint,n=this.fileDirectory.ModelTransformation;if(e&&e.length===6)return[e[3],e[4],e[5]];if(n)return[n[3],n[7],n[11]];throw new Error("The image does not have an affine transformation.")}getResolution(e=null){const n=this.fileDirectory.ModelPixelScale,r=this.fileDirectory.ModelTransformation;if(n)return[n[0],-n[1],n[2]];if(r)return r[1]===0&&r[4]===0?[r[0],-r[5],r[10]]:[Math.sqrt(r[0]*r[0]+r[4]*r[4]),-Math.sqrt(r[1]*r[1]+r[5]*r[5]),r[10]];if(e){const[i,a,o]=e.getResolution();return[i*e.getWidth()/this.getWidth(),a*e.getHeight()/this.getHeight(),o*e.getWidth()/this.getWidth()]}throw new Error("The image does not have an affine transformation.")}pixelIsArea(){return this.geoKeys.GTRasterTypeGeoKey===1}getBoundingBox(e=!1){const n=this.getHeight(),r=this.getWidth();if(this.fileDirectory.ModelTransformation&&!e){const[i,a,o,s,c,u,d,f]=this.fileDirectory.ModelTransformation,p=[[0,0],[0,n],[r,0],[r,n]].map(([m,g])=>[s+i*m+a*g,f+c*m+u*g]),v=p.map(m=>m[0]),y=p.map(m=>m[1]);return[Math.min(...v),Math.min(...y),Math.max(...v),Math.max(...y)]}else{const i=this.getOrigin(),a=this.getResolution(),o=i[0],s=i[1],c=o+a[0]*r,u=s+a[1]*n;return[Math.min(o,c),Math.min(s,u),Math.max(o,c),Math.max(s,u)]}}}const CAt=EAt;class wAt{constructor(e){this._dataView=new DataView(e)}get buffer(){return this._dataView.buffer}getUint64(e,n){const r=this.getUint32(e,n),i=this.getUint32(e+4,n);let a;if(n){if(a=r+2**32*i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}if(a=2**32*r+i,!Number.isSafeInteger(a))throw new Error(`${a} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return a}getInt64(e,n){let r=0;const i=(this._dataView.getUint8(e+(n?7:0))&128)>0;let a=!0;for(let o=0;o<8;o++){let s=this._dataView.getUint8(e+(n?o:7-o));i&&(a?s!==0&&(s=~(s-1)&255,a=!1):s=~s&255),r+=s*256**o}return i&&(r=-r),r}getUint8(e,n){return this._dataView.getUint8(e,n)}getInt8(e,n){return this._dataView.getInt8(e,n)}getUint16(e,n){return this._dataView.getUint16(e,n)}getInt16(e,n){return this._dataView.getInt16(e,n)}getUint32(e,n){return this._dataView.getUint32(e,n)}getInt32(e,n){return this._dataView.getInt32(e,n)}getFloat16(e,n){return DCe(this._dataView,e,n)}getFloat32(e,n){return this._dataView.getFloat32(e,n)}getFloat64(e,n){return this._dataView.getFloat64(e,n)}}class TAt{constructor(e,n,r,i){this._dataView=new DataView(e),this._sliceOffset=n,this._littleEndian=r,this._bigTiff=i}get sliceOffset(){return this._sliceOffset}get sliceTop(){return this._sliceOffset+this.buffer.byteLength}get littleEndian(){return this._littleEndian}get bigTiff(){return this._bigTiff}get buffer(){return this._dataView.buffer}covers(e,n){return this.sliceOffset<=e&&this.sliceTop>=e+n}readUint8(e){return this._dataView.getUint8(e-this._sliceOffset,this._littleEndian)}readInt8(e){return this._dataView.getInt8(e-this._sliceOffset,this._littleEndian)}readUint16(e){return this._dataView.getUint16(e-this._sliceOffset,this._littleEndian)}readInt16(e){return this._dataView.getInt16(e-this._sliceOffset,this._littleEndian)}readUint32(e){return this._dataView.getUint32(e-this._sliceOffset,this._littleEndian)}readInt32(e){return this._dataView.getInt32(e-this._sliceOffset,this._littleEndian)}readFloat32(e){return this._dataView.getFloat32(e-this._sliceOffset,this._littleEndian)}readFloat64(e){return this._dataView.getFloat64(e-this._sliceOffset,this._littleEndian)}readUint64(e){const n=this.readUint32(e),r=this.readUint32(e+4);let i;if(this._littleEndian){if(i=n+2**32*r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}if(i=2**32*n+r,!Number.isSafeInteger(i))throw new Error(`${i} exceeds MAX_SAFE_INTEGER. Precision may be lost. Please report if you get this message to https://github.com/geotiffjs/geotiff.js/issues`);return i}readInt64(e){let n=0;const r=(this._dataView.getUint8(e+(this._littleEndian?7:0))&128)>0;let i=!0;for(let a=0;a<8;a++){let o=this._dataView.getUint8(e+(this._littleEndian?a:7-a));r&&(i?o!==0&&(o=~(o-1)&255,i=!1):o=~o&255),n+=o*256**a}return r&&(n=-n),n}readOffset(e){return this._bigTiff?this.readUint64(e):this.readUint32(e)}}class _At{async fetch(e,n=void 0){return Promise.all(e.map(r=>this.fetchSlice(r,n)))}async fetchSlice(e){throw new Error(`fetching of slice ${e} not possible, not implemented`)}get fileSize(){return null}async close(){}}class MW extends Error{constructor(e){super(e),Error.captureStackTrace&&Error.captureStackTrace(this,MW),this.name="AbortError"}}class IAt extends _At{constructor(e){super(),this.arrayBuffer=e}fetchSlice(e,n){if(n&&n.aborted)throw new MW("Request aborted");return this.arrayBuffer.slice(e.offset,e.offset+e.length)}}function AAt(t){return new IAt(t)}function NB(t){switch(t){case Sa.BYTE:case Sa.ASCII:case Sa.SBYTE:case Sa.UNDEFINED:return 1;case Sa.SHORT:case Sa.SSHORT:return 2;case Sa.LONG:case Sa.SLONG:case Sa.FLOAT:case Sa.IFD:return 4;case Sa.RATIONAL:case Sa.SRATIONAL:case Sa.DOUBLE:case Sa.LONG8:case Sa.SLONG8:case Sa.IFD8:return 8;default:throw new RangeError(`Invalid field type: ${t}`)}}function MAt(t){const e=t.GeoKeyDirectory;if(!e)return null;const n={};for(let r=4;r<=e[3]*4;r+=4){const i=nAt[e[r]],a=e[r+1]?qT[e[r+1]]:null,o=e[r+2],s=e[r+3];let c=null;if(!a)c=s;else{if(c=t[a],typeof c>"u"||c===null)throw new Error(`Could not get value of geoKey '${i}'.`);typeof c=="string"?c=c.substring(s,s+o-1):c.subarray&&(c=c.subarray(s,s+o),o===1&&(c=c[0]))}n[i]=c}return n}function oS(t,e,n,r){let i=null,a=null;const o=NB(e);switch(e){case Sa.BYTE:case Sa.ASCII:case Sa.UNDEFINED:i=new Uint8Array(n),a=t.readUint8;break;case Sa.SBYTE:i=new Int8Array(n),a=t.readInt8;break;case Sa.SHORT:i=new Uint16Array(n),a=t.readUint16;break;case Sa.SSHORT:i=new Int16Array(n),a=t.readInt16;break;case Sa.LONG:case Sa.IFD:i=new Uint32Array(n),a=t.readUint32;break;case Sa.SLONG:i=new Int32Array(n),a=t.readInt32;break;case Sa.LONG8:case Sa.IFD8:i=new Array(n),a=t.readUint64;break;case Sa.SLONG8:i=new Array(n),a=t.readInt64;break;case Sa.RATIONAL:i=new Uint32Array(n*2),a=t.readUint32;break;case Sa.SRATIONAL:i=new Int32Array(n*2),a=t.readInt32;break;case Sa.FLOAT:i=new Float32Array(n),a=t.readFloat32;break;case Sa.DOUBLE:i=new Float64Array(n),a=t.readFloat64;break;default:throw new RangeError(`Invalid field type: ${e}`)}if(e===Sa.RATIONAL||e===Sa.SRATIONAL)for(let s=0;s<n;s+=2)i[s]=a.call(t,r+s*o),i[s+1]=a.call(t,r+(s*o+4));else for(let s=0;s<n;++s)i[s]=a.call(t,r+s*o);return e===Sa.ASCII?new TextDecoder("utf-8").decode(i):i}class RAt{constructor(e,n,r){this.fileDirectory=e,this.geoKeyDirectory=n,this.nextIFDByteOffset=r}}class bR extends Error{constructor(e){super(`No image at index ${e}`),this.index=e}}class LAt{async readRasters(e={}){const{window:n,width:r,height:i}=e;let{resX:a,resY:o,bbox:s}=e;const c=await this.getImage();let u=c;const d=await this.getImageCount(),f=c.getBoundingBox();if(n&&s)throw new Error('Both "bbox" and "window" passed.');if(r||i){if(n){const[v,y]=c.getOrigin(),[m,g]=c.getResolution();s=[v+n[0]*m,y+n[1]*g,v+n[2]*m,y+n[3]*g]}const p=s||f;if(r){if(a)throw new Error("Both width and resX passed");a=(p[2]-p[0])/r}if(i){if(o)throw new Error("Both width and resY passed");o=(p[3]-p[1])/i}}if(a||o){const p=[];for(let v=0;v<d;++v){const y=await this.getImage(v),{SubfileType:m,NewSubfileType:g}=y.fileDirectory;(v===0||m===2||g&1)&&p.push(y)}p.sort((v,y)=>v.getWidth()-y.getWidth());for(let v=0;v<p.length;++v){const y=p[v],m=(f[2]-f[0])/y.getWidth(),g=(f[3]-f[1])/y.getHeight();if(u=y,a&&a>m||o&&o>g)break}}let h=n;if(s){const[p,v]=c.getOrigin(),[y,m]=u.getResolution(c);h=[Math.round((s[0]-p)/y),Math.round((s[1]-v)/m),Math.round((s[2]-p)/y),Math.round((s[3]-v)/m)],h=[Math.min(h[0],h[2]),Math.min(h[1],h[3]),Math.max(h[0],h[2]),Math.max(h[1],h[3])]}return u.readRasters({...e,window:h})}}class RW extends LAt{constructor(e,n,r,i,a={}){super(),this.source=e,this.littleEndian=n,this.bigTiff=r,this.firstIFDOffset=i,this.cache=a.cache||!1,this.ifdRequests=[],this.ghostValues=null}async getSlice(e,n){const r=this.bigTiff?4048:1024;return new TAt((await this.source.fetch([{offset:e,length:typeof n<"u"?n:r}]))[0],e,this.littleEndian,this.bigTiff)}async parseFileDirectoryAt(e){const n=this.bigTiff?20:12,r=this.bigTiff?8:2;let i=await this.getSlice(e);const a=this.bigTiff?i.readUint64(e):i.readUint16(e),o=a*n+(this.bigTiff?16:6);i.covers(e,o)||(i=await this.getSlice(e,o));const s={};let c=e+(this.bigTiff?8:2);for(let f=0;f<a;c+=n,++f){const h=i.readUint16(c),p=i.readUint16(c+2),v=this.bigTiff?i.readUint64(c+4):i.readUint32(c+4);let y,m;const g=NB(p),x=c+(this.bigTiff?12:8);if(g*v<=(this.bigTiff?8:4))y=oS(i,p,v,x);else{const b=i.readOffset(x),S=NB(p)*v;if(i.covers(b,S))y=oS(i,p,v,b);else{const E=await this.getSlice(b,S);y=oS(E,p,v,b)}}v===1&&JIt.indexOf(h)===-1&&!(p===Sa.RATIONAL||p===Sa.SRATIONAL)?m=y[0]:m=y,s[qT[h]]=m}const u=MAt(s),d=i.readOffset(e+r+n*a);return new RAt(s,u,d)}async requestIFD(e){if(this.ifdRequests[e])return this.ifdRequests[e];if(e===0)return this.ifdRequests[e]=this.parseFileDirectoryAt(this.firstIFDOffset),this.ifdRequests[e];if(!this.ifdRequests[e-1])try{this.ifdRequests[e-1]=this.requestIFD(e-1)}catch(n){throw n instanceof bR?new bR(e):n}return this.ifdRequests[e]=(async()=>{const n=await this.ifdRequests[e-1];if(n.nextIFDByteOffset===0)throw new bR(e);return this.parseFileDirectoryAt(n.nextIFDByteOffset)})(),this.ifdRequests[e]}async getImage(e=0){const n=await this.requestIFD(e);return new CAt(n.fileDirectory,n.geoKeyDirectory,this.dataView,this.littleEndian,this.cache,this.source)}async getImageCount(){let e=0,n=!0;for(;n;)try{await this.requestIFD(e),++e}catch(r){if(r instanceof bR)n=!1;else throw r}return e}async getGhostValues(){const e=this.bigTiff?16:8;if(this.ghostValues)return this.ghostValues;const n="GDAL_STRUCTURAL_METADATA_SIZE=",r=n.length+100;let i=await this.getSlice(e,r);if(n===oS(i,Sa.ASCII,n.length,e)){const o=oS(i,Sa.ASCII,r,e).split(`
4312
4312
  `)[0],s=Number(o.split("=")[1].split(" ")[0])+o.length;s>r&&(i=await this.getSlice(e,s));const c=oS(i,Sa.ASCII,s,e);this.ghostValues={},c.split(`
4313
4313
  `).filter(u=>u.length>0).map(u=>u.split("=")).forEach(([u,d])=>{this.ghostValues[u]=d})}return this.ghostValues}static async fromSource(e,n,r){const i=(await e.fetch([{offset:0,length:1024}],r))[0],a=new wAt(i),o=a.getUint16(0,0);let s;if(o===18761)s=!0;else if(o===19789)s=!1;else throw new TypeError("Invalid byte order value.");const c=a.getUint16(2,s);let u;if(c===42)u=!1;else if(c===43){if(u=!0,a.getUint16(4,s)!==8)throw new Error("Unsupported offset byte-size.")}else throw new TypeError("Invalid magic number.");const d=u?a.getUint64(8,s):a.getUint32(4,s);return new RW(e,s,u,d,n)}close(){return typeof this.source.close=="function"?this.source.close():!1}}async function OAt(t,e){return RW.fromSource(AAt(t),e)}const PAt=({axon_check:t,fbxTreeDatas:e,setLeftMenuTabIndex:n,swcRef:r,setIsChartOpen:i,setEchartValue:a,setChartValue:o,reset:s})=>{const c=w.useRef(null),u=w.useRef(null),[d,f]=w.useState(!1),[h,p]=w.useState(""),[v,y]=w.useState(""),[m,g]=w.useState({x:0,y:0}),x=w.useRef([]),b=w.useRef([]),S=w.useRef(null),E=w.useRef(null),[T,M]=w.useState(!0),L=w.useRef("#000");let R=w.useRef(null),O=!1;const N=(G,W,J,re,Z,Y)=>{for(let ne in re)if(re[ne][Y].find(de=>de===W)&&ne!==null){let de=D(G.nodes,ne.replace("_","/"));de!=null&&de!==parseInt(J)&&Z.findIndex(he=>he.source===parseInt(J)&&he.target===de)==-1&&Z.push({source:parseInt(J),target:de})}},U=(G,W)=>{if(Object.keys(W).length!=0){for(let re in G.nodes){let Z=j(G.nodes[re].name,e);const Y=B(e,G.nodes[re].name);G.nodes[re].children=Z,G.nodes[re].fullname=Y==null?void 0:Y.fullname,G.nodes[re].symbolSize=Math.sqrt(Z.length),G.nodes[re].itemStyle=Y&&Y.color?{color:Y.color}:{},W[G.nodes[re].name].up.length==0&&W[G.nodes[re].name].up.length==0&&delete G.nodes[re]}const J=Object.values(G.nodes);G.nodes=J.map((re,Z)=>({...re,id:Z}));for(let re in G.nodes){let Z=G.nodes[re].children;Z.length===0&&(Z=[G.nodes[re].name.replace("/","_")]),Z.forEach(Y=>{var te,de;let ne=((te=t[Y])==null?void 0:te.soma)||[],q=((de=t[Y])==null?void 0:de.axon)||[];ne&&ne.forEach(se=>{N(G,se,re,t,G.links,"axon")}),q&&q.forEach(se=>{N(G,se,re,t,G.links,"soma")})})}}return G},k=(G,W)=>W.map(J=>{const re=G.find(Y=>Y.id===J.source),Z=G.find(Y=>Y.id===J.target);return{...J,lineStyle:{color:{type:"linear",x:0,y:0,x2:1,y2:0,colorStops:[{offset:0,color:Z.itemStyle.color},{offset:1,color:re.itemStyle.color}]},width:1,curveness:.3}}});w.useEffect(()=>{u.current=KO(c.current),u.current.clear();let G={nodes:[{id:0,name:"Isocortex"},{id:1,name:"OLF"},{id:2,name:"HPF"},{id:3,name:"CTXsp"},{id:4,name:"STR"},{id:5,name:"PAL"},{id:6,name:"IB"},{id:7,name:"MB"},{id:8,name:"HB"},{id:9,name:"CB"},{id:10,name:"VS"},{id:11,name:"fiber tract"}],links:[],categories:[]};G=U(G,t);const W=()=>u.current.getOption().series[0].data,J={tooltip:{formatter:q=>q.dataType==="node"?`${q.data.fullname} (${q.data.name})<br>Downstream: ${t[q.data.name].down.length} projection neuron(s)<br>Upstream: projected by ${t[q.data.name].up.length} neuron(s)`:(q.dataType,"")},animationDurationUpdate:1500,animationEasingUpdate:"quinticInOut",series:[{name:"Les Miserables",type:"graph",layout:"circular",circular:{rotateLabel:!0},data:G.nodes,links:k(G.nodes,G.links),categories:G.categories,roam:!0,label:{show:!0,position:"right",formatter:"{b}",textStyle:{fontSize:20}},lineStyle:{color:"source",curveness:.3}}]};function re(q){if(q.event.event.preventDefault(),q.dataType=="node"){let te={nodes:[],links:[],categories:[]};const de=Z(q.data.name,e),se=F(de,e);let he=V(se),Q=W().filter(le=>!he.includes(le.name));Q=Q.map((le,ce)=>({...le,id:ce}));let ee=Math.max(...Q.map(le=>le.id),0)+1;Q.push({id:ee,name:de}),te.nodes=Q,te=U(te,t),u.current.setOption({series:[{data:te.nodes,links:k(te.nodes,te.links),categories:te.categories}],animationDurationUpdate:1e3,animationEasingUpdate:"cubicOut"})}if(q.dataType=="edge"){const te=W().find(se=>se.id===q.data.source),de=W().find(se=>se.id===q.data.target);x.current=t[de.name].soma.filter(function(se){return t[te.name].axon.indexOf(se)>-1}),b.current=t[te.name].soma.filter(function(se){return t[de.name].axon.indexOf(se)>-1}),p(te.name),y(de.name),g({x:q.clientX+5,y:q.clientY}),f(!0),L.current=q.data.lineStyle.color.colorStops[0].color}}const Z=(q,te)=>{let de="";for(let se=0;se<te.length;se++){const he=te[se];if(he.children){if(he.children.some(Q=>Q.name===q)){de=he.name;break}else if(Z(q,he.children)){de=Z(q,he.children);break}}}return de},Y=q=>{clearTimeout(R.current),O=!0,a(q.data.name),o(q.data.name),i(!1)},ne=q=>{R.current=setTimeout(()=>{if(!O){const te={nodes:[],links:[],categories:[]},de=F(q.data.name,e);if(de){let he=u.current.getOption().series[0].data.filter(le=>le.name!==q.data.name);he=he.map((le,ce)=>({...le,id:ce}));let Q=he.length;de.children.forEach(le=>{te.nodes.push({id:Q,name:le.name}),Q++});const pe=[...he,...te.nodes],ee=U({nodes:pe,links:[],categories:[]},t);ee.links.length>0?u.current.setOption({series:[{data:ee.nodes,links:k(ee.nodes,ee.links),categories:ee.categories}]}):fy.error("NO find links")}}O=!1},300)};return u.current.setOption(J),u.current.on("click",ne),u.current.on("dblclick",Y),u.current.on("contextmenu",re),()=>{u.current.off("click",ne),u.current.off("dblclick",Y),u.current.off("contextmenu",re)}},[t,e,s]);function D(G,W){for(let J of G)if(J.children.includes(W)||J.name==W)return J.id;return null}const V=G=>{const W=[],J=re=>{W.push(re.name),re.children&&re.children.forEach(Z=>J(Z))};return J(G),W},B=(G,W)=>{for(let J of G){if(J.name.toLowerCase()===W.toLowerCase())return{color:J.color,fullname:J.fullname};if(J.children){const re=B(J.children,W);if(re)return re}}return null},F=(G,W)=>{let J=[],re=!1,Z;for(let Y=0;Y<W.length;Y++)J.push(W[Y]);for(;J.length>0&&!re;){let Y=J.pop();if(Y.name==G){re=!0,Z=Y;break}else if(Y.children)for(let ne=0;ne<Y.children.length;ne++)J.push(Y.children[ne])}return Z},j=(G,W)=>{let J="";const re=Y=>{if(Y.name===G){J=Y;return}if(Y.children){for(let ne of Y.children)if(re(ne),J)return}},Z=Y=>{let ne=[];if(Y.children)for(let q of Y.children)ne.push(q.name),ne=ne.concat(Z(q));return ne};for(let Y of W)if(re(Y),J)break;return J?Z(J):[]},K=[{key:"1",label:w.createElement("a",{target:"_blank",style:{width:"150px",textAlign:"center"},onClick:G=>{n(3),r.current.setSearchValue(v),r.current.setSomaValue(h),f(!1),i(!1)}},h," →",v,": ",b.current.length," projection neruon(s)")},{key:"2",label:w.createElement("a",{target:"_blank",style:{width:"150px",textAlign:"center"},onClick:G=>{n(3),r.current.setSearchValue(h),r.current.setSomaValue(v),f(!1),i(!1)}},v," →",h,": ",x.current.length," projection neruon(s)")}];return w.createElement(w.Fragment,null,w.createElement("div",{style:{overflow:"hidden",position:"absolute",width:"500px",height:"200px"}},w.createElement("div",{ref:S,style:{zIndex:9,position:"absolute",backgroundColor:"#f1f1f180",borderTopRightRadius:"5px",borderTopLeftRadius:"5px",borderBottomRightRadius:"5px",transform:T?"translateY(0)":"translateY(-99%)",transition:"transform 0.3s ease-in-out",padding:"5px"}},w.createElement("p",{style:{paddingLeft:"10px",paddingRight:"10px"}},"- Mouse-over a node to see upstream and downstream neuron numbers",w.createElement("br",null),"- Left-click a node to expand its children structures",w.createElement("br",null),"- Righ-click a node to collapse to its parent structure",w.createElement("br",null),"- Double-click a node to visualize all its projections in the main window",w.createElement("br",null),"- Righ-click a line to see the projections between two connected nodes",w.createElement("br",null),"- Left-click the popup menu of the line to inquire the projection neurons"),w.createElement("a",{style:{zIndex:9,position:"absolute",bottom:"-28px",left:0,display:"flex"},onClick:()=>{M(!T)}},w.createElement("div",{style:{width:"90px",height:"28px",display:"flex",justifyContent:"center",borderBottomRightRadius:"5px",borderBottomLeftRadius:"5px",backgroundColor:"#f1f1f180"}},w.createElement("div",{style:{display:"flex",alignItems:"center",color:"#000"}},"Help   ",w.createElement("div",{ref:E,style:{width:0,height:0,borderLeft:"7px solid transparent",borderRight:"7px solid transparent",borderBottom:T?"10px solid #000":0,borderTop:T?0:"10px solid #000"}})))))),w.createElement(Mb,{menu:{items:K},open:d,onOpenChange:G=>{f(!G)},overlayStyle:{position:"absolute",left:m.x,top:m.y,width:"auto",minWidth:"auto",border:`2px solid ${L}`},overlayClassName:"pipeline_dropdown"},w.createElement("div",{ref:c,style:{width:"100%",height:"calc(100vh - 75px)"},onClick:()=>{f(!1)},onMouseEnter:()=>{f(!1)}})))};Hi([LSe,uEe,v2e,Gxe]);const zv=k2.TabPane,{TextArea:mle}=Fc,NAt=`
4314
4314
  precision highp float;