1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4779],{8328:function(e,t,r){let n,o;r.d(t,{V:function(){return w}});var i=r(1119),l=r(2265),s=r(4040),a=r(1448),c=r(1276);let u=new a.Vector3,d=new a.Vector3,f=new a.Vector3,m=new a.Vector2;function h(e,t,r){let n=u.setFromMatrixPosition(e.matrixWorld);n.project(t);let o=r.width/2,i=r.height/2;return[n.x*o+o,-(n.y*i)+i]}let p=e=>1e-10>Math.abs(e)?0:e;function v(e,t,r=""){let n="matrix3d(";for(let r=0;16!==r;r++)n+=p(t[r]*e.elements[r])+(15!==r?",":")");return r+n}let y=(n=[1,-1,1,1,1,-1,1,1,1,-1,1,1,1,-1,1,1],e=>v(e,n)),x=(o=e=>[1/e,1/e,1/e,1,-1/e,-1/e,-1/e,-1,1/e,1/e,1/e,1,1,1,1,1],(e,t)=>v(e,o(t),"translate(-50%,-50%)")),w=l.forwardRef(({children:e,eps:t=.001,style:r,className:n,prepend:o,center:v,fullscreen:w,portal:g,distanceFactor:b,sprite:E=!1,transform:M=!1,occlude:P,onOcclude:z,castShadow:S,receiveShadow:j,material:C,geometry:R,zIndexRange:W=[16777271,0],calculatePosition:O=h,as:L="div",wrapperClass:$,pointerEvents:H="auto",...F},T)=>{let{gl:k,camera:I,scene:_,size:A,raycaster:N,events:V,viewport:B}=(0,c.D)(),[D]=l.useState(()=>document.createElement(L)),X=l.useRef(),Y=l.useRef(null),Z=l.useRef(0),G=l.useRef([0,0]),q=l.useRef(null),J=l.useRef(null),K=(null==g?void 0:g.current)||V.connected||k.domElement.parentNode,Q=l.useRef(null),U=l.useRef(!1),ee=l.useMemo(()=>{var e;return P&&"blending"!==P||Array.isArray(P)&&P.length&&(e=P[0])&&"object"==typeof e&&"current"in e},[P]);l.useLayoutEffect(()=>{let e=k.domElement;P&&"blending"===P?(e.style.zIndex=`${Math.floor(W[0]/2)}`,e.style.position="absolute",e.style.pointerEvents="none"):(e.style.zIndex=null,e.style.position=null,e.style.pointerEvents=null)},[P]),l.useLayoutEffect(()=>{if(Y.current){let e=X.current=s.createRoot(D);if(_.updateMatrixWorld(),M)D.style.cssText="position:absolute;top:0;left:0;pointer-events:none;overflow:hidden;";else{let e=O(Y.current,I,A);D.style.cssText=`position:absolute;top:0;left:0;transform:translate3d(${e[0]}px,${e[1]}px,0);transform-origin:0 0;`}return K&&(o?K.prepend(D):K.appendChild(D)),()=>{K&&K.removeChild(D),e.unmount()}}},[K,M]),l.useLayoutEffect(()=>{$&&(D.className=$)},[$]);let et=l.useMemo(()=>M?{position:"absolute",top:0,left:0,width:A.width,height:A.height,transformStyle:"preserve-3d",pointerEvents:"none"}:{position:"absolute",transform:v?"translate3d(-50%,-50%,0)":"none",...w&&{top:-A.height/2,left:-A.width/2,width:A.width,height:A.height},...r},[r,v,w,A,M]),er=l.useMemo(()=>({position:"absolute",pointerEvents:H}),[H]);l.useLayoutEffect(()=>{var t,o;U.current=!1,M?null==(t=X.current)||t.render(l.createElement("div",{ref:q,style:et},l.createElement("div",{ref:J,style:er},l.createElement("div",{ref:T,className:n,style:r,children:e})))):null==(o=X.current)||o.render(l.createElement("div",{ref:T,style:et,className:n,children:e}))});let en=l.useRef(!0);(0,c.F)(e=>{if(Y.current){I.updateMatrixWorld(),Y.current.updateWorldMatrix(!0,!1);let e=M?G.current:O(Y.current,I,A);if(M||Math.abs(Z.current-I.zoom)>t||Math.abs(G.current[0]-e[0])>t||Math.abs(G.current[1]-e[1])>t){let t=function(e,t){let r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld),o=r.sub(n),i=t.getWorldDirection(f);return o.angleTo(i)>Math.PI/2}(Y.current,I),r=!1;ee&&(Array.isArray(P)?r=P.map(e=>e.current):"blending"!==P&&(r=[_]));let n=en.current;if(r){let e=function(e,t,r,n){let o=u.setFromMatrixPosition(e.matrixWorld),i=o.clone();i.project(t),m.set(i.x,i.y),r.setFromCamera(m,t);let l=r.intersectObjects(n,!0);if(l.length){let e=l[0].distance;return o.distanceTo(r.ray.origin)<e}return!0}(Y.current,I,N,r);en.current=e&&!t}else en.current=!t;n!==en.current&&(z?z(!en.current):D.style.display=en.current?"block":"none");let o=Math.floor(W[0]/2),i=P?ee?[W[0],o]:[o-1,0]:W;if(D.style.zIndex=`${function(e,t,r){if(t instanceof a.PerspectiveCamera||t instanceof a.OrthographicCamera){let n=u.setFromMatrixPosition(e.matrixWorld),o=d.setFromMatrixPosition(t.matrixWorld),i=n.distanceTo(o),l=(r[1]-r[0])/(t.far-t.near),s=r[1]-l*t.far;return Math.round(l*i+s)}}(Y.current,I,i)}`,M){let[e,t]=[A.width/2,A.height/2],r=I.projectionMatrix.elements[5]*t,{isOrthographicCamera:n,top:o,left:i,bottom:l,right:s}=I,a=y(I.matrixWorldInverse),c=n?`scale(${r})translate(${p(-(s+i)/2)}px,${p((o+l)/2)}px)`:`translateZ(${r}px)`,u=Y.current.matrixWorld;E&&((u=I.matrixWorldInverse.clone().transpose().copyPosition(u).scale(Y.current.scale)).elements[3]=u.elements[7]=u.elements[11]=0,u.elements[15]=1),D.style.width=A.width+"px",D.style.height=A.height+"px",D.style.perspective=n?"":`${r}px`,q.current&&J.current&&(q.current.style.transform=`${c}${a}translate(${e}px,${t}px)`,J.current.style.transform=x(u,1/((b||10)/400)))}else{let t=void 0===b?1:function(e,t){if(t instanceof a.Orthogra
1phicCamera)return t.zoom;if(!(t instanceof a.PerspectiveCamera))return 1;{let r=u.setFromMatrixPosition(e.matrixWorld),n=d.setFromMatrixPosition(t.matrixWorld);return 1/(2*Math.tan(t.fov*Math.PI/180/2)*r.distanceTo(n))}}(Y.current,I)*b;D.style.transform=`translate3d(${e[0]}px,${e[1]}px,0) scale(${t})`}G.current=e,Z.current=I.zoom}}if(!ee&&Q.current&&!U.current){if(M){if(q.current){let e=q.current.children[0];if(null!=e&&e.clientWidth&&null!=e&&e.clientHeight){let{isOrthographicCamera:t}=I;if(t||R)F.scale&&(Array.isArray(F.scale)?F.scale instanceof a.Vector3?Q.current.scale.copy(F.scale.clone().divideScalar(1)):Q.current.scale.set(1/F.scale[0],1/F.scale[1],1/F.scale[2]):Q.current.scale.setScalar(1/F.scale));else{let t=(b||10)/400,r=e.clientWidth*t,n=e.clientHeight*t;Q.current.scale.set(r,n,1)}U.current=!0}}}else{let t=D.children[0];if(null!=t&&t.clientWidth&&null!=t&&t.clientHeight){let e=1/B.factor,r=t.clientWidth*e,n=t.clientHeight*e;Q.current.scale.set(r,n,1),U.current=!0}Q.current.lookAt(e.camera.position)}}});let eo=l.useMemo(()=>({vertexShader:M?void 0:` 2 /* 3 This shader is from the THREE's SpriteMaterial. 4 We need to turn the backing plane into a Sprite 5 (make it always face the camera) if "transfrom" 6 is false. 7 */ 8 #include <common> 9 10 void main() { 11 vec2 center = vec2(0., 1.); 12 float rotation = 0.0; 13 14 // This is somewhat arbitrary, but it seems to work well 15 // Need to figure out how to derive this dynamically if it even matters 16 float size = 0.03; 17 18 vec4 mvPosition = modelViewMatrix * vec4( 0.0, 0.0, 0.0, 1.0 ); 19 vec2 scale; 20 scale.x = length( vec3( modelMatrix[ 0 ].x, modelMatrix[ 0 ].y, modelMatrix[ 0 ].z ) ); 21 scale.y = length( vec3( modelMatrix[ 1 ].x, modelMatrix[ 1 ].y, modelMatrix[ 1 ].z ) ); 22 23 bool isPerspective = isPerspectiveMatrix( projectionMatrix ); 24 if ( isPerspective ) scale *= - mvPosition.z; 25 26 vec2 alignedPosition = ( position.xy - ( center - vec2( 0.5 ) ) ) * scale * size; 27 vec2 rotatedPosition; 28 rotatedPosition.x = cos( rotation ) * alignedPosition.x - sin( rotation ) * alignedPosition.y; 29 rotatedPosition.y = sin( rotation ) * alignedPosition.x + cos( rotation ) * alignedPosition.y; 30 mvPosition.xy += rotatedPosition; 31 32 gl_Position = projectionMatrix * mvPosition; 33 } 34 `,fragmentShader:` 35 void main() { 36 gl_FragColor = vec4(0.0, 0.0, 0.0, 0.0); 37 } 38 `}),[M]);return l.createElement("group",(0,i.Z)({},F,{ref:Y}),P&&!ee&&l.createElement("mesh",{castShadow:S,receiveShadow:j,ref:Q},R||l.createElement("planeGeometry",null),C||l.createElement("shaderMaterial",{side:a.DoubleSide,vertexShader:eo.vertexShader,fragmentShader:eo.fragmentShader})))})},6496:function(e,t,r){r.d(t,{Xz:function(){return S}});var n,o,i=r(1276),l=r(2265),s=r(1448);function a(e,t){let r;return(...n)=>{window.clearTimeout(r),r=window.setTimeout(()=>e(...n),t)}}let c=["x","y","top","bottom","left","right","width","height"],u=(e,t)=>c.every(r=>e[r]===t[r]);var d=Object.defineProperty,f=Object.defineProperties,m=Object.getOwnPropertyDescriptors,h=Object.getOwnPropertySymbols,p=Object.prototype.hasOwnProperty,v=Object.prototype.propertyIsEnumerable,y=(e,t,r)=>t in e?d(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,x=(e,t)=>{for(var r in t||(t={}))p.call(t,r)&&y(e,r,t[r]);if(h)for(var r of h(t))v.call(t,r)&&y(e,r,t[r]);return e},w=(e,t)=>f(e,m(t));function g(e){try{return Object.defineProperties(e,{_currentRenderer:{get:()=>null,set(){}},_currentRenderer2:{get:()=>null,set(){}}})}catch(t){return e}}"undefined"!=typeof window&&((null==(n=window.document)?void 0:n.createElement)||(null==(o=window.navigator)?void 0:o.product)==="ReactNative")?l.useLayoutEffect:l.useEffect;let b=console.error;console.error=function(){let e=[...arguments].join("");if((null==e?void 0:e.startsWith("Warning:"))&&e.includes("useContext")){console.error=b;return}return b.apply(this,arguments)};let E=g(l.createContext(null));class M extends l.Component{render(){return l.createElement(E.Provider,{value:this._reactInternals},this.props.children)}}var P=r(7437);r(9971),r(7975),r(6697);let z=l.forwardRef(function({children:e,fallback:t,resize:r,style:n,gl:o,events:c=i.c,eventSource:d,eventPrefix:f,shadows:m,linear:h,flat:p,legacy:v,orthographic:y,frameloop:b,dpr:z,performance:S,raycaster:j,camera:C,scene:R,onPointerMissed:W,onCreated:O,...L},$){l.useMemo(()=>(0,i.e)(s),[]);let H=function(){let e=function(){let e=function(){let e=l.useContext(E);if(null===e)throw Error("its-fine: useFiber must be called within a <FiberProvider />!");let t=l.useId();return l.useMemo(()=>{for(let r of[e,null==e?void 0:e.alternate]){if(!r)continue;let e=function e(t,r,n){if(!t)return;if(!0===n(t))return t;let o=r?t.return:t.child;for(;o;){let t=e(o,r,n);if(t)return t;o=r?null:o.sibling}}(r,!1,e=>{let r=e.memoizedState;for(;r;){if(r.memoizedState===t)return!0;r=r.next}});if(e)return e}},[e,t])}(),[t]=l.useState(()=>new Map);t.clear();let r=e;for(;r;){if(r.type&&"object"==typeof r.type){let e=void 0===r.type._context&&r.type.Provider===r.type?r.type:r.type._context;e&&e!==E&&!t.has(e)&&t.set(e,l.useContext(g(e)))}r=r.return}return t}();return l.useMemo(()=>Array.from(e.keys()).reduce((t,r)=>n=>l.createElement(t,null,l.createElement(r.Provider,w(x({},n),{value:e.get(r)}))),e=>l.createElement(M,x({},e))),[e])}(),[F,T]=function({debounce:e,scroll:t,polyfill:r,offsetSize:n}={debounce:0,scroll:!1,offsetSize:!1}){var o;let i=r||("undefined"==typeof window?class{}:window.ResizeObserver);if(!i)throw Error("This browser does not support ResizeObserver out of the box. See: https://github.com/react-spring/react-use-measure/#resize-observer-polyfills");let[s,c]=(0,l.useState)({left:0,top:0,width:0,height:0,bottom:0,right:0,x:0,y:0}
38),d=(0,l.useRef)({element:null,scrollContainers:null,resizeObserver:null,lastBounds:s,orientationHandler:null}),f=e?"number"==typeof e?e:e.scroll:null,m=e?"number"==typeof e?e:e.resize:null,h=(0,l.useRef)(!1);(0,l.useEffect)(()=>(h.current=!0,()=>void(h.current=!1)));let[p,v,y]=(0,l.useMemo)(()=>{let e=()=>{if(!d.current.element)return;let{left:e,top:t,width:r,height:o,bottom:i,right:l,x:s,y:a}=d.current.element.getBoundingClientRect(),f={left:e,top:t,width:r,height:o,bottom:i,right:l,x:s,y:a};d.current.element instanceof HTMLElement&&n&&(f.height=d.current.element.offsetHeight,f.width=d.current.element.offsetWidth),Object.freeze(f),h.current&&!u(d.current.lastBounds,f)&&c(d.current.lastBounds=f)};return[e,m?a(e,m):e,f?a(e,f):e]},[c,n,f,m]);function x(){d.current.scrollContainers&&(d.current.scrollContainers.forEach(e=>e.removeEventListener("scroll",y,!0)),d.current.scrollContainers=null),d.current.resizeObserver&&(d.current.resizeObserver.disconnect(),d.current.resizeObserver=null),d.current.orientationHandler&&("orientation"in screen&&"removeEventListener"in screen.orientation?screen.orientation.removeEventListener("change",d.current.orientationHandler):"onorientationchange"in window&&window.removeEventListener("orientationchange",d.current.orientationHandler))}function w(){d.current.element&&(d.current.resizeObserver=new i(y),d.current.resizeObserver.observe(d.current.element),t&&d.current.scrollContainers&&d.current.scrollContainers.forEach(e=>e.addEventListener("scroll",y,{capture:!0,passive:!0})),d.current.orientationHandler=()=>{y()},"orientation"in screen&&"addEventListener"in screen.orientation?screen.orientation.addEventListener("change",d.current.orientationHandler):"onorientationchange"in window&&window.addEventListener("orientationchange",d.current.orientationHandler))}return o=!!t,(0,l.useEffect)(()=>{if(o)return window.addEventListener("scroll",y,{capture:!0,passive:!0}),()=>void window.removeEventListener("scroll",y,!0)},[y,o]),(0,l.useEffect)(()=>(window.addEventListener("resize",v),()=>void window.removeEventListener("resize",v)),[v]),(0,l.useEffect)(()=>{x(),w()},[t,y,v]),(0,l.useEffect)(()=>x,[]),[e=>{e&&e!==d.current.element&&(x(),d.current.element=e,d.current.scrollContainers=function e(t){let r=[];if(!t||t===document.body)return r;let{overflow:n,overflowX:o,overflowY:i}=window.getComputedStyle(t);return[n,o,i].some(e=>"auto"===e||"scroll"===e)&&r.push(t),[...r,...e(t.parentElement)]}(e),w())},s,p]}({scroll:!0,debounce:{scroll:50,resize:0},...r}),k=l.useRef(null),I=l.useRef(null);l.useImperativeHandle($,()=>k.current);let _=(0,i.u)(W),[A,N]=l.useState(!1),[V,B]=l.useState(!1);if(A)throw A;if(V)throw V;let D=l.useRef(null);(0,i.a)(()=>{let t=k.current;T.width>0&&T.height>0&&t&&(D.current||(D.current=(0,i.b)(t)),D.current.configure({gl:o,events:c,shadows:m,linear:h,flat:p,legacy:v,orthographic:y,frameloop:b,dpr:z,performance:S,raycaster:j,camera:C,scene:R,size:T,onPointerMissed:(...e)=>null==_.current?void 0:_.current(...e),onCreated:e=>{null==e.events.connect||e.events.connect(d?(0,i.i)(d)?d.current:d:I.current),f&&e.setEvents({compute:(e,t)=>{let r=e[f+"X"],n=e[f+"Y"];t.pointer.set(r/t.size.width*2-1,-(n/t.size.height*2)+1),t.raycaster.setFromCamera(t.pointer,t.camera)}}),null==O||O(e)}}),D.current.render((0,P.jsx)(H,{children:(0,P.jsx)(i.E,{set:B,children:(0,P.jsx)(l.Suspense,{fallback:(0,P.jsx)(i.B,{set:N}),children:null!=e?e:null})})})))}),l.useEffect(()=>{let e=k.current;if(e)return()=>(0,i.d)(e)},[]);let X=d?"none":"auto";return(0,P.jsx)("div",{ref:I,style:{position:"relative",width:"100%",height:"100%",overflow:"hidden",pointerEvents:X,...n},...L,children:(0,P.jsx)("div",{ref:F,style:{width:"100%",height:"100%"},children:(0,P.jsx)("canvas",{ref:k,style:{display:"block"},children:t})})})}),S=l.forwardRef(function(e,t){return(0,P.jsx)(M,{children:(0,P.jsx)(z,{...e,ref:t})})})}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.