From 387a5f47d7f5f970ff1e6021a4f1f9537deb48c9 Mon Sep 17 00:00:00 2001 From: legop3 Date: Sat, 18 Jul 2026 00:13:04 -0400 Subject: [PATCH] oooopes --- .../public/assets/OrbitControls-BJ-UXxdt.js | 2 + .../assets/OrbitControls-BJ-UXxdt.js.map | 1 + server/public/assets/index-BlPOv38a.js | 148 + server/public/assets/index-BlPOv38a.js.map | 1 + server/public/assets/index-BwjDTdpq.css | 1 + server/public/assets/three.module--MGUDD-H.js | 4105 +++++++++++++++++ .../assets/three.module--MGUDD-H.js.map | 1 + server/public/assets/turn_alert-DVO8EZJa.mp3 | Bin 0 -> 4740 bytes server/public/index.html | 87 + 9 files changed, 4346 insertions(+) create mode 100644 server/public/assets/OrbitControls-BJ-UXxdt.js create mode 100644 server/public/assets/OrbitControls-BJ-UXxdt.js.map create mode 100644 server/public/assets/index-BlPOv38a.js create mode 100644 server/public/assets/index-BlPOv38a.js.map create mode 100644 server/public/assets/index-BwjDTdpq.css create mode 100644 server/public/assets/three.module--MGUDD-H.js create mode 100644 server/public/assets/three.module--MGUDD-H.js.map create mode 100644 server/public/assets/turn_alert-DVO8EZJa.mp3 create mode 100644 server/public/index.html diff --git a/server/public/assets/OrbitControls-BJ-UXxdt.js b/server/public/assets/OrbitControls-BJ-UXxdt.js new file mode 100644 index 00000000..6a2522d6 --- /dev/null +++ b/server/public/assets/OrbitControls-BJ-UXxdt.js @@ -0,0 +1,2 @@ +import{Controls as M,Vector3 as p,MOUSE as u,TOUCH as _,Quaternion as E,Spherical as P,Vector2 as c,Ray as w,Plane as O,MathUtils as R}from"./three.module--MGUDD-H.js";const D={type:"change"},b={type:"start"},S={type:"end"},f=new w,T=new O,L=Math.cos(70*R.DEG2RAD),n=new p,r=2*Math.PI,o={NONE:-1,ROTATE:0,DOLLY:1,PAN:2,TOUCH_ROTATE:3,TOUCH_PAN:4,TOUCH_DOLLY_PAN:5,TOUCH_DOLLY_ROTATE:6},y=1e-6;class X extends M{constructor(t,e=null){super(t,e),this.state=o.NONE,this.target=new p,this.cursor=new p,this.minDistance=0,this.maxDistance=1/0,this.minZoom=0,this.maxZoom=1/0,this.minTargetRadius=0,this.maxTargetRadius=1/0,this.minPolarAngle=0,this.maxPolarAngle=Math.PI,this.minAzimuthAngle=-1/0,this.maxAzimuthAngle=1/0,this.enableDamping=!1,this.dampingFactor=.05,this.enableZoom=!0,this.zoomSpeed=1,this.enableRotate=!0,this.rotateSpeed=1,this.keyRotateSpeed=1,this.enablePan=!0,this.panSpeed=1,this.screenSpacePanning=!0,this.keyPanSpeed=7,this.zoomToCursor=!1,this.autoRotate=!1,this.autoRotateSpeed=2,this.keys={LEFT:"ArrowLeft",UP:"ArrowUp",RIGHT:"ArrowRight",BOTTOM:"ArrowDown"},this.mouseButtons={LEFT:u.ROTATE,MIDDLE:u.DOLLY,RIGHT:u.PAN},this.touches={ONE:_.ROTATE,TWO:_.DOLLY_PAN},this.target0=this.target.clone(),this.position0=this.object.position.clone(),this.zoom0=this.object.zoom,this._cursorStyle="auto",this._domElementKeyEvents=null,this._lastPosition=new p,this._lastQuaternion=new E,this._lastTargetPosition=new p,this._quat=new E().setFromUnitVectors(t.up,new p(0,1,0)),this._quatInverse=this._quat.clone().invert(),this._spherical=new P,this._sphericalDelta=new P,this._scale=1,this._panOffset=new p,this._rotateStart=new c,this._rotateEnd=new c,this._rotateDelta=new c,this._panStart=new c,this._panEnd=new c,this._panDelta=new c,this._dollyStart=new c,this._dollyEnd=new c,this._dollyDelta=new c,this._dollyDirection=new p,this._mouse=new c,this._performCursorZoom=!1,this._pointers=[],this._pointerPositions={},this._controlActive=!1,this._onPointerMove=A.bind(this),this._onPointerDown=j.bind(this),this._onPointerUp=k.bind(this),this._onContextMenu=Z.bind(this),this._onMouseWheel=N.bind(this),this._onKeyDown=I.bind(this),this._onTouchStart=Y.bind(this),this._onTouchMove=U.bind(this),this._onMouseDown=x.bind(this),this._onMouseMove=C.bind(this),this._interceptControlDown=z.bind(this),this._interceptControlUp=K.bind(this),this.domElement!==null&&this.connect(this.domElement),this.update()}set cursorStyle(t){this._cursorStyle=t,t==="grab"?this.domElement.style.cursor="grab":this.domElement.style.cursor="auto"}get cursorStyle(){return this._cursorStyle}connect(t){super.connect(t),this.domElement.addEventListener("pointerdown",this._onPointerDown),this.domElement.addEventListener("pointercancel",this._onPointerUp),this.domElement.addEventListener("contextmenu",this._onContextMenu),this.domElement.addEventListener("wheel",this._onMouseWheel,{passive:!1}),this.domElement.getRootNode().addEventListener("keydown",this._interceptControlDown,{passive:!0,capture:!0}),this.domElement.style.touchAction="none"}disconnect(){this.domElement.removeEventListener("pointerdown",this._onPointerDown),this.domElement.ownerDocument.removeEventListener("pointermove",this._onPointerMove),this.domElement.ownerDocument.removeEventListener("pointerup",this._onPointerUp),this.domElement.removeEventListener("pointercancel",this._onPointerUp),this.domElement.removeEventListener("wheel",this._onMouseWheel),this.domElement.removeEventListener("contextmenu",this._onContextMenu),this.stopListenToKeyEvents(),this.domElement.getRootNode().removeEventListener("keydown",this._interceptControlDown,{capture:!0}),this.domElement.style.touchAction=""}dispose(){this.disconnect()}getPolarAngle(){return this._spherical.phi}getAzimuthalAngle(){return this._spherical.theta}getDistance(){return this.object.position.distanceTo(this.target)}listenToKeyEvents(t){t.addEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=t}stopListenToKeyEvents(){this._domElementKeyEvents!==null&&(this._domElementKeyEvents.removeEventListener("keydown",this._onKeyDown),this._domElementKeyEvents=null)}saveState(){this.target0.copy(this.target),this.position0.copy(this.object.position),this.zoom0=this.object.zoom}reset(){this.target.copy(this.target0),this.object.position.copy(this.position0),this.object.zoom=this.zoom0,this.object.updateProjectionMatrix(),this.dispatchEvent(D),this.update(),this.state=o.NONE}pan(t,e){this._pan(t,e),this.update()}dollyIn(t){this._dollyIn(t),this.update()}dollyOut(t){this._dollyOut(t),this.update()}rotateLeft(t){this._rotateLeft(t),this.update()}rotateUp(t){this._rotateUp(t),this.update()}update(t=null){const e=this.object.position;n.copy(e).sub(this.target),n.applyQuaternion(this._quat),this._spherical.setFromVector3(n),this.autoRotate&&this.state===o.NONE&&this._rotateLeft(this._getAutoRotationAngle(t)),this.enableDamping?(this._spherical.theta+=this._sphericalDelta.theta*this.dampingFactor,this._spherical.phi+=this._sphericalDelta.phi*this.dampingFactor):(this._spherical.theta+=this._sphericalDelta.theta,this._spherical.phi+=this._sphericalDelta.phi);let s=this.minAzimuthAngle,a=this.maxAzimuthAngle;isFinite(s)&&isFinite(a)&&(s<-Math.PI?s+=r:s>Math.PI&&(s-=r),a<-Math.PI?a+=r:a>Math.PI&&(a-=r),s<=a?this._spherical.theta=Math.max(s,Math.min(a,this._spherical.theta)):this._spherical.theta=this._spherical.theta>(s+a)/2?Math.max(s,this._spherical.theta):Math.min(a,this._spherical.theta)),this._spherical.phi=Math.max(this.minPolarAngle,Math.min(this.maxPolarAngle,this._spherical.phi)),this._spherical.makeSafe(),this.enableDamping===!0?this.target.addScaledVector(this._panOffset,this.dampingFactor):this.target.add(this._panOffset),this.target.sub(this.cursor),this.target.clampLength(this.minTargetRadius,this.maxTargetRadius),this.target.add(this.cursor);let h=!1;if(this.zoomToCursor&&this._performCursorZoom||this.object.isOrthographicCamera)this._spherical.radius=this._clampDistance(this._spherical.radius);else{const l=this._spherical.radius;this._spherical.radius=this._clampDistance(this._spherical.radius*this._scale),h=l!=this._spherical.radius}if(n.setFromSpherical(this._spherical),n.applyQuaternion(this._quatInverse),e.copy(this.target).add(n),this.object.lookAt(this.target),this.enableDamping===!0?(this._sphericalDelta.theta*=1-this.dampingFactor,this._sphericalDelta.phi*=1-this.dampingFactor,this._panOffset.multiplyScalar(1-this.dampingFactor)):(this._sphericalDelta.set(0,0,0),this._panOffset.set(0,0,0)),this.zoomToCursor&&this._performCursorZoom){let l=null;if(this.object.isPerspectiveCamera){const d=n.length();l=this._clampDistance(d*this._scale);const m=d-l;this.object.position.addScaledVector(this._dollyDirection,m),this.object.updateMatrixWorld(),h=!!m}else if(this.object.isOrthographicCamera){const d=new p(this._mouse.x,this._mouse.y,0);d.unproject(this.object);const m=this.object.zoom;this.object.zoom=Math.max(this.minZoom,Math.min(this.maxZoom,this.object.zoom/this._scale)),this.object.updateProjectionMatrix(),h=m!==this.object.zoom;const g=new p(this._mouse.x,this._mouse.y,0);g.unproject(this.object),this.object.position.sub(g).add(d),this.object.updateMatrixWorld(),l=n.length()}else console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."),this.zoomToCursor=!1;l!==null&&(this.screenSpacePanning?this.target.set(0,0,-1).transformDirection(this.object.matrix).multiplyScalar(l).add(this.object.position):(f.origin.copy(this.object.position),f.direction.set(0,0,-1).transformDirection(this.object.matrix),Math.abs(this.object.up.dot(f.direction))y||8*(1-this._lastQuaternion.dot(this.object.quaternion))>y||this._lastTargetPosition.distanceToSquared(this.target)>y?(this.dispatchEvent(D),this._lastPosition.copy(this.object.position),this._lastQuaternion.copy(this.object.quaternion),this._lastTargetPosition.copy(this.target),!0):!1}_getAutoRotationAngle(t){return t!==null?r/60*this.autoRotateSpeed*t:r/60/60*this.autoRotateSpeed}_getZoomScale(t){const e=Math.abs(t*.01);return Math.pow(.95,this.zoomSpeed*e)}_rotateLeft(t){this._sphericalDelta.theta-=t}_rotateUp(t){this._sphericalDelta.phi-=t}_panLeft(t,e){n.setFromMatrixColumn(e,0),n.multiplyScalar(-t),this._panOffset.add(n)}_panUp(t,e){this.screenSpacePanning===!0?n.setFromMatrixColumn(e,1):(n.setFromMatrixColumn(e,0),n.crossVectors(this.object.up,n)),n.multiplyScalar(t),this._panOffset.add(n)}_pan(t,e){const s=this.domElement;if(this.object.isPerspectiveCamera){const a=this.object.position;n.copy(a).sub(this.target);let h=n.length();h*=Math.tan(this.object.fov/2*Math.PI/180),this._panLeft(2*t*h/s.clientHeight,this.object.matrix),this._panUp(2*e*h/s.clientHeight,this.object.matrix)}else this.object.isOrthographicCamera?(this._panLeft(t*(this.object.right-this.object.left)/this.object.zoom/s.clientWidth,this.object.matrix),this._panUp(e*(this.object.top-this.object.bottom)/this.object.zoom/s.clientHeight,this.object.matrix)):(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - pan disabled."),this.enablePan=!1)}_dollyOut(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale/=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_dollyIn(t){this.object.isPerspectiveCamera||this.object.isOrthographicCamera?this._scale*=t:(console.warn("WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled."),this.enableZoom=!1)}_updateZoomParameters(t,e){if(!this.zoomToCursor)return;this._performCursorZoom=!0;const s=this.domElement.getBoundingClientRect(),a=t-s.left,h=e-s.top,l=s.width,d=s.height;this._mouse.x=a/l*2-1,this._mouse.y=-(h/d)*2+1,this._dollyDirection.set(this._mouse.x,this._mouse.y,1).unproject(this.object).sub(this.object.position).normalize()}_clampDistance(t){return Math.max(this.minDistance,Math.min(this.maxDistance,t))}_handleMouseDownRotate(t){this._rotateStart.set(t.clientX,t.clientY)}_handleMouseDownDolly(t){this._updateZoomParameters(t.clientX,t.clientX),this._dollyStart.set(t.clientX,t.clientY)}_handleMouseDownPan(t){this._panStart.set(t.clientX,t.clientY)}_handleMouseMoveRotate(t){this._rotateEnd.set(t.clientX,t.clientY),this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(r*this._rotateDelta.x/e.clientHeight),this._rotateUp(r*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd),this.update()}_handleMouseMoveDolly(t){this._dollyEnd.set(t.clientX,t.clientY),this._dollyDelta.subVectors(this._dollyEnd,this._dollyStart),this._dollyDelta.y>0?this._dollyOut(this._getZoomScale(this._dollyDelta.y)):this._dollyDelta.y<0&&this._dollyIn(this._getZoomScale(this._dollyDelta.y)),this._dollyStart.copy(this._dollyEnd),this.update()}_handleMouseMovePan(t){this._panEnd.set(t.clientX,t.clientY),this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd),this.update()}_handleMouseWheel(t){this._updateZoomParameters(t.clientX,t.clientY),t.deltaY<0?this._dollyIn(this._getZoomScale(t.deltaY)):t.deltaY>0&&this._dollyOut(this._getZoomScale(t.deltaY)),this.update()}_handleKeyDown(t){let e=!1;switch(t.code){case this.keys.UP:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(r*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,this.keyPanSpeed),e=!0;break;case this.keys.BOTTOM:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateUp(-r*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(0,-this.keyPanSpeed),e=!0;break;case this.keys.LEFT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(r*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(this.keyPanSpeed,0),e=!0;break;case this.keys.RIGHT:t.ctrlKey||t.metaKey||t.shiftKey?this.enableRotate&&this._rotateLeft(-r*this.keyRotateSpeed/this.domElement.clientHeight):this.enablePan&&this._pan(-this.keyPanSpeed,0),e=!0;break}e&&(t.preventDefault(),this.update())}_handleTouchStartRotate(t){if(this._pointers.length===1)this._rotateStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),s=.5*(t.pageX+e.x),a=.5*(t.pageY+e.y);this._rotateStart.set(s,a)}}_handleTouchStartPan(t){if(this._pointers.length===1)this._panStart.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),s=.5*(t.pageX+e.x),a=.5*(t.pageY+e.y);this._panStart.set(s,a)}}_handleTouchStartDolly(t){const e=this._getSecondPointerPosition(t),s=t.pageX-e.x,a=t.pageY-e.y,h=Math.sqrt(s*s+a*a);this._dollyStart.set(0,h)}_handleTouchStartDollyPan(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enablePan&&this._handleTouchStartPan(t)}_handleTouchStartDollyRotate(t){this.enableZoom&&this._handleTouchStartDolly(t),this.enableRotate&&this._handleTouchStartRotate(t)}_handleTouchMoveRotate(t){if(this._pointers.length==1)this._rotateEnd.set(t.pageX,t.pageY);else{const s=this._getSecondPointerPosition(t),a=.5*(t.pageX+s.x),h=.5*(t.pageY+s.y);this._rotateEnd.set(a,h)}this._rotateDelta.subVectors(this._rotateEnd,this._rotateStart).multiplyScalar(this.rotateSpeed);const e=this.domElement;this._rotateLeft(r*this._rotateDelta.x/e.clientHeight),this._rotateUp(r*this._rotateDelta.y/e.clientHeight),this._rotateStart.copy(this._rotateEnd)}_handleTouchMovePan(t){if(this._pointers.length===1)this._panEnd.set(t.pageX,t.pageY);else{const e=this._getSecondPointerPosition(t),s=.5*(t.pageX+e.x),a=.5*(t.pageY+e.y);this._panEnd.set(s,a)}this._panDelta.subVectors(this._panEnd,this._panStart).multiplyScalar(this.panSpeed),this._pan(this._panDelta.x,this._panDelta.y),this._panStart.copy(this._panEnd)}_handleTouchMoveDolly(t){const e=this._getSecondPointerPosition(t),s=t.pageX-e.x,a=t.pageY-e.y,h=Math.sqrt(s*s+a*a);this._dollyEnd.set(0,h),this._dollyDelta.set(0,Math.pow(this._dollyEnd.y/this._dollyStart.y,this.zoomSpeed)),this._dollyOut(this._dollyDelta.y),this._dollyStart.copy(this._dollyEnd);const l=(t.pageX+e.x)*.5,d=(t.pageY+e.y)*.5;this._updateZoomParameters(l,d)}_handleTouchMoveDollyPan(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enablePan&&this._handleTouchMovePan(t)}_handleTouchMoveDollyRotate(t){this.enableZoom&&this._handleTouchMoveDolly(t),this.enableRotate&&this._handleTouchMoveRotate(t)}_addPointer(t){this._pointers.push(t.pointerId)}_removePointer(t){delete this._pointerPositions[t.pointerId];for(let e=0;e Math.PI ) min -= _twoPI;\n\n\t\t\tif ( max < - Math.PI ) max += _twoPI; else if ( max > Math.PI ) max -= _twoPI;\n\n\t\t\tif ( min <= max ) {\n\n\t\t\t\tthis._spherical.theta = Math.max( min, Math.min( max, this._spherical.theta ) );\n\n\t\t\t} else {\n\n\t\t\t\tthis._spherical.theta = ( this._spherical.theta > ( min + max ) / 2 ) ?\n\t\t\t\t\tMath.max( min, this._spherical.theta ) :\n\t\t\t\t\tMath.min( max, this._spherical.theta );\n\n\t\t\t}\n\n\t\t}\n\n\t\t// restrict phi to be between desired limits\n\t\tthis._spherical.phi = Math.max( this.minPolarAngle, Math.min( this.maxPolarAngle, this._spherical.phi ) );\n\n\t\tthis._spherical.makeSafe();\n\n\n\t\t// move target to panned location\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis.target.addScaledVector( this._panOffset, this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis.target.add( this._panOffset );\n\n\t\t}\n\n\t\t// Limit the target distance from the cursor to create a sphere around the center of interest\n\t\tthis.target.sub( this.cursor );\n\t\tthis.target.clampLength( this.minTargetRadius, this.maxTargetRadius );\n\t\tthis.target.add( this.cursor );\n\n\t\tlet zoomChanged = false;\n\t\t// adjust the camera position based on zoom only if we're not zooming to the cursor or if it's an ortho camera\n\t\t// we adjust zoom later in these cases\n\t\tif ( this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius );\n\n\t\t} else {\n\n\t\t\tconst prevRadius = this._spherical.radius;\n\t\t\tthis._spherical.radius = this._clampDistance( this._spherical.radius * this._scale );\n\t\t\tzoomChanged = prevRadius != this._spherical.radius;\n\n\t\t}\n\n\t\t_v.setFromSpherical( this._spherical );\n\n\t\t// rotate offset back to \"camera-up-vector-is-up\" space\n\t\t_v.applyQuaternion( this._quatInverse );\n\n\t\tposition.copy( this.target ).add( _v );\n\n\t\tthis.object.lookAt( this.target );\n\n\t\tif ( this.enableDamping === true ) {\n\n\t\t\tthis._sphericalDelta.theta *= ( 1 - this.dampingFactor );\n\t\t\tthis._sphericalDelta.phi *= ( 1 - this.dampingFactor );\n\n\t\t\tthis._panOffset.multiplyScalar( 1 - this.dampingFactor );\n\n\t\t} else {\n\n\t\t\tthis._sphericalDelta.set( 0, 0, 0 );\n\n\t\t\tthis._panOffset.set( 0, 0, 0 );\n\n\t\t}\n\n\t\t// adjust camera position\n\t\tif ( this.zoomToCursor && this._performCursorZoom ) {\n\n\t\t\tlet newRadius = null;\n\t\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t\t// move the camera down the pointer ray\n\t\t\t\t// this method avoids floating point error\n\t\t\t\tconst prevRadius = _v.length();\n\t\t\t\tnewRadius = this._clampDistance( prevRadius * this._scale );\n\n\t\t\t\tconst radiusDelta = prevRadius - newRadius;\n\t\t\t\tthis.object.position.addScaledVector( this._dollyDirection, radiusDelta );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tzoomChanged = !! radiusDelta;\n\n\t\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t\t// adjust the ortho camera position based on zoom changes\n\t\t\t\tconst mouseBefore = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseBefore.unproject( this.object );\n\n\t\t\t\tconst prevZoom = this.object.zoom;\n\t\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\t\t\t\tthis.object.updateProjectionMatrix();\n\n\t\t\t\tzoomChanged = prevZoom !== this.object.zoom;\n\n\t\t\t\tconst mouseAfter = new Vector3( this._mouse.x, this._mouse.y, 0 );\n\t\t\t\tmouseAfter.unproject( this.object );\n\n\t\t\t\tthis.object.position.sub( mouseAfter ).add( mouseBefore );\n\t\t\t\tthis.object.updateMatrixWorld();\n\n\t\t\t\tnewRadius = _v.length();\n\n\t\t\t} else {\n\n\t\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled.' );\n\t\t\t\tthis.zoomToCursor = false;\n\n\t\t\t}\n\n\t\t\t// handle the placement of the target\n\t\t\tif ( newRadius !== null ) {\n\n\t\t\t\tif ( this.screenSpacePanning ) {\n\n\t\t\t\t\t// position the orbit target in front of the new camera position\n\t\t\t\t\tthis.target.set( 0, 0, - 1 )\n\t\t\t\t\t\t.transformDirection( this.object.matrix )\n\t\t\t\t\t\t.multiplyScalar( newRadius )\n\t\t\t\t\t\t.add( this.object.position );\n\n\t\t\t\t} else {\n\n\t\t\t\t\t// get the ray and translation plane to compute target\n\t\t\t\t\t_ray.origin.copy( this.object.position );\n\t\t\t\t\t_ray.direction.set( 0, 0, - 1 ).transformDirection( this.object.matrix );\n\n\t\t\t\t\t// if the camera is 20 degrees above the horizon then don't adjust the focus target to avoid\n\t\t\t\t\t// extremely large values\n\t\t\t\t\tif ( Math.abs( this.object.up.dot( _ray.direction ) ) < _TILT_LIMIT ) {\n\n\t\t\t\t\t\tthis.object.lookAt( this.target );\n\n\t\t\t\t\t} else {\n\n\t\t\t\t\t\t_plane.setFromNormalAndCoplanarPoint( this.object.up, this.target );\n\t\t\t\t\t\t_ray.intersectPlane( _plane, this.target );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\tconst prevZoom = this.object.zoom;\n\t\t\tthis.object.zoom = Math.max( this.minZoom, Math.min( this.maxZoom, this.object.zoom / this._scale ) );\n\n\t\t\tif ( prevZoom !== this.object.zoom ) {\n\n\t\t\t\tthis.object.updateProjectionMatrix();\n\t\t\t\tzoomChanged = true;\n\n\t\t\t}\n\n\t\t}\n\n\t\tthis._scale = 1;\n\t\tthis._performCursorZoom = false;\n\n\t\t// update condition is:\n\t\t// min(camera displacement, camera rotation in radians)^2 > EPS\n\t\t// using small-angle approximation cos(x/2) = 1 - x^2 / 8\n\n\t\tif ( zoomChanged ||\n\t\t\tthis._lastPosition.distanceToSquared( this.object.position ) > _EPS ||\n\t\t\t8 * ( 1 - this._lastQuaternion.dot( this.object.quaternion ) ) > _EPS ||\n\t\t\tthis._lastTargetPosition.distanceToSquared( this.target ) > _EPS ) {\n\n\t\t\tthis.dispatchEvent( _changeEvent );\n\n\t\t\tthis._lastPosition.copy( this.object.position );\n\t\t\tthis._lastQuaternion.copy( this.object.quaternion );\n\t\t\tthis._lastTargetPosition.copy( this.target );\n\n\t\t\treturn true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_getAutoRotationAngle( deltaTime ) {\n\n\t\tif ( deltaTime !== null ) {\n\n\t\t\treturn ( _twoPI / 60 * this.autoRotateSpeed ) * deltaTime;\n\n\t\t} else {\n\n\t\t\treturn _twoPI / 60 / 60 * this.autoRotateSpeed;\n\n\t\t}\n\n\t}\n\n\t_getZoomScale( delta ) {\n\n\t\tconst normalizedDelta = Math.abs( delta * 0.01 );\n\t\treturn Math.pow( 0.95, this.zoomSpeed * normalizedDelta );\n\n\t}\n\n\t_rotateLeft( angle ) {\n\n\t\tthis._sphericalDelta.theta -= angle;\n\n\t}\n\n\t_rotateUp( angle ) {\n\n\t\tthis._sphericalDelta.phi -= angle;\n\n\t}\n\n\t_panLeft( distance, objectMatrix ) {\n\n\t\t_v.setFromMatrixColumn( objectMatrix, 0 ); // get X column of objectMatrix\n\t\t_v.multiplyScalar( - distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t_panUp( distance, objectMatrix ) {\n\n\t\tif ( this.screenSpacePanning === true ) {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 1 );\n\n\t\t} else {\n\n\t\t\t_v.setFromMatrixColumn( objectMatrix, 0 );\n\t\t\t_v.crossVectors( this.object.up, _v );\n\n\t\t}\n\n\t\t_v.multiplyScalar( distance );\n\n\t\tthis._panOffset.add( _v );\n\n\t}\n\n\t// deltaX and deltaY are in pixels; right and down are positive\n\t_pan( deltaX, deltaY ) {\n\n\t\tconst element = this.domElement;\n\n\t\tif ( this.object.isPerspectiveCamera ) {\n\n\t\t\t// perspective\n\t\t\tconst position = this.object.position;\n\t\t\t_v.copy( position ).sub( this.target );\n\t\t\tlet targetDistance = _v.length();\n\n\t\t\t// half of the fov is center to top of screen\n\t\t\ttargetDistance *= Math.tan( ( this.object.fov / 2 ) * Math.PI / 180.0 );\n\n\t\t\t// we use only clientHeight here so aspect ratio does not distort speed\n\t\t\tthis._panLeft( 2 * deltaX * targetDistance / element.clientHeight, this.object.matrix );\n\t\t\tthis._panUp( 2 * deltaY * targetDistance / element.clientHeight, this.object.matrix );\n\n\t\t} else if ( this.object.isOrthographicCamera ) {\n\n\t\t\t// orthographic\n\t\t\tthis._panLeft( deltaX * ( this.object.right - this.object.left ) / this.object.zoom / element.clientWidth, this.object.matrix );\n\t\t\tthis._panUp( deltaY * ( this.object.top - this.object.bottom ) / this.object.zoom / element.clientHeight, this.object.matrix );\n\n\t\t} else {\n\n\t\t\t// camera neither orthographic nor perspective\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - pan disabled.' );\n\t\t\tthis.enablePan = false;\n\n\t\t}\n\n\t}\n\n\t_dollyOut( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale /= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_dollyIn( dollyScale ) {\n\n\t\tif ( this.object.isPerspectiveCamera || this.object.isOrthographicCamera ) {\n\n\t\t\tthis._scale *= dollyScale;\n\n\t\t} else {\n\n\t\t\tconsole.warn( 'WARNING: OrbitControls.js encountered an unknown camera type - dolly/zoom disabled.' );\n\t\t\tthis.enableZoom = false;\n\n\t\t}\n\n\t}\n\n\t_updateZoomParameters( x, y ) {\n\n\t\tif ( ! this.zoomToCursor ) {\n\n\t\t\treturn;\n\n\t\t}\n\n\t\tthis._performCursorZoom = true;\n\n\t\tconst rect = this.domElement.getBoundingClientRect();\n\t\tconst dx = x - rect.left;\n\t\tconst dy = y - rect.top;\n\t\tconst w = rect.width;\n\t\tconst h = rect.height;\n\n\t\tthis._mouse.x = ( dx / w ) * 2 - 1;\n\t\tthis._mouse.y = - ( dy / h ) * 2 + 1;\n\n\t\tthis._dollyDirection.set( this._mouse.x, this._mouse.y, 1 ).unproject( this.object ).sub( this.object.position ).normalize();\n\n\t}\n\n\t_clampDistance( dist ) {\n\n\t\treturn Math.max( this.minDistance, Math.min( this.maxDistance, dist ) );\n\n\t}\n\n\t//\n\t// event callbacks - update the object state\n\t//\n\n\t_handleMouseDownRotate( event ) {\n\n\t\tthis._rotateStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownDolly( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientX );\n\t\tthis._dollyStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseDownPan( event ) {\n\n\t\tthis._panStart.set( event.clientX, event.clientY );\n\n\t}\n\n\t_handleMouseMoveRotate( event ) {\n\n\t\tthis._rotateEnd.set( event.clientX, event.clientY );\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMoveDolly( event ) {\n\n\t\tthis._dollyEnd.set( event.clientX, event.clientY );\n\n\t\tthis._dollyDelta.subVectors( this._dollyEnd, this._dollyStart );\n\n\t\tif ( this._dollyDelta.y > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t} else if ( this._dollyDelta.y < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( this._dollyDelta.y ) );\n\n\t\t}\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseMovePan( event ) {\n\n\t\tthis._panEnd.set( event.clientX, event.clientY );\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t\tthis.update();\n\n\t}\n\n\t_handleMouseWheel( event ) {\n\n\t\tthis._updateZoomParameters( event.clientX, event.clientY );\n\n\t\tif ( event.deltaY < 0 ) {\n\n\t\t\tthis._dollyIn( this._getZoomScale( event.deltaY ) );\n\n\t\t} else if ( event.deltaY > 0 ) {\n\n\t\t\tthis._dollyOut( this._getZoomScale( event.deltaY ) );\n\n\t\t}\n\n\t\tthis.update();\n\n\t}\n\n\t_handleKeyDown( event ) {\n\n\t\tlet needsUpdate = false;\n\n\t\tswitch ( event.code ) {\n\n\t\t\tcase this.keys.UP:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateUp( _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( 0, this.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.BOTTOM:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateUp( - _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( 0, - this.keyPanSpeed );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.LEFT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateLeft( _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( this.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t\tcase this.keys.RIGHT:\n\n\t\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\t\tif ( this.enableRotate ) {\n\n\t\t\t\t\t\tthis._rotateLeft( - _twoPI * this.keyRotateSpeed / this.domElement.clientHeight );\n\n\t\t\t\t\t}\n\n\t\t\t\t} else {\n\n\t\t\t\t\tif ( this.enablePan ) {\n\n\t\t\t\t\t\tthis._pan( - this.keyPanSpeed, 0 );\n\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t\tneedsUpdate = true;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\tif ( needsUpdate ) {\n\n\t\t\t// prevent the browser from scrolling on cursor keys\n\t\t\tevent.preventDefault();\n\n\t\t\tthis.update();\n\n\t\t}\n\n\n\t}\n\n\t_handleTouchStartRotate( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._rotateStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartPan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panStart.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panStart.set( x, y );\n\n\t\t}\n\n\t}\n\n\t_handleTouchStartDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyStart.set( 0, distance );\n\n\t}\n\n\t_handleTouchStartDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchStartPan( event );\n\n\t}\n\n\t_handleTouchStartDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchStartDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchStartRotate( event );\n\n\t}\n\n\t_handleTouchMoveRotate( event ) {\n\n\t\tif ( this._pointers.length == 1 ) {\n\n\t\t\tthis._rotateEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._rotateEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._rotateDelta.subVectors( this._rotateEnd, this._rotateStart ).multiplyScalar( this.rotateSpeed );\n\n\t\tconst element = this.domElement;\n\n\t\tthis._rotateLeft( _twoPI * this._rotateDelta.x / element.clientHeight ); // yes, height\n\n\t\tthis._rotateUp( _twoPI * this._rotateDelta.y / element.clientHeight );\n\n\t\tthis._rotateStart.copy( this._rotateEnd );\n\n\t}\n\n\t_handleTouchMovePan( event ) {\n\n\t\tif ( this._pointers.length === 1 ) {\n\n\t\t\tthis._panEnd.set( event.pageX, event.pageY );\n\n\t\t} else {\n\n\t\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\t\tconst x = 0.5 * ( event.pageX + position.x );\n\t\t\tconst y = 0.5 * ( event.pageY + position.y );\n\n\t\t\tthis._panEnd.set( x, y );\n\n\t\t}\n\n\t\tthis._panDelta.subVectors( this._panEnd, this._panStart ).multiplyScalar( this.panSpeed );\n\n\t\tthis._pan( this._panDelta.x, this._panDelta.y );\n\n\t\tthis._panStart.copy( this._panEnd );\n\n\t}\n\n\t_handleTouchMoveDolly( event ) {\n\n\t\tconst position = this._getSecondPointerPosition( event );\n\n\t\tconst dx = event.pageX - position.x;\n\t\tconst dy = event.pageY - position.y;\n\n\t\tconst distance = Math.sqrt( dx * dx + dy * dy );\n\n\t\tthis._dollyEnd.set( 0, distance );\n\n\t\tthis._dollyDelta.set( 0, Math.pow( this._dollyEnd.y / this._dollyStart.y, this.zoomSpeed ) );\n\n\t\tthis._dollyOut( this._dollyDelta.y );\n\n\t\tthis._dollyStart.copy( this._dollyEnd );\n\n\t\tconst centerX = ( event.pageX + position.x ) * 0.5;\n\t\tconst centerY = ( event.pageY + position.y ) * 0.5;\n\n\t\tthis._updateZoomParameters( centerX, centerY );\n\n\t}\n\n\t_handleTouchMoveDollyPan( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enablePan ) this._handleTouchMovePan( event );\n\n\t}\n\n\t_handleTouchMoveDollyRotate( event ) {\n\n\t\tif ( this.enableZoom ) this._handleTouchMoveDolly( event );\n\n\t\tif ( this.enableRotate ) this._handleTouchMoveRotate( event );\n\n\t}\n\n\t// pointers\n\n\t_addPointer( event ) {\n\n\t\tthis._pointers.push( event.pointerId );\n\n\t}\n\n\t_removePointer( event ) {\n\n\t\tdelete this._pointerPositions[ event.pointerId ];\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) {\n\n\t\t\t\tthis._pointers.splice( i, 1 );\n\t\t\t\treturn;\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n\t_isTrackingPointer( event ) {\n\n\t\tfor ( let i = 0; i < this._pointers.length; i ++ ) {\n\n\t\t\tif ( this._pointers[ i ] == event.pointerId ) return true;\n\n\t\t}\n\n\t\treturn false;\n\n\t}\n\n\t_trackPointer( event ) {\n\n\t\tlet position = this._pointerPositions[ event.pointerId ];\n\n\t\tif ( position === undefined ) {\n\n\t\t\tposition = new Vector2();\n\t\t\tthis._pointerPositions[ event.pointerId ] = position;\n\n\t\t}\n\n\t\tposition.set( event.pageX, event.pageY );\n\n\t}\n\n\t_getSecondPointerPosition( event ) {\n\n\t\tconst pointerId = ( event.pointerId === this._pointers[ 0 ] ) ? this._pointers[ 1 ] : this._pointers[ 0 ];\n\n\t\treturn this._pointerPositions[ pointerId ];\n\n\t}\n\n\t//\n\n\t_customWheelEvent( event ) {\n\n\t\tconst mode = event.deltaMode;\n\n\t\t// minimal wheel event altered to meet delta-zoom demand\n\t\tconst newEvent = {\n\t\t\tclientX: event.clientX,\n\t\t\tclientY: event.clientY,\n\t\t\tdeltaY: event.deltaY,\n\t\t};\n\n\t\tswitch ( mode ) {\n\n\t\t\tcase 1: // LINE_MODE\n\t\t\t\tnewEvent.deltaY *= 16;\n\t\t\t\tbreak;\n\n\t\t\tcase 2: // PAGE_MODE\n\t\t\t\tnewEvent.deltaY *= 100;\n\t\t\t\tbreak;\n\n\t\t}\n\n\t\t// detect if event was triggered by pinching\n\t\tif ( event.ctrlKey && ! this._controlActive ) {\n\n\t\t\tnewEvent.deltaY *= 10;\n\n\t\t}\n\n\t\treturn newEvent;\n\n\t}\n\n}\n\nfunction onPointerDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( this._pointers.length === 0 ) {\n\n\t\tthis.domElement.setPointerCapture( event.pointerId );\n\n\t\tthis.domElement.ownerDocument.addEventListener( 'pointermove', this._onPointerMove );\n\t\tthis.domElement.ownerDocument.addEventListener( 'pointerup', this._onPointerUp );\n\n\t}\n\n\t//\n\n\tif ( this._isTrackingPointer( event ) ) return;\n\n\t//\n\n\tthis._addPointer( event );\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchStart( event );\n\n\t} else {\n\n\t\tthis._onMouseDown( event );\n\n\t}\n\n\tif ( this._cursorStyle === 'grab' ) {\n\n\t\tthis.domElement.style.cursor = 'grabbing';\n\n\t}\n\n}\n\nfunction onPointerMove( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tif ( event.pointerType === 'touch' ) {\n\n\t\tthis._onTouchMove( event );\n\n\t} else {\n\n\t\tthis._onMouseMove( event );\n\n\t}\n\n}\n\nfunction onPointerUp( event ) {\n\n\tthis._removePointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 0:\n\n\t\t\tthis.domElement.releasePointerCapture( event.pointerId );\n\n\t\t\tthis.domElement.ownerDocument.removeEventListener( 'pointermove', this._onPointerMove );\n\t\t\tthis.domElement.ownerDocument.removeEventListener( 'pointerup', this._onPointerUp );\n\n\t\t\tthis.dispatchEvent( _endEvent );\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t\t\tif ( this._cursorStyle === 'grab' ) {\n\n\t\t\t\tthis.domElement.style.cursor = 'grab';\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tconst pointerId = this._pointers[ 0 ];\n\t\t\tconst position = this._pointerPositions[ pointerId ];\n\n\t\t\t// minimal placeholder event - allows state correction on pointer-up\n\t\t\tthis._onTouchStart( { pointerId: pointerId, pageX: position.x, pageY: position.y } );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseDown( event ) {\n\n\tlet mouseAction;\n\n\tswitch ( event.button ) {\n\n\t\tcase 0:\n\n\t\t\tmouseAction = this.mouseButtons.LEFT;\n\t\t\tbreak;\n\n\t\tcase 1:\n\n\t\t\tmouseAction = this.mouseButtons.MIDDLE;\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tmouseAction = this.mouseButtons.RIGHT;\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tmouseAction = - 1;\n\n\t}\n\n\tswitch ( mouseAction ) {\n\n\t\tcase MOUSE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseDownDolly( event );\n\n\t\t\tthis.state = _STATE.DOLLY;\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.ROTATE:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase MOUSE.PAN:\n\n\t\t\tif ( event.ctrlKey || event.metaKey || event.shiftKey ) {\n\n\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\tthis._handleMouseDownRotate( event );\n\n\t\t\t\tthis.state = _STATE.ROTATE;\n\n\t\t\t} else {\n\n\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\tthis._handleMouseDownPan( event );\n\n\t\t\t\tthis.state = _STATE.PAN;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onMouseMove( event ) {\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleMouseMoveRotate( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.DOLLY:\n\n\t\t\tif ( this.enableZoom === false ) return;\n\n\t\t\tthis._handleMouseMoveDolly( event );\n\n\t\t\tbreak;\n\n\t\tcase _STATE.PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleMouseMovePan( event );\n\n\t\t\tbreak;\n\n\t}\n\n}\n\nfunction onMouseWheel( event ) {\n\n\tif ( this.enabled === false || this.enableZoom === false || this.state !== _STATE.NONE ) return;\n\n\tevent.preventDefault();\n\n\tthis.dispatchEvent( _startEvent );\n\n\tthis._handleMouseWheel( this._customWheelEvent( event ) );\n\n\tthis.dispatchEvent( _endEvent );\n\n}\n\nfunction onKeyDown( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tthis._handleKeyDown( event );\n\n}\n\nfunction onTouchStart( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this._pointers.length ) {\n\n\t\tcase 1:\n\n\t\t\tswitch ( this.touches.ONE ) {\n\n\t\t\t\tcase TOUCH.ROTATE:\n\n\t\t\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.PAN:\n\n\t\t\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tcase 2:\n\n\t\t\tswitch ( this.touches.TWO ) {\n\n\t\t\t\tcase TOUCH.DOLLY_PAN:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyPan( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_PAN;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase TOUCH.DOLLY_ROTATE:\n\n\t\t\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\t\t\tthis._handleTouchStartDollyRotate( event );\n\n\t\t\t\t\tthis.state = _STATE.TOUCH_DOLLY_ROTATE;\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\n\t\t\t\t\tthis.state = _STATE.NONE;\n\n\t\t\t}\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n\tif ( this.state !== _STATE.NONE ) {\n\n\t\tthis.dispatchEvent( _startEvent );\n\n\t}\n\n}\n\nfunction onTouchMove( event ) {\n\n\tthis._trackPointer( event );\n\n\tswitch ( this.state ) {\n\n\t\tcase _STATE.TOUCH_ROTATE:\n\n\t\t\tif ( this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_PAN:\n\n\t\t\tif ( this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMovePan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_PAN:\n\n\t\t\tif ( this.enableZoom === false && this.enablePan === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyPan( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tcase _STATE.TOUCH_DOLLY_ROTATE:\n\n\t\t\tif ( this.enableZoom === false && this.enableRotate === false ) return;\n\n\t\t\tthis._handleTouchMoveDollyRotate( event );\n\n\t\t\tthis.update();\n\n\t\t\tbreak;\n\n\t\tdefault:\n\n\t\t\tthis.state = _STATE.NONE;\n\n\t}\n\n}\n\nfunction onContextMenu( event ) {\n\n\tif ( this.enabled === false ) return;\n\n\tevent.preventDefault();\n\n}\n\nfunction interceptControlDown( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = true;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.addEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nfunction interceptControlUp( event ) {\n\n\tif ( event.key === 'Control' ) {\n\n\t\tthis._controlActive = false;\n\n\t\tconst document = this.domElement.getRootNode(); // offscreen canvas compatibility\n\n\t\tdocument.removeEventListener( 'keyup', this._interceptControlUp, { passive: true, capture: true } );\n\n\t}\n\n}\n\nexport { OrbitControls };\n"],"names":["_changeEvent","_startEvent","_endEvent","_ray","Ray","_plane","Plane","_TILT_LIMIT","MathUtils","_v","Vector3","_twoPI","_STATE","_EPS","OrbitControls","Controls","object","domElement","MOUSE","TOUCH","Quaternion","Spherical","Vector2","onPointerMove","onPointerDown","onPointerUp","onContextMenu","onMouseWheel","onKeyDown","onTouchStart","onTouchMove","onMouseDown","onMouseMove","interceptControlDown","interceptControlUp","type","element","deltaX","deltaY","dollyScale","angle","deltaTime","position","min","max","zoomChanged","prevRadius","newRadius","radiusDelta","mouseBefore","prevZoom","mouseAfter","delta","normalizedDelta","distance","objectMatrix","targetDistance","x","y","rect","dx","dy","w","h","dist","event","needsUpdate","centerX","centerY","i","pointerId","mode","newEvent","mouseAction"],"mappings":"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","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/server/public/assets/index-BlPOv38a.js b/server/public/assets/index-BlPOv38a.js new file mode 100644 index 00000000..4c6b0f19 --- /dev/null +++ b/server/public/assets/index-BlPOv38a.js @@ -0,0 +1,148 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/OrbitControls-BJ-UXxdt.js","assets/three.module--MGUDD-H.js"])))=>i.map(i=>d[i]); +(function(){const c=document.createElement("link").relList;if(c&&c.supports&&c.supports("modulepreload"))return;for(const u of document.querySelectorAll('link[rel="modulepreload"]'))i(u);new MutationObserver(u=>{for(const h of u)if(h.type==="childList")for(const d of h.addedNodes)d.tagName==="LINK"&&d.rel==="modulepreload"&&i(d)}).observe(document,{childList:!0,subtree:!0});function n(u){const h={};return u.integrity&&(h.integrity=u.integrity),u.referrerPolicy&&(h.referrerPolicy=u.referrerPolicy),u.crossOrigin==="use-credentials"?h.credentials="include":u.crossOrigin==="anonymous"?h.credentials="omit":h.credentials="same-origin",h}function i(u){if(u.ep)return;u.ep=!0;const h=n(u);fetch(u.href,h)}})();function Kv(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var mc={exports:{}},_8={};var Ns;function Qv(){if(Ns)return _8;Ns=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.fragment");function n(i,u,h){var d=null;if(h!==void 0&&(d=""+h),u.key!==void 0&&(d=""+u.key),"key"in u){h={};for(var m in u)m!=="key"&&(h[m]=u[m])}else h=u;return u=h.ref,{$$typeof:t,type:i,key:d,ref:u!==void 0?u:null,props:h}}return _8.Fragment=c,_8.jsx=n,_8.jsxs=n,_8}var ks;function Xv(){return ks||(ks=1,mc.exports=Qv()),mc.exports}var r=Xv(),vc={exports:{}},$1={};var Fs;function Wv(){if(Fs)return $1;Fs=1;var t=Symbol.for("react.transitional.element"),c=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),u=Symbol.for("react.profiler"),h=Symbol.for("react.consumer"),d=Symbol.for("react.context"),m=Symbol.for("react.forward_ref"),p=Symbol.for("react.suspense"),x=Symbol.for("react.memo"),g=Symbol.for("react.lazy"),b=Symbol.for("react.activity"),y=Symbol.iterator;function M(_){return _===null||typeof _!="object"?null:(_=y&&_[y]||_["@@iterator"],typeof _=="function"?_:null)}var H={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L=Object.assign,S={};function B(_,U,K){this.props=_,this.context=U,this.refs=S,this.updater=K||H}B.prototype.isReactComponent={},B.prototype.setState=function(_,U){if(typeof _!="object"&&typeof _!="function"&&_!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,_,U,"setState")},B.prototype.forceUpdate=function(_){this.updater.enqueueForceUpdate(this,_,"forceUpdate")};function C(){}C.prototype=B.prototype;function w(_,U,K){this.props=_,this.context=U,this.refs=S,this.updater=K||H}var j=w.prototype=new C;j.constructor=w,L(j,B.prototype),j.isPureReactComponent=!0;var E=Array.isArray;function k(){}var R={H:null,A:null,T:null,S:null},V=Object.prototype.hasOwnProperty;function N(_,U,K){var Y=K.ref;return{$$typeof:t,type:_,key:U,ref:Y!==void 0?Y:null,props:K}}function I(_,U){return N(_.type,U,_.props)}function D(_){return typeof _=="object"&&_!==null&&_.$$typeof===t}function Z(_){var U={"=":"=0",":":"=2"};return"$"+_.replace(/[=:]/g,function(K){return U[K]})}var n1=/\/+/g;function Q(_,U){return typeof _=="object"&&_!==null&&_.key!=null?Z(""+_.key):U.toString(36)}function q(_){switch(_.status){case"fulfilled":return _.value;case"rejected":throw _.reason;default:switch(typeof _.status=="string"?_.then(k,k):(_.status="pending",_.then(function(U){_.status==="pending"&&(_.status="fulfilled",_.value=U)},function(U){_.status==="pending"&&(_.status="rejected",_.reason=U)})),_.status){case"fulfilled":return _.value;case"rejected":throw _.reason}}throw _}function T(_,U,K,Y,u1){var d1=typeof _;(d1==="undefined"||d1==="boolean")&&(_=null);var l1=!1;if(_===null)l1=!0;else switch(d1){case"bigint":case"string":case"number":l1=!0;break;case"object":switch(_.$$typeof){case t:case c:l1=!0;break;case g:return l1=_._init,T(l1(_._payload),U,K,Y,u1)}}if(l1)return u1=u1(_),l1=Y===""?"."+Q(_,0):Y,E(u1)?(K="",l1!=null&&(K=l1.replace(n1,"$&/")+"/"),T(u1,U,K,"",function(U1){return U1})):u1!=null&&(D(u1)&&(u1=I(u1,K+(u1.key==null||_&&_.key===u1.key?"":(""+u1.key).replace(n1,"$&/")+"/")+l1)),U.push(u1)),1;l1=0;var C1=Y===""?".":Y+":";if(E(_))for(var M1=0;M1<_.length;M1++)Y=_[M1],d1=C1+Q(Y,M1),l1+=T(Y,U,K,d1,u1);else if(M1=M(_),typeof M1=="function")for(_=M1.call(_),M1=0;!(Y=_.next()).done;)Y=Y.value,d1=C1+Q(Y,M1++),l1+=T(Y,U,K,d1,u1);else if(d1==="object"){if(typeof _.then=="function")return T(q(_),U,K,Y,u1);throw U=String(_),Error("Objects are not valid as a React child (found: "+(U==="[object Object]"?"object with keys {"+Object.keys(_).join(", ")+"}":U)+"). If you meant to render a collection of children, use an array instead.")}return l1}function G(_,U,K){if(_==null)return _;var Y=[],u1=0;return T(_,Y,"","",function(d1){return U.call(K,d1,u1++)}),Y}function P(_){if(_._status===-1){var U=_._result;U=U(),U.then(function(K){(_._status===0||_._status===-1)&&(_._status=1,_._result=K)},function(K){(_._status===0||_._status===-1)&&(_._status=2,_._result=K)}),_._status===-1&&(_._status=0,_._result=U)}if(_._status===1)return _._result.default;throw _._result}var i1=typeof reportError=="function"?reportError:function(_){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var U=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof _=="object"&&_!==null&&typeof _.message=="string"?String(_.message):String(_),error:_});if(!window.dispatchEvent(U))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",_);return}console.error(_)},v1={map:G,forEach:function(_,U,K){G(_,function(){U.apply(this,arguments)},K)},count:function(_){var U=0;return G(_,function(){U++}),U},toArray:function(_){return G(_,function(U){return U})||[]},only:function(_){if(!D(_))throw Error("React.Children.only expected to receive a single React element child.");return _}};return $1.Activity=b,$1.Children=v1,$1.Component=B,$1.Fragment=n,$1.Profiler=u,$1.PureComponent=w,$1.StrictMode=i,$1.Suspense=p,$1.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=R,$1.__COMPILER_RUNTIME={__proto__:null,c:function(_){return R.H.useMemoCache(_)}},$1.cache=function(_){return function(){return _.apply(null,arguments)}},$1.cacheSignal=function(){return null},$1.cloneElement=function(_,U,K){if(_==null)throw Error("The argument must be a React element, but you passed "+_+".");var Y=L({},_.props),u1=_.key;if(U!=null)for(d1 in U.key!==void 0&&(u1=""+U.key),U)!V.call(U,d1)||d1==="key"||d1==="__self"||d1==="__source"||d1==="ref"&&U.ref===void 0||(Y[d1]=U[d1]);var d1=arguments.length-2;if(d1===1)Y.children=K;else if(1>>1,v1=T[i1];if(0>>1;i1<_;){var U=2*(i1+1)-1,K=T[U],Y=U+1,u1=T[Y];if(0>u(K,P))Yu(u1,K)?(T[i1]=u1,T[Y]=P,i1=Y):(T[i1]=K,T[U]=P,i1=U);else if(Yu(u1,P))T[i1]=u1,T[Y]=P,i1=Y;else break t}}return G}function u(T,G){var P=T.sortIndex-G.sortIndex;return P!==0?P:T.id-G.id}if(t.unstable_now=void 0,typeof performance=="object"&&typeof performance.now=="function"){var h=performance;t.unstable_now=function(){return h.now()}}else{var d=Date,m=d.now();t.unstable_now=function(){return d.now()-m}}var p=[],x=[],g=1,b=null,y=3,M=!1,H=!1,L=!1,S=!1,B=typeof setTimeout=="function"?setTimeout:null,C=typeof clearTimeout=="function"?clearTimeout:null,w=typeof setImmediate<"u"?setImmediate:null;function j(T){for(var G=n(x);G!==null;){if(G.callback===null)i(x);else if(G.startTime<=T)i(x),G.sortIndex=G.expirationTime,c(p,G);else break;G=n(x)}}function E(T){if(L=!1,j(T),!H)if(n(p)!==null)H=!0,k||(k=!0,Z());else{var G=n(x);G!==null&&q(E,G.startTime-T)}}var k=!1,R=-1,V=5,N=-1;function I(){return S?!0:!(t.unstable_now()-NT&&I());){var i1=b.callback;if(typeof i1=="function"){b.callback=null,y=b.priorityLevel;var v1=i1(b.expirationTime<=T);if(T=t.unstable_now(),typeof v1=="function"){b.callback=v1,j(T),G=!0;break e}b===n(p)&&i(p),j(T)}else i(p);b=n(p)}if(b!==null)G=!0;else{var _=n(x);_!==null&&q(E,_.startTime-T),G=!1}}break t}finally{b=null,y=P,M=!1}G=void 0}}finally{G?Z():k=!1}}}var Z;if(typeof w=="function")Z=function(){w(D)};else if(typeof MessageChannel<"u"){var n1=new MessageChannel,Q=n1.port2;n1.port1.onmessage=D,Z=function(){Q.postMessage(null)}}else Z=function(){B(D,0)};function q(T,G){R=B(function(){T(t.unstable_now())},G)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_forceFrameRate=function(T){0>T||125i1?(T.sortIndex=P,c(x,T),n(p)===null&&T===n(x)&&(L?(C(R),R=-1):L=!0,q(E,P-i1))):(T.sortIndex=v1,c(p,T),H||M||(H=!0,k||(k=!0,Z()))),T},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(T){var G=y;return function(){var P=y;y=G;try{return T.apply(this,arguments)}finally{y=P}}}})(xc)),xc}var Ts;function tp(){return Ts||(Ts=1,gc.exports=Jv()),gc.exports}var zc={exports:{}},W2={};var _s;function ep(){if(_s)return W2;_s=1;var t=Ua();function c(p){var x="https://react.dev/errors/"+p;if(1"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),zc.exports=ep(),zc.exports}var Ds;function cp(){if(Ds)return q8;Ds=1;var t=tp(),c=Ua(),n=Iu();function i(e){var a="https://react.dev/errors/"+e;if(1v1||(e.current=i1[v1],i1[v1]=null,v1--)}function K(e,a){v1++,i1[v1]=e.current,e.current=a}var Y=_(null),u1=_(null),d1=_(null),l1=_(null);function C1(e,a){switch(K(d1,a),K(u1,e),K(Y,null),a.nodeType){case 9:case 11:e=(e=a.documentElement)&&(e=e.namespaceURI)?es(e):0;break;default:if(e=a.tagName,a=a.namespaceURI)a=es(a),e=cs(a,e);else switch(e){case"svg":e=1;break;case"math":e=2;break;default:e=0}}U(Y),K(Y,e)}function M1(){U(Y),U(u1),U(d1)}function U1(e){e.memoizedState!==null&&K(l1,e);var a=Y.current,l=cs(a,e.type);a!==l&&(K(u1,e),K(Y,l))}function R1(e){u1.current===e&&(U(Y),U(u1)),l1.current===e&&(U(l1),F8._currentValue=P)}var D1,n2;function P1(e){if(D1===void 0)try{throw Error()}catch(l){var a=l.stack.trim().match(/\n( *(at )?)/);D1=a&&a[1]||"",n2=-1)":-1v||O[o]!==t1[v]){var s1=` +`+O[o].replace(" at new "," at ");return e.displayName&&s1.includes("")&&(s1=s1.replace("",e.displayName)),s1}while(1<=o&&0<=v);break}}}finally{j1=!1,Error.prepareStackTrace=l}return(l=e?e.displayName||e.name:"")?P1(l):""}function A1(e,a){switch(e.tag){case 26:case 27:case 5:return P1(e.type);case 16:return P1("Lazy");case 13:return e.child!==a&&a!==null?P1("Suspense Fallback"):P1("Suspense");case 19:return P1("SuspenseList");case 0:case 15:return z1(e.type,!1);case 11:return z1(e.type.render,!1);case 1:return z1(e.type,!0);case 31:return P1("Activity");default:return""}}function T1(e){try{var a="",l=null;do a+=A1(e,l),l=e,e=e.return;while(e);return a}catch(o){return` +Error generating stack: `+o.message+` +`+o.stack}}var Y1=Object.prototype.hasOwnProperty,V1=t.unstable_scheduleCallback,_1=t.unstable_cancelCallback,g1=t.unstable_shouldYield,B1=t.unstable_requestPaint,c1=t.unstable_now,y1=t.unstable_getCurrentPriorityLevel,x1=t.unstable_ImmediatePriority,w1=t.unstable_UserBlockingPriority,a1=t.unstable_NormalPriority,b1=t.unstable_LowPriority,p1=t.unstable_IdlePriority,X1=t.log,g2=t.unstable_setDisableYieldValue,o1=null,L1=null;function k1(e){if(typeof X1=="function"&&g2(e),L1&&typeof L1.setStrictMode=="function")try{L1.setStrictMode(o1,e)}catch{}}var H1=Math.clz32?Math.clz32:Q1,u2=Math.log,s2=Math.LN2;function Q1(e){return e>>>=0,e===0?32:31-(u2(e)/s2|0)|0}var a2=256,X2=262144,P4=4194304;function p4(e){var a=e&42;if(a!==0)return a;switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:return 64;case 128:return 128;case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:return e&261888;case 262144:case 524288:case 1048576:case 2097152:return e&3932160;case 4194304:case 8388608:case 16777216:case 33554432:return e&62914560;case 67108864:return 67108864;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 0;default:return e}}function A2(e,a,l){var o=e.pendingLanes;if(o===0)return 0;var v=0,z=e.suspendedLanes,A=e.pingedLanes;e=e.warmLanes;var F=o&134217727;return F!==0?(o=F&~z,o!==0?v=p4(o):(A&=F,A!==0?v=p4(A):l||(l=F&~e,l!==0&&(v=p4(l))))):(F=o&~z,F!==0?v=p4(F):A!==0?v=p4(A):l||(l=o&~e,l!==0&&(v=p4(l)))),v===0?0:a!==0&&a!==v&&(a&z)===0&&(z=v&-v,l=a&-a,z>=l||z===32&&(l&4194048)!==0)?a:v}function F4(e,a){return(e.pendingLanes&~(e.suspendedLanes&~e.pingedLanes)&a)===0}function Ef(e,a){switch(e){case 1:case 2:case 4:case 8:case 64:return a+250;case 16:case 32:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a+5e3;case 4194304:case 8388608:case 16777216:case 33554432:return-1;case 67108864:case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function En(){var e=P4;return P4<<=1,(P4&62914560)===0&&(P4=4194304),e}function c7(e){for(var a=[],l=0;31>l;l++)a.push(e);return a}function Y0(e,a){e.pendingLanes|=a,a!==268435456&&(e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0)}function Tf(e,a,l,o,v,z){var A=e.pendingLanes;e.pendingLanes=l,e.suspendedLanes=0,e.pingedLanes=0,e.warmLanes=0,e.expiredLanes&=l,e.entangledLanes&=l,e.errorRecoveryDisabledLanes&=l,e.shellSuspendCounter=0;var F=e.entanglements,O=e.expirationTimes,t1=e.hiddenUpdates;for(l=A&~l;0"u")return null;try{return e.activeElement||e.body}catch{return e.body}}var If=/[\n"\\]/g;function x4(e){return e.replace(If,function(a){return"\\"+a.charCodeAt(0).toString(16)+" "})}function s7(e,a,l,o,v,z,A,F){e.name="",A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"?e.type=A:e.removeAttribute("type"),a!=null?A==="number"?(a===0&&e.value===""||e.value!=a)&&(e.value=""+g4(a)):e.value!==""+g4(a)&&(e.value=""+g4(a)):A!=="submit"&&A!=="reset"||e.removeAttribute("value"),a!=null?o7(e,A,g4(a)):l!=null?o7(e,A,g4(l)):o!=null&&e.removeAttribute("value"),v==null&&z!=null&&(e.defaultChecked=!!z),v!=null&&(e.checked=v&&typeof v!="function"&&typeof v!="symbol"),F!=null&&typeof F!="function"&&typeof F!="symbol"&&typeof F!="boolean"?e.name=""+g4(F):e.removeAttribute("name")}function Kn(e,a,l,o,v,z,A,F){if(z!=null&&typeof z!="function"&&typeof z!="symbol"&&typeof z!="boolean"&&(e.type=z),a!=null||l!=null){if(!(z!=="submit"&&z!=="reset"||a!=null)){i7(e);return}l=l!=null?""+g4(l):"",a=a!=null?""+g4(a):l,F||a===e.value||(e.value=a),e.defaultValue=a}o=o??v,o=typeof o!="function"&&typeof o!="symbol"&&!!o,e.checked=F?e.checked:!!o,e.defaultChecked=!!o,A!=null&&typeof A!="function"&&typeof A!="symbol"&&typeof A!="boolean"&&(e.name=A),i7(e)}function o7(e,a,l){a==="number"&&A5(e.ownerDocument)===e||e.defaultValue===""+l||(e.defaultValue=""+l)}function O6(e,a,l,o){if(e=e.options,a){a={};for(var v=0;v"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),m7=!1;if(t3)try{var W0={};Object.defineProperty(W0,"passive",{get:function(){m7=!0}}),window.addEventListener("test",W0,W0),window.removeEventListener("test",W0,W0)}catch{m7=!1}var C3=null,v7=null,L5=null;function cr(){if(L5)return L5;var e,a=v7,l=a.length,o,v="value"in C3?C3.value:C3.textContent,z=v.length;for(e=0;e=e8),sr=" ",or=!1;function ur(e,a){switch(e){case"keyup":return gm.indexOf(a.keyCode)!==-1;case"keydown":return a.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function hr(e){return e=e.detail,typeof e=="object"&&"data"in e?e.data:null}var $6=!1;function zm(e,a){switch(e){case"compositionend":return hr(a);case"keypress":return a.which!==32?null:(or=!0,sr);case"textInput":return e=a.data,e===sr&&or?null:e;default:return null}}function bm(e,a){if($6)return e==="compositionend"||!b7&&ur(e,a)?(e=cr(),L5=v7=C3=null,$6=!1,e):null;switch(e){case"paste":return null;case"keypress":if(!(a.ctrlKey||a.altKey||a.metaKey)||a.ctrlKey&&a.altKey){if(a.char&&1=a)return{node:l,offset:a-e};e=o}t:{for(;l;){if(l.nextSibling){l=l.nextSibling;break t}l=l.parentNode}l=void 0}l=zr(l)}}function yr(e,a){return e&&a?e===a?!0:e&&e.nodeType===3?!1:a&&a.nodeType===3?yr(e,a.parentNode):"contains"in e?e.contains(a):e.compareDocumentPosition?!!(e.compareDocumentPosition(a)&16):!1:!1}function Mr(e){e=e!=null&&e.ownerDocument!=null&&e.ownerDocument.defaultView!=null?e.ownerDocument.defaultView:window;for(var a=A5(e.document);a instanceof e.HTMLIFrameElement;){try{var l=typeof a.contentWindow.location.href=="string"}catch{l=!1}if(l)e=a.contentWindow;else break;a=A5(e.document)}return a}function w7(e){var a=e&&e.nodeName&&e.nodeName.toLowerCase();return a&&(a==="input"&&(e.type==="text"||e.type==="search"||e.type==="tel"||e.type==="url"||e.type==="password")||a==="textarea"||e.contentEditable==="true")}var Lm=t3&&"documentMode"in document&&11>=document.documentMode,Z6=null,C7=null,r8=null,S7=!1;function wr(e,a,l){var o=l.window===l?l.document:l.nodeType===9?l:l.ownerDocument;S7||Z6==null||Z6!==A5(o)||(o=Z6,"selectionStart"in o&&w7(o)?o={start:o.selectionStart,end:o.selectionEnd}:(o=(o.ownerDocument&&o.ownerDocument.defaultView||window).getSelection(),o={anchorNode:o.anchorNode,anchorOffset:o.anchorOffset,focusNode:o.focusNode,focusOffset:o.focusOffset}),r8&&n8(r8,o)||(r8=o,o=yt(C7,"onSelect"),0>=A,v-=A,$4=1<<32-H1(a)+v|l<G1?(e2=F1,F1=null):e2=F1.sibling;var l2=e1(X,F1,J[G1],h1);if(l2===null){F1===null&&(F1=e2);break}e&&F1&&l2.alternate===null&&a(X,F1),$=z(l2,$,G1),r2===null?E1=l2:r2.sibling=l2,r2=l2,F1=e2}if(G1===J.length)return l(X,F1),c2&&c3(X,G1),E1;if(F1===null){for(;G1G1?(e2=F1,F1=null):e2=F1.sibling;var Z3=e1(X,F1,l2.value,h1);if(Z3===null){F1===null&&(F1=e2);break}e&&F1&&Z3.alternate===null&&a(X,F1),$=z(Z3,$,G1),r2===null?E1=Z3:r2.sibling=Z3,r2=Z3,F1=e2}if(l2.done)return l(X,F1),c2&&c3(X,G1),E1;if(F1===null){for(;!l2.done;G1++,l2=J.next())l2=f1(X,l2.value,h1),l2!==null&&($=z(l2,$,G1),r2===null?E1=l2:r2.sibling=l2,r2=l2);return c2&&c3(X,G1),E1}for(F1=o(F1);!l2.done;G1++,l2=J.next())l2=r1(F1,X,G1,l2.value,h1),l2!==null&&(e&&l2.alternate!==null&&F1.delete(l2.key===null?G1:l2.key),$=z(l2,$,G1),r2===null?E1=l2:r2.sibling=l2,r2=l2);return e&&F1.forEach(function(Yv){return a(X,Yv)}),c2&&c3(X,G1),E1}function v2(X,$,J,h1){if(typeof J=="object"&&J!==null&&J.type===L&&J.key===null&&(J=J.props.children),typeof J=="object"&&J!==null){switch(J.$$typeof){case M:t:{for(var E1=J.key;$!==null;){if($.key===E1){if(E1=J.type,E1===L){if($.tag===7){l(X,$.sibling),h1=v($,J.props.children),h1.return=X,X=h1;break t}}else if($.elementType===E1||typeof E1=="object"&&E1!==null&&E1.$$typeof===V&&m6(E1)===$.type){l(X,$.sibling),h1=v($,J.props),h8(h1,J),h1.return=X,X=h1;break t}l(X,$);break}else a(X,$);$=$.sibling}J.type===L?(h1=o6(J.props.children,X.mode,h1,J.key),h1.return=X,X=h1):(h1=_5(J.type,J.key,J.props,null,X.mode,h1),h8(h1,J),h1.return=X,X=h1)}return A(X);case H:t:{for(E1=J.key;$!==null;){if($.key===E1)if($.tag===4&&$.stateNode.containerInfo===J.containerInfo&&$.stateNode.implementation===J.implementation){l(X,$.sibling),h1=v($,J.children||[]),h1.return=X,X=h1;break t}else{l(X,$);break}else a(X,$);$=$.sibling}h1=N7(J,X.mode,h1),h1.return=X,X=h1}return A(X);case V:return J=m6(J),v2(X,$,J,h1)}if(q(J))return N1(X,$,J,h1);if(Z(J)){if(E1=Z(J),typeof E1!="function")throw Error(i(150));return J=E1.call(J),q1(X,$,J,h1)}if(typeof J.then=="function")return v2(X,$,$5(J),h1);if(J.$$typeof===w)return v2(X,$,O5(X,J),h1);Z5(X,J)}return typeof J=="string"&&J!==""||typeof J=="number"||typeof J=="bigint"?(J=""+J,$!==null&&$.tag===6?(l(X,$.sibling),h1=v($,J),h1.return=X,X=h1):(l(X,$),h1=j7(J,X.mode,h1),h1.return=X,X=h1),A(X)):l(X,$)}return function(X,$,J,h1){try{u8=0;var E1=v2(X,$,J,h1);return a0=null,E1}catch(F1){if(F1===c0||F1===I5)throw F1;var r2=u4(29,F1,null,X.mode);return r2.lanes=h1,r2.return=X,r2}finally{}}}var p6=Zr(!0),Gr=Zr(!1),V3=!1;function P7(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,lanes:0,hiddenCallbacks:null},callbacks:null}}function $7(e,a){e=e.updateQueue,a.updateQueue===e&&(a.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,callbacks:null})}function B3(e){return{lane:e,tag:0,payload:null,callback:null,next:null}}function j3(e,a,l){var o=e.updateQueue;if(o===null)return null;if(o=o.shared,(o2&2)!==0){var v=o.pending;return v===null?a.next=a:(a.next=v.next,v.next=a),o.pending=a,a=T5(e),Br(e,null,l),a}return E5(e,o,a,l),T5(e)}function d8(e,a,l){if(a=a.updateQueue,a!==null&&(a=a.shared,(l&4194048)!==0)){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,_n(e,l)}}function Z7(e,a){var l=e.updateQueue,o=e.alternate;if(o!==null&&(o=o.updateQueue,l===o)){var v=null,z=null;if(l=l.firstBaseUpdate,l!==null){do{var A={lane:l.lane,tag:l.tag,payload:l.payload,callback:null,next:null};z===null?v=z=A:z=z.next=A,l=l.next}while(l!==null);z===null?v=z=a:z=z.next=a}else v=z=a;l={baseState:o.baseState,firstBaseUpdate:v,lastBaseUpdate:z,shared:o.shared,callbacks:o.callbacks},e.updateQueue=l;return}e=l.lastBaseUpdate,e===null?l.firstBaseUpdate=a:e.next=a,l.lastBaseUpdate=a}var G7=!1;function f8(){if(G7){var e=e0;if(e!==null)throw e}}function m8(e,a,l,o){G7=!1;var v=e.updateQueue;V3=!1;var z=v.firstBaseUpdate,A=v.lastBaseUpdate,F=v.shared.pending;if(F!==null){v.shared.pending=null;var O=F,t1=O.next;O.next=null,A===null?z=t1:A.next=t1,A=O;var s1=e.alternate;s1!==null&&(s1=s1.updateQueue,F=s1.lastBaseUpdate,F!==A&&(F===null?s1.firstBaseUpdate=t1:F.next=t1,s1.lastBaseUpdate=O))}if(z!==null){var f1=v.baseState;A=0,s1=t1=O=null,F=z;do{var e1=F.lane&-536870913,r1=e1!==F.lane;if(r1?(t2&e1)===e1:(o&e1)===e1){e1!==0&&e1===t0&&(G7=!0),s1!==null&&(s1=s1.next={lane:0,tag:F.tag,payload:F.payload,callback:null,next:null});t:{var N1=e,q1=F;e1=a;var v2=l;switch(q1.tag){case 1:if(N1=q1.payload,typeof N1=="function"){f1=N1.call(v2,f1,e1);break t}f1=N1;break t;case 3:N1.flags=N1.flags&-65537|128;case 0:if(N1=q1.payload,e1=typeof N1=="function"?N1.call(v2,f1,e1):N1,e1==null)break t;f1=b({},f1,e1);break t;case 2:V3=!0}}e1=F.callback,e1!==null&&(e.flags|=64,r1&&(e.flags|=8192),r1=v.callbacks,r1===null?v.callbacks=[e1]:r1.push(e1))}else r1={lane:e1,tag:F.tag,payload:F.payload,callback:F.callback,next:null},s1===null?(t1=s1=r1,O=f1):s1=s1.next=r1,A|=e1;if(F=F.next,F===null){if(F=v.shared.pending,F===null)break;r1=F,F=r1.next,r1.next=null,v.lastBaseUpdate=r1,v.shared.pending=null}}while(!0);s1===null&&(O=f1),v.baseState=O,v.firstBaseUpdate=t1,v.lastBaseUpdate=s1,z===null&&(v.shared.lanes=0),E3|=A,e.lanes=A,e.memoizedState=f1}}function Yr(e,a){if(typeof e!="function")throw Error(i(191,e));e.call(a)}function Kr(e,a){var l=e.callbacks;if(l!==null)for(e.callbacks=null,e=0;ez?z:8;var A=T.T,F={};T.T=F,d9(e,!1,a,l);try{var O=v(),t1=T.S;if(t1!==null&&t1(F,O),O!==null&&typeof O=="object"&&typeof O.then=="function"){var s1=Tm(O,o);g8(e,a,s1,v4(e))}else g8(e,a,o,v4(e))}catch(f1){g8(e,a,{then:function(){},status:"rejected",reason:f1},v4())}finally{G.p=z,A!==null&&F.types!==null&&(A.types=F.types),T.T=A}}function Im(){}function u9(e,a,l,o){if(e.tag!==5)throw Error(i(476));var v=Hl(e).queue;Al(e,v,a,P,l===null?Im:function(){return Ll(e),l(o)})}function Hl(e){var a=e.memoizedState;if(a!==null)return a;a={memoizedState:P,baseState:P,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:P},next:null};var l={};return a.next={memoizedState:l,baseState:l,baseQueue:null,queue:{pending:null,lanes:0,dispatch:null,lastRenderedReducer:l3,lastRenderedState:l},next:null},e.memoizedState=a,e=e.alternate,e!==null&&(e.memoizedState=a),a}function Ll(e){var a=Hl(e);a.next===null&&(a=e.alternate.memoizedState),g8(e,a.next.queue,{},v4())}function h9(){return Y2(F8)}function Vl(){return j2().memoizedState}function Bl(){return j2().memoizedState}function Pm(e){for(var a=e.return;a!==null;){switch(a.tag){case 24:case 3:var l=v4();e=B3(l);var o=j3(a,e,l);o!==null&&(i4(o,a,l),d8(o,a,l)),a={cache:D7()},e.payload=a;return}a=a.return}}function $m(e,a,l){var o=v4();l={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null},ct(e)?Nl(a,l):(l=V7(e,a,l,o),l!==null&&(i4(l,e,o),kl(l,a,o)))}function jl(e,a,l){var o=v4();g8(e,a,l,o)}function g8(e,a,l,o){var v={lane:o,revertLane:0,gesture:null,action:l,hasEagerState:!1,eagerState:null,next:null};if(ct(e))Nl(a,v);else{var z=e.alternate;if(e.lanes===0&&(z===null||z.lanes===0)&&(z=a.lastRenderedReducer,z!==null))try{var A=a.lastRenderedState,F=z(A,l);if(v.hasEagerState=!0,v.eagerState=F,o4(F,A))return E5(e,a,v,0),p2===null&&R5(),!1}catch{}finally{}if(l=V7(e,a,v,o),l!==null)return i4(l,e,o),kl(l,a,o),!0}return!1}function d9(e,a,l,o){if(o={lane:2,revertLane:P9(),gesture:null,action:o,hasEagerState:!1,eagerState:null,next:null},ct(e)){if(a)throw Error(i(479))}else a=V7(e,l,o,2),a!==null&&i4(a,e,2)}function ct(e){var a=e.alternate;return e===Z1||a!==null&&a===Z1}function Nl(e,a){r0=K5=!0;var l=e.pending;l===null?a.next=a:(a.next=l.next,l.next=a),e.pending=a}function kl(e,a,l){if((l&4194048)!==0){var o=a.lanes;o&=e.pendingLanes,l|=o,a.lanes=l,_n(e,l)}}var x8={readContext:Y2,use:W5,useCallback:H2,useContext:H2,useEffect:H2,useImperativeHandle:H2,useLayoutEffect:H2,useInsertionEffect:H2,useMemo:H2,useReducer:H2,useRef:H2,useState:H2,useDebugValue:H2,useDeferredValue:H2,useTransition:H2,useSyncExternalStore:H2,useId:H2,useHostTransitionStatus:H2,useFormState:H2,useActionState:H2,useOptimistic:H2,useMemoCache:H2,useCacheRefresh:H2};x8.useEffectEvent=H2;var Fl={readContext:Y2,use:W5,useCallback:function(e,a){return t4().memoizedState=[e,a===void 0?null:a],e},useContext:Y2,useEffect:gl,useImperativeHandle:function(e,a,l){l=l!=null?l.concat([e]):null,tt(4194308,4,yl.bind(null,a,e),l)},useLayoutEffect:function(e,a){return tt(4194308,4,e,a)},useInsertionEffect:function(e,a){tt(4,2,e,a)},useMemo:function(e,a){var l=t4();a=a===void 0?null:a;var o=e();if(g6){k1(!0);try{e()}finally{k1(!1)}}return l.memoizedState=[o,a],o},useReducer:function(e,a,l){var o=t4();if(l!==void 0){var v=l(a);if(g6){k1(!0);try{l(a)}finally{k1(!1)}}}else v=a;return o.memoizedState=o.baseState=v,e={pending:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:v},o.queue=e,e=e.dispatch=$m.bind(null,Z1,e),[o.memoizedState,e]},useRef:function(e){var a=t4();return e={current:e},a.memoizedState=e},useState:function(e){e=r9(e);var a=e.queue,l=jl.bind(null,Z1,a);return a.dispatch=l,[e.memoizedState,l]},useDebugValue:s9,useDeferredValue:function(e,a){var l=t4();return o9(l,e,a)},useTransition:function(){var e=r9(!1);return e=Al.bind(null,Z1,e.queue,!0,!1),t4().memoizedState=e,[!1,e]},useSyncExternalStore:function(e,a,l){var o=Z1,v=t4();if(c2){if(l===void 0)throw Error(i(407));l=l()}else{if(l=a(),p2===null)throw Error(i(349));(t2&127)!==0||el(o,a,l)}v.memoizedState=l;var z={value:l,getSnapshot:a};return v.queue=z,gl(al.bind(null,o,z,e),[e]),o.flags|=2048,i0(9,{destroy:void 0},cl.bind(null,o,z,l,a),null),l},useId:function(){var e=t4(),a=p2.identifierPrefix;if(c2){var l=Z4,o=$4;l=(o&~(1<<32-H1(o)-1)).toString(32)+l,a="_"+a+"R_"+l,l=Q5++,0<\/script>",z=z.removeChild(z.firstChild);break;case"select":z=typeof o.is=="string"?A.createElement("select",{is:o.is}):A.createElement("select"),o.multiple?z.multiple=!0:o.size&&(z.size=o.size);break;default:z=typeof o.is=="string"?A.createElement(v,{is:o.is}):A.createElement(v)}}z[Z2]=a,z[e4]=o;t:for(A=a.child;A!==null;){if(A.tag===5||A.tag===6)z.appendChild(A.stateNode);else if(A.tag!==4&&A.tag!==27&&A.child!==null){A.child.return=A,A=A.child;continue}if(A===a)break t;for(;A.sibling===null;){if(A.return===null||A.return===a)break t;A=A.return}A.sibling.return=A.return,A=A.sibling}a.stateNode=z;t:switch(Q2(z,v,o),v){case"button":case"input":case"select":case"textarea":o=!!o.autoFocus;break t;case"img":o=!0;break t;default:o=!1}o&&s3(a)}}return z2(a),A9(a,a.type,e===null?null:e.memoizedProps,a.pendingProps,l),null;case 6:if(e&&a.stateNode!=null)e.memoizedProps!==o&&s3(a);else{if(typeof o!="string"&&a.stateNode===null)throw Error(i(166));if(e=d1.current,W6(a)){if(e=a.stateNode,l=a.memoizedProps,o=null,v=G2,v!==null)switch(v.tag){case 27:case 5:o=v.memoizedProps}e[Z2]=a,e=!!(e.nodeValue===l||o!==null&&o.suppressHydrationWarning===!0||Ji(e.nodeValue,l)),e||H3(a,!0)}else e=Mt(e).createTextNode(o),e[Z2]=a,a.stateNode=e}return z2(a),null;case 31:if(l=a.memoizedState,e===null||e.memoizedState!==null){if(o=W6(a),l!==null){if(e===null){if(!o)throw Error(i(318));if(e=a.memoizedState,e=e!==null?e.dehydrated:null,!e)throw Error(i(557));e[Z2]=a}else u6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),e=!1}else l=E7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=l),e=!0;if(!e)return a.flags&256?(d4(a),a):(d4(a),null);if((a.flags&128)!==0)throw Error(i(558))}return z2(a),null;case 13:if(o=a.memoizedState,e===null||e.memoizedState!==null&&e.memoizedState.dehydrated!==null){if(v=W6(a),o!==null&&o.dehydrated!==null){if(e===null){if(!v)throw Error(i(318));if(v=a.memoizedState,v=v!==null?v.dehydrated:null,!v)throw Error(i(317));v[Z2]=a}else u6(),(a.flags&128)===0&&(a.memoizedState=null),a.flags|=4;z2(a),v=!1}else v=E7(),e!==null&&e.memoizedState!==null&&(e.memoizedState.hydrationErrors=v),v=!0;if(!v)return a.flags&256?(d4(a),a):(d4(a),null)}return d4(a),(a.flags&128)!==0?(a.lanes=l,a):(l=o!==null,e=e!==null&&e.memoizedState!==null,l&&(o=a.child,v=null,o.alternate!==null&&o.alternate.memoizedState!==null&&o.alternate.memoizedState.cachePool!==null&&(v=o.alternate.memoizedState.cachePool.pool),z=null,o.memoizedState!==null&&o.memoizedState.cachePool!==null&&(z=o.memoizedState.cachePool.pool),z!==v&&(o.flags|=2048)),l!==e&&l&&(a.child.flags|=8192),it(a,a.updateQueue),z2(a),null);case 4:return M1(),e===null&&Y9(a.stateNode.containerInfo),z2(a),null;case 10:return n3(a.type),z2(a),null;case 19:if(U(B2),o=a.memoizedState,o===null)return z2(a),null;if(v=(a.flags&128)!==0,z=o.rendering,z===null)if(v)b8(o,!1);else{if(L2!==0||e!==null&&(e.flags&128)!==0)for(e=a.child;e!==null;){if(z=Y5(e),z!==null){for(a.flags|=128,b8(o,!1),e=z.updateQueue,a.updateQueue=e,it(a,e),a.subtreeFlags=0,e=l,l=a.child;l!==null;)jr(l,e),l=l.sibling;return K(B2,B2.current&1|2),c2&&c3(a,o.treeForkCount),a.child}e=e.sibling}o.tail!==null&&c1()>dt&&(a.flags|=128,v=!0,b8(o,!1),a.lanes=4194304)}else{if(!v)if(e=Y5(z),e!==null){if(a.flags|=128,v=!0,e=e.updateQueue,a.updateQueue=e,it(a,e),b8(o,!0),o.tail===null&&o.tailMode==="hidden"&&!z.alternate&&!c2)return z2(a),null}else 2*c1()-o.renderingStartTime>dt&&l!==536870912&&(a.flags|=128,v=!0,b8(o,!1),a.lanes=4194304);o.isBackwards?(z.sibling=a.child,a.child=z):(e=o.last,e!==null?e.sibling=z:a.child=z,o.last=z)}return o.tail!==null?(e=o.tail,o.rendering=e,o.tail=e.sibling,o.renderingStartTime=c1(),e.sibling=null,l=B2.current,K(B2,v?l&1|2:l&1),c2&&c3(a,o.treeForkCount),e):(z2(a),null);case 22:case 23:return d4(a),K7(),o=a.memoizedState!==null,e!==null?e.memoizedState!==null!==o&&(a.flags|=8192):o&&(a.flags|=8192),o?(l&536870912)!==0&&(a.flags&128)===0&&(z2(a),a.subtreeFlags&6&&(a.flags|=8192)):z2(a),l=a.updateQueue,l!==null&&it(a,l.retryQueue),l=null,e!==null&&e.memoizedState!==null&&e.memoizedState.cachePool!==null&&(l=e.memoizedState.cachePool.pool),o=null,a.memoizedState!==null&&a.memoizedState.cachePool!==null&&(o=a.memoizedState.cachePool.pool),o!==l&&(a.flags|=2048),e!==null&&U(f6),null;case 24:return l=null,e!==null&&(l=e.memoizedState.cache),a.memoizedState.cache!==l&&(a.flags|=2048),n3(k2),z2(a),null;case 25:return null;case 30:return null}throw Error(i(156,a.tag))}function Qm(e,a){switch(F7(a),a.tag){case 1:return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 3:return n3(k2),M1(),e=a.flags,(e&65536)!==0&&(e&128)===0?(a.flags=e&-65537|128,a):null;case 26:case 27:case 5:return R1(a),null;case 31:if(a.memoizedState!==null){if(d4(a),a.alternate===null)throw Error(i(340));u6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 13:if(d4(a),e=a.memoizedState,e!==null&&e.dehydrated!==null){if(a.alternate===null)throw Error(i(340));u6()}return e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 19:return U(B2),null;case 4:return M1(),null;case 10:return n3(a.type),null;case 22:case 23:return d4(a),K7(),e!==null&&U(f6),e=a.flags,e&65536?(a.flags=e&-65537|128,a):null;case 24:return n3(k2),null;case 25:return null;default:return null}}function ni(e,a){switch(F7(a),a.tag){case 3:n3(k2),M1();break;case 26:case 27:case 5:R1(a);break;case 4:M1();break;case 31:a.memoizedState!==null&&d4(a);break;case 13:d4(a);break;case 19:U(B2);break;case 10:n3(a.type);break;case 22:case 23:d4(a),K7(),e!==null&&U(f6);break;case 24:n3(k2)}}function y8(e,a){try{var l=a.updateQueue,o=l!==null?l.lastEffect:null;if(o!==null){var v=o.next;l=v;do{if((l.tag&e)===e){o=void 0;var z=l.create,A=l.inst;o=z(),A.destroy=o}l=l.next}while(l!==v)}}catch(F){d2(a,a.return,F)}}function F3(e,a,l){try{var o=a.updateQueue,v=o!==null?o.lastEffect:null;if(v!==null){var z=v.next;o=z;do{if((o.tag&e)===e){var A=o.inst,F=A.destroy;if(F!==void 0){A.destroy=void 0,v=a;var O=l,t1=F;try{t1()}catch(s1){d2(v,O,s1)}}}o=o.next}while(o!==z)}}catch(s1){d2(a,a.return,s1)}}function ri(e){var a=e.updateQueue;if(a!==null){var l=e.stateNode;try{Kr(a,l)}catch(o){d2(e,e.return,o)}}}function li(e,a,l){l.props=x6(e.type,e.memoizedProps),l.state=e.memoizedState;try{l.componentWillUnmount()}catch(o){d2(e,a,o)}}function M8(e,a){try{var l=e.ref;if(l!==null){switch(e.tag){case 26:case 27:case 5:var o=e.stateNode;break;case 30:o=e.stateNode;break;default:o=e.stateNode}typeof l=="function"?e.refCleanup=l(o):l.current=o}}catch(v){d2(e,a,v)}}function G4(e,a){var l=e.ref,o=e.refCleanup;if(l!==null)if(typeof o=="function")try{o()}catch(v){d2(e,a,v)}finally{e.refCleanup=null,e=e.alternate,e!=null&&(e.refCleanup=null)}else if(typeof l=="function")try{l(null)}catch(v){d2(e,a,v)}else l.current=null}function ii(e){var a=e.type,l=e.memoizedProps,o=e.stateNode;try{t:switch(a){case"button":case"input":case"select":case"textarea":l.autoFocus&&o.focus();break t;case"img":l.src?o.src=l.src:l.srcSet&&(o.srcset=l.srcSet)}}catch(v){d2(e,e.return,v)}}function H9(e,a,l){try{var o=e.stateNode;xv(o,e.type,l,a),o[e4]=a}catch(v){d2(e,e.return,v)}}function si(e){return e.tag===5||e.tag===3||e.tag===26||e.tag===27&&O3(e.type)||e.tag===4}function L9(e){t:for(;;){for(;e.sibling===null;){if(e.return===null||si(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;e.tag!==5&&e.tag!==6&&e.tag!==18;){if(e.tag===27&&O3(e.type)||e.flags&2||e.child===null||e.tag===4)continue t;e.child.return=e,e=e.child}if(!(e.flags&2))return e.stateNode}}function V9(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?(l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l).insertBefore(e,a):(a=l.nodeType===9?l.body:l.nodeName==="HTML"?l.ownerDocument.body:l,a.appendChild(e),l=l._reactRootContainer,l!=null||a.onclick!==null||(a.onclick=J4));else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode,a=null),e=e.child,e!==null))for(V9(e,a,l),e=e.sibling;e!==null;)V9(e,a,l),e=e.sibling}function st(e,a,l){var o=e.tag;if(o===5||o===6)e=e.stateNode,a?l.insertBefore(e,a):l.appendChild(e);else if(o!==4&&(o===27&&O3(e.type)&&(l=e.stateNode),e=e.child,e!==null))for(st(e,a,l),e=e.sibling;e!==null;)st(e,a,l),e=e.sibling}function oi(e){var a=e.stateNode,l=e.memoizedProps;try{for(var o=e.type,v=a.attributes;v.length;)a.removeAttributeNode(v[0]);Q2(a,o,l),a[Z2]=e,a[e4]=l}catch(z){d2(e,e.return,z)}}var o3=!1,E2=!1,B9=!1,ui=typeof WeakSet=="function"?WeakSet:Set,P2=null;function Xm(e,a){if(e=e.containerInfo,X9=Vt,e=Mr(e),w7(e)){if("selectionStart"in e)var l={start:e.selectionStart,end:e.selectionEnd};else t:{l=(l=e.ownerDocument)&&l.defaultView||window;var o=l.getSelection&&l.getSelection();if(o&&o.rangeCount!==0){l=o.anchorNode;var v=o.anchorOffset,z=o.focusNode;o=o.focusOffset;try{l.nodeType,z.nodeType}catch{l=null;break t}var A=0,F=-1,O=-1,t1=0,s1=0,f1=e,e1=null;e:for(;;){for(var r1;f1!==l||v!==0&&f1.nodeType!==3||(F=A+v),f1!==z||o!==0&&f1.nodeType!==3||(O=A+o),f1.nodeType===3&&(A+=f1.nodeValue.length),(r1=f1.firstChild)!==null;)e1=f1,f1=r1;for(;;){if(f1===e)break e;if(e1===l&&++t1===v&&(F=A),e1===z&&++s1===o&&(O=A),(r1=f1.nextSibling)!==null)break;f1=e1,e1=f1.parentNode}f1=r1}l=F===-1||O===-1?null:{start:F,end:O}}else l=null}l=l||{start:0,end:0}}else l=null;for(W9={focusedElem:e,selectionRange:l},Vt=!1,P2=a;P2!==null;)if(a=P2,e=a.child,(a.subtreeFlags&1028)!==0&&e!==null)e.return=a,P2=e;else for(;P2!==null;){switch(a=P2,z=a.alternate,e=a.flags,a.tag){case 0:if((e&4)!==0&&(e=a.updateQueue,e=e!==null?e.events:null,e!==null))for(l=0;l title"))),Q2(z,o,l),z[Z2]=e,I2(z),o=z;break t;case"link":var A=ps("link","href",v).get(o+(l.href||""));if(A){for(var F=0;Fv2&&(A=v2,v2=q1,q1=A);var X=br(F,q1),$=br(F,v2);if(X&&$&&(r1.rangeCount!==1||r1.anchorNode!==X.node||r1.anchorOffset!==X.offset||r1.focusNode!==$.node||r1.focusOffset!==$.offset)){var J=f1.createRange();J.setStart(X.node,X.offset),r1.removeAllRanges(),q1>v2?(r1.addRange(J),r1.extend($.node,$.offset)):(J.setEnd($.node,$.offset),r1.addRange(J))}}}}for(f1=[],r1=F;r1=r1.parentNode;)r1.nodeType===1&&f1.push({element:r1,left:r1.scrollLeft,top:r1.scrollTop});for(typeof F.focus=="function"&&F.focus(),F=0;Fl?32:l,T.T=null,l=T9,T9=null;var z=_3,A=m3;if(D2=0,d0=_3=null,m3=0,(o2&6)!==0)throw Error(i(331));var F=o2;if(o2|=4,yi(z.current),xi(z,z.current,A,l),o2=F,L8(0,!1),L1&&typeof L1.onPostCommitFiberRoot=="function")try{L1.onPostCommitFiberRoot(o1,z)}catch{}return!0}finally{G.p=v,T.T=o,qi(e,a)}}function Oi(e,a,l){a=b4(l,a),a=p9(e.stateNode,a,2),e=j3(e,a,2),e!==null&&(Y0(e,2),Y4(e))}function d2(e,a,l){if(e.tag===3)Oi(e,e,l);else for(;a!==null;){if(a.tag===3){Oi(a,e,l);break}else if(a.tag===1){var o=a.stateNode;if(typeof a.type.getDerivedStateFromError=="function"||typeof o.componentDidCatch=="function"&&(T3===null||!T3.has(o))){e=b4(l,e),l=Ul(2),o=j3(a,l,2),o!==null&&(Il(l,o,a,e),Y0(o,2),Y4(o));break}}a=a.return}}function O9(e,a,l){var o=e.pingCache;if(o===null){o=e.pingCache=new tv;var v=new Set;o.set(a,v)}else v=o.get(a),v===void 0&&(v=new Set,o.set(a,v));v.has(l)||(k9=!0,v.add(l),e=rv.bind(null,e,a,l),a.then(e,e))}function rv(e,a,l){var o=e.pingCache;o!==null&&o.delete(a),e.pingedLanes|=e.suspendedLanes&l,e.warmLanes&=~l,p2===e&&(t2&l)===l&&(L2===4||L2===3&&(t2&62914560)===t2&&300>c1()-ht?(o2&2)===0&&f0(e,0):F9|=l,h0===t2&&(h0=0)),Y4(e)}function Ui(e,a){a===0&&(a=En()),e=s6(e,a),e!==null&&(Y0(e,a),Y4(e))}function lv(e){var a=e.memoizedState,l=0;a!==null&&(l=a.retryLane),Ui(e,l)}function iv(e,a){var l=0;switch(e.tag){case 31:case 13:var o=e.stateNode,v=e.memoizedState;v!==null&&(l=v.retryLane);break;case 19:o=e.stateNode;break;case 22:o=e.stateNode._retryCache;break;default:throw Error(i(314))}o!==null&&o.delete(a),Ui(e,l)}function sv(e,a){return V1(e,a)}var xt=null,v0=null,U9=!1,zt=!1,I9=!1,D3=0;function Y4(e){e!==v0&&e.next===null&&(v0===null?xt=v0=e:v0=v0.next=e),zt=!0,U9||(U9=!0,uv())}function L8(e,a){if(!I9&&zt){I9=!0;do for(var l=!1,o=xt;o!==null;){if(e!==0){var v=o.pendingLanes;if(v===0)var z=0;else{var A=o.suspendedLanes,F=o.pingedLanes;z=(1<<31-H1(42|e)+1)-1,z&=v&~(A&~F),z=z&201326741?z&201326741|1:z?z|2:0}z!==0&&(l=!0,Zi(o,z))}else z=t2,z=A2(o,o===p2?z:0,o.cancelPendingCommit!==null||o.timeoutHandle!==-1),(z&3)===0||F4(o,z)||(l=!0,Zi(o,z));o=o.next}while(l);I9=!1}}function ov(){Ii()}function Ii(){zt=U9=!1;var e=0;D3!==0&&bv()&&(e=D3);for(var a=c1(),l=null,o=xt;o!==null;){var v=o.next,z=Pi(o,a);z===0?(o.next=null,l===null?xt=v:l.next=v,v===null&&(v0=l)):(l=o,(e!==0||(z&3)!==0)&&(zt=!0)),o=v}D2!==0&&D2!==5||L8(e),D3!==0&&(D3=0)}function Pi(e,a){for(var l=e.suspendedLanes,o=e.pingedLanes,v=e.expirationTimes,z=e.pendingLanes&-62914561;0F)break;var s1=O.transferSize,f1=O.initiatorType;s1&&ts(f1)&&(O=O.responseEnd,A+=s1*(O"u"?null:document;function ds(e,a,l){var o=p0;if(o&&typeof a=="string"&&a){var v=x4(a);v='link[rel="'+e+'"][href="'+v+'"]',typeof l=="string"&&(v+='[crossorigin="'+l+'"]'),hs.has(v)||(hs.add(v),e={rel:e,crossOrigin:l,href:a},o.querySelector(v)===null&&(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function Vv(e){v3.D(e),ds("dns-prefetch",e,null)}function Bv(e,a){v3.C(e,a),ds("preconnect",e,a)}function jv(e,a,l){v3.L(e,a,l);var o=p0;if(o&&e&&a){var v='link[rel="preload"][as="'+x4(a)+'"]';a==="image"&&l&&l.imageSrcSet?(v+='[imagesrcset="'+x4(l.imageSrcSet)+'"]',typeof l.imageSizes=="string"&&(v+='[imagesizes="'+x4(l.imageSizes)+'"]')):v+='[href="'+x4(e)+'"]';var z=v;switch(a){case"style":z=g0(e);break;case"script":z=x0(e)}A4.has(z)||(e=b({rel:"preload",href:a==="image"&&l&&l.imageSrcSet?void 0:e,as:a},l),A4.set(z,e),o.querySelector(v)!==null||a==="style"&&o.querySelector(N8(z))||a==="script"&&o.querySelector(k8(z))||(a=o.createElement("link"),Q2(a,"link",e),I2(a),o.head.appendChild(a)))}}function Nv(e,a){v3.m(e,a);var l=p0;if(l&&e){var o=a&&typeof a.as=="string"?a.as:"script",v='link[rel="modulepreload"][as="'+x4(o)+'"][href="'+x4(e)+'"]',z=v;switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":z=x0(e)}if(!A4.has(z)&&(e=b({rel:"modulepreload",href:e},a),A4.set(z,e),l.querySelector(v)===null)){switch(o){case"audioworklet":case"paintworklet":case"serviceworker":case"sharedworker":case"worker":case"script":if(l.querySelector(k8(z)))return}o=l.createElement("link"),Q2(o,"link",e),I2(o),l.head.appendChild(o)}}}function kv(e,a,l){v3.S(e,a,l);var o=p0;if(o&&e){var v=q6(o).hoistableStyles,z=g0(e);a=a||"default";var A=v.get(z);if(!A){var F={loading:0,preload:null};if(A=o.querySelector(N8(z)))F.loading=5;else{e=b({rel:"stylesheet",href:e,"data-precedence":a},l),(l=A4.get(z))&&rc(e,l);var O=A=o.createElement("link");I2(O),Q2(O,"link",e),O._p=new Promise(function(t1,s1){O.onload=t1,O.onerror=s1}),O.addEventListener("load",function(){F.loading|=1}),O.addEventListener("error",function(){F.loading|=2}),F.loading|=4,Ct(A,a,o)}A={type:"stylesheet",instance:A,count:1,state:F},v.set(z,A)}}}function Fv(e,a){v3.X(e,a);var l=p0;if(l&&e){var o=q6(l).hoistableScripts,v=x0(e),z=o.get(v);z||(z=l.querySelector(k8(v)),z||(e=b({src:e,async:!0},a),(a=A4.get(v))&&lc(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(v,z))}}function Rv(e,a){v3.M(e,a);var l=p0;if(l&&e){var o=q6(l).hoistableScripts,v=x0(e),z=o.get(v);z||(z=l.querySelector(k8(v)),z||(e=b({src:e,async:!0,type:"module"},a),(a=A4.get(v))&&lc(e,a),z=l.createElement("script"),I2(z),Q2(z,"link",e),l.head.appendChild(z)),z={type:"script",instance:z,count:1,state:null},o.set(v,z))}}function fs(e,a,l,o){var v=(v=d1.current)?wt(v):null;if(!v)throw Error(i(446));switch(e){case"meta":case"title":return null;case"style":return typeof l.precedence=="string"&&typeof l.href=="string"?(a=g0(l.href),l=q6(v).hoistableStyles,o=l.get(a),o||(o={type:"style",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};case"link":if(l.rel==="stylesheet"&&typeof l.href=="string"&&typeof l.precedence=="string"){e=g0(l.href);var z=q6(v).hoistableStyles,A=z.get(e);if(A||(v=v.ownerDocument||v,A={type:"stylesheet",instance:null,count:0,state:{loading:0,preload:null}},z.set(e,A),(z=v.querySelector(N8(e)))&&!z._p&&(A.instance=z,A.state.loading=5),A4.has(e)||(l={rel:"preload",as:"style",href:l.href,crossOrigin:l.crossOrigin,integrity:l.integrity,media:l.media,hrefLang:l.hrefLang,referrerPolicy:l.referrerPolicy},A4.set(e,l),z||Ev(v,e,l,A.state))),a&&o===null)throw Error(i(528,""));return A}if(a&&o!==null)throw Error(i(529,""));return null;case"script":return a=l.async,l=l.src,typeof l=="string"&&a&&typeof a!="function"&&typeof a!="symbol"?(a=x0(l),l=q6(v).hoistableScripts,o=l.get(a),o||(o={type:"script",instance:null,count:0,state:null},l.set(a,o)),o):{type:"void",instance:null,count:0,state:null};default:throw Error(i(444,e))}}function g0(e){return'href="'+x4(e)+'"'}function N8(e){return'link[rel="stylesheet"]['+e+"]"}function ms(e){return b({},e,{"data-precedence":e.precedence,precedence:null})}function Ev(e,a,l,o){e.querySelector('link[rel="preload"][as="style"]['+a+"]")?o.loading=1:(a=e.createElement("link"),o.preload=a,a.addEventListener("load",function(){return o.loading|=1}),a.addEventListener("error",function(){return o.loading|=2}),Q2(a,"link",l),I2(a),e.head.appendChild(a))}function x0(e){return'[src="'+x4(e)+'"]'}function k8(e){return"script[async]"+e}function vs(e,a,l){if(a.count++,a.instance===null)switch(a.type){case"style":var o=e.querySelector('style[data-href~="'+x4(l.href)+'"]');if(o)return a.instance=o,I2(o),o;var v=b({},l,{"data-href":l.href,"data-precedence":l.precedence,href:null,precedence:null});return o=(e.ownerDocument||e).createElement("style"),I2(o),Q2(o,"style",v),Ct(o,l.precedence,e),a.instance=o;case"stylesheet":v=g0(l.href);var z=e.querySelector(N8(v));if(z)return a.state.loading|=4,a.instance=z,I2(z),z;o=ms(l),(v=A4.get(v))&&rc(o,v),z=(e.ownerDocument||e).createElement("link"),I2(z);var A=z;return A._p=new Promise(function(F,O){A.onload=F,A.onerror=O}),Q2(z,"link",o),a.state.loading|=4,Ct(z,l.precedence,e),a.instance=z;case"script":return z=x0(l.src),(v=e.querySelector(k8(z)))?(a.instance=v,I2(v),v):(o=l,(v=A4.get(z))&&(o=b({},l),lc(o,v)),e=e.ownerDocument||e,v=e.createElement("script"),I2(v),Q2(v,"link",o),e.head.appendChild(v),a.instance=v);case"void":return null;default:throw Error(i(443,a.type))}else a.type==="stylesheet"&&(a.state.loading&4)===0&&(o=a.instance,a.state.loading|=4,Ct(o,l.precedence,e));return a.instance}function Ct(e,a,l){for(var o=l.querySelectorAll('link[rel="stylesheet"][data-precedence],style[data-precedence]'),v=o.length?o[o.length-1]:null,z=v,A=0;A title"):null)}function Tv(e,a,l){if(l===1||a.itemProp!=null)return!1;switch(e){case"meta":case"title":return!0;case"style":if(typeof a.precedence!="string"||typeof a.href!="string"||a.href==="")break;return!0;case"link":if(typeof a.rel!="string"||typeof a.href!="string"||a.href===""||a.onLoad||a.onError)break;switch(a.rel){case"stylesheet":return e=a.disabled,typeof a.precedence=="string"&&e==null;default:return!0}case"script":if(a.async&&typeof a.async!="function"&&typeof a.async!="symbol"&&!a.onLoad&&!a.onError&&a.src&&typeof a.src=="string")return!0}return!1}function xs(e){return!(e.type==="stylesheet"&&(e.state.loading&3)===0)}function _v(e,a,l,o){if(l.type==="stylesheet"&&(typeof o.media!="string"||matchMedia(o.media).matches!==!1)&&(l.state.loading&4)===0){if(l.instance===null){var v=g0(o.href),z=a.querySelector(N8(v));if(z){a=z._p,a!==null&&typeof a=="object"&&typeof a.then=="function"&&(e.count++,e=At.bind(e),a.then(e,e)),l.state.loading|=4,l.instance=z,I2(z);return}z=a.ownerDocument||a,o=ms(o),(v=A4.get(v))&&rc(o,v),z=z.createElement("link"),I2(z);var A=z;A._p=new Promise(function(F,O){A.onload=F,A.onerror=O}),Q2(z,"link",o),l.instance=z}e.stylesheets===null&&(e.stylesheets=new Map),e.stylesheets.set(l,a),(a=l.state.preload)&&(l.state.loading&3)===0&&(e.count++,l=At.bind(e),a.addEventListener("load",l),a.addEventListener("error",l))}}var ic=0;function qv(e,a){return e.stylesheets&&e.count===0&&Lt(e,e.stylesheets),0ic?50:800)+a);return e.unsuspend=l,function(){e.unsuspend=null,clearTimeout(o),clearTimeout(v)}}:null}function At(){if(this.count--,this.count===0&&(this.imgCount===0||!this.waitingForImages)){if(this.stylesheets)Lt(this,this.stylesheets);else if(this.unsuspend){var e=this.unsuspend;this.unsuspend=null,e()}}}var Ht=null;function Lt(e,a){e.stylesheets=null,e.unsuspend!==null&&(e.count++,Ht=new Map,a.forEach(Dv,e),Ht=null,At.call(e))}function Dv(e,a){if(!(a.state.loading&4)){var l=Ht.get(e);if(l)var o=l.get(null);else{l=new Map,Ht.set(e,l);for(var v=e.querySelectorAll("link[data-precedence],style[data-precedence]"),z=0;z"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(t)}catch(c){console.error(c)}}return t(),pc.exports=cp(),pc.exports}var np=ap();var Us="popstate";function rp(t={}){function c(i,u){let{pathname:h,search:d,hash:m}=i.location;return ra("",{pathname:h,search:d,hash:m},u.state&&u.state.usr||null,u.state&&u.state.key||"default")}function n(i,u){return typeof u=="string"?u:n5(u)}return ip(c,n,null,t)}function C2(t,c){if(t===!1||t===null||typeof t>"u")throw new Error(c)}function U4(t,c){if(!t){typeof console<"u"&&console.warn(c);try{throw new Error(c)}catch{}}}function lp(){return Math.random().toString(36).substring(2,10)}function Is(t,c){return{usr:t.state,key:t.key,idx:c}}function ra(t,c,n=null,i){return{pathname:typeof t=="string"?t:t.pathname,search:"",hash:"",...typeof c=="string"?q0(c):c,state:n,key:c&&c.key||i||lp()}}function n5({pathname:t="/",search:c="",hash:n=""}){return c&&c!=="?"&&(t+=c.charAt(0)==="?"?c:"?"+c),n&&n!=="#"&&(t+=n.charAt(0)==="#"?n:"#"+n),t}function q0(t){let c={};if(t){let n=t.indexOf("#");n>=0&&(c.hash=t.substring(n),t=t.substring(0,n));let i=t.indexOf("?");i>=0&&(c.search=t.substring(i),t=t.substring(0,i)),t&&(c.pathname=t)}return c}function ip(t,c,n,i={}){let{window:u=document.defaultView,v5Compat:h=!1}=i,d=u.history,m="POP",p=null,x=g();x==null&&(x=0,d.replaceState({...d.state,idx:x},""));function g(){return(d.state||{idx:null}).idx}function b(){m="POP";let S=g(),B=S==null?null:S-x;x=S,p&&p({action:m,location:L.location,delta:B})}function y(S,B){m="PUSH";let C=ra(L.location,S,B);x=g()+1;let w=Is(C,x),j=L.createHref(C);try{d.pushState(w,"",j)}catch(E){if(E instanceof DOMException&&E.name==="DataCloneError")throw E;u.location.assign(j)}h&&p&&p({action:m,location:L.location,delta:1})}function M(S,B){m="REPLACE";let C=ra(L.location,S,B);x=g();let w=Is(C,x),j=L.createHref(C);d.replaceState(w,"",j),h&&p&&p({action:m,location:L.location,delta:0})}function H(S){return sp(S)}let L={get action(){return m},get location(){return t(u,d)},listen(S){if(p)throw new Error("A history only accepts one active listener");return u.addEventListener(Us,b),p=S,()=>{u.removeEventListener(Us,b),p=null}},createHref(S){return c(u,S)},createURL:H,encodeLocation(S){let B=H(S);return{pathname:B.pathname,search:B.search,hash:B.hash}},push:y,replace:M,go(S){return d.go(S)}};return L}function sp(t,c=!1){let n="http://localhost";typeof window<"u"&&(n=window.location.origin!=="null"?window.location.origin:window.location.href),C2(n,"No window.location.(origin|href) available to create URL");let i=typeof t=="string"?t:n5(t);return i=i.replace(/ $/,"%20"),!c&&i.startsWith("//")&&(i=n+i),new URL(i,n)}function Pu(t,c,n="/"){return op(t,c,n,!1)}function op(t,c,n,i){let u=typeof c=="string"?q0(c):c,h=y3(u.pathname||"/",n);if(h==null)return null;let d=$u(t);up(d);let m=null;for(let p=0;m==null&&p{let g={relativePath:x===void 0?d.path||"":x,caseSensitive:d.caseSensitive===!0,childrenIndex:m,route:d};if(g.relativePath.startsWith("/")){if(!g.relativePath.startsWith(i)&&p)return;C2(g.relativePath.startsWith(i),`Absolute route path "${g.relativePath}" nested under path "${i}" is not valid. An absolute child route path must start with the combined path of all its parent routes.`),g.relativePath=g.relativePath.slice(i.length)}let b=z3([i,g.relativePath]),y=n.concat(g);d.children&&d.children.length>0&&(C2(d.index!==!0,`Index routes must not have child routes. Please remove all child routes from route path "${b}".`),$u(d.children,c,y,b,p)),!(d.path==null&&!d.index)&&c.push({path:b,score:gp(b,d.index),routesMeta:y})};return t.forEach((d,m)=>{if(d.path===""||!d.path?.includes("?"))h(d,m);else for(let p of Zu(d.path))h(d,m,!0,p)}),c}function Zu(t){let c=t.split("/");if(c.length===0)return[];let[n,...i]=c,u=n.endsWith("?"),h=n.replace(/\?$/,"");if(i.length===0)return u?[h,""]:[h];let d=Zu(i.join("/")),m=[];return m.push(...d.map(p=>p===""?h:[h,p].join("/"))),u&&m.push(...d),m.map(p=>t.startsWith("/")&&p===""?"/":p)}function up(t){t.sort((c,n)=>c.score!==n.score?n.score-c.score:xp(c.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}var hp=/^:[\w-]+$/,dp=3,fp=2,mp=1,vp=10,pp=-2,Ps=t=>t==="*";function gp(t,c){let n=t.split("/"),i=n.length;return n.some(Ps)&&(i+=pp),c&&(i+=fp),n.filter(u=>!Ps(u)).reduce((u,h)=>u+(hp.test(h)?dp:h===""?mp:vp),i)}function xp(t,c){return t.length===c.length&&t.slice(0,-1).every((i,u)=>i===c[u])?t[t.length-1]-c[c.length-1]:0}function zp(t,c,n=!1){let{routesMeta:i}=t,u={},h="/",d=[];for(let m=0;m{if(g==="*"){let H=m[y]||"";d=h.slice(0,h.length-H.length).replace(/(.)\/+$/,"$1")}const M=m[y];return b&&!M?x[g]=void 0:x[g]=(M||"").replace(/%2F/g,"/"),x},{}),pathname:h,pathnameBase:d,pattern:t}}function bp(t,c=!1,n=!0){U4(t==="*"||!t.endsWith("*")||t.endsWith("/*"),`Route path "${t}" will be treated as if it were "${t.replace(/\*$/,"/*")}" because the \`*\` character must always follow a \`/\` in the pattern. To get rid of this warning, please change the route path to "${t.replace(/\*$/,"/*")}".`);let i=[],u="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(d,m,p)=>(i.push({paramName:m,isOptional:p!=null}),p?"/?([^\\/]+)?":"/([^\\/]+)")).replace(/\/([\w-]+)\?(\/|$)/g,"(/$1)?$2");return t.endsWith("*")?(i.push({paramName:"*"}),u+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?u+="\\/*$":t!==""&&t!=="/"&&(u+="(?:(?=\\/|$))"),[new RegExp(u,c?void 0:"i"),i]}function yp(t){try{return t.split("/").map(c=>decodeURIComponent(c).replace(/\//g,"%2F")).join("/")}catch(c){return U4(!1,`The URL path "${t}" could not be decoded because it is a malformed URL segment. This is probably due to a bad percent encoding (${c}).`),t}}function y3(t,c){if(c==="/")return t;if(!t.toLowerCase().startsWith(c.toLowerCase()))return null;let n=c.endsWith("/")?c.length-1:c.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}var Mp=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,wp=t=>Mp.test(t);function Cp(t,c="/"){let{pathname:n,search:i="",hash:u=""}=typeof t=="string"?q0(t):t,h;if(n)if(wp(n))h=n;else{if(n.includes("//")){let d=n;n=n.replace(/\/\/+/g,"/"),U4(!1,`Pathnames cannot have embedded double slashes - normalizing ${d} -> ${n}`)}n.startsWith("/")?h=$s(n.substring(1),"/"):h=$s(n,c)}else h=c;return{pathname:h,search:Hp(i),hash:Lp(u)}}function $s(t,c){let n=c.replace(/\/+$/,"").split("/");return t.split("/").forEach(u=>{u===".."?n.length>1&&n.pop():u!=="."&&n.push(u)}),n.length>1?n.join("/"):"/"}function bc(t,c,n,i){return`Cannot include a '${t}' character in a manually specified \`to.${c}\` field [${JSON.stringify(i)}]. Please separate it out to the \`to.${n}\` field. Alternatively you may provide the full path as a string in and the router will parse it for you.`}function Sp(t){return t.filter((c,n)=>n===0||c.route.path&&c.route.path.length>0)}function Gu(t){let c=Sp(t);return c.map((n,i)=>i===c.length-1?n.pathname:n.pathnameBase)}function Yu(t,c,n,i=!1){let u;typeof t=="string"?u=q0(t):(u={...t},C2(!u.pathname||!u.pathname.includes("?"),bc("?","pathname","search",u)),C2(!u.pathname||!u.pathname.includes("#"),bc("#","pathname","hash",u)),C2(!u.search||!u.search.includes("#"),bc("#","search","hash",u)));let h=t===""||u.pathname==="",d=h?"/":u.pathname,m;if(d==null)m=n;else{let b=c.length-1;if(!i&&d.startsWith("..")){let y=d.split("/");for(;y[0]==="..";)y.shift(),b-=1;u.pathname=y.join("/")}m=b>=0?c[b]:"/"}let p=Cp(u,m),x=d&&d!=="/"&&d.endsWith("/"),g=(h||d===".")&&n.endsWith("/");return!p.pathname.endsWith("/")&&(x||g)&&(p.pathname+="/"),p}var z3=t=>t.join("/").replace(/\/\/+/g,"/"),Ap=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),Hp=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,Lp=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function Vp(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}Object.getOwnPropertyNames(Object.prototype).sort().join("\0");var Ku=["POST","PUT","PATCH","DELETE"];new Set(Ku);var Bp=["GET",...Ku];new Set(Bp);var D0=f.createContext(null);D0.displayName="DataRouter";var Te=f.createContext(null);Te.displayName="DataRouterState";f.createContext(!1);var Qu=f.createContext({isTransitioning:!1});Qu.displayName="ViewTransition";var jp=f.createContext(new Map);jp.displayName="Fetchers";var Np=f.createContext(null);Np.displayName="Await";var X4=f.createContext(null);X4.displayName="Navigation";var p5=f.createContext(null);p5.displayName="Location";var M3=f.createContext({outlet:null,matches:[],isDataRoute:!1});M3.displayName="Route";var Ia=f.createContext(null);Ia.displayName="RouteError";function kp(t,{relative:c}={}){C2(g5(),"useHref() may be used only in the context of a component.");let{basename:n,navigator:i}=f.useContext(X4),{hash:u,pathname:h,search:d}=x5(t,{relative:c}),m=h;return n!=="/"&&(m=h==="/"?n:z3([n,h])),i.createHref({pathname:m,search:d,hash:u})}function g5(){return f.useContext(p5)!=null}function e6(){return C2(g5(),"useLocation() may be used only in the context of a component."),f.useContext(p5).location}var Xu="You should call navigate() in a React.useEffect(), not when your component is first rendered.";function Wu(t){f.useContext(X4).static||f.useLayoutEffect(t)}function Pa(){let{isDataRoute:t}=f.useContext(M3);return t?Zp():Fp()}function Fp(){C2(g5(),"useNavigate() may be used only in the context of a component.");let t=f.useContext(D0),{basename:c,navigator:n}=f.useContext(X4),{matches:i}=f.useContext(M3),{pathname:u}=e6(),h=JSON.stringify(Gu(i)),d=f.useRef(!1);return Wu(()=>{d.current=!0}),f.useCallback((p,x={})=>{if(U4(d.current,Xu),!d.current)return;if(typeof p=="number"){n.go(p);return}let g=Yu(p,JSON.parse(h),u,x.relative==="path");t==null&&c!=="/"&&(g.pathname=g.pathname==="/"?c:z3([c,g.pathname])),(x.replace?n.replace:n.push)(g,x.state,x)},[c,n,h,u,t])}f.createContext(null);function x5(t,{relative:c}={}){let{matches:n}=f.useContext(M3),{pathname:i}=e6(),u=JSON.stringify(Gu(n));return f.useMemo(()=>Yu(t,JSON.parse(u),i,c==="path"),[t,u,i,c])}function Rp(t,c){return Ju(t,c)}function Ju(t,c,n,i,u){C2(g5(),"useRoutes() may be used only in the context of a component.");let{navigator:h}=f.useContext(X4),{matches:d}=f.useContext(M3),m=d[d.length-1],p=m?m.params:{},x=m?m.pathname:"/",g=m?m.pathnameBase:"/",b=m&&m.route;{let C=b&&b.path||"";th(x,!b||C.endsWith("*")||C.endsWith("*?"),`You rendered descendant (or called \`useRoutes()\`) at "${x}" (under ) but the parent route path has no trailing "*". This means if you navigate deeper, the parent won't match anymore and therefore the child routes will never render. + +Please change the parent to .`)}let y=e6(),M;if(c){let C=typeof c=="string"?q0(c):c;C2(g==="/"||C.pathname?.startsWith(g),`When overriding the location using \`\` or \`useRoutes(routes, location)\`, the location pathname must begin with the portion of the URL pathname that was matched by all parent routes. The current pathname base is "${g}" but pathname "${C.pathname}" was given in the \`location\` prop.`),M=C}else M=y;let H=M.pathname||"/",L=H;if(g!=="/"){let C=g.replace(/^\//,"").split("/");L="/"+H.replace(/^\//,"").split("/").slice(C.length).join("/")}let S=Pu(t,{pathname:L});U4(b||S!=null,`No routes matched location "${M.pathname}${M.search}${M.hash}" `),U4(S==null||S[S.length-1].route.element!==void 0||S[S.length-1].route.Component!==void 0||S[S.length-1].route.lazy!==void 0,`Matched leaf route at location "${M.pathname}${M.search}${M.hash}" does not have an element or Component. This means it will render an with a null value by default resulting in an "empty" page.`);let B=Dp(S&&S.map(C=>Object.assign({},C,{params:Object.assign({},p,C.params),pathname:z3([g,h.encodeLocation?h.encodeLocation(C.pathname.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:C.pathname]),pathnameBase:C.pathnameBase==="/"?g:z3([g,h.encodeLocation?h.encodeLocation(C.pathnameBase.replace(/\?/g,"%3F").replace(/#/g,"%23")).pathname:C.pathnameBase])})),d,n,i,u);return c&&B?f.createElement(p5.Provider,{value:{location:{pathname:"/",search:"",hash:"",state:null,key:"default",...M},navigationType:"POP"}},B):B}function Ep(){let t=$p(),c=Vp(t)?`${t.status} ${t.statusText}`:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,i="rgba(200,200,200, 0.5)",u={padding:"0.5rem",backgroundColor:i},h={padding:"2px 4px",backgroundColor:i},d=null;return console.error("Error handled by React Router default ErrorBoundary:",t),d=f.createElement(f.Fragment,null,f.createElement("p",null,"💿 Hey developer 👋"),f.createElement("p",null,"You can provide a way better UX than this when your app throws errors by providing your own ",f.createElement("code",{style:h},"ErrorBoundary")," or"," ",f.createElement("code",{style:h},"errorElement")," prop on your route.")),f.createElement(f.Fragment,null,f.createElement("h2",null,"Unexpected Application Error!"),f.createElement("h3",{style:{fontStyle:"italic"}},c),n?f.createElement("pre",{style:u},n):null,d)}var Tp=f.createElement(Ep,null),_p=class extends f.Component{constructor(t){super(t),this.state={location:t.location,revalidation:t.revalidation,error:t.error}}static getDerivedStateFromError(t){return{error:t}}static getDerivedStateFromProps(t,c){return c.location!==t.location||c.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:c.error,location:c.location,revalidation:t.revalidation||c.revalidation}}componentDidCatch(t,c){this.props.onError?this.props.onError(t,c):console.error("React Router caught the following error during render",t)}render(){return this.state.error!==void 0?f.createElement(M3.Provider,{value:this.props.routeContext},f.createElement(Ia.Provider,{value:this.state.error,children:this.props.component})):this.props.children}};function qp({routeContext:t,match:c,children:n}){let i=f.useContext(D0);return i&&i.static&&i.staticContext&&(c.route.errorElement||c.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=c.route.id),f.createElement(M3.Provider,{value:t},n)}function Dp(t,c=[],n=null,i=null,u=null){if(t==null){if(!n)return null;if(n.errors)t=n.matches;else if(c.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let h=t,d=n?.errors;if(d!=null){let g=h.findIndex(b=>b.route.id&&d?.[b.route.id]!==void 0);C2(g>=0,`Could not find a matching route for errors on route IDs: ${Object.keys(d).join(",")}`),h=h.slice(0,Math.min(h.length,g+1))}let m=!1,p=-1;if(n)for(let g=0;g=0?h=h.slice(0,p+1):h=[h[0]];break}}}let x=n&&i?(g,b)=>{i(g,{location:n.location,params:n.matches?.[0]?.params??{},errorInfo:b})}:void 0;return h.reduceRight((g,b,y)=>{let M,H=!1,L=null,S=null;n&&(M=d&&b.route.id?d[b.route.id]:void 0,L=b.route.errorElement||Tp,m&&(p<0&&y===0?(th("route-fallback",!1,"No `HydrateFallback` element provided to render during initial hydration"),H=!0,S=null):p===y&&(H=!0,S=b.route.hydrateFallbackElement||null)));let B=c.concat(h.slice(0,y+1)),C=()=>{let w;return M?w=L:H?w=S:b.route.Component?w=f.createElement(b.route.Component,null):b.route.element?w=b.route.element:w=g,f.createElement(qp,{match:b,routeContext:{outlet:g,matches:B,isDataRoute:n!=null},children:w})};return n&&(b.route.ErrorBoundary||b.route.errorElement||y===0)?f.createElement(_p,{location:n.location,revalidation:n.revalidation,component:L,error:M,children:C(),routeContext:{outlet:null,matches:B,isDataRoute:!0},onError:x}):C()},null)}function $a(t){return`${t} must be used within a data router. See https://reactrouter.com/en/main/routers/picking-a-router.`}function Op(t){let c=f.useContext(D0);return C2(c,$a(t)),c}function Up(t){let c=f.useContext(Te);return C2(c,$a(t)),c}function Ip(t){let c=f.useContext(M3);return C2(c,$a(t)),c}function Za(t){let c=Ip(t),n=c.matches[c.matches.length-1];return C2(n.route.id,`${t} can only be used on routes that contain a unique "id"`),n.route.id}function Pp(){return Za("useRouteId")}function $p(){let t=f.useContext(Ia),c=Up("useRouteError"),n=Za("useRouteError");return t!==void 0?t:c.errors?.[n]}function Zp(){let{router:t}=Op("useNavigate"),c=Za("useNavigate"),n=f.useRef(!1);return Wu(()=>{n.current=!0}),f.useCallback(async(u,h={})=>{U4(n.current,Xu),n.current&&(typeof u=="number"?t.navigate(u):await t.navigate(u,{fromRouteId:c,...h}))},[t,c])}var Zs={};function th(t,c,n){!c&&!Zs[t]&&(Zs[t]=!0,U4(!1,n))}f.memo(Gp);function Gp({routes:t,future:c,state:n,unstable_onError:i}){return Ju(t,void 0,n,i,c)}function Y3(t){C2(!1,"A is only ever to be used as the child of element, never rendered directly. Please wrap your in a .")}function Yp({basename:t="/",children:c=null,location:n,navigationType:i="POP",navigator:u,static:h=!1}){C2(!g5(),"You cannot render a inside another . You should never have more than one in your app.");let d=t.replace(/^\/*/,"/"),m=f.useMemo(()=>({basename:d,navigator:u,static:h,future:{}}),[d,u,h]);typeof n=="string"&&(n=q0(n));let{pathname:p="/",search:x="",hash:g="",state:b=null,key:y="default"}=n,M=f.useMemo(()=>{let H=y3(p,d);return H==null?null:{location:{pathname:H,search:x,hash:g,state:b,key:y},navigationType:i}},[d,p,x,g,b,y,i]);return U4(M!=null,` is not able to match the URL "${p}${x}${g}" because it does not start with the basename, so the won't render anything.`),M==null?null:f.createElement(X4.Provider,{value:m},f.createElement(p5.Provider,{children:c,value:M}))}function Kp({children:t,location:c}){return Rp(la(t),c)}function la(t,c=[]){let n=[];return f.Children.forEach(t,(i,u)=>{if(!f.isValidElement(i))return;let h=[...c,u];if(i.type===f.Fragment){n.push.apply(n,la(i.props.children,h));return}C2(i.type===Y3,`[${typeof i.type=="string"?i.type:i.type.name}] is not a component. All component children of must be a or `),C2(!i.props.index||!i.props.children,"An index route cannot have child routes.");let d={id:i.props.id||h.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,middleware:i.props.middleware,loader:i.props.loader,action:i.props.action,hydrateFallbackElement:i.props.hydrateFallbackElement,HydrateFallback:i.props.HydrateFallback,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.hasErrorBoundary===!0||i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(d.children=la(i.props.children,h)),n.push(d)}),n}var re="get",le="application/x-www-form-urlencoded";function _e(t){return t!=null&&typeof t.tagName=="string"}function Qp(t){return _e(t)&&t.tagName.toLowerCase()==="button"}function Xp(t){return _e(t)&&t.tagName.toLowerCase()==="form"}function Wp(t){return _e(t)&&t.tagName.toLowerCase()==="input"}function Jp(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function tg(t,c){return t.button===0&&(!c||c==="_self")&&!Jp(t)}var Et=null;function eg(){if(Et===null)try{new FormData(document.createElement("form"),0),Et=!1}catch{Et=!0}return Et}var cg=new Set(["application/x-www-form-urlencoded","multipart/form-data","text/plain"]);function yc(t){return t!=null&&!cg.has(t)?(U4(!1,`"${t}" is not a valid \`encType\` for \`
\`/\`\` and will default to "${le}"`),null):t}function ag(t,c){let n,i,u,h,d;if(Xp(t)){let m=t.getAttribute("action");i=m?y3(m,c):null,n=t.getAttribute("method")||re,u=yc(t.getAttribute("enctype"))||le,h=new FormData(t)}else if(Qp(t)||Wp(t)&&(t.type==="submit"||t.type==="image")){let m=t.form;if(m==null)throw new Error('Cannot submit a