vendor: 8,519 bytes, lines 1-17
1function xl(e,t){for(var n=0;n<t.length;n++){const r=t[n];if(typeof r!="string"&&!Array.isArray(r)){for(const i in r)if(i!=="default"&&!(i in e)){const o=Object.getOwnPropertyDescriptor(r,i);o&&Object.defineProperty(e,i,o.get?o:{enumerable:!0,get:()=>r[i]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const o of i)if(o.type==="childList")for(const s of o.addedNodes)s.tagName==="LINK"&&s.rel==="modulepreload"&&r(s)}).observe(document,{childList:!0,subtree:!0});function n(i){const o={};return i.integrity&&(o.integrity=i.integrity),i.referrerPolicy&&(o.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?o.credentials="include":i.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(i){if(i.ep)return;i.ep=!0;const o=n(i);fetch(i.href,o)}})();function Yt(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var jr={exports:{}},on={};/** 2 * @license React 3 * react-jsx-runtime.production.js 4 * 5 * Copyright (c) Meta Platforms, Inc. and affiliates. 6 * 7 * This source code is licensed under the MIT license found in the 8 * LICENSE file in the root directory of this source tree. 9 */var Hs;function dh(){if(Hs)return on;Hs=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.fragment");function n(r,i,o){var s=null;if(o!==void 0&&(s=""+o),i.key!==void 0&&(s=""+i.key),"key"in i){o={};for(var a in i)a!=="key"&&(o[a]=i[a])}else o=i;return i=o.ref,{$$typeof:e,type:r,key:s,ref:i!==void 0?i:null,props:o}}return on.Fragment=t,on.jsx=n,on.jsxs=n,on}var $s;function fh(){return $s||($s=1,jr.exports=dh()),jr.exports}var y=fh(),Or={exports:{}},te={};/** 10 * @license React 11 * react.production.js 12 * 13 * Copyright (c) Meta Platforms, Inc. and affiliates. 14 * 15 * This source code is licensed under the MIT license found in the 16 * LICENSE file in the root directory of this source tree. 17 */var Ws;function ph(){if(Ws)return te;Ws=1;var e=Symbol.for("react.transitional.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),r=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),s=Symbol.for("react.context"),a=Symbol.for("react.forward_ref"),l=Symbol.for("react.suspense"),c=Symbol.for("react.memo"),u=Symbol.for("react.lazy"),h=Symbol.for("react.activity"),d=Symbol.iterator;function f(T){return T===null||typeof T!="object"?null:(T=d&&T[d]||T["@@iterator"],typeof T=="function"?T:null)}var p={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,g={};function v(T,D,K){this.props=T,this.context=D,this.refs=g,this.updater=K||p}v.prototype.isReactComponent={},v.prototype.setState=function(T,D){if(typeof T!="object"&&typeof T!="function"&&T!=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,T,D,"setState")},v.prototype.forceUpdate=function(T){this.updater.enqueueForceUpdate(this,T,"forceUpdate")};function C(){}C.prototype=v.prototype;function S(T,D,K){this.props=T,this.context=D,this.refs=g,this.updater=K||p}var R=S.prototype=new C;R.constructor=S,m(R,v.prototype),R.isPureReactComponent=!0;var P=Array.isArray;function j(){}var b={H:null,A:null,T:null,S:null},M=Object.prototype.hasOwnProperty;function O(T,D,K){var X=K.ref;return{$$typeof:e,type:T,key:D,ref:X!==void 0?X:null,props:K}}function _(T,D){return O(T.type,D,T.props)}function V(T){return typeof T=="object"&&T!==null&&T.$$typeof===e}function N(T){var D={"=":"=0",":":"=2"};return"$"+T.replace(/[=:]/g,function(K){return D[K]})}var W=/\/+/g;function k(T,D){return typeof T=="object"&&T!==null&&T.key!=null?N(""+T.key):D.toString(36)}function H(T){switch(T.status){case"fulfilled":return T.value;case"rejected":throw T.reason;default:switch(typeof T.status=="string"?T.then(j,j):(T.status="pending",T.then(function(D){T.status==="pending"&&(T.status="fulfilled",T.value=D)},function(D){T.status==="pending"&&(T.status="rejected",T.reason=D)})),T.status){case"fulfilled":return T.value;case"rejected":throw T.reason}}throw T}function re(T,D,K,X,J){var Y=typeof T;(Y==="undefined"||Y==="boolean")&&(T=null);var ee=!1;if(T===null)ee=!0;else switch(Y){case"bigint":case"string":case"number":ee=!0;break;case"object":switch(T.$$typeof){case e:case t:ee=!0;break;case u:return ee=T._init,re(ee(T._payload),D,K,X,J)}}if(ee)return J=J(T),ee=X===""?"."+k(T,0):X,P(J)?(K="",ee!=null&&(K=ee.replace(W,"$&/")+"/"),re(J,D,K,"",function(Qe){return Qe})):J!=null&&(V(J)&&(J=_(J,K+(J.key==null||T&&T.key===J.key?"":(""+J.key).replace(W,"$&/")+"/")+ee)),D.push(J)),1;ee=0;var xe=X===""?".":X+":";if(P(T))for(var he=0;he<T.length;he++)X=T[he],Y=xe+k(X,he),ee+=re(X,D,K,Y,J);else if(he=f(T),typeof he=="function")for(T=he.call(T),he=0;!(X=T.next()).done;)X=X.value,Y=xe+k(X,he++),ee+=re(X,D,K,Y,J);else if(Y==="object"){if(typeof T.then=="function")return re(H(T),D,K,X,J);throw D=String(T),Error("Objects are not valid as a React child (found: "+(D==="[object Object]"?"object with keys {"+Object.keys(T).join(", ")+"}":D)+"). If you meant to render a collection of children, use an array instead.")}return ee}function me(T,D,K){if(T==null)return T;var X=[],J=0;return re(T,X,"","",function(Y){return D.call(K,Y,J++)}),X}function G(T){if(T._status===-1){var D=T._result;D=D(),D.then(function(K){(T._status===0||T._status===-1)&&(T._status=1,T._result=K)},function(K){(T._status===0||T._status===-1)&&(T._status=2,T._result=K)}),T._status===-1&&(T._status=0,T._result=D)}if(T._status===1)return T._result.default;throw T._result}var ue=typeof reportError=="function"?reportError:function(T){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var D=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof T=="object"&&T!==null&&typeof T.message=="string"?String(T.message):String(T),error:T});if(!window.dispatchEvent(D))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",T);return}console.error(T)},ye={map:me,forEach:function(T,D,K){me(T,function(){D.apply(this,arguments)},K)},count:function(T){var D=0;return me(T,function(){D++}),D},toArray:function(T){return me(T,function(D){return D})||[]},only:function(T){if(!V(T))throw Error("React.Children.only expected to receive a single React element child.");return T}};return te.Activity=h,te.Children=ye,te.Component=v,te.Fragment=n,te.Profiler=i,te.PureComponent=S,te.StrictMode=r,te.Suspense=l,te.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=b,te.__COMPILER_RUNTIME={__proto__:null,c:function(T){return b.H.useMemoCache(T)}},te.cache=function(T){return function(){return T.apply(null,arguments)}},te.cacheSignal=function(){return null},te.cloneElement=function(T,D,K){if(T==null)throw Error("The argument must be a React element, but you passed "+T+".");var X=m({},T.props),J=T.key;if(D!=null)for(Y in D.key!==void 0&&(J=""+D.key),D)!M.call(D,Y)||Y==="key"||Y==="__self"||Y==="__source"||Y==="ref"&&D.ref===void 0||(X[Y]=D[Y]);var Y=arguments.length-2;if(Y===1)X.children=K;else if(1<Y){for(var ee=Array(Y),xe=0;xe<Y;xe++)ee[xe]=arguments[xe+2];X.children=ee}return O(T.type,J,X)},te.createContext=function(T){return T={$$typeof:s,_currentValue:T,_currentValue2:T,_threadCount:0,Provider:null,Consumer:null},T.Provider=T,T.Consumer={$$typeof:o,_context:T},T},te.createElement=function(T,D,K){var X,J={},Y=null;if(D!=null)for(X in D.key!==void 0&&(Y=""+D.key),D)M.call(D,X)&&X!=="key"&&X!=="__self"&&X!=="__source"&&(J[X]=D[X]);var ee=arguments.length-2;if(ee===1)J.children=K;else if(1<ee){for(var xe=Array(ee),he=0;he<ee;he++)xe[he]=arguments[he+2];J.children=xe}if(T&&T.defaultProps)for(X in ee=T.defaultProps,ee)J[X]===void 0&&(J[X]=ee[X]);return O(T,Y,J)},te.createRef=function(){return{current:null}},te.forwardRef=function(T){return{$$typeof:a,render:T}},te.isValidElement=V,te.lazy=function(T){return{$$typeof:u,_payload:{_status:-1,_result:T},_init:G}},te.memo=function(T,D){return{$$typeof:c,type:T,compare:D===void 0?null:D}},te.startTransition=function(T){var D=b.T,K={};b.T=K;try{var X=T(),J=b.S;J!==null&&J(K,X),typeof X=="object"&&X!==null&&typeof X.then=="function"&&X.then(j,ue)}catch(Y){ue(Y)}
17finally{D!==null&&K.types!==null&&(D.types=K.types),b.T=D}},te.unstable_useCacheRefresh=function(){return b.H.useCacheRefresh()},te.use=function(T){return b.H.use(T)},te.useActionState=function(T,D,K){return b.H.useActionState(T,D,K)},te.useCallback=function(T,D){return b.H.useCallback(T,D)},te.useContext=function(T){return b.H.useContext(T)},te.useDebugValue=function(){},te.useDeferredValue=function(T,D){return b.H.useDeferredValue(T,D)},te.useEffect=function(T,D){return b.H.useEffect(T,D)},te.useEffectEvent=function(T){return b.H.useEffectEvent(T)},te.useId=function(){return b.H.useId()},te.useImperativeHandle=function(T,D,K){return b.H.useImperativeHandle(T,D,K)},te.useInsertionEffect=function(T,D){return b.H.useInsertionEffect(T,D)},te.useLayoutEffect=function(T,D){return b.H.useLayoutEffect(T,D)},te.useMemo=function(T,D){return b.H.useMemo(T,D)},te.useOptimistic=function(T,D){return b.H.useOptimistic(T,D)},te.useReducer=function(T,D,K){return b.H.useReducer(T,D,K)},te.useRef=function(T){return b.H.useRef(T)},te.useState=function(T){return b.H.useState(T)},te.useSyncExternalStore=function(T,D,K){return b.H.useSyncExternalStore(T,D,K)},te.useTransition=function(){return b.H.useTransition()},te.version="19.2.5",te}var Gs;function bl(){return Gs||(Gs=1,Or.exports=ph()),Or.exports}var w=bl();const Ee=Yt(w),mh=xl({__proto__:null,default:Ee},[w]);var kr={exports:{}},Ir,qs;function gh(){if(qs)return Ir;qs=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return Ir=e,Ir}var Vr,Ys;function yh(){if(Ys)return Vr;Ys=1;var e=gh();function t(){}function n(){}return n.resetWarningCache=t,Vr=function(){function r(s,a,l,c,u,h){if(h!==e){var d=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw d.name="Invariant Violation",d}}r.isRequired=r;function i(){return r}var o={array:r,bigint:r,bool:r,func:r,number:r,object:r,string:r,symbol:r,any:r,arrayOf:i,element:r,elementType:r,instanceOf:i,node:r,objectOf:i,oneOf:i,oneOfType:i,shape:i,exact:i,checkPropTypes:n,resetWarningCache:t};return o.PropTypes=o,o},Vr}var Ks;function vh(){return Ks||(Ks=1,kr.exports=yh()()),kr.exports}var xh=vh();const se=Yt(xh);var Nr,Xs;function bh(){if(Xs)return Nr;Xs=1;var e=typeof Element<"u",t=typeof Map=="function",n=typeof Set=="function",r=typeof ArrayBuffer=="function"&&!!ArrayBuffer.isView;function i(o,s){if(o===s)return!0;if(o&&s&&typeof o=="object"&&typeof s=="object"){if(o.constructor!==s.constructor)return!1;var a,l,c;if(Array.isArray(o)){if(a=o.length,a!=s.length)return!1;for(l=a;l--!==0;)if(!i(o[l],s[l]))return!1;return!0}var u;if(t&&o instanceof Map&&s instanceof Map){if(o.size!==s.size)return!1;for(u=o.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;for(u=o.entries();!(l=u.next()).done;)if(!i(l.value[1],s.get(l.value[0])))return!1;return!0}if(n&&o instanceof Set&&s instanceof Set){if(o.size!==s.size)return!1;for(u=o.entries();!(l=u.next()).done;)if(!s.has(l.value[0]))return!1;return!0}if(r&&ArrayBuffer.isView(o)&&ArrayBuffer.isView(s)){if(a=o.length,a!=s.length)return!1;for(l=a;l--!==0;)if(o[l]!==s[l])return!1;return!0}if(o.constructor===RegExp)return o.source===s.source&&o.flags===s.flags;if(o.valueOf!==Object.prototype.valueOf&&typeof o.valueOf=="function"&&typeof s.valueOf=="function")return o.valueOf()===s.valueOf();if(o.toString!==Object.prototype.toString&&typeof o.toString=="function"&&typeof s.toString=="function")return o.toString()===s.toString();if(c=Object.keys(o),a=c.length,a!==Object.keys(s).length)return!1;for(l=a;l--!==0;)if(!Object.prototype.hasOwnProperty.call(s,c[l]))return!1;if(e&&o instanceof Element)return!1;for(l=a;l--!==0;)if(!((c[l]==="_owner"||c[l]==="__v"||c[l]==="__o")&&o.$$typeof)&&!i(o[c[l]],s[c[l]]))return!1;return!0}return o!==o&&s!==s}return Nr=function(s,a){try{return i(s,a)}catch(l){if((l.message||"").match(/stack|recursion/i))return console.warn("react-fast-compare cannot handle circular refs"),!1;throw l}},Nr}var wh=bh();const Th=Yt(wh);var Fr,Zs;function Sh(){if(Zs)return Fr;Zs=1;var e=function(t,n,r,i,o,s,a,l){if(!t){var c;if(n===void 0)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var u=[r,i,o,s,a,l],h=0;c=new Error(n.replace(/%s/g,function(){return u[h++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}};return Fr=e,Fr}var Eh=Sh();const Js=Yt(Eh);var Br,Qs;function Ch(){return Qs||(Qs=1,Br=function(t,n,r,i){var o=r?r.call(i,t,n):void 0;if(o!==void 0)return!!o;if(t===n)return!0;
17if(typeof t!="object"||!t||typeof n!="object"||!n)return!1;var s=Object.keys(t),a=Object.keys(n);if(s.length!==a.length)return!1;for(var l=Object.prototype.hasOwnProperty.bind(n),c=0;c<s.length;c++){var u=s[c];if(!l(u))return!1;var h=t[u],d=n[u];if(o=r?r.call(i,h,d,u):void 0,o===!1||o===void 0&&h!==d)return!1}return!0}),Br}var Rh=Ch();const Ah=Yt(Rh);function Se(){return Se=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Se.apply(this,arguments)}function Yi(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,gi(e,t)}function gi(e,t){return gi=Object.setPrototypeOf||function(n,r){return n.__proto__=r,n},gi(e,t)}function eo(e,t){if(e==null)return{};var n,r,i={},o=Object.keys(e);for(r=0;r<o.length;r++)t.indexOf(n=o[r])>=0||(i[n]=e[n]);return i}var Z={BASE:"base",BODY:"body",HEAD:"head",HTML:"html",LINK:"link",META:"meta",NOSCRIPT:"noscript",SCRIPT:"script",STYLE:"style",TITLE:"title",FRAGMENT:"Symbol(react.fragment)"},Ph={rel:["amphtml","canonical","alternate"]},Mh={type:["application/ld+json"]},_h={charset:"",name:["robots","description"],property:["og:type","og:title","og:url","og:image","og:image:alt","og:description","twitter:url","twitter:title","twitter:description","twitter:image","twitter:image:alt","twitter:card","twitter:site"]},to=Object.keys(Z).map(function(e){return Z[e]}),rr={accesskey:"accessKey",charset:"charSet",class:"className",contenteditable:"contentEditable",contextmenu:"contextMenu","http-equiv":"httpEquiv",itemprop:"itemProp",tabindex:"tabIndex"},Dh=Object.keys(rr).reduce(function(e,t){return e[rr[t]]=t,e},{}),$t=function(e,t){for(var n=e.length-1;n>=0;n-=1){var r=e[n];if(Object.prototype.hasOwnProperty.call(r,t))return r[t]}return null},Lh=function(e){var t=$t(e,Z.TITLE),n=$t(e,"titleTemplate");if(Array.isArray(t)&&(t=t.join("")),n&&t)return n.replace(/%s/g,function(){return t});var r=$t(e,"defaultTitle");return t||r||void 0},jh=function(e){return $t(e,"onChangeClientState")||function(){}},zr=function(e,t){return t.filter(function(n){return n[e]!==void 0}).map(function(n){return n[e]}).reduce(function(n,r){return Se({},n,r)},{})},Oh=function(e,t){return t.filter(function(n){return n[Z.BASE]!==void 0}).map(function(n){return n[Z.BASE]}).reverse().reduce(function(n,r){if(!n.length)for(var i=Object.keys(r),o=0;o<i.length;o+=1){var s=i[o].toLowerCase();if(e.indexOf(s)!==-1&&r[s])return n.concat(r)}return n},[])},an=function(e,t,n){var r={};return n.filter(function(i){return!!Array.isArray(i[e])||(i[e]!==void 0&&console&&typeof console.warn=="function"&&console.warn("Helmet: "+e+' should be of type "Array". Instead found type "'+typeof i[e]+'"'),!1)}).map(function(i){return i[e]}).reverse().reduce(function(i,o){var s={};o.filter(function(h){for(var d,f=Object.keys(h),p=0;p<f.length;p+=1){var m=f[p],g=m.toLowerCase();t.indexOf(g)===-1||d==="rel"&&h[d].toLowerCase()==="canonical"||g==="rel"&&h[g].toLowerCase()==="stylesheet"||(d=g),t.indexOf(m)===-1||m!=="innerHTML"&&m!=="cssText"&&m!=="itemprop"||(d=m)}if(!d||!h[d])return!1;var v=h[d].toLowerCase();return r[d]||(r[d]={}),s[d]||(s[d]={}),!r[d][v]&&(s[d][v]=!0,!0)}).reverse().forEach(function(h){return i.push(h)});for(var a=Object.keys(s),l=0;l<a.length;l+=1){var c=a[l],u=Se({},r[c],s[c]);r[c]=u}return i},[]).reverse()},kh=function(e,t){if(Array.isArray(e)&&e.length){for(var n=0;n<e.length;n+=1)if(e[n][t])return!0}return!1},wl=function(e){return Array.isArray(e)?e.join(""):e},Ur=function(e,t){return Array.isArray(e)?e.reduce(function(n,r){return(function(i,o){for(var s=Object.keys(i),a=0;a<s.length;a+=1)if(o[s[a]]&&o[s[a]].includes(i[s[a]]))return!0;return!1})(r,t)?n.priority.push(r):n.default.push(r),n},{priority:[],default:[]}):{default:e}},no=function(e,t){var n;return Se({},e,((n={})[t]=void 0,n))},Ih=[Z.NOSCRIPT,Z.SCRIPT,Z.STYLE],Hr=function(e,t){return t===void 0&&(t=!0),t===!1?String(e):String(e).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")},ro=function(e){return Object.keys(e).reduce(function(t,n){var r=e[n]!==void 0?n+'="'+e[n]+'"':""+n;return t?t+" "+r:r},"")},io=function(e,t){return t===void 0&&(t={}),Object.keys(e).reduce(function(n,r){return n[rr[r]||r]=e[r],n},t)},Wn=function(e,t){return t.map(function(n,r){var i,o=((i={key:r})["data-rh"]=!0,i);
17return Object.keys(n).forEach(function(s){var a=rr[s]||s;a==="innerHTML"||a==="cssText"?o.dangerouslySetInnerHTML={__html:n.innerHTML||n.cssText}:o[a]=n[s]}),Ee.createElement(e,o)})},Be=function(e,t,n){switch(e){case Z.TITLE:return{toComponent:function(){return i=t.titleAttributes,(o={key:r=t.title})["data-rh"]=!0,s=io(i,o),[Ee.createElement(Z.TITLE,s,r)];var r,i,o,s},toString:function(){return(function(r,i,o,s){var a=ro(o),l=wl(i);return a?"<"+r+' data-rh="true" '+a+">"+Hr(l,s)+"</"+r+">":"<"+r+' data-rh="true">'+Hr(l,s)+"</"+r+">"})(e,t.title,t.titleAttributes,n)}};case"bodyAttributes":case"htmlAttributes":return{toComponent:function(){return io(t)},toString:function(){return ro(t)}};default:return{toComponent:function(){return Wn(e,t)},toString:function(){return(function(r,i,o){return i.reduce(function(s,a){var l=Object.keys(a).filter(function(h){return!(h==="innerHTML"||h==="cssText")}).reduce(function(h,d){var f=a[d]===void 0?d:d+'="'+Hr(a[d],o)+'"';return h?h+" "+f:f},""),c=a.innerHTML||a.cssText||"",u=Ih.indexOf(r)===-1;return s+"<"+r+' data-rh="true" '+l+(u?"/>":">"+c+"</"+r+">")},"")})(e,t,n)}}}},yi=function(e){var t=e.baseTag,n=e.bodyAttributes,r=e.encode,i=e.htmlAttributes,o=e.noscriptTags,s=e.styleTags,a=e.title,l=a===void 0?"":a,c=e.titleAttributes,u=e.linkTags,h=e.metaTags,d=e.scriptTags,f={toComponent:function(){},toString:function(){return""}};if(e.prioritizeSeoTags){var p=(function(m){var g=m.linkTags,v=m.scriptTags,C=m.encode,S=Ur(m.metaTags,_h),R=Ur(g,Ph),P=Ur(v,Mh);return{priorityMethods:{toComponent:function(){return[].concat(Wn(Z.META,S.priority),Wn(Z.LINK,R.priority),Wn(Z.SCRIPT,P.priority))},toString:function(){return Be(Z.META,S.priority,C)+" "+Be(Z.LINK,R.priority,C)+" "+Be(Z.SCRIPT,P.priority,C)}},metaTags:S.default,linkTags:R.default,scriptTags:P.default}})(e);f=p.priorityMethods,u=p.linkTags,h=p.metaTags,d=p.scriptTags}return{priority:f,base:Be(Z.BASE,t,r),bodyAttributes:Be("bodyAttributes",n,r),htmlAttributes:Be("htmlAttributes",i,r),link:Be(Z.LINK,u,r),meta:Be(Z.META,h,r),noscript:Be(Z.NOSCRIPT,o,r),script:Be(Z.SCRIPT,d,r),style:Be(Z.STYLE,s,r),title:Be(Z.TITLE,{title:l,titleAttributes:c},r)}},Nn=[],vi=function(e,t){var n=this;t===void 0&&(t=typeof document<"u"),this.instances=[],this.value={setHelmet:function(r){n.context.helmet=r},helmetInstances:{get:function(){return n.canUseDOM?Nn:n.instances},add:function(r){(n.canUseDOM?Nn:n.instances).push(r)},remove:function(r){var i=(n.canUseDOM?Nn:n.instances).indexOf(r);(n.canUseDOM?Nn:n.instances).splice(i,1)}}},this.context=e,this.canUseDOM=t,t||(e.helmet=yi({baseTag:[],bodyAttributes:{},htmlAttributes:{},linkTags:[],metaTags:[],noscriptTags:[],scriptTags:[],styleTags:[],title:"",titleAttributes:{}}))},Tl=Ee.createContext({}),Vh=se.shape({setHelmet:se.func,helmetInstances:se.shape({get:se.func,add:se.func,remove:se.func})}),Nh=typeof document<"u",Bt=(function(e){function t(n){var r;return(r=e.call(this,n)||this).helmetData=new vi(r.props.context,t.canUseDOM),r}return Yi(t,e),t.prototype.render=function(){return Ee.createElement(Tl.Provider,{value:this.helmetData.value},this.props.children)},t})(w.Component);Bt.canUseDOM=Nh,Bt.propTypes={context:se.shape({helmet:se.shape()}),children:se.node.isRequired},Bt.defaultProps={context:{}},Bt.displayName="HelmetProvider";var Vt=function(e,t){var n,r=document.head||document.querySelector(Z.HEAD),i=r.querySelectorAll(e+"[data-rh]"),o=[].slice.call(i),s=[];return t&&t.length&&t.forEach(function(a){var l=document.createElement(e);for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(c==="innerHTML"?l.innerHTML=a.innerHTML:c==="cssText"?l.styleSheet?l.styleSheet.cssText=a.cssText:l.appendChild(document.createTextNode(a.cssText)):l.setAttribute(c,a[c]===void 0?"":a[c]));l.setAttribute("data-rh","true"),o.some(function(u,h){return n=h,l.isEqualNode(u)})?o.splice(n,1):s.push(l)}),o.forEach(function(a){return a.parentNode.removeChild(a)}),s.forEach(function(a){return r.appendChild(a)}),{oldTags:o,newTags:s}},$r=function(e,t){var n=document.getElementsByTagName(e)[0];if(n){for(var r=n.getAttribute("data-rh"),i=r?r.split(","):[],o=[].concat(i),s=Object.keys(t),a=0;a<s.length;a+=1){var l=s[a],c=t[l]||"";n.getAttribute(l)!==c&&n.setAttribute(l,c),i.indexOf(l)===-1&&i.push(l);var u=o.indexOf(l);u!==-1&&o.splice(u,1)}for(var h=o.length-1;h>=0;h-=1)n.removeAttribute(o[h]);i.length===o.length?n.removeAttribute("data-rh"):n.getAttribute("data-rh")!==s.join(",")&&n.setAttribute("data-rh",s.join(","))}},so=function(e,t){var n=e.baseTag,r=e.htmlAttributes,i=e.linkTags,o=e.metaTags,s=e.noscriptTags,a=e.onChangeClientState,l=e.scriptTags,c=e.styleTags,u=e.title,h=e.titleAttributes;$r(Z.BODY,e.bodyAttributes),$r(Z.HTML,r),(function(m,g){m!==void 0&&document.title!==m&&(document.title=wl(m)),$r(Z.TITLE,g)})(u,h);var d={baseTag:Vt(Z.BASE,n),linkTags:Vt(Z.LINK,i),metaTags:Vt(Z.META,o),noscriptTags:Vt(Z.NOSCRIPT,s),scriptTags:Vt(Z.SCRIPT,l),styleTags:Vt(Z.STYLE,c)},f={},p={};
17Object.keys(d).forEach(function(m){var g=d[m],v=g.newTags,C=g.oldTags;v.length&&(f[m]=v),C.length&&(p[m]=d[m].oldTags)}),t&&t(),a(e,f,p)},ln=null,ir=(function(e){function t(){for(var r,i=arguments.length,o=new Array(i),s=0;s<i;s++)o[s]=arguments[s];return(r=e.call.apply(e,[this].concat(o))||this).rendered=!1,r}Yi(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(r){return!Ah(r,this.props)},n.componentDidUpdate=function(){this.emitChange()},n.componentWillUnmount=function(){this.props.context.helmetInstances.remove(this),this.emitChange()},n.emitChange=function(){var r,i,o=this.props.context,s=o.setHelmet,a=null,l=(r=o.helmetInstances.get().map(function(c){var u=Se({},c.props);return delete u.context,u}),{baseTag:Oh(["href"],r),bodyAttributes:zr("bodyAttributes",r),defer:$t(r,"defer"),encode:$t(r,"encodeSpecialCharacters"),htmlAttributes:zr("htmlAttributes",r),linkTags:an(Z.LINK,["rel","href"],r),metaTags:an(Z.META,["name","charset","http-equiv","property","itemprop"],r),noscriptTags:an(Z.NOSCRIPT,["innerHTML"],r),onChangeClientState:jh(r),scriptTags:an(Z.SCRIPT,["src","innerHTML"],r),styleTags:an(Z.STYLE,["cssText"],r),title:Lh(r),titleAttributes:zr("titleAttributes",r),prioritizeSeoTags:kh(r,"prioritizeSeoTags")});Bt.canUseDOM?(i=l,ln&&cancelAnimationFrame(ln),i.defer?ln=requestAnimationFrame(function(){so(i,function(){ln=null})}):(so(i),ln=null)):yi&&(a=yi(l)),s(a)},n.init=function(){this.rendered||(this.rendered=!0,this.props.context.helmetInstances.add(this),this.emitChange())},n.render=function(){return this.init(),null},t})(w.Component);ir.propTypes={context:Vh.isRequired},ir.displayName="HelmetDispatcher";var Fh=["children"],Bh=["children"],Gn=(function(e){function t(){return e.apply(this,arguments)||this}Yi(t,e);var n=t.prototype;return n.shouldComponentUpdate=function(r){return!Th(no(this.props,"helmetData"),no(r,"helmetData"))},n.mapNestedChildrenToProps=function(r,i){if(!i)return null;switch(r.type){case Z.SCRIPT:case Z.NOSCRIPT:return{innerHTML:i};case Z.STYLE:return{cssText:i};default:throw new Error("<"+r.type+" /> elements are self-closing and can not contain children. Refer to our API for more information.")}},n.flattenArrayTypeChildren=function(r){var i,o=r.child,s=r.arrayTypeChildren;return Se({},s,((i={})[o.type]=[].concat(s[o.type]||[],[Se({},r.newChildProps,this.mapNestedChildrenToProps(o,r.nestedChildren))]),i))},n.mapObjectTypeChildren=function(r){var i,o,s=r.child,a=r.newProps,l=r.newChildProps,c=r.nestedChildren;switch(s.type){case Z.TITLE:return Se({},a,((i={})[s.type]=c,i.titleAttributes=Se({},l),i));case Z.BODY:return Se({},a,{bodyAttributes:Se({},l)});case Z.HTML:return Se({},a,{htmlAttributes:Se({},l)});default:return Se({},a,((o={})[s.type]=Se({},l),o))}},n.mapArrayTypeChildrenToProps=function(r,i){var o=Se({},i);return Object.keys(r).forEach(function(s){var a;o=Se({},o,((a={})[s]=r[s],a))}),o}
17,n.warnOnInvalidChildren=function(r,i){return Js(to.some(function(o){return r.type===o}),typeof r.type=="function"?"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.":"Only elements types "+to.join(", ")+" are allowed. Helmet does not support rendering <"+r.type+"> elements. Refer to our API for more information."),Js(!i||typeof i=="string"||Array.isArray(i)&&!i.some(function(o){return typeof o!="string"}),"Helmet expects a string as a child of <"+r.type+">. Did you forget to wrap your children in braces? ( <"+r.type+">{``}</"+r.type+"> ) Refer to our API for more information."),!0},n.mapChildrenToProps=function(r,i){var o=this,s={};return Ee.Children.forEach(r,function(a){if(a&&a.props){var l=a.props,c=l.children,u=eo(l,Fh),h=Object.keys(u).reduce(function(f,p){return f[Dh[p]||p]=u[p],f},{}),d=a.type;switch(typeof d=="symbol"?d=d.toString():o.warnOnInvalidChildren(a,c),d){case Z.FRAGMENT:i=o.mapChildrenToProps(c,i);break;case Z.LINK:case Z.META:case Z.NOSCRIPT:case Z.SCRIPT:case Z.STYLE:s=o.flattenArrayTypeChildren({child:a,arrayTypeChildren:s,newChildProps:h,nestedChildren:c});break;default:i=o.mapObjectTypeChildren({child:a,newProps:i,newChildProps:h,nestedChildren:c})}}}),this.mapArrayTypeChildrenToProps(s,i)},n.render=function(){var r=this.props,i=r.children,o=eo(r,Bh),s=Se({},o),a=o.helmetData;return i&&(s=this.mapChildrenToProps(i,s)),!a||a instanceof vi||(a=new vi(a.context,a.instances)),a?Ee.createElement(ir,Se({},s,{context:a.value,helmetData:void 0})):Ee.createElement(Tl.Consumer,null,function(l){return Ee.createElement(ir,Se({},s,{context:l}))})},t})(w.Component);Gn.propTypes={base:se.object,bodyAttributes:se.object,children:se.oneOfType([se.arrayOf(se.node),se.node]),defaultTitle:se.string,defer:se.bool,encodeSpecialCharacters:se.bool,htmlAttributes:se.object,link:se.arrayOf(se.object),meta:se.arrayOf(se.object),noscript:se.arrayOf(se.object),onChangeClientState:se.func,script:se.arrayOf(se.object),style:se.arrayOf(se.object),title:se.string,titleAttributes:se.object,titleTemplate:se.string,prioritizeSeoTags:se.bool,helmetData:se.object},Gn.defaultProps={defer:!0,encodeSpecialCharacters:!0,prioritizeSeoTags:!1},Gn.displayName="Helmet";var Wr={exports:{}},je={};/** 18 * @license React 19 * react-dom.production.js 20 * 21 * Copyright (c) Meta Platforms, Inc. and affiliates. 22 * 23 * This source code is licensed under the MIT license found in the 24 * LICENSE file in the root directory of this source tree. 25 */var oo;function zh(){if(oo)return je;oo=1;var e=bl();function t(l){var c="https://react.dev/errors/"+l;if(1<arguments.length){c+="?args[]="+encodeURIComponent(arguments[1]);for(var u=2;u<arguments.length;u++)c+="&args[]="+encodeURIComponent(arguments[u])}return"Minified React error #"+l+"; visit "+c+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}function n(){}var r={d:{f:n,r:function(){throw Error(t(522))},D:n,C:n,L:n,m:n,X:n,S:n,M:n},p:0,findDOMNode:null},i=Symbol.for("react.portal");function o(l,c,u){var h=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:i,key:h==null?null:""+h,children:l,containerInfo:c,implementation:u}}var s=e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;function a(l,c){if(l==="font")return"";if(typeof c=="string")return c==="use-credentials"?c:""}return je.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=r,je.createPortal=function(l,c){var u=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!c||c.nodeType!==1&&c.nodeType!==9&&c.nodeType!==11)throw Error(t(299));return o(l,c,null,u)},je.flushSync=function(l){var c=s.T,u=r.p;try{if(s.T=null,r.p=2,l)return l()}finally{s.T=c,r.p=u,r.d.f()}},je.preconnect=function(l,c){typeof l=="string"&&(c?(c=c.crossOrigin,c=typeof c=="string"?c==="use-credentials"?c:"":void 0):c=null,r.d.C(l,c))},je.prefetchDNS=function(l){typeof l=="string"&&r.d.D(l)},je.preinit=function(l,c){if(typeof l=="string"&&c&&typeof c.as=="string"){var u=c.as,h=a(u,c.crossOrigin),d=typeof c.integrity=="string"?c.integrity:void 0,f=typeof c.fetchPriority=="string"?c.fetchPriority:void 0;u==="style"?r.d.S(l,typeof c.precedence=="string"?c.precedence:void 0,{crossOrigin:h,integrity:d,fetchPriority:f}):u==="script"&&r.d.X(l,{crossOrigin:h,integrity:d,fetchPriority:f,nonce:typeof c.nonce=="string"?c.nonce:void 0})}}
25,je.preinitModule=function(l,c){if(typeof l=="string")if(typeof c=="object"&&c!==null){if(c.as==null||c.as==="script"){var u=a(c.as,c.crossOrigin);r.d.M(l,{crossOrigin:u,integrity:typeof c.integrity=="string"?c.integrity:void 0,nonce:typeof c.nonce=="string"?c.nonce:void 0})}}else c==null&&r.d.M(l)},je.preload=function(l,c){if(typeof l=="string"&&typeof c=="object"&&c!==null&&typeof c.as=="string"){var u=c.as,h=a(u,c.crossOrigin);r.d.L(l,u,{crossOrigin:h,integrity:typeof c.integrity=="string"?c.integrity:void 0,nonce:typeof c.nonce=="string"?c.nonce:void 0,type:typeof c.type=="string"?c.type:void 0,fetchPriority:typeof c.fetchPriority=="string"?c.fetchPriority:void 0,referrerPolicy:typeof c.referrerPolicy=="string"?c.referrerPolicy:void 0,imageSrcSet:typeof c.imageSrcSet=="string"?c.imageSrcSet:void 0,imageSizes:typeof c.imageSizes=="string"?c.imageSizes:void 0,media:typeof c.media=="string"?c.media:void 0})}},je.preloadModule=function(l,c){if(typeof l=="string")if(c){var u=a(c.as,c.crossOrigin);r.d.m(l,{as:typeof c.as=="string"&&c.as!=="script"?c.as:void 0,crossOrigin:u,integrity:typeof c.integrity=="string"?c.integrity:void 0})}else r.d.m(l)},je.requestFormReset=function(l){r.d.r(l)},je.unstable_batchedUpdates=function(l,c){return l(c)},je.useFormState=function(l,c,u){return s.H.useFormState(l,c,u)},je.useFormStatus=function(){return s.H.useHostTransitionStatus()},je.version="19.2.5",je}var ao;function Uh(){if(ao)return Wr.exports;ao=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Wr.exports=zh(),Wr.exports}var Sl=Uh();const Hh=Yt(Sl),El=xl({__proto__:null,default:Hh},[Sl]);/** 26 * @remix-run/router v1.23.3 27 * 28 * Copyright (c) Remix Software Inc. 29 * 30 * This source code is licensed under the MIT license found in the 31 * LICENSE.md file in the root directory of this source tree. 32 * 33 * @license MIT 34 */function ge(){return ge=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ge.apply(null,arguments)}var Ae;(function(e){e.Pop="POP",e.Push="PUSH",e.Replace="REPLACE"})(Ae||(Ae={}));const lo="popstate";function $h(e){e===void 0&&(e={});function t(r,i){let{pathname:o,search:s,hash:a}=r.location;return wn("",{pathname:o,search:s,hash:a},i.state&&i.state.usr||null,i.state&&i.state.key||"default")}function n(r,i){return typeof i=="string"?i:Dt(i)}return Gh(t,n,null,e)}function ie(e,t){if(e===!1||e===null||typeof e>"u")throw new Error(t)}function _t(e,t){if(!e){typeof console<"u"&&console.warn(t);try{throw new Error(t)}catch{}}}function Wh(){return Math.random().toString(36).substr(2,8)}function co(e,t){return{usr:e.state,key:e.key,idx:t}}function wn(e,t,n,r){return n===void 0&&(n=null),ge({pathname:typeof e=="string"?e:e.pathname,search:"",hash:""},typeof t=="string"?mt(t):t,{state:n,key:t&&t.key||r||Wh()})}function Dt(e){let{pathname:t="/",search:n="",hash:r=""}=e;return n&&n!=="?"&&(t+=n.charAt(0)==="?"?n:"?"+n),r&&r!=="#"&&(t+=r.charAt(0)==="#"?r:"#"+r),t}function mt(e){let t={};if(e){let n=e.indexOf("#");n>=0&&(t.hash=e.substr(n),e=e.substr(0,n));let r=e.indexOf("?");r>=0&&(t.search=e.substr(r),e=e.substr(0,r)),e&&(t.pathname=e)}return t}function Gh(e,t,n,r){r===void 0&&(r={});let{window:i=document.defaultView,v5Compat:o=!1}=r,s=i.history,a=Ae.Pop,l=null,c=u();c==null&&(c=0,s.replaceState(ge({},s.state,{idx:c}),""));function u(){return(s.state||{idx:null}).idx}
vendor: 1,623 bytes, line 34
34function h(){a=Ae.Pop;let g=u(),v=g==null?null:g-c;c=g,l&&l({action:a,location:m.location,delta:v})}function d(g,v){a=Ae.Push;let C=wn(m.location,g,v);c=u()+1;let S=co(C,c),R=m.createHref(C);try{s.pushState(S,"",R)}catch(P){if(P instanceof DOMException&&P.name==="DataCloneError")throw P;i.location.assign(R)}o&&l&&l({action:a,location:m.location,delta:1})}function f(g,v){a=Ae.Replace;let C=wn(m.location,g,v);c=u();let S=co(C,c),R=m.createHref(C);s.replaceState(S,"",R),o&&l&&l({action:a,location:m.location,delta:0})}function p(g){let v=i.location.origin!=="null"?i.location.origin:i.location.href,C=typeof g=="string"?g:Dt(g);return C=C.replace(/ $/,"%20"),ie(v,"No window.location.(origin|href) available to create URL for href: "+C),new URL(C,v)}let m={get action(){return a},get location(){return e(i,s)},listen(g){if(l)throw new Error("A history only accepts one active listener");return i.addEventListener(lo,h),l=g,()=>{i.removeEventListener(lo,h),l=null}},createHref(g){return t(i,g)},createURL:p,encodeLocation(g){let v=p(g);return{pathname:v.pathname,search:v.search,hash:v.hash}},push:d,replace:f,go(g){return s.go(g)}};return m}var ce;(function(e){e.data="data",e.deferred="deferred",e.redirect="redirect",e.error="error"})(ce||(ce={}));const qh=new Set(["lazy","caseSensitive","path","id","index","children"]);function Yh(e){return e.index===!0}function sr(e,t,n,r){return n===void 0&&(n=[]),r===void 0&&(r={}),e.map((i,o)=>{let s=[...n,String(o)],a=typeof i.id=="string"?i.id:s.join("-");if(ie(i.index!==!0||!i.children,"Cannot specify children on an index route"),ie(!r[a],'Found a route id collision on i
34d "'+a+`". Route id's must be globally unique within Data Router usages`),Yh(i)){let l=ge({},i,t(i),{id:a});return r[a]=l,l}else{let l=ge({},i,t(i),{id:a,children:void 0});return r[a]=l,i.children&&(l.children=sr(i.children,t,s,r)),l}})}function ut(e,t,n){return n===void 0&&(n="/"),qn(e,t,n,!1)}function qn(e,t,n,r){let i=typeof t=="string"?mt(t):t,o=Kt(i.pathname||"/",n);if(o==null)return null;let s=Cl(e);Xh(s);let a=null,l=ad(o);for(let c=0;a==null&&c<s.length;++c)a=sd(s[c],l,r);return a}function Kh(e,t){let{route:n,pathname:r,params:i}=e;return{id:n.id,pathname:r,params:i,data:t[n.id],handle:n.handle}}function Cl(e,t,n,r){t===void 0&&(t=[]),n===void 0&&(n=[]),r===void 0&&(r="");let i=(o,s,a)=>{let l={relativePath:a===void 0?o.path||"":a,caseSensitive:o.caseSensitive===!0,childrenIndex:s,route:o};l.relativePath.startsWith("/")&&(ie(l.relativePath.startsWith(r),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+r+'" is not valid. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(r.length));let c=nt([r,l.relativePath]),u=n.concat(l);o.children&&o.children.length>0&&(ie(o.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+c+'".')),Cl(o.children,t,u,c)),!(o.path==null&&!o.index)&&t.push({path:c,score:rd(c,o.index),routesMeta:u})};return e.forEach((o,s)=>{var a;if(o.path===""||!((a=o.path)!=null&&a.includes("?")))i(o,s);else for(let l of Rl(o.path))i(o,s,l)}),t}function Rl(e){let t=e.split("/");if(t.length===0)return[];let[n,...r]=t,i=n.endsWith("?"),o=n.replace(/\?$/,"");if(r.length===0)return i?[o,""]:[o];let s=Rl(r.join("/")),a=[];return a.push(...s.map(l=>l===""?o:[o,l].join("/"))),i&&a.push(...s),a.map(l=>e.startsWith("/")&&l===""?"/":l)}function Xh(e){e.sort((t,n)=>t.score!==n.score?n.score-t.score:id(t.routesMeta.map(r=>r.childrenIndex),n.routesMeta.map(r=>r.childrenIndex)))}const Zh=/^:[\w-]+$/,Jh=3,Qh=2,ed=1,td=10,nd=-2,uo=e=>e==="*";function rd(e,t){let n=e.split("/"),r=n.length;return n.some(uo)&&(r+=nd),t&&(r+=Qh),n.filter(i=>!uo(i)).reduce((i,o)=>i+(Zh.test(o)?Jh:o===""?ed:td),r)}function id(e,t){return e.length===t.length&&e.slice(0,-1).every((r,i)=>r===t[i])?e[e.length-1]-t[t.length-1]:0}function sd(e,t,n){n===void 0&&(n=!1);let{routesMeta:r}=e,i={},o="/",s=[];for(let a=0;a<r.length;++a){let l=r[a],c=a===r.length-1,u=o==="/"?t:t.slice(o.length)||"/",h=ho({path:l.relativePath,caseSensitive:l.caseSensitive,end:c},u),d=l.route;if(!h&&c&&n&&!r[r.length-1].route.index&&(h=ho({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},u)),!h)return null;
vendor: 45,182 bytes, lines 34-44
34Object.assign(i,h.params),s.push({params:i,pathname:nt([o,h.pathname]),pathnameBase:hd(nt([o,h.pathnameBase])),route:d}),h.pathnameBase!=="/"&&(o=nt([o,h.pathnameBase]))}return s}function ho(e,t){typeof e=="string"&&(e={path:e,caseSensitive:!1,end:!0});let[n,r]=od(e.path,e.caseSensitive,e.end),i=t.match(n);if(!i)return null;let o=i[0],s=o.replace(/(.)\/+$/,"$1"),a=i.slice(1);return{params:r.reduce((c,u,h)=>{let{paramName:d,isOptional:f}=u;if(d==="*"){let m=a[h]||"";s=o.slice(0,o.length-m.length).replace(/(.)\/+$/,"$1")}const p=a[h];return f&&!p?c[d]=void 0:c[d]=(p||"").replace(/%2F/g,"/"),c},{}),pathname:o,pathnameBase:s,pattern:e}}function od(e,t,n){t===void 0&&(t=!1),n===void 0&&(n=!0),_t(e==="*"||!e.endsWith("*")||e.endsWith("/*"),'Route path "'+e+'" will be treated as if it were '+('"'+e.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+e.replace(/\*$/,"/*")+'".'));let r=[],i="^"+e.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(s,a,l)=>(r.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return e.endsWith("*")?(r.push({paramName:"*"}),i+=e==="*"||e==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?i+="\\/*$":e!==""&&e!=="/"&&(i+="(?:(?=\\/|$))"),[new RegExp(i,t?void 0:"i"),r]}function ad(e){try{return e.split("/").map(t=>decodeURIComponent(t).replace(/\//g,"%2F")).join("/")}catch(t){return _t(!1,'The URL path "'+e+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+t+").")),e}}function Kt(e,t){if(t==="/")return e;if(!e.toLowerCase().startsWith(t.toLowerCase()))return null;let n=t.endsWith("/")?t.length-1:t.length,r=e.charAt(n);return r&&r!=="/"?null:e.slice(n)||"/"}const ld=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,cd=e=>ld.test(e);function ud(e,t){t===void 0&&(t="/");let{pathname:n,search:r="",hash:i=""}=typeof e=="string"?mt(e):e,o;if(n)if(cd(n))o=n;else{if(n.includes("//")){let s=n;n=Ki(n),_t(!1,"Pathnames cannot have embedded double slashes - normalizing "+(s+" -> "+n))}n.startsWith("/")?o=fo(n.substring(1),"/"):o=fo(n,t)}else o=t;return{pathname:o,search:dd(r),hash:fd(i)}}function fo(e,t){let n=t.replace(/\/+$/,"").split("/");return e.split("/").forEach(i=>{i===".."?n.length>1&&n.pop():i!=="."&&n.push(i)}),n.length>1?n.join("/"):"/"}function Gr(e,t,n,r){return"Cannot include a '"+e+"' character in a manually specified "+("`to."+t+"` field ["+JSON.stringify(r)+"]. Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function Al(e){return e.filter((t,n)=>n===0||t.route.path&&t.route.path.length>0)}function wr(e,t){let n=Al(e);return t?n.map((r,i)=>i===n.length-1?r.pathname:r.pathnameBase):n.map(r=>r.pathnameBase)}function Tr(e,t,n,r){r===void 0&&(r=!1);let i;typeof e=="string"?i=mt(e):(i=ge({},e),ie(!i.pathname||!i.pathname.includes("?"),Gr("?","pathname","search",i)),ie(!i.pathname||!i.pathname.includes("#"),Gr("#","pathname","hash",i)),ie(!i.search||!i.search.includes("#"),Gr("#","search","hash",i)));let o=e===""||i.pathname==="",s=o?"/":i.pathname,a;if(s==null)a=n;else{let h=t.length-1;if(!r&&s.startsWith("..")){let d=s.split("/");for(;d[0]==="..";)d.shift(),h-=1;i.pathname=d.join("/")}a=h>=0?t[h]:"/"}let l=ud(i,a),c=s&&s!=="/"&&s.endsWith("/"),u=(o||s===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(c||u)&&(l.pathname+="/"),l}const Ki=e=>e.replace(/\/\/+/g,"/"),nt=e=>Ki(e.join("/")),hd=e=>e.replace(/\/+$/,"").replace(/^\/*/,"/"),dd=e=>!e||e==="?"?"":e.startsWith("?")?e:"?"+e,fd=e=>!e||e==="#"?"":e.startsWith("#")?e:"#"+e;class or{constructor(t,n,r,i){i===void 0&&(i=!1),this.status=t,this.statusText=n||"",this.internal=i,r instanceof Error?(this.data=r.toString(),this.error=r):this.data=r}}function Tn(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.internal=="boolean"&&"data"in e}const Pl=["post","put","patch","delete"],pd=new Set(Pl),md=["get",...Pl],gd=new Set(md),yd=new Set([301,302,303,307,308]),vd=new Set([307,308]),qr={state:"idle",location:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},xd={state:"idle",data:void 0,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0},cn={state:"unblocked",proceed:void 0,reset:void 0,location:void 0},Xi=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,bd=e=>({hasErrorBoundary:!!e.hasErrorBoundary}),Ml="remix-router-transitions";function wd(e){const t=e.window?e.window:typeof window<"u"?window:void 0,n=typeof t<"u"&&typeof t.document<"u"&&typeof t.document.createElement<"u",r=!n;ie(e.routes.length>0,"You must provide a non-empty routes array to createRouter");let i;if(e.mapRouteProperties)i=e.mapRouteProperties;else if(e.detectErrorBoundary){let x=e.detectErrorBoundary;i=E=>({hasErrorBoundary:x(E)})}else i=bd;let o={},s=sr(e.routes,i,void 0,o),a,l=e.basename||"/",c=e.dataStrategy||Cd,u=e.patchRoutesOnNavigation,h=ge({v7_fetcherPersist:!1,v7_normalizeFormMethod:!1,v7_partialHydration:!1,v7_prependBasename:!1,v7_relativeSplatPath:!1,v7_skipActionErrorRevalidation:!1},e.future),d=null,f=new Set,p=null,m=null,g=null,v=e.hydrationData!=null,C=ut(s,e.history.location,l),S=!1,R=null;if(C==null&&!u){let x=Ve(404,{pathname:e.history.location.pathname}),{matches:E,route:A}=Eo(s);C=E,R={[A.id]:x}}C&&!e.hydrationData&&On(C,s,e.history.location.pathname).active&&(C=null);let P;if(C)if(C.some(x=>x.route.lazy))P=!1;else if(!C.some(x=>x.route.loader))P=!0;else if(h.v7_partialHydration){let x=e.hydrationData?e.hydrationData.loaderData:null,E=e.hydrationData?e.hydrationData.errors:null;if(E){let A=C.findIndex(L=>E[L.route.id]!==void 0);P=C.slice(0,A+1).every(L=>!bi(L.route,x,E))}else P=C.every(A=>!bi(A.route,x,E))}else P=e.hydrationData!=null;else if(P=!1,C=[],h.v7_partialHydration){let x=On(null,s,e.history.location.pathname);x.active&&x.matches&&(S=!0,C=x.matches)}let j,b={historyAction:e.history.action,location:e.history.location,matches:C,initialized:P,navigation:qr,restoreScrollPosition:e.hydrationData!=null?!1:null,preventScrollReset:!1,revalidation:"idle",loaderData:e.hydrationData&&e.hydrationData.loaderData||{},actionData:e.hydrationData&&e.hydrationData.actionData||null,errors:e.hydrationData&&e.hydrationData.errors||R,fetchers:new Map,blockers:new Map},M=Ae.Pop,O=!1,_,V=!1,N=new Map,W=null,k=!1,H=!1,re=[],me=new Set,G=new Map,ue=0,ye=-1,T=new Map,D=new Set,K=new Map,X=new Map,J=new Set,Y=new Map,ee=new Map,xe;function he(){if(d=e.history.listen(x=>{let{action:E,location:A,delta:L}=x;if(xe){xe(),xe=void 0;return}_t(ee.size===0||L!=null,"You are trying to use a blocker on a POP navigation to a location that was not created by @remix-run/router. This will fail silently in production. This can happen if you are navigating outside the router via `window.history.pushState`/`window.location.hash` instead of using router navigation APIs. This can also happen if you are using createHashRouter and the user manually changes the URL.");let I=Fs({currentLocation:b.location,nextLocation:A,historyAction:E});if(I&&L!=null){let q=new Promise(Q=>{xe=Q});e.history.go(L*-1),jn(I,{state:"blocked",location:A,proceed(){jn(I,{state:"proceeding",proceed:void 0,reset:void 0,location:A}),q.then(()=>e.history.go(L))},reset(){let Q=new Map(b.blockers);Q.set(I,cn),Oe({blockers:Q})}});return}return vt(E,A)}),n){Fd(t,N);let x=()=>Bd(t,N);t.addEventListener("pagehide",x),W=()=>t.removeEventListener("pagehide",x)}return b.initialized||vt(Ae.Pop,b.location,{initialHydration:!0}),j}function Qe(){d&&d(),W&&W(),f.clear(),_&&_.abort(),b.fetchers.forEach((x,E)=>Ln(E)),b.blockers.forEach((x,E)=>Ns(E))}function Lt(x){return f.add(x),()=>f.delete(x)}function Oe(x,E){E===void 0&&(E={}),b=ge({},b,x);let A=[],L=[];h.v7_fetcherPersist&&b.fetchers.forEach((I,q)=>{I.state==="idle"&&(J.has(q)?L.push(q):A.push(q))}),J.forEach(I=>{!b.fetchers.has(I)&&!G.has(I)&&L.push(I)}),[...f].forEach(I=>I(b,{deletedFetchers:L,viewTransitionOpts:E.viewTransitionOpts,flushSync:E.flushSync===!0})),h.v7_fetcherPersist?(A.forEach(I=>b.fetchers.delete(I)),L.forEach(I=>Ln(I))):L.forEach(I=>J.delete(I))}function jt(x,E,A){var L,I;let{flushSync:q}=A===void 0?{}:A,Q=b.actionData!=null&&b.navigation.formMethod!=null&&We(b.navigation.formMethod)&&b.navigation.state==="loading"&&((L=x.state)==null?void 0:L._isRedirect)!==!0,z;E.actionData?Object.keys(E.actionData).length>0?z=E.actionData:z=null:Q?z=b.actionData:z=null;let U=E.loaderData?To(b.loaderData,E.loaderData,E.matches||[],E.errors):b.loaderData,F=b.blockers;F.size>0&&(F=new Map(F),F.forEach((oe,_e)=>F.set(_e,cn)));let $=O===!0||b.navigation.formMethod!=null&&We(b.navigation.formMethod)&&((I=x.state)==null?void 0:I._isRedirect)!==!0;a&&(s=a,a=void 0),k||M===Ae.Pop||(M===Ae.Push?e.history.push(x,x.state):M===Ae.Replace&&e.history.replace(x,x.state));let ne;if(M===Ae.Pop){let oe=N.get(b.location.pathname);oe&&oe.has(x.pathname)?ne={currentLocation:b.location,nextLocation:x}:N.has(x.pathname)&&(ne={currentLocation:x,nextLocation:b.location})}else if(V){let oe=N.get(b.location.pathname);oe?oe.add(x.pathname):(oe=new Set([x.pathname]),N.set(b.location.pathname,oe)),ne={currentLocation:b.location,nextLocation:x}}Oe(ge({},E,{actionData:z,loaderData:U,historyAction:M,location:x,initialized:!0,navigation:qr,revalidation:"idle",restoreScrollPosition:zs(x,E.matches||b.matches),preventScrollReset:$,blockers:F}),{viewTransitionOpts:ne,flushSync:q===!0}),M=Ae.Pop,O=!1,V=!1,k=!1,H=!1,re=[]}async function Ds(x,E){if(typeof x=="number"){e.history.go(x);return}let A=xi(b.location,b.matches,l,h.v7_prependBasename,x,h.v7_relativeSplatPath,E==null?void 0:E.fromRouteId,E==null?void 0:E.relative),{path:L,submission:I,error:q}=po(h.v7_normalizeFormMethod,!1,A,E),Q=b.location,z=wn(b.location,L,E&&E.state);z=ge({},z,e.history.encodeLocation(z));let U=E&&E.replace!=null?E.replace:void 0,F=Ae.Push;U===!0?F=Ae.Replace:U===!1||I!=null&&We(I.formMethod)&&I.formAction===b.location.pathname+b.location.search&&(F=Ae.Replace);let $=E&&"preventScrollReset"in E?E.preventScrollReset===!0:void 0,ne=(E&&E.flushSync)===!0,oe=Fs({currentLocation:Q,nextLocation:z,historyAction:F});if(oe){jn(oe,{state:"blocked",location:z,proceed(){jn(oe,{state:"proceeding",proceed:void 0,reset:void 0,location:z}),Ds(x,E)},reset(){let _e=new Map(b.blockers);_e.set(oe,cn),Oe({blockers:_e})}});return}return await vt(F,z,{submission:I,pendingError:q,preventScrollReset:$,replace:E&&E.replace,enableViewTransition:E&&E.viewTransition,flushSync:ne})}function Ju(){if(Mr(),Oe({revalidation:"loading"}),b.navigation.state!=="submitting"){if(b.navigation.state==="idle"){vt(b.historyAction,b.location,{startUninterruptedRevalidation:!0});return}vt(M||b.historyAction,b.navigation.location,{overrideNavigation:b.navigation,enableViewTransition:V===!0})}}async function vt(x,E,A){_&&_.abort(),_=null,M=x,k=(A&&A.startUninterruptedRevalidation)===!0,lh(b.location,b.matches),O=(A&&A.preventScrollReset)===!0,V=(A&&A.enableViewTransition)===!0;let L=a||s,I=A&&A.overrideNavigation,q=A!=null&&A.initialHydration&&b.matches&&b.matches.length>0&&!S?b.matches:ut(L,E,l),Q=(A&&A.flushSync)===!0;if(q&&b.initialized&&!H&&Dd(b.location,E)&&!(A&&A.submission&&We(A.submission.formMethod))){jt(E,{matches:q},{flushSync:Q});return}let z=On(q,L,E.pathname);if(z.active&&z.matches&&(q=z.matches),!q){let{error:fe,notFoundMatches:le,route:be}=_r(E.pathname);jt(E,{matches:le,loaderData:{},errors:{[be.id]:fe}},{flushSync:Q});return}_=new AbortController;let U=Nt(e.history,E,_.signal,A&&A.submission),F;if(A&&A.pendingError)F=[St(q).route.id,{type:ce.error,error:A.pendingError}];else if(A&&A.submission&&We(A.submission.formMethod)){let fe=await Qu(U,E,A.submission,q,z.active,{replace:A.replace,flushSync:Q});if(fe.shortCircuited)return;if(fe.pendingActionResult){let[le,be]=fe.pendingActionResult;if(Ne(be)&&Tn(be.error)&&be.error.status===404){_=null,jt(E,{matches:fe.matches,loaderData:{},errors:{[le]:be.error}});return}}q=fe.matches||q,F=fe.pendingActionResult,I=Yr(E,A.submission),Q=!1,z.active=!1,U=Nt(e.history,U.url,U.signal)}let{shortCircuited:$,matches:ne,loaderData:oe,errors:_e}=await eh(U,E,q,z.active,I,A&&A.submission,A&&A.fetcherSubmission,A&&A.replace,A&&A.initialHydration===!0,Q,F);$||(_=null,jt(E,ge({matches:ne||q},So(F),{loaderData:oe,errors:_e})))}async function Qu(x,E,A,L,I,q){q===void 0&&(q={}),Mr();let Q=Vd(E,A);if(Oe({navigation:Q},{flushSync:q.flushSync===!0}),I){let F=await kn(L,E.pathname,x.signal);if(F.type==="aborted")return{shortCircuited:!0};if(F.type==="error"){let $=St(F.partialMatches).route.id;return{matches:F.partialMatches,pendingActionResult:[$,{type:ce.error,error:F.error}]}}else if(F.matches)L=F.matches;else{let{notFoundMatches:$,error:ne,route:oe}=_r(E.pathname);return{matches:$,pendingActionResult:[oe.id,{type:ce.error,error:ne}]}}}let z,U=fn(L,E);if(!U.route.action&&!U.route.lazy)z={type:ce.error,error:Ve(405,{method:x.method,pathname:E.pathname,routeId:U.route.id})};else if(z=(await tn("action",b,x,[U],L,null))[U.route.id],x.signal.aborted)return{shortCircuited:!0};if(Et(z)){let F;return q&&q.replace!=null?F=q.replace:F=xo(z.response.headers.get("Location"),new URL(x.url),l,e.history)===b.location.pathname+b.location.search,await xt(x,z,!0,{submission:A,replace:F}),{shortCircuited:!0}}if(ht(z))throw Ve(400,{type:"defer-action"});if(Ne(z)){let F=St(L,U.route.id);return(q&&q.replace)!==!0&&(M=Ae.Push),{matches:L,pendingActionResult:[F.route.id,z]}}return{matches:L,pendingActionResult:[U.route.id,z]}}async function eh(x,E,A,L,I,q,Q,z,U,F,$){let ne=I||Yr(E,q),oe=q||Q||Ro(ne),_e=!k&&(!h.v7_partialHydration||!U);if(L){if(_e){let we=Ls($);Oe(ge({navigation:ne},we!==void 0?{actionData:we}:{}),{flushSync:F})}let ae=await kn(A,E.pathname,x.signal);if(ae.type==="aborted")return{shortCircuited:!0};if(ae.type==="error"){let we=St(ae.partialMatches).route.id;return{matches:ae.partialMatches,loaderData:{},errors:{[we]:ae.error}}}else if(ae.matches)A=ae.matches;else{let{error:we,notFoundMatches:kt,route:sn}=_r(E.pathname);return{matches:kt,loaderData:{},errors:{[sn.id]:we}}}}let fe=a||s,[le,be]=go(e.history,b,A,oe,E,h.v7_partialHydration&&U===!0,h.v7_skipActionErrorRevalidation,H,re,me,J,K,D,fe,l,$);if(Dr(ae=>!(A&&A.some(we=>we.route.id===ae))||le&&le.some(we=>we.route.id===ae)),ye=++ue,le.length===0&&be.length===0){let ae=Is();return jt(E,ge({matches:A,loaderData:{},errors:$&&Ne($[1])?{[$[0]]:$[1].error}:null},So($),ae?{fetchers:new Map(b.fetchers)}:{}),{flushSync:F}),{shortCircuited:!0}}if(_e){let ae={};if(!L){ae.navigation=ne;let we=Ls($);we!==void 0&&(ae.actionData=we)}be.length>0&&(ae.fetchers=th(be)),Oe(ae,{flushSync:F})}be.forEach(ae=>{st(ae.key),ae.controller&&G.set(ae.key,ae.controller)});let Ot=()=>be.forEach(ae=>st(ae.key));_&&_.signal.addEventListener("abort",Ot);let{loaderResults:nn,fetcherResults:tt}=await js(b,A,le,be,x);if(x.signal.aborted)return{shortCircuited:!0};_&&_.signal.removeEventListener("abort",Ot),be.forEach(ae=>G.delete(ae.key));let Ye=Fn(nn);if(Ye)return await xt(x,Ye.result,!0,{replace:z}),{shortCircuited:!0};if(Ye=Fn(tt),Ye)return D.add(Ye.key),await xt(x,Ye.result,!0,{replace:z}),{shortCircuited:!0};let{loaderData:Lr,errors:rn}=wo(b,A,nn,$,be,tt,Y);Y.forEach((ae,we)=>{ae.subscribe(kt=>{(kt||ae.done)&&Y.delete(we)})}),h.v7_partialHydration&&U&&b.errors&&(rn=ge({},b.errors,rn));let bt=Is(),In=Vs(ye),Vn=bt||In||be.length>0;return ge({matches:A,loaderData:Lr,errors:rn},Vn?{fetchers:new Map(b.fetchers)}:{})}function Ls(x){if(x&&!Ne(x[1]))return{[x[0]]:x[1].data};if(b.actionData)return Object.keys(b.actionData).length===0?null:b.actionData}function th(x){return x.forEach(E=>{let A=b.fetchers.get(E.key),L=un(void 0,A?A.data:void 0);b.fetchers.set(E.key,L)}),new Map(b.fetchers)}function nh(x,E,A,L){if(r)throw new Error("router.fetch() was called during the server render, but it shouldn't be. You are likely calling a useFetcher() method in the body of your component. Try moving it to a useEffect or a callback.");st(x);let I=(L&&L.flushSync)===!0,q=a||s,Q=xi(b.location,b.matches,l,h.v7_prependBasename,A,h.v7_relativeSplatPath,E,L==null?void 0:L.relative),z=ut(q,Q,l),U=On(z,q,Q);if(U.active&&U.matches&&(z=U.matches),!z){et(x,E,Ve(404,{pathname:Q}),{flushSync:I});return}let{path:F,submission:$,error:ne}=po(h.v7_normalizeFormMethod,!0,Q,L);if(ne){et(x,E,ne,{flushSync:I});return}let oe=fn(z,F),_e=(L&&L.preventScrollReset)===!0;if($&&We($.formMethod)){rh(x,E,F,oe,z,U.active,I,_e,$);return}K.set(x,{routeId:E,path:F}),ih(x,E,F,oe,z,U.active,I,_e,$)}async function rh(x,E,A,L,I,q,Q,z,U){Mr(),K.delete(x);function F(Re){if(!Re.route.action&&!Re.route.lazy){let It=Ve(405,{method:U.formMethod,pathname:A,routeId:E});return et(x,E,It,{flushSync:Q}),!0}return!1}if(!q&&F(L))return;let $=b.fetchers.get(x);it(x,Nd(U,$),{flushSync:Q});let ne=new AbortController,oe=Nt(e.history,A,ne.signal,U);if(q){let Re=await kn(I,new URL(oe.url).pathname,oe.signal,x);if(Re.type==="aborted")return;if(Re.type==="error"){et(x,E,Re.error,{flushSync:Q});return}else if(Re.matches){if(I=Re.matches,L=fn(I,A),F(L))return}else{et(x,E,Ve(404,{pathname:A}),{flushSync:Q});return}}G.set(x,ne);let _e=ue,le=(await tn("action",b,oe,[L],I,x))[L.route.id];if(oe.signal.aborted){G.get(x)===ne&&G.delete(x);return}if(h.v7_fetcherPersist&&J.has(x)){if(Et(le)||Ne(le)){it(x,at(void 0));return}}else{if(Et(le))if(G.delete(x),ye>_e){it(x,at(void 0));return}else return D.add(x),it(x,un(U)),xt(oe,le,!1,{fetcherSubmission:U,preventScrollReset:z});if(Ne(le)){et(x,E,le.error);return}}if(ht(le))throw Ve(400,{type:"defer-action"});let be=b.navigation.location||b.location,Ot=Nt(e.history,be,ne.signal),nn=a||s,tt=b.navigation.state!=="idle"?ut(nn,b.navigation.location,l):b.matches;ie(tt,"Didn't find any matches after fetcher action");let Ye=++ue;T.set(x,Ye);let Lr=un(U,le.data);b.fetchers.set(x,Lr);let[rn,bt]=go(e.history,b,tt,U,be,!1,h.v7_skipActionErrorRevalidation,H,re,me,J,K,D,nn,l,[L.route.id,le]);bt.filter(Re=>Re.key!==x).forEach(Re=>{let It=Re.key,Us=b.fetchers.get(It),hh=un(void 0,Us?Us.data:void 0);b.fetchers.set(It,hh),st(It),Re.controller&&G.set(It,Re.controller)}),Oe({fetchers:new Map(b.fetchers)});let In=()=>bt.forEach(Re=>st(Re.key));ne.signal.addEventListener("abort",In);let{loaderResults:Vn,fetcherResults:ae}=await js(b,tt,rn,bt,Ot);if(ne.signal.aborted)return;ne.signal.removeEventListener("abort",In),T.delete(x),G.delete(x),bt.forEach(Re=>G.delete(Re.key));let we=Fn(Vn);if(we)return xt(Ot,we.result,!1,{preventScrollReset:z});if(we=Fn(ae),we)return D.add(we.key),xt(Ot,we.result,!1,{preventScrollReset:z});let{loaderData:kt,errors:sn}=wo(b,tt,Vn,void 0,bt,ae,Y);if(b.fetchers.has(x)){let Re=at(le.data);b.fetchers.set(x,Re)}Vs(Ye),b.navigation.state==="loading"&&Ye>ye?(ie(M,"Expected pending action"),_&&_.abort(),jt(b.navigation.location,{matches:tt,loaderData:kt,errors:sn,fetchers:new Map(b.fetchers)})):(Oe({errors:sn,loaderData:To(b.loaderData,kt,tt,sn),fetchers:new Map(b.fetchers)}),H=!1)}async function ih(x,E,A,L,I,q,Q,z,U){let F=b.fetchers.get(x);it(x,un(U,F?F.data:void 0),{flushSync:Q});let $=new AbortController,ne=Nt(e.history,A,$.signal);if(q){let le=await kn(I,new URL(ne.url).pathname,ne.signal,x);if(le.type==="aborted")return;if(le.type==="error"){et(x,E,le.error,{flushSync:Q});return}else if(le.matches)I=le.matches,L=fn(I,A);else{et(x,E,Ve(404,{pathname:A}),{flushSync:Q});return}}G.set(x,$);let oe=ue,fe=(await tn("loader",b,ne,[L],I,x))[L.route.id];if(ht(fe)&&(fe=await Zi(fe,ne.signal,!0)||fe),G.get(x)===$&&G.delete(x),!ne.signal.aborted){if(J.has(x)){it(x,at(void 0));return}if(Et(fe))if(ye>oe){it(x,at(void 0));return}else{D.add(x),await xt(ne,fe,!1,{preventScrollReset:z});return}if(Ne(fe)){et(x,E,fe.error);return}ie(!ht(fe),"Unhandled fetcher deferred data"),it(x,at(fe.data))}}async function xt(x,E,A,L){let{submission:I,fetcherSubmission:q,preventScrollReset:Q,replace:z}=L===void 0?{}:L;E.response.headers.has("X-Remix-Revalidate")&&(H=!0);let U=E.response.headers.get("Location");ie(U,"Expected a Location header on the redirect Response"),U=xo(U,new URL(x.url),l,e.history);let F=wn(b.location,U,{_isRedirect:!0});if(n){let le=!1;if(E.response.headers.has("X-Remix-Reload-Document"))le=!0;else if(Xi.test(U)){const be=e.history.createURL(U);le=be.origin!==t.location.origin||Kt(be.pathname,l)==null}if(le){z?t.location.replace(U):t.location.assign(U);return}}_=null;let $=z===!0||E.response.headers.has("X-Remix-Replace")?Ae.Replace:Ae.Push,{formMethod:ne,formAction:oe,formEncType:_e}=b.navigation;!I&&!q&&ne&&oe&&_e&&(I=Ro(b.navigation));let fe=I||q;if(vd.has(E.response.status)&&fe&&We(fe.formMethod))await vt($,F,{submission:ge({},fe,{formAction:U}),preventScrollReset:Q||O,enableViewTransition:A?V:void 0});else{let le=Yr(F,I);await vt($,F,{overrideNavigation:le,fetcherSubmission:q,preventScrollReset:Q||O,enableViewTransition:A?V:void 0})}}async function tn(x,E,A,L,I,q){let Q,z={};try{Q=await Rd(c,x,E,A,L,I,q,o,i)}catch(U){return L.forEach(F=>{z[F.route.id]={type:ce.error,error:U}}),z}for(let[U,F]of Object.entries(Q))if(Ld(F)){let $=F.result;z[U]={type:ce.redirect,response:Md($,A,U,I,l,h.v7_relativeSplatPath)}}else z[U]=await Pd(F);return z}async function js(x,E,A,L,I){let q=x.matches,Q=tn("loader",x,I,A,E,null),z=Promise.all(L.map(async $=>{if($.matches&&$.match&&$.controller){let oe=(await tn("loader",x,Nt(e.history,$.path,$.controller.signal),[$.match],$.matches,$.key))[$.match.route.id];return{[$.key]:oe}}else return Promise.resolve({[$.key]:{type:ce.error,error:Ve(404,{pathname:$.path})}})})),U=await Q,F=(await z).reduce(($,ne)=>Object.assign($,ne),{});return await Promise.all([kd(E,U,I.signal,q,x.loaderData),Id(E,F,L)]),{loaderResults:U,fetcherResults:F}}function Mr(){H=!0,re.push(...Dr()),K.forEach((x,E)=>{G.has(E)&&me.add(E),st(E)})}function it(x,E,A){A===void 0&&(A={}),b.fetchers.set(x,E),Oe({fetchers:new Map(b.fetchers)},{flushSync:(A&&A.flushSync)===!0})}function et(x,E,A,L){L===void 0&&(L={});let I=St(b.matches,E);Ln(x),Oe({errors:{[I.route.id]:A},fetchers:new Map(b.fetchers)},{flushSync:(L&&L.flushSync)===!0})}function Os(x){return X.set(x,(X.get(x)||0)+1),J.has(x)&&J.delete(x),b.fetchers.get(x)||xd}function Ln(x){let E=b.fetchers.get(x);G.has(x)&&!(E&&E.state==="loading"&&T.has(x))&&st(x),K.delete(x),T.delete(x),D.delete(x),h.v7_fetcherPersist&&J.delete(x),me.delete(x),b.fetchers.delete(x)}function sh(x){let E=(X.get(x)||0)-1;E<=0?(X.delete(x),J.add(x),h.v7_fetcherPersist||Ln(x)):X.set(x,E),Oe({fetchers:new Map(b.fetchers)})}function st(x){let E=G.get(x);E&&(E.abort(),G.delete(x))}function ks(x){for(let E of x){let A=Os(E),L=at(A.data);b.fetchers.set(E,L)}}function Is(){let x=[],E=!1;for(let A of D){let L=b.fetchers.get(A);ie(L,"Expected fetcher: "+A),L.state==="loading"&&(D.delete(A),x.push(A),E=!0)}return ks(x),E}function Vs(x){let E=[];for(let[A,L]of T)if(L<x){let I=b.fetchers.get(A);ie(I,"Expected fetcher: "+A),I.state==="loading"&&(st(A),T.delete(A),E.push(A))}return ks(E),E.length>0}function oh(x,E){let A=b.blockers.get(x)||cn;return ee.get(x)!==E&&ee.set(x,E),A}function Ns(x){b.blockers.delete(x),ee.delete(x)}function jn(x,E){let A=b.blockers.get(x)||cn;ie(A.state==="unblocked"&&E.state==="blocked"||A.state==="blocked"&&E.state==="blocked"||A.state==="blocked"&&E.state==="proceeding"||A.state==="blocked"&&E.state==="unblocked"||A.state==="proceeding"&&E.state==="unblocked","Invalid blocker state transition: "+A.state+" -> "+E.state);let L=new Map(b.blockers);L.set(x,E),Oe({blockers:L})}function Fs(x){let{currentLocation:E,nextLocation:A,historyAction:L}=x;if(ee.size===0)return;ee.size>1&&_t(!1,"A router only supports one blocker at a time");let I=Array.from(ee.entries()),[q,Q]=I[I.length-1],z=b.blockers.get(q);if(!(z&&z.state==="proceeding")&&Q({currentLocation:E,nextLocation:A,historyAction:L}))return q}function _r(x){let E=Ve(404,{pathname:x}),A=a||s,{matches:L,route:I}=Eo(A);return Dr(),{notFoundMatches:L,route:I,error:E}}function Dr(x){let E=[];return Y.forEach((A,L)=>{(!x||x(L))&&(A.cancel(),E.push(L),Y.delete(L))}),E}function ah(x,E,A){if(p=x,g=E,m=A||null,!v&&b.navigation===qr){v=!0;let L=zs(b.location,b.matches);L!=null&&Oe({restoreScrollPosition:L})}return()=>{p=null,g=null,m=null}}function Bs(x,E){return m&&m(x,E.map(L=>Kh(L,b.loaderData)))||x.key}function lh(x,E){if(p&&g){let A=Bs(x,E);p[A]=g()}}function zs(x,E){if(p){let A=Bs(x,E),L=p[A];if(typeof L=="number")return L}return null}function On(x,E,A){if(u)if(x){if(Object.keys(x[0].params).length>0)return{active:!0,matches:qn(E,A,l,!0)}}else return{active:!0,matches:qn(E,A,l,!0)||[]};return{active:!1,matches:null}}async function kn(x,E,A,L){if(!u)return{type:"success",matches:x};let I=x;for(;;){let q=a==null,Q=a||s,z=o;try{await u({signal:A,path:E,matches:I,fetcherKey:L,patch:($,ne)=>{A.aborted||vo($,ne,Q,z,i)}})}catch($){return{type:"error",error:$,partialMatches:I}}finally{q&&!A.aborted&&(s=[...s])}if(A.aborted)return{type:"aborted"};let U=ut(Q,E,l);if(U)return{type:"success",matches:U};let F=qn(Q,E,l,!0);if(!F||I.length===F.length&&I.every(($,ne)=>$.route.id===F[ne].route.id))return{type:"success",matches:null};I=F}}function ch(x){o={},a=sr(x,i,void 0,o)}function uh(x,E){let A=a==null;vo(x,E,a||s,o,i),A&&(s=[...s],Oe({}))}return j={get basename(){return l},get future(){return h},get state(){return b},get routes(){return s},get window(){return t},initialize:he,subscribe:Lt,enableScrollRestoration:ah,navigate:Ds,fetch:nh,revalidate:Ju,createHref:x=>e.history.createHref(x),encodeLocation:x=>e.history.encodeLocation(x),getFetcher:Os,deleteFetcher:sh,dispose:Qe,getBlocker:oh,deleteBlocker:Ns,patchRoutes:uh,_internalFetchControllers:G,_internalActiveDeferreds:Y,_internalSetRoutes:ch},j}function Td(e){return e!=null&&("formData"in e&&e.formData!=null||"body"in e&&e.body!==void 0)}function xi(e,t,n,r,i,o,s,a){let l,c;if(s){l=[];for(let h of t)if(l.push(h),h.route.id===s){c=h;break}}else l=t,c=t[t.length-1];let u=Tr(i||".",wr(l,o),Kt(e.pathname,n)||e.pathname,a==="path");if(i==null&&(u.search=e.search,u.hash=e.hash),(i==null||i===""||i===".")&&c){let h=Ji(u.search);if(c.route.index&&!h)u.search=u.search?u.search.replace(/^\?/,"?index&"):"?index";else if(!c.route.index&&h){let d=new URLSearchParams(u.search),f=d.getAll("index");d.delete("index"),f.filter(m=>m).forEach(m=>d.append("index",m));let p=d.toString();u.search=p?"?"+p:""}}return r&&n!=="/"&&(u.pathname=u.pathname==="/"?n:nt([n,u.pathname])),Dt(u)}function po(e,t,n,r){if(!r||!Td(r))return{path:n};if(r.formMethod&&!Od(r.formMethod))return{path:n,error:Ve(405,{method:r.formMethod})};let i=()=>({path:n,error:Ve(400,{type:"invalid-body"})}),o=r.formMethod||"get",s=e?o.toUpperCase():o.toLowerCase(),a=Ll(n);if(r.body!==void 0){if(r.formEncType==="text/plain"){if(!We(s))return i();let d=typeof r.body=="string"?r.body:r.body instanceof FormData||r.body instanceof URLSearchParams?Array.from(r.body.entries()).reduce((f,p)=>{let[m,g]=p;return""+f+m+"="+g+` 35`},""):String(r.body);return{path:n,submission:{formMethod:s,formAction:a,formEncType:r.formEncType,formData:void 0,json:void 0,text:d}}}else if(r.formEncType==="application/json"){if(!We(s))return i();try{let d=typeof r.body=="string"?JSON.parse(r.body):r.body;return{path:n,submission:{formMethod:s,formAction:a,formEncType:r.formEncType,formData:void 0,json:d,text:void 0}}}catch{return i()}}}ie(typeof FormData=="function","FormData is not available in this environment");let l,c;if(r.formData)l=wi(r.formData),c=r.formData;else if(r.body instanceof FormData)l=wi(r.body),c=r.body;else if(r.body instanceof URLSearchParams)l=r.body,c=bo(l);else if(r.body==null)l=new URLSearchParams,c=new FormData;else try{l=new URLSearchParams(r.body),c=bo(l)}catch{return i()}let u={formMethod:s,formAction:a,formEncType:r&&r.formEncType||"application/x-www-form-urlencoded",formData:c,json:void 0,text:void 0};if(We(u.formMethod))return{path:n,submission:u};let h=mt(n);return t&&h.search&&Ji(h.search)&&l.append("index",""),h.search="?"+l,{path:Dt(h),submission:u}}function mo(e,t,n){n===void 0&&(n=!1);let r=e.findIndex(i=>i.route.id===t);return r>=0?e.slice(0,n?r+1:r):e}function go(e,t,n,r,i,o,s,a,l,c,u,h,d,f,p,m){let g=m?Ne(m[1])?m[1].error:m[1].data:void 0,v=e.createURL(t.location),C=e.createURL(i),S=n;o&&t.errors?S=mo(n,Object.keys(t.errors)[0],!0):m&&Ne(m[1])&&(S=mo(n,m[0]));let R=m?m[1].statusCode:void 0,P=s&&R&&R>=400,j=S.filter((M,O)=>{let{route:_}=M;if(_.lazy)return!0;if(_.loader==null)return!1;if(o)return bi(_,t.loaderData,t.errors);if(Sd(t.loaderData,t.matches[O],M)||l.some(W=>W===M.route.id))return!0;let V=t.matches[O],N=M;return yo(M,ge({currentUrl:v,currentParams:V.params,nextUrl:C,nextParams:N.params},r,{actionResult:g,actionStatus:R,defaultShouldRevalidate:P?!1:a||v.pathname+v.search===C.pathname+C.search||v.search!==C.search||_l(V,N)}))}),b=[];return h.forEach((M,O)=>{if(o||!n.some(k=>k.route.id===M.routeId)||u.has(O))return;let _=ut(f,M.path,p);if(!_){b.push({key:O,routeId:M.routeId,path:M.path,matches:null,match:null,controller:null});return}let V=t.fetchers.get(O),N=fn(_,M.path),W=!1;d.has(O)?W=!1:c.has(O)?(c.delete(O),W=!0):V&&V.state!=="idle"&&V.data===void 0?W=a:W=yo(N,ge({currentUrl:v,currentParams:t.matches[t.matches.length-1].params,nextUrl:C,nextParams:n[n.length-1].params},r,{actionResult:g,actionStatus:R,defaultShouldRevalidate:P?!1:a})),W&&b.push({key:O,routeId:M.routeId,path:M.path,matches:_,match:N,controller:new AbortController})}),[j,b]}function bi(e,t,n){if(e.lazy)return!0;if(!e.loader)return!1;let r=t!=null&&t[e.id]!==void 0,i=n!=null&&n[e.id]!==void 0;return!r&&i?!1:typeof e.loader=="function"&&e.loader.hydrate===!0?!0:!r&&!i}function Sd(e,t,n){let r=!t||n.route.id!==t.route.id,i=e[n.route.id]===void 0;return r||i}function _l(e,t){let n=e.route.path;return e.pathname!==t.pathname||n!=null&&n.endsWith("*")&&e.params["*"]!==t.params["*"]}function yo(e,t){if(e.route.shouldRevalidate){let n=e.route.shouldRevalidate(t);if(typeof n=="boolean")return n}return t.defaultShouldRevalidate}function vo(e,t,n,r,i){var o;let s;if(e){let c=r[e];ie(c,"No route found to patch children into: routeId = "+e),c.children||(c.children=[]),s=c.children}else s=n;let a=t.filter(c=>!s.some(u=>Dl(c,u))),l=sr(a,i,[e||"_","patch",String(((o=s)==null?void 0:o.length)||"0")],r);s.push(...l)}function Dl(e,t){return"id"in e&&"id"in t&&e.id===t.id?!0:e.index===t.index&&e.path===t.path&&e.caseSensitive===t.caseSensitive?(!e.children||e.children.length===0)&&(!t.children||t.children.length===0)?!0:e.children.every((n,r)=>{var i;return(i=t.children)==null?void 0:i.some(o=>Dl(n,o))}):!1}async function Ed(e,t,n){if(!e.lazy)return;let r=await e.lazy();if(!e.lazy)return;let i=n[e.id];ie(i,"No route found in manifest");let o={};for(let s in r){let l=i[s]!==void 0&&s!=="hasErrorBoundary";_t(!l,'Route "'+i.id+'" has a static property "'+s+'" defined but its lazy function is also returning a value for this property. '+('The lazy route property "'+s+'" will be ignored.')),!l&&!qh.has(s)&&(o[s]=r[s])}Object.assign(i,o),Object.assign(i,ge({},t(i),{lazy:void 0}))}async function Cd(e){let{matches:t}=e,n=t.filter(i=>i.shouldLoad);return(await Promise.all(n.map(i=>i.resolve()))).reduce((i,o,s)=>Object.assign(i,{[n[s].route.id]:o}),{})}async function Rd(e,t,n,r,i,o,s,a,l,c){let u=o.map(f=>f.route.lazy?Ed(f.route,l,a):void 0),h=o.map((f,p)=>{let m=u[p],g=i.some(C=>C.route.id===f.route.id);return ge({},f,{shouldLoad:g,resolve:async C=>(C&&r.method==="GET"&&(f.route.lazy||f.route.loader)&&(g=!0),g?Ad(t,r,f,m,C,c):Promise.resolve({type:ce.data,result:void 0}))})}),d=await e({matches:h,request:r,params:o[0].params,fetcherKey:s,context:c});try{await Promise.all(u)}catch{}return d}async function Ad(e,t,n,r,i,o){let s,a,l=c=>{let u,h=new Promise((p,m)=>u=m);a=()=>u(),t.signal.addEventListener("abort",a);let d=p=>typeof c!="function"?Promise.reject(new Error("You cannot call the handler for a route which defines a boolean "+('"'+e+'" [routeId: '+n.route.id+"]"))):c({request:t,params:n.params,context:o},...p!==void 0?[p]:[]),f=(async()=>{try{return{type:"data",result:await(i?i(m=>d(m)):d())}}catch(p){return{type:"error",result:p}}})();return Promise.race([f,h])};try{let c=n.route[e];if(r)if(c){let u,[h]=await Promise.all([l(c).catch(d=>{u=d}),r]);if(u!==void 0)throw u;s=h}else if(await r,c=n.route[e],c)s=await l(c);else if(e==="action"){let u=new URL(t.url),h=u.pathname+u.search;throw Ve(405,{method:t.method,pathname:h,routeId:n.route.id})}else return{type:ce.data,result:void 0};else if(c)s=await l(c);else{let u=new URL(t.url),h=u.pathname+u.search;throw Ve(404,{pathname:h})}ie(s.result!==void 0,"You defined "+(e==="action"?"an action":"a loader")+" for route "+('"'+n.route.id+"\" but didn't return anything from your `"+e+"` ")+"function. Please return a value or `null`.")}catch(c){return{type:ce.error,result:c}}finally{a&&t.signal.removeEventListener("abort",a)}return s}async function Pd(e){let{result:t,type:n}=e;if(jl(t)){let h;try{let d=t.headers.get("Content-Type");d&&/\bapplication\/json\b/.test(d)?t.body==null?h=null:h=await t.json():h=await t.text()}catch(d){return{type:ce.error,error:d}}return n===ce.error?{type:ce.error,error:new or(t.status,t.statusText,h),statusCode:t.status,headers:t.headers}:{type:ce.data,data:h,statusCode:t.status,headers:t.headers}}if(n===ce.error){if(Co(t)){var r,i;if(t.data instanceof Error){var o,s;return{type:ce.error,error:t.data,statusCode:(o=t.init)==null?void 0:o.status,headers:(s=t.init)!=null&&s.headers?new Headers(t.init.headers):void 0}}return{type:ce.error,error:new or(((r=t.init)==null?void 0:r.status)||500,void 0,t.data),statusCode:Tn(t)?t.status:void 0,headers:(i=t.init)!=null&&i.headers?new Headers(t.init.headers):void 0}}return{type:ce.error,error:t,statusCode:Tn(t)?t.status:void 0}}if(jd(t)){var a,l;return{type:ce.deferred,deferredData:t,statusCode:(a=t.init)==null?void 0:a.status,headers:((l=t.init)==null?void 0:l.headers)&&new Headers(t.init.headers)}}if(Co(t)){var c,u;return{type:ce.data,data:t.data,statusCode:(c=t.init)==null?void 0:c.status,headers:(u=t.init)!=null&&u.headers?new Headers(t.init.headers):void 0}}return{type:ce.data,data:t}}function Md(e,t,n,r,i,o){let s=e.headers.get("Location");if(ie(s,"Redirects returned/thrown from loaders/actions must have a Location header"),!Xi.test(s)){let a=r.slice(0,r.findIndex(l=>l.route.id===n)+1);s=xi(new URL(t.url),a,i,!0,s,o),e.headers.set("Location",s)}return e}function xo(e,t,n,r){let i=["about:","blob:","chrome:","chrome-untrusted:","content:","data:","devtools:","file:","filesystem:","javascript:"];if(Xi.test(e)){let o=e,s=o.startsWith("//")?new URL(t.protocol+o):new URL(o);if(i.includes(s.protocol))throw new Error("Invalid redirect location");let a=Kt(s.pathname,n)!=null;if(s.origin===t.origin&&a)return Ki(s.pathname)+s.search+s.hash}try{let o=r.createURL(e);if(i.includes(o.protocol))throw new Error("Invalid redirect location")}catch{}return e}function Nt(e,t,n,r){let i=e.createURL(Ll(t)).toString(),o={signal:n};if(r&&We(r.formMethod)){let{formMethod:s,formEncType:a}=r;o.method=s.toUpperCase(),a==="application/json"?(o.headers=new Headers({"Content-Type":a}),o.body=JSON.stringify(r.json)):a==="text/plain"?o.body=r.text:a==="application/x-www-form-urlencoded"&&r.formData?o.body=wi(r.formData):o.body=r.formData}return new Request(i,o)}function wi(e){let t=new URLSearchParams;for(let[n,r]of e.entries())t.append(n,typeof r=="string"?r:r.name);return t}function bo(e){let t=new FormData;for(let[n,r]of e.entries())t.append(n,r);return t}function _d(e,t,n,r,i){let o={},s=null,a,l=!1,c={},u=n&&Ne(n[1])?n[1].error:void 0;return e.forEach(h=>{if(!(h.route.id in t))return;let d=h.route.id,f=t[d];if(ie(!Et(f),"Cannot handle redirect results in processLoaderData"),Ne(f)){let p=f.error;u!==void 0&&(p=u,u=void 0),s=s||{};{let m=St(e,d);s[m.route.id]==null&&(s[m.route.id]=p)}o[d]=void 0,l||(l=!0,a=Tn(f.error)?f.error.status:500),f.headers&&(c[d]=f.headers)}else ht(f)?(r.set(d,f.deferredData),o[d]=f.deferredData.data,f.statusCode!=null&&f.statusCode!==200&&!l&&(a=f.statusCode),f.headers&&(c[d]=f.headers)):(o[d]=f.data,f.statusCode&&f.statusCode!==200&&!l&&(a=f.statusCode),f.headers&&(c[d]=f.headers))}),u!==void 0&&n&&(s={[n[0]]:u},o[n[0]]=void 0),{loaderData:o,errors:s,statusCode:a||200,loaderHeaders:c}}function wo(e,t,n,r,i,o,s){let{loaderData:a,errors:l}=_d(t,n,r,s);return i.forEach(c=>{let{key:u,match:h,controller:d}=c,f=o[u];if(ie(f,"Did not find corresponding fetcher result"),!(d&&d.signal.aborted))if(Ne(f)){let p=St(e.matches,h==null?void 0:h.route.id);l&&l[p.route.id]||(l=ge({},l,{[p.route.id]:f.error})),e.fetchers.delete(u)}else if(Et(f))ie(!1,"Unhandled fetcher revalidation redirect");else if(ht(f))ie(!1,"Unhandled fetcher deferred data");else{let p=at(f.data);e.fetchers.set(u,p)}}),{loaderData:a,errors:l}}function To(e,t,n,r){let i=ge({},t);for(let o of n){let s=o.route.id;if(t.hasOwnProperty(s)?t[s]!==void 0&&(i[s]=t[s]):e[s]!==void 0&&o.route.loader&&(i[s]=e[s]),r&&r.hasOwnProperty(s))break}return i}function So(e){return e?Ne(e[1])?{actionData:{}}:{actionData:{[e[0]]:e[1].data}}:{}}function St(e,t){return(t?e.slice(0,e.findIndex(r=>r.route.id===t)+1):[...e]).reverse().find(r=>r.route.hasErrorBoundary===!0)||e[0]}function Eo(e){let t=e.length===1?e[0]:e.find(n=>n.index||!n.path||n.path==="/")||{id:"__shim-error-route__"};return{matches:[{params:{},pathname:"",pathnameBase:"",route:t}],route:t}}function Ve(e,t){let{pathname:n,routeId:r,method:i,type:o,message:s}=t===void 0?{}:t,a="Unknown Server Error",l="Unknown @remix-run/router error";return e===400?(a="Bad Request",i&&n&&r?l="You made a "+i+' request to "'+n+'" but '+('did not provide a `loader` for route "'+r+'", ')+"so there is no way to handle the request.":o==="defer-action"?l="defer() is not supported in actions":o==="invalid-body"&&(l="Unable to encode submission body")):e===403?(a="Forbidden",l='Route "'+r+'" does not match URL "'+n+'"'):e===404?(a="Not Found",l='No route matches URL "'+n+'"'):e===405&&(a="Method Not Allowed",i&&n&&r?l="You made a "+i.toUpperCase()+' request to "'+n+'" but '+('did not provide an `action` for route "'+r+'", ')+"so there is no way to handle the request.":i&&(l='Invalid request method "'+i.toUpperCase()+'"')),new or(e||500,a,new Error(l),!0)}function Fn(e){let t=Object.entries(e);for(let n=t.length-1;n>=0;n--){let[r,i]=t[n];if(Et(i))return{key:r,result:i}}}function Ll(e){let t=typeof e=="string"?mt(e):e;return Dt(ge({},t,{hash:""}))}function Dd(e,t){return e.pathname!==t.pathname||e.search!==t.search?!1:e.hash===""?t.hash!=="":e.hash===t.hash?!0:t.hash!==""}function Ld(e){return jl(e.result)&&yd.has(e.result.status)}function ht(e){return e.type===ce.deferred}function Ne(e){return e.type===ce.error}function Et(e){return(e&&e.type)===ce.redirect}function Co(e){return typeof e=="object"&&e!=null&&"type"in e&&"data"in e&&"init"in e&&e.type==="DataWithResponseInit"}function jd(e){let t=e;return t&&typeof t=="object"&&typeof t.data=="object"&&typeof t.subscribe=="function"&&typeof t.cancel=="function"&&typeof t.resolveData=="function"}function jl(e){return e!=null&&typeof e.status=="number"&&typeof e.statusText=="string"&&typeof e.headers=="object"&&typeof e.body<"u"}function Od(e){return gd.has(e.toLowerCase())}function We(e){return pd.has(e.toLowerCase())}async function kd(e,t,n,r,i){let o=Object.entries(t);for(let s=0;s<o.length;s++){let[a,l]=o[s],c=e.find(d=>(d==null?void 0:d.route.id)===a);if(!c)continue;let u=r.find(d=>d.route.id===c.route.id),h=u!=null&&!_l(u,c)&&(i&&i[c.route.id])!==void 0;ht(l)&&h&&await Zi(l,n,!1).then(d=>{d&&(t[a]=d)})}}async function Id(e,t,n){for(let r=0;r<n.length;r++){let{key:i,routeId:o,controller:s}=n[r],a=t[i];e.find(c=>(c==null?void 0:c.route.id)===o)&&ht(a)&&(ie(s,"Expected an AbortController for revalidating fetcher deferred result"),await Zi(a,s.signal,!0).then(c=>{c&&(t[i]=c)}))}}async function Zi(e,t,n){if(n===void 0&&(n=!1),!await e.deferredData.resolveData(t)){if(n)try{return{type:ce.data,data:e.deferredData.unwrappedData}}catch(i){return{type:ce.error,error:i}}return{type:ce.data,data:e.deferredData.data}}}function Ji(e){return new URLSearchParams(e).getAll("index").some(t=>t==="")}function fn(e,t){let n=typeof t=="string"?mt(t).search:t.search;if(e[e.length-1].route.index&&Ji(n||""))return e[e.length-1];let r=Al(e);return r[r.length-1]}function Ro(e){let{formMethod:t,formAction:n,formEncType:r,text:i,formData:o,json:s}=e;if(!(!t||!n||!r)){if(i!=null)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:void 0,text:i};if(o!=null)return{formMethod:t,formAction:n,formEncType:r,formData:o,json:void 0,text:void 0};if(s!==void 0)return{formMethod:t,formAction:n,formEncType:r,formData:void 0,json:s,text:void 0}}}function Yr(e,t){return t?{state:"loading",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}:{state:"loading",location:e,formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0}}function Vd(e,t){return{state:"submitting",location:e,formMethod:t.formMethod,formAction:t.formAction,formEncType:t.formEncType,formData:t.formData,json:t.json,text:t.text}}function un(e,t){return e?{state:"loading",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t}:{state:"loading",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:t}}function Nd(e,t){return{state:"submitting",formMethod:e.formMethod,formAction:e.formAction,formEncType:e.formEncType,formData:e.formData,json:e.json,text:e.text,data:t?t.data:void 0}}function at(e){return{state:"idle",formMethod:void 0,formAction:void 0,formEncType:void 0,formData:void 0,json:void 0,text:void 0,data:e}}function Fd(e,t){try{let n=e.sessionStorage.getItem(Ml);if(n){let r=JSON.parse(n);for(let[i,o]of Object.entries(r||{}))o&&Array.isArray(o)&&t.set(i,new Set(o||[]))}}catch{}}function Bd(e,t){if(t.size>0){let n={};for(let[r,i]of t)n[r]=[...i];try{e.sessionStorage.setItem(Ml,JSON.stringify(n))}catch(r){_t(!1,"Failed to save applied view transitions in sessionStorage ("+r+").")}}}/** 36 * React Router v6.30.4 37 * 38 * Copyright (c) Remix Software Inc. 39 * 40 * This source code is licensed under the MIT license found in the 41 * LICENSE.md file in the root directory of this source tree. 42 * 43 * @license MIT 44 */function ar(){return ar=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ar.apply(null,arguments)}const Sr=w.createContext(null),Ol=w.createContext(null),gt=w.createContext(null),Qi=w.createContext(null),rt=w.createContext({outlet:null,matches:[],isDataRoute:!1}),kl=w.createContext(null);function zd(e,t){let{relative:n}=t===void 0?{}:t;Xt()||ie(!1);let{basename:r,navigator:i}=w.useContext(gt),{hash:o,pathname:s,search:a}=Nl(e,{relative:n}),l=s;return r!=="/"&&(l=s==="/"?r:nt([r,s])),i.createHref({pathname:l,search:a,hash:o})}function Xt(){return w.useContext(Qi)!=null}function Zt(){return Xt()||ie(!1),w.useContext(Qi).location}function Il(e){w.useContext(gt).static||w.useLayoutEffect(e)}function Vl(){let{isDataRoute:e}=w.useContext(rt);return e?ef():Ud()}function Ud(){Xt()||ie(!1);let e=w.useContext(Sr),{basename:t,future:n,navigator:r}=w.useContext(gt),{matches:i}=w.useContext(rt),{pathname:o}=Zt(),s=JSON.stringify(wr(i,n.v7_relativeSplatPath)),a=w.useRef(!1);return Il(()=>{a.current=!0}),w.useCallback(function(c,u){if(u===void 0&&(u={}),!a.current)return;if(typeof c=="number"){r.go(c);return}let h=Tr(c,JSON.parse(s),o,u.relative==="path");e==null&&t!=="/"&&(h.pathname=h.pathname==="/"?t:nt([t,h.pathname])),(u.replace?r.replace:r.push)(h,u.state,u)},[t,r,s,o,e])}function Hd(){let{matches:e}=w.useContext(rt),t=e[e.length-1];return t?t.params:{}}function Nl(e,t){let{relative:n}=t===void 0?{}:t,{future:r}=w.useContext(gt),{matches:i}=w.useContext(rt),{pathname:o}=Zt(),s=JSON.stringify(wr(i,r.v7_relativeSplatPath));return w.useMemo(()=>Tr(e,JSON.parse(s),o,n==="path"),[e,s,o,n])}function $d(e,t,n,r){Xt()||ie(!1);let{navigator:i}=w.useContext(gt),{matches:o}=w.useContext(rt),s=o[o.length-1],a=s?s.params:{};s&&s.pathname;let l=s?s.pathnameBase:"/";s&&s.route;let c=Zt(),u;u=c;let h=u.pathname||"/",d=h;if(l!=="/"){let m=l.replace(/^\//,"").split("/");d="/"+h.replace(/^\//,"").split("/").slice(m.length).join("/")}let f=ut(e,{pathname:d});return Kd(f&&f.map(m=>Object.assign({},m,{params:Object.assign({},a,m.params),pathname:nt([l,i.encodeLocation?i.encodeLocation(m.pathname).pathname:m.pathname]),pathnameBase:m.pathnameBase==="/"?l:nt([l,i.encodeLocation?i.encodeLocation(m.pathnameBase).pathname:m.pathnameBase])})),o,n,r)}function Wd(){let e=Qd(),t=Tn(e)?e.status+" "+e.statusText:e instanceof Error?e.message:JSON.stringify(e),n=e instanceof Error?e.stack:null,i={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return w.createElement(w.Fragment,null,w.createElement("h2",null,"Unexpected Application
44Error!"),w.createElement("h3",{style:{fontStyle:"italic"}},t),n?w.createElement("pre",{style:i},n):null,null)}const Gd=w.createElement(Wd,null);class qd extends w.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,n){return n.location!==t.location||n.revalidation!=="idle"&&t.revalidation==="idle"?{error:t.error,location:t.location,revalidation:t.revalidation}:{error:t.error!==void 0?t.error:n.error,location:n.location,revalidation:t.revalidation||n.revalidation}}componentDidCatch(t,n){console.error("React Router caught the following error during render",t,n)}render(){return this.state.error!==void 0?w.createElement(rt.Provider,{value:this.props.routeContext},w.createElement(kl.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function Yd(e){let{routeContext:t,match:n,children:r}=e,i=w.useContext(Sr);return i&&i.static&&i.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(i.staticContext._deepestRenderedBoundaryId=n.route.id),w.createElement(rt.Provider,{value:t},r)}function Kd(e,t,n,r){var i;if(t===void 0&&(t=[]),n===void 0&&(n=null),r===void 0&&(r=null),e==null){var o;if(!n)return null;if(n.errors)e=n.matches;else if((o=r)!=null&&o.v7_partialHydration&&t.length===0&&!n.initialized&&n.matches.length>0)e=n.matches;else return null}let s=e,a=(i=n)==null?void 0:i.errors;if(a!=null){let u=s.findIndex(h=>h.route.id&&(a==null?void 0:a[h.route.id])!==void 0);u>=0||ie(!1),s=s.slice(0,Math.min(s.length,u+1))}let l=!1,c=-1;if(n&&r&&r.v7_partialHydration)for(let u=0;u<s.length;u++){let h=s[u];if((h.route.HydrateFallback||h.route.hydrateFallbackElement)&&(c=u),h.route.id){let{loaderData:d,errors:f}=n,p=h.route.loader&&d[h.route.id]===void 0&&(!f||f[h.route.id]===void 0);if(h.route.lazy||p){l=!0,c>=0?s=s.slice(0,c+1):s=[s[0]];break}}}return s.reduceRight((u,h,d)=>{let f,p=!1,m=null,g=null;n&&(f=a&&h.route.id?a[h.route.id]:void 0,m=h.route.errorElement||Gd,l&&(c<0&&d===0?(tf("route-fallback"),p=!0,g=null):c===d&&(p=!0,g=h.route.hydrateFallbackElement||null)));let v=t.concat(s.slice(0,d+1)),C=()=>{let S;return f?S=m:p?S=g:h.route.Component?S=w.createElement(h.route.Component,null):h.route.element?S=h.route.element:S=u,w.createElement(Yd,{match:h,routeContext:{outlet:u,matches:v,isDataRoute:n!=null},children:S})};return n&&(h.route.ErrorBoundary||h.route.errorElement||d===0)?w.createElement(qd,{location:n.location,revalidation:n.revalidation,component:m,error:f,children:C(),routeContext:{outlet:null,matches:v,isDataRoute:!0}}):C()},null)}var Fl=(function(e){return e.UseBlocker="useBlocker",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e})(Fl||{}),lr=(function(e){return e.UseBlocker="useBlocker",e.UseLoaderData="useLoaderData",e.UseActionData="useActionData",e.UseRouteError="useRouteError",e.UseNavigation="useNavigation",e.UseRouteLoaderData="useRouteLoaderData",e.UseMatches="useMatches",e.UseRevalidator="useRevalidator",e.UseNavigateStable="useNavigate",e.UseRouteId="useRouteId",e})(lr||{});function Xd(e){let t=w.useContext(Sr);return t||ie(!1),t}function Zd(e){let t=w.useContext(Ol);return t||ie(!1),t}function Jd(e){let t=w.useContext(rt);return t||ie(!1),t}function Bl(e){let t=Jd(),n=t.matches[t.matches.length-1];return n.route.id||ie(!1),n.route.id}function Qd(){var e;let t=w.useContext(kl),n=Zd(lr.UseRouteError),r=Bl(lr.UseRouteError);return t!==void 0?t:(e=n.errors)==null?void 0:e[r]}function ef(){let{router:e}=Xd(Fl.UseNavigateStable),t=Bl(lr.UseNavigateStable),n=w.useRef(!1);return Il(()=>{n.current=!0}),w.useCallback(function(i,o){o===void 0&&(o={}),n.current&&(typeof i=="number"?e.navigate(i):e.navigate(i,ar({fromRouteId:t},o)))},[e,t])}const Ao={};function tf(e,t,n){Ao[e]||(Ao[e]=!0)}function nf(e,t){e==null||e.v7_startTransition,(e==null?void 0:e.v7_relativeSplatPath)===void 0&&(!t||t.v7_relativeSplatPath),t&&(t.v7_fetcherPersist,t.v7_normalizeFormMethod,t.v7_partialHydration,t.v7_skipActionErrorRevalidation)}function rf(e){let{to:t,replace:n,state:r,relative:i}=e;Xt()||ie(!1);let{future:o,static:s}=w.useContext(gt),{matches:a}=w.useContext(rt),{pathname:l}=Zt(),c=Vl(),u=Tr(t,wr(a,o.v7_relativeSplatPath),l,i==="path"),h=JSON.stringify(u);return w.useEffect(()=>c(JSON.parse(h),{replace:n,state:r,relative:i}),[c,h,i,n,r]),null}function sf(e){let{basename:t="/",children:n=null,location:r,navigationType:i=Ae.Pop,navigator:o,static:s=!1,future:a}=e;Xt()&&ie(!1);let l=t.replace(/^\/*/,"/"),c=w.useMemo(()=>({basename:l,navigator:o,static:s,future:ar({v7_relativeSplatPath:!1},a)}),[l,a,o,s]);typeof r=="string"&&(r=mt(r));
vendor: 5,857 bytes, lines 44-53
44let{pathname:u="/",search:h="",hash:d="",state:f=null,key:p="default"}=r,m=w.useMemo(()=>{let g=Kt(u,l);return g==null?null:{location:{pathname:g,search:h,hash:d,state:f,key:p},navigationType:i}},[l,u,h,d,f,p,i]);return m==null?null:w.createElement(gt.Provider,{value:c},w.createElement(Qi.Provider,{children:n,value:m}))}new Promise(()=>{});function of(e){let t={hasErrorBoundary:e.ErrorBoundary!=null||e.errorElement!=null};return e.Component&&Object.assign(t,{element:w.createElement(e.Component),Component:void 0}),e.HydrateFallback&&Object.assign(t,{hydrateFallbackElement:w.createElement(e.HydrateFallback),HydrateFallback:void 0}),e.ErrorBoundary&&Object.assign(t,{errorElement:w.createElement(e.ErrorBoundary),ErrorBoundary:void 0}),t}/** 45 * React Router DOM v6.30.4 46 * 47 * Copyright (c) Remix Software Inc. 48 * 49 * This source code is licensed under the MIT license found in the 50 * LICENSE.md file in the root directory of this source tree. 51 * 52 * @license MIT 53 */function Sn(){return Sn=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},Sn.apply(null,arguments)}function af(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function lf(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function cf(e,t){return e.button===0&&(!t||t==="_self")&&!lf(e)}const uf=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],hf="6";try{window.__reactRouterVersion=hf}catch{}function df(e,t){return wd({basename:t==null?void 0:t.basename,future:Sn({},t==null?void 0:t.future,{v7_prependBasename:!0}),history:$h({window:t==null?void 0:t.window}),hydrationData:(t==null?void 0:t.hydrationData)||ff(),routes:e,mapRouteProperties:of,dataStrategy:t==null?void 0:t.dataStrategy,patchRoutesOnNavigation:t==null?void 0:t.patchRoutesOnNavigation,window:t==null?void 0:t.window}).initialize()}function ff(){var e;let t=(e=window)==null?void 0:e.__staticRouterHydrationData;return t&&t.errors&&(t=Sn({},t,{errors:pf(t.errors)})),t}function pf(e){if(!e)return null;let t=Object.entries(e),n={};for(let[r,i]of t)if(i&&i.__type==="RouteErrorResponse")n[r]=new or(i.status,i.statusText,i.data,i.internal===!0);else if(i&&i.__type==="Error"){if(i.__subType){let o=window[i.__subType];if(typeof o=="function")try{let s=new o(i.message);s.stack="",n[r]=s}catch{}}if(n[r]==null){let o=new Error(i.message);o.stack="",n[r]=o}}else n[r]=i;return n}const mf=w.createContext({isTransitioning:!1}),gf=w.createContext(new Map),yf="startTransition",Po=mh[yf],vf="flushSync",Mo=El[vf];function xf(e){Po?Po(e):e()}function hn(e){Mo?Mo(e):e()}class bf{constructor(){this.status="pending",this.promise=new Promise((t,n)=>{this.resolve=r=>{this.status==="pending"&&(this.status="resolved",t(r))},this.reject=r=>{this.status==="pending"&&(this.status="rejected",n(r))}})}}function wf(e){let{fallbackElement:t,router:n,future:r}=e,[i,o]=w.useState(n.state),[s,a]=w.useState(),[l,c]=w.useState({isTransitioning:!1}),[u,h]=w.useState(),[d,f]=w.useState(),[p,m]=w.useState(),g=w.useRef(new Map),{v7_startTransition:v}=r||{},C=w.useCallback(M=>{v?xf(M):M()},[v]),S=w.useCallback((M,O)=>{let{deletedFetchers:_,flushSync:V,viewTransitionOpts:N}=O;M.fetchers.forEach((k,H)=>{k.data!==void 0&&g.current.set(H,k.data)}),_.forEach(k=>g.current.delete(k));let W=n.window==null||n.window.document==null||typeof n.window.document.startViewTransition!="function";if(!N||W){V?hn(()=>o(M)):C(()=>o(M));return}if(V){hn(()=>{d&&(u&&u.resolve(),d.skipTransition()),c({isTransitioning:!0,flushSync:!0,currentLocation:N.currentLocation,nextLocation:N.nextLocation})});let k=n.window.document.startViewTransition(()=>{hn(()=>o(M))});k.finished.finally(()=>{hn(()=>{h(void 0),f(void 0),a(void 0),c({isTransitioning:!1})})}),hn(()=>f(k));return}d?(u&&u.resolve(),d.skipTransition(),m({state:M,currentLocation:N.currentLocation,nextLocation:N.nextLocation})):(a(M),c({isTransitioning:!0,flushSync:!1,currentLocation:N.currentLocation,nextLocation:N.nextLocation}))},[n.window,d,u,g,C]);w.useLayoutEffect(()=>n.subscribe(S),[n,S]),w.useEffect(()=>{l.isTransitioning&&!l.flushSync&&h(new bf)},[l]),w.useEffect(()=>{if(u&&s&&n.window){let M=s,O=u.promise,_=n.window.document.startViewTransition(async()=>{C(()=>o(M)),await O});_.finished.finally(()=>{h(void 0),f(void 0),a(void 0),c({isTransitioning:!1})}),f(_)}},[C,s,u,n.window]),w.useEffect(()=>{u&&s&&i.location.key===s.location.key&&u.resolve()},[u,d,i.location,s]),w.useEffect(()=>{!l.isTransitioning&&p&&(a(p.state),c({isTransitioning:!0,flushSync:!1,currentLocation:p.currentLocation,nextLocation:p.nextLocation}),m(void 0))},[l.isTransitioning,p]),w.useEffect(()=>{},[]);let R=w.useMemo(()=>({createHref:n.createHref,encodeLocation:n.encodeLocation,go:M=>n.navigate(M),push:(M,O,_)=>n.navigate(M,{state:O,preventScrollReset:_==null?void 0:_.preventScrollReset}),replace:(M,O,_)=>n.navigate(M,{replace:!0,state:O,preventScrollReset:_==null?void 0:_.preventScrollReset})}),[n]),P=n.basename||"/",j=w.useMemo(()=>({router:n,navigator:R,static:!1,basename:P}),[n,R,P]),b=w.useMemo(()=>({v7_relativeSplatPath:n.future.v7_relativeSplatPath}),[n.future.v7_relativeSplatPath]);return w.useEffect(()=>nf(r,n.future),[r,n.future]),w.createElement(w.Fragment,null,w.createElement(Sr.Provider,{value:j},w.createElement(Ol.Provider,{value:i},w.createElement(gf.Provider,{value:g.current},w.createElement(mf.Provider,{value:l},w.createElement(sf,{basename:P,location:i.location,navigationType:i.historyAction,navigator:R,future:b},i.initialized||n.future.v7_partialHydration?w.createElement(Tf,{routes:n.routes,future:n.future,state:i}):t))))),null)}const Tf=w.memo(Sf);function Sf(e){let{routes:t,future:n,state:r}=e;
53return $d(t,void 0,r,n)}const Ef=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",Cf=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,Wt=w.forwardRef(function(t,n){let{onClick:r,relative:i,reloadDocument:o,replace:s,state:a,target:l,to:c,preventScrollReset:u,viewTransition:h}=t,d=af(t,uf),{basename:f}=w.useContext(gt),p,m=!1;if(typeof c=="string"&&Cf.test(c)&&(p=c,Ef))try{let S=new URL(window.location.href),R=c.startsWith("//")?new URL(S.protocol+c):new URL(c),P=Kt(R.pathname,f);R.origin===S.origin&&P!=null?c=P+R.search+R.hash:m=!0}catch{}let g=zd(c,{relative:i}),v=Rf(c,{replace:s,state:a,target:l,preventScrollReset:u,relative:i,viewTransition:h});function C(S){r&&r(S),S.defaultPrevented||v(S)}return w.createElement("a",Sn({},d,{href:p||g,onClick:m||o?r:C,ref:n,target:l}))});var _o;(function(e){e.UseScrollRestoration="useScrollRestoration",e.UseSubmit="useSubmit",e.UseSubmitFetcher="useSubmitFetcher",e.UseFetcher="useFetcher",e.useViewTransitionState="useViewTransitionState"})(_o||(_o={}));var Do;(function(e){e.UseFetcher="useFetcher",e.UseFetchers="useFetchers",e.UseScrollRestoration="useScrollRestoration"})(Do||(Do={}));function Rf(e,t){let{target:n,replace:r,state:i,preventScrollReset:o,relative:s,viewTransition:a}=t===void 0?{}:t,l=Vl(),c=Zt(),u=Nl(e,{relative:s});return w.useCallback(h=>{if(cf(h,n)){h.preventDefault();let d=r!==void 0?r:Dt(c)===Dt(u);l(e,{replace:d,state:i,preventScrollReset:o,relative:s,viewTransition:a})}},[c,l,u,r,i,n,e,o,s,a])}const Af="modulepreload",Pf=function(e){return"/"+e},Lo={},zl=function(t,n,r){let i=Promise.resolve();if(n&&n.length>0){let s=function(c){return Promise.all(c.map(u=>Promise.resolve(u).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=s(n.map(c=>{if(c=Pf(c),c in Lo)return;Lo[c]=!0;const u=c.endsWith(".css"),h=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=u?"stylesheet":Af,u||(d.as="script"),d.crossOrigin="",d.href=c,l&&d.setAttribute("nonce",l),document.head.appendChild(d),u)return new Promise((f,p)=>{d.addEventListener("load",f),d.addEventListener("error",()=>p(new Error(`Unable to preload CSS for ${c}`)))})}))}function o(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&o(a.reason);return t().catch(o)})},At={...El},{version:Ul,render:Mf,hydrate:_f}=At,Hl=Number((Ul||"").split(".")[0])>17,$l=Number((Ul||"").split(".")[0])>18;function Df(e,t,n={}){const{useLegacyRender:r}=n;if(r||!Hl)Mf(e,t);else if($l)zl(()=>import("./client-BWVn70wp.js").then(i=>i.c),[]).then(({default:{createRoot:i}})=>{const o=i(t);Ee.startTransition(()=>{o.render(e)})});else{At.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!0;const{createRoot:i}=At;if(!i)throw new Error("createRoot not found");const o=i(t);At.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!1,Ee.startTransition(()=>{o.render(e)})}}function Lf(e,t,n={}){const{useLegacyRender:r}=n;if(r||!Hl)_f(e,t);else if($l)zl(()=>import("./client-BWVn70wp.js").then(i=>i.c),[]).then(({default:{hydrateRoot:i}})=>{Ee.startTransition(()=>{i(t,e)})});else{At.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!0;const{hydrateRoot:i}=At;if(!i)throw new Error("hydrateRoot not found");Ee.startTransition(()=>{i(t,e),At.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.usingClientEntryPoint=!1})}}function jf(e){return document.readyState==="loading"?new Promise(t=>{document.addEventListener("DOMContentLoaded",()=>t(e))}):Promise.resolve(e)}function Of(e){try{return JSON.parse(e||"{}")}catch(t){return console.error("[SSG] On state deserialization -",t,e),{}}}function jo(e,t){return!e||!t?e||t||"":(e[e.length-1]==="/"&&(e=e.substring(0,e.length-1)),t[0]!=="/"&&(t=`/${t}`),e+t)}function kf(e,t){if(e===t)return"/";const n=If(t);return e.startsWith(n)?e.slice(n.length-1):e}function If(e){return e[e.length-1]!=="/"?`${e}/`:e}function Oo(e){return e[0]!=="/"?`/${e}`:e}function Wl(e,t,n=[]){return e.map((r,i)=>{const o=[...n,String(i)],s=typeof r.id=="string"?r.id:o.join("-");if(r.id=s,Vf(r))return{...r,...t(r),id:s};{const a={...r,...t(r),id:s,children:void 0};return r.children&&(a.children=Wl(r.children,t,o)),a}})}function Vf(e){return e.index===!0}function Nf(e){return y.jsx(Gn,{...e})}function Ff(e,t,n={}){const{transformState:r,rootContainer:i="#root",ssrWhenDev:o,getStyleCollector:s=null}=n,a=typeof window<"u",l=e.basename??"/",{v7_startTransition:c=!0,...u}=e.future??{};async function h(f=!1,p){const m=e.customCreateRouter??df,g=f?m(Wl(e.routes,d),{basename:l,future:u}):void 0,v=[],C=f?()=>{}:j=>v.push(j),S=()=>Promise.all(v.map(j=>j())),R={isClient:a,routes:e.routes,router:g,routerOptions:e,onSSRAppRendered:C,triggerOnSSRAppRendered:S,initialState:{},transformState:r,routePath:p,base:l,getStyleCollector:s,routerType:"remix"};f&&(await jf(),R.initialState=(r==null?void 0:r(window.__INITIAL_STATE__||{}))||Of(window.__INITIAL_STATE__)),await(t==null?void 0:t(R));const P=R.initialState;return{...R,initialState:P}}return a&&(async()=>{var S;const f=typeof i=="string"?document.querySelector(i):i;if(!f){typeof $jsdom>"u"&&console.warn("[vite-react-ssg] Root container not found.");return}const p=(S=ut(e.routes,window.location,l))==null?void 0:S.filter(R=>R.route.lazy);p&&(p==null?void 0:p.length)>0&&await Promise.all(p.map(async R=>{const P=await R.route.lazy();Object.assign(R.route,{...P,lazy:void 0})}));const m=await h(!0);window.__VITE_REACT_SSG_CONTEXT__=m;const{router:g}=m,v=y.jsx(Bt,{children:y.jsx(wf,{router:g,future:{v7_startTransition:c}})});document.querySelector("[data-server-rendered=true]")!==null?Lf(v,f,n):Df(v,f,n)})(),h;function d(f){if(!(document.querySelector("[data-server-rendered=true]")!==null))return f;const m=async({request:g})=>{var v;{if(!window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__){const b=jo(l,`static-loader-data-manifest-${window.__VITE_REACT_SSG_HASH__}.json`);window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__=await(await fetch(Oo(b))).json()}const{url:C}=g;let{pathname:S}=new URL(C);l!=="/"&&(S=kf(S,l));const R=window.__VITE_REACT_SSG_STATIC_LOADER_MANIFEST__,P=R==null?void 0:R[S];if(!P)return null;if(window.__VITE_REACT_SSG_STATIC_LOADER_DATA__||(window.__VITE_REACT_SSG_STATIC_LOADER_DATA__={}),!window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[S]){const b=jo(l,P);window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[S]=await(await fetch(Oo(b))).json()}return((v=window.__VITE_REACT_SSG_STATIC_LOADER_DATA__[S])==null?void 0:v[f.id])??null}};return f.loader=m,f}}const Bf="https://sonu-hansda.me",zf=`${Bf}/og-image.png`,Uf=e=>{const t=new Date(e);return isNaN(t.getTime())?void 0:t.toISOString()},es=({title:e,description:t,canonical:n,image:r=zf,type:i="website",publishedTime:o,tags:s,jsonLd:a})=>{const l=o?Uf(o):void 0,c=a?Array.isArray(a)?a:[a]:[];return y.jsxs(Nf,{children:[y.jsx("title",{children:e}),y.jsx("meta",{name:"description",content:t}),y.jsx("meta",{name:"robots",content:"index, follow, max-image-preview:large"}),y.jsx("link",{rel:"canonical",href:n}),y.jsx("meta",{property:"og:type",content:i}),y.jsx("meta",{property:"og:url",content:n}),y.jsx("meta",{property:"og:title",content:e}),y.jsx("meta",{property:"og:description",content:t}),y.jsx("meta",{property:"og:image",content:r}),y.jsx("meta",{property:"og:site_name",content:"Sonu Hansda Portfolio"}),y.jsx("meta",{property:"og:locale",content:"en_US"}),y.jsx("meta",{name:"twitter:card",content:"summary_large_image"}),y.jsx("meta",{name:"twitter:url",content:n}),y.jsx("meta",{name:"twitter:title",content:e}),y.jsx("meta",{name:"twitter:description",content:t}),y.jsx("meta",{name:"twitter:image",content:r}),y.jsx("meta",{name:"twitter:creator",content:"@SonuHansda"}),y.jsx("meta",{name:"twitter:site",content:"@SonuHansda"}),i==="article"&&l&&y.jsx("meta",{property:"article:published_time",content:l}),i==="article"&&(s==null?void 0:s.map(u=>y.jsx("meta",{property:"article:tag",content:u},u))),c.map((u,h)=>y.jsx("script",{type:"application/ld+json",children:JSON.stringify(u)},h))]})},ts=w.createContext({});function ns(e){const t=w.useRef(null);return t.current===null&&(t.current=e()),t.current}const Hf=typeof window<"u",Gl=Hf?w.useLayoutEffect:w.useEffect,Er=w.createContext(null);function rs(e,t){e.indexOf(t)===-1&&e.push(t)}function cr(e,t){const n=e.indexOf(t);n>-1&&e.splice(n,1)}
vendor: 28,768 bytes, line 53
53const Je=(e,t,n)=>n>t?t:n<e?e:n;let is=()=>{};const ft={},ql=e=>/^-?(?:\d+(?:\.\d+)?|\.\d+)$/u.test(e);function Yl(e){return typeof e=="object"&&e!==null}const Kl=e=>/^0[^.\s]+$/u.test(e);function Xl(e){let t;return()=>(t===void 0&&(t=e()),t)}const Ue=e=>e,$f=(e,t)=>n=>t(e(n)),Pn=(...e)=>e.reduce($f),En=(e,t,n)=>{const r=t-e;return r===0?1:(n-e)/r};class ss{constructor(){this.subscriptions=[]}add(t){return rs(this.subscriptions,t),()=>cr(this.subscriptions,t)}notify(t,n,r){const i=this.subscriptions.length;if(i)if(i===1)this.subscriptions[0](t,n,r);else for(let o=0;o<i;o++){const s=this.subscriptions[o];s&&s(t,n,r)}}getSize(){return this.subscriptions.length}clear(){this.subscriptions.length=0}}const Fe=e=>e*1e3,ze=e=>e/1e3;function Zl(e,t){return t?e*(1e3/t):0}const Jl=(e,t,n)=>(((1-3*n+3*t)*e+(3*n-6*t))*e+3*t)*e,Wf=1e-7,Gf=12;function qf(e,t,n,r,i){let o,s,a=0;do s=t+(n-t)/2,o=Jl(s,r,i)-e,o>0?n=s:t=s;while(Math.abs(o)>Wf&&++a<Gf);return s}function Mn(e,t,n,r){if(e===t&&n===r)return Ue;const i=o=>qf(o,0,1,e,n);return o=>o===0||o===1?o:Jl(i(o),t,r)}const Ql=e=>t=>t<=.5?e(2*t)/2:(2-e(2*(1-t)))/2,ec=e=>t=>1-e(1-t),tc=Mn(.33,1.53,.69,.99),os=ec(tc),nc=Ql(os),rc=e=>e>=1?1:(e*=2)<1?.5*os(e):.5*(2-Math.pow(2,-10*(e-1))),as=e=>1-Math.sin(Math.acos(e)),ic=ec(as),sc=Ql(as),Yf=Mn(.42,0,1,1),Kf=Mn(0,0,.58,1),oc=Mn(.42,0,.58,1),Xf=e=>Array.isArray(e)&&typeof e[0]!="number",ac=e=>Array.isArray(e)&&typeof e[0]=="number",Zf={linear:Ue,easeIn:Yf,easeInOut:oc,easeOut:Kf,circIn:as,circInOut:sc,circOut:ic,backIn:os,backInOut:nc,backOut:tc,anticipate:rc},Jf=e=>typeof e=="string",ko=e=>{if(ac(e)){is(e.length===4);const[t,n,r,i]=e;return Mn(t,n,r,i)}else if(Jf(e))return Zf[e];return e},Bn=["setup","read","resolveKeyframes","preUpdate","update","preRender","render","postRender"];function Qf(e,t){let n=new Set,r=new Set,i=!1,o=!1;const s=new WeakSet;let a={delta:0,timestamp:0,isProcessing:!1};function l(u){s.has(u)&&(c.schedule(u),e()),u(a)}const c={schedule:(u,h=!1,d=!1)=>{const p=d&&i?n:r;return h&&s.add(u),p.add(u),u},cancel:u=>{r.delete(u),s.delete(u)},process:u=>{if(a=u,i){o=!0;return}i=!0;const h=n;n=r,r=h,n.forEach(l),n.clear(),i=!1,o&&(o=!1,c.process(u))}};return c}const ep=40;function lc(e,t){let n=!1,r=!0;const i={delta:0,timestamp:0,isProcessing:!1},o=()=>n=!0,s=Bn.reduce((S,R)=>(S[R]=Qf(o),S),{}),{setup:a,read:l,resolveKeyframes:c,preUpdate:u,update:h,preRender:d,render:f,postRender:p}=s,m=()=>{const S=ft.useManualTiming,R=S?i.timestamp:performance.now();n=!1,S||(i.delta=r?1e3/60:Math.max(Math.min(R-i.timestamp,ep),1)),i.timestamp=R,i.isProcessing=!0,a.process(i),l.process(i),c.process(i),u.process(i),h.process(i),d.process(i),f.process(i),p.process(i),i.isProcessing=!1,n&&t&&(r=!1,e(m))},g=()=>{n=!0,r=!0,i.isProcessing||e(m)};return{schedule:Bn.reduce((S,R)=>{const P=s[R];return S[R]=(j,b=!1,M=!1)=>(n||g(),P.schedule(j,b,M)),S},{}),cancel:S=>{for(let R=0;R<Bn.length;R++)s[Bn[R]].cancel(S)},state:i,steps:s}}const{schedule:de,cancel:pt,state:De,steps:Kr}=lc(typeof requestAnimationFrame<"u"?requestAnimationFrame:Ue,!0);let Yn;function tp(){Yn=void 0}const ke={now:()=>(Yn===void 0&&ke.set(De.isProcessing||ft.useManualTiming?De.timestamp:performance.now()),Yn),set:e=>{Yn=e,queueMicrotask(tp)}},cc=e=>t=>typeof t=="string"&&t.startsWith(e),uc=cc("--"),np=cc("var(--"),ls=e=>np(e)?rp.test(e.split("/*")[0].trim()):!1,rp=/var\(--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)$/iu;function Io(e){return typeof e!="string"?!1:e.split("/*")[0].includes("var(--")}const Jt={test:e=>typeof e=="number",parse:parseFloat,transform:e=>e},Cn={...Jt,transform:e=>Je(0,1,e)},zn={...Jt,default:1},gn=e=>Math.round(e*1e5)/1e5,cs=/-?(?:\d+(?:\.\d+)?|\.\d+)/gu;function ip(e){return e==null}const sp=/^(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))$/iu,us=(e,t)=>n=>!!(typeof n=="string"&&sp.test(n)&&n.startsWith(e)||t&&!ip(n)&&Object.prototype.hasOwnProperty.call(n,t)),hc=(e,t,n)=>r=>{if(typeof r!="string")return r;const[i,o,s,a]=r.match(cs);return{[e]:parseFloat(i),[t]:parseFloat(o),[n]:parseFloat(s),alpha:a!==void 0?parseFloat(a):1}},op=e=>Je(0,255,e),Xr={...Jt,transform:e=>Math.round(op(e))},Ct={test:us("rgb","red"),parse:hc("red","green","blue"),transform:({red:e,green:t,blue:n,alpha:r=1})=>"rgba("+Xr.transform(e)+", "+Xr.transform(t)+", "+Xr.transform(n)+", "+gn(Cn.transform(r))+")"};function ap(e){let t="",n="",r="",i="";return e.length>5?(t=e.substring(1,3),n=e.substring(3,5),r=e.substring(5,7),i=e.substring(7,9)):(t=e.substring(1,2),n=e.substring(2,3),r=e.substring(3,4),i=e.substring(4,5),t+=t,n+=n,r+=r,i+=i),{red:parseInt(t,16),green:parseInt(n,16),blue:parseInt(r,16),alpha:i?parseInt(i,16)/255:1}}const Ti={test:us("#"),parse:ap,transform:Ct.transform},_n=e=>({test:t=>typeof t=="string"&&t.endsWith(e)&&t.split(" ").length===1,parse:parseFloat,transform:t=>`${t}${e}`}),lt=_n("deg"),Ze=_n("%"),B=_n("px"),lp=_n("vh"),cp=_n("vw"),Vo={...Ze,parse:e=>Ze.parse(e)/100,transform:e=>Ze.transform(e*100)},zt={test:us("hsl","hue"),parse:hc("hue","saturation","lightness"),transform:({hue:e,saturation:t,lightness:n,alpha:r=1})=>"hsla("+Math.round(e)+", "+Ze.transform(gn(t))+", "+Ze.transform(gn(n))+", "+gn(Cn.transform(r))+")"},Pe={test:e=>Ct.test(e)||Ti.test(e)||zt.test(e),parse:e=>Ct.test(e)?Ct.parse(e):zt.test(e)?zt.parse(e):Ti.parse(e),transform:e=>typeof e=="string"?e:e.hasOwnProperty("red")?Ct.transform(e):zt.transform(e),getAnimatableNone:e=>{const t=Pe.parse(e);return t.alpha=0,Pe.transform(t)}},up=/(?:#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\))/giu;function hp(e){var t,n;return isNaN(e)&&typeof e=="string"&&(((t=e.match(cs))==null?void 0:t.length)||0)+(((n=e.match(up))==null?void 0:n.length)||0)>0}const dc="number",fc="color",dp="var",fp="var(",No="${}",pp=/var\s*\(\s*--(?:[\w-]+\s*|[\w-]+\s*,(?:\s*[^)(\s]|\s*\((?:[^)(]|\([^)(]*\))*\))+\s*)\)|#[\da-f]{3,8}|(?:rgb|hsl)a?\((?:-?[\d.]+%?[,\s]+){2}-?[\d.]+%?\s*(?:[,/]\s*)?(?:\b\d+(?:\.\d+)?|\.\d+)?%?\)|-?(?:\d+(?:\.\d+)?|\.\d+)/giu;function Gt(e){const t=e.toString(),n=[],r={color:[],number:[],var:[]},i=[];let o=0;const a=t.replace(pp,l=>(Pe.test(l)?(r.color.push(o),i.push(fc),n.push(Pe.parse(l))):l.startsWith(fp)?(r.var.push(o),i.push(dp),n.push(l)):(r.number.push(o),i.push(dc),n.push(parseFloat(l))),++o,No)).split(No);return{values:n,split:a,indexes:r,types:i}}function mp(e){return Gt(e).values}function pc({split:e,types:t}){const n=e.length;return r=>{let i="";for(let o=0;o<n;o++)if(i+=e[o],r[o]!==void 0){const s=t[o];s===dc?i+=gn(r[o]):s===fc?i+=Pe.transform(r[o]):i+=r[o]}return i}}function gp(e){return pc(Gt(e))}const yp=e=>typeof e=="number"?0:Pe.test(e)?Pe.getAnimatableNone(e):e,vp=(e,t)=>typeof e=="number"?t!=null&&t.trim().endsWith("/")?e:0:yp(e);function xp(e){const t=Gt(e);return pc(t)(t.values.map((r,i)=>vp(r,t.split[i])))}const qe={test:hp,parse:mp,createTransformer:gp,getAnimatableNone:xp};function Zr(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<1/2?t:n<2/3?e+(t-e)*(2/3-n)*6:e}function bp({hue:e,saturation:t,lightness:n,alpha:r}){e/=360,t/=100,n/=100;let i=0,o=0,s=0;if(!t)i=o=s=n;else{const a=n<.5?n*(1+t):n+t-n*t,l=2*n-a;i=Zr(l,a,e+1/3),o=Zr(l,a,e),s=Zr(l,a,e-1/3)}return{red:Math.round(i*255),green:Math.round(o*255),blue:Math.round(s*255),alpha:r}}function ur(e,t){return n=>n>0?t:e}const pe=(e,t,n)=>e+(t-e)*n,Jr=(e,t,n)=>{const r=e*e,i=n*(t*t-r)+r;return i<0?0:Math.sqrt(i)},wp=[Ti,Ct,zt],Tp=e=>wp.find(t=>t.test(e));function Fo(e){const t=Tp(e);if(!t)return!1;let n=t.parse(e);return t===zt&&(n=bp(n)),n}const Bo=(e,t)=>{const n=Fo(e),r=Fo(t);if(!n||!r)return ur(e,t);const i={...n};return o=>(i.red=Jr(n.red,r.red,o),i.green=Jr(n.green,r.green,o),i.blue=Jr(n.blue,r.blue,o),i.alpha=pe(n.alpha,r.alpha,o),Ct.transform(i))},Si=new Set(["none","hidden"]);function Sp(e,t){return Si.has(e)?n=>n<=0?e:t:n=>n>=1?t:e}function Ep(e,t){return n=>pe(e,t,n)}function hs(e){return typeof e=="number"?Ep:typeof e=="string"?ls(e)?ur:Pe.test(e)?Bo:Ap:Array.isArray(e)?mc:typeof e=="object"?Pe.test(e)?Bo:Cp:ur}function mc(e,t){const n=[...e],r=n.length,i=e.map((o,s)=>hs(o)(o,t[s]));return o=>{for(let s=0;s<r;s++)n[s]=i[s](o);return n}}function Cp(e,t){const n={...e,...t},r={};for(const i in n)e[i]!==void 0&&t[i]!==void 0&&(r[i]=hs(e[i])(e[i],t[i]));return i=>{for(const o in r)n[o]=r[o](i);return n}}function Rp(e,t){const n=[],r={color:0,var:0,number:0};for(let i=0;i<t.values.length;i++){const o=t.types[i],s=e.indexes[o][r[o]],a=e.values[s]??0;n[i]=a,r[o]++}return n}const Ap=(e,t)=>{const n=qe.createTransformer(t),r=Gt(e),i=Gt(t);return r.indexes.var.length===i.indexes.var.length&&r.indexes.color.length===i.indexes.color.length&&r.indexes.number.length>=i.indexes.number.length?Si.has(e)&&!i.values.length||Si.has(t)&&!r.values.length?Sp(e,t):Pn(mc(Rp(r,i),i.values),n):ur(e,t)};function gc(e,t,n){return typeof e=="number"&&typeof t=="number"&&typeof n=="number"?pe(e,t,n):hs(e)(e,t)}const Pp=e=>{const t=({timestamp:n})=>e(n);return{start:(n=!0)=>de.update(t,n),stop:()=>pt(t),now:()=>De.isProcessing?De.timestamp:ke.now()}},yc=(e,t,n=10)=>{let r="";const i=Math.max(Math.round(t/n),2);for(let o=0;o<i;o++)r+=Math.round(e(o/(i-1))*1e4)/1e4+", ";return`linear(${r.substring(0,r.length-2)})`},hr=2e4;function ds(e){let t=0;const n=50;let r=e.next(t);for(;!r.done&&t<hr;)t+=n,r=e.next(t);return t>=hr?1/0:t}function Mp(e,t=100,n){const r=n({...e,keyframes:[0,t]}),i=Math.min(ds(r),hr);return{type:"keyframes",ease:o=>r.next(i*o).value/t,duration:ze(i)}}const Te={stiffness:100,damping:10,mass:1,velocity:0,duration:800,bounce:.3,visualDuration:.3,restSpeed:{granular:.01,default:2},restDelta:{granular:.005,default:.5},minDuration:.01,maxDuration:10,minDamping:.05,maxDamping:1};function Ei(e,t){return e*Math.sqrt(1-t*t)}const _p=12;function Dp(e,t,n){let r=n;for(let i=1;i<_p;i++)r=r-e(r)/t(r);return r}const Qr=.001;function Lp({duration:e=Te.duration,bounce:t=Te.bounce,velocity:n=Te.velocity,mass:r=Te.mass}){let i,o,s=1-t;s=Je(Te.minDamping,Te.maxDamping,s),e=Je(Te.minDuration,Te.maxDuration,ze(e)),s<1?(i=c=>{const u=c*s,h=u*e,d=u-n,f=Ei(c,s),p=Math.exp(-h);return Qr-d/f*p},o=c=>{const h=c*s*e,d=h*n+n,f=Math.pow(s,2)*Math.pow(c,2)*e,p=Math.exp(-h),m=Ei(Math.pow(c,2),s);return(-i(c)+Qr>0?-1:1)*((d-f)*p)/m}):(i=c=>{const u=Math.exp(-c*e),h=(c-n)*e+1;return-Qr+u*h},o=c=>{const u=Math.exp(-c*e),h=(n-c)*(e*e);return u*h});const a=5/e,l=Dp(i,o,a);if(e=Fe(e),isNaN(l))return{stiffness:Te.stiffness,damping:Te.damping,duration:e};{const c=Math.pow(l,2)*r;return{stiffness:c,damping:s*2*Math.sqrt(r*c),duration:e}}}const jp=["duration","bounce"],Op=["stiffness","damping","mass"];function zo(e,t){return t.some(n=>e[n]!==void 0)}function kp(e){let t={velocity:Te.velocity,stiffness:Te.stiffness,damping:Te.damping,mass:Te.mass,isResolvedFromDuration:!1,...e};if(!zo(e,Op)&&zo(e,jp))if(t.velocity=0,e.visualDuration){const n=e.visualDuration,r=2*Math.PI/(n*1.2),i=r*r,o=2*Je(.05,1,1-(e.bounce||0))*Math.sqrt(i);t={...t,mass:Te.mass,stiffness:i,damping:o}}else{const n=Lp({...e,velocity:0});t={...t,...n,mass:Te.mass},t.isResolvedFromDuration=!0}return t}function dr(e=Te.visualDuration,t=Te.bounce){const n=typeof e!="object"?{visualDuration:e,keyframes:[0,1],bounce:t}:e;let{restSpeed:r,restDelta:i}=n;const o=n.keyframes[0],s=n.keyframes[n.keyframes.length-1],a={done:!1,value:o},{stiffness:l,damping:c,mass:u,duration:h,velocity:d,isResolvedFromDuration:f}=kp({...n,velocity:-ze(n.velocity||0)}),p=d||0,m=c/(2*Math.sqrt(l*u)),g=s-o,v=ze(Math.sqrt(l/u)),C=Math.abs(g)<5;r||(r=C?Te.restSpeed.granular:Te.restSpeed.default),i||(i=C?Te.restDelta.granular:Te.restDelta.default);let S,R,P,j,b,M;if(m<1)P=Ei(v,m),j=(p+m*v*g)/P,S=_=>{const V=Math.exp(-m*v*_);return s-V*(j*Math.sin(P*_)+g*Math.cos(P*_))},b=m*v*j+g*P,M=m*v*g-j*P,R=_=>Math.exp(-m*v*_)*(b*Math.sin(P*_)+M*Math.cos(P*_));else if(m===1){S=V=>s-Math.exp(-v*V)*(g+(p+v*g)*V);const _=p+v*g;R=V=>Math.exp(-v*V)*(v*_*V-p)}else{const _=v*Math.sqrt(m*m-1);S=k=>{const H=Math.exp(-m*v*k),re=Math.min(_*k,300);return s-H*((p+m*v*g)*Math.sinh(re)+_*g*Math.cosh(re))/_};const V=(p+m*v*g)/_,N=m*v*V-g*_,W=m*v*g-V*_;R=k=>{const H=Math.exp(-m*v*k),re=Math.min(_*k,300);return H*(N*Math.sinh(re)+W*Math.cosh(re))}}const O={calculatedDuration:f&&h||null,velocity:_=>Fe(R(_)),next:_=>{if(!f&&m<1){const N=Math.exp(-m*v*_),W=Math.sin(P*_),k=Math.cos(P*_),H=s-N*(j*W+g*k),re=Fe(N*(b*W+M*k));return a.done=Math.abs(re)<=r&&Math.abs(s-H)<=i,a.value=a.done?s:H,a}const V=S(_);if(f)a.done=_>=h;else{const N=Fe(R(_));a.done=Math.abs(N)<=r&&Math.abs(s-V)<=i}return a.value=a.done?s:V,a},toString:()=>{const _=Math.min(ds(O),hr),V=yc(N=>O.next(_*N).value,_,30);return _+"ms "+V},toTransition:()=>{}};return O}dr.applyToOptions=e=>{const t=Mp(e,100,dr);return e.ease=t.ease,e.duration=Fe(t.duration),e.type="keyframes",e};const Ip=5;function vc(e,t,n){const r=Math.max(t-Ip,0);return Zl(n-e(r),t-r)}function Ci({keyframes:e,velocity:t=0,power:n=.8,timeConstant:r=325,bounceDamping:i=10,bounceStiffness:o=500,modifyTarget:s,min:a,max:l,restDelta:c=.5,restSpeed:u}){const h=e[0],d={done:!1,value:h},f=M=>a!==void 0&&M<a||l!==void 0&&M>l,p=M=>a===void 0?l:l===void 0||Math.abs(a-M)<Math.abs(l-M)?a:l;let m=n*t;const g=h+m,v=s===void 0?g:s(g);v!==g&&(m=v-h);const C=M=>-m*Math.exp(-M/r),S=M=>v+C(M),R=M=>{const O=C(M),_=S(M);d.done=Math.abs(O)<=c,d.value=d.done?v:_};let P,j;const b=M=>{f(d.value)&&(P=M,j=dr({keyframes:[d.value,p(d.value)],velocity:vc(S,M,d.value),damping:i,stiffness:o,restDelta:c,restSpeed:u}))};return b(0),{calculatedDuration:null,next:M=>{let O=!1;return!j&&P===void 0&&(O=!0,R(M),b(M)),P!==void 0&&M>=P?j.next(M-P):(!O&&R(M),d)}}}function Vp(e,t,n){const r=[],i=n||ft.mix||gc,o=e.length-1;for(let s=0;s<o;s++){let a=i(e[s],e[s+1]);if(t){const l=Array.isArray(t)?t[s]||Ue:t;a=Pn(l,a)}r.push(a)}return r}function Np(e,t,{clamp:n=!0,ease:r,mixer:i}={}){const o=e.length;if(is(o===t.length),o===1)return()=>t[0];if(o===2&&t[0]===t[1])return()=>t[1];const s=e[0]===e[1];e[0]>e[o-1]&&(e=[...e].reverse(),t=[...t].reverse());const a=Vp(t,r,i),l=a.length,c=u=>{if(s&&u<e[0])return t[0];let h=0;if(l>1)for(;h<e.length-2&&!(u<e[h+1]);h++);const d=En(e[h],e[h+1],u);return a[h](d)};return n?u=>c(Je(e[0],e[o-1],u)):c}function Fp(e,t){const n=e[e.length-1];for(let r=1;r<=t;r++){const i=En(0,t,r);e.push(pe(n,1,i))}}function Bp(e){const t=[0];return Fp(t,e.length-1),t}function zp(e,t){return e.map(n=>n*t)}function Up(e,t){return e.map(()=>t||oc).splice(0,e.length-1)}function yn({duration:e=300,keyframes:t,times:n,ease:r="easeInOut"}){const i=Xf(r)?r.map(ko):ko(r),o={done:!1,value:t[0]},s=zp(n&&n.length===t.length?n:Bp(t),e),a=Np(s,t,{ease:Array.isArray(i)?i:Up(t,i)});return{calculatedDuration:e,next:l=>(o.value=a(l),o.done=l>=e,o)}}const Hp=e=>e!==null;function Cr(e,{repeat:t,repeatType:n="loop"},r,i=1){const o=e.filter(Hp),a=i<0||t&&n!=="loop"&&t%2===1?0:o.length-1;return!a||r===void 0?o[a]:r}const $p={decay:Ci,inertia:Ci,tween:yn,keyframes:yn,spring:dr};function xc(e){typeof e.type=="string"&&(e.type=$p[e.type])}class fs{constructor(){this.updateFinished()}get finished(){return this._finished}updateFinished(){this._finished=new Promise(t=>{this.resolve=t})}notifyFinished(){this.resolve()}then(t,n){return this.finished.then(t,n)}}const Wp=e=>e/100;class fr extends fs{constructor(t){super(),this.state="idle",this.startTime=null,this.isStopped=!1,this.currentTime=0,this.holdTime=null,this.playbackSpeed=1,this.delayState={done:!1,value:void 0},this.stop=()=>{var r,i;const{motionValue:n}=this.options;n&&n.updatedAt!==ke.now()&&this.tick(ke.now()),this.isStopped=!0,this.state!=="idle"&&(this.teardown(),(i=(r=this.options).onStop)==null||i.call(r))},this.options=t,this.initAnimation(),this.play(),t.autoplay===!1&&this.pause()}initAnimation(){const{options:t}=this;xc(t);const{type:n=yn,repeat:r=0,repeatDelay:i=0,repeatType:o,velocity:s=0}=t;let{keyframes:a}=t;const l=n||yn;l!==yn&&typeof a[0]!="number"&&(this.mixKeyframes=Pn(Wp,gc(a[0],a[1])),a=[0,100]);const c=l({...t,keyframes:a});o==="mirror"&&(this.mirroredGenerator=l({...t,keyframes:[...a].reverse(),velocity:-s})),c.calculatedDuration===null&&(c.calculatedDuration=ds(c));const{calculatedDuration:u}=c;this.calculatedDuration=u,this.resolvedDuration=u+i,this.totalDuration=this.resolvedDuration*(r+1)-i,this.generator=c}updateTime(t){const n=Math.round(t-this.startTime)*this.playbackSpeed;this.holdTime!==null?this.currentTime=this.holdTime:this.currentTime=n}tick(t,n=!1){const{generator:r,totalDuration:i,mixKeyframes:o,mirroredGenerator:s,resolvedDuration:a,calculatedDuration:l}=this;if(this.startTime===null)return r.next(0);const{delay:c=0,keyframes:u,repeat:h,repeatType:d,repeatDelay:f,type:p,onUpdate:m,finalKeyframe:g}=this.options;this.speed>0?this.startTime=Math.min(this.startTime,t):this.speed<0&&(this.startTime=Math.min(t-i/this.speed,this.startTime)),n?this.currentTime=t:this.updateTime(t);const v=this.currentTime-c*(this.playbackSpeed>=0?1:-1),C=this.playbackSpeed>=0?v<0:v>i;this.currentTime=Math.max(v,0),this.state==="finished"&&this.holdTime===null&&(this.currentTime=i);let S=this.currentTime,R=r;if(h){const M=Math.min(this.currentTime,i)/a;let O=Math.floor(M),_=M%1;!_&&M>=1&&(_=1),_===1&&O--,O=Math.min(O,h+1),!!(O%2)&&(d==="reverse"?(_=1-_,f&&(_-=f/a)):d==="mirror"&&(R=s)),S=Je(0,1,_)*a}let P;C?(this.delayState.value=u[0],P=this.delayState):P=R.next(S),o&&!C&&(P.value=o(P.value));let{done:j}=P;!C&&l!==null&&(j=this.playbackSpeed>=0?this.currentTime>=i:this.currentTime<=0);const b=this.holdTime===null&&(this.state==="finished"||this.state==="running"&&j);return b&&p!==Ci&&(P.value=Cr(u,this.options,g,this.speed)),m&&m(P.value),b&&this.finish(),P}then(t,n){return this.finished.then(t,n)}get duration(){return ze(this.calculatedDuration)}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+ze(t)}get time(){return ze(this.currentTime)}set time(t){t=Fe(t),this.currentTime=t,this.startTime===null||this.holdTime!==null||this.playbackSpeed===0?this.holdTime=t:this.driver&&(this.startTime=this.driver.now()-t/this.playbackSpeed),this.driver?this.driver.start(!1):(this.startTime=0,this.state="paused",this.holdTime=t,this.tick(t))}getGeneratorVelocity(){const t=this.currentTime;if(t<=0)return this.options.velocity||0;if(this.generator.velocity)return this.generator.velocity(t);const n=this.generator.next(t).value;return vc(r=>this.generator.next(r).value,t,n)}get speed(){return this.playbackSpeed}set speed(t){const n=this.playbackSpeed!==t;n&&this.driver&&this.updateTime(ke.now()),this.playbackSpeed=t,n&&this.driver&&(this.time=ze(this.currentTime))}play(){var i,o;if(this.isStopped)return;const{driver:t=Pp,startTime:n}=this.options;this.driver||(this.driver=t(s=>this.tick(s))),(o=(i=this.options).onPlay)==null||o.call(i);const r=this.driver.now();this.state==="finished"?(this.updateFinished(),this.startTime=r):this.holdTime!==null?this.startTime=r-this.holdTime:this.startTime||(this.startTime=n??r),this.state==="finished"&&this.speed<0&&(this.startTime+=this.calculatedDuration),this.holdTime=null,this.state="running",this.driver.start()}pause(){this.state="paused",this.updateTime(ke.now()),this.holdTime=this.currentTime}complete(){this.state!=="running"&&this.play(),this.state="finished",this.holdTime=null}finish(){var t,n;this.notifyFinished(),this.teardown(),this.state="finished",(n=(t=this.options).onComplete)==null||n.call(t)}cancel(){var t,n;this.holdTime=null,this.startTime=0,this.tick(0),this.teardown(),(n=(t=this.options).onCancel)==null||n.call(t)}teardown(){this.state="idle",this.stopDriver(),this.startTime=this.holdTime=null}stopDriver(){this.driver&&(this.driver.stop(),this.driver=void 0)}sample(t){return this.startTime=0,this.tick(t,!0)}attachTimeline(t){var n;return this.options.allowFlatten&&(this.options.type="keyframes",this.options.ease="linear",this.initAnimation()),(n=this.driver)==null||n.stop(),t.observe(this)}}function Gp(e){for(let t=1;t<e.length;t++)e[t]??(e[t]=e[t-1])}const Rt=e=>e*180/Math.PI,Ri=e=>{const t=Rt(Math.atan2(e[1],e[0]));return Ai(t)},qp={x:4,y:5,translateX:4,translateY:5,scaleX:0,scaleY:3,scale:e=>(Math.abs(e[0])+Math.abs(e[3]))/2,rotate:Ri,rotateZ:Ri,skewX:e=>Rt(Math.atan(e[1])),skewY:e=>Rt(Math.atan(e[2])),skew:e=>(Math.abs(e[1])+Math.abs(e[2]))/2},Ai=e=>(e=e%360,e<0&&(e+=360),e),Uo=Ri,Ho=e=>Math.sqrt(e[0]*e[0]+e[1]*e[1]),$o=e=>Math.sqrt(e[4]*e[4]+e[5]*e[5]),Yp={x:12,y:13,z:14,translateX:12,translateY:13,translateZ:14,scaleX:Ho,scaleY:$o,scale:e=>(Ho(e)+$o(e))/2,rotateX:e=>Ai(Rt(Math.atan2(e[6],e[5]))),rotateY:e=>Ai(Rt(Math.atan2(-e[2],e[0]))),rotateZ:Uo,rotate:Uo,skewX:e=>Rt(Math.atan(e[4])),skewY:e=>Rt(Math.atan(e[1])),skew:e=>(Math.abs(e[1])+Math.abs(e[4]))/2};function Pi(e){return e.includes("scale")?1:0}function Mi(e,t){if(!e||e==="none")return Pi(t);const n=e.match(/^matrix3d\(([-\d.e\s,]+)\)$/u);let r,i;if(n)r=Yp,i=n;else{const a=e.match(/^matrix\(([-\d.e\s,]+)\)$/u);r=qp,i=a}if(!i)return Pi(t);const o=r[t],s=i[1].split(",").map(Xp);return typeof o=="function"?o(s):s[o]}const Kp=(e,t)=>{const{transform:n="none"}=getComputedStyle(e);return Mi(n,t)};function Xp(e){return parseFloat(e.trim())}const Qt=["transformPerspective","x","y","z","translateX","translateY","translateZ","scale","scaleX","scaleY","rotate","rotateX","rotateY","rotateZ","skew","skewX","skewY"],en=new Set(Qt),Wo=e=>e===Jt||e===B,Zp=new Set(["x","y","z"]),Jp=Qt.filter(e=>!Zp.has(e));function Qp(e){const t=[];return Jp.forEach(n=>{const r=e.getValue(n);r!==void 0&&(t.push([n,r.get()]),r.set(n.startsWith("scale")?1:0))}),t}const dt={width:({x:e},{paddingLeft:t="0",paddingRight:n="0",boxSizing:r})=>{const i=e.max-e.min;return r==="border-box"?i:i-parseFloat(t)-parseFloat(n)},height:({y:e},{paddingTop:t="0",paddingBottom:n="0",boxSizing:r})=>{const i=e.max-e.min;return r==="border-box"?i:i-parseFloat(t)-parseFloat(n)},top:(e,{top:t})=>parseFloat(t),left:(e,{left:t})=>parseFloat(t),bottom:({y:e},{top:t})=>parseFloat(t)+(e.max-e.min),right:({x:e},{left:t})=>parseFloat(t)+(e.max-e.min),x:(e,{transform:t})=>Mi(t,"x"),y:(e,{transform:t})=>Mi(t,"y")};dt.translateX=dt.x;dt.translateY=dt.y;const Pt=new Set;let _i=!1,Di=!1,Li=!1;function bc(){if(Di){const e=Array.from(Pt).filter(r=>r.needsMeasurement),t=new Set(e.map(r=>r.element)),n=new Map;t.forEach(r=>{const i=Qp(r);i.length&&(n.set(r,i),r.render())}),e.forEach(r=>r.measureInitialState()),t.forEach(r=>{r.render();const i=n.get(r);i&&i.forEach(([o,s])=>{var a;(a=r.getValue(o))==null||a.set(s)})}),e.forEach(r=>r.measureEndState()),e.forEach(r=>{r.suspendedScrollY!==void 0&&window.scrollTo(0,r.suspendedScrollY)})}Di=!1,_i=!1,Pt.forEach(e=>e.complete(Li)),Pt.clear()}function wc(){Pt.forEach(e=>{e.readKeyframes(),e.needsMeasurement&&(Di=!0)})}function e0(){Li=!0,wc(),bc(),Li=!1}class ps{constructor(t,n,r,i,o,s=!1){this.state="pending",this.isAsync=!1,this.needsMeasurement=!1,this.unresolvedKeyframes=[...t],this.onComplete=n,this.name=r,this.motionValue=i,this.element=o,this.isAsync=s}scheduleResolve(){this.state="scheduled",this.isAsync?(Pt.add(this),_i||(_i=!0,de.read(wc),de.resolveKeyframes(bc))):(this.readKeyframes(),this.complete())}readKeyframes(){const{unresolvedKeyframes:t,name:n,element:r,motionValue:i}=this;if(t[0]===null){const o=i==null?void 0:i.get(),s=t[t.length-1];if(o!==void 0)t[0]=o;else if(r&&n){const a=r.readValue(n,s);a!=null&&(t[0]=a)}t[0]===void 0&&(t[0]=s),i&&o===void 0&&i.set(t[0])}Gp(t)}setFinalKeyframe(){}measureInitialState(){}renderEndStyles(){}measureEndState(){}complete(t=!1){this.state="complete",this.onComplete(this.unresolvedKeyframes,this.finalKeyframe,t),Pt.delete(this)}cancel(){this.state==="scheduled"&&(Pt.delete(this),this.state="pending")}resume(){this.state==="pending"&&this.scheduleResolve()}}const t0=e=>e.startsWith("--");function Tc(e,t,n){t0(t)?e.style.setProperty(t,n):e.style[t]=n}const n0={};function Sc(e,t){const n=Xl(e);return()=>n0[t]??n()}const r0=Sc(()=>window.ScrollTimeline!==void 0,"scrollTimeline"),Ec=Sc(()=>{try{document.createElement("div").animate({opacity:0},{easing:"linear(0, 1)"})}catch{return!1}return!0},"linearEasing"),pn=([e,t,n,r])=>`cubic-bezier(${e}, ${t}, ${n}, ${r})`,Go={linear:"linear",ease:"ease",easeIn:"ease-in",easeOut:"ease-out",easeInOut:"ease-in-out",circIn:pn([0,.65,.55,1]),circOut:pn([.55,0,1,.45]),backIn:pn([.31,.01,.66,-.59]),backOut:pn([.33,1.53,.69,.99])};function Cc(e,t){if(e)return typeof e=="function"?Ec()?yc(e,t):"ease-out":ac(e)?pn(e):Array.isArray(e)?e.map(n=>Cc(n,t)||Go.easeOut):Go[e]}function i0(e,t,n,{delay:r=0,duration:i=300,repeat:o=0,repeatType:s="loop",ease:a="easeOut",times:l}={},c=void 0){const u={[t]:n};l&&(u.offset=l);const h=Cc(a,i);Array.isArray(h)&&(u.easing=h);const d={delay:r,duration:i,easing:Array.isArray(h)?"linear":h,fill:"both",iterations:o+1,direction:s==="reverse"?"alternate":"normal"};return c&&(d.pseudoElement=c),e.animate(u,d)}function Rc(e){return typeof e=="function"&&"applyToOptions"in e}function s0({type:e,...t}){return Rc(e)&&Ec()?e.applyToOptions(t):(t.duration??(t.duration=300),t.ease??(t.ease="easeOut"),t)}class Ac extends fs{constructor(t){if(super(),this.finishedTime=null,this.isStopped=!1,this.manualStartTime=null,!t)return;const{element:n,name:r,keyframes:i,pseudoElement:o,allowFlatten:s=!1,finalKeyframe:a,onComplete:l}=t;this.isPseudoElement=!!o,this.allowFlatten=s,this.options=t,is(typeof t.type!="string");const c=s0(t);this.animation=i0(n,r,i,c,o),c.autoplay===!1&&this.animation.pause(),this.animation.onfinish=()=>{if(this.finishedTime=this.time,!o){const u=Cr(i,this.options,a,this.speed);this.updateMotionValue&&this.updateMotionValue(u),Tc(n,r,u),this.animation.cancel()}l==null||l(),this.notifyFinished()}}play(){this.isStopped||(this.manualStartTime=null,this.animation.play(),this.state==="finished"&&this.updateFinished())}pause(){this.animation.pause()}complete(){var t,n;(n=(t=this.animation).finish)==null||n.call(t)}cancel(){try{this.animation.cancel()}catch{}}stop(){if(this.isStopped)return;this.isStopped=!0;const{state:t}=this;t==="idle"||t==="finished"||(this.updateMotionValue?this.updateMotionValue():this.commitStyles(),this.isPseudoElement||this.cancel())}commitStyles(){var n,r,i;const t=(n=this.options)==null?void 0:n.element;!this.isPseudoElement&&(t!=null&&t.isConnected)&&((i=(r=this.animation).commitStyles)==null||i.call(r))}get duration(){var n,r;const t=((r=(n=this.animation.effect)==null?void 0:n.getComputedTiming)==null?void 0:r.call(n).duration)||0;return ze(Number(t))}get iterationDuration(){const{delay:t=0}=this.options||{};return this.duration+ze(t)}get time(){return ze(Number(this.animation.currentTime)||0)}set time(t){const n=this.finishedTime!==null;this.manualStartTime=null,this.finishedTime=null,this.animation.currentTime=Fe(t),n&&this.animation.pause()}get speed(){return this.animation.playbackRate}set speed(t){t<0&&(this.finishedTime=null),this.animation.playbackRate=t}get state(){return this.finishedTime!==null?"finished":this.animation.playState}get startTime(){return this.manualStartTime??Number(this.animation.startTime)}set startTime(t){this.manualStartTime=this.animation.startTime=t}attachTimeline({timeline:t,rangeStart:n,rangeEnd:r,observe:i}){var o;return this.allowFlatten&&((o=this.animation.effect)==null||o.updateTiming({easing:"linear"})),this.animation.onfinish=null,t&&r0()?(this.animation.timeline=t,n&&(this.animation.rangeStart=n),r&&(this.animation.rangeEnd=r),Ue):i(this)}}const Pc={anticipate:rc,backInOut:nc,circInOut:sc};function o0(e){return e in Pc}function a0(e){typeof e.ease=="string"&&o0(e.ease)&&(e.ease=Pc[e.ease])}const ei=10;class l0 extends Ac{constructor(t){a0(t),xc(t),super(t),t.startTime!==void 0&&t.autoplay!==!1&&(this.startTime=t.startTime),this.options=t}updateMotionValue(t){const{motionValue:n,onUpdate:r,onComplete:i,element:o,...s}=this.options;if(!n)return;if(t!==void 0){n.set(t);return}const a=new fr({...s,autoplay:!1}),l=Math.max(ei,ke.now()-this.startTime),c=Je(0,ei,l-ei),u=a.sample(l).value,{name:h}=this.options;o&&h&&Tc(o,h,u),n.setWithVelocity(a.sample(Math.max(0,l-c)).value,u,c),a.stop()}}const qo=(e,t)=>t==="zIndex"?!1:!!(typeof e=="number"||Array.isArray(e)||typeof e=="string"&&(qe.test(e)||e==="0")&&!e.startsWith("url("));function c0(e){const t=e[0];if(e.length===1)return!0;for(let n=0;n<e.length;n++)if(e[n]!==t)return!0}function u0(e,t,n,r){const i=e[0];if(i===null)return!1;if(t==="display"||t==="visibility")return!0;const o=e[e.length-1],s=qo(i,t),a=qo(o,t);return!s||!a?!1:c0(e)||(n==="spring"||Rc(n))&&r}function ji(e){e.duration=0,e.type="keyframes"}const Mc=new Set(["opacity","clipPath","filter","transform"]),h0=/^(?:oklch|oklab|lab|lch|color|color-mix|light-dark)\(/;function d0(e){for(let t=0;t<e.length;
53t++)if(typeof e[t]=="string"&&h0.test(e[t]))return!0;return!1}const f0=new Set(["color","backgroundColor","outlineColor","fill","stroke","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor"]),p0=Xl(()=>Object.hasOwnProperty.call(Element.prototype,"animate"));function m0(e){var h;const{motionValue:t,name:n,repeatDelay:r,repeatType:i,damping:o,type:s,keyframes:a}=e;if(!(((h=t==null?void 0:t.owner)==null?void 0:h.current)instanceof HTMLElement))return!1;const{onUpdate:c,transformTemplate:u}=t.owner.getProps();return p0()&&n&&(Mc.has(n)||f0.has(n)&&d0(a))&&(n!=="transform"||!u)&&!c&&!r&&i!=="mirror"&&o!==0&&s!=="inertia"}const g0=40;class y0 extends fs{constructor({autoplay:t=!0,delay:n=0,type:r="keyframes",repeat:i=0,repeatDelay:o=0,repeatType:s="loop",keyframes:a,name:l,motionValue:c,element:u,...h}){var p;super(),this.stop=()=>{var m,g;this._animation&&(this._animation.stop(),(m=this.stopTimeline)==null||m.call(this)),(g=this.keyframeResolver)==null||g.cancel()},this.createdAt=ke.now();const d={autoplay:t,delay:n,type:r,repeat:i,repeatDelay:o,repeatType:s,name:l,motionValue:c,element:u,...h},f=(u==null?void 0:u.KeyframeResolver)||ps;this.keyframeResolver=new f(a,(m,g,v)=>this.onKeyframesResolved(m,g,d,!v),l,c,u),(p=this.keyframeResolver)==null||p.scheduleResolve()}onKeyframesResolved(t,n,r,i){var v,C;this.keyframeResolver=void 0;const{name:o,type:s,velocity:a,delay:l,isHandoff:c,onUpdate:u}=r;this.resolvedAt=ke.now();let h=!0;u0(t,o,s,a)||(h=!1,(ft.instantAnimations||!l)&&(u==null||u(Cr(t,r,n))),t[0]=t[t.length-1],ji(r),r.repeat=0);const f={startTime:i?this.resolvedAt?this.resolvedAt-this.createdAt>g0?this.resolvedAt:this.createdAt:this.createdAt:void 0,finalKeyframe:n,...r,keyframes:t},p=h&&!c&&m0(f),m=(C=(v=f.motionValue)==null?void 0:v.owner)==null?void 0:C.current;let g;if(p)try{g=new l0({...f,element:m})}catch{g=new fr(f)}else g=new fr(f);g.finished.then(()=>{this.notifyFinished()}).catch(Ue),this.pendingTimeline&&(this.stopTimeline=g.attachTimeline(this.pendingTimeline),this.pendingTimeline=void 0),this._animation=g}get finished(){return this._animation?this.animation.finished:this._finished}then(t,n){return this.finished.finally(t).then(()=>{})}get animation(){var t;return this._animation||((t=this.keyframeResolver)==null||t.resume(),e0()),this._animation}get duration(){return this.animation.duration}get iterationDuration(){return this.animation.iterationDuration}get time(){return this.animation.time}set time(t){this.animation.time=t}get speed(){return this.animation.speed}get state(){return this.animation.state}set speed(t){this.animation.speed=t}get startTime(){return this.animation.startTime}attachTimeline(t){return this._animation?this.stopTimeline=this.animation.attachTimeline(t):this.pendingTimeline=t,()=>this.stop()}play(){this.animation.play()}pause(){this.animation.pause()}complete(){this.animation.complete()}cancel(){var t;this._animation&&this.animation.cancel(),(t=this.keyframeResolver)==null||t.cancel()}}function _c(e,t,n,r=0,i=1){const o=Array.from(e).sort((c,u)=>c.sortNodePosition(u)).indexOf(t),s=e.size,a=(s-1)*r;return typeof n=="function"?n(o,s):i===1?o*r:a-o*r}const v0=/^var\(--(?:([\w-]+)|([\w-]+), ?([a-zA-Z\d ()%#.,-]+))\)/u;function x0(e){const t=v0.exec(e);if(!t)return[,];const[,n,r,i]=t;return[`--${n??r}`,i]}function Dc(e,t,n=1){const[r,i]=x0(e);if(!r)return;const o=window.getComputedStyle(t).getPropertyValue(r);if(o){const s=o.trim();return ql(s)?parseFloat(s):s}return ls(i)?Dc(i,t,n+1):i}const b0={type:"spring",stiffness:500,damping:25,restSpeed:10},w0=e=>({type:"spring",stiffness:550,damping:e===0?2*Math.sqrt(550):30,restSpeed:10}),T0={type:"keyframes",duration:.8},S0={type:"keyframes",ease:[.25,.1,.35,1],duration:.3},E0=(e,{keyframes:t})=>t.length>2?T0:en.has(e)?e.startsWith("scale")?w0(t[1]):b0:S0;function Lc(e,t){if(e!=null&&e.inherit&&t){const{inherit:n,...r}=e;return{...t,...r}}return e}function ms(e,t){const n=(e==null?void 0:e[t])??(e==null?void 0:e.default)??e;return n!==e?Lc(n,e):n}const C0=new Set(["when","delay","delayChildren","staggerChildren","staggerDirection","repeat","repeatType","repeatDelay","from","elapsed"]);function R0(e){for(const t in e)if(!C0.has(t))return!0;return!1}const gs=(e,t,n,r={},i,o)=>s=>{const a=ms(r,e)||{},l=a.delay||r.delay||0;let{elapsed:c=0}=r;c=c-Fe(l);const u={keyframes:Array.isArray(n)?n:[null,n],ease:"easeOut",velocity:t.getVelocity(),...a,delay:-c,onUpdate:d=>{t.set(d),a.onUpdate&&a.onUpdate(d)},onComplete:()=>{s(),a.onComplete&&a.onComplete()},name:e,motionValue:t,element:o?void 0:i};R0(a)||Object.assign(u,E0(e,u)),u.duration&&(u.duration=Fe(u.duration)),u.repeatDelay&&(u.repeatDelay=Fe(u.repeatDelay)),u.from!==void 0&&(u.keyframes[0]=u.from);let h=!1;if((u.type===!1||u.duration===0&&!u.repeatDelay)&&(ji(u),u.delay===0&&(h=!0)),(ft.instantAnimations||ft.skipAnimations||i!=null&&i.shouldSkipAnimations)&&(h=!0,ji(u),u.delay=0),u.allowFlatten=!a.type&&!a.ease,h&&!o&&t.get()!==void 0){const d=Cr(u.keyframes,a);if(d!==void 0){de.update(()=>{u.onUpdate(d),u.onComplete()});return}}return a.isSync?new fr(u):new y0(u)};function Yo(e){const t=[{},{}];
vendor: 50,597 bytes, line 53
53return e==null||e.values.forEach((n,r)=>{t[0][r]=n.get(),t[1][r]=n.getVelocity()}),t}function ys(e,t,n,r){if(typeof t=="function"){const[i,o]=Yo(r);t=t(n!==void 0?n:e.custom,i,o)}if(typeof t=="string"&&(t=e.variants&&e.variants[t]),typeof t=="function"){const[i,o]=Yo(r);t=t(n!==void 0?n:e.custom,i,o)}return t}function Mt(e,t,n){const r=e.getProps();return ys(r,t,n!==void 0?n:r.custom,e)}const jc=new Set(["width","height","top","left","right","bottom",...Qt]),Ko=30,A0=e=>!isNaN(parseFloat(e));class P0{constructor(t,n={}){this.canTrackVelocity=null,this.events={},this.updateAndNotify=r=>{var o;const i=ke.now();if(this.updatedAt!==i&&this.setPrevFrameValue(),this.prev=this.current,this.setCurrent(r),this.current!==this.prev&&((o=this.events.change)==null||o.notify(this.current),this.dependents))for(const s of this.dependents)s.dirty()},this.hasAnimated=!1,this.setCurrent(t),this.owner=n.owner}setCurrent(t){this.current=t,this.updatedAt=ke.now(),this.canTrackVelocity===null&&t!==void 0&&(this.canTrackVelocity=A0(this.current))}setPrevFrameValue(t=this.current){this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt}onChange(t){return this.on("change",t)}on(t,n){this.events[t]||(this.events[t]=new ss);const r=this.events[t].add(n);return t==="change"?()=>{r(),de.read(()=>{this.events.change.getSize()||this.stop()})}:r}clearListeners(){for(const t in this.events)this.events[t].clear()}attach(t,n){this.passiveEffect=t,this.stopPassiveEffect=n}set(t){this.passiveEffect?this.passiveEffect(t,this.updateAndNotify):this.updateAndNotify(t)}setWithVelocity(t,n,r){this.set(n),this.prev=void 0,this.prevFrameValue=t,this.prevUpdatedAt=this.updatedAt-r}jump(t,n=!0){this.updateAndNotify(t),this.prev=t,this.prevUpdatedAt=this.prevFrameValue=void 0,n&&this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}dirty(){var t;(t=this.events.change)==null||t.notify(this.current)}addDependent(t){this.dependents||(this.dependents=new Set),this.dependents.add(t)}removeDependent(t){this.dependents&&this.dependents.delete(t)}get(){return this.current}getPrevious(){return this.prev}getVelocity(){const t=ke.now();if(!this.canTrackVelocity||this.prevFrameValue===void 0||t-this.updatedAt>Ko)return 0;const n=Math.min(this.updatedAt-this.prevUpdatedAt,Ko);return Zl(parseFloat(this.current)-parseFloat(this.prevFrameValue),n)}start(t){return this.stop(),new Promise(n=>{this.hasAnimated=!0,this.animation=t(n),this.events.animationStart&&this.events.animationStart.notify()}).then(()=>{this.events.animationComplete&&this.events.animationComplete.notify(),this.clearAnimation()})}stop(){this.animation&&(this.animation.stop(),this.events.animationCancel&&this.events.animationCancel.notify()),this.clearAnimation()}isAnimating(){return!!this.animation}clearAnimation(){delete this.animation}destroy(){var t,n;(t=this.dependents)==null||t.clear(),(n=this.events.destroy)==null||n.notify(),this.clearListeners(),this.stop(),this.stopPassiveEffect&&this.stopPassiveEffect()}}function qt(e,t){return new P0(e,t)}const Oi=e=>Array.isArray(e);function M0(e,t,n){e.hasValue(t)?e.getValue(t).set(n):e.addValue(t,qt(n))}function _0(e){return Oi(e)?e[e.length-1]||0:e}function D0(e,t){const n=Mt(e,t);let{transitionEnd:r={},transition:i={},...o}=n||{};o={...o,...r};for(const s in o){const a=_0(o[s]);M0(e,s,a)}}const Le=e=>!!(e&&e.getVelocity);function L0(e){return!!(Le(e)&&e.add)}function ki(e,t){const n=e.getValue("willChange");if(L0(n))return n.add(t);if(!n&&ft.WillChange){const r=new ft.WillChange("auto");e.addValue("willChange",r),r.add(t)}}function vs(e){return e.replace(/([A-Z])/g,t=>`-${t.toLowerCase()}`)}const j0="framerAppearId",Oc="data-"+vs(j0);function kc(e){return e.props[Oc]}function O0({protectedKeys:e,needsAnimating:t},n){const r=e.hasOwnProperty(n)&&t[n]!==!0;return t[n]=!1,r}function Ic(e,t,{delay:n=0,transitionOverride:r,type:i}={}){let{transition:o,transitionEnd:s,...a}=t;const l=e.getDefaultTransition();o=o?Lc(o,l):l;const c=o==null?void 0:o.reduceMotion;r&&(o=r);const u=[],h=i&&e.animationState&&e.animationState.getState()[i];for(const d in a){const f=e.getValue(d,e.latestValues[d]??null),p=a[d];if(p===void 0||h&&O0(h,d))continue;const m={delay:n,...ms(o||{},d)},g=f.get();if(g!==void 0&&!f.isAnimating()&&!Array.isArray(p)&&p===g&&!m.velocity){de.update(()=>f.set(p));continue}let v=!1;if(window.MotionHandoffAnimation){const R=kc(e);if(R){const P=window.MotionHandoffAnimation(R,d,de);P!==null&&(m.startTime=P,v=!0)}}ki(e,d);const C=c??e.shouldReduceMotion;f.start(gs(d,f,p,C&&jc.has(d)?{type:!1}:m,e,v));const S=f.animation;S&&u.push(S)}if(s){const d=()=>de.update(()=>{s&&D0(e,s)});u.length?Promise.all(u).then(d):d()}return u}function Ii(e,t,n={}){var l;const r=Mt(e,t,n.type==="exit"?(l=e.presenceContext)==null?void 0:l.custom:void 0);let{transition:i=e.getDefaultTransition()||{}}=r||{};n.transitionOverride&&(i=n.transitionOverride);const o=r?()=>Promise.all(Ic(e,r,n)):()=>Promise.resolve(),s=e.variantChildren&&e.variantChildren.size?(c=0)=>{const{delayChildren:u=0,staggerChildren:h,staggerDirection:d}=i;return k0(e,t,c,u,h,d,n)}:()=>Promise.resolve(),{when:a}=i;if(a){const[c,u]=a==="beforeChildren"?[o,s]:[s,o];return c().then(()=>u())}else return Promise.all([o(),s(n.delay)])}function k0(e,t,n=0,r=0,i=0,o=1,s){const a=[];for(const l of e.variantChildren)l.notify("AnimationStart",t),a.push(Ii(l,t,{...s,delay:n+(typeof r=="function"?0:r)+_c(e.variantChildren,l,r,i,o)}).then(()=>l.notify("AnimationComplete",t)));return Promise.all(a)}function I0(e,t,n={}){e.notify("AnimationStart",t);let r;if(Array.isArray(t)){const i=t.map(o=>Ii(e,o,n));r=Promise.all(i)}else if(typeof t=="string")r=Ii(e,t,n);else{const i=typeof t=="function"?Mt(e,t,n.custom):t;r=Promise.all(Ic(e,i,n))}return r.then(()=>{e.notify("AnimationComplete",t)})}const V0={test:e=>e==="auto",parse:e=>e},Vc=e=>t=>t.test(e),Nc=[Jt,B,Ze,lt,cp,lp,V0],Xo=e=>Nc.find(Vc(e));function N0(e){return typeof e=="number"?e===0:e!==null?e==="none"||e==="0"||Kl(e):!0}const F0=new Set(["brightness","contrast","saturate","opacity"]);function B0(e){const[t,n]=e.slice(0,-1).split("(");if(t==="drop-shadow")return e;const[r]=n.match(cs)||[];if(!r)return e;const i=n.replace(r,"");let o=F0.has(t)?1:0;return r!==n&&(o*=100),t+"("+o+i+")"}const z0=/\b([a-z-]*)\(.*?\)/gu,Vi={...qe,getAnimatableNone:e=>{const t=e.match(z0);return t?t.map(B0).join(" "):e}},Ni={...qe,getAnimatableNone:e=>{const t=qe.parse(e);return qe.createTransformer(e)(t.map(r=>typeof r=="number"?0:typeof r=="object"?{...r,alpha:1}:r))}},Zo={...Jt,transform:Math.round},U0={rotate:lt,rotateX:lt,rotateY:lt,rotateZ:lt,scale:zn,scaleX:zn,scaleY:zn,scaleZ:zn,skew:lt,skewX:lt,skewY:lt,distance:B,translateX:B,translateY:B,translateZ:B,x:B,y:B,z:B,perspective:B,transformPerspective:B,opacity:Cn,originX:Vo,originY:Vo,originZ:B},xs={borderWidth:B,borderTopWidth:B,borderRightWidth:B,borderBottomWidth:B,borderLeftWidth:B,borderRadius:B,borderTopLeftRadius:B,borderTopRightRadius:B,borderBottomRightRadius:B,borderBottomLeftRadius:B,width:B,maxWidth:B,height:B,maxHeight:B,top:B,right:B,bottom:B,left:B,inset:B,insetBlock:B,insetBlockStart:B,insetBlockEnd:B,insetInline:B,insetInlineStart:B,insetInlineEnd:B,padding:B,paddingTop:B,paddingRight:B,paddingBottom:B,paddingLeft:B,paddingBlock:B,paddingBlockStart:B,paddingBlockEnd:B,paddingInline:B,paddingInlineStart:B,paddingInlineEnd:B,margin:B,marginTop:B,marginRight:B,marginBottom:B,marginLeft:B,marginBlock:B,marginBlockStart:B,marginBlockEnd:B,marginInline:B,marginInlineStart:B,marginInlineEnd:B,fontSize:B,backgroundPositionX:B,backgroundPositionY:B,...U0,zIndex:Zo,fillOpacity:Cn,strokeOpacity:Cn,numOctaves:Zo},H0={...xs,color:Pe,backgroundColor:Pe,outlineColor:Pe,fill:Pe,stroke:Pe,borderColor:Pe,borderTopColor:Pe,borderRightColor:Pe,borderBottomColor:Pe,borderLeftColor:Pe,filter:Vi,WebkitFilter:Vi,mask:Ni,WebkitMask:Ni},Fc=e=>H0[e],$0=new Set([Vi,Ni]);function Bc(e,t){let n=Fc(e);return $0.has(n)||(n=qe),n.getAnimatableNone?n.getAnimatableNone(t):void 0}const W0=new Set(["auto","none","0"]);function G0(e,t,n){let r=0,i;for(;r<e.length&&!i;){const o=e[r];typeof o=="string"&&!W0.has(o)&&Gt(o).values.length&&(i=e[r]),r++}if(i&&n)for(const o of t)e[o]=Bc(n,i)}class q0 extends ps{constructor(t,n,r,i,o){super(t,n,r,i,o,!0)}readKeyframes(){const{unresolvedKeyframes:t,element:n,name:r}=this;if(!n||!n.current)return;super.readKeyframes();for(let u=0;u<t.length;u++){let h=t[u];if(typeof h=="string"&&(h=h.trim(),ls(h))){const d=Dc(h,n.current);d!==void 0&&(t[u]=d),u===t.length-1&&(this.finalKeyframe=h)}}if(this.resolveNoneKeyframes(),!jc.has(r)||t.length!==2)return;const[i,o]=t,s=Xo(i),a=Xo(o),l=Io(i),c=Io(o);if(l!==c&&dt[r]){this.needsMeasurement=!0;return}if(s!==a)if(Wo(s)&&Wo(a))for(let u=0;u<t.length;u++){const h=t[u];typeof h=="string"&&(t[u]=parseFloat(h))}else dt[r]&&(this.needsMeasurement=!0)}resolveNoneKeyframes(){const{unresolvedKeyframes:t,name:n}=this,r=[];for(let i=0;i<t.length;i++)(t[i]===null||N0(t[i]))&&r.push(i);r.length&&G0(t,r,n)}measureInitialState(){const{element:t,unresolvedKeyframes:n,name:r}=this;if(!t||!t.current)return;r==="height"&&(this.suspendedScrollY=window.pageYOffset),this.measuredOrigin=dt[r](t.measureViewportBox(),window.getComputedStyle(t.current)),n[0]=this.measuredOrigin;const i=n[n.length-1];i!==void 0&&t.getValue(r,i).jump(i,!1)}measureEndState(){var a;const{element:t,name:n,unresolvedKeyframes:r}=this;if(!t||!t.current)return;const i=t.getValue(n);i&&i.jump(this.measuredOrigin,!1);const o=r.length-1,s=r[o];r[o]=dt[n](t.measureViewportBox(),window.getComputedStyle(t.current)),s!==null&&this.finalKeyframe===void 0&&(this.finalKeyframe=s),(a=this.removedTransforms)!=null&&a.length&&this.removedTransforms.forEach(([l,c])=>{t.getValue(l).set(c)}),this.resolveNoneKeyframes()}}function zc(e,t,n){if(e==null)return[];if(e instanceof EventTarget)return[e];if(typeof e=="string"){let r=document;const i=(n==null?void 0:n[e])??r.querySelectorAll(e);return i?Array.from(i):[]}return Array.from(e).filter(r=>r!=null)}const Uc=(e,t)=>t&&typeof e=="number"?t.transform(e):e;function Kn(e){return Yl(e)&&"offsetHeight"in e&&!("ownerSVGElement"in e)}const{schedule:bs}=lc(queueMicrotask,!1),$e={x:!1,y:!1};function Hc(){return $e.x||$e.y}function Y0(e){return e==="x"||e==="y"?$e[e]?null:($e[e]=!0,()=>{$e[e]=!1}):$e.x||$e.y?null:($e.x=$e.y=!0,()=>{$e.x=$e.y=!1})}function $c(e,t){const n=zc(e),r=new AbortController,i={passive:!0,...t,signal:r.signal};return[n,i,()=>r.abort()]}function K0(e){return!(e.pointerType==="touch"||Hc())}function X0(e,t,n={}){const[r,i,o]=$c(e,n);return r.forEach(s=>{let a=!1,l=!1,c;const u=()=>{s.removeEventListener("pointerleave",p)},h=g=>{c&&(c(g),c=void 0),u()},d=g=>{a=!1,window.removeEventListener("pointerup",d),window.removeEventListener("pointercancel",d),l&&(l=!1,h(g))},f=()=>{a=!0,window.addEventListener("pointerup",d,i),window.addEventListener("pointercancel",d,i)},p=g=>{if(g.pointerType!=="touch"){if(a){l=!0;return}h(g)}},m=g=>{if(!K0(g))return;l=!1;const v=t(s,g);typeof v=="function"&&(c=v,s.addEventListener("pointerleave",p,i))};s.addEventListener("pointerenter",m,i),s.addEventListener("pointerdown",f,i)}),o}const Wc=(e,t)=>t?e===t?!0:Wc(e,t.parentElement):!1,ws=e=>e.pointerType==="mouse"?typeof e.button!="number"||e.button<=0:e.isPrimary!==!1,Z0=new Set(["BUTTON","INPUT","SELECT","TEXTAREA","A"]);function J0(e){return Z0.has(e.tagName)||e.isContentEditable===!0}const Q0=new Set(["INPUT","SELECT","TEXTAREA"]);function em(e){return Q0.has(e.tagName)||e.isContentEditable===!0}const Xn=new WeakSet;function Jo(e){return t=>{t.key==="Enter"&&e(t)}}function ti(e,t){e.dispatchEvent(new PointerEvent("pointer"+t,{isPrimary:!0,bubbles:!0}))}const tm=(e,t)=>{const n=e.currentTarget;if(!n)return;const r=Jo(()=>{if(Xn.has(n))return;ti(n,"down");const i=Jo(()=>{ti(n,"up")}),o=()=>ti(n,"cancel");n.addEventListener("keyup",i,t),n.addEventListener("blur",o,t)});n.addEventListener("keydown",r,t),n.addEventListener("blur",()=>n.removeEventListener("keydown",r),t)};function Qo(e){return ws(e)&&!Hc()}const ea=new WeakSet;function nm(e,t,n={}){const[r,i,o]=$c(e,n),s=a=>{const l=a.currentTarget;if(!Qo(a)||ea.has(a))return;Xn.add(l),n.stopPropagation&&ea.add(a);const c=t(l,a),u=(f,p)=>{window.removeEventListener("pointerup",h),window.removeEventListener("pointercancel",d),Xn.has(l)&&Xn.delete(l),Qo(f)&&typeof c=="function"&&c(f,{success:p})},h=f=>{u(f,l===window||l===document||n.useGlobalTarget||Wc(l,f.target))},d=f=>{u(f,!1)};window.addEventListener("pointerup",h,i),window.addEventListener("pointercancel",d,i)};return r.forEach(a=>{(n.useGlobalTarget?window:a).addEventListener("pointerdown",s,i),Kn(a)&&(a.addEventListener("focus",c=>tm(c,i)),!J0(a)&&!a.hasAttribute("tabindex")&&(a.tabIndex=0))}),o}function Ts(e){return Yl(e)&&"ownerSVGElement"in e}const Zn=new WeakMap;let ct;const Gc=(e,t,n)=>(r,i)=>i&&i[0]?i[0][e+"Size"]:Ts(r)&&"getBBox"in r?r.getBBox()[t]:r[n],rm=Gc("inline","width","offsetWidth"),im=Gc("block","height","offsetHeight");function sm({target:e,borderBoxSize:t}){var n;(n=Zn.get(e))==null||n.forEach(r=>{r(e,{get width(){return rm(e,t)},get height(){return im(e,t)}})})}function om(e){e.forEach(sm)}function am(){typeof ResizeObserver>"u"||(ct=new ResizeObserver(om))}function lm(e,t){ct||am();const n=zc(e);return n.forEach(r=>{let i=Zn.get(r);i||(i=new Set,Zn.set(r,i)),i.add(t),ct==null||ct.observe(r)}),()=>{n.forEach(r=>{const i=Zn.get(r);i==null||i.delete(t),i!=null&&i.size||ct==null||ct.unobserve(r)})}}const Jn=new Set;let Ut;function cm(){Ut=()=>{const e={get width(){return window.innerWidth},get height(){return window.innerHeight}};Jn.forEach(t=>t(e))},window.addEventListener("resize",Ut)}function um(e){return Jn.add(e),Ut||cm(),()=>{Jn.delete(e),!Jn.size&&typeof Ut=="function"&&(window.removeEventListener("resize",Ut),Ut=void 0)}}function ta(e,t){return typeof e=="function"?um(e):lm(e,t)}function hm(e){return Ts(e)&&e.tagName==="svg"}const dm=[...Nc,Pe,qe],fm=e=>dm.find(Vc(e)),na=()=>({translate:0,scale:1,origin:0,originPoint:0}),Ht=()=>({x:na(),y:na()}),ra=()=>({min:0,max:0}),Me=()=>({x:ra(),y:ra()}),pm=new WeakMap;function Rr(e){return e!==null&&typeof e=="object"&&typeof e.start=="function"}function Rn(e){return typeof e=="string"||Array.isArray(e)}const Ss=["animate","whileInView","whileFocus","whileHover","whileTap","whileDrag","exit"],Es=["initial",...Ss];function Ar(e){return Rr(e.animate)||Es.some(t=>Rn(e[t]))}function qc(e){return!!(Ar(e)||e.variants)}function mm(e,t,n){for(const r in t){const i=t[r],o=n[r];if(Le(i))e.addValue(r,i);else if(Le(o))e.addValue(r,qt(i,{owner:e}));else if(o!==i)if(e.hasValue(r)){const s=e.getValue(r);s.liveStyle===!0?s.jump(i):s.hasAnimated||s.set(i)}else{const s=e.getStaticValue(r);e.addValue(r,qt(s!==void 0?s:i,{owner:e}))}}for(const r in n)t[r]===void 0&&e.removeValue(r);return t}const Fi={current:null},Yc={current:!1},gm=typeof window<"u";function ym(){if(Yc.current=!0,!!gm)if(window.matchMedia){const e=window.matchMedia("(prefers-reduced-motion)"),t=()=>Fi.current=e.matches;e.addEventListener("change",t),t()}else Fi.current=!1}const ia=["AnimationStart","AnimationComplete","Update","BeforeLayoutMeasure","LayoutMeasure","LayoutAnimationStart","LayoutAnimationComplete"];let pr={};function Kc(e){pr=e}function vm(){return pr}class xm{scrapeMotionValuesFromProps(t,n,r){return{}}constructor({parent:t,props:n,presenceContext:r,reducedMotionConfig:i,skipAnimations:o,blockInitialAnimation:s,visualState:a},l={}){this.current=null,this.children=new Set,this.isVariantNode=!1,this.isControllingVariants=!1,this.shouldReduceMotion=null,this.shouldSkipAnimations=!1,this.values=new Map,this.KeyframeResolver=ps,this.features={},this.valueSubscriptions=new Map,this.prevMotionValues={},this.hasBeenMounted=!1,this.events={},this.propEventSubscriptions={},this.notifyUpdate=()=>this.notify("Update",this.latestValues),this.render=()=>{this.current&&(this.triggerBuild(),this.renderInstance(this.current,this.renderState,this.props.style,this.projection))},this.renderScheduledAt=0,this.scheduleRender=()=>{const f=ke.now();this.renderScheduledAt<f&&(this.renderScheduledAt=f,de.render(this.render,!1,!0))};const{latestValues:c,renderState:u}=a;this.latestValues=c,this.baseTarget={...c},this.initialValues=n.initial?{...c}:{},this.renderState=u,this.parent=t,this.props=n,this.presenceContext=r,this.depth=t?t.depth+1:0,this.reducedMotionConfig=i,this.skipAnimationsConfig=o,this.options=l,this.blockInitialAnimation=!!s,this.isControllingVariants=Ar(n),this.isVariantNode=qc(n),this.isVariantNode&&(this.variantChildren=new Set),this.manuallyAnimateOnMount=!!(t&&t.current);const{willChange:h,...d}=this.scrapeMotionValuesFromProps(n,{},this);for(const f in d){const p=d[f];c[f]!==void 0&&Le(p)&&p.set(c[f])}}mount(t){var n,r;if(this.hasBeenMounted)for(const i in this.initialValues)(n=this.values.get(i))==null||n.jump(this.initialValues[i]),this.latestValues[i]=this.initialValues[i];this.current=t,pm.set(t,this),this.projection&&!this.projection.instance&&this.projection.mount(t),this.parent&&this.isVariantNode&&!this.isControllingVariants&&(this.removeFromVariantTree=this.parent.addVariantChild(this)),this.values.forEach((i,o)=>this.bindToMotionValue(o,i)),this.reducedMotionConfig==="never"?this.shouldReduceMotion=!1:this.reducedMotionConfig==="always"?this.shouldReduceMotion=!0:(Yc.current||ym(),this.shouldReduceMotion=Fi.current),this.shouldSkipAnimations=this.skipAnimationsConfig??!1,(r=this.parent)==null||r.addChild(this),this.update(this.props,this.presenceContext),this.hasBeenMounted=!0}unmount(){var t;this.projection&&this.projection.unmount(),pt(this.notifyUpdate),pt(this.render),this.valueSubscriptions.forEach(n=>n()),this.valueSubscriptions.clear(),this.removeFromVariantTree&&this.removeFromVariantTree(),(t=this.parent)==null||t.removeChild(this);for(const n in this.events)this.events[n].clear();for(const n in this.features){const r=this.features[n];r&&(r.unmount(),r.isMounted=!1)}this.current=null}addChild(t){this.children.add(t),this.enteringChildren??(this.enteringChildren=new Set),this.enteringChildren.add(t)}removeChild(t){this.children.delete(t),this.enteringChildren&&this.enteringChildren.delete(t)}bindToMotionValue(t,n){if(this.valueSubscriptions.has(t)&&this.valueSubscriptions.get(t)(),n.accelerate&&Mc.has(t)&&this.current instanceof HTMLElement){const{factory:s,keyframes:a,times:l,ease:c,duration:u}=n.accelerate,h=new Ac({element:this.current,name:t,keyframes:a,times:l,ease:c,duration:Fe(u)}),d=s(h);this.valueSubscriptions.set(t,()=>{d(),h.cancel()});return}const r=en.has(t);r&&this.onBindTransform&&this.onBindTransform();const i=n.on("change",s=>{this.latestValues[t]=s,this.props.onUpdate&&de.preRender(this.notifyUpdate),r&&this.projection&&(this.projection.isTransformDirty=!0),this.scheduleRender()});let o;typeof window<"u"&&window.MotionCheckAppearSync&&(o=window.MotionCheckAppearSync(this,t,n)),this.valueSubscriptions.set(t,()=>{i(),o&&o(),n.owner&&n.stop()})}sortNodePosition(t){return!this.current||!this.sortInstanceNodePosition||this.type!==t.type?0:this.sortInstanceNodePosition(this.current,t.current)}updateFeatures(){let t="animation";for(t in pr){const n=pr[t];if(!n)continue;const{isEnabled:r,Feature:i}=n;if(!this.features[t]&&i&&r(this.props)&&(this.features[t]=new i(this)),this.features[t]){const o=this.features[t];o.isMounted?o.update():(o.mount(),o.isMounted=!0)}}}triggerBuild(){this.build(this.renderState,this.latestValues,this.props)}measureViewportBox(){return this.current?this.measureInstanceViewportBox(this.current,this.props):Me()}getStaticValue(t){return this.latestValues[t]}setStaticValue(t,n){this.latestValues[t]=n}update(t,n){(t.transformTemplate||this.props.transformTemplate)&&this.scheduleRender(),this.prevProps=this.props,this.props=t,this.prevPresenceContext=this.presenceContext,this.presenceContext=n;for(let r=0;r<ia.length;r++){const i=ia[r];this.propEventSubscriptions[i]&&(this.propEventSubscriptions[i](),delete this.propEventSubscriptions[i]);const o="on"+i,s=t[o];s&&(this.propEventSubscriptions[i]=this.on(i,s))}this.prevMotionValues=mm(this,this.scrapeMotionValuesFromProps(t,this.prevProps||{},this),this.prevMotionValues),this.handleChildMotionValue&&this.handleChildMotionValue()}getProps(){return this.props}getVariant(t){return this.props.variants?this.props.variants[t]:void 0}getDefaultTransition(){return this.props.transition}getTransformPagePoint(){return this.props.transformPagePoint}getClosestVariantNode(){return this.isVariantNode?this:this.parent?this.parent.getClosestVariantNode():void 0}addVariantChild(t){const n=this.getClosestVariantNode();if(n)return n.variantChildren&&n.variantChildren.add(t),()=>n.variantChildren.delete(t)}addValue(t,n){const r=this.values.get(t);n!==r&&(r&&this.removeValue(t),this.bindToMotionValue(t,n),this.values.set(t,n),this.latestValues[t]=n.get())}removeValue(t){this.values.delete(t);const n=this.valueSubscriptions.get(t);n&&(n(),this.valueSubscriptions.delete(t)),delete this.latestValues[t],this.removeValueFromRenderState(t,this.renderState)}hasValue(t){return this.values.has(t)}getValue(t,n){if(this.props.values&&this.props.values[t])return this.props.values[t];let r=this.values.get(t);return r===void 0&&n!==void 0&&(r=qt(n===null?void 0:n,{owner:this}),this.addValue(t,r)),r}readValue(t,n){let r=this.latestValues[t]!==void 0||!this.current?this.latestValues[t]:this.getBaseTargetFromProps(this.props,t)??this.readValueFromInstance(this.current,t,this.options);return r!=null&&(typeof r=="string"&&(ql(r)||Kl(r))?r=parseFloat(r):!fm(r)&&qe.test(n)&&(r=Bc(t,n)),this.setBaseTarget(t,Le(r)?r.get():r)),Le(r)?r.get():r}setBaseTarget(t,n){this.baseTarget[t]=n}getBaseTarget(t){var o;const{initial:n}=this.props;let r;if(typeof n=="string"||typeof n=="object"){const s=ys(this.props,n,(o=this.presenceContext)==null?void 0:o.custom);s&&(r=s[t])}if(n&&r!==void 0)return r;const i=this.getBaseTargetFromProps(this.props,t);return i!==void 0&&!Le(i)?i:this.initialValues[t]!==void 0&&r===void 0?void 0:this.baseTarget[t]}on(t,n){return this.events[t]||(this.events[t]=new ss),this.events[t].add(n)}notify(t,...n){this.events[t]&&this.events[t].notify(...n)}scheduleRenderMicrotask(){bs.render(this.render)}}class Xc extends xm{constructor(){super(...arguments),this.KeyframeResolver=q0}sortInstanceNodePosition(t,n){return t.compareDocumentPosition(n)&2?1:-1}getBaseTargetFromProps(t,n){const r=t.style;return r?r[n]:void 0}removeValueFromRenderState(t,{vars:n,style:r}){delete n[t],delete r[t]}handleChildMotionValue(){this.childSubscription&&(this.childSubscription(),delete this.childSubscription);const{children:t}=this.props;Le(t)&&(this.childSubscription=t.on("change",n=>{this.current&&(this.current.textContent=`${n}`)}))}}class yt{constructor(t){this.isMounted=!1,this.node=t}update(){}}function Zc({top:e,left:t,right:n,bottom:r}){return{x:{min:t,max:n},y:{min:e,max:r}}}function bm({x:e,y:t}){return{top:t.min,right:e.max,bottom:t.max,left:e.min}}function wm(e,t){if(!t)return e;const n=t({x:e.left,y:e.top}),r=t({x:e.right,y:e.bottom});return{top:n.y,left:n.x,bottom:r.y,right:r.x}}function ni(e){return e===void 0||e===1}function Bi({scale:e,scaleX:t,scaleY:n}){return!ni(e)||!ni(t)||!ni(n)}function Tt(e){return Bi(e)||Jc(e)||e.z||e.rotate||e.rotateX||e.rotateY||e.skewX||e.skewY}function Jc(e){return sa(e.x)||sa(e.y)}function sa(e){return e&&e!=="0%"}function mr(e,t,n){const r=e-n,i=t*r;return n+i}function oa(e,t,n,r,i){return i!==void 0&&(e=mr(e,i,r)),mr(e,n,r)+t}function zi(e,t=0,n=1,r,i){e.min=oa(e.min,t,n,r,i),e.max=oa(e.max,t,n,r,i)}function Qc(e,{x:t,y:n}){zi(e.x,t.translate,t.scale,t.originPoint),zi(e.y,n.translate,n.scale,n.originPoint)}const aa=.999999999999,la=1.0000000000001;function Tm(e,t,n,r=!1){var a;const i=n.length;if(!i)return;t.x=t.y=1;let o,s;for(let l=0;l<i;l++){o=n[l],s=o.projectionDelta;const{visualElement:c}=o.options;c&&c.props.style&&c.props.style.display==="contents"||(r&&o.options.layoutScroll&&o.scroll&&o!==o.root&&(Xe(e.x,-o.scroll.offset.x),Xe(e.y,-o.scroll.offset.y)),s&&(t.x*=s.x.scale,t.y*=s.y.scale,Qc(e,s)),r&&Tt(o.latestValues)&&Qn(e,o.latestValues,(a=o.layout)==null?void 0:a.layoutBox))}t.x<la&&t.x>aa&&(t.x=1),t.y<la&&t.y>aa&&(t.y=1)}function Xe(e,t){e.min+=t,e.max+=t}function ca(e,t,n,r,i=.5){const o=pe(e.min,e.max,i);zi(e,t,n,o,r)}function ua(e,t){return typeof e=="string"?parseFloat(e)/100*(t.max-t.min):e}function Qn(e,t,n){const r=n??e;ca(e.x,ua(t.x,r.x),t.scaleX,t.scale,t.originX),ca(e.y,ua(t.y,r.y),t.scaleY,t.scale,t.originY)}function eu(e,t){return Zc(wm(e.getBoundingClientRect(),t))}function Sm(e,t,n){const r=eu(e,n),{scroll:i}=t;return i&&(Xe(r.x,i.offset.x),Xe(r.y,i.offset.y)),r}const Em={x:"translateX",y:"translateY",z:"translateZ",transformPerspective:"perspective"},Cm=Qt.length;function Rm(e,t,n){let r="",i=!0;for(let o=0;o<Cm;o++){const s=Qt[o],a=e[s];if(a===void 0)continue;let l=!0;if(typeof a=="number")l=a===(s.startsWith("scale")?1:0);else{const c=parseFloat(a);l=s.startsWith("scale")?c===1:c===0}if(!l||n){const c=Uc(a,xs[s]);if(!l){i=!1;const u=Em[s]||s;r+=`${u}(${c}) `}n&&(t[s]=c)}}return r=r.trim(),n?r=n(t,i?"":r):i&&(r="none"),r}function Cs(e,t,n){const{style:r,vars:i,transformOrigin:o}=e;let s=!1,a=!1;for(const l in t){const c=t[l];if(en.has(l)){s=!0;continue}else if(uc(l)){i[l]=c;continue}else{const u=Uc(c,xs[l]);l.startsWith("origin")?(a=!0,o[l]=u):r[l]=u}}if(t.transform||(s||n?r.transform=Rm(t,e.transform,n):r.transform&&(r.transform="none")),a){const{originX:l="50%",originY:c="50%",originZ:u=0}=o;r.transformOrigin=`${l} ${c} ${u}`}}function tu(e,{style:t,vars:n},r,i){const o=e.style;let s;for(s in t)o[s]=t[s];i==null||i.applyProjectionStyles(o,r);for(s in n)o.setProperty(s,n[s])}function ha(e,t){return t.max===t.min?0:e/(t.max-t.min)*100}const dn={correct:(e,t)=>{if(!t.target)return e;if(typeof e=="string")if(B.test(e))e=parseFloat(e);else return e;const n=ha(e,t.target.x),r=ha(e,t.target.y);return`${n}% ${r}%`}},Am={correct:(e,{treeScale:t,projectionDelta:n})=>{const r=e,i=qe.parse(e);if(i.length>5)return r;const o=qe.createTransformer(e),s=typeof i[0]!="number"?1:0,a=n.x.scale*t.x,l=n.y.scale*t.y;i[0+s]/=a,i[1+s]/=l;const c=pe(a,l,.5);return typeof i[2+s]=="number"&&(i[2+s]/=c),typeof i[3+s]=="number"&&(i[3+s]/=c),o(i)}},Ui={borderRadius:{...dn,applyTo:["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"]},borderTopLeftRadius:dn,borderTopRightRadius:dn,borderBottomLeftRadius:dn,borderBottomRightRadius:dn,boxShadow:Am};function nu(e,{layout:t,layoutId:n}){return en.has(e)||e.startsWith("origin")||(t||n!==void 0)&&(!!Ui[e]||e==="opacity")}function Rs(e,t,n){var s;const r=e.style,i=t==null?void 0:t.style,o={};if(!r)return o;for(const a in r)(Le(r[a])||i&&Le(i[a])||nu(a,e)||((s=n==null?void 0:n.getValue(a))==null?void 0:s.liveStyle)!==void 0)&&(o[a]=r[a]);return o}function Pm(e){return window.getComputedStyle(e)}class Mm extends Xc{constructor(){super(...arguments),this.type="html",this.renderInstance=tu}readValueFromInstance(t,n){var r;if(en.has(n))return(r=this.projection)!=null&&r.isProjecting?Pi(n):Kp(t,n);{const i=Pm(t),o=(uc(n)?i.getPropertyValue(n):i[n])||0;return typeof o=="string"?o.trim():o}}measureInstanceViewportBox(t,{transformPagePoint:n}){return eu(t,n)}build(t,n,r){Cs(t,n,r.transformTemplate)}scrapeMotionValuesFromProps(t,n,r){return Rs(t,n,r)}}const _m={offset:"stroke-dashoffset",array:"stroke-dasharray"},Dm={offset:"strokeDashoffset",array:"strokeDasharray"};function Lm(e,t,n=1,r=0,i=!0){e.pathLength=1;const o=i?_m:Dm;e[o.offset]=`${-r}`,e[o.array]=`${t} ${n}`}const jm=["offsetDistance","offsetPath","offsetRotate","offsetAnchor"];function ru(e,{attrX:t,attrY:n,attrScale:r,pathLength:i,pathSpacing:o=1,pathOffset:s=0,...a},l,c,u){if(Cs(e,a,c),l){e.style.viewBox&&(e.attrs.viewBox=e.style.viewBox);return}e.attrs=e.style,e.style={};const{attrs:h,style:d}=e;h.transform&&(d.transform=h.transform,delete h.transform),(d.transform||h.transformOrigin)&&(d.transformOrigin=h.transformOrigin??"50% 50%",delete h.transformOrigin),d.transform&&(d.transformBox=(u==null?void 0:u.transformBox)??"fill-box",delete h.transformBox);for(const f of jm)h[f]!==void 0&&(d[f]=h[f],delete h[f]);t!==void 0&&(h.x=t),n!==void 0&&(h.y=n),r!==void 0&&(h.scale=r),i!==void 0&&Lm(h,i,o,s,!1)}const iu=new Set(["baseFrequency","diffuseConstant","kernelMatrix","kernelUnitLength","keySplines","keyTimes","limitingConeAngle","markerHeight","markerWidth","numOctaves","targetX","targetY","surfaceScale","specularConstant","specularExponent","stdDeviation","tableValues","viewBox","gradientTransform","pathLength","startOffset","textLength","lengthAdjust"]),su=e=>typeof e=="string"&&e.toLowerCase()==="svg";function Om(e,t,n,r){tu(e,t,void 0,r);for(const i in t.attrs)e.setAttribute(iu.has(i)?i:vs(i),t.attrs[i])}function ou(e,t,n){const r=Rs(e,t,n);for(const i in e)if(Le(e[i])||Le(t[i])){const o=Qt.indexOf(i)!==-1?"attr"+i.charAt(0).toUpperCase()+i.substring(1):i;r[o]=e[i]}return r}class km extends Xc{constructor(){super(...arguments),this.type="svg",this.isSVGTag=!1,this.measureInstanceViewportBox=Me}getBaseTargetFromProps(t,n){return t[n]}readValueFromInstance(t,n){if(en.has(n)){const r=Fc(n);return r&&r.default||0}return n=iu.has(n)?n:vs(n),t.getAttribute(n)}scrapeMotionValuesFromProps(t,n,r){return ou(t,n,r)}build(t,n,r){ru(t,n,this.isSVGTag,r.transformTemplate,r.style)}renderInstance(t,n,r,i){Om(t,n,r,i)}mount(t){this.isSVGTag=su(t.tagName),super.mount(t)}}const Im=Es.length;function au(e){if(!e)return;if(!e.isControllingVariants){const n=e.parent?au(e.parent)||{}:{};return e.props.initial!==void 0&&(n.initial=e.props.initial),n}const t={};for(let n=0;n<Im;n++){const r=Es[n],i=e.props[r];(Rn(i)||i===!1)&&(t[r]=i)}return t}function lu(e,t){if(!Array.isArray(t))return!1;const n=t.length;if(n!==e.length)return!1;for(let r=0;r<n;r++)if(t[r]!==e[r])return!1;return!0}const Vm=[...Ss].reverse(),Nm=Ss.length;function Fm(e){return t=>Promise.all(t.map(({animation:n,options:r})=>I0(e,n,r)))}function Bm(e){let t=Fm(e),n=da(),r=!0,i=!1;const o=c=>(u,h)=>{var f;const d=Mt(e,h,c==="exit"?(f=e.presenceContext)==null?void 0:f.custom:void 0);if(d){const{transition:p,transitionEnd:m,...g}=d;u={...u,...g,...m}}return u};function s(c){t=c(e)}function a(c){const{props:u}=e,h=au(e.parent)||{},d=[],f=new Set;let p={},m=1/0;for(let v=0;v<Nm;v++){const C=Vm[v],S=n[C],R=u[C]!==void 0?u[C]:h[C],P=Rn(R),j=C===c?S.isActive:null;j===!1&&(m=v);let b=R===h[C]&&R!==u[C]&&P;if(b&&(r||i)&&e.manuallyAnimateOnMount&&(b=!1),S.protectedKeys={...p},!S.isActive&&j===null||!R&&!S.prevProp||Rr(R)||typeof R=="boolean")continue;if(C==="exit"&&S.isActive&&j!==!0){S.prevResolvedValues&&(p={...p,...S.prevResolvedValues});continue}const M=zm(S.prevProp,R);let O=M||C===c&&S.isActive&&!b&&P||v>m&&P,_=!1;const V=Array.isArray(R)?R:[R];let N=V.reduce(o(C),{});j===!1&&(N={});const{prevResolvedValues:W={}}=S,k={...W,...N},H=G=>{O=!0,f.has(G)&&(_=!0,f.delete(G)),S.needsAnimating[G]=!0;const ue=e.getValue(G);ue&&(ue.liveStyle=!1)};for(const G in k){const ue=N[G],ye=W[G];if(p.hasOwnProperty(G))continue;let T=!1;Oi(ue)&&Oi(ye)?T=!lu(ue,ye):T=ue!==ye,T?ue!=null?H(G):f.add(G):ue!==void 0&&f.has(G)?H(G):S.protectedKeys[G]=!0}S.prevProp=R,S.prevResolvedValues=N,S.isActive&&(p={...p,...N}),(r||i)&&e.blockInitialAnimation&&(O=!1);const re=b&&M;O&&(!re||_)&&d.push(...V.map(G=>{const ue={type:C};if(typeof G=="string"&&(r||i)&&!re&&e.manuallyAnimateOnMount&&e.parent){const{parent:ye}=e,T=Mt(ye,G);if(ye.enteringChildren&&T){const{delayChildren:D}=T.transition||{};ue.delay=_c(ye.enteringChildren,e,D)}}return{animation:G,options:ue}}))}if(f.size){const v={};if(typeof u.initial!="boolean"){const C=Mt(e,Array.isArray(u.initial)?u.initial[0]:u.initial);C&&C.transition&&(v.transition=C.transition)}f.forEach(C=>{const S=e.getBaseTarget(C),R=e.getValue(C);R&&(R.liveStyle=!0),v[C]=S??null}),d.push({animation:v})}let g=!!d.length;return r&&(u.initial===!1||u.initial===u.animate)&&!e.manuallyAnimateOnMount&&(g=!1),r=!1,i=!1,g?t(d):Promise.resolve()}function l(c,u){var d;if(n[c].isActive===u)return Promise.resolve();(d=e.variantChildren)==null||d.forEach(f=>{var p;return(p=f.animationState)==null?void 0:p.setActive(c,u)}),n[c].isActive=u;const h=a(c);for(const f in n)n[f].protectedKeys={};return h}return{animateChanges:a,setActive:l,setAnimateFunction:s,getState:()=>n,reset:()=>{n=da(),i=!0}}}function zm(e,t){return typeof t=="string"?t!==e:Array.isArray(t)?!lu(t,e):!1}function wt(e=!1){return{isActive:e,protectedKeys:{},needsAnimating:{},prevResolvedValues:{}}}function da(){return{animate:wt(!0),whileInView:wt(),whileHover:wt(),whileTap:wt(),whileDrag:wt(),whileFocus:wt(),exit:wt()}}function Hi(e,t){e.min=t.min,e.max=t.max}function He(e,t){Hi(e.x,t.x),Hi(e.y,t.y)}function fa(e,t){e.translate=t.translate,e.scale=t.scale,e.originPoint=t.originPoint,e.origin=t.origin}const cu=1e-4,Um=1-cu,Hm=1+cu,uu=.01,$m=0-uu,Wm=0+uu;function Ie(e){return e.max-e.min}function Gm(e,t,n){return Math.abs(e-t)<=n}function pa(e,t,n,r=.5){e.origin=r,e.originPoint=pe(t.min,t.max,e.origin),e.scale=Ie(n)/Ie(t),e.translate=pe(n.min,n.max,e.origin)-e.originPoint,(e.scale>=Um&&e.scale<=Hm||isNaN(e.scale))&&(e.scale=1),(e.translate>=$m&&e.translate<=Wm||isNaN(e.translate))&&(e.translate=0)}function vn(e,t,n,r){pa(e.x,t.x,n.x,r?r.originX:void 0),pa(e.y,t.y,n.y,r?r.originY:void 0)}function ma(e,t,n,r=0){const i=r?pe(n.min,n.max,r):n.min;e.min=i+t.min,e.max=e.min+Ie(t)}function qm(e,t,n,r){ma(e.x,t.x,n.x,r==null?void 0:r.x),ma(e.y,t.y,n.y,r==null?void 0:r.y)}function ga(e,t,n,r=0){const i=r?pe(n.min,n.max,r):n.min;e.min=t.min-i,e.max=e.min+Ie(t)}function gr(e,t,n,r){ga(e.x,t.x,n.x,r==null?void 0:r.x),ga(e.y,t.y,n.y,r==null?void 0:r.y)}function ya(e,t,n,r,i){return e-=t,e=mr(e,1/n,r),i!==void 0&&(e=mr(e,1/i,r)),e}function Ym(e,t=0,n=1,r=.5,i,o=e,s=e){if(Ze.test(t)&&(t=parseFloat(t),t=pe(s.min,s.max,t/100)-s.min),typeof t!="number")return;let a=pe(o.min,o.max,r);e===o&&(a-=t),e.min=ya(e.min,t,n,a,i),e.max=ya(e.max,t,n,a,i)}function va(e,t,[n,r,i],o,s){Ym(e,t[n],t[r],t[i],t.scale,o,s)}const Km=["x","scaleX","originX"],Xm=["y","scaleY","originY"];function xa(e,t,n,r){va(e.x,t,Km,n?n.x:void 0,r?r.x:void 0),va(e.y,t,Xm,n?n.y:void 0,r?r.y:void 0)}function ba(e){return e.translate===0&&e.scale===1}function hu(e){return ba(e.x)&&ba(e.y)}function wa(e,t){return e.min===t.min&&e.max===t.max}function Zm(e,t){return wa(e.x,t.x)&&wa(e.y,t.y)}function Ta(e,t){return Math.round(e.min)===Math.round(t.min)&&Math.round(e.max)===Math.round(t.max)}function du(e,t){return Ta(e.x,t.x)&&Ta(e.y,t.y)}function Sa(e){return Ie(e.x)/Ie(e.y)}function Ea(e,t){return e.translate===t.translate&&e.scale===t.scale&&e.originPoint===t.originPoint}function Ke(e){return[e("x"),e("y")]}function Jm(e,t,n){let r="";const i=e.x.translate/t.x,o=e.y.translate/t.y,s=(n==null?void 0:n.z)||0;if((i||o||s)&&(r=`translate3d(${i}px, ${o}px, ${s}px) `),(t.x!==1||t.y!==1)&&(r+=`scale(${1/t.x}, ${1/t.y}) `),n){const{transformPerspective:c,rotate:u,rotateX:h,rotateY:d,skewX:f,skewY:p}=n;c&&(r=`perspective(${c}px) ${r}`),u&&(r+=`rotate(${u}deg) `),h&&(r+=`rotateX(${h}deg) `),d&&(r+=`rotateY(${d}deg) `),f&&(r+=`skewX(${f}deg) `),p&&(r+=`skewY(${p}deg) `)}const a=e.x.scale*t.x,l=e.y.scale*t.y;return(a!==1||l!==1)&&(r+=`scale(${a}, ${l})`),r||"none"}const fu=["borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius"],Qm=fu.length,Ca=e=>typeof e=="string"?parseFloat(e):e,Ra=e=>typeof e=="number"||B.test(e);function e1(e,t,n,r,i,o){i?(e.opacity=pe(0,n.opacity??1,t1(r)),e.opacityExit=pe(t.opacity??1,0,n1(r))):o&&(e.opacity=pe(t.opacity??1,n.opacity??1,r));for(let s=0;s<Qm;s++){const a=fu[s];let l=Aa(t,a),c=Aa(n,a);if(l===void 0&&c===void 0)continue;l||(l=0),c||(c=0),l===0||c===0||Ra(l)===Ra(c)?(e[a]=Math.max(pe(Ca(l),Ca(c),r),0),(Ze.test(c)||Ze.test(l))&&(e[a]+="%")):e[a]=c}(t.rotate||n.rotate)&&(e.rotate=pe(t.rotate||0,n.rotate||0,r))}function Aa(e,t){return e[t]!==void 0?e[t]:e.borderRadius}const t1=pu(0,.5,ic),n1=pu(.5,.95,Ue);function pu(e,t,n){return r=>r<e?0:r>t?1:n(En(e,t,r))}function r1(e,t,n){const r=Le(e)?e:qt(e);return r.start(gs("",r,t,n)),r.animation}function An(e,t,n,r={passive:!0}){return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n)}const i1=(e,t)=>e.depth-t.depth;class s1{constructor(){this.children=[],this.isDirty=!1}add(t){rs(this.children,t),this.isDirty=!0}remove(t){cr(this.children,t),this.isDirty=!0}forEach(t){this.isDirty&&this.children.sort(i1),this.isDirty=!1,this.children.forEach(t)}}function o1(e,t){const n=ke.now(),r=({timestamp:i})=>{const o=i-n;o>=t&&(pt(r),e(o-t))};return de.setup(r,!0),()=>pt(r)}function er(e){return Le(e)?e.get():e}class a1{constructor(){this.members=[]}add(t){rs(this.members,t);for(let n=this.members.length-1;n>=0;n--){const r=this.members[n];if(r===t||r===this.lead||r===this.prevLead)continue;const i=r.instance;(!i||i.isConnected===!1)&&!r.snapshot&&(cr(this.members,r),r.unmount())}t.scheduleRender()}remove(t){if(cr(this.members,t),t===this.prevLead&&(this.prevLead=void 0),t===this.lead){const n=this.members[this.members.length-1];n&&this.promote(n)}}relegate(t){var n;for(let r=this.members.indexOf(t)-1;r>=0;r--){const i=this.members[r];if(i.isPresent!==!1&&((n=i.instance)==null?void 0:n.isConnected)!==!1)return this.promote(i),!0}return!1}promote(t,n){var i;const r=this.lead;if(t!==r&&(this.prevLead=r,this.lead=t,t.show(),r)){r.updateSnapshot(),t.scheduleRender();const{layoutDependency:o}=r.options,{layoutDependency:s}=t.options;(o===void 0||o!==s)&&(t.resumeFrom=r,n&&(r.preserveOpacity=!0),r.snapshot&&(t.snapshot=r.snapshot,t.snapshot.latestValues=r.animationValues||r.latestValues),(i=t.root)!=null&&i.isUpdating&&(t.isLayoutDirty=!0)),t.options.crossfade===!1&&r.hide()}}exitAnimationComplete(){this.members.forEach(t=>{var n,r,i,o,s;(r=(n=t.options).onExitComplete)==null||r.call(n),(s=(i=t.resumingFrom)==null?void 0:(o=i.options).onExitComplete)==null||s.call(o)})}scheduleRender(){this.members.forEach(t=>t.instance&&t.scheduleRender(!1))}removeLeadSnapshot(){var t;(t=this.lead)!=null&&t.snapshot&&(this.lead.snapshot=void 0)}}const tr={hasAnimatedSinceResize:!0,hasEverUpdated:!1},ri=["","X","Y","Z"],l1=1e3;let c1=0;function ii(e,t,n,r){const{latestValues:i}=t;i[e]&&(n[e]=i[e],t.setStaticValue(e,0),r&&(r[e]=0))}function mu(e){if(e.hasCheckedOptimisedAppear=!0,e.root===e)return;const{visualElement:t}=e.options;if(!t)return;const n=kc(t);if(window.MotionHasOptimisedAnimation(n,"transform")){const{layout:i,layoutId:o}=e.options;window.MotionCancelOptimisedAnimation(n,"transform",de,!(i||o))}const{parent:r}=e;r&&!r.hasCheckedOptimisedAppear&&mu(r)}function gu({attachResizeListener:e,defaultParent:t,measureScroll:n,checkIsScrollRoot:r,resetTransform:i}){return class{constructor(s={},a=t==null?void 0:t()){this.id=c1++,this.animationId=0,this.animationCommitId=0,this.children=new Set,this.options={},this.isTreeAnimating=!1,this.isAnimationBlocked=!1,this.isLayoutDirty=!1,this.isProjectionDirty=!1,this.isSharedProjectionDirty=!1,this.isTransformDirty=!1,this.updateManuallyBlocked=!1,this.updateBlockedByResize=!1,this.isUpdating=!1,this.isSVG=!1,this.needsReset=!1,this.shouldResetTransform=!1,this.hasCheckedOptimisedAppear=!1,this.treeScale={x:1,y:1},this.eventHandlers=new Map,this.hasTreeAnimated=!1,this.layoutVersion=0,this.updateScheduled=!1,this.scheduleUpdate=()=>this.update(),this.projectionUpdateScheduled=!1,this.checkUpdateFailed=()=>{this.isUpdating&&(this.isUpdating=!1,this.clearAllSnapshots())},this.updateProjection=()=>{this.projectionUpdateScheduled=!1,this.nodes.forEach(d1),this.nodes.forEach(v1),this.nodes.forEach(x1),this.nodes.forEach(f1)},this.resolvedRelativeTargetAt=0,this.linkedParentVersion=0,this.hasProjected=!1,this.isVisible=!0,this.animationProgress=0,this.sharedNodes=new Map,this.latestValues=s,this.root=a?a.root||a:this,this.path=a?[...a.path,a]:[],this.parent=a,this.depth=a?a.depth+1:0;for(let l=0;l<this.path.length;l++)this.path[l].shouldResetTransform=!0;this.root===this&&(this.nodes=new s1)}addEventListener(s,a){return this.eventHandlers.has(s)||this.eventHandlers.set(s,new ss),this.eventHandlers.get(s).add(a)}notifyListeners(s,...a){const l=this.eventHandlers.get(s);l&&l.notify(...a)}hasListeners(s){return this.eventHandlers.has(s)}mount(s){if(this.instance)return;this.isSVG=Ts(s)&&!hm(s),this.instance=s;const{layoutId:a,layout:l,visualElement:c}=this.options;if(c&&!c.current&&c.mount(s),this.root.nodes.add(this),this.parent&&this.parent.children.add(this),this.root.hasTreeAnimated&&(l||a)&&(this.isLayoutDirty=!0),e){let u,h=0;const d=()=>this.root.updateBlockedByResize=!1;de.read(()=>{h=window.innerWidth}),e(s,()=>{const f=window.innerWidth;f!==h&&(h=f,this.root.updateBlockedByResize=!0,u&&u(),u=o1(d,250),tr.hasAnimatedSinceResize&&(tr.hasAnimatedSinceResize=!1,this.nodes.forEach(_a)))})}a&&this.root.registerSharedNode(a,this),this.options.animate!==!1&&c&&(a||l)&&this.addEventListener("didUpdate",({delta:u,hasLayoutChanged:h,hasRelativeLayoutChanged:d,layout:f})=>{if(this.isTreeAnimationBlocked()){this.target=void 0,this.relativeTarget=void 0;return}const p=this.options.transition||c.getDefaultTransition()||E1,{onLayoutAnimationStart:m,onLayoutAnimationComplete:g}=c.getProps(),v=!this.targetLayout||!du(this.targetLayout,f),C=!h&&d;if(this.options.layoutRoot||this.resumeFrom||C||h&&(v||!this.currentAnimation)){this.resumeFrom&&(this.resumingFrom=this.resumeFrom,this.resumingFrom.resumingFrom=void 0);const S={...ms(p,"layout"),onPlay:m,onComplete:g};(c.shouldReduceMotion||this.options.layoutRoot)&&(S.delay=0,S.type=!1),this.startAnimation(S),this.setAnimationOrigin(u,C)}else h||_a(this),this.isLead()&&this.options.onExitComplete&&this.options.onExitComplete();this.targetLayout=f})}unmount(){this.options.layoutId&&this.willUpdate(),this.root.nodes.remove(this);const s=this.getStack();s&&s.remove(this),this.parent&&this.parent.children.delete(this),this.instance=void 0,this.eventHandlers.clear(),pt(this.updateProjection)}blockUpdate(){this.updateManuallyBlocked=!0}unblockUpdate(){this.updateManuallyBlocked=!1}isUpdateBlocked(){return this.updateManuallyBlocked||this.updateBlockedByResize}isTreeAnimationBlocked(){return this.isAnimationBlocked||this.parent&&this.parent.isTreeAnimationBlocked()||!1}startUpdate(){this.isUpdateBlocked()||(this.isUpdating=!0,this.nodes&&this.nodes.forEach(b1),this.animationId++)}getTransformTemplate(){const{visualElement:s}=this.options;return s&&s.getProps().transformTemplate}willUpdate(s=!0){if(this.root.hasTreeAnimated=!0,this.root.isUpdateBlocked()){this.options.onExitComplete&&this.options.onExitComplete();return}if(window.MotionCancelOptimisedAnimation&&!this.hasCheckedOptimisedAppear&&mu(this),!this.root.isUpdating&&this.root.startUpdate(),this.isLayoutDirty)return;this.isLayoutDirty=!0;for(let u=0;u<this.path.length;u++){const h=this.path[u];h.shouldResetTransform=!0,(typeof h.latestValues.x=="string"||typeof h.latestValues.y=="string")&&(h.isLayoutDirty=!0),h.updateScroll("snapshot"),h.options.layoutRoot&&h.willUpdate(!1)}const{layoutId:a,layout:l}=this.options;if(a===void 0&&!l)return;const c=this.getTransformTemplate();this.prevTransformTemplateValue=c?c(this.latestValues,""):void 0,this.updateSnapshot(),s&&this.notifyListeners("willUpdate")}update(){if(this.updateScheduled=!1,this.isUpdateBlocked()){const l=this.updateBlockedByResize;this.unblockUpdate(),this.updateBlockedByResize=!1,this.clearAllSnapshots(),l&&this.nodes.forEach(m1),this.nodes.forEach(Pa);return}if(this.animationId<=this.animationCommitId){this.nodes.forEach(Ma);return}this.animationCommitId=this.animationId,this.isUpdating?(this.isUpdating=!1,this.nodes.forEach(g1),this.nodes.forEach(y1),this.nodes.forEach(u1),this.nodes.forEach(h1)):this.nodes.forEach(Ma),this.clearAllSnapshots();const a=ke.now();De.delta=Je(0,1e3/60,a-De.timestamp),De.timestamp=a,De.isProcessing=!0,Kr.update.process(De),Kr.preRender.process(De),Kr.render.process(De),De.isProcessing=!1}didUpdate(){this.updateScheduled||(this.updateScheduled=!0,bs.read(this.scheduleUpdate))}clearAllSnapshots(){this.nodes.forEach(p1),this.sharedNodes.forEach(w1)}scheduleUpdateProjection(){this.projectionUpdateScheduled||(this.projectionUpdateScheduled=!0,de.preRender(this.updateProjection,!1,!0))}scheduleCheckAfterUnmount(){de.postRender(()=>{this.isLayoutDirty?this.root.didUpdate():this.root.checkUpdateFailed()})}updateSnapshot(){this.snapshot||!this.instance||(this.snapshot=this.measure(),this.snapshot&&!Ie(this.snapshot.measuredBox.x)&&!Ie(this.snapshot.measuredBox.y)&&(this.snapshot=void 0))}updateLayout(){if(!this.instance||(this.updateScroll(),!(this.options.alwaysMeasureLayout&&this.isLead())&&!this.isLayoutDirty))return;if(this.resumeFrom&&!this.resumeFrom.instance)for(let l=0;l<this.path.length;l++)this.path[l].updateScroll();const s=this.layout;this.layout=this.measure(!1),this.layoutVersion++,this.layoutCorrected||(this.layoutCorrected=Me()),this.isLayoutDirty=!1,this.projectionDelta=void 0,this.notifyListeners("measure",this.layout.layoutBox);const{visualElement:a}=this.options;a&&a.notify("LayoutMeasure",this.layout.layoutBox,s?s.layoutBox:void 0)}updateScroll(s="measure"){let a=!!(this.options.layoutScroll&&this.instance);if(this.scroll&&this.scroll.animationId===this.root.animationId&&this.scroll.phase===s&&(a=!1),a&&this.instance){const l=r(this.instance);this.scroll={animationId:this.root.animationId,phase:s,isRoot:l,offset:n(this.instance),wasRoot:this.scroll?this.scroll.isRoot:l}}}resetTransform(){if(!i)return;const s=this.isLayoutDirty||this.shouldResetTransform||this.options.alwaysMeasureLayout,a=this.projectionDelta&&!hu(this.projectionDelta),l=this.getTransformTemplate(),c=l?l(this.latestValues,""):void 0,u=c!==this.prevTransformTemplateValue;s&&this.instance&&(a||Tt(this.latestValues)||u)&&(i(this.instance,c),this.shouldResetTransform=!1,this.scheduleRender())}measure(s=!0){const a=this.measurePageBox();let l=this.removeElementScroll(a);return s&&(l=this.removeTransform(l)),C1(l),{animationId:this.root.animationId,measuredBox:a,layoutBox:l,latestValues:{},source:this.id}}measurePageBox(){var c;const{visualElement:s}=this.options;if(!s)return Me();const a=s.measureViewportBox();if(!(((c=this.scroll)==null?void 0:c.wasRoot)||this.path.some(R1))){const{scroll:u}=this.root;u&&(Xe(a.x,u.offset.x),Xe(a.y,u.offset.y))}return a}removeElementScroll(s){var l;const a=Me();if(He(a,s),(l=this.scroll)!=null&&l.wasRoot)return a;for(let c=0;c<this.path.length;c++){const u=this.path[c],{scroll:h,options:d}=u;u!==this.root&&h&&d.layoutScroll&&(h.wasRoot&&He(a,s),Xe(a.x,h.offset.x),Xe(a.y,h.offset.y))}return a}applyTransform(s,a=!1,l){var u,h;const c=l||Me();He(c,s);for(let d=0;d<this.path.length;d++){const f=this.path[d];!a&&f.options.layoutScroll&&f.scroll&&f!==f.root&&(Xe(c.x,-f.scroll.offset.x),Xe(c.y,-f.scroll.offset.y)),Tt(f.latestValues)&&Qn(c,f.latestValues,(u=f.layout)==null?void 0:u.layoutBox)}return Tt(this.latestValues)&&Qn(c,this.latestValues,(h=this.layout)==null?void 0:h.layoutBox),c}removeTransform(s){var l;const a=Me();He(a,s);for(let c=0;c<this.path.length;c++){const u=this.path[c];if(!Tt(u.latestValues))continue;let h;u.instance&&(Bi(u.latestValues)&&u.updateSnapshot(),h=Me(),He(h,u.measurePageBox())),xa(a,u.latestValues,(l=u.snapshot)==null?void 0:l.layoutBox,h)}return Tt(this.latestValues)&&xa(a,this.latestValues),a}setTargetDelta(s){this.targetDelta=s,this.root.scheduleUpdateProjection(),this.isProjectionDirty=!0}setOptions(s){this.options={...this.options,...s,crossfade:s.crossfade!==void 0?s.crossfade:!0}}clearMeasurements(){this.scroll=void 0,this.layout=void 0,this.snapshot=void 0,this.prevTransformTemplateValue=void 0,this.targetDelta=void 0,this.target=void 0,this.isLayoutDirty=!1}forceRelativeParentToResolveTarget(){this.relativeParent&&this.relativeParent.resolvedRelativeTargetAt!==De.timestamp&&this.relativeParent.resolveTargetDelta(!0)}resolveTargetDelta(s=!1){var f;const a=this.getLead();this.isProjectionDirty||(this.isProjectionDirty=a.isProjectionDirty),this.isTransformDirty||(this.isTransformDirty=a.isTransformDirty),this.isSharedProjectionDirty||(this.isSharedProjectionDirty=a.isSharedProjectionDirty);const l=!!this.resumingFrom||this!==a;if(!(s||l&&this.isSharedProjectionDirty||this.isProjectionDirty||(f=this.parent)!=null&&f.isProjectionDirty||this.attemptToResolveRelativeTarget||this.root.updateBlockedByResize))return;const{layout:u,layoutId:h}=this.options;if(!this.layout||!(u||h))return;this.resolvedRelativeTargetAt=De.timestamp;const d=this.getClosestProjectingParent();d&&this.linkedParentVersion!==d.layoutVersion&&!d.options.layoutRoot&&this.removeRelativeTarget(),!this.targetDelta&&!this.relativeTarget&&(this.options.layoutAnchor!==!1&&d&&d.layout?this.createRelativeTarget(d,this.layout.layoutBox,d.layout.layoutBox):this.removeRelativeTarget()),!(!this.relativeTarget&&!this.targetDelta)&&(this.target||(this.target=Me(),this.targetWithTransforms=Me()),this.relativeTarget&&this.relativeTargetOrigin&&this.relativeParent&&this.relativeParent.target?(this.forceRelativeParentToResolveTarget(),qm(this.target,this.relativeTarget,this.relativeParent.target,this.options.layoutAnchor||void 0)):this.targetDelta?(this.resumingFrom?this.applyTransform(this.layout.layoutBox,!1,this.target):He(this.target,this.layout.layoutBox),Qc(this.target,this.targetDelta)):He(this.target,this.layout.layoutBox),this.attemptToResolveRelativeTarget&&(this.attemptToResolveRelativeTarget=!1,this.options.layoutAnchor!==!1&&d&&!!d.resumingFrom==!!this.resumingFrom&&!d.options.layoutScroll&&d.target&&this.animationProgress!==1?this.createRelativeTarget(d,this.target,d.target):this.relativeParent=this.relativeTarget=void 0))}getClosestProjectingParent(){if(!(!this.parent||Bi(this.parent.latestValues)||Jc(this.parent.latestValues)))return this.parent.isProjecting()?this.parent:this.parent.getClosestProjectingParent()}isProjecting(){return!!((this.relativeTarget||this.targetDelta||this.options.layoutRoot)&&this.layout)}createRelativeTarget(s,a,l){this.relativeParent=s,this.linkedParentVersion=s.layoutVersion,this.forceRelativeParentToResolveTarget(),this.relativeTarget=Me(),this.relativeTargetOrigin=Me(),gr(this.relativeTargetOrigin,a,l,this.options.layoutAnchor||void 0),He(this.relativeTarget,this.relativeTargetOrigin)}removeRelativeTarget(){this.relativeParent=this.relativeTarget=void 0}calcProjection(){var p;const s=this.getLead(),a=!!this.resumingFrom||this!==s;let l=!0;if((this.isProjectionDirty||(p=this.parent)!=null&&p.isProjectionDirty)&&
vendor: 5,333 bytes, line 53
53(l=!1),a&&(this.isSharedProjectionDirty||this.isTransformDirty)&&(l=!1),this.resolvedRelativeTargetAt===De.timestamp&&(l=!1),l)return;const{layout:c,layoutId:u}=this.options;if(this.isTreeAnimating=!!(this.parent&&this.parent.isTreeAnimating||this.currentAnimation||this.pendingAnimation),this.isTreeAnimating||(this.targetDelta=this.relativeTarget=void 0),!this.layout||!(c||u))return;He(this.layoutCorrected,this.layout.layoutBox);const h=this.treeScale.x,d=this.treeScale.y;Tm(this.layoutCorrected,this.treeScale,this.path,a),s.layout&&!s.target&&(this.treeScale.x!==1||this.treeScale.y!==1)&&(s.target=s.layout.layoutBox,s.targetWithTransforms=Me());const{target:f}=s;if(!f){this.prevProjectionDelta&&(this.createProjectionDeltas(),this.scheduleRender());return}!this.projectionDelta||!this.prevProjectionDelta?this.createProjectionDeltas():(fa(this.prevProjectionDelta.x,this.projectionDelta.x),fa(this.prevProjectionDelta.y,this.projectionDelta.y)),vn(this.projectionDelta,this.layoutCorrected,f,this.latestValues),(this.treeScale.x!==h||this.treeScale.y!==d||!Ea(this.projectionDelta.x,this.prevProjectionDelta.x)||!Ea(this.projectionDelta.y,this.prevProjectionDelta.y))&&(this.hasProjected=!0,this.scheduleRender(),this.notifyListeners("projectionUpdate",f))}hide(){this.isVisible=!1}show(){this.isVisible=!0}scheduleRender(s=!0){var a;if((a=this.options.visualElement)==null||a.scheduleRender(),s){const l=this.getStack();l&&l.scheduleRender()}this.resumingFrom&&!this.resumingFrom.instance&&(this.resumingFrom=void 0)}createProjectionDeltas(){this.prevProjectionDelta=Ht(),this.projectionDelta=Ht(),this.projectionDeltaWithTransform=Ht()}setAnimationOrigin(s,a=!1){const l=this.snapshot,c=l?l.latestValues:{},u={...this.latestValues},h=Ht();(!this.relativeParent||!this.relativeParent.options.layoutRoot)&&(this.relativeTarget=this.relativeTargetOrigin=void 0),this.attemptToResolveRelativeTarget=!a;const d=Me(),f=l?l.source:void 0,p=this.layout?this.layout.source:void 0,m=f!==p,g=this.getStack(),v=!g||g.members.length<=1,C=!!(m&&!v&&this.options.crossfade===!0&&!this.path.some(S1));this.animationProgress=0;let S;this.mixTargetDelta=R=>{const P=R/1e3;Da(h.x,s.x,P),Da(h.y,s.y,P),this.setTargetDelta(h),this.relativeTarget&&this.relativeTargetOrigin&&this.layout&&this.relativeParent&&this.relativeParent.layout&&(gr(d,this.layout.layoutBox,this.relativeParent.layout.layoutBox,this.options.layoutAnchor||void 0),T1(this.relativeTarget,this.relativeTargetOrigin,d,P),S&&Zm(this.relativeTarget,S)&&(this.isProjectionDirty=!1),S||(S=Me()),He(S,this.relativeTarget)),m&&(this.animationValues=u,e1(u,c,this.latestValues,P,C,v)),this.root.scheduleUpdateProjection(),this.scheduleRender(),this.animationProgress=P},this.mixTargetDelta(this.options.layoutRoot?1e3:0)}startAnimation(s){var a,l,c;this.notifyListeners("animationStart"),(a=this.currentAnimation)==null||a.stop(),(c=(l=this.resumingFrom)==null?void 0:l.currentAnimation)==null||c.stop(),this.pendingAnimation&&(pt(this.pendingAnimation),this.pendingAnimation=void 0),this.pendingAnimation=de.update(()=>{tr.hasAnimatedSinceResize=!0,this.motionValue||(this.motionValue=qt(0)),this.motionValue.jump(0,!1),this.currentAnimation=r1(this.motionValue,[0,1e3],{...s,velocity:0,isSync:!0,onUpdate:u=>{this.mixTargetDelta(u),s.onUpdate&&s.onUpdate(u)},onStop:()=>{},onComplete:()=>{s.onComplete&&s.onComplete(),this.completeAnimation()}}),this.resumingFrom&&(this.resumingFrom.currentAnimation=this.currentAnimation),this.pendingAnimation=void 0})}completeAnimation(){this.resumingFrom&&(this.resumingFrom.currentAnimation=void 0,this.resumingFrom.preserveOpacity=void 0);const s=this.getStack();s&&s.exitAnimationComplete(),this.resumingFrom=this.currentAnimation=this.animationValues=void 0,this.notifyListeners("animationComplete")}finishAnimation(){this.currentAnimation&&(this.mixTargetDelta&&this.mixTargetDelta(l1),this.currentAnimation.stop()),this.completeAnimation()}applyTransformsToTarget(){const s=this.getLead();let{targetWithTransforms:a,target:l,layout:c,latestValues:u}=s;if(!(!a||!l||!c)){if(this!==s&&this.layout&&c&&yu(this.options.animationType,this.layout.layoutBox,c.layoutBox)){l=this.target||Me();const h=Ie(this.layout.layoutBox.x);l.x.min=s.target.x.min,l.x.max=l.x.min+h;const d=Ie(this.layout.layoutBox.y);l.y.min=s.target.y.min,l.y.max=l.y.min+d}He(a,l),Qn(a,u),vn(this.projectionDeltaWithTransform,this.layoutCorrected,a,u)}}registerSharedNode(s,a){this.sharedNodes.has(s)||this.sharedNodes.set(s,new a1),this.sharedNodes.get(s).add(a);const c=a.options.initialPromotionConfig;a.promote({transition:c?c.transition:void 0,preserveFollowOpacity:c&&c.shouldPreserveFollowOpacity?c.shouldPreserveFollowOpacity(a):void 0})}isLead(){const s=this.getStack();return s?s.lead===this:!0}getLead(){var a;const{layoutId:s}=this.options;return s?((a=this.getStack())==null?void 0:a.lead)||this:this}getPrevLead(){var a;const{layoutId:s}=this.options;return s?(a=this.getStack())==null?void 0:a.prevLead:void 0}getStack(){const{layoutId:s}=this.options;if(s)return this.root.sharedNodes.get(s)}promote({needsReset:s,transition:a,preserveFollowOpacity:l}={}){const c=this.getStack();c&&c.promote(this,l),s&&(this.projectionDelta=void 0,this.needsReset=!0),a&&this.setOptions({transition:a})}relegate(){const s=this.getStack();return s?s.relegate(this):!1}
vendor: 4,506 bytes, line 53
53resetSkewAndRotation(){const{visualElement:s}=this.options;if(!s)return;let a=!1;const{latestValues:l}=s;if((l.z||l.rotate||l.rotateX||l.rotateY||l.rotateZ||l.skewX||l.skewY)&&(a=!0),!a)return;const c={};l.z&&ii("z",s,c,this.animationValues);for(let u=0;u<ri.length;u++)ii(`rotate${ri[u]}`,s,c,this.animationValues),ii(`skew${ri[u]}`,s,c,this.animationValues);s.render();for(const u in c)s.setStaticValue(u,c[u]),this.animationValues&&(this.animationValues[u]=c[u]);s.scheduleRender()}applyProjectionStyles(s,a){if(!this.instance||this.isSVG)return;if(!this.isVisible){s.visibility="hidden";return}const l=this.getTransformTemplate();if(this.needsReset){this.needsReset=!1,s.visibility="",s.opacity="",s.pointerEvents=er(a==null?void 0:a.pointerEvents)||"",s.transform=l?l(this.latestValues,""):"none";return}const c=this.getLead();if(!this.projectionDelta||!this.layout||!c.target){this.options.layoutId&&(s.opacity=this.latestValues.opacity!==void 0?this.latestValues.opacity:1,s.pointerEvents=er(a==null?void 0:a.pointerEvents)||""),this.hasProjected&&!Tt(this.latestValues)&&(s.transform=l?l({},""):"none",this.hasProjected=!1);return}s.visibility="";const u=c.animationValues||c.latestValues;this.applyTransformsToTarget();let h=Jm(this.projectionDeltaWithTransform,this.treeScale,u);l&&(h=l(u,h)),s.transform=h;const{x:d,y:f}=this.projectionDelta;s.transformOrigin=`${d.origin*100}% ${f.origin*100}% 0`,c.animationValues?s.opacity=c===this?u.opacity??this.latestValues.opacity??1:this.preserveOpacity?this.latestValues.opacity:u.opacityExit:s.opacity=c===this?u.opacity!==void 0?u.opacity:"":u.opacityExit!==void 0?u.opacityExit:0;for(const p in Ui){if(u[p]===void 0)continue;const{correct:m,applyTo:g,isCSSVariable:v}=Ui[p],C=h==="none"?u[p]:m(u[p],c);if(g){const S=g.length;for(let R=0;R<S;R++)s[g[R]]=C}else v?this.options.visualElement.renderState.vars[p]=C:s[p]=C}this.options.layoutId&&(s.pointerEvents=c===this?er(a==null?void 0:a.pointerEvents)||"":"none")}clearSnapshot(){this.resumeFrom=this.snapshot=void 0}resetTree(){this.root.nodes.forEach(s=>{var a;return(a=s.currentAnimation)==null?void 0:a.stop()}),this.root.nodes.forEach(Pa),this.root.sharedNodes.clear()}}}function u1(e){e.updateLayout()}function h1(e){var n;const t=((n=e.resumeFrom)==null?void 0:n.snapshot)||e.snapshot;if(e.isLead()&&e.layout&&t&&e.hasListeners("didUpdate")){const{layoutBox:r,measuredBox:i}=e.layout,{animationType:o}=e.options,s=t.source!==e.layout.source;if(o==="size")Ke(h=>{const d=s?t.measuredBox[h]:t.layoutBox[h],f=Ie(d);d.min=r[h].min,d.max=d.min+f});else if(o==="x"||o==="y"){const h=o==="x"?"y":"x";Hi(s?t.measuredBox[h]:t.layoutBox[h],r[h])}else yu(o,t.layoutBox,r)&&Ke(h=>{const d=s?t.measuredBox[h]:t.layoutBox[h],f=Ie(r[h]);d.max=d.min+f,e.relativeTarget&&!e.currentAnimation&&(e.isProjectionDirty=!0,e.relativeTarget[h].max=e.relativeTarget[h].min+f)});const a=Ht();vn(a,r,t.layoutBox);const l=Ht();s?vn(l,e.applyTransform(i,!0),t.measuredBox):vn(l,r,t.layoutBox);const c=!hu(a);let u=!1;if(!e.resumeFrom){const h=e.getClosestProjectingParent();if(h&&!h.resumeFrom){const{snapshot:d,layout:f}=h;if(d&&f){const p=e.options.layoutAnchor||void 0,m=Me();gr(m,t.layoutBox,d.layoutBox,p);const g=Me();gr(g,r,f.layoutBox,p),du(m,g)||(u=!0),h.options.layoutRoot&&(e.relativeTarget=g,e.relativeTargetOrigin=m,e.relativeParent=h)}}}e.notifyListeners("didUpdate",{layout:r,snapshot:t,delta:l,layoutDelta:a,hasLayoutChanged:c,hasRelativeLayoutChanged:u})}else if(e.isLead()){const{onExitComplete:r}=e.options;r&&r()}e.options.transition=void 0}function d1(e){e.parent&&(e.isProjecting()||(e.isProjectionDirty=e.parent.isProjectionDirty),e.isSharedProjectionDirty||(e.isSharedProjectionDirty=!!(e.isProjectionDirty||e.parent.isProjectionDirty||e.parent.isSharedProjectionDirty)),e.isTransformDirty||(e.isTransformDirty=e.parent.isTransformDirty))}function f1(e){e.isProjectionDirty=e.isSharedProjectionDirty=e.isTransformDirty=!1}function p1(e){e.clearSnapshot()}function Pa(e){e.clearMeasurements()}function m1(e){e.isLayoutDirty=!0,e.updateLayout()}function Ma(e){e.isLayoutDirty=!1}function g1(e){e.isAnimationBlocked&&e.layout&&!e.isLayoutDirty&&(e.snapshot=e.layout,e.isLayoutDirty=!0)}function y1(e){const{visualElement:t}=e.options;t&&t.getProps().onBeforeLayoutMeasure&&t.notify("BeforeLayoutMeasure"),e.resetTransform()}function _a(e){e.finishAnimation(),e.targetDelta=e.relativeTarget=e.target=void 0,e.isProjectionDirty=!0}function v1(e){e.resolveTargetDelta()}function x1(e){e.calcProjection()}
53function b1(e){e.resetSkewAndRotation()}function w1(e){e.removeLeadSnapshot()}function Da(e,t,n){e.translate=pe(t.translate,0,n),e.scale=pe(t.scale,1,n),e.origin=t.origin,e.originPoint=t.originPoint}function La(e,t,n,r){e.min=pe(t.min,n.min,r),e.max=pe(t.max,n.max,r)}function T1(e,t,n,r){La(e.x,t.x,n.x,r),La(e.y,t.y,n.y,r)}function S1(e){return e.animationValues&&e.animationValues.opacityExit!==void 0}const E1={duration:.45,ease:[.4,0,.1,1]},ja=e=>typeof navigator<"u"&&navigator.userAgent&&navigator.userAgent.toLowerCase().includes(e),Oa=ja("applewebkit/")&&!ja("chrome/")?Math.round:Ue;function ka(e){e.min=Oa(e.min),e.max=Oa(e.max)}function C1(e){ka(e.x),ka(e.y)}function yu(e,t,n){return e==="position"||e==="preserve-aspect"&&!Gm(Sa(t),Sa(n),.2)}function R1(e){var t;return e!==e.root&&((t=e.scroll)==null?void 0:t.wasRoot)}const A1=gu({attachResizeListener:(e,t)=>An(e,"resize",t),measureScroll:()=>{var e,t;return{x:document.documentElement.scrollLeft||((e=document.body)==null?void 0:e.scrollLeft)||0,y:document.documentElement.scrollTop||((t=document.body)==null?void 0:t.scrollTop)||0}},checkIsScrollRoot:()=>!0}),si={current:void 0},vu=gu({measureScroll:e=>({x:e.scrollLeft,y:e.scrollTop}),defaultParent:()=>{if(!si.current){const e=new A1({});e.mount(window),e.setOptions({layoutScroll:!0}),si.current=e}return si.current},resetTransform:(e,t)=>{e.style.transform=t!==void 0?t:"none"},checkIsScrollRoot:e=>window.getComputedStyle(e).position==="fixed"}),As=w.createContext({transformPagePoint:e=>e,isStatic:!1,reducedMotion:"never"});function Ia(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function P1(...e){return t=>{let n=!1;const r=e.map(i=>{const o=Ia(i,t);return!n&&typeof o=="function"&&(n=!0),o});if(n)return()=>{for(let i=0;i<r.length;i++){const o=r[i];typeof o=="function"?o():Ia(e[i],null)}}}}function M1(...e){return w.useCallback(P1(...e),e)}class _1 extends w.Component{getSnapshotBeforeUpdate(t){const n=this.props.childRef.current;if(Kn(n)&&t.isPresent&&!this.props.isPresent&&this.props.pop!==!1){const r=n.offsetParent,i=Kn(r)&&r.offsetWidth||0,o=Kn(r)&&r.offsetHeight||0,s=getComputedStyle(n),a=this.props.sizeRef.current;a.height=parseFloat(s.height),a.width=parseFloat(s.width),a.top=n.offsetTop,a.left=n.offsetLeft,a.right=i-a.width-a.left,a.bottom=o-a.height-a.top}return null}componentDidUpdate(){}render(){return this.props.children}}function D1({children:e,isPresent:t,anchorX:n,anchorY:r,root:i,pop:o}){var d;const s=w.useId(),a=w.useRef(null),l=w.useRef({width:0,height:0,top:0,left:0,right:0,bottom:0}),{nonce:c}=w.useContext(As),u=((d=e.props)==null?void 0:d.ref)??(e==null?void 0:e.ref),h=M1(a,u);return w.useInsertionEffect(()=>{const{width:f,height:p,top:m,left:g,right:v,bottom:C}=l.current;if(t||o===!1||!a.current||!f||!p)return;const S=n==="left"?`left: ${g}`:`right: ${v}`,R=r==="bottom"?`bottom: ${C}`:`top: ${m}`;a.current.dataset.motionPopId=s;const P=document.createElement("style");c&&(P.nonce=c);const j=i??document.head;return j.appendChild(P),P.sheet&&P.sheet.insertRule(` 54 [data-motion-pop-id="${s}"] { 55 position: absolute !important; 56 width: ${f}px !important; 57 height: ${p}px !important; 58 ${S}px !important; 59 ${R}px !important; 60 } 61 `),()=>{var b;(b=a.current)==null||b.removeAttribute("data-motion-pop-id"),j.contains(P)&&j.removeChild(P)}},[t]),y.jsx(_1,{isPresent:t,childRef:a,sizeRef:l,pop:o,children:o===!1?e:w.cloneElement(e,{ref:h})})}const L1=({children:e,initial:t,isPresent:n,onExitComplete:r,custom:i,presenceAffectsLayout:o,mode:s,anchorX:a,anchorY:l,root:c})=>{const u=ns(j1),h=w.useId();let d=!0,f=w.useMemo(()=>(d=!1,{id:h,initial:t,isPresent:n,custom:i,onExitComplete:p=>{u.set(p,!0);for(const m of u.values())if(!m)return;r&&r()},register:p=>(u.set(p,!1),()=>u.delete(p))}),[n,u,r]);return o&&d&&(f={...f}),w.useMemo(()=>{u.forEach((p,m)=>u.set(m,!1))},[n]),w.useEffect(()=>{!n&&!u.size&&r&&r()},[n]),e=y.jsx(D1,{pop:s==="popLayout",isPresent:n,anchorX:a,anchorY:l,root:c,children:e}),y.jsx(Er.Provider,{value:f,children:e})};function j1(){return new Map}function xu(e=!0){const t=w.useContext(Er);if(t===null)return[!0,null];const{isPresent:n,onExitComplete:r,register:i}=t,o=w.useId();w.useEffect(()=>{if(e)return i(o)},[e]);const s=w.useCallback(()=>e&&r&&r(o),[o,r,e]);return!n&&r?[!1,s]:[!0]}const Un=e=>e.key||"";function Va(e){const t=[];
vendor: 6,967 bytes, line 61
61return w.Children.forEach(e,n=>{w.isValidElement(n)&&t.push(n)}),t}const bu=({children:e,custom:t,initial:n=!0,onExitComplete:r,presenceAffectsLayout:i=!0,mode:o="sync",propagate:s=!1,anchorX:a="left",anchorY:l="top",root:c})=>{const[u,h]=xu(s),d=w.useMemo(()=>Va(e),[e]),f=s&&!u?[]:d.map(Un),p=w.useRef(!0),m=w.useRef(d),g=ns(()=>new Map),v=w.useRef(new Set),[C,S]=w.useState(d),[R,P]=w.useState(d);Gl(()=>{p.current=!1,m.current=d;for(let M=0;M<R.length;M++){const O=Un(R[M]);f.includes(O)?(g.delete(O),v.current.delete(O)):g.get(O)!==!0&&g.set(O,!1)}},[R,f.length,f.join("-")]);const j=[];if(d!==C){let M=[...d];for(let O=0;O<R.length;O++){const _=R[O],V=Un(_);f.includes(V)||(M.splice(O,0,_),j.push(_))}return o==="wait"&&j.length&&(M=j),P(Va(M)),S(d),null}const{forceRender:b}=w.useContext(ts);return y.jsx(y.Fragment,{children:R.map(M=>{const O=Un(M),_=s&&!u?!1:d===R||f.includes(O),V=()=>{if(v.current.has(O))return;if(g.has(O))v.current.add(O),g.set(O,!0);else return;let N=!0;g.forEach(W=>{W||(N=!1)}),N&&(b==null||b(),P(m.current),s&&(h==null||h()),r&&r())};return y.jsx(L1,{isPresent:_,initial:!p.current||n?void 0:!1,custom:t,presenceAffectsLayout:i,mode:o,root:c,onExitComplete:_?void 0:V,anchorX:a,anchorY:l,children:M},O)})})},wu=w.createContext({strict:!1}),Na={animation:["animate","variants","whileHover","whileTap","exit","whileInView","whileFocus","whileDrag"],exit:["exit"],drag:["drag","dragControls"],focus:["whileFocus"],hover:["whileHover","onHoverStart","onHoverEnd"],tap:["whileTap","onTap","onTapStart","onTapCancel"],pan:["onPan","onPanStart","onPanSessionStart","onPanEnd"],inView:["whileInView","onViewportEnter","onViewportLeave"],layout:["layout","layoutId"]};let Fa=!1;function O1(){if(Fa)return;const e={};for(const t in Na)e[t]={isEnabled:n=>Na[t].some(r=>!!n[r])};Kc(e),Fa=!0}function Tu(){return O1(),vm()}function k1(e){const t=Tu();for(const n in e)t[n]={...t[n],...e[n]};Kc(t)}const I1=new Set(["animate","exit","variants","initial","style","values","variants","transition","transformTemplate","custom","inherit","onBeforeLayoutMeasure","onAnimationStart","onAnimationComplete","onUpdate","onDragStart","onDrag","onDragEnd","onMeasureDragConstraints","onDirectionLock","onDragTransitionEnd","_dragX","_dragY","onHoverStart","onHoverEnd","onViewportEnter","onViewportLeave","globalTapTarget","propagate","ignoreStrict","viewport"]);function yr(e){return e.startsWith("while")||e.startsWith("drag")&&e!=="draggable"||e.startsWith("layout")||e.startsWith("onTap")||e.startsWith("onPan")||e.startsWith("onLayout")||I1.has(e)}let Su=e=>!yr(e);function V1(e){typeof e=="function"&&(Su=t=>t.startsWith("on")?!yr(t):e(t))}try{V1(require("@emotion/is-prop-valid").default)}catch{}function N1(e,t,n){const r={};for(const i in e)i==="values"&&typeof e.values=="object"||Le(e[i])||(Su(i)||n===!0&&yr(i)||!t&&!yr(i)||e.draggable&&i.startsWith("onDrag"))&&(r[i]=e[i]);return r}const Pr=w.createContext({});function F1(e,t){if(Ar(e)){const{initial:n,animate:r}=e;return{initial:n===!1||Rn(n)?n:void 0,animate:Rn(r)?r:void 0}}return e.inherit!==!1?t:{}}function B1(e){const{initial:t,animate:n}=F1(e,w.useContext(Pr));return w.useMemo(()=>({initial:t,animate:n}),[Ba(t),Ba(n)])}function Ba(e){return Array.isArray(e)?e.join(" "):e}const Ps=()=>({style:{},transform:{},transformOrigin:{},vars:{}});function Eu(e,t,n){for(const r in t)!Le(t[r])&&!nu(r,n)&&(e[r]=t[r])}function z1({transformTemplate:e},t){return w.useMemo(()=>{const n=Ps();return Cs(n,t,e),Object.assign({},n.vars,n.style)},[t])}function U1(e,t){const n=e.style||{},r={};return Eu(r,n,e),Object.assign(r,z1(e,t)),r}function H1(e,t){const n={},r=U1(e,t);return e.drag&&e.dragListener!==!1&&(n.draggable=!1,r.userSelect=r.WebkitUserSelect=r.WebkitTouchCallout="none",r.touchAction=e.drag===!0?"none":`pan-${e.drag==="x"?"y":"x"}`),e.tabIndex===void 0&&(e.onTap||e.onTapStart||e.whileTap)&&(n.tabIndex=0),n.style=r,n}const Cu=()=>({...Ps(),attrs:{}});function $1(e,t,n,r){const i=w.useMemo(()=>{const o=Cu();return ru(o,t,su(r),e.transformTemplate,e.style),{...o.attrs,style:{...o.style}}},[t]);if(e.style){const o={};Eu(o,e.style,e),i.style={...o,...i.style}}return i}const W1=["animate","circle","defs","desc","ellipse","g","image","line","filter","marker","mask","metadata","path","pattern","polygon","polyline","rect","stop","switch","symbol","svg","text","tspan","use","view"];function Ms(e){return typeof e!="string"||e.includes("-")?!1:!!(W1.indexOf(e)>-1||/[A-Z]/u.test(e))}function G1(e,t,n,{latestValues:r},i,o=!1,s){const l=(s??Ms(e)?$1:H1)(t,r,i,e),c=N1(t,typeof e=="string",o),u=e!==w.Fragment?{...c,...l,ref:n}:{},{children:h}=t,d=w.useMemo(()=>Le(h)?h.get():h,[h]);return w.createElement(e,{...u,children:d})}function q1({scrapeMotionValuesFromProps:e,createRenderState:t},n,r,i){return{latestValues:Y1(n,r,i,e),renderState:t()}}function Y1(e,t,n,r){const i={},o=r(e,{});for(const d in o)i[d]=er(o[d]);let{initial:s,animate:a}=e;const l=Ar(e),c=qc(e);t&&c&&!l&&e.inherit!==!1&&(s===void 0&&(s=t.initial),a===void 0&&(a=t.animate));let u=n?n.initial===!1:!1;u=u||s===!1;const h=u?a:s;if(h&&typeof h!="boolean"&&!Rr(h)){const d=Array.isArray(h)?h:[h];for(let f=0;f<d.length;f++){const p=ys(e,d[f]);if(p){const{transitionEnd:m,transition:g,...v}=p;for(const C in v){let S=v[C];if(Array.isArray(S)){const R=u?S.length-1:0;S=S[R]}S!==null&&(i[C]=S)}for(const C in m)i[C]=m[C]}}}return i}const Ru=e=>(t,n)=>{const r=w.useContext(Pr),i=w.useContext(Er),o=()=>q1(e,t,r,i);return n?o():ns(o)},K1=Ru({scrapeMotionValuesFromProps:Rs,createRenderState:Ps}),X1=Ru({scrapeMotionValuesFromProps:ou,createRenderState:Cu}),Z1=Symbol.for("motionComponentSymbol");function J1(e,t,n){const r=w.useRef(n);w.useInsertionEffect(()=>{r.current=n});const i=w.useRef(null);return w.useCallback(o=>{var a;o&&((a=e.onMount)==null||a.call(e,o));const s=r.current;if(typeof s=="function")if(o){const l=s(o);typeof l=="function"&&(i.current=l)}else i.current?(i.current(),i.current=null):s(o);else s&&(s.current=o);t&&(o?t.mount(o):t.unmount())},[t])}const Au=w.createContext({});function Ft(e){return e&&typeof e=="object"&&Object.prototype.hasOwnProperty.call(e,"current")}function Q1(e,t,n,r,i,o){var S,R;const{visualElement:s}=w.useContext(Pr),a=w.useContext(wu),l=w.useContext(Er),c=w.useContext(As),u=c.reducedMotion,h=c.skipAnimations,d=w.useRef(null),f=w.useRef(!1);r=r||a.renderer,!d.current&&r&&(d.current=r(e,{visualState:t,parent:s,props:n,presenceContext:l,blockInitialAnimation:l?l.initial===!1:!1,reducedMotionConfig:u,skipAnimations:h,isSVG:o}),f.current&&d.current&&(d.current.manuallyAnimateOnMount=!0));const p=d.current,m=w.useContext(Au);p&&!p.projection&&i&&(p.type==="html"||p.type==="svg")&&eg(d.current,n,i,m);const g=w.useRef(!1);w.useInsertionEffect(()=>{p&&g.current&&p.update(n,l)});const v=n[Oc],C=w.useRef(!!v&&typeof window<"u"&&!((S=window.MotionHandoffIsComplete)!=null&&S.call(window,v))&&((R=window.MotionHasOptimisedAnimation)==null?void 0:R.call(window,v)));
vendor: 22,440 bytes, lines 61-66
61return Gl(()=>{f.current=!0,p&&(g.current=!0,window.MotionIsMounted=!0,p.updateFeatures(),p.scheduleRenderMicrotask(),C.current&&p.animationState&&p.animationState.animateChanges())}),w.useEffect(()=>{p&&(!C.current&&p.animationState&&p.animationState.animateChanges(),C.current&&(queueMicrotask(()=>{var P;(P=window.MotionHandoffMarkAsComplete)==null||P.call(window,v)}),C.current=!1),p.enteringChildren=void 0)}),p}function eg(e,t,n,r){const{layoutId:i,layout:o,drag:s,dragConstraints:a,layoutScroll:l,layoutRoot:c,layoutAnchor:u,layoutCrossfade:h}=t;e.projection=new n(e.latestValues,t["data-framer-portal-id"]?void 0:Pu(e.parent)),e.projection.setOptions({layoutId:i,layout:o,alwaysMeasureLayout:!!s||a&&Ft(a),visualElement:e,animationType:typeof o=="string"?o:"both",initialPromotionConfig:r,crossfade:h,layoutScroll:l,layoutRoot:c,layoutAnchor:u})}function Pu(e){if(e)return e.options.allowProjection!==!1?e.projection:Pu(e.parent)}function oi(e,{forwardMotionProps:t=!1,type:n}={},r,i){r&&k1(r);const o=n?n==="svg":Ms(e),s=o?X1:K1;function a(c,u){let h;const d={...w.useContext(As),...c,layoutId:tg(c)},{isStatic:f}=d,p=B1(c),m=s(c,f);if(!f&&typeof window<"u"){ng();const g=rg(d);h=g.MeasureLayout,p.visualElement=Q1(e,m,d,i,g.ProjectionNode,o)}return y.jsxs(Pr.Provider,{value:p,children:[h&&p.visualElement?y.jsx(h,{visualElement:p.visualElement,...d}):null,G1(e,c,J1(m,p.visualElement,u),m,f,t,o)]})}a.displayName=`motion.${typeof e=="string"?e:`create(${e.displayName??e.name??""})`}`;const l=w.forwardRef(a);return l[Z1]=e,l}function tg({layoutId:e}){const t=w.useContext(ts).id;return t&&e!==void 0?t+"-"+e:e}function ng(e,t){w.useContext(wu).strict}function rg(e){const t=Tu(),{drag:n,layout:r}=t;if(!n&&!r)return{};const i={...n,...r};return{MeasureLayout:n!=null&&n.isEnabled(e)||r!=null&&r.isEnabled(e)?i.MeasureLayout:void 0,ProjectionNode:i.ProjectionNode}}function ig(e,t){if(typeof Proxy>"u")return oi;const n=new Map,r=(o,s)=>oi(o,s,e,t),i=(o,s)=>r(o,s);return new Proxy(i,{get:(o,s)=>s==="create"?r:(n.has(s)||n.set(s,oi(s,void 0,e,t)),n.get(s))})}const sg=(e,t)=>t.isSVG??Ms(e)?new km(t):new Mm(t,{allowProjection:e!==w.Fragment});class og extends yt{constructor(t){super(t),t.animationState||(t.animationState=Bm(t))}updateAnimationControlsSubscription(){const{animate:t}=this.node.getProps();Rr(t)&&(this.unmountControls=t.subscribe(this.node))}mount(){this.updateAnimationControlsSubscription()}update(){const{animate:t}=this.node.getProps(),{animate:n}=this.node.prevProps||{};t!==n&&this.updateAnimationControlsSubscription()}unmount(){var t;this.node.animationState.reset(),(t=this.unmountControls)==null||t.call(this)}}let ag=0;class lg extends yt{constructor(){super(...arguments),this.id=ag++,this.isExitComplete=!1}update(){var o;if(!this.node.presenceContext)return;const{isPresent:t,onExitComplete:n}=this.node.presenceContext,{isPresent:r}=this.node.prevPresenceContext||{};if(!this.node.animationState||t===r)return;if(t&&r===!1){if(this.isExitComplete){const{initial:s,custom:a}=this.node.getProps();if(typeof s=="string"){const l=Mt(this.node,s,a);if(l){const{transition:c,transitionEnd:u,...h}=l;for(const d in h)(o=this.node.getValue(d))==null||o.jump(h[d])}}this.node.animationState.reset(),this.node.animationState.animateChanges()}else this.node.animationState.setActive("exit",!1);this.isExitComplete=!1;return}const i=this.node.animationState.setActive("exit",!t);n&&!t&&i.then(()=>{this.isExitComplete=!0,n(this.id)})}mount(){const{register:t,onExitComplete:n}=this.node.presenceContext||{};n&&n(this.id),t&&(this.unmount=t(this.id))}unmount(){}}const cg={animation:{Feature:og},exit:{Feature:lg}};function Dn(e){return{point:{x:e.pageX,y:e.pageY}}}const ug=e=>t=>ws(t)&&e(t,Dn(t));function xn(e,t,n,r){return An(e,t,ug(n),r)}const Mu=({current:e})=>e?e.ownerDocument.defaultView:null,za=(e,t)=>Math.abs(e-t);function hg(e,t){const n=za(e.x,t.x),r=za(e.y,t.y);return Math.sqrt(n**2+r**2)}const Ua=new Set(["auto","scroll"]);class _u{constructor(t,n,{transformPagePoint:r,contextWindow:i=window,dragSnapToOrigin:o=!1,distanceThreshold:s=3,element:a}={}){if(this.startEvent=null,this.lastMoveEvent=null,this.lastMoveEventInfo=null,this.lastRawMoveEventInfo=null,this.handlers={},this.contextWindow=window,this.scrollPositions=new Map,this.removeScrollListeners=null,this.onElementScroll=f=>{this.handleScroll(f.target)},this.onWindowScroll=()=>{this.handleScroll(window)},this.updatePoint=()=>{if(!(this.lastMoveEvent&&this.lastMoveEventInfo))return;this.lastRawMoveEventInfo&&(this.lastMoveEventInfo=Hn(this.lastRawMoveEventInfo,this.transformPagePoint));const f=ai(this.lastMoveEventInfo,this.history),p=this.startEvent!==null,m=hg(f.offset,{x:0,y:0})>=this.distanceThreshold;if(!p&&!m)return;const{point:g}=f,{timestamp:v}=De;this.history.push({...g,timestamp:v});const{onStart:C,onMove:S}=this.handlers;p||(C&&C(this.lastMoveEvent,f),this.startEvent=this.lastMoveEvent),S&&S(this.lastMoveEvent,f)},this.handlePointerMove=(f,p)=>{this.lastMoveEvent=f,this.lastRawMoveEventInfo=p,this.lastMoveEventInfo=Hn(p,this.transformPagePoint),de.update(this.updatePoint,!0)},this.handlePointerUp=(f,p)=>{this.end();const{onEnd:m,onSessionEnd:g,resumeAnimation:v}=this.handlers;if((this.dragSnapToOrigin||!this.startEvent)&&v&&v(),!(this.lastMoveEvent&&this.lastMoveEventInfo))return;const C=ai(f.type==="pointercancel"?this.lastMoveEventInfo:Hn(p,this.transformPagePoint),this.history);this.startEvent&&m&&m(f,C),g&&g(f,C)},!ws(t))return;this.dragSnapToOrigin=o,this.handlers=n,this.transformPagePoint=r,this.distanceThreshold=s,this.contextWindow=i||window;const l=Dn(t),c=Hn(l,this.transformPagePoint),{point:u}=c,{timestamp:h}=De;this.history=[{...u,timestamp:h}];const{onSessionStart:d}=n;d&&d(t,ai(c,this.history)),this.removeListeners=Pn(xn(this.contextWindow,"pointermove",this.handlePointerMove),xn(this.contextWindow,"pointerup",this.handlePointerUp),xn(this.contextWindow,"pointercancel",this.handlePointerUp)),a&&this.startScrollTracking(a)}startScrollTracking(t){let n=t.parentElement;for(;n;){const r=getComputedStyle(n);(Ua.has(r.overflowX)||Ua.has(r.overflowY))&&this.scrollPositions.set(n,{x:n.scrollLeft,y:n.scrollTop}),n=n.parentElement}this.scrollPositions.set(window,{x:window.scrollX,y:window.scrollY}),window.addEventListener("scroll",this.onElementScroll,{capture:!0}),window.addEventListener("scroll",this.onWindowScroll),this.removeScrollListeners=()=>{window.removeEventListener("scroll",this.onElementScroll,{capture:!0}),window.removeEventListener("scroll",this.onWindowScroll)}}handleScroll(t){const n=this.scrollPositions.get(t);if(!n)return;const r=t===window,i=r?{x:window.scrollX,y:window.scrollY}:{x:t.scrollLeft,y:t.scrollTop},o={x:i.x-n.x,y:i.y-n.y};o.x===0&&o.y===0||(r?this.lastMoveEventInfo&&(this.lastMoveEventInfo.point.x+=o.x,this.lastMoveEventInfo.point.y+=o.y):this.history.length>0&&(this.history[0].x-=o.x,this.history[0].y-=o.y),this.scrollPositions.set(t,i),de.update(this.updatePoint,!0))}updateHandlers(t){this.handlers=t}end(){this.removeListeners&&this.removeListeners(),this.removeScrollListeners&&this.removeScrollListeners(),this.scrollPositions.clear(),pt(this.updatePoint)}}function Hn(e,t){return t?{point:t(e.point)}:e}function Ha(e,t){return{x:e.x-t.x,y:e.y-t.y}}function ai({point:e},t){return{point:e,delta:Ha(e,Du(t)),offset:Ha(e,dg(t)),velocity:fg(t,.1)}}function dg(e){return e[0]}function Du(e){return e[e.length-1]}function fg(e,t){if(e.length<2)return{x:0,y:0};let n=e.length-1,r=null;const i=Du(e);for(;n>=0&&(r=e[n],!(i.timestamp-r.timestamp>Fe(t)));)n--;if(!r)return{x:0,y:0};r===e[0]&&e.length>2&&i.timestamp-r.timestamp>Fe(t)*2&&(r=e[1]);const o=ze(i.timestamp-r.timestamp);if(o===0)return{x:0,y:0};const s={x:(i.x-r.x)/o,y:(i.y-r.y)/o};return s.x===1/0&&(s.x=0),s.y===1/0&&(s.y=0),s}function pg(e,{min:t,max:n},r){return t!==void 0&&e<t?e=r?pe(t,e,r.min):Math.max(e,t):n!==void 0&&e>n&&(e=r?pe(n,e,r.max):Math.min(e,n)),e}function $a(e,t,n){return{min:t!==void 0?e.min+t:void 0,max:n!==void 0?e.max+n-(e.max-e.min):void 0}}function mg(e,{top:t,left:n,bottom:r,right:i}){return{x:$a(e.x,n,i),y:$a(e.y,t,r)}}function Wa(e,t){let n=t.min-e.min,r=t.max-e.max;return t.max-t.min<e.max-e.min&&([n,r]=[r,n]),{min:n,max:r}}function gg(e,t){return{x:Wa(e.x,t.x),y:Wa(e.y,t.y)}}function yg(e,t){let n=.5;const r=Ie(e),i=Ie(t);return i>r?n=En(t.min,t.max-r,e.min):r>i&&(n=En(e.min,e.max-i,t.min)),Je(0,1,n)}function vg(e,t){const n={};return t.min!==void 0&&(n.min=t.min-e.min),t.max!==void 0&&(n.max=t.max-e.min),n}const $i=.35;function xg(e=$i){return e===!1?e=0:e===!0&&(e=$i),{x:Ga(e,"left","right"),y:Ga(e,"top","bottom")}}function Ga(e,t,n){return{min:qa(e,t),max:qa(e,n)}}function qa(e,t){return typeof e=="number"?e:e[t]||0}const bg=new WeakMap;class wg{constructor(t){this.openDragLock=null,this.isDragging=!1,this.currentDirection=null,this.originPoint={x:0,y:0},this.constraints=!1,this.hasMutatedConstraints=!1,this.elastic=Me(),this.latestPointerEvent=null,this.latestPanInfo=null,this.visualElement=t}start(t,{snapToCursor:n=!1,distanceThreshold:r}={}){const{presenceContext:i}=this.visualElement;if(i&&i.isPresent===!1)return;const o=h=>{n&&this.snapToCursor(Dn(h).point),this.stopAnimation()},s=(h,d)=>{const{drag:f,dragPropagation:p,onDragStart:m}=this.getProps();if(f&&!p&&(this.openDragLock&&this.openDragLock(),this.openDragLock=Y0(f),!this.openDragLock))return;this.latestPointerEvent=h,this.latestPanInfo=d,this.isDragging=!0,this.currentDirection=null,this.resolveConstraints(),this.visualElement.projection&&(this.visualElement.projection.isAnimationBlocked=!0,this.visualElement.projection.target=void 0),Ke(v=>{let C=this.getAxisMotionValue(v).get()||0;if(Ze.test(C)){const{projection:S}=this.visualElement;if(S&&S.layout){const R=S.layout.layoutBox[v];R&&(C=Ie(R)*(parseFloat(C)/100))}}this.originPoint[v]=C}),m&&de.update(()=>m(h,d),!1,!0),ki(this.visualElement,"transform");const{animationState:g}=this.visualElement;g&&g.setActive("whileDrag",!0)},a=(h,d)=>{this.latestPointerEvent=h,this.latestPanInfo=d;const{dragPropagation:f,dragDirectionLock:p,onDirectionLock:m,onDrag:g}=this.getProps();if(!f&&!this.openDragLock)return;const{offset:v}=d;if(p&&this.currentDirection===null){this.currentDirection=Sg(v),this.currentDirection!==null&&m&&m(this.currentDirection);return}this.updateAxis("x",d.point,v),this.updateAxis("y",d.point,v),this.visualElement.render(),g&&de.update(()=>g(h,d),!1,!0)},l=(h,d)=>{this.latestPointerEvent=h,this.latestPanInfo=d,this.stop(h,d),this.latestPointerEvent=null,this.latestPanInfo=null},c=()=>{const{dragSnapToOrigin:h}=this.getProps();(h||this.constraints)&&this.startAnimation({x:0,y:0})},{dragSnapToOrigin:u}=this.getProps();this.panSession=new _u(t,{onSessionStart:o,onStart:s,onMove:a,onSessionEnd:l,resumeAnimation:c},{transformPagePoint:this.visualElement.getTransformPagePoint(),dragSnapToOrigin:u,distanceThreshold:r,contextWindow:Mu(this.visualElement),element:this.visualElement.current})}stop(t,n){const r=t||this.latestPointerEvent,i=n||this.latestPanInfo,o=this.isDragging;if(this.cancel(),!o||!i||!r)return;const{velocity:s}=i;this.startAnimation(s);const{onDragEnd:a}=this.getProps();a&&de.postRender(()=>a(r,i))}cancel(){this.isDragging=!1;const{projection:t,animationState:n}=this.visualElement;t&&(t.isAnimationBlocked=!1),this.endPanSession();const{dragPropagation:r}=this.getProps();!r&&this.openDragLock&&(this.openDragLock(),this.openDragLock=null),n&&n.setActive("whileDrag",!1)}endPanSession(){this.panSession&&this.panSession.end(),this.panSession=void 0}updateAxis(t,n,r){const{drag:i}=this.getProps();if(!r||!$n(t,i,this.currentDirection))return;const o=this.getAxisMotionValue(t);let s=this.originPoint[t]+r[t];this.constraints&&this.constraints[t]&&(s=pg(s,this.constraints[t],this.elastic[t])),o.set(s)}resolveConstraints(){var o;const{dragConstraints:t,dragElastic:n}=this.getProps(),r=this.visualElement.projection&&!this.visualElement.projection.layout?this.visualElement.projection.measure(!1):(o=this.visualElement.projection)==null?void 0:o.layout,i=this.constraints;t&&Ft(t)?this.constraints||(this.constraints=this.resolveRefConstraints()):t&&r?this.constraints=mg(r.layoutBox,t):this.constraints=!1,this.elastic=xg(n),i!==this.constraints&&!Ft(t)&&r&&this.constraints&&!this.hasMutatedConstraints&&Ke(s=>{this.constraints!==!1&&this.getAxisMotionValue(s)&&(this.constraints[s]=vg(r.layoutBox[s],this.constraints[s]))})}resolveRefConstraints(){const{dragConstraints:t,onMeasureDragConstraints:n}=this.getProps();if(!t||!Ft(t))return!1;const r=t.current,{projection:i}=this.visualElement;if(!i||!i.layout)return!1;const o=Sm(r,i.root,this.visualElement.getTransformPagePoint());let s=gg(i.layout.layoutBox,o);if(n){const a=n(bm(s));this.hasMutatedConstraints=!!a,a&&(s=Zc(a))}return s}startAnimation(t){const{drag:n,dragMomentum:r,dragElastic:i,dragTransition:o,dragSnapToOrigin:s,onDragTransitionEnd:a}=this.getProps(),l=this.constraints||{},c=Ke(u=>{if(!$n(u,n,this.currentDirection))return;let h=l&&l[u]||{};(s===!0||s===u)&&(h={min:0,max:0});const d=i?200:1e6,f=i?40:1e7,p={type:"inertia",velocity:r?t[u]:0,bounceStiffness:d,bounceDamping:f,timeConstant:750,restDelta:1,restSpeed:10,...o,...h};return this.startAxisValueAnimation(u,p)});return Promise.all(c).then(a)}startAxisValueAnimation(t,n){const r=this.getAxisMotionValue(t);return ki(this.visualElement,t),r.start(gs(t,r,0,n,this.visualElement,!1))}stopAnimation(){Ke(t=>this.getAxisMotionValue(t).stop())}getAxisMotionValue(t){const n=`_drag${t.toUpperCase()}`,r=this.visualElement.getProps(),i=r[n];return i||this.visualElement.getValue(t,(r.initial?r.initial[t]:void 0)||0)}snapToCursor(t){Ke(n=>{const{drag:r}=this.getProps();if(!$n(n,r,this.currentDirection))return;const{projection:i}=this.visualElement,o=this.getAxisMotionValue(n);if(i&&i.layout){const{min:s,max:a}=i.layout.layoutBox[n],l=o.get()||0;o.set(t[n]-pe(s,a,.5)+l)}})}scalePositionWithinConstraints(){if(!this.visualElement.current)return;const{drag:t,dragConstraints:n}=this.getProps(),{projection:r}=this.visualElement;if(!Ft(n)||!r||!this.constraints)return;this.stopAnimation();const i={x:0,y:0};Ke(s=>{const a=this.getAxisMotionValue(s);if(a&&this.constraints!==!1){const l=a.get();i[s]=yg({min:l,max:l},this.constraints[s])}});const{transformTemplate:o}=this.visualElement.getProps();this.visualElement.current.style.transform=o?o({},""):"none",r.root&&r.root.updateScroll(),r.updateLayout(),this.constraints=!1,this.resolveConstraints(),Ke(s=>{if(!$n(s,t,null))return;const a=this.getAxisMotionValue(s),{min:l,max:c}=this.constraints[s];a.set(pe(l,c,i[s]))}),this.visualElement.render()}addListeners(){if(!this.visualElement.current)return;bg.set(this.visualElement,this);const t=this.visualElement.current,n=xn(t,"pointerdown",c=>{const{drag:u,dragListener:h=!0}=this.getProps(),d=c.target,f=d!==t&&em(d);u&&h&&!f&&this.start(c)});let r;const i=()=>{const{dragConstraints:c}=this.getProps();Ft(c)&&c.current&&(this.constraints=this.resolveRefConstraints(),r||(r=Tg(t,c.current,()=>this.scalePositionWithinConstraints())))},{projection:o}=this.visualElement,s=o.addEventListener("measure",i);o&&!o.layout&&(o.root&&o.root.updateScroll(),o.updateLayout()),de.read(i);const a=An(window,"resize",()=>this.scalePositionWithinConstraints()),l=o.addEventListener("didUpdate",(({delta:c,hasLayoutChanged:u})=>{this.isDragging&&u&&(Ke(h=>{const d=this.getAxisMotionValue(h);d&&(this.originPoint[h]+=c[h].translate,d.set(d.get()+c[h].translate))}),this.visualElement.render())}));return()=>{a(),n(),s(),l&&l(),r&&r()}}getProps(){const t=this.visualElement.getProps(),{drag:n=!1,dragDirectionLock:r=!1,dragPropagation:i=!1,dragConstraints:o=!1,dragElastic:s=$i,dragMomentum:a=!0}=t;return{...t,drag:n,dragDirectionLock:r,dragPropagation:i,dragConstraints:o,dragElastic:s,dragMomentum:a}}}function Ya(e){let t=!0;return()=>{if(t){t=!1;return}e()}}function Tg(e,t,n){const r=ta(e,Ya(n)),i=ta(t,Ya(n));return()=>{r(),i()}}function $n(e,t,n){return(t===!0||t===e)&&(n===null||n===e)}function Sg(e,t=10){let n=null;return Math.abs(e.y)>t?n="y":Math.abs(e.x)>t&&(n="x"),n}class Eg extends yt{constructor(t){super(t),this.removeGroupControls=Ue,this.removeListeners=Ue,this.controls=new wg(t)}mount(){const{dragControls:t}=this.node.getProps();t&&(this.removeGroupControls=t.subscribe(this.controls)),this.removeListeners=this.controls.addListeners()||Ue}update(){const{dragControls:t}=this.node.getProps(),{dragControls:n}=this.node.prevProps||{};t!==n&&(this.removeGroupControls(),t&&(this.removeGroupControls=t.subscribe(this.controls)))}unmount(){this.removeGroupControls(),this.removeListeners(),this.controls.isDragging||this.controls.endPanSession()}}const li=e=>(t,n)=>{e&&de.update(()=>e(t,n),!1,!0)};class Cg extends yt{constructor(){super(...arguments),this.removePointerDownListener=Ue}onPointerDown(t){this.session=new _u(t,this.createPanHandlers(),{transformPagePoint:this.node.getTransformPagePoint(),contextWindow:Mu(this.node)})}createPanHandlers(){const{onPanSessionStart:t,onPanStart:n,onPan:r,onPanEnd:i}=this.node.getProps();return{onSessionStart:li(t),onStart:li(n),onMove:li(r),onEnd:(o,s)=>{delete this.session,i&&de.postRender(()=>i(o,s))}}}mount(){this.removePointerDownListener=xn(this.node.current,"pointerdown",t=>this.onPointerDown(t))}update(){this.session&&this.session.updateHandlers(this.createPanHandlers())}unmount(){this.removePointerDownListener(),this.session&&this.session.end()}}let ci=!1;class Rg extends w.Component{componentDidMount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r,layoutId:i}=this.props,{projection:o}=t;o&&(n.group&&n.group.add(o),r&&r.register&&i&&r.register(o),ci&&o.root.didUpdate(),o.addEventListener("animationComplete",()=>{this.safeToRemove()}),o.setOptions({...o.options,layoutDependency:this.props.layoutDependency,onExitComplete:()=>this.safeToRemove()})),tr.hasEverUpdated=!0}getSnapshotBeforeUpdate(t){const{layoutDependency:n,visualElement:r,drag:i,isPresent:o}=this.props,{projection:s}=r;return s&&(s.isPresent=o,t.layoutDependency!==n&&s.setOptions({...s.options,layoutDependency:n}),ci=!0,i||t.layoutDependency!==n||n===void 0||t.isPresent!==o?s.willUpdate():this.safeToRemove(),t.isPresent!==o&&(o?s.promote():s.relegate()||de.postRender(()=>{const a=s.getStack();(!a||!a.members.length)&&this.safeToRemove()}))),null}componentDidUpdate(){const{visualElement:t,layoutAnchor:n}=this.props,{projection:r}=t;r&&(r.options.layoutAnchor=n,r.root.didUpdate(),bs.postRender(()=>{!r.currentAnimation&&r.isLead()&&this.safeToRemove()}))}componentWillUnmount(){const{visualElement:t,layoutGroup:n,switchLayoutGroup:r}=this.props,{projection:i}=t;ci=!0,i&&(i.scheduleCheckAfterUnmount(),n&&n.group&&n.group.remove(i),r&&r.deregister&&r.deregister(i))}safeToRemove(){const{safeToRemove:t}=this.props;t&&t()}render(){return null}}function Lu(e){const[t,n]=xu(),r=w.useContext(ts);return y.jsx(Rg,{...e,layoutGroup:r,switchLayoutGroup:w.useContext(Au),isPresent:t,safeToRemove:n})}const Ag={pan:{Feature:Cg},drag:{Feature:Eg,ProjectionNode:vu,MeasureLayout:Lu}};function Ka(e,t,n){const{props:r}=e;e.animationState&&r.whileHover&&e.animationState.setActive("whileHover",n==="Start");const i="onHover"+n,o=r[i];o&&de.postRender(()=>o(t,Dn(t)))}class Pg extends yt{mount(){const{current:t}=this.node;t&&(this.unmount=X0(t,(n,r)=>(Ka(this.node,r,"Start"),i=>Ka(this.node,i,"End"))))}unmount(){}}class Mg extends yt{constructor(){super(...arguments),this.isActive=!1}onFocus(){let t=!1;try{t=this.node.current.matches(":focus-visible")}catch{t=!0}!t||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!0),this.isActive=!0)}onBlur(){!this.isActive||!this.node.animationState||(this.node.animationState.setActive("whileFocus",!1),this.isActive=!1)}mount(){this.unmount=Pn(An(this.node.current,"focus",()=>this.onFocus()),An(this.node.current,"blur",()=>this.onBlur()))}unmount(){}}function Xa(e,t,n){const{props:r}=e;if(e.current instanceof HTMLButtonElement&&e.current.disabled)return;e.animationState&&r.whileTap&&e.animationState.setActive("whileTap",n==="Start");const i="onTap"+(n==="End"?"":n),o=r[i];o&&de.postRender(()=>o(t,Dn(t)))}class _g extends yt{mount(){const{current:t}=this.node;if(!t)return;const{globalTapTarget:n,propagate:r}=this.node.props;this.unmount=nm(t,(i,o)=>(Xa(this.node,o,"Start"),(s,{success:a})=>Xa(this.node,s,a?"End":"Cancel")),{useGlobalTarget:n,stopPropagation:(r==null?void 0:r.tap)===!1})}unmount(){}}const Wi=new WeakMap,ui=new WeakMap,Dg=e=>{const t=Wi.get(e.target);t&&t(e)},Lg=e=>{e.forEach(Dg)};function jg({root:e,...t}){const n=e||document;ui.has(n)||ui.set(n,{});const r=ui.get(n),i=JSON.stringify(t);return r[i]||(r[i]=new IntersectionObserver(Lg,{root:e,...t})),r[i]}function Og(e,t,n){const r=jg(t);return Wi.set(e,n),r.observe(e),()=>{Wi.delete(e),r.unobserve(e)}}const kg={some:0,all:1};class Ig extends yt{constructor(){super(...arguments),this.hasEnteredView=!1,this.isInView=!1}startObserver(){var l;(l=this.stopObserver)==null||l.call(this);const{viewport:t={}}=this.node.getProps(),{root:n,margin:r,amount:i="some",once:o}=t,s={root:n?n.current:void 0,rootMargin:r,threshold:typeof i=="number"?i:kg[i]},a=c=>{const{isIntersecting:u}=c;if(this.isInView===u||(this.isInView=u,o&&!u&&this.hasEnteredView))return;u&&(this.hasEnteredView=!0),this.node.animationState&&this.node.animationState.setActive("whileInView",u);const{onViewportEnter:h,onViewportLeave:d}=this.node.getProps(),f=u?h:d;f&&f(c)};this.stopObserver=Og(this.node.current,s,a)}mount(){this.startObserver()}update(){if(typeof IntersectionObserver>"u")return;const{props:t,prevProps:n}=this.node;["amount","margin","root"].some(Vg(t,n))&&this.startObserver()}unmount(){var t;(t=this.stopObserver)==null||t.call(this),this.hasEnteredView=!1,this.isInView=!1}}function Vg({viewport:e={}},{viewport:t={}}={}){return n=>e[n]!==t[n]}const Ng={inView:{Feature:Ig},tap:{Feature:_g},focus:{Feature:Mg},hover:{Feature:Pg}},Fg={layout:{ProjectionNode:vu,MeasureLayout:Lu}},Bg={...cg,...Ng,...Ag,...Fg},ve=ig(Bg,sg);/** 62 * @license lucide-react v0.542.0 - ISC 63 * 64 * This source code is licensed under the ISC license. 65 * See the LICENSE file in the root directory of this source tree. 66 */const zg=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),Ug=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(t,n,r)=>r?r.toUpperCase():n.toLowerCase()),Za=e=>{const t=Ug(e);return t.charAt(0).toUpperCase()+t.slice(1)},ju=(...e)=>
66e.filter((t,n,r)=>!!t&&t.trim()!==""&&r.indexOf(t)===n).join(" ").trim(),Hg=e=>{for(const t in e)if(t.startsWith("aria-")||t==="role"||t==="title")return!0};/** 67 * @license lucide-react v0.542.0 - ISC 68 * 69 * This source code is licensed under the ISC license. 70 * See the LICENSE file in the root directory of this source tree. 71 */var $g={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};/** 72 * @license lucide-react v0.542.0 - ISC 73 * 74 * This source code is licensed under the ISC license. 75 * See the LICENSE file in the root directory of this source tree. 76 */const Wg=w.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:r,className:i="",children:o,iconNode:s,...a},l)=>w.createElement("svg",{ref:l,...$g,width:t,height:t,stroke:e,strokeWidth:r?Number(n)*24/Number(t):n,className:ju("lucide",i),...!o&&!Hg(a)&&{"aria-hidden":"true"},...a},[...s.map(([c,u])=>w.createElement(c,u)),...Array.isArray(o)?o:[o]]));/** 77 * @license lucide-react v0.542.0 - ISC 78 * 79 * This source code is licensed under the ISC license. 80 * See the LICENSE file in the root directory of this source tree. 81 */const Ou=(e,t)=>{const n=w.forwardRef(({className:r,...i},o)=>w.createElement(Wg,{ref:o,iconNode:t,className:ju(`lucide-${zg(Za(e))}`,`lucide-${e}`,r),...i}));return n.displayName=Za(e),n};/** 82 * @license lucide-react v0.542.0 - ISC 83 * 84 * This source code is licensed under the ISC license. 85 * See the LICENSE file in the root directory of this source tree. 86 */const Gg=[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]],qg=Ou("arrow-up",Gg);/** 87 * @license lucide-react v0.542.0 - ISC 88 * 89 * This source code is licensed under the ISC license. 90 * See the LICENSE file in the root directory of this source tree. 91 */const Yg=[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]],Kg=Ou("chevron-down",Yg);function bn(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function Gi(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Xg(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function Ja(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Qa(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function Zg(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function Jg(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function hi(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Qg(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return Math.sqrt(n*n+r*r+i*i)}function ey(e,t){let n=t[0]-e[0],r=t[1]-e[1],i=t[2]-e[2];return n*n+r*r+i*i}function el(e){let t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function ty(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function ny(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function qi(e,t){let n=t[0],r=t[1],i=t[2],o=n*n+r*r+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function ku(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function tl(e,t,n){let r=t[0],i=t[1],o=t[2],s=n[0],a=n[1],l=n[2];return e[0]=i*l-o*a,e[1]=o*s-r*l,e[2]=r*a-i*s,e}function ry(e,t,n,r){let i=t[0],o=t[1],s=t[2];return e[0]=i+r*(n[0]-i),e[1]=o+r*(n[1]-o),e[2]=s+r*(n[2]-s),e}function iy(e,t,n,r,i){const o=Math.exp(-r*i);let s=t[0],a=t[1],l=t[2];return e[0]=n[0]+(s-n[0])*o,e[1]=n[1]+(a-n[1])*o,e[2]=n[2]+(l-n[2])*o,e}function sy(e,t,n){let r=t[0],i=t[1],o=t[2],s=n[3]*r+n[7]*i+n[11]*o+n[15];return s=s||1,e[0]=(n[0]*r+n[4]*i+n[8]*o+n[12])/s,e[1]=(n[1]*r+n[5]*i+n[9]*o+n[13])/s,e[2]=(n[2]*r+n[6]*i+n[10]*o+n[14])/s,e}function oy(e,t,n){let r=t[0],i=t[1],o=t[2],s=n[3]*r+n[7]*i+n[11]*o+n[15];return s=s||1,e[0]=(n[0]*r+n[4]*i+n[8]*o)/s,e[1]=(n[1]*r+n[5]*i+n[9]*o)/s,e[2]=(n[2]*r+n[6]*i+n[10]*o)/s,e}function ay(e,t,n){let r=t[0],i=t[1],o=t[2];return e[0]=r*n[0]+i*n[3]+o*n[6],e[1]=r*n[1]+i*n[4]+o*n[7],e[2]=r*n[2]+i*n[5]+o*n[8],e}function ly(e,t,n){let r=t[0],i=t[1],o=t[2],s=n[0],a=n[1],l=n[2],c=n[3],u=a*o-l*i,h=l*r-s*o,d=s*i-a*r,f=a*d-l*h,p=l*u-s*d,m=s*h-a*u,g=c*2;return u*=g,h*=g,d*=g,f*=2,p*=2,m*=2,e[0]=r+u+f,e[1]=i+h+p,e[2]=o+d+m,e}const cy=(function(){const e=[0,0,0],t=[0,0,0];return function(n,r){Gi(e,n),Gi(t,r),qi(e,e),qi(t,t);let i=ku(e,t);return i>1?0:i<-1?Math.PI:Math.acos(i)}})();function uy(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}class Ge extends Array{constructor(t=0,n=t,r=t){return super(t,n,r),this}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this[0]=t}set y(t){this[1]=t}set z(t){this[2]=t}set(t,n=t,r=t){return t.length?this.copy(t):(Xg(this,t,n,r),this)}copy(t){return Gi(this,t),this}add(t,n){return n?Ja(this,t,n):Ja(this,this,t),this}sub(t,n){return n?Qa(this,t,n):Qa(this,this,t),this}multiply(t){return t.length?Zg(this,this,t):hi(this,this,t),this}divide(t){return t.length?Jg(this,this,t):hi(this,this,1/t),this}inverse(t=this){return ny(this,t),this}len(){return bn(this)}distance(t){return t?Qg(this,t):bn(this)}squaredLen(){return el(this)}squaredDistance(t){return t?ey(this,t):el(this)}negate(t=this){return ty(this,t),this}cross(t,n){return n?tl(this,t,n):tl(this,this,t),this}scale(t){return hi(this,this,t),this}normalize(){return qi(this,this),this}dot(t){return ku(this,t)}equals(t){return uy(this,t)}
91applyMatrix3(t){return ay(this,this,t),this}applyMatrix4(t){return sy(this,this,t),this}scaleRotateMatrix4(t){return oy(this,this,t),this}applyQuaternion(t){return ly(this,this,t),this}angle(t){return cy(this,t)}lerp(t,n){return ry(this,this,t,n),this}smoothLerp(t,n,r){return iy(this,this,t,n,r),this}clone(){return new Ge(this[0],this[1],this[2])}fromArray(t,n=0){return this[0]=t[n],this[1]=t[n+1],this[2]=t[n+2],this}toArray(t=[],n=0){return t[n]=this[0],t[n+1]=this[1],t[n+2]=this[2],t}transformDirection(t){const n=this[0],r=this[1],i=this[2];return this[0]=t[0]*n+t[4]*r+t[8]*i,this[1]=t[1]*n+t[5]*r+t[9]*i,this[2]=t[2]*n+t[6]*r+t[10]*i,this.normalize()}}const nl=new Ge;let hy=1,dy=1,rl=!1;class fy{constructor(t,n={}){t.canvas||console.error("gl not passed as first argument to Geometry"),this.gl=t,this.attributes=n,this.id=hy++,this.VAOs={},this.drawRange={start:0,count:0},this.instancedCount=0,this.gl.renderer.bindVertexArray(null),this.gl.renderer.currentGeometry=null,this.glState=this.gl.renderer.state;for(let r in n)this.addAttribute(r,n[r])}addAttribute(t,n){if(this.attributes[t]=n,n.id=dy++,n.size=n.size||1,n.type=n.type||(n.data.constructor===Float32Array?this.gl.FLOAT:n.data.constructor===Uint16Array?this.gl.UNSIGNED_SHORT:this.gl.UNSIGNED_INT),n.target=t==="index"?this.gl.ELEMENT_ARRAY_BUFFER:this.gl.ARRAY_BUFFER,n.normalized=n.normalized||!1,n.stride=n.stride||0,n.offset=n.offset||0,n.count=n.count||(n.stride?n.data.byteLength/n.stride:n.data.length/n.size),n.divisor=n.instanced||0,n.needsUpdate=!1,n.usage=n.usage||this.gl.STATIC_DRAW,n.buffer||this.updateAttribute(n),n.divisor){if(this.isInstanced=!0,this.instancedCount&&this.instancedCount!==n.count*n.divisor)return console.warn("geometry has multiple instanced buffers of different length"),this.instancedCount=Math.min(this.instancedCount,n.count*n.divisor);this.instancedCount=n.count*n.divisor}else t==="index"?this.drawRange.count=n.count:this.attributes.index||(this.drawRange.count=Math.max(this.drawRange.count,n.count))}updateAttribute(t){const n=!t.buffer;n&&(t.buffer=this.gl.createBuffer()),this.glState.boundBuffer!==t.buffer&&(this.gl.bindBuffer(t.target,t.buffer),this.glState.boundBuffer=t.buffer),n?this.gl.bufferData(t.target,t.data,t.usage):this.gl.bufferSubData(t.target,0,t.data),t.needsUpdate=!1}setIndex(t){this.addAttribute("index",t)}setDrawRange(t,n){this.drawRange.start=t,this.drawRange.count=n}setInstancedCount(t){this.instancedCount=t}createVAO(t){this.VAOs[t.attributeOrder]=this.gl.renderer.createVertexArray(),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.bindAttributes(t)}bindAttributes(t){t.attributeLocations.forEach((n,{name:r,type:i})=>{if(!this.attributes[r]){console.warn(`active attribute ${r} not being supplied`);return}const o=this.attributes[r];this.gl.bindBuffer(o.target,o.buffer),this.glState.boundBuffer=o.buffer;let s=1;i===35674&&(s=2),i===35675&&(s=3),i===35676&&(s=4);const a=o.size/s,l=s===1?0:s*s*4,c=s===1?0:s*4;for(let u=0;u<s;u++)this.gl.vertexAttribPointer(n+u,a,o.type,o.normalized,o.stride+l,o.offset+u*c),this.gl.enableVertexAttribArray(n+u),this.gl.renderer.vertexAttribDivisor(n+u,o.divisor)}),this.attributes.index&&this.gl.bindBuffer(this.gl.ELEMENT_ARRAY_BUFFER,this.attributes.index.buffer)}draw({program:t,mode:n=this.gl.TRIANGLES}){var i;this.gl.renderer.currentGeometry!==`${this.id}_${t.attributeOrder}`&&(this.VAOs[t.attributeOrder]||this.createVAO(t),this.gl.renderer.bindVertexArray(this.VAOs[t.attributeOrder]),this.gl.renderer.currentGeometry=`${this.id}_${t.attributeOrder}`),t.attributeLocations.forEach((o,{name:s})=>{const a=this.attributes[s];a.needsUpdate&&this.updateAttribute(a)});let r=2;((i=this.attributes.index)==null?void 0:i.type)===this.gl.UNSIGNED_INT&&(r=4),this.isInstanced?this.attributes.index?this.gl.renderer.drawElementsInstanced(n,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*r,this.instancedCount):this.gl.renderer.drawArraysInstanced(n,this.drawRange.start,this.drawRange.count,this.instancedCount):this.attributes.index?this.gl.drawElements(n,this.drawRange.count,this.attributes.index.type,this.attributes.index.offset+this.drawRange.start*r):this.gl.drawArrays(n,this.drawRange.start,this.drawRange.count)}getPosition(){const t=this.attributes.position;if(t.data)return t;if(!rl)return console.warn("No position buffer data found to compute bounds"),rl=!0}computeBoundingBox(t){t||(t=this.getPosition());const n=t.data,r=t.size;this.bounds||(this.bounds={min:new Ge,max:new Ge,center:new Ge,scale:new Ge,radius:1/0});const i=this.bounds.min,o=this.bounds.max,s=this.bounds.center,a=this.bounds.scale;i.set(1/0),o.set(-1/0);for(let l=0,c=n.length;l<c;l+=r){const u=n[l],h=n[l+1],d=n[l+2];i.x=Math.min(u,i.x),i.y=Math.min(h,i.y),i.z=Math.min(d,i.z),o.x=Math.max(u,o.x),o.y=Math.max(h,o.y),o.z=Math.max(d,o.z)}
91a.sub(o,i),s.add(i,o).divide(2)}computeBoundingSphere(t){t||(t=this.getPosition());const n=t.data,r=t.size;this.bounds||this.computeBoundingBox(t);let i=0;for(let o=0,s=n.length;o<s;o+=r)nl.fromArray(n,o),i=Math.max(i,this.bounds.center.squaredDistance(nl));this.bounds.radius=Math.sqrt(i)}remove(){for(let t in this.VAOs)this.gl.renderer.deleteVertexArray(this.VAOs[t]),delete this.VAOs[t];for(let t in this.attributes)this.gl.deleteBuffer(this.attributes[t].buffer),delete this.attributes[t]}}let py=1;const il={};class my{constructor(t,{vertex:n,fragment:r,uniforms:i={},transparent:o=!1,cullFace:s=t.BACK,frontFace:a=t.CCW,depthTest:l=!0,depthWrite:c=!0,depthFunc:u=t.LEQUAL}={}){t.canvas||console.error("gl not passed as first argument to Program"),this.gl=t,this.uniforms=i,this.id=py++,n||console.warn("vertex shader not supplied"),r||console.warn("fragment shader not supplied"),this.transparent=o,this.cullFace=s,this.frontFace=a,this.depthTest=l,this.depthWrite=c,this.depthFunc=u,this.blendFunc={},this.blendEquation={},this.stencilFunc={},this.stencilOp={},this.transparent&&!this.blendFunc.src&&(this.gl.renderer.premultipliedAlpha?this.setBlendFunc(this.gl.ONE,this.gl.ONE_MINUS_SRC_ALPHA):this.setBlendFunc(this.gl.SRC_ALPHA,this.gl.ONE_MINUS_SRC_ALPHA)),this.vertexShader=t.createShader(t.VERTEX_SHADER),this.fragmentShader=t.createShader(t.FRAGMENT_SHADER),this.program=t.createProgram(),t.attachShader(this.program,this.vertexShader),t.attachShader(this.program,this.fragmentShader),this.setShaders({vertex:n,fragment:r})}setShaders({vertex:t,fragment:n}){if(t&&(this.gl.shaderSource(this.vertexShader,t),this.gl.compileShader(this.vertexShader),this.gl.getShaderInfoLog(this.vertexShader)!==""&&console.warn(`${this.gl.getShaderInfoLog(this.vertexShader)} 92Vertex Shader 93${sl(t)}`)),n&&(this.gl.shaderSource(this.fragmentShader,n),this.gl.compileShader(this.fragmentShader),this.gl.getShaderInfoLog(this.fragmentShader)!==""&&console.warn(`${this.gl.getShaderInfoLog(this.fragmentShader)} 94Fragment Shader 95${sl(n)}`)),this.gl.linkProgram(this.program),!this.gl.getProgramParameter(this.program,this.gl.LINK_STATUS))return console.warn(this.gl.getProgramInfoLog(this.program));this.uniformLocations=new Map;let r=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_UNIFORMS);for(let s=0;s<r;s++){let a=this.gl.getActiveUniform(this.program,s);this.uniformLocations.set(a,this.gl.getUniformLocation(this.program,a.name));const l=a.name.match(/(\w+)/g);a.uniformName=l[0],a.nameComponents=l.slice(1)}this.attributeLocations=new Map;const i=[],o=this.gl.getProgramParameter(this.program,this.gl.ACTIVE_ATTRIBUTES);for(let s=0;s<o;s++){const a=this.gl.getActiveAttrib(this.program,s),l=this.gl.getAttribLocation(this.program,a.name);l!==-1&&(i[l]=a.name,this.attributeLocations.set(a,l))}this.attributeOrder=i.join("")}setBlendFunc(t,n,r,i){this.blendFunc.src=t,this.blendFunc.dst=n,this.blendFunc.srcAlpha=r,this.blendFunc.dstAlpha=i,t&&(this.transparent=!0)}setBlendEquation(t,n){this.blendEquation.modeRGB=t,this.blendEquation.modeAlpha=n}setStencilFunc(t,n,r){this.stencilRef=n,this.stencilFunc.func=t,this.stencilFunc.ref=n,this.stencilFunc.mask=r}setStencilOp(t,n,r){this.stencilOp.stencilFail=t,this.stencilOp.depthFail=n,this.stencilOp.depthPass=r}applyState(){this.depthTest?this.gl.renderer.enable(this.gl.DEPTH_TEST):this.gl.renderer.disable(this.gl.DEPTH_TEST),this.cullFace?this.gl.renderer.enable(this.gl.CULL_FACE):this.gl.renderer.disable(this.gl.CULL_FACE),this.blendFunc.src?this.gl.renderer.enable(this.gl.BLEND):this.gl.renderer.disable(this.gl.BLEND),this.cullFace&&this.gl.renderer.setCullFace(this.cullFace),this.gl.renderer.setFrontFace(this.frontFace),this.gl.renderer.setDepthMask(this.depthWrite),this.gl.renderer.setDepthFunc(this.depthFunc),this.blendFunc.src&&this.gl.renderer.setBlendFunc(this.blendFunc.src,this.blendFunc.dst,this.blendFunc.srcAlpha,this.blendFunc.dstAlpha),this.gl.renderer.setBlendEquation(this.blendEquation.modeRGB,this.blendEquation.modeAlpha),this.stencilFunc.func||this.stencilOp.stencilFail?this.gl.renderer.enable(this.gl.STENCIL_TEST):this.gl.renderer.disable(this.gl.STENCIL_TEST),this.gl.renderer.setStencilFunc(this.stencilFunc.func,this.stencilFunc.ref,this.stencilFunc.mask),this.gl.renderer.setStencilOp(this.stencilOp.stencilFail,this.stencilOp.depthFail,this.stencilOp.depthPass)}use({flipFaces:t=!1}={}){let n=-1;this.gl.renderer.state.currentProgram===this.id||(this.gl.useProgram(this.program),this.gl.renderer.state.currentProgram=this.id
95),this.uniformLocations.forEach((i,o)=>{let s=this.uniforms[o.uniformName];for(const a of o.nameComponents){if(!s)break;if(a in s)s=s[a];else{if(Array.isArray(s.value))break;s=void 0;break}}if(!s)return ol(`Active uniform ${o.name} has not been supplied`);if(s&&s.value===void 0)return ol(`${o.name} uniform is missing a value parameter`);if(s.value.texture)return n=n+1,s.value.update(n),di(this.gl,o.type,i,n);if(s.value.length&&s.value[0].texture){const a=[];return s.value.forEach(l=>{n=n+1,l.update(n),a.push(n)}),di(this.gl,o.type,i,a)}di(this.gl,o.type,i,s.value)}),this.applyState(),t&&this.gl.renderer.setFrontFace(this.frontFace===this.gl.CCW?this.gl.CW:this.gl.CCW)}remove(){this.gl.deleteProgram(this.program)}}function di(e,t,n,r){r=r.length?gy(r):r;const i=e.renderer.state.uniformLocations.get(n);if(r.length)if(i===void 0||i.length!==r.length)e.renderer.state.uniformLocations.set(n,r.slice(0));else{if(yy(i,r))return;i.set?i.set(r):vy(i,r),e.renderer.state.uniformLocations.set(n,i)}else{if(i===r)return;e.renderer.state.uniformLocations.set(n,r)}switch(t){case 5126:return r.length?e.uniform1fv(n,r):e.uniform1f(n,r);case 35664:return e.uniform2fv(n,r);case 35665:return e.uniform3fv(n,r);case 35666:return e.uniform4fv(n,r);case 35670:case 5124:case 35678:case 36306:case 35680:case 36289:return r.length?e.uniform1iv(n,r):e.uniform1i(n,r);case 35671:case 35667:return e.uniform2iv(n,r);case 35672:case 35668:return e.uniform3iv(n,r);case 35673:case 35669:return e.uniform4iv(n,r);case 35674:return e.uniformMatrix2fv(n,!1,r);case 35675:return e.uniformMatrix3fv(n,!1,r);case 35676:return e.uniformMatrix4fv(n,!1,r)}}function sl(e){let t=e.split(` 96`);for(let n=0;n<t.length;n++)t[n]=n+1+": "+t[n];return t.join(` 97`)}function gy(e){const t=e.length,n=e[0].length;if(n===void 0)return e;const r=t*n;let i=il[r];i||(il[r]=i=new Float32Array(r));for(let o=0;o<t;o++)i.set(e[o],o*n);return i}function yy(e,t){if(e.length!==t.length)return!1;for(let n=0,r=e.length;n<r;n++)if(e[n]!==t[n])return!1;return!0}function vy(e,t){for(let n=0,r=e.length;n<r;n++)e[n]=t[n]}let fi=0;function ol(e){fi>100||(console.warn(e),fi++,fi>100&&console.warn("More than 100 program warnings - stopping logs."))}const pi=new Ge;let xy=1;class by{constructor({canvas:t=document.createElement("canvas"),width:n=300,height:r=150,dpr:i=1,alpha:o=!1,depth:s=!0,stencil:a=!1,antialias:l=!1,premultipliedAlpha:c=!1,preserveDrawingBuffer:u=!1,powerPreference:h="default",autoClear:d=!0,webgl:f=2}={}){const p={alpha:o,depth:s,stencil:a,antialias:l,premultipliedAlpha:c,preserveDrawingBuffer:u,powerPreference:h};this.dpr=i,this.alpha=o,this.color=!0,this.depth=s,this.stencil=a,this.premultipliedAlpha=c,this.autoClear=d,this.id=xy++,f===2&&(this.gl=t.getContext("webgl2",p)),this.isWebgl2=!!this.gl,this.gl||(this.gl=t.getContext("webgl",p)),this.gl||console.error("unable to create webgl context"),this.gl.renderer=this,this.setSize(n,r),this.state={},this.state.blendFunc={src:this.gl.ONE,dst:this.gl.ZERO},this.state.blendEquation={modeRGB:this.gl.FUNC_ADD},this.state.cullFace=!1,this.state.frontFace=this.gl.CCW,this.state.depthMask=!0,this.state.depthFunc=this.gl.LEQUAL,this.state.premultiplyAlpha=!1,this.state.flipY=!1,this.state.unpackAlignment=4,this.state.framebuffer=null,this.state.viewport={x:0,y:0,width:null,height:null},this.state.textureUnits=[],this.state.activeTextureUnit=0,this.state.boundBuffer=null,this.state.uniformLocations=new Map,this.state.currentProgram=null,this.extensions={},this.isWebgl2?(this.getExtension("EXT_color_buffer_float"),this.getExtension("OES_texture_float_linear")):(this.getExtension("OES_texture_float"),this.getExtension("OES_texture_float_linear"),this.getExtension("OES_texture_half_float"),this.getExtension("OES_texture_half_float_linear"),this.getExtension("OES_element_index_uint"),this.getExtension("OES_standard_derivatives"),this.getExtension("EXT_sRGB"),this.getExtension("WEBGL_depth_texture"),this.getExtension("WEBGL_draw_buffers")),this.getExtension("WEBGL_compressed_texture_astc"),this.getExtension("EXT_texture_compression_bptc"),this.getExtension("WEBGL_compressed_texture_s3tc"),this.getExtension("WEBGL_compressed_texture_etc1"),this.getExtension("WEBGL_compressed_texture_pvrtc"),this.getExtension("WEBKIT_WEBGL_compressed_texture_pvrtc"),this.vertexAttribDivisor=this.getExtension("ANGLE_instanced_arrays","vertexAttribDivisor","vertexAttribDivisorANGLE"),this.drawArraysInstanced=this.getExtension("ANGLE_instanced_arrays","drawArraysInstanced","drawArraysInstancedANGLE"),this.drawElementsInstanced=this.getExtension("ANGLE_instanced_arrays","drawElementsInstanced","drawElementsInstancedANGLE"),this.createVertexArray=this.getExtension("OES_vertex_array_object","createVertexArray","createVertexArrayOES"),this.bindVertexArray=this.getExtension("OES_vertex_array_object","bindVertexArray","bindVertexArrayOES"),this.deleteVertexArray=this.getExtension("OES_vertex_array_object","deleteVertexArray","deleteVertexArrayOES"),this.drawBuffers=this.getExtension("WEBGL_draw_buffers","drawBuffers","drawBuffersWEBGL"),this.parameters={},this.parameters.maxTextureUnits=this.gl.getParameter(this.gl.MAX_COMBINED_TEXTURE_IMAGE_UNITS),this.parameters.maxAnisotropy=this.getExtension("EXT_texture_filter_anisotropic")?this.gl.getParameter(this.getExtension("EXT_texture_filter_anisotropic").MAX_TEXTURE_MAX_ANISOTROPY_EXT):0}setSize(t,n){this.width=t,this.height=n,this.gl.canvas.width=t*this.dpr,this.gl.canvas.height=n*this.dpr,this.gl.canvas.style&&Object.assign(this.gl.canvas.style,{width:t+"px",height:n+"px"})}setViewport(t,n,r=0,i=0){this.state.viewport.width===t&&this.state.viewport.height===n||(this.state.viewport.width=t,this.state.viewport.height=n,this.state.viewport.x=r,this.state.viewport.y=i,this.gl.viewport(r,i,t,n))}setScissor(t,n,r=0,i=0){this.gl.scissor(r,i,t,n)}enable(t){this.state[t]!==!0&&(this.gl.enable(t),this.state[t]=!0)}disable(t){this.state[t]!==!1&&(this.gl.disable(t),this.state[t]=!1)}setBlendFunc(t,n,r,i){this.state.blendFunc.src===t&&this.state.blendFunc.dst===n&&this.state.blendFunc.srcAlpha===r&&this.state.blendFunc.dstAlpha===i||(this.state.blendFunc.src=t,this.state.blendFunc.dst=n,this.state.blendFunc.srcAlpha=r,this.state.blendFunc.dstAlpha=i,r!==void 0?this.gl.blendFuncSeparate(t,n,r,i):this.gl.blendFunc(t,n))}setBlendEquation(t,n){t=t||this.gl.FUNC_ADD,!(this.state.blendEquation.modeRGB===t&&this.state.blendEquation.modeAlpha===n)&&(this.state.blendEquation.modeRGB=t,this.state.blendEquation.modeAlpha=n,n!==void 0?this.gl.blendEquationSeparate(t,n):this.gl.blendEquation(t))}setCullFace(t){this.state.cullFace!==t&&(this.state.cullFace=t,this.gl.cullFace(t))}setFrontFace(t){this.state.frontFace!==t&&(this.state.frontFace=t,this.gl.frontFace(t))}setDepthMask(t){this.state.depthMask!==t&&(this.state.depthMask=t,this.gl.depthMask(t))}setDepthFunc(t){this.state.depthFunc!==t&&(this.state.depthFunc=t,this.gl.depthFunc(t))}setStencilMask(t){this.state.stencilMask!==t&&(this.state.stencilMask=t,this.gl.stencilMask(t))}setStencilFunc(t,n,r){this.state.stencilFunc===t&&this.state.stencilRef===n&&this.state.stencilFuncMask===r||(this.state.stencilFunc=t||this.gl.ALWAYS,this.state.stencilRef=n||0,this.state.stencilFuncMask=r||0,this.gl.stencilFunc(t||this.gl.ALWAYS,n||0,r||0))}setStencilOp(t,n,r){this.state.stencilFail===t&&this.state.stencilDepthFail===n&&this.state.stencilDepthPass===r||(this.state.stencilFail=t,this.state.stencilDepthFail=n,this.state.stencilDepthPass=r,this.gl.stencilOp(t,n,r))}activeTexture(t){this.state.activeTextureUnit!==t&&(this.state.activeTextureUnit=t,this.gl.activeTexture(this.gl.TEXTURE0+t))}bindFramebuffer({target:t=this.gl.FRAMEBUFFER,buffer:n=null}={}){this.state.framebuffer!==n&&(this.state.framebuffer=n,this.gl.bindFramebuffer(t,n))}getExtension(t,n,r){return n&&this.gl[n]?this.gl[n].bind(this.gl):(this.extensions[t]||(this.extensions[t]=this.gl.getExtension(t)),n?this.extensions[t]?this.extensions[t][r].bind(this.extensions[t]):null:this.extensions[t])}sortOpaque(t,n){return t.renderOrder!==n.renderOrder?t.renderOrder-n.renderOrder:t.program.id!==n.program.id?t.program.id-n.program.id:t.zDepth!==n.zDepth?t.zDepth-n.zDepth:n.id-t.id}
97sortTransparent(t,n){return t.renderOrder!==n.renderOrder?t.renderOrder-n.renderOrder:t.zDepth!==n.zDepth?n.zDepth-t.zDepth:n.id-t.id}sortUI(t,n){return t.renderOrder!==n.renderOrder?t.renderOrder-n.renderOrder:t.program.id!==n.program.id?t.program.id-n.program.id:n.id-t.id}getRenderList({scene:t,camera:n,frustumCull:r,sort:i}){let o=[];if(n&&r&&n.updateFrustum(),t.traverse(s=>{if(!s.visible)return!0;s.draw&&(r&&s.frustumCulled&&n&&!n.frustumIntersectsMesh(s)||o.push(s))}),i){const s=[],a=[],l=[];o.forEach(c=>{c.program.transparent?c.program.depthTest?a.push(c):l.push(c):s.push(c),c.zDepth=0,!(c.renderOrder!==0||!c.program.depthTest||!n)&&(c.worldMatrix.getTranslation(pi),pi.applyMatrix4(n.projectionViewMatrix),c.zDepth=pi.z)}),s.sort(this.sortOpaque),a.sort(this.sortTransparent),l.sort(this.sortUI),o=s.concat(a,l)}return o}render({scene:t,camera:n,target:r=null,update:i=!0,sort:o=!0,frustumCull:s=!0,clear:a}){r===null?(this.bindFramebuffer(),this.setViewport(this.width*this.dpr,this.height*this.dpr)):(this.bindFramebuffer(r),this.setViewport(r.width,r.height)),(a||this.autoClear&&a!==!1)&&(this.depth&&(!r||r.depth)&&(this.enable(this.gl.DEPTH_TEST),this.setDepthMask(!0)),(this.stencil||!r||r.stencil)&&(this.enable(this.gl.STENCIL_TEST),this.setStencilMask(255)),this.gl.clear((this.color?this.gl.COLOR_BUFFER_BIT:0)|(this.depth?this.gl.DEPTH_BUFFER_BIT:0)|(this.stencil?this.gl.STENCIL_BUFFER_BIT:0))),i&&t.updateMatrixWorld(),n&&n.updateMatrixWorld(),this.getRenderList({scene:t,camera:n,frustumCull:s,sort:o}).forEach(c=>{c.draw({camera:n})})}}function wy(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function Ty(e,t,n,r,i){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e}function Sy(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=n*n+r*r+i*i+o*o;return s>0&&(s=1/Math.sqrt(s)),e[0]=n*s,e[1]=r*s,e[2]=i*s,e[3]=o*s,e}function Ey(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function Cy(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Ry(e,t,n){n=n*.5;let r=Math.sin(n);return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=Math.cos(n),e}function al(e,t,n){let r=t[0],i=t[1],o=t[2],s=t[3],a=n[0],l=n[1],c=n[2],u=n[3];return e[0]=r*u+s*a+i*c-o*l,e[1]=i*u+s*l+o*a-r*c,e[2]=o*u+s*c+r*l-i*a,e[3]=s*u-r*a-i*l-o*c,e}function Ay(e,t,n){n*=.5;let r=t[0],i=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=r*l+s*a,e[1]=i*l+o*a,e[2]=o*l-i*a,e[3]=s*l-r*a,e}function Py(e,t,n){n*=.5;let r=t[0],i=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=r*l-o*a,e[1]=i*l+s*a,e[2]=o*l+r*a,e[3]=s*l-i*a,e}function My(e,t,n){n*=.5;let r=t[0],i=t[1],o=t[2],s=t[3],a=Math.sin(n),l=Math.cos(n);return e[0]=r*l+i*a,e[1]=i*l-r*a,e[2]=o*l+s*a,e[3]=s*l-o*a,e}function _y(e,t,n,r){let i=t[0],o=t[1],s=t[2],a=t[3],l=n[0],c=n[1],u=n[2],h=n[3],d,f,p,m,g;return f=i*l+o*c+s*u+a*h,f<0&&(f=-f,l=-l,c=-c,u=-u,h=-h),1-f>1e-6?(d=Math.acos(f),p=Math.sin(d),m=Math.sin((1-r)*d)/p,g=Math.sin(r*d)/p):(m=1-r,g=r),e[0]=m*i+g*l,e[1]=m*o+g*c,e[2]=m*s+g*u,e[3]=m*a+g*h,e}function Dy(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=n*n+r*r+i*i+o*o,a=s?1/s:0;return e[0]=-n*a,e[1]=-r*a,e[2]=-i*a,e[3]=o*a,e}function Ly(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function jy(e,t){let n=t[0]+t[4]+t[8],r;if(n>0)r=Math.sqrt(n+1),e[3]=.5*r,r=.5/r,e[0]=(t[5]-t[7])*r,e[1]=(t[6]-t[2])*r,e[2]=(t[1]-t[3])*r;else{let i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);let o=(i+1)%3,s=(i+2)%3;r=Math.sqrt(t[i*3+i]-t[o*3+o]-t[s*3+s]+1),e[i]=.5*r,r=.5/r,e[3]=(t[o*3+s]-t[s*3+o])*r,e[o]=(t[o*3+i]+t[i*3+o])*r,e[s]=(t[s*3+i]+t[i*3+s])*r}return e}function Oy(e,t,n="YXZ"){let r=Math.sin(t[0]*.5),i=Math.cos(t[0]*.5),o=Math.sin(t[1]*.5),s=Math.cos(t[1]*.5),a=Math.sin(t[2]*.5),l=Math.cos(t[2]*.5);return n==="XYZ"?(e[0]=r*s*l+i*o*a,e[1]=i*o*l-r*s*a,e[2]=i*s*a+r*o*l,e[3]=i*s*l-r*o*a):n==="YXZ"?(e[0]=r*s*l+i*o*a,e[1]=i*o*l-r*s*a,e[2]=i*s*a-r*o*l,e[3]=i*s*l+r*o*a):n==="ZXY"?(e[0]=r*s*l-i*o*a,e[1]=i*o*l+r*s*a,e[2]=i*s*a+r*o*l,e[3]=i*s*l-r*o*a):n==="ZYX"?(e[0]=r*s*l-i*o*a,e[1]=i*o*l+r*s*a,e[2]=i*s*a-r*o*l,e[3]=i*s*l+r*o*a):n==="YZX"?(e[0]=r*s*l+i*o*a,e[1]=i*o*l+r*s*a,e[2]=i*s*a-r*o*l,e[3]=i*s*l-r*o*a):n==="XZY"&&(e[0]=r*s*l-i*o*a,e[1]=i*o*l-r*s*a,e[2]=i*s*a+r*o*l,e[3]=i*s*l+r*o*a),e}const ky=wy,Iy=Ty,Vy=Ey,Ny=Sy;class Fy extends Array{constructor(t=0,n=0,r=0,i=1){super(t,n,r,i),this.onChange=()=>{},this._target=this;const o=["0","1","2","3"];return new Proxy(this,{set(s,a){const l=Reflect.set(...arguments);return l&&o.includes(a)&&s.onChange(),l}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}get w(){return this[3]}set x(t){this._target[0]=t,this.onChange()}set y(t){this._target[1]=t,this.onChange()}set z(t){this._target[2]=t,this.onChange()}set w(t){this._target[3]=t,this.onChange()}identity(){return Cy(this._target),this.onChange(),this}set(t,n,r,i){return t.length?this.copy(t):(Iy(this._target,t,n,r,i),this.onChange(),this)}rotateX(t){return Ay(this._target,this._target,t),this.onChange(),this}rotateY(t){return Py(this._target,this._target,t),this.onChange(),this}rotateZ(t){return My(this._target,this._target,t),this.onChange(),this}inverse(t=this._target){return Dy(this._target,t),this.onChange(),this}conjugate(t=this._target){return Ly(this._target,t),this.onChange(),this}copy(t){return ky(this._target,t),this.onChange(),this}normalize(t=this._target){return Ny(this._target,t),this.onChange(),this}multiply(t,n){return n?al(this._target,t,n):al(this._target,this._target,t),this.onChange(),this}dot(t){return Vy(this._target,t)}fromMatrix3(t){return jy(this._target,t),this.onChange(),this}fromEuler(t,n){return Oy(this._target,t,t.order),n||this.onChange(),this}fromAxisAngle(t,n){return Ry(this._target,t,n),this.onChange(),this}slerp(t,n){return _y(this._target,this._target,t,n),this.onChange(),this}fromArray(t,n=0){return this._target[0]=t[n],this._target[1]=t[n+1],this._target[2]=t[n+2],this._target[3]=t[n+3],this.onChange(),this}toArray(t=[],n=0){return t[n]=this[0],t[n+1]=this[1],t[n+2]=this[2],t[n+3]=this[3],t}}const By=1e-6;function zy(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function Uy(e,t,n,r,i,o,s,a,l,c,u,h,d,f,p,m,g){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e[4]=o,e[5]=s,e[6]=a,e[7]=l,e[8]=c,e[9]=u,e[10]=h,e[11]=d,e[12]=f,e[13]=p,e[14]=m,e[15]=g,e}function Hy(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10
97]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function $y(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],v=t[15],C=n*a-r*s,S=n*l-i*s,R=n*c-o*s,P=r*l-i*a,j=r*c-o*a,b=i*c-o*l,M=u*m-h*p,O=u*g-d*p,_=u*v-f*p,V=h*g-d*m,N=h*v-f*m,W=d*v-f*g,k=C*W-S*N+R*V+P*_-j*O+b*M;return k?(k=1/k,e[0]=(a*W-l*N+c*V)*k,e[1]=(i*N-r*W-o*V)*k,e[2]=(m*b-g*j+v*P)*k,e[3]=(d*j-h*b-f*P)*k,e[4]=(l*_-s*W-c*O)*k,e[5]=(n*W-i*_+o*O)*k,e[6]=(g*R-p*b-v*S)*k,e[7]=(u*b-d*R+f*S)*k,e[8]=(s*N-a*_+c*M)*k,e[9]=(r*_-n*N-o*M)*k,e[10]=(p*j-m*R+v*C)*k,e[11]=(h*R-u*j-f*C)*k,e[12]=(a*O-s*V-l*M)*k,e[13]=(n*V-r*O+i*M)*k,e[14]=(m*S-p*P-g*C)*k,e[15]=(u*P-h*S+d*C)*k,e):null}function Iu(e){let t=e[0],n=e[1],r=e[2],i=e[3],o=e[4],s=e[5],a=e[6],l=e[7],c=e[8],u=e[9],h=e[10],d=e[11],f=e[12],p=e[13],m=e[14],g=e[15],v=t*s-n*o,C=t*a-r*o,S=t*l-i*o,R=n*a-r*s,P=n*l-i*s,j=r*l-i*a,b=c*p-u*f,M=c*m-h*f,O=c*g-d*f,_=u*m-h*p,V=u*g-d*p,N=h*g-d*m;return v*N-C*V+S*_+R*O-P*M+j*b}function ll(e,t,n){let r=t[0],i=t[1],o=t[2],s=t[3],a=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=t[9],f=t[10],p=t[11],m=t[12],g=t[13],v=t[14],C=t[15],S=n[0],R=n[1],P=n[2],j=n[3];return e[0]=S*r+R*a+P*h+j*m,e[1]=S*i+R*l+P*d+j*g,e[2]=S*o+R*c+P*f+j*v,e[3]=S*s+R*u+P*p+j*C,S=n[4],R=n[5],P=n[6],j=n[7],e[4]=S*r+R*a+P*h+j*m,e[5]=S*i+R*l+P*d+j*g,e[6]=S*o+R*c+P*f+j*v,e[7]=S*s+R*u+P*p+j*C,S=n[8],R=n[9],P=n[10],j=n[11],e[8]=S*r+R*a+P*h+j*m,e[9]=S*i+R*l+P*d+j*g,e[10]=S*o+R*c+P*f+j*v,e[11]=S*s+R*u+P*p+j*C,S=n[12],R=n[13],P=n[14],j=n[15],e[12]=S*r+R*a+P*h+j*m,e[13]=S*i+R*l+P*d+j*g,e[14]=S*o+R*c+P*f+j*v,e[15]=S*s+R*u+P*p+j*C,e}function Wy(e,t,n){let r=n[0],i=n[1],o=n[2],s,a,l,c,u,h,d,f,p,m,g,v;return t===e?(e[12]=t[0]*r+t[4]*i+t[8]*o+t[12],e[13]=t[1]*r+t[5]*i+t[9]*o+t[13],e[14]=t[2]*r+t[6]*i+t[10]*o+t[14],e[15]=t[3]*r+t[7]*i+t[11]*o+t[15]):(s=t[0],a=t[1],l=t[2],c=t[3],u=t[4],h=t[5],d=t[6],f=t[7],p=t[8],m=t[9],g=t[10],v=t[11],e[0]=s,e[1]=a,e[2]=l,e[3]=c,e[4]=u,e[5]=h,e[6]=d,e[7]=f,e[8]=p,e[9]=m,e[10]=g,e[11]=v,e[12]=s*r+u*i+p*o+t[12],e[13]=a*r+h*i+m*o+t[13],e[14]=l*r+d*i+g*o+t[14],e[15]=c*r+f*i+v*o+t[15]),e}function Gy(e,t,n){let r=n[0],i=n[1],o=n[2];return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*o,e[9]=t[9]*o,e[10]=t[10]*o,e[11]=t[11]*o,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function qy(e,t,n,r){let i=r[0],o=r[1],s=r[2],a=Math.hypot(i,o,s),l,c,u,h,d,f,p,m,g,v,C,S,R,P,j,b,M,O,_,V,N,W,k,H;return Math.abs(a)<By?null:(a=1/a,i*=a,o*=a,s*=a,l=Math.sin(n),c=Math.cos(n),u=1-c,h=t[0],d=t[1],f=t[2],p=t[3],m=t[4],g=t[5],v=t[6],C=t[7],S=t[8],R=t[9],P=t[10],j=t[11],b=i*i*u+c,M=o*i*u+s*l,O=s*i*u-o*l,_=i*o*u-s*l,V=o*o*u+c,N=s*o*u+i*l,W=i*s*u+o*l,k=o*s*u-i*l,H=s*s*u+c,e[0]=h*b+m*M+S*O,e[1]=d*b+g*M+R*O,e[2]=f*b+v*M+P*O,e[3]=p*b+C*M+j*O,e[4]=h*_+m*V+S*N,e[5]=d*_+g*V+R*N,e[6]=f*_+v*V+P*N,e[7]=p*_+C*V+j*N,e[8]=h*W+m*k+S*H,e[9]=d*W+g*k+R*H,e[10]=f*W+v*k+P*H,e[11]=p*W+C*k+j*H,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function Yy(e,t){return e[0]=t[12],e[1]=t[13],e[2]=t[14],e}function Vu(e,t){let n=t[0],r=t[1],i=t[2],o=t[4],s=t[5],a=t[6],l=t[8],c=t[9],u=t[10];return e[0]=Math.hypot(n,r,i),e[1]=Math.hypot(o,s,a),e[2]=Math.hypot(l,c,u),e}function Ky(e){let t=e[0],n=e[1],r=e[2],i=e[4],o=e[5],s=e[6],a=e[8],l=e[9],c=e[10];const u=t*t+n*n+r*r,h=i*i+o*o+s*s,d=a*a+l*l+c*c;return Math.sqrt(Math.max(u,h,d))}const Nu=(function(){const e=[1,1,1];return function(t,n){let r=e;Vu(r,n);let i=1/r[0],o=1/r[1],s=1/r[2],a=n[0]*i,l=n[1]*o,c=n[2]*s,u=n[4]*i,h=n[5]*o,d=n[6]*s,f=n[8]*i,p=n[9]*o,m=n[10]*s,g=a+h+m,v=0;return g>0?(v=Math.sqrt(g+1)*2,t[3]=.25*v,t[0]=(d-p)/v,t[1]=(f-c)/v,t[2]=(l-u)/v):a>h&&a>m?(v=Math.sqrt(1+a-h-m)*2,t[3]=(d-p)/v,t[0]=.25*v,t[1]=(l+u)/v,t[2]=(f+c)/v):h>m?(v=Math.sqrt(1+h-a-m)*2,t[3]=(f-c)/v,t[0]=(l+u)/v,t[1]=.25*v,t[2]=(d+p)/v):(v=Math.sqrt(1+m-a-h)*2,t[3]=(l-u)/v,t[0]=(f+c)/v,t[1]=(d+p)/v,t[2]=.25*v),t}})();function Xy(e,t,n,r){let i=bn([e[0],e[1],e[2]]);const o=bn([e[4],e[5],e[6]]),s=bn([e[8],e[9],e[10]]);Iu(e)<0&&(i=-i),n[0]=e[12],n[1]=e[13],n[2]=e[14];const l=e.slice(),c=1/i,u=1/o,h=1/s;l[0]*=c,l[1]*=c,l[2]*=c,l[4]*=u,l[5]*=u,l[6]*=u,l[8]*=h,l[9]*=h,l[10]*=h,Nu(t,l),r[0]=i,r[1]=o,r[2]=s}function Zy(e,t,n,r){const i=e,o=t[0],s=t[1],a=t[2],l=t[3],c=o+o,u=s+s,h=a+a,d=o*c,f=o*u,p=o*h,m=s*u,g=s*h,v=a*h,C=l*c,S=l*u,R=l*h,P=r[0],j=r[1],b=r[2];return i[0]=(1-(m+v))*P,i[1]=(f+R)*P,i[2]=(p-S)*P,i[3]=0,i[4]=(f-R)*j,i[5]=(1-(d+v))*j,i[6]=(g+C)*j,i[7]=0,i[8]=(p+S)*b,i[9]=(g-C)*b,i[10]=(1-(d+m))*b,i[11]=0,i[12]=n[0],i[13]=n[1],i[14]=n[2],i[15]=1,i}function Jy(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=n+n,a=r+r,l=i+i,c=n*s,u=r*s,h=r*a,d=i*s,f=i*a,p=i*l,m=o*s,g=o*a,v=o*l;return e[0]=1-h-p,e[1]=u+v,e[2]=d-g,e[3]=0,e[4]=u-v,e[5]=1-c-p,e[6]=f+m,e[7]=0,e[8]=d+g,e[9]=f-m,e[10]=1-c-h,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function Qy(e,t,n,r,i){let o=1/Math.tan(t/2),s=1/(r-i);return e[0]=o/n,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10
97]=(i+r)*s,e[11]=-1,e[12]=0,e[13]=0,e[14]=2*i*r*s,e[15]=0,e}function e2(e,t,n,r,i,o,s){let a=1/(t-n),l=1/(r-i),c=1/(o-s);return e[0]=-2*a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*l,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*c,e[11]=0,e[12]=(t+n)*a,e[13]=(i+r)*l,e[14]=(s+o)*c,e[15]=1,e}function t2(e,t,n,r){let i=t[0],o=t[1],s=t[2],a=r[0],l=r[1],c=r[2],u=i-n[0],h=o-n[1],d=s-n[2],f=u*u+h*h+d*d;f===0?d=1:(f=1/Math.sqrt(f),u*=f,h*=f,d*=f);let p=l*d-c*h,m=c*u-a*d,g=a*h-l*u;return f=p*p+m*m+g*g,f===0&&(c?a+=1e-6:l?c+=1e-6:l+=1e-6,p=l*d-c*h,m=c*u-a*d,g=a*h-l*u,f=p*p+m*m+g*g),f=1/Math.sqrt(f),p*=f,m*=f,g*=f,e[0]=p,e[1]=m,e[2]=g,e[3]=0,e[4]=h*g-d*m,e[5]=d*p-u*g,e[6]=u*m-h*p,e[7]=0,e[8]=u,e[9]=h,e[10]=d,e[11]=0,e[12]=i,e[13]=o,e[14]=s,e[15]=1,e}function cl(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e[3]=t[3]+n[3],e[4]=t[4]+n[4],e[5]=t[5]+n[5],e[6]=t[6]+n[6],e[7]=t[7]+n[7],e[8]=t[8]+n[8],e[9]=t[9]+n[9],e[10]=t[10]+n[10],e[11]=t[11]+n[11],e[12]=t[12]+n[12],e[13]=t[13]+n[13],e[14]=t[14]+n[14],e[15]=t[15]+n[15],e}function ul(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e[3]=t[3]-n[3],e[4]=t[4]-n[4],e[5]=t[5]-n[5],e[6]=t[6]-n[6],e[7]=t[7]-n[7],e[8]=t[8]-n[8],e[9]=t[9]-n[9],e[10]=t[10]-n[10],e[11]=t[11]-n[11],e[12]=t[12]-n[12],e[13]=t[13]-n[13],e[14]=t[14]-n[14],e[15]=t[15]-n[15],e}function n2(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*n,e[5]=t[5]*n,e[6]=t[6]*n,e[7]=t[7]*n,e[8]=t[8]*n,e[9]=t[9]*n,e[10]=t[10]*n,e[11]=t[11]*n,e[12]=t[12]*n,e[13]=t[13]*n,e[14]=t[14]*n,e[15]=t[15]*n,e}class vr extends Array{constructor(t=1,n=0,r=0,i=0,o=0,s=1,a=0,l=0,c=0,u=0,h=1,d=0,f=0,p=0,m=0,g=1){return super(t,n,r,i,o,s,a,l,c,u,h,d,f,p,m,g),this}get x(){return this[12]}get y(){return this[13]}get z(){return this[14]}get w(){return this[15]}set x(t){this[12]=t}set y(t){this[13]=t}set z(t){this[14]=t}set w(t){this[15]=t}set(t,n,r,i,o,s,a,l,c,u,h,d,f,p,m,g){return t.length?this.copy(t):(Uy(this,t,n,r,i,o,s,a,l,c,u,h,d,f,p,m,g),this)}translate(t,n=this){return Wy(this,n,t),this}rotate(t,n,r=this){return qy(this,r,t,n),this}scale(t,n=this){return Gy(this,n,typeof t=="number"?[t,t,t]:t),this}add(t,n){return n?cl(this,t,n):cl(this,this,t),this}sub(t,n){return n?ul(this,t,n):ul(this,this,t),this}multiply(t,n){return t.length?n?ll(this,t,n):ll(this,this,t):n2(this,this,t),this}identity(){return Hy(this),this}copy(t){return zy(this,t),this}fromPerspective({fov:t,aspect:n,near:r,far:i}={}){return Qy(this,t,n,r,i),this}fromOrthogonal({left:t,right:n,bottom:r,top:i,near:o,far:s}){return e2(this,t,n,r,i,o,s),this}fromQuaternion(t){return Jy(this,t),this}setPosition(t){return this.x=t[0],this.y=t[1],this.z=t[2],this}inverse(t=this){return $y(this,t),this}compose(t,n,r){return Zy(this,t,n,r),this}decompose(t,n,r){return Xy(this,t,n,r),this}getRotation(t){return Nu(t,this),this}getTranslation(t){return Yy(t,this),this}getScaling(t){return Vu(t,this),this}getMaxScaleOnAxis(){return Ky(this)}lookAt(t,n,r){return t2(this,t,n,r),this}determinant(){return Iu(this)}fromArray(t,n=0){return this[0]=t[n],this[1]=t[n+1],this[2]=t[n+2],this[3]=t[n+3],this[4]=t[n+4],this[5]=t[n+5],this[6]=t[n+6],this[7]=t[n+7],this[8]=t[n+8],this[9]=t[n+9],this[10]=t[n+10],this[11]=t[n+11],this[12]=t[n+12],this[13]=t[n+13],this[14]=t[n+14],this[15]=t[n+15],this}toArray(t=[],n=0){return t[n]=this[0],t[n+1]=this[1],t[n+2]=this[2],t[n+3]=this[3],t[n+4]=this[4],t[n+5]=this[5],t[n+6]=this[6],t[n+7]=this[7],t[n+8]=this[8],t[n+9]=this[9],t[n+10]=this[10],t[n+11]=this[11],t[n+12]=this[12],t[n+13]=this[13],t[n+14]=this[14],t[n+15]=this[15],t}}function r2(e,t,n="YXZ"){return n==="XYZ"?(e[1]=Math.asin(Math.min(Math.max(t[8],-1),1)),Math.abs(t[8])<.99999?(e[0]=Math.atan2(-t[9],t[10]),e[2]=Math.atan2(-t[4],t[0])):(e[0]=Math.atan2(t[6],t[5]),e[2]=0)):n==="YXZ"?(e[0]=Math.asin(-Math.min(Math.max(t[9],-1),1)),Math.abs(t[9])<.99999?(e[1]=Math.atan2(t[8],t[10]),e[2]=Math.atan2(t[1],t[5])):(e[1]=Math.atan2(-t[2],t[0]),e[2]=0)):n==="ZXY"?(e[0]=Math.asin(Math.min(Math.max(t[6],-1),1)),Math.abs(t[6])<.99999?(e[1]=Math.atan2(-t[2],t[10]),e[2]=Math.atan2(-t[4],t[5])):(e[1]=0,e[2]=Math.atan2(t[1],t[0]))):n==="ZYX"?(e[1]=Math.asin(-Math.min(Math.max(t[2],-1),1)),Math.abs(t[2])<.99999?(e[0]=Math.atan2(t[6],t[10]),e[2]=Math.atan2(t[1],t[0])):(e[0]=0,e[2]=Math.atan2(-t[4],t[5]))):n==="YZX"?(e[2]=Math.asin(Math.min(Math.max(t[1],-1),1)),Math.abs(t[1])<.99999?(e[0]=Math.atan2(-t[9],t[5]),e[1]=Math.atan2(-t[2],t[0])):(e[0]=0,e[1]=Math.atan2(t[8],t[10]))):n==="XZY"&&(e[2]=Math.asin(-Math.min(Math.max(t[4],-1),1)),Math.abs(t[4])<.99999?(e[0]=Math.atan2(t[6],t[5]),e[1]=Math.atan2(t[8],t[0])):(e[0]=Math.atan2(-t[9],t[10]),e[1]=0)),e}const hl=new vr;class i2 extends Array{constructor(t=0,n=t,r=t,i="YXZ"){super(t,n,r),this.order=i,this.onChange=()=>{},this._target=this;const o=["0","1","2"];return new Proxy(this,{set(s,a){const l=Reflect.set(...arguments);return l&&o.includes(a)&&s.onChange(),l}})}get x(){return this[0]}get y(){return this[1]}get z(){return this[2]}set x(t){this._target[0]=t,this.onChange()}set y(t){this._target[1]=t,this.onChange()}set z(t){this._target[2]=t,this.onChange()}set(t,n=t,r=t){return t.length?this.copy(t):(this._target[0]=t,this._target[1]=n,this._target[2]=r,this.onChange(),this)}copy(t){return this._target[0]=t[0],this._target[1]=t[1],this._target[2]=t[2],this.onChange(),this}reorder(t){return this._target.order=t,this.onChange(),this}fromRotationMatrix(t,n=this.order){return r2(this._target,t,n),this.onChange(),this}fromQuaternion(t,n=this.order,r){return hl.fromQuaternion(t),this._target.fromRotationMatrix(hl,n),r||this.onChange(),this}fromArray(t,n=0){return this._target[0]=t[n],this._target[1]=t[n+1],this._target[2]=t[n+2],this}toArray(t=[],n=0){return t[n]=this[0],t[n+1]=this[1],t[n+2]=this[2],t}}class s2{constructor(){this.parent=null,this.children=[],this.visible=!0,this.matrix=new vr,this.worldMatrix=new vr,this.matrixAutoUpdate=!0,this.worldMatrixNeedsUpdate=!1,this.position=new Ge,this.quaternion=new Fy,this.scale=new Ge(1),this.rotation=new i2,this.up=new Ge(0,1,0),this.rotation._target.onChange=()=>this.quaternion.fromEuler(this.rotation,!0),this.quaternion._target.onChange=()=>this.rotation.fromQuaternion(this.quaternion,void 0,!0)}setParent(t,n=!0){this.parent&&t!==this.parent&&this.parent.removeChild(this,!1),this.parent=t,n&&t&&t.addChild(this,!1)}addChild(t,n=!0){~this.children.indexOf(t)||this.children.push(t),n&&t.setParent(this,!1)}removeChild(t,n=!0){~this.children.indexOf(t)&&this.children.splice(this.children.indexOf(t),1),n&&t.setParent(null,!1)}updateMatrixWorld(t){this.matrixAutoUpdate&&this.updateMatrix(),(this.worldMatrixNeedsUpdate||t)&&(this.parent===null?this.worldMatrix.copy(this.matrix
97):this.worldMatrix.multiply(this.parent.worldMatrix,this.matrix),this.worldMatrixNeedsUpdate=!1,t=!0);for(let n=0,r=this.children.length;n<r;n++)this.children[n].updateMatrixWorld(t)}updateMatrix(){this.matrix.compose(this.quaternion,this.position,this.scale),this.worldMatrixNeedsUpdate=!0}traverse(t){if(!t(this))for(let n=0,r=this.children.length;n<r;n++)this.children[n].traverse(t)}decompose(){this.matrix.decompose(this.quaternion._target,this.position,this.scale),this.rotation.fromQuaternion(this.quaternion)}lookAt(t,n=!1){n?this.matrix.lookAt(this.position,t,this.up):this.matrix.lookAt(t,this.position,this.up),this.matrix.getRotation(this.quaternion._target),this.rotation.fromQuaternion(this.quaternion)}}function o2(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[4],e[4]=t[5],e[5]=t[6],e[6]=t[8],e[7]=t[9],e[8]=t[10],e}function a2(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=n+n,a=r+r,l=i+i,c=n*s,u=r*s,h=r*a,d=i*s,f=i*a,p=i*l,m=o*s,g=o*a,v=o*l;return e[0]=1-h-p,e[3]=u-v,e[6]=d+g,e[1]=u+v,e[4]=1-c-p,e[7]=f-m,e[2]=d-g,e[5]=f+m,e[8]=1-c-h,e}function l2(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function c2(e,t,n,r,i,o,s,a,l,c){return e[0]=t,e[1]=n,e[2]=r,e[3]=i,e[4]=o,e[5]=s,e[6]=a,e[7]=l,e[8]=c,e}function u2(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=1,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e}function h2(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],u=t[8],h=u*s-a*c,d=-u*o+a*l,f=c*o-s*l,p=n*h+r*d+i*f;return p?(p=1/p,e[0]=h*p,e[1]=(-u*r+i*c)*p,e[2]=(a*r-i*s)*p,e[3]=d*p,e[4]=(u*n-i*l)*p,e[5]=(-a*n+i*o)*p,e[6]=f*p,e[7]=(-c*n+r*l)*p,e[8]=(s*n-r*o)*p,e):null}function dl(e,t,n){let r=t[0],i=t[1],o=t[2],s=t[3],a=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=n[0],f=n[1],p=n[2],m=n[3],g=n[4],v=n[5],C=n[6],S=n[7],R=n[8];return e[0]=d*r+f*s+p*c,e[1]=d*i+f*a+p*u,e[2]=d*o+f*l+p*h,e[3]=m*r+g*s+v*c,e[4]=m*i+g*a+v*u,e[5]=m*o+g*l+v*h,e[6]=C*r+S*s+R*c,e[7]=C*i+S*a+R*u,e[8]=C*o+S*l+R*h,e}function d2(e,t,n){let r=t[0],i=t[1],o=t[2],s=t[3],a=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=n[0],f=n[1];return e[0]=r,e[1]=i,e[2]=o,e[3]=s,e[4]=a,e[5]=l,e[6]=d*r+f*s+c,e[7]=d*i+f*a+u,e[8]=d*o+f*l+h,e}function f2(e,t,n){let r=t[0],i=t[1],o=t[2],s=t[3],a=t[4],l=t[5],c=t[6],u=t[7],h=t[8],d=Math.sin(n),f=Math.cos(n);return e[0]=f*r+d*s,e[1]=f*i+d*a,e[2]=f*o+d*l,e[3]=f*s-d*r,e[4]=f*a-d*i,e[5]=f*l-d*o,e[6]=c,e[7]=u,e[8]=h,e}function p2(e,t,n){let r=n[0],i=n[1];return e[0]=r*t[0],e[1]=r*t[1],e[2]=r*t[2],e[3]=i*t[3],e[4]=i*t[4],e[5]=i*t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e}function m2(e,t){let n=t[0],r=t[1],i=t[2],o=t[3],s=t[4],a=t[5],l=t[6],c=t[7],u=t[8],h=t[9],d=t[10],f=t[11],p=t[12],m=t[13],g=t[14],v=t[15],C=n*a-r*s,S=n*l-i*s,R=n*c-o*s,P=r*l-i*a,j=r*c-o*a,b=i*c-o*l,M=u*m-h*p,O=u*g-d*p,_=u*v-f*p,V=h*g-d*m,N=h*v-f*m,W=d*v-f*g,k=C*W-S*N+R*V+P*_-j*O+b*M;return k?(k=1/k,e[0]=(a*W-l*N+c*V)*k,e[1]=(l*_-s*W-c*O)*k,e[2]=(s*N-a*_+c*M)*k,e[3]=(i*N-r*W-o*V)*k,e[4]=(n*W-i*_+o*O)*k,e[5]=(r*_-n*N-o*M)*k,e[6]=(m*b-g*j+v*P)*k,e[7]=(g*R-p*b-v*S)*k,e[8]=(p*j-m*R+v*C)*k,e):null}class g2 extends Array{constructor(t=1,n=0,r=0,i=0,o=1,s=0,a=0,l=0,c=1){return super(t,n,r,i,o,s,a,l,c),this}set(t,n,r,i,o,s,a,l,c){return t.length?this.copy(t):(c2(this,t,n,r,i,o,s,a,l,c),this)}translate(t,n=this){return d2(this,n,t),this}rotate(t,n=this){return f2(this,n,t),this}scale(t,n=this){return p2(this,n,t),this}multiply(t,n){return n?dl(this,t,n):dl(this,this,t),this}identity(){return u2(this),this}copy(t){return l2(this,t),this}fromMatrix4(t){return o2(this,t),this}fromQuaternion(t){return a2(this,t),this}fromBasis(t,n,r){return this.set(t[0],t[1],t[2],n[0],n[1],n[2],r[0],r[1],r[2]),this}inverse(t=this){return h2(this,t),this}getNormalMatrix(t){return m2(this,t),this}}let y2=0;class v2 extends s2{constructor(t,{geometry:n,program:r,mode:i=t.TRIANGLES,frustumCulled:o=!0,renderOrder:s=0}={}){super(),t.canvas||console.error("gl not passed as first argument to Mesh"),this.gl=t,this.id=y2++,this.geometry=n,this.program=r,this.mode=i,this.frustumCulled=o,this.renderOrder=s,this.modelViewMatrix=new vr,this.normalMatrix=new g2,this.beforeRenderCallbacks=[],this.afterRenderCallbacks=[]}onBeforeRender(t){return this.beforeRenderCallbacks.push(t),this}onAfterRender(t){return this.afterRenderCallbacks.push(t),this}draw({camera:t}={}){t&&(this.program.uniforms.modelMatrix||Object.assign(this.program.uniforms,{modelMatrix:{value:null},viewMatrix:{value:null},modelViewMatrix:{value:null},normalMatrix:{value:null},projectionMatrix:{value:null},cameraPosition:{value:null}}),this.program.uniforms.projectionMatrix.value=t.projectionMatrix,this.program.uniforms.cameraPosition.value=t.worldPosition,this.program.uniforms.viewMatrix.value=t.viewMatrix,this.modelViewMatrix.multiply(t.viewMatrix,this.worldMatrix),this.normalMatrix.getNormalMatrix(this.modelViewMatrix),this.program.uniforms.modelMatrix.value=this.worldMatrix,this.program.uniforms.modelViewMatrix.value=this.modelViewMatrix,this.program.uniforms.normalMatrix.value=this.normalMatrix),this.beforeRenderCallbacks.forEach(r=>r&&r({mesh:this,camera:t}));let n=this.program.cullFace&&this.worldMatrix.determinant()<0;this.program.use({flipFaces:n}),this.geometry.draw({mode:this.mode,program:this.program}),this.afterRenderCallbacks.forEach(r=>r&&r({mesh:this,camera:t}))}}class x2 extends fy{constructor(t,{attributes:n={}}={}){Object.assign(n,{position:{size:2,data:new Float32Array([-1,-1,3,-1,-1,3])},uv:{size:2,data:new Float32Array([0,0,2,0,0,2])}}),super(t,n)}}const fl=8,b2=e=>{const t=e.replace("#","").padEnd(6,"0"),n=parseInt(t.slice(0,2),16)/255,r=parseInt(t.slice(2,4),16)/255,i=parseInt(t.slice(4,6),16)/255;return[n,r,i]},w2=e=>{const t=(e&&e.length?e:["#4F46E5","#06B6D4","#E0F2FE"]).slice(0,fl),n=t.length,r=[];for(let o=0;o<fl;o++)r.push(b2(t[Math.min(o,t.length-1)]));const i=[0,0,0];for(let o=0;o<n;o++)i[0]+=r[o][0],i[1]+=r[o][1],i[2]+=r[o][2];return i[0]/=n,i[1]/=n,i[2]/=n,{arr:r,count:n,avg:i}},T2=e=>{switch(e){case"up":return[0,1];case"down":return[0,-1];case"left":return[-1,0];case"right":return[1,0];default:return[0,-1]}},S2=` 98attribute vec2 position; 99attribute vec2 uv; 100varying vec2 vUv; 101void main() { 102 vUv = uv; 103 gl_Position = vec4(position, 0.0, 1.0); 104} 105`,E2=` 106precision highp float; 107 108uniform vec3 iResolution; 109uniform vec2 iMouse; 110uniform float iTime; 111 112uniform vec3 uColor0; 113uniform vec3 uColor1; 114uniform vec3 uColor2; 115uniform vec3 uColor3; 116uniform vec3 uColor4; 117uniform vec3 uColor5; 118uniform vec3 uColor6; 119uniform vec3 uColor7; 120uniform int uColorCount; 121 122uniform vec3 uMouseColor; 123uniform vec2 uFlow; 124uniform float uSpeed; 125uniform float uScale; 126uniform float uTurbulence; 127uniform float uFluidity; 128uniform float uRimWidth; 129uniform float uSharpness; 130uniform float uShimmer; 131uniform float uGlow; 132uniform float uOpacity; 133uniform float uMouseEnabled; 134uniform float uMouseStrength; 135uniform float uMouseRadius; 136 137varying vec2 vUv; 138 139#define PI 3.14159265 140 141vec3 palette(float h) { 142 int count = uColorCount; 143 if (count < 1) count = 1; 144 int idx = int(floor(clamp(h, 0.0, 0.999999) * float(count)));
145 if (idx <= 0) return uColor0; 146 if (idx == 1) return uColor1; 147 if (idx == 2) return uColor2; 148 if (idx == 3) return uColor3; 149 if (idx == 4) return uColor4; 150 if (idx == 5) return uColor5; 151 if (idx == 6) return uColor6; 152 return uColor7; 153} 154 155float hash(vec3 p3) { 156 p3 = fract(p3 * 0.1031); 157 p3 += dot(p3, p3.zyx + 33.33); 158 return fract((p3.x + p3.y) * p3.z); 159} 160 161float smin(float a, float b, float k) { 162 float r = exp2(-a / k) + exp2(-b / k); 163 return -k * log2(r); 164} 165 166float sinlerp(float a, float b, float w) { 167 return mix(a, b, (sin(w * PI - PI / 2.0) + 1.0) / 2.0); 168} 169 170float vn(vec2 p, float s, float seed) { 171 vec2 cellp = floor(p / s); 172 vec2 relp = mod(p, s); 173 float g1 = hash(vec3(cellp, seed)); 174 float g2 = hash(vec3(cellp.x + 1.0, cellp.y, seed)); 175 float g3 = hash(vec3(cellp.x + 1.0, cellp.y + 1.0, seed)); 176 float g4 = hash(vec3(cellp.x, cellp.y + 1.0, seed)); 177 float bx = sinlerp(g1, g2, relp.x / s); 178 float tx = sinlerp(g4, g3, relp.x / s); 179 return sinlerp(bx, tx, relp.y / s); 180} 181 182float dbn(vec2 p, float s, float seed) { 183 float o = s / 2.0; 184 float n0 = vn(p, s, seed); 185 float n1 = vn(p + vec2(o, o), s, seed + 0.1); 186 float n2 = vn(p + vec2(-o, o), s, seed + 0.2); 187 float n3 = vn(p + vec2(o, -o), s, seed + 0.3); 188 float n4 = vn(p + vec2(-o, -o), s, seed + 0.4); 189 return (2.0 * n0 + 1.5 * n1 + 1.25 * n2 + 1.125 * n3 + n4) / 7.0; 190} 191 192void mainImage(out vec4 fragColor, in vec2 fragCoord) { 193 float ref = 700.0 / max(uScale, 0.05); 194 vec2 p = fragCoord / iResolution.y * ref; 195 196 float spd = 200.0 * uSpeed; 197 float t = iTime; 198 199 vec2 dir = uFlow; 200 vec2 perp = vec2(-dir.y, dir.x); 201 202 float distort1 = vn(p + perp * (t * spd), 60.0, 10.0) * 50.0 * uTurbulence; 203 float distort2 = vn(p - perp * (t * spd), 120.0, 15.0) * 100.0 * uTurbulence; 204 205 float peaks = dbn(p + distort1 + dir * (t * spd * 0.5), 40.0, 1.0); 206 float peaks2 = dbn(p + distort2 - dir * (t * spd * 0.5), 40.0, 0.0); 207 208 float mapeaks = smin(peaks, peaks2, max(uFluidity, 0.001)); 209 210 float mGlow = 0.0; 211 if (uMouseEnabled > 0.5) { 212 vec2 mp = iMouse / iResolution.y * ref; 213 float md = length(p - mp) / ref; 214 float rr = max(uMouseRadius, 0.02); 215 mGlow = exp(-md * md / (rr * rr)) * uMouseStrength; 216 } 217 218 float band = (uRimWidth - abs((mapeaks - 0.4) * 2.0)) * 5.0; 219 float ltn = clamp(band - vn(p + dir * (t * spd * 0.5), 60.0, 12.0) * uShimmer, 0.0, 1.0); 220 ltn = pow(ltn, uSharpness) * uGlow; 221 ltn *= clamp(1.0 - mGlow, 0.0, 1.0); 222 223 float h = clamp(0.5 + (peaks - peaks2) * 0.8, 0.0, 1.0); 224 vec3 col = palette(h); 225 226 vec3 outc = col * ltn; 227 float a = clamp(max(outc.r, max(outc.g, outc.b)), 0.0, 1.0); 228 fragColor = vec4(outc, a * uOpacity); 229} 230 231void main() { 232 vec4 color; 233 mainImage(color, vUv * iResolution.xy); 234 gl_FragColor = color; 235} 236`,C2=({className:e,dpr:t,paused:n=!1,colors:r=["#ffffff","#ffffff","#ffffff"],speed:i=.5,scale:o=1.6,turbulence:s=1,fluidity:a=.1,rimWidth:l=.2,sharpness:c=2.5,shimmer:u=1.5,glow:h=2,flowDirection:d="down",opacity:f=1,mouseInteraction:p=!0,mouseStrength:m=1,mouseRadius:g=.35,mouseDampening:v=.15,mixBlendMode:C})=>{const S=w.useRef(null),R=w.useRef(null),P=w.useRef(null),j=w.useRef(null),b=w.useRef(null),M=w.useRef(null),O=w.useRef([0,0]),_=w.useRef(0);return w.useEffect(()=>{const V=S.current;if(!V)return;const N=new by({dpr:t??(typeof window<"u"&&window.devicePixelRatio||1),alpha:!0,antialias:!0});M.current=N;const W=N.gl,k=W.canvas;W.clearColor(0,0,0,0),k.style.width="100%",k.style.height="100%",k.style.display="block",V.appendChild(k);const{arr:H,count:re,avg:me}=w2(r),G={iResolution:{value:[W.drawingBufferWidth,W.drawingBufferHeight,1]},iMouse:{value:[0,0]},iTime:{value:0},uColor0:{value:H[0]},uColor1:{value:H[1]},uColor2:{value:H[2]},uColor3:{value:H[3]},uColor4:{value:H[4]}
236,uColor5:{value:H[5]},uColor6:{value:H[6]},uColor7:{value:H[7]},uColorCount:{value:re},uMouseColor:{value:me},uFlow:{value:T2(d)},uSpeed:{value:i},uScale:{value:o},uTurbulence:{value:s},uFluidity:{value:a},uRimWidth:{value:l},uSharpness:{value:c},uShimmer:{value:u},uGlow:{value:h},uOpacity:{value:f},uMouseEnabled:{value:p?1:0},uMouseStrength:{value:m},uMouseRadius:{value:g}},ue=new my(W,{vertex:S2,fragment:E2,uniforms:G});P.current=ue;const ye=new x2(W);b.current=ye;const T=new v2(W,{geometry:ye,program:ue});j.current=T;const D=()=>{const Y=V.getBoundingClientRect();N.setSize(Y.width,Y.height),G.iResolution.value=[W.drawingBufferWidth,W.drawingBufferHeight,1]};D();const K=new ResizeObserver(D);K.observe(V);const X=Y=>{const ee=k.getBoundingClientRect(),xe=N.dpr||1,he=(Y.clientX-ee.left)*xe,Qe=(ee.height-(Y.clientY-ee.top))*xe;O.current=[he,Qe],v<=0&&(G.iMouse.value=[he,Qe])};p&&k.addEventListener("pointermove",X);const J=Y=>{if(R.current=requestAnimationFrame(J),G.iTime.value=Y*.001,v>0){_.current||(_.current=Y);const ee=(Y-_.current)/1e3;_.current=Y;const xe=Math.max(1e-4,v);let he=1-Math.exp(-ee/xe);he>1&&(he=1);const Qe=O.current,Lt=G.iMouse.value;Lt[0]+=(Qe[0]-Lt[0])*he,Lt[1]+=(Qe[1]-Lt[1])*he}else _.current=Y;if(!n&&P.current&&j.current)try{N.render({scene:j.current})}catch(ee){console.error(ee)}};return R.current=requestAnimationFrame(J),()=>{R.current&&cancelAnimationFrame(R.current),p&&k.removeEventListener("pointermove",X),K.disconnect(),k.parentElement===V&&V.removeChild(k);const Y=(ee,xe)=>{const he=ee&&ee[xe];typeof he=="function"&&he.call(ee)};Y(P.current,"remove"),Y(b.current,"remove"),Y(j.current,"remove"),Y(M.current,"destroy"),P.current=null,b.current=null,j.current=null,M.current=null}},[t,n,r,i,o,s,a,l,c,u,h,d,f,p,m,g,v]),y.jsx("div",{ref:S,className:`w-full h-full overflow-hidden relative ${e??""}`,style:{...C&&{mixBlendMode:C}}})},R2=()=>y.jsxs("section",{id:"home",className:"relative h-screen w-full overflow-hidden",children:[y.jsx("div",{className:"absolute inset-0 z-0",children:y.jsx(C2,{colors:["#00ffc8","#00e6b4","#00cc9e"],speed:.5,scale:1.6,turbulence:1,fluidity:.1,rimWidth:.2,sharpness:2.5,shimmer:1.5,glow:2,flowDirection:"down",opacity:1,mouseInteraction:!0,mouseStrength:1,mouseRadius:.35,className:"w-full h-full"})}),y.jsxs("div",{className:"absolute inset-0 z-10 flex flex-col items-center justify-center text-center px-6",children:[y.jsxs(ve.h1,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1,ease:"easeOut"},className:"text-4xl sm:text-5xl md:text-7xl font-black tracking-tight text-white drop-shadow-xl",children:["The World is ",y.jsx("span",{className:"text-green-300",children:"Open"})," Source."]}),y.jsx(ve.p,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1,delay:.35,ease:"easeOut"},className:"mt-2 text-sm sm:text-base md:text-lg text-gray-300 max-w-3xl drop-shadow-sm",children:"Full-stack developer ⢠DevOps ⢠Flutter Developer ⢠Linux & Networking"}),y.jsx(ve.button,{initial:{opacity:0,y:40},animate:{opacity:1,y:0},transition:{duration:1,delay:.55,ease:"easeOut"},whileHover:{scale:1.05},whileTap:{scale:.95},onClick:()=>{var e;return(e=document.getElementById("projects"))==null?void 0:e.scrollIntoView({behavior:"smooth"})},"aria-label":"see projects",className:"relative mt-8 sm:mt-10 px-6 sm:px-7 py-2 sm:py-3 rounded-md bg-gray-900 border border-gray-600 text-green-200 font-mono font-semibold tracking-wider shadow-[0_4px_0_#166534,0_6px_0_#0f172a] hover:shadow-[0_2px_0_#166534,0_4px_0_#0f172a] active:shadow-[0_0px_0_#166534,0_2px_0_#0f172a] active:translate-y-1 transition-all",children:"See Projects"})]}),y.jsx(ve.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:2.2,duration:.8},className:"absolute bottom-6 left-1/2 -translate-x-1/2 z-10",children:y.jsx(Kg,{size:32,className:"text-green-300 animate-bounce"})})]});var Fu={color:void 0,size:void 0,className:void 0,style:void 0,attr:void 0},pl=Ee.createContext&&Ee.createContext(Fu),A2=["attr","size","title"];function P2(e,t){if(e==null)return{};var n,r,i=M2(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r<o.length;r++)n=o[r],t.indexOf(n)===-1&&{}.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}function M2(e,t){if(e==null)return{};var n={};for(var r in e)if({}.hasOwnProperty.call(e,r)){if(t.indexOf(r)!==-1)continue;n[r]=e[r]}return n}function xr(){return xr=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)({}).hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},xr.apply(null,arguments)}function ml(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),n.push.apply(n,r)}return n}function br(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};
vendor: 4,710 bytes, line 236
236t%2?ml(Object(n),!0).forEach(function(r){_2(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ml(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function _2(e,t,n){return(t=D2(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function D2(e){var t=L2(e,"string");return typeof t=="symbol"?t:t+""}function L2(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t);if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Bu(e){return e&&e.map((t,n)=>Ee.createElement(t.tag,br({key:n},t.attr),Bu(t.child)))}function Ce(e){return t=>Ee.createElement(j2,xr({attr:br({},e.attr)},t),Bu(e.child))}function j2(e){var t=n=>{var{attr:r,size:i,title:o}=e,s=P2(e,A2),a=i||n.size||"1em",l;return n.className&&(l=n.className),e.className&&(l=(l?l+" ":"")+e.className),Ee.createElement("svg",xr({stroke:"currentColor",fill:"currentColor",strokeWidth:"0"},n.attr,r,s,{className:l,style:br(br({color:e.color||n.color},n.style),e.style),height:a,width:a,xmlns:"http://www.w3.org/2000/svg"}),o&&Ee.createElement("title",null,o),e.children)};return pl!==void 0?Ee.createElement(pl.Consumer,null,n=>t(n)):t(Fu)}function O2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M1.125 0C.502 0 0 .502 0 1.125v21.75C0 23.498.502 24 1.125 24h21.75c.623 0 1.125-.502 1.125-1.125V1.125C24 .502 23.498 0 22.875 0zm17.363 9.75c.612 0 1.154.037 1.627.111a6.38 6.38 0 0 1 1.306.34v2.458a3.95 3.95 0 0 0-.643-.361 5.093 5.093 0 0 0-.717-.26 5.453 5.453 0 0 0-1.426-.2c-.3 0-.573.028-.819.086a2.1 2.1 0 0 0-.623.242c-.17.104-.3.229-.393.374a.888.888 0 0 0-.14.49c0 .196.053.373.156.529.104.156.252.304.443.444s.423.276.696.41c.273.135.582.274.926.416.47.197.892.407 1.266.628.374.222.695.473.963.753.268.279.472.598.614.957.142.359.214.776.214 1.253 0 .657-.125 1.21-.373 1.656a3.033 3.033 0 0 1-1.012 1.085 4.38 4.38 0 0 1-1.487.596c-.566.12-1.163.18-1.79.18a9.916 9.916 0 0 1-1.84-.164 5.544 5.544 0 0 1-1.512-.493v-2.63a5.033 5.033 0 0 0 3.237 1.2c.333 0 .624-.03.872-.09.249-.06.456-.144.623-.25.166-.108.29-.234.373-.38a1.023 1.023 0 0 0-.074-1.089 2.12 2.12 0 0 0-.537-.5 5.597 5.597 0 0 0-.807-.444 27.72 27.72 0 0 0-1.007-.436c-.918-.383-1.602-.852-2.053-1.405-.45-.553-.676-1.222-.676-2.005 0-.614.123-1.141.369-1.582.246-.441.58-.804 1.004-1.089a4.494 4.494 0 0 1 1.47-.629 7.536 7.536 0 0 1 1.77-.201zm-15.113.188h9.563v2.166H9.506v9.646H6.789v-9.646H3.375z"},child:[]}]})(e)}function k2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.001,4.8c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 C13.666,10.618,15.027,12,18.001,12c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C16.337,6.182,14.976,4.8,12.001,4.8z M6.001,12c-3.2,0-5.2,1.6-6,4.8c1.2-1.6,2.6-2.2,4.2-1.8c0.913,0.228,1.565,0.89,2.288,1.624 c1.177,1.194,2.538,2.576,5.512,2.576c3.2,0,5.2-1.6,6-4.8c-1.2,1.6-2.6,2.2-4.2,1.8c-0.913-0.228-1.565-0.89-2.288-1.624 C10.337,13.382,8.976,12,6.001,12z"},child:[]}]})(e)}function I2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.23 12.004a2.236 2.236 0 0 1-2.235 2.236 2.236 2.236 0 0 1-2.236-2.236 2.236 2.236 0 0 1 2.235-2.236 2.236 2.236 0 0 1 2.236 2.236zm2.648-10.69c-1.346 0-3.107.96-4.888 2.622-1.78-1.653-3.542-2.602-4.887-2.602-.41 0-.783.093-1.106.278-1.375.793-1.683 3.264-.973 6.365C1.98 8.917 0 10.42 0 12.004c0 1.59 1.99 3.097 5.043 4.03-.704 3.113-.39 5.588.988 6.38.32.187.69.275 1.102.275 1.345 0 3.107-.96 4.888-2.624 1.78 1.654 3.542 2.603 4.887 2.603.41 0 .783-.09 1.106-.275 1.374-.792 1.683-3.263.973-6.365C22.02 15.096 24 13.59 24 12.004c0-1.59-1.99-3.097-5.043-4.032.704-3.11.39-5.587-.988-6.38-.318-.184-.688-.277-1.092-.278zm-.005 1.09v.006c.225 0 .406.044.558.127.666.382.955 1.835.73 3.704-.054.46-.142.945-.25 1.44-.96-.236-2.006-.417-3.107-.534-.66-.905-1.345-1.727-2.035-2.447 1.592-1.48 3.087-2.292 4.105-2.295zm-9.77.02c1.012 0 2.514.808 4.11 2.28-.686.72-1.37 1.537-2.02 2.442-1.107.117-2.154.298-3.113.538-.112-.49-.195-.964-.254-1.42-.23-1.868.054-3.32.714-3.707.19-.09.4-.127.563-.132zm4.882 3.05c.455.468.91.992 1.36 1.564-.44-.02-.89-.034-1.345-.034-.46 0-.915.01-1.36.034.44-.572.895-1.096 1.345-1.565zM12 8.1c.74 0 1.477.034 2.202.093.406.582.802 1.203 1.183 1.86.372.64.71 1.29 1.018 1.946-.308.655-.646 1.31-1.013 1.95-.38.66-.773 1.288-1.18 1.87-.728.063-1.466.098-2.21.098-.74 0-1.477-.035-2.202-.093-.406-.582-.802-1.204-1.
236183-1.86-.372-.64-.71-1.29-1.018-1.946.303-.657.646-1.313 1.013-1.954.38-.66.773-1.286 1.18-1.868.728-.064 1.466-.098 2.21-.098zm-3.635.254c-.24.377-.48.763-.704 1.16-.225.39-.435.782-.635 1.174-.265-.656-.49-1.31-.676-1.947.64-.15 1.315-.283 2.015-.386zm7.26 0c.695.103 1.365.23 2.006.387-.18.632-.405 1.282-.66 1.933-.2-.39-.41-.783-.64-1.174-.225-.392-.465-.774-.705-1.146zm3.063.675c.484.15.944.317 1.375.498 1.732.74 2.852 1.708 2.852 2.476-.005.768-1.125 1.74-2.857 2.475-.42.18-.88.342-1.355.493-.28-.958-.646-1.956-1.1-2.98.45-1.017.81-2.01 1.085-2.964zm-13.395.004c.278.96.645 1.957 1.1 2.98-.45 1.017-.812 2.01-1.086 2.964-.484-.15-.944-.318-1.37-.5-1.732-.737-2.852-1.706-2.852-2.474 0-.768 1.12-1.742 2.852-2.476.42-.18.88-.342 1.356-.494zm11.678 4.28c.265.657.49 1.312.676 1.948-.64.157-1.316.29-2.016.39.24-.375.48-.762.705-1.158.225-.39.435-.788.636-1.18zm-9.945.02c.2.392.41.783.64 1.175.23.39.465.772.705 1.143-.695-.102-1.365-.23-2.006-.386.18-.63.406-1.282.66-1.933zM17.92 16.32c.112.493.2.968.254 1.423.23 1.868-.054 3.32-.714 3.708-.147.09-.338.128-.563.128-1.012 0-2.514-.807-4.11-2.28.686-.72 1.37-1.536 2.02-2.44 1.107-.118 2.154-.3 3.113-.54zm-11.83.01c.96.234 2.006.415 3.107.532.66.905 1.345 1.727 2.035 2.446-1.595 1.483-3.092 2.295-4.11 2.295-.22-.005-.406-.05-.553-.132-.666-.38-.955-1.834-.73-3.703.054-.46.142-.944.25-1.438zm4.56.64c.44.02.89.034 1.345.034.46 0 .915-.01 1.36-.034-.44.572-.895 1.095-1.345 1.565-.455-.47-.91-.993-1.36-1.565z"},child:[]}]})(e)}function V2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.25.18l.9.2.73.26.59.3.45.32.34.34.25.34.16.33.1.3.04.26.02.2-.01.13V8.5l-.05.63-.13.55-.21.46-.26.38-.3.31-.33.25-.35.19-.35.14-.33.1-.3.07-.26.04-.21.02H8.77l-.69.05-.59.14-.5.22-.41.27-.33.32-.27.35-.2.36-.15.37-.1.35-.07.32-.04.27-.02.21v3.06H3.17l-.21-.03-.28-.07-.32-.12-.35-.18-.36-.26-.36-.36-.35-.46-.32-.59-.28-.73-.21-.88-.14-1.05-.05-1.23.06-1.22.16-1.04.24-.87.32-.71.36-.57.4-.44.42-.33.42-.24.4-.16.36-.1.32-.05.24-.01h.16l.06.01h8.16v-.83H6.18l-.01-2.75-.02-.37.05-.34.11-.31.17-.28.25-.26.31-.23.38-.2.44-.18.51-.15.58-.12.64-.1.71-.06.77-.04.84-.02 1.27.05zm-6.3 1.98l-.23.33-.08.41.08.41.23.34.33.22.41.09.41-.09.33-.22.23-.34.08-.41-.08-.41-.23-.33-.33-.22-.41-.09-.41.09zm13.09 3.95l.28.06.32.12.35.18.36.27.36.35.35.47.32.59.28.73.21.88.14 1.04.05 1.23-.06 1.23-.16 1.04-.24.86-.32.71-.36.57-.4.45-.42.33-.42.24-.4.16-.36.09-.32.05-.24.02-.16-.01h-8.22v.82h5.84l.01 2.76.02.36-.05.34-.11.31-.17.29-.25.25-.31.24-.38.2-.44.17-.51.15-.58.13-.64.09-.71.07-.77.04-.84.01-1.27-.04-1.07-.14-.9-.2-.73-.25-.59-.3-.45-.33-.34-.34-.25-.34-.16-.33-.1-.3-.04-.25-.02-.2.01-.13v-5.34l.05-.64.13-.54.21-.46.26-.38.3-.32.33-.24.35-.2.35-.14.33-.1.3-.06.26-.04.21-.02.13-.01h5.84l.69-.05.59-.14.5-.21.41-.28.33-.32.27-.35.2-.36.15-.36.1-.35.07-.32.04-.28.02-.21V6.07h2.09l.14.01zm-6.47 14.25l-.23.33-.08.41.08.41.23.33.33.23.41.08.41-.08.33-.23.23-.33.08-.41-.08-.41-.23-.33-.33-.23-.41-.08-.41.08z"},child:[]}]})(e)}function N2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M18.665 21.978C16.758 23.255 14.465 24 12 24 5.377 24 0 18.623 0 12S5.377 0 12 0s12 5.377 12 12c0 3.583-1.574 6.801-4.067 9.001L9.219 7.2H7.2v9.596h1.615V9.251l9.85 12.727Zm-3.332-8.533 1.6 2.061V7.2h-1.6v6.245Z"},child:[]}]})(e)}function F2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M16.405 5.501c-.115 0-.193.014-.274.033v.013h.014c.054.104.146.18.214.273.054.107.1.214.154.32l.014-.015c.094-.066.14-.172.14-.333-.04-.047-.046-.094-.08-.14-.04-.067-.126-.1-.18-.153zM5.77 18.695h-.927a50.854 50.854 0 00-.27-4.41h-.008l-1.41 4.41H2.45l-1.4-4.41h-.01a72.892 72.892 0 00-.195 4.41H0c.055-1.966.192-3.81.41-5.53h1.15l1.335 4.064h.008l1.347-4.064h1.095c.242 2.015.384 3.86.428 5.53zm4.017-4.08c-.378 2.045-.876 3.533-1.492 4.46-.482.716-1.01 1.073-1.583 1.073-.153 0-.34-.046-.566-.138v-.494c.11.017.24.026.386.026.268 0 .483-.075.647-.222.197-.18.295-.382.295-.605 0-.155-.077-.47-.23-.944L6.23 14.615h.91l.727 2.36c.164.536.233.91.205 1.123.4-1.064.678-2.227.835-3.483zm12.325 4.08h-2.63v-5.53h.885v4.85h1.745zm-3.32.135l-1.016-.5c.09-.076.177-.158.255-.25.433-.506.648-1.258.648-2.253 0-1.83-.718-2.746-2.155-2.746-.704 0-1.254.232-1.65.697-.43.508-.646 1.256-.646 2.245 0 .972.19 1.686.574 2.14.35.41.877.615 1.583.615.264 0 .506-.033.725-.098l1.325.772.36-.
236622zM15.5 17.588c-.225-.36-.337-.94-.337-1.736 0-1.393.424-2.09 1.27-2.09.443 0 .77.167.977.5.224.362.336.936.336 1.723 0 1.404-.424 2.108-1.27 2.108-.445 0-.77-.167-.978-.5zm-1.658-.425c0 .47-.172.856-.516 1.156-.344.3-.803.45-1.384.45-.543 0-1.064-.172-1.573-.515l.237-.476c.438.22.833.328 1.19.328.332 0 .593-.073.783-.22a.754.754 0 00.3-.615c0-.33-.23-.61-.648-.845-.388-.213-1.163-.657-1.163-.657-.422-.307-.632-.636-.632-1.177 0-.45.157-.81.47-1.085.315-.278.72-.415 1.22-.415.512 0 .98.136 1.4.41l-.213.476a2.726 2.726 0 00-1.064-.23c-.283 0-.502.068-.654.206a.685.685 0 00-.248.524c0 .328.234.61.666.85.393.215 1.187.67 1.187.67.433.305.648.63.648 1.168zm9.382-5.852c-.535-.014-.95.04-1.297.188-.1.04-.26.04-.274.167.055.053.063.14.11.214.08.134.218.313.346.407.14.11.28.216.427.31.26.16.555.255.81.416.145.094.293.213.44.313.073.05.12.14.214.172v-.02c-.046-.06-.06-.147-.105-.214-.067-.067-.134-.127-.2-.193a3.223 3.223 0 00-.695-.675c-.214-.146-.682-.35-.77-.595l-.013-.014c.146-.013.32-.066.46-.106.227-.06.435-.047.67-.106.106-.027.213-.06.32-.094v-.06c-.12-.12-.21-.283-.334-.395a8.867 8.867 0 00-1.104-.823c-.21-.134-.476-.22-.697-.334-.08-.04-.214-.06-.26-.127-.12-.146-.19-.34-.275-.514a17.69 17.69 0 01-.547-1.163c-.12-.262-.193-.523-.34-.763-.69-1.137-1.437-1.826-2.586-2.5-.247-.14-.543-.2-.856-.274-.167-.008-.334-.02-.5-.027-.11-.047-.216-.174-.31-.235-.38-.24-1.364-.76-1.644-.072-.18.434.267.862.422 1.082.115.153.26.328.34.5.047.116.06.235.107.356.106.294.207.622.347.897.073.14.153.287.247.413.054.073.146.107.167.227-.094.136-.1.334-.154.5-.24.757-.146 1.693.194 2.25.107.166.362.534.703.393.3-.12.234-.5.32-.835.02-.08.007-.133.048-.187v.015c.094.188.188.367.274.555.206.328.566.668.867.895.16.12.287.328.487.402v-.02h-.015c-.043-.058-.1-.086-.154-.133a3.445 3.445 0 01-.35-.4 8.76 8.76 0 01-.747-1.218c-.11-.21-.202-.436-.29-.643-.04-.08-.04-.2-.107-.24-.1.146-.247.273-.32.453-.127.288-.14.642-.188 1.01-.027.007-.014 0-.027.014-.214-.052-.287-.274-.367-.46-.2-.475-.233-1.238-.06-1.785.047-.14.247-.582.167-.716-.042-.127-.174-.2-.247-.303a2.478 2.478 0 01-.24-.427c-.16-.374-.24-.788-.414-1.162-.08-.173-.22-.354-.334-.513-.127-.18-.267-.307-.368-.52-.033-.073-.08-.194-.027-.274.014-.054.042-.075.094-.09.088-.072.335.022.422.062.247.1.455.194.662.334.094.066.195.193.315.226h.14c.214.047.455.014.655.073.355.114.675.28.962.46a5.953 5.953 0 012.085 2.286c.08.154.115.295.188.455.14.33.313.663.455.982.14.315.275.636.476.897.1.14.502.213.682.286.133.06.34.115.46.188.23.14.454.3.67.454.11.076.443.243.463.378z"},child:[]}]})(e)}function B2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12.504 0c-.155 0-.315.008-.48.021-4.226.333-3.105 4.807-3.17 6.298-.076 1.092-.3 1.953-1.05 3.02-.885 1.051-2.127 2.75-2.716 4.521-.278.832-.41 1.684-.287 2.489a.424.424 0 00-.11.135c-.26.268-.45.6-.663.839-.199.199-.485.267-.797.4-.313.136-.658.269-.864.68-.09.189-.136.394-.132.602 0 .199.027.4.055.536.058.399.116.728.04.97-.249.68-.28 1.145-.106 1.484.174.334.535.47.94.601.81.2 1.91.135 2.774.6.926.466 1.866.67 2.616.47.526-.116.97-.464 1.208-.946.587-.003 1.23-.269 2.26-.334.699-.058 1.574.267 2.577.2.025.134.063.198.114.333l.003.003c.391.778 1.113 1.132 1.884 1.071.771-.06 1.592-.536 2.257-1.306.631-.765 1.683-1.084 2.378-1.503.348-.199.629-.469.649-.853.023-.4-.2-.811-.714-1.376v-.097l-.003-.003c-.17-.2-.25-.535-.338-.926-.085-.401-.182-.786-.492-1.046h-.003c-.059-.054-.123-.067-.188-.135a.357.357 0 00-.19-.064c.431-1.278.264-2.55-.173-3.694-.533-1.41-1.465-2.638-2.175-3.483-.796-1.005-1.576-1.957-1.56-3.368.026-2.152.236-6.133-3.544-6.139zm.529 3.405h.013c.213 0 .396.062.584.198.19.135.33.332.438.533.105.259.158.459.166.724 0-.02.006-.04.006-.06v.105a.086.086 0 01-.004-.021l-.004-.024a1.807 1.807 0 01-.15.706.953.953 0 01-.213.335.71.71 0 00-.088-.042c-.104-.045-.198-.064-.284-.133a1.312 1.312 0 00-.22-.066c.05-.06.146-.133.183-.198.053-.128.082-.264.088-.402v-.02a1.21 1.21 0 00-.061-.4c-.045-.134-.101-.2-.183-.333-.084-.066-.167-.132-.267-.132h-.016c-.093 0-.176.03-.262.132a.8.8 0 00-.205.334 1.18 1.18 0 00-.09.4v.019c.002.089.008.179.02.267-.193-.067-.438-.135-.607-.202a1.635 1.635 0 01-.018-.2v-.02a1.772 1.772 0 01.15-.768c.082-.22.232-.406.43-.533a.985.985 0 01.594-.2zm-2.962.059h.036c.142 0 .27.048.399.135.146.129.264.288.344.465.09.199.14.4.153.667v.004c.007.134.006.2-.002.266v.08c-.03.007-.056.018-.083.024-.152.055-.274.135-.393.2.012-.09.013-.18.003-.267v-.015c-.012-.133-.04-.2-.082-.333a.613.613 0 00-.166-.267.248.248 0 00-.183-.064h-.021c-.071.006-.13.04-.186.132a.552.552 0 00-.12.27.944.944 0 00-.023.33v.015c.012.135.037.2.08.334.046.134.098.2.166.268.01.009.02.018.034.024-.07.057-.117.07-.176.136a.304.304 0 01-.131.068 2.62 2.62 0 01-.275-.402 1.772 1.772 0 01-.155-.667 1.759 1.759 0 01.08-.668 1.43 1.43 0 01.283-.535c.128-.133.26-.2.418-.2zm1.37 1.706c.332 0 .733.065 1.216.399.293.2.523.269 1.052.468h.003c.255.136.405.266.478.399v-.131a.571.571 0 01.016.47c-.123.31-.516.643-1.063.842v.002c-.268.135-.501.333-.775.465-.276.135-.588.292-1.012.267a1.139 1.139 0 01-.448-.067 3.566 3.566 0 01-.322-.198c-.195-.135-.363-.332-.612-.465v-.005h-.005c-.4-.246-.616-.512-.686-.71-.07-.268-.005-.47.193-.6.224-.135.38-.271.483-.336.104-.074.143-.102.176-.131h.002v-.003c.169-.202.436-.47.839-.601.139-.036.294-.065.466-.065zm2.8 2.142c.358 1.417 1.196 3.475 1.735 4.473.286.534.855 1.659 1.102 3.024.156-.005.33.018.513.064.646-1.671-.546-3.467-1.089-3.966-.22-.2-.232-.335-.123-.335.59.534 1.365 1.572 1.646 2.757.13.535.16 1.104.021 1.67.067.028.135.06.205.067 1.032.534 1.413.938 1.23 1.537v-.043c-.06-.003-.12 0-.18 0h-.016c.151-.467-.182-.825-1.065-1.224-.915-.4-1.646-.336-1.77.465-.008.043-.013.066-.018.135-.
236068.023-.139.053-.209.064-.43.268-.662.669-.793 1.187-.13.533-.17 1.156-.205 1.869v.003c-.02.334-.17.838-.319 1.35-1.5 1.072-3.58 1.538-5.348.334a2.645 2.645 0 00-.402-.533 1.45 1.45 0 00-.275-.333c.182 0 .338-.03.465-.067a.615.615 0 00.314-.334c.108-.267 0-.697-.345-1.163-.345-.467-.931-.995-1.788-1.521-.63-.4-.986-.87-1.15-1.396-.165-.534-.143-1.085-.015-1.645.245-1.07.873-2.11 1.274-2.763.107-.065.037.135-.408.974-.396.751-1.14 2.497-.122 3.854a8.123 8.123 0 01.647-2.876c.564-1.278 1.743-3.504 1.836-5.268.048.036.217.135.289.202.218.133.38.333.59.465.21.201.477.335.876.335.039.003.075.006.11.006.412 0 .73-.134.997-.268.29-.134.52-.334.74-.4h.005c.467-.135.835-.402 1.044-.7zm2.185 8.958c.037.6.343 1.245.882 1.377.588.134 1.434-.333 1.791-.765l.211-.01c.315-.007.577.01.847.268l.003.003c.208.199.305.53.391.876.085.4.154.78.409 1.066.486.527.645.906.636 1.14l.003-.007v.018l-.003-.012c-.015.262-.185.396-.498.595-.63.401-1.746.712-2.457 1.57-.618.737-1.37 1.14-2.036 1.191-.664.053-1.237-.2-1.574-.898l-.005-.003c-.21-.4-.12-1.025.056-1.69.176-.668.428-1.344.463-1.897.037-.714.076-1.335.195-1.814.12-.465.308-.797.641-.984l.045-.022zm-10.814.049h.01c.053 0 .105.005.157.014.376.055.706.333 1.023.752l.91 1.664.003.003c.243.533.754 1.064 1.189 1.637.434.598.77 1.131.729 1.57v.006c-.057.744-.48 1.148-1.
236125 1.294-.645.135-1.52.002-2.395-.464-.968-.536-2.118-.469-2.857-.602-.369-.066-.61-.2-.723-.4-.11-.2-.113-.602.123-1.23v-.004l.002-.003c.117-.334.03-.752-.027-1.118-.055-.401-.083-.71.043-.94.16-.334.396-.4.69-.533.294-.135.64-.202.915-.47h.002v-.002c.256-.268.445-.601.668-.838.19-.201.38-.336.663-.336zm7.159-9.074c-.435.201-.945.535-1.488.535-.542 0-.97-.267-1.28-.466-.154-.134-.28-.268-.373-.335-.164-.134-.144-.333-.074-.333.109.016.129.134.199.2.096.066.215.2.36.333.292.2.68.467 1.167.467.485 0 1.053-.267 1.398-.466.195-.135.445-.334.648-.467.156-.136.149-.267.279-.267.128.016.034.134-.147.332a8.097 8.097 0 01-.69.468zm-1.082-1.583V5.64c-.006-.02.013-.042.029-.05.074-.043.18-.027.26.004.063 0 .16.067.15.135-.006.049-.085.066-.135.066-.055 0-.092-.043-.141-.068-.052-.018-.146-.008-.163-.065zm-.551 0c-.02.058-.113.049-.166.066-.047.025-.086.068-.14.068-.05 0-.13-.02-.136-.068-.01-.066.088-.133.15-.133.08-.031.184-.047.259-.005.019.009.036.03.03.05v.02h.003z"},child:[]}]})(e)}function z2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M0 0h24v24H0V0zm22.034 18.276c-.175-1.095-.888-2.015-3.003-2.873-.736-.345-1.554-.585-1.797-1.14-.091-.33-.105-.51-.046-.705.15-.646.915-.84 1.515-.66.39.12.75.42.976.9 1.034-.676 1.034-.676 1.755-1.125-.27-.42-.404-.601-.586-.78-.63-.705-1.469-1.065-2.834-1.034l-.705.089c-.676.165-1.32.525-1.71 1.005-1.14 1.291-.811 3.541.569 4.471 1.365 1.02 3.361 1.244 3.616 2.205.24 1.17-.87 1.545-1.966 1.41-.811-.18-1.26-.586-1.755-1.336l-1.83 1.051c.21.48.45.689.81 1.109 1.74 1.756 6.09 1.666 6.871-1.004.029-.09.24-.705.074-1.65l.046.067zm-8.983-7.245h-2.248c0 1.938-.009 3.864-.009 5.805 0 1.232.063 2.363-.138 2.711-.33.689-1.18.601-1.566.48-.396-.196-.597-.466-.83-.855-.063-.105-.11-.196-.127-.196l-1.825 1.125c.305.63.75 1.172 1.324 1.517.855.51 2.004.675 3.207.405.783-.226 1.458-.691 1.811-1.411.51-.93.402-2.07.397-3.346.012-2.054 0-4.109 0-6.179l.004-.056z"},child:[]}]})(e)}function zu(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M7.0301.084c-1.2768.0602-2.1487.264-2.911.5634-.7888.3075-1.4575.72-2.1228 1.3877-.6652.6677-1.075 1.3368-1.3802 2.127-.2954.7638-.4956 1.6365-.552 2.914-.0564 1.2775-.0689 1.6882-.0626 4.947.0062 3.2586.0206 3.6671.0825 4.9473.061 1.2765.264 2.1482.5635 2.9107.308.7889.72 1.4573 1.388 2.1228.6679.6655 1.3365 1.0743 2.1285 1.38.7632.295 1.6361.4961 2.9134.552 1.2773.056 1.6884.069 4.9462.0627 3.2578-.0062 3.668-.0207 4.9478-.0814 1.28-.0607 2.147-.2652 2.9098-.5633.7889-.3086 1.4578-.72 2.1228-1.3881.665-.6682 1.0745-1.3378 1.3795-2.1284.2957-.7632.4966-1.636.552-2.9124.056-1.2809.0692-1.6898.063-4.948-.0063-3.2583-.021-3.6668-.0817-4.9465-.0607-1.2797-.264-2.1487-.5633-2.9117-.3084-.7889-.72-1.4568-1.3876-2.1228C21.2982 1.33 20.628.9208 19.8378.6165 19.074.321 18.2017.1197 16.9244.0645 15.6471.0093 15.236-.005 11.977.0014 8.718.0076 8.31.0215 7.0301.0839m.1402 21.6932c-1.17-.0509-1.8053-.2453-2.2287-.408-.5606-.216-.96-.4771-1.3819-.895-.422-.4178-.6811-.8186-.9-1.378-.1644-.4234-.3624-1.058-.4171-2.228-.0595-1.2645-.072-1.6442-.079-4.848-.007-3.2037.0053-3.583.0607-4.848.05-1.169.2456-1.805.408-2.2282.216-.5613.4762-.96.895-1.3816.4188-.4217.8184-.6814 1.3783-.9003.423-.1651 1.0575-.3614 2.227-.4171 1.2655-.06 1.6447-.072 4.848-.079 3.2033-.007 3.5835.005 4.8495.0608 1.169.0508 1.8053.2445 2.228.408.5608.216.96.4754 1.3816.895.4217.4194.6816.8176.9005 1.3787.1653.4217.3617 1.056.4169 2.2263.0602 1.2655.0739 1.645.0796 4.848.0058 3.203-.0055 3.5834-.061 4.848-.051 1.17-.245 1.8055-.408 2.2294-.216.5604-.4763.96-.8954 1.3814-.419.4215-.8181.6811-1.3783.9-.4224.1649-1.0577.3617-2.2262.4174-1.2656.0595-1.6448.072-4.8493.079-3.2045.007-3.5825-.006-4.848-.0608M16.953 5.5864A1.44 1.44 0 1 0 18.39 4.144a1.44 1.44 0 0 0-1.437 1.4424M5.8385 12.012c.0067 3.4032 2.7706 6.1557 6.173 6.1493 3.4026-.0065 6.157-2.7701 6.1506-6.1733-.0065-3.4032-2.771-6.1565-6.174-6.1498-3.403.0067-6.156 2.771-6.1496 6.1738M8 12.0077a4 4 0 1 1 4.008 3.9921A3.9996 3.9996 0 0 1 8 12.0077"},child:[]}]})(e)}function Uu(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"},child:[]}]})(e)}function U2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M14.314 0L2.3 12 6 15.7 21.684.013h-7.357zm.014 11.
236072L7.857 17.53l6.47 6.47H21.7l-6.46-6.468 6.46-6.46h-7.37z"},child:[]}]})(e)}function H2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M10.773 2.878c-.013 1.434.322 4.624.445 5.734l-8.558 3.83c-.56-.959-.98-2.304-1.237-3.38l-.06.027c-.205.09-.406.053-.494-.088l-.011-.018-.82-1.506c-.058-.105-.05-.252.024-.392a.78.78 0 0 1 .358-.331l9.824-4.207c.146-.064.299-.063.4.004.106.062.127.128.13.327Zm.68 7c.523 1.97.675 2.412.832 2.818l-7.263 3.7a19.35 19.35 0 0 1-1.81-2.83l8.24-3.689Zm12.432 8.786h.003c.283.402-.047.657-.153.698l-.947.37c.037.125.035.319-.217.414l-.736.287c-.229.09-.398-.059-.42-.2l-.025-.125c-4.427 1.784-7.94 1.685-10.696.647-1.981-.745-3.576-1.983-4.846-3.379l6.948-3.54c.721 1.431 1.586 2.454 2.509 3.178 2.086 1.638 4.415 1.712 5.793 1.563l-.047-.233c-.015-.077.007-.135.086-.165l.734-.288a.302.302 0 0 1 .342.086l.748-.288a.306.306 0 0 1 .341.086l.583.89Z"},child:[]}]})(e)}function $2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M13.983 11.078h2.119a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.119a.185.185 0 00-.185.185v1.888c0 .102.083.185.185.185m-2.954-5.43h2.118a.186.186 0 00.186-.186V3.574a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m0 2.716h2.118a.187.187 0 00.186-.186V6.29a.186.186 0 00-.186-.185h-2.118a.185.185 0 00-.185.185v1.887c0 .102.082.185.185.186m-2.93 0h2.12a.186.186 0 00.184-.186V6.29a.185.185 0 00-.185-.185H8.1a.185.185 0 00-.185.185v1.887c0 .102.083.185.185.186m-2.964 0h2.119a.186.186 0 00.185-.186V6.29a.185.185 0 00-.185-.185H5.136a.186.186 0 00-.186.185v1.887c0 .102.084.185.186.186m5.893 2.715h2.118a.186.186 0 00.186-.185V9.006a.186.186 0 00-.186-.186h-2.118a.185.185 0 00-.185.185v1.888c0 .102.082.185.185.185m-2.93 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.083.185.185.185m-2.964 0h2.119a.185.185 0 00.185-.185V9.006a.185.185 0 00-.184-.186h-2.12a.186.186 0 00-.186.186v1.887c0 .102.084.185.186.185m-2.92 0h2.12a.185.185 0 00.184-.185V9.006a.185.185 0 00-.184-.186h-2.12a.185.185 0 00-.184.185v1.888c0 .102.082.185.185.185M23.763 9.89c-.065-.051-.672-.51-1.954-.51-.338.001-.676.03-1.01.087-.248-1.7-1.653-2.53-1.716-2.566l-.344-.199-.226.327c-.284.438-.49.922-.612 1.43-.23.97-.09 1.882.403 2.661-.595.332-1.55.413-1.744.42H.751a.751.751 0 00-.75.748 11.376 11.376 0 00.692 4.062c.545 1.428 1.355 2.48 2.41 3.124 1.18.723 3.1 1.137 5.275 1.137.983.003 1.963-.086 2.93-.266a12.248 12.248 0 003.823-1.389c.98-.567 1.86-1.288 2.61-2.136 1.252-1.418 1.998-2.997 2.553-4.4h.221c1.372 0 2.215-.549 2.68-1.009.309-.293.55-.65.707-1.046l.098-.288Z"},child:[]}]})(e)}function W2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M11.146 0h3.924v18.166c-2.013.382-3.491.535-5.096.535-4.791 0-7.288-2.166-7.288-6.32 0-4.002 2.65-6.6 6.753-6.6.637 0 1.121.05 1.707.203zm0 9.143a3.894 3.894 0 00-1.325-.204c-1.988 0-3.134 1.223-3.134 3.365 0 2.09 1.096 3.236 3.109 3.236.433 0 .79-.025 1.35-.102V9.142zM21.314 6.06v9.098c0 3.134-.229 4.638-.917 5.937-.637 1.249-1.478 2.039-3.211 2.905l-3.644-1.733c1.733-.815 2.574-1.53 3.109-2.625.561-1.121.739-2.421.739-5.835V6.059h3.924zM17.39.021h3.924v4.026H17.39z"},child:[]}]})(e)}function G2(e){return Ce({attr:{role:"img",viewBox:"0 0 24 24"},child:[{tag:"path",attr:{d:"M4.105 4.105S9.158 1.58 11.684.316a3.079 3.079 0 0 1 1.481-.315c.766.047 1.677.788 1.677.788L24 9.948v9.789h-4.263V24H9.789l-9-9C.303 14.5 0 13.795 0 13.105c0-.319.18-.818.316-1.105l3.789-7.895zm.679.679v11.787c.002.543.021 1.024.498 1.508L10.204 23h8.533v-4.263L4.784 4.784zm12.055-.678c-.899-.896-1.809-1.78-2.74-2.643-.302-.267-.567-.468-1.07-.462-.37.014-.87.195-.87.195L6.341 4.105l10.498.001z"},child:[]}]})(e)}function Hu(e){return Ce({attr:{viewBox:"0 0 448 512"},child:[{tag:"path",attr:{d:"M416 32H31.9C14.3 32 0 46.5 0 64.3v383.4C0 465.5 14.3 480 31.9 480H416c17.6 0 32-14.5 32-32.3V64.3c0-17.8-14.4-32.3-32-32.3zM135.4 416H69V202.2h66.5V416zm-33.2-243c-21.3 0-38.5-17.3-38.5-38.5S80.9 96 102.2 96c21.2 0 38.5 17.3 38.5 38.5 0 21.3-17.2 38.5-38.5 38.5zm282.1 243h-66.4V312c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9V416h-66.4V202.2h63.7v29.2h.9c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9V416z"},child:[]}]})(e)}const _s=()=>y.jsxs(ve.footer,{initial:{opacity:0}
236,whileInView:{opacity:1},transition:{duration:.8},className:"relative bg-[#0A0A0A] text-white py-10 text-center overflow-hidden",children:[y.jsxs("div",{className:"relative z-10 flex justify-center space-x-7 mb-5",children:[y.jsx("a",{href:"https://github.com/Sonu-Hansda",target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",className:"text-neutral-400 hover:text-green-300 transition-colors",children:y.jsx(Uu,{size:22})}),y.jsx("a",{href:"https://linkedin.com/in/sonu-hansda",target:"_blank",rel:"noopener noreferrer","aria-label":"LinkedIn",className:"text-neutral-400 hover:text-green-300 transition-colors",children:y.jsx(Hu,{size:22})}),y.jsx("a",{href:"https://instagram.com/_sonu.hansda_",target:"_blank",rel:"noopener noreferrer","aria-label":"Instagram",className:"text-neutral-400 hover:text-green-300 transition-colors",children:y.jsx(zu,{size:22})})]}),y.jsx("p",{className:"relative z-10 text-neutral-500 text-sm",children:"All rights reserved."})]}),q2="/assets/me-wo0FDjuZ.jpg",Y2=()=>y.jsxs("section",{id:"about",className:"py-28 bg-[#0B0B0B] text-neutral-300 relative overflow-hidden",children:[y.jsx("div",{className:"absolute inset-0 z-0 opacity-20 pointer-events-none",style:{backgroundImage:"linear-gradient(#00ffc8 1px, transparent 1px), linear-gradient(90deg, #00ffc8 1px, transparent 1px)",backgroundSize:"3rem 3rem"}}),y.jsx("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8 relative z-10",children:y.jsxs(ve.div,{initial:{opacity:0,y:40},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.8},className:"max-w-5xl mx-auto grid md:grid-cols-3 gap-10 md:gap-16 items-center",children:[y.jsx("div",{className:"md:col-span-1 flex flex-col items-center text-center md:text-left",children:y.jsx(ve.div,{whileHover:{scale:1.05},className:"relative w-40 h-40 sm:w-48 sm:h-48 rounded-full border-2 border-green-300/40 p-2",children:y.jsx("div",{className:"w-full h-full rounded-full bg-gradient-to-br from-green-300/20 to-transparent flex items-center justify-center overflow-hidden",children:y.jsx("img",{src:q2,alt:"Sonu Hansda",loading:"lazy",className:"w-full h-full object-cover grayscale"})})})}),y.jsxs("div",{className:"md:col-span-2 text-center md:text-left",children:[y.jsx("h2",{className:"text-3xl sm:text-4xl font-bold mb-4 text-green-200",children:"About Me"}),y.jsxs("p",{className:"text-base sm:text-lg leading-relaxed text-neutral-400 mb-6",children:["Iâm a Final Year ECM undergrad at"," ",y.jsx("span",{className:"text-green-300 font-semibold",children:"NIT Jamshedpur"})," who loves turning ideas into reliable, scalable software. From building pixel-perfect UIs to automating cloud infrastructure, I enjoy the full spectrum of the stack."]}),y.jsx("p",{className:"text-lg leading-relaxed text-neutral-400 mb-8",children:"When Iâm not coding, youâll find me tweaking my Linux config, exploring open-source, or capturing network packets for fun."})]})]})})]}),nr={SMOOTH_TAU:.25,MIN_COPIES:2,COPY_HEADROOM:2},K2=e=>typeof e=="number"?`${e}px`:e??void 0,ot=(...e)=>e.filter(Boolean).join(" "),X2=(e,t,n)=>{w.useEffect(()=>{if(!window.ResizeObserver){const i=()=>e();return window.addEventListener("resize",i),e(),()=>window.removeEventListener("resize",i)}const r=t.map(i=>{if(!i.current)return null;const o=new ResizeObserver(e);return o.observe(i.current),o});return e(),()=>{r.forEach(i=>i==null?void 0:i.disconnect())}},[e,...t,...n])},Z2=(e,t,n)=>{w.useEffect(()=>{var s;const r=((s=e.current)==null?void 0:s.querySelectorAll("img"))??[];if(r.length===0){t();return}let i=r.length;const o=()=>{i-=1,i===0&&t()};return r.forEach(a=>{const l=a;l.complete?o():(l.addEventListener("load",o,{once:!0}),l.addEventListener("error",o,{once:!0}))}),()=>{r.forEach(a=>{a.removeEventListener("load",o),a.removeEventListener("error",o)})}},[t,e,...n])},J2=(e,t,n,r,i)=>{const o=w.useRef(null),s=w.useRef(null),a=w.useRef(0),l=w.useRef(0);w.useEffect(()=>{const c=e.current;if(!c)return;const u=typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-reduced-motion: reduce)").matches;if(n>0&&(a.current=(a.current%n+n)%n,c.style.transform=`translate3d(${-a.current}px, 0, 0)`),u)return c.style.transform="translate3d(0, 0, 0)",()=>{s.current=null};const h=d=>{s.current===null&&(s.current=d);const f=Math.max(0,d-s.current)/1e3;s.current=d;const p=i&&r?0:t,m=1-Math.exp(-f/nr.SMOOTH_TAU);if(l.current+=(p-l.current)*m,n>0){let g=a.current+l.current*f;g=(g%n+n)%n,a.current=g;const v=-a.current;c.style.transform=`translate3d(${v}px, 0, 0)`}o.current=requestAnimationFrame(h)};return o.current=requestAnimationFrame(h),()=>{o.current!==null&&(cancelAnimationFrame(o.current),o.current=null),s.current=null}},[e,t,n,r,i])},mn=Ee.memo(({logos:e,speed:t=120,direction:n="left",width:r="100%",logoHeight:i=28,gap:o=32,pauseOnHover:s=!0,fadeOut:a=!1,fadeOutColor:l,scaleOnHover:c=!1,ariaLabel:u="Partner logos",className:h,style:d})=>{const f=w.useRef(null),p=w.useRef(null),m=w.useRef(null),[g,v]=w.useState(0),[C,S]=w.useState(nr.MIN_COPIES),[R,P]=w.useState(!1),j=w.useMemo(()=>{const H=Math.abs(t),re=n==="left"?1:-1,me=t<0?-1:1;return H*re*me},[t,n]),b=w.useCallback(()=>{var me,G,ue,ye;const H=((me=f.current)==null?void 0:me.clientWidth)??0,re=((ye=(ue=(G=m.current)==null?void 0:G.getBoundingClientRect)==null?void 0:ue.call(G))==null?void 0:ye.width)??0;if(re>
2360){v(Math.ceil(re));const T=Math.ceil(H/re)+nr.COPY_HEADROOM;S(Math.max(nr.MIN_COPIES,T))}},[]);X2(b,[f,m],[e,o,i]),Z2(m,b,[e,o,i]),J2(p,j,g,R,s);const M=w.useMemo(()=>({"--logoloop-gap":`${o}px`,"--logoloop-logoHeight":`${i}px`,...l&&{"--logoloop-fadeColor":l}}),[o,i,l]),O=w.useMemo(()=>ot("relative overflow-x-hidden group","[--logoloop-gap:32px]","[--logoloop-logoHeight:28px]","[--logoloop-fadeColorAuto:#ffffff]","dark:[--logoloop-fadeColorAuto:#0b0b0b]",c&&"py-[calc(var(--logoloop-logoHeight)*0.1)]",h),[c,h]),_=w.useCallback(()=>{s&&P(!0)},[s]),V=w.useCallback(()=>{s&&P(!1)},[s]),N=w.useCallback((H,re)=>{let me,G;"node"in H?(me=y.jsx("span",{className:ot("inline-flex items-center","motion-reduce:transition-none",c&&"transition-transform duration-300 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover/item:scale-120"),"aria-hidden":!!H.href&&!H.ariaLabel,children:H.node}),G=H.ariaLabel??H.title):(me=y.jsx("img",{className:ot("h-[var(--logoloop-logoHeight)] w-auto block object-contain","[-webkit-user-drag:none] pointer-events-none","[image-rendering:-webkit-optimize-contrast]","motion-reduce:transition-none",c&&"transition-transform duration-300 ease-[cubic-bezier(0.4,0,0.2,1)] group-hover/item:scale-120"),src:H.src,srcSet:H.srcSet,sizes:H.sizes,width:H.width,height:H.height,alt:H.alt??"",title:H.title,loading:"lazy",decoding:"async",draggable:!1}),G=H.alt??H.title);const ye=H.href?y.jsx("a",{className:ot("inline-flex items-center no-underline rounded","transition-opacity duration-200 ease-linear","hover:opacity-80","focus-visible:outline focus-visible:outline-current focus-visible:outline-offset-2"),href:H.href,"aria-label":G||"logo link",target:"_blank",rel:"noreferrer noopener",children:me}):me;return y.jsx("li",{className:ot("flex-none mr-[var(--logoloop-gap)] text-[length:var(--logoloop-logoHeight)] leading-[1]",c&&"overflow-visible group/item"),role:"listitem",children:ye},re)},[c]),W=w.useMemo(()=>Array.from({length:C},(H,re)=>y.jsx("ul",{className:"flex items-center",role:"list","aria-hidden":re>0,ref:re===0?m:void 0,children:e.map((me,G)=>N(me,`${re}-${G}`))},`copy-${re}`)),[C,e,N]),k=w.useMemo(()=>({width:K2(r)??"100%",...M,...d}),[r,M,d]);return y.jsxs("div",{ref:f,className:O,style:k,role:"region","aria-label":u,onMouseEnter:_,onMouseLeave:V,children:[a&&y.jsxs(y.Fragment,{children:[y.jsx("div",{"aria-hidden":!0,className:ot("pointer-events-none absolute inset-y-0 left-0 z-[1]","w-[clamp(24px,8%,120px)]","bg-[linear-gradient(to_right,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))_0%,rgba(0,0,0,0)_100%)]")}),y.jsx("div",{"aria-hidden":!0,className:ot("pointer-events-none absolute inset-y-0 right-0 z-[1]","w-[clamp(24px,8%,120px)]","bg-[linear-gradient(to_left,var(--logoloop-fadeColor,var(--logoloop-fadeColorAuto))_0%,rgba(0,0,0,0)_100%)]")})]}),y.jsx("div",{className:ot("flex w-max will-change-transform select-none","motion-reduce:transform-none"),ref:p,children:W})]})});mn.displayName="LogoLoop";const gl=[{node:y.jsx(V2,{}),title:"Python",href:"#"},{node:y.jsx(z2,{}),title:"JavaScript",href:"#"},{node:y.jsx(O2,{}),title:"TypeScript",href:"#"},{node:y.jsx(G2,{}),title:"Dart",href:"#"},{node:y.jsx(U2,{}),title:"Flutter",href:"#"},{node:y.jsx(N2,{}),title:"Dart",href:"#"},{node:y.jsx(I2,{}),title:"React",href:"#"}],yl=[{node:y.jsx(k2,{}),title:"TailwindCSS",href:"#"},{node:y.jsx(W2,{}),title:"Django",href:"#"},{node:y.jsx(H2,{}),title:"Flask",href:"#"},{node:y.jsx($2,{}),title:"Docker",href:"#"},{node:y.jsx(B2,{}),title:"Linux",href:"#"},{node:y.jsx(F2,{}),title:"MySQL",href:"#"}],Q2=()=>y.jsx("section",{id:"skills",className:"py-20 sm:py-28 bg-[#111] text-neutral-300",children:y.jsx("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:y.jsxs(ve.div,{initial:{opacity:0,x:100},whileInView:{opacity:1,x:0},viewport:{once:!0},transition:{duration:.8},children:[y.jsx("h2",{className:"text-3xl sm:text-4xl font-bold text-center mb-12 sm:mb-16 text-green-200",children:"Technical Stacks"}),y.jsxs("div",{className:"hidden sm:block",children:[y.jsx(mn,{logos:gl,speed:75,direction:"left",logoHeight:75,gap:75,pauseOnHover:!0,fadeOut:!0,fadeOutColor:"#111",ariaLabel:"Technology partners"}),y.jsx("div",{className:"mb-8"}),y.jsx(mn,{logos:yl,speed:75,direction:"right",logoHeight:75,gap:75,pauseOnHover:!0,fadeOut:!0,fadeOutColor:"#111",ariaLabel:"Technology partners"})]}),y.jsxs("div",{className:"sm:hidden",children:[y.jsx(mn,{logos:gl,speed:40,direction:"left",logoHeight:50,gap:40,pauseOnHover:!0,fadeOut:!0,fadeOutColor:"#111",ariaLabel:"Technology partners"}),y.jsx("div",{className:"mb-6"}),y.jsx(mn,{logos:yl,speed:40,direction:"right",logoHeight:50,gap:40,pauseOnHover:!0,fadeOut:!0,fadeOutColor:"#111",ariaLabel:"Technology partners"})]})]})})});function $u(e){return Ce({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"},child:[]}]})(e)}function Wu(e){return Ce({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"path",attr:{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"},child:[]},{tag:"polyline",attr:{points:"15 3 21 3 21 9"},child:[]},{tag:"line",attr:{x1:"10",y1:"14",x2:"21",y2:"3"},child:[]}]})(e)}function Gu(e){return Ce({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"circle",attr:{cx:"12",cy:"12",r:"10"},child:[]},{tag:"polyline",attr:{points:"12 6 12 12 16 14"},child:[]}]})(e)}function qu(e){return Ce({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"rect",attr:{x:"3",y:"4",width:"18",height:"18",rx:"2",ry:"2"},child:[]},{tag:"line",attr:{x1:"16",y1:"2",x2:"16",y2:"6"},child:[]},{tag:"line",attr:{x1:"8",y1:"2",x2:"8",y2:"6"},child:[]},{tag:"line",attr:{x1:"3",y1:"10",x2:"21",y2:"10"},child:[]}]})(e)}function Yu(e){return Ce({attr:{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round"},child:[{tag:"line",attr:{x1:"19",y1:"12",x2:"5",y2:"12"},child:[]},{tag:"polyline",attr:{points:"12 19 5 12 12 5"},child:[]}]})(e)}const e3="/assets/cybershield-CBkkNfSx.png",t3="/assets/citikeeper-DYw_FI02.png",n3="/assets/cmdc-BRMciHBe.png",r3="/assets/inter-nit-Cy2nZ4Hb.png",i3="/assets/aryopath-h4AIwL5u.png",s3="/assets/saleslms-DsgjcVW6.webp",o3="/assets/face-fatigue-BSepDBHm.png",a3=[{name:"AryoPath",desc:"End-to-end e-commerce portal for Thyrocare-powered diagnostic tests. Users book health tests online, a phlebotomist is auto-assigned, samples are collected at home, and reports land in-app/inbox. Built the full stackâReact storefront, Node/Express back-end, MongoDB, and an admin panel that tracks orders, inventory, and live agent schedulesâhandling 1k+ bookings in the first quarter.",tech:["MERN","Redis","Cron","E-Commerce","HealthCare"],img:i3,live:"https://ayropath.com/",category:"client"},{name:"Sales Syllabus",desc:"Full-stack Learning Management System (LMS) for a sales training firm. Built the complete platform where instructors create paid video courses, students purchase and track progress, and admins manage content, users, and financesâhandling all transactions and course delivery in one integrated system.",tech:["AI","NEXT JS","Docker","Realtime"],img:s3,live:"https://salessyllabus.com/",category:"client"},{name:"Inter NIT Scoreboard",desc:"A real-time platform built for the All India Inter-NIT Sports Event, showcasing live scores, points tables, and embedded YouTube live streams. The portal successfully handled 5K+ visitors, 10K+ total page views, and over 30K+ requests during the event.",tech:["MERN","Google Sheet","Redis","Vercel"],img:r3,github:"https://github.com/Sonu-Hansda/Inter-NIT-Scoreboard",live:"https://inter-nit.sacnitjsr.org/",category:"personal"},{name:"Citikeeper",desc:"On-demand service app built during internshipâlets users book verified plumbers, electricians, carpe
236nters, etc. in minutes. Flutter frontend, Firebase backend, live tracking & cashless payments.",tech:["Flutter","Firebase","Google Maps API","Stripe"],img:t3,live:"https://citikeeper.com/home",category:"client"},{name:"CyberShield",desc:"1st-place finisher @ Google Developers Club Ranchi hackathon. Drop any website URL and get an instant security score (0-10) plus a detailed vulnerability report. Stack: Python (Flask) scanner + React dashboard.",tech:["Python","Flask","React","OWASP ZAP","Chart.js"],img:e3,github:"https://github.com/Sonu-Hansda/Git-Bytes",live:"https://git-bytes.vercel.app",category:"personal"},{name:"Real-time Face Fatigue Detection",desc:"A computer vision-based system that detects driver/user fatigue in real-time using facial landmark analysis.",tech:["Python","OpenCV","MediaPipe","Computer Vision"],img:o3,github:"https://github.com/Sonu-Hansda/Face-Fatigue-Detection",category:"personal"},{name:"CMDC",desc:"Official site for NIT Jamshedpurâs Computational Mechanics & Design Club. Showcases student projects, research labs, events and recruitment info. Built with React + TailwindCSS and deployed on Vercel for sub-second loads.",tech:["React","TailwindCSS","Vercel"],img:n3,github:"https://github.com/Sonu-Hansda/computational-mechanics-club",live:"https://www.cmdc.in",category:"client"}],l3=({p:e,index:t})=>y.jsxs(ve.article,{initial:{opacity:0,y:40},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:t*.15,duration:.5},whileHover:{y:-8,transition:{duration:.2}},className:`group relative bg-[#161B22] border border-gray-800 rounded-xl overflow-hidden 237 hover:border-green-300/40 shadow-lg hover:shadow-green-300/10`,children:[y.jsx("div",{className:"aspect-video overflow-hidden",children:y.jsx("img",{src:e.img,loading:"lazy",alt:e.name,className:"w-full h-full object-cover group-hover:scale-105 transition-transform duration-500"})}),y.jsxs("div",{className:"p-5 flex flex-col h-full",children:[y.jsxs("div",{className:"flex items-start justify-between mb-3",children:[y.jsx("h3",{className:"text-xl font-bold text-green-300",children:e.name}),y.jsxs("div",{className:"flex items-center gap-3 text-neutral-500",children:[e.github&&y.jsx("a",{href:e.github,target:"_blank",rel:"noopener noreferrer","aria-label":"GitHub",className:"hover:text-green-300 transition-colors",children:y.jsx($u,{size:20})}),e.live&&y.jsx("a",{href:e.live,target:"_blank",rel:"noopener noreferrer","aria-label":"Live demo",className:"hover:text-green-300 transition-colors",children:y.jsx(Wu,{size:20})})]})]}),y.jsx("p",{className:"text-neutral-400 text-sm mb-4 flex-grow",children:e.desc}),y.jsx("div",{className:"flex flex-wrap gap-2 absolute bottom-1.5",children:e.tech.map(n=>y.jsx("span",{className:"px-2 py-1 text-xs rounded-full bg-gray-900/80 border border-green-300/20 text-green-200",children:n},n))})]})]}),c3=()=>{const[e,t]=w.useState("client"),n=a3.filter(r=>r.category===e);return y.jsx("section",{id:"projects",className:"py-20 sm:py-24 bg-[#0d0d0d] text-neutral-300",children:y.jsxs("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[y.jsx(ve.h2,{initial:{opacity:0,y:-30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-3xl sm:text-4xl md:text-5xl font-black text-center mb-4 text-green-200",children:"What Iâve Built"}),y.jsx(ve.p,{initial:{opacity:0,y:-20},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{delay:.2,duration:.6},className:"text-center text-neutral-400 mb-12 sm:mb-16 max-w-2xl mx-auto text-sm sm:text-base",children:"and production-ready."}),y.jsx("div",{className:"flex justify-center mb-12",children:y.jsx("div",{className:"inline-flex rounded-full p-1 bg-gray-900 border border-gray-800",children:["client","personal"].map(r=>y.jsx("button",{onClick:()=>t(r),className:`px-6 py-2 rounded-full text-sm font-medium transition-all duration-300 ${e===r?"bg-green-300 text-black shadow-[0_0_12px_rgba(0,255,200,0.25)]":"text-neutral-500 hover:text-neutral-300"}`,children:r==="client"?"Client Work":"Personal Projects"},r))})}),y.jsx("div",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-3",children:n.map((r,i)=>y.jsx(l3,{p:r,index:i},r.name))}),y.jsx(ve.div,{initial:{opacity:0,scale:.9},whileInView:{opacity:1,scale:1},viewport:{once:!0},transition:{delay:.4},className:"mt-12 sm:mt-16 text-center",children:y.jsxs("a",{href:"https://github.com/Sonu-Hansda",target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 px-6 py-3 rounded-full bg-zinc-900/60 backdrop-blur-xl border border-white/10 text-green-300 font-medium hover:border-green-300/40 hover:text-green-200 transition-all duration-300",children:[y.jsx($u,{})," View Full Portfolio on GitHub"]})})]})})},u3=()=>y.jsx("section",{id:"contact",className:"py-20 sm:py-24 bg-[#111] text-neutral-300",children:y.jsxs("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8 text-center",children:[y.jsx(ve.h2,{initial:{opacity:0,y:-30},whileInView:{opacity:1,y:0},viewport:{once:!0},transition:{duration:.6},className:"text-3xl sm:text-4xl font-bold text-center mb-6 sm:mb-8 text-green-200",children:"Contact Me"}),y.jsx("p",{className:"mb-8 sm:mb-10 text-base sm:text-lg max-w-xl mx-auto text-neutral-400",children:"Have a project in mind or just want to say hi? Feel free to reach out."}),y.jsx(ve.a,{whileHover:{scale:1.05},whileTap:{scale:.95},href:"https://mail.google.com/mail/?view=cm&fs=1&[email protected]&su="+encodeURIComponent("Quick collaboration request")+"&body="+encodeURIComponent(`Hi Sonu, 238 239Iâm reaching out because: 240(Delete this line and tell me about your project / idea / question) 241 242A bit about me: 243(Delete this line and add who you are, your role, company, links, etc.) 244 245My preferred way to continue this conversation: 246(Delete this line: email, call, Discord, Zoom, etc.) 247 248Looking forward to your reply! 249 250Best, 251YOUR NAME HERE`),target:"_blank",rel:"noreferrer",className:"bg-green-400 text-gray-900 px-6 sm:px-8 py-3 sm:py-4 rounded-full text-base sm:text-lg font-semibold tracking-wider up
251percase shadow-lg hover:bg-green-500 transition-all duration-300",children:"Get In Touch"})]})});function Ku(){const[e,t]=w.useState(!1),n=()=>{window.pageYOffset>window.innerHeight?t(!0):t(!1)},r=()=>{window.scrollTo({top:0,behavior:"smooth"})};return w.useEffect(()=>(window.addEventListener("scroll",n),()=>{window.removeEventListener("scroll",n)}),[]),y.jsx(bu,{children:e&&y.jsx(ve.button,{onClick:r,initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:20},transition:{duration:.3},className:"fixed bottom-8 right-8 z-50 w-12 h-12 bg-zinc-900/60 backdrop-blur-xl border border-white/10 rounded-full flex items-center justify-center shadow-[0_8px_32px_rgba(0,0,0,0.4),0_0_20px_rgba(0,255,200,0.05)] text-green-300 hover:border-green-300/40 hover:text-green-200 transition-all duration-300","aria-label":"Scroll to top",children:y.jsx(qg,{size:24})})})}const mi=[{id:"home",label:"home",to:"/#home"},{id:"about",label:"about",to:"/#about"},{id:"skills",label:"skills",to:"/#skills"},{id:"projects",label:"projects",to:"/#projects"},{id:"blogs",label:"blogs",to:"/blogs"},{id:"contact",label:"Contact",to:"/#contact"}];function h3(){const[e,t]=w.useState(!1),[n,r]=w.useState(!0),[i,o]=w.useState("home"),s=Zt(),a=s.pathname==="/";w.useEffect(()=>{let h=0;const d=()=>{const f=window.scrollY;r(f<80||f<h),h=f};return window.addEventListener("scroll",d,{passive:!0}),()=>window.removeEventListener("scroll",d)},[]),w.useEffect(()=>{if(!a)return;const h=mi.filter(f=>f.id!=="blogs").map(f=>document.getElementById(f.id)),d=new IntersectionObserver(f=>f.forEach(p=>p.isIntersecting&&o(p.target.id)),{threshold:.4});return h.forEach(f=>f&&d.observe(f)),()=>h.forEach(f=>f&&d.unobserve(f))},[a]),w.useEffect(()=>{document.body.style.overflow=e?"hidden":""},[e]);const l={type:"spring",stiffness:400,damping:30},c={initial:{opacity:0,y:20},animate:{opacity:1,y:0}},u=h=>h==="blogs"?s.pathname.startsWith("/blogs"):a&&i===h;return y.jsxs(y.Fragment,{children:[y.jsx(ve.header,{initial:{y:0,opacity:1},animate:{y:n?0:"-150%",opacity:n?1:0},transition:{duration:.3,ease:"easeOut"},className:"fixed top-3 left-2 right-2 sm:top-4 sm:left-4 sm:right-4 z-50",children:y.jsx("div",{className:"mx-auto max-w-full sm:max-w-3xl lg:max-w-4xl rounded-2xl bg-zinc-900/60 backdrop-blur-xl border border-white/10 shadow-[0_8px_32px_rgba(0,0,0,0.4),0_0_60px_rgba(0,255,200,0.03)] overflow-hidden",children:y.jsxs("div",{className:"flex h-14 sm:h-16 items-center justify-between px-3 sm:px-5",children:[y.jsxs(Wt,{to:"/",className:"flex items-center gap-2 sm:gap-3 shrink-0 min-w-0",children:[y.jsx("img",{className:"h-7 sm:h-9 md:h-10 shrink-0",src:"/logo.png",alt:"logo",loading:"lazy"}),y.jsx("h1",{className:"font-black text-base sm:text-lg md:text-xl text-green-200 truncate",children:"Sonu Hansda"})]}),y.jsxs("nav",{className:"hidden md:flex items-center gap-6 lg:gap-8",children:[mi.map(h=>y.jsx(ve.div,{whileHover:{scale:1.05},children:h.id==="blogs"?y.jsxs(Wt,{to:h.to,className:`relative capitalize font-bold text-sm lg:text-base transition-colors ${u(h.id)?"text-green-200":"text-neutral-400"}`,children:[h.label,u(h.id)&&y.jsx(ve.span,{layoutId:"floating-underline",className:"absolute -bottom-1 left-0 right-0 h-0.5 bg-green-400"})]}):y.jsxs("a",{href:h.to,className:`relative capitalize font-bold text-sm lg:text-base transition-colors ${u(h.id)?"text-green-200":"text-neutral-400"}`,children:[h.label,u(h.id)&&y.jsx(ve.span,{layoutId:"floating-underline",className:"absolute -bottom-1 left-0 right-0 h-0.5 bg-green-400"})]})},h.id)),y.jsx(vl,{isMobile:!1})]}),y.jsx("button",{className:"md:hidden p-2 rounded-md text-neutral-400 hover:text-green-300",onClick:()=>t(!e),"aria-label":"Toggle sidebar menu",children:y.jsx("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",children:y.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:e?"M6 18L18 6M6 6l12 12":"M4 6h16M4 12h16m-7 6h7"})})})]})})}),y.jsx(bu,{children:e&&y.jsx(ve.div,{initial:{opacity:0}
251,animate:{opacity:1},exit:{opacity:0},className:"fixed inset-0 z-30 bg-black/60 backdrop-blur-xl md:hidden",onClick:()=>t(!1),children:y.jsxs(ve.nav,{initial:{x:"100%"},animate:{x:0},exit:{x:"100%"},transition:l,className:"flex flex-col items-center justify-center h-full gap-10",children:[mi.map((h,d)=>h.id==="blogs"?y.jsx(ve.div,{...c,transition:{...l,delay:d*.05},children:y.jsx(Wt,{to:h.to,onClick:()=>t(!1),className:`font-black text-4xl transition-colors ${u(h.id)?"text-green-300":"text-neutral-400 hover:text-green-300"}`,children:h.label})},h.id):y.jsx(ve.a,{href:h.to,onClick:()=>t(!1),...c,transition:{...l,delay:d*.05},className:`font-black text-4xl transition-colors ${u(h.id)?"text-green-300":"text-neutral-400 hover:text-green-300"}`,children:h.label},h.id)),y.jsx(vl,{isMobile:!0})]})})})]})}const vl=({isMobile:e})=>y.jsxs("div",{className:`${e?"flex md:hidden space-x-6 text-3xl":"hidden md:flex space-x-5 text-lg"} items-center`,children:[y.jsx("a",{className:"text-neutral-300 hover:text-green-200 transition-colors",target:"_blank",rel:"noopener noreferrer",href:"https://www.github.com/Sonu-Hansda",children:y.jsx(Uu,{})}),y.jsx("a",{className:"text-neutral-300 hover:text-green-200 transition-colors",target:"_blank",rel:"noopener noreferrer",href:"https://www.linkedin.com/in/sonu-hansda",children:y.jsx(Hu,{})}),y.jsx("a",{className:"text-neutral-300 hover:text-green-200 transition-colors",target:"_blank",rel:"noopener noreferrer",href:"https://instagram.com/_sonu.hansda_",children:y.jsx(zu,{})})]}),d3=()=>y.jsxs("div",{className:"bg-bg-black text-white",children:[y.jsx(es,{title:"Sonu Hansda | Full-Stack Developer & DevOps Engineer Portfolio",description:"Full-stack developer specializing in React, Next.js, Python, Flutter, and DevOps. NIT Jamshedpur student building scalable web apps, mobile applications, and cloud infrastructure. View my projects and skills.",canonical:"https://sonu-hansda.me/",jsonLd:{"@context":"https://schema.org","@type":"WebSite",name:"Sonu Hansda Portfolio",url:"https://sonu-hansda.me",author:{"@type":"Person",name:"Sonu Hansda",url:"https://sonu-hansda.me"}}}),y.jsx(h3,{}),y.jsx(R2,{}),y.jsx(Y2,{}),y.jsx(Q2,{}),y.jsx(c3,{}),y.jsx(u3,{}),y.jsx(_s,{}),y.jsx(Ku,{})]}),Xu=[{slug:"open-source-programs-every-developer-should-know",title:"7 Open Source Programs Every Developer Should Know About",excerpt:"A curated guide to the best open source programs â from GSoC and Outreachy to Hacktoberfest and Linux Foundation mentorships â with guidance on where to start and how to make the most of each opportunity.",date:"Aug 9, 2026",readTime:"10 min read",tags:["Open Source","Career","Students","Community"],content:[{type:"paragraph",text:'If you are a developer or a student like me, you have probably heard the phrase "open source contribution" many times. I used to think open source was simply about finding a GitHub repository, changing some code, and creating a pull request. It is much bigger than that.'},{type:"paragraph",text:"Open source can help you learn how real software is built, understand large codebases, work with experienced developers, improve your Git and GitHub skills, and build something that you can actually show to recruiters."},{type:"paragraph",text:"The best part?"},{type:"paragraph",text:"You don't always need to wait for a company to give you an internship to get this experience."},{type:"paragraph",text:"There are several open source programs and initiatives where you can work with real projects, experienced maintainers, and developers from around the world. Some of them are paid, while others are unpaid, but even the unpaid ones can be extremely valuable if you use them properly."},{type:"paragraph",text:"So, I collected some of the programs that I think every developer interested in open source should know about."},{type:"callout",text:"Note: Program dates, eligibility, stipends and participating organisations can change every year. Always check the official website before applying."},{type:"heading",text:"1. Google Summer of Code (GSoC)"},{type:"image",text:"GSoC Banner",src:"https://encrypted-tbn0.gstatic.
251com/images?q=tbn:ANd9GcRmWD9lZC0C5ySo4k-NKwqVecKDdtjP4bej0b4RlwMO21AF6bCiaq6iGrE&s=10",alt:"Google Summer of Code banner"},{type:"paragraph",text:"Let's start with the one most developers have probably heard about â Google Summer of Code. GSoC is a global program where contributors work with open source organisations under the guidance of experienced mentors. The interesting thing about GSoC is that you aren't just solving random coding questions or building another portfolio project."},{type:"paragraph",text:"You are working on an actual open source project. Projects can cover almost anything â AI/ML, cloud, operating systems, security, programming languages, robotics, graphics, scientific computing and much more."},{type:"paragraph",text:"In 2026, Google lists small, medium and large project sizes, roughly corresponding to 90, 175 and 350 hours of work."},{type:"paragraph",text:"One thing I particularly like about GSoC is that it forces you to learn something that college projects usually don't teach you: How to work inside someone else's codebase."},{type:"paragraph",text:"You have to understand existing architecture, follow contribution guidelines, communicate with maintainers, write good commits, respond to reviews and actually get your work merged."},{type:"paragraph",text:"That's real software engineering."},{type:"link",text:"Visit Google Summer of Code",url:"https://summerofcode.withgoogle.com/"},{type:"heading",text:"2. Outreachy"},{type:"image",text:"Outreachy Banner",src:"https://upload.wikimedia.org/wikipedia/commons/c/c8/Outreachy-logo.png",alt:"Outreachy banner"},{type:"paragraph",text:"Outreachy is another excellent open source internship program, but it has a different focus from GSoC. The program aims to support people who face underrepresentation, systemic bias or discrimination in the technology industry."},{type:"paragraph",text:`The internships are remote and paid, and projects aren't limited to programming. You can find projects involving: Software development, 252Documentation, 253UX, 254Graphic design, 255Data science, 256Research, 257Community work, 258Marketing, 259User advocacy`},{type:"paragraph",text:"I think this is important because many developers assume that open source = writing code."},{type:"paragraph",text:"It doesn't."},{type:"paragraph",text:"Documentation, testing, design, community management and bug fixing can be just as important to an open source project."},{type:"paragraph",text:"Outreachy is particularly interesting if you are looking for a structured way to make your first contributions with mentorship."},{type:"link",text:"Visit Outreachy",url:"https://www.outreachy.org/"},{type:"heading",text:"3. Hacktoberfest"},{type:"image",text:"Hacktoberfest Banner",src:"https://hacktoberfest.com/_next/static/media/opengraph.6e804091.png",alt:"Hacktoberfest banner"},{type:"paragraph",text:"If you are completely new to open source, Hacktoberfest is probably one of the easiest places to start. Hacktoberfest is an annual global celebration of open source that happens during October. Unlike programs such as GSoC, you don't have to spend months preparing a proposal for one specific organisation. Instead, you can explore participating projects and contribute through pull requests or merge requests."},{type:"paragraph",text:"And your contribution doesn't necessarily have to be some huge feature."},{type:"paragraph",text:`You can work on: Documentation 260Tests 261Bug fixes 262Features 263Refactoring 264Accessibility 265Examples 266Other project improvements`},{type:"paragraph",text:"This makes Hacktoberfest a nice introduction to the actual open source workflow."},{type:"paragraph",text:"You fork a repository -> You clone it -> You create a branch -> You understand the issue -> You make your changes -> You test them -> You create a pull request -> Then someone reviews your work"},{type:"paragraph",text:"That entire process teaches you much more than simply watching another Git tutorial. But don't fall into the contribution-count trap"},{type:"paragraph",text:"This is important."},{type:"paragraph",text:"Don't contribute meaningless changes just to increase your GitHub contribution graph. The goal should be learning and helping the project, not collecting random PRs. A good PR that solves a real problem is worth much more than ten useless ones."},{type:"link",text:"Visit Hacktoberfest",url:"https://hacktoberfest.com/"},{type:"heading",text:"4. 24 Pull Requests"},{type:"image",text:"24 Pull Requests Banner",src:"https://github.blog/wp-content/uploads/2017/11/33359525-0f8299ba-d484-11e7-9228-196985e3d951.png?fit=1200%2C630",alt:"24 Pull Requests banner"},{type:"paragraph",text:"I really like the idea behind 24 Pull Requests."},{type:"paragraph",text:"The concept is simple: Make open source contributions during the 24 days leading up to Christmas. The original idea is to send 24 pull requests between December 1 and December 24."},{type:"paragraph",text:"The platform also highlights projects and issues that can be suitable for new contributors."},{type:"paragraph",text:"It can be documentation, bug fixes, tests, design improvements or code."},{type:"link",text:"Visit 24 Pull Requests",url:"https://24pullrequests.com/"},{type:"heading",text:"5. Season of KDE"},{type:"image",text:"Season of KDE Banner",src:"https://encrypted-tbn0.gstatic.
266com/images?q=tbn:ANd9GcQ-iNlAjnkNFnUvPocw3wQxyHmy2kqVTH7m5VJ8dPpoZfUpiL3NITbM1YA&s=10",alt:"Season of KDE banner"},{type:"paragraph",text:"If you use Linux or have ever explored KDE Plasma, this one is worth checking."},{type:"paragraph",text:"Season of KDE (SoK) is a KDE mentorship initiative where contributors work on real KDE-related projects. And this is another example of why I don't think open source is only about GSoC. KDE has a huge ecosystem of applications and technologies, and contributors can work on things ranging from development to documentation, design and community-related work."},{type:"heading",text:"Why KDE is interesting"},{type:"paragraph",text:"Working on a large project like KDE can teach you about:"},{type:"paragraph",text:`Large codebases 267Linux development 268Git workflows 269Code review 270Community-driven development 271Working with maintainers 272Software architecture`},{type:"paragraph",text:"If you are interested in Linux or desktop software, I'd definitely keep KDE on my list."},{type:"link",text:"Visit Season of KDE",url:"https://season.kde.org/"},{type:"heading",text:"6. Djangonaut Space"},{type:"image",text:"Djangonaut Space Banner",src:"https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQl_PLCXj5m-if-W_-Px34spbrJBCpXAYj8UBysaO0d4nV7aCbUGvlkkJ_H&s=10",alt:"Djangonaut Space banner"},{type:"paragraph",text:`Type: Free mentorship program 273Duration: 8 weeks 274Focus: Django / Python open source 275Best for: Python and Django developers`},{type:"paragraph",text:"If you are a Python developer, especially someone working with Django, Djangonaut Space is one of the programs I would personally keep bookmarked."},{type:"paragraph",text:"It is an 8-week group mentoring program designed to help contributors improve their Django contributions and potentially move towards leadership roles in the Django community."},{type:"paragraph",text:"I like this model because it is not trying to turn everything into an internship. Instead, it focuses on community, mentorship and contribution."},{type:"paragraph",text:"Participants work in a semi-structured environment and learn how to contribute to Django and related projects. And there is already a nice track record."},{type:"paragraph",text:"According to the program, previous participants have gone on to become maintainers, Django Foundation board members and members of different Django teams. So if you're already comfortable with Python and want to go deeper into Django, this is a much more focused opportunity than randomly looking for a repository."},{type:"link",text:"Visit Djangonaut Space",url:"https://djangonaut.space/"},{type:"heading",text:"7. Linux Foundation Mentorship / LFX Mentorship"},{type:"image",text:"LFX Mentorship Banner",src:"https://docs.linuxfoundation.org/lfx/~gitbook/ogimage/-M2cDinGy8PDUjGFXpM7",alt:"LFX Mentorship banner"},{type:"paragraph",text:"Last but definitely not least: Linux Foundation Mentorship, commonly encountered through the LFX Mentorship platform."},{type:"paragraph",text:`This one is particularly interesting if you want to move towards backend, cloud, infrastru
275cture or systems engineering. The Linux Foundation ecosystem includes mentorship opportunities across projects such as: Linux Kernel, 276CNCF, 277RISC-V, 278Open Mainframe Project, 279OpenHPC, 280LF Networking, 281GraphQL, 282LF Decentralized Trust`},{type:"paragraph",text:"This is where things get serious."},{type:"paragraph",text:"You may find yourself working with technologies and communities around Linux, Kubernetes, cloud-native infrastructure, networking, distributed systems and other large open source ecosystems."},{type:"paragraph",text:"The Linux Foundation describes its mentorship program as a way for developers â including first-time contributors â to learn the skills and resources needed to contribute effectively to open source. And that is exactly what makes these programs valuable."},{type:"link",text:"Visit LFX Mentorship",url:"https://lfx.linuxfoundation.org/tools/mentorship/"},{type:"heading",text:"One More Thing: Don't Ignore Unpaid Programs"},{type:"paragraph",text:'As students, we naturally look at the word "stipend" first.'},{type:"paragraph",text:"I get it."},{type:"paragraph",text:"But I wouldn't completely ignore unpaid programs."},{type:"paragraph",text:"A good open source contribution can give you things that a random certificate or another basic college project cannot:"},{type:"paragraph",text:`Real code review 283Experience with production repositories 284Collaboration with developers outside your college 285Understanding of Git workflows 286Publicly visible engineering work 287Communication with maintainers 288Experience reading unfamiliar code 289A contribution history you can actually show`},{type:"paragraph",text:"And perhaps most importantly, it teaches you how software is built when nobody is giving you the exact solution."},{type:"paragraph",text:"That's a very different skill from solving a LeetCode problem."},{type:"paragraph",text:"This list is not meant to be a ranking."},{type:"paragraph",text:"I put these programs together because when I was looking for ways to get into open source, it was easy to find individual programs but harder to understand which ones actually exist, what they are about, and where a beginner should start."},{type:"paragraph",text:"Hopefully this makes that process a little easier for someone else."}]}];function Zu(){return Xu.map(({content:e,...t})=>t)}function f3(e){return Xu.find(t=>t.slug===e)}const p3=({blog:e})=>y.jsx("article",{className:`group relative bg-[#161B22] border border-gray-800 rounded-xl overflow-hidden 290 hover:border-green-300/40 shadow-lg flex flex-col`,children:y.jsxs(Wt,{to:`/blogs/${e.slug}`,className:"flex flex-col h-full p-6",children:[y.jsxs("div",{className:"flex items-center gap-4 text-xs text-neutral-500 mb-3",children:[y.jsxs("span",{className:"flex items-center gap-1",children:[y.jsx(qu,{size:14}),e.date]}),y.jsxs("span",{className:"flex items-center gap-1",children:[y.jsx(Gu,{size:14}),e.readTime]})]}),y.jsx("h3",{className:"text-xl font-bold text-green-300 mb-3 group-hover:text-green-200 transition-colors",children:e.title}),y.jsx("p",{className:"text-neutral-400 text-sm mb-4 grow leading-relaxed",children:e.excerpt})]})}),m3=()=>{const e=Zu(),t={"@context":"https://schema.org","@type":"Blog",name:"Notes & Articles | Sonu Hansda",url:"https://sonu-hansda.me/blogs",description:"Deep dives into things I'm building, learning, and figuring out along the way.",blogPost:e.map(r=>({"@type":"BlogPosting",headline:r.title,description:r.excerpt,url:`https://sonu-hansda.me/blogs/${r.slug}`}))},n={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://sonu-hansda.me/"},{"@type":"ListItem",position:2,name:"Blogs",item:"https://sonu-hansda.me/blogs"}]};return y.jsxs("div",{className:"min-h-screen bg-[#0d0d0d] text-neutral-300",children:[y.jsx(es,{title:"Notes & Articles | Sonu Hansda",description:"Deep dives into things I'm building, learning, and figuring out along the way â web development, DevOps, open source, and more.",canonical:"https://sonu-hansda.me/blogs",jsonLd:[t,n]}),y.jsxs("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8 pt-8 pb-24 max-w-6xl",children:[y.jsxs(Wt,{to:"/",className:"inline-flex items-center gap-2 text-neutral-400 hover:text-green-300 transition-colors mb-12 text-sm font-bold",children:[y.jsx(Yu,{})," Back to Home"]}),y.jsx("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-black text-center mb-4 text-green-200",children:"Notes & Articles"}),y.jsx("p",{className:"text-center text-neutral-400 mb-16 max-w-2xl mx-auto text-sm sm:text-base",children:"Deep dives into things I'm building, learning, and figuring out along the way."}),y.jsx("div",{className:"grid gap-8 md:grid-cols-2 lg:grid-cols-2",children:e.map((r,i)=>y.jsx(p3,{blog:r,index:i},r.slug))}),e.length===0&&y.jsx("p",{className:"text-center text-neutral-500 text-lg mt-20",children:"No posts yet. Check back soon!"})]}),y.jsx(_s,{})]})},g3=()=>{const{slug:e}=Hd(),t=e?f3(e):void 0;if(!t)return y.jsx(rf,{to:"/blogs",replace:!0});const n=`https://sonu-hansda.me/blogs/${t.slug}`,r=t.coverImage||"https://sonu-hansda.me/og-image.png",i=(()=>{const a=new Date(t.date);return isNaN(a.getTime())?void 0:a.toISOString()})(),o={"@context":"https://schema.org","@type":"BlogPosting",headline:t.title,de
290scription:t.excerpt,image:r,...i&&{datePublished:i,dateModified:i},keywords:t.tags.join(", "),url:n,mainEntityOfPage:{"@type":"WebPage","@id":n},author:{"@type":"Person",name:"Sonu Hansda",url:"https://sonu-hansda.me"},publisher:{"@type":"Person",name:"Sonu Hansda",url:"https://sonu-hansda.me"}},s={"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:[{"@type":"ListItem",position:1,name:"Home",item:"https://sonu-hansda.me/"},{"@type":"ListItem",position:2,name:"Blogs",item:"https://sonu-hansda.me/blogs"},{"@type":"ListItem",position:3,name:t.title,item:n}]};return y.jsxs("div",{className:"min-h-screen bg-[#0d0d0d] text-neutral-300",children:[y.jsx(es,{title:`${t.title} | Sonu Hansda`,description:t.excerpt,canonical:`https://sonu-hansda.me/blogs/${t.slug}`,image:t.coverImage,type:"article",publishedTime:t.date,tags:t.tags,jsonLd:[o,s]}),y.jsxs("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8 pt-8 pb-24 max-w-6xl",children:[y.jsxs(Wt,{to:"/blogs",className:"inline-flex items-center gap-2 text-neutral-400 hover:text-green-300 transition-colors mb-12 text-sm font-bold",children:[y.jsx(Yu,{})," Back to Blogs"]}),y.jsxs("article",{children:[y.jsxs("header",{className:"mb-12",children:[y.jsxs("div",{className:"flex flex-wrap items-center gap-4 text-sm text-neutral-500 mb-4",children:[y.jsxs("span",{className:"flex items-center gap-1.5",children:[y.jsx(qu,{size:16}),t.date]}),y.jsxs("span",{className:"flex items-center gap-1.5",children:[y.jsx(Gu,{size:16}),t.readTime]})]}),y.jsx("h1",{className:"text-3xl sm:text-4xl md:text-5xl font-black text-green-200 mb-6 leading-tight",children:t.title}),y.jsx("div",{className:"flex flex-wrap gap-2",children:t.tags.map(a=>y.jsx("span",{className:"px-3 py-1 text-xs rounded-full bg-gray-900/80 border border-green-300/20 text-green-200",children:a},a))})]}),y.jsx("div",{className:"space-y-6",children:t.content.map((a,l)=>{switch(a.type){case"heading":return y.jsx("h2",{className:"text-2xl sm:text-3xl font-bold text-green-300 mt-12 mb-4",children:a.text},l);case"paragraph":return y.jsx("p",{className:"text-neutral-300 leading-relaxed text-base sm:text-lg",children:a.text},l);case"code":return y.jsx("pre",{className:"bg-[#161B22] border border-gray-800 rounded-xl p-5 overflow-x-auto text-sm text-green-200 font-mono leading-relaxed my-6",children:y.jsx("code",{children:a.text})},l);case"image":return y.jsx("figure",{className:"my-8",children:y.jsx("img",{src:a.src,alt:a.alt||"",className:"w-full max-w-2xl mx-auto rounded-xl border border-gray-800 object-cover",loading:"lazy"})},l);case"link":return y.jsxs("a",{href:a.url,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-1.5 text-green-300 hover:text-green-200 underline underline-offset-4 transition-colors text-base sm:text-lg font-medium",children:[a.text,y.jsx(Wu,{size:14})]},l);case"callout":return y.jsx("aside",{className:"bg-gray-900/40 border-l-2 border-green-400/50 rounded-r-lg px-4 py-3 my-6 text-sm text-neutral-400 italic",children:a.text},l);default:return null}})})]})]}),y.jsx(Ku,{}),y.jsx(_s,{})]})},y3=[{path:"/",element:y.jsx(d3,{}),entry:"src/pages/Home.tsx"},{path:"/blogs",element:y.jsx(m3,{}),entry:"src/pages/blogs/Blogs.tsx"},{path:"/blogs/:slug",element:y.jsx(g3,{}),entry:"src/pages/blogs/BlogPost.tsx",getStaticPaths:()=>Zu().map(e=>`/blogs/${e.slug}`)}];Ff({routes:y3});export{Uh as a,Yt as g,bl as r};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.