a(c,t))e[r]=c,e[s]=t,r=s;else break}}return n}function a(e,n){var t=e.sortIndex-n.sortIndex;return 0!==t?t:e.id-n.id}if("object"==typeof performance&&"function"==typeof performance.now){var u,o=performance;n.unstable_now=function(){return o.now()}}else{var i=Date,s=i.now();n.unstable_now=function(){return i.now()-s}}var c=[],f=[],d=1,p=null,m=3,h=!1,g=!1,v=!1,y="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,k="undefined"!=typeof setImmediate?setImmediate:null;function w(e){for(var n=r(f);null!==n;){if(null===n.callback)l(f);else if(n.startTime<=e)l(f),n.sortIndex=n.expirationTime,t(c,n);else break;n=r(f)}}function S(e){if(v=!1,w(e),!g){if(null!==r(c))g=!0,M(x);else{var n=r(f);null!==n&&F(S,n.startTime-e)}}}function x(e,t){g=!1,v&&(v=!1,b(C),C=-1),h=!0;var a=m;try{for(w(t),p=r(c);null!==p&&(!(p.expirationTime>t)||e&&!z());){var u=p.callback;if("function"==typeof u){p.callback=null,m=p.priorityLevel;var o=u(p.expirationTime<=t);t=n.unstable_now(),"function"==typeof o?p.callback=o:p===r(c)&&l(c),w(t)}else l(c);p=r(c)}if(null!==p)var i=!0;else{var s=r(f);null!==s&&F(S,s.startTime-t),i=!1}return i}finally{p=null,m=a,h=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var E=!1,_=null,C=-1,P=5,N=-1;function z(){return!(n.unstable_now()-Ne||125u?(e.sortIndex=a,t(f,e),null===r(c)&&e===r(f)&&(v?(b(C),C=-1):v=!0,F(S,a-u))):(e.sortIndex=o,t(c,e),g||h||(g=!0,M(x))),e},n.unstable_shouldYield=z,n.unstable_wrapCallback=function(e){var n=m;return function(){var t=m;m=n;try{return e.apply(this,arguments)}finally{m=t}}}},3840:(e,n,t)=>{e.exports=t(53)}}]);
\ No newline at end of file
diff --git a/_next/static/chunks/main-7a29471b37b44f72.js b/_next/static/chunks/main-7a29471b37b44f72.js
new file mode 100644
index 0000000..cb7fce3
--- /dev/null
+++ b/_next/static/chunks/main-7a29471b37b44f72.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[179],{4878:(e,t)=>{"use strict";function r(){return""}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDeploymentIdQueryOrEmptyString",{enumerable:!0,get:function(){return r}})},37:()=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},3454:(e,t,r)=>{"use strict";var n,a;e.exports=(null==(n=r.g.process)?void 0:n.env)&&"object"==typeof(null==(a=r.g.process)?void 0:a.env)?r.g.process:r(7663)},9470:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addBasePath",{enumerable:!0,get:function(){return o}});let n=r(6286),a=r(8337);function o(e,t){return(0,a.normalizePathTrailingSlash)((0,n.addPathPrefix)(e,""))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5490:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addLocale",{enumerable:!0,get:function(){return n}}),r(8337);let n=function(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_HEADER:function(){return n},FLIGHT_HEADERS:function(){return c},NEXT_DID_POSTPONE_HEADER:function(){return p},NEXT_HMR_REFRESH_HEADER:function(){return s},NEXT_IS_PRERENDER_HEADER:function(){return h},NEXT_ROUTER_PREFETCH_HEADER:function(){return o},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_STALE_TIME_HEADER:function(){return d},NEXT_ROUTER_STATE_TREE_HEADER:function(){return a},NEXT_RSC_UNION_QUERY:function(){return f},NEXT_URL:function(){return u},RSC_CONTENT_TYPE_HEADER:function(){return l},RSC_HEADER:function(){return r}});let r="RSC",n="Next-Action",a="Next-Router-State-Tree",o="Next-Router-Prefetch",i="Next-Router-Segment-Prefetch",s="Next-HMR-Refresh",u="Next-Url",l="text/x-component",c=[r,a,o,s,i],f="_rsc",d="x-nextjs-stale-time",p="x-nextjs-postponed",h="x-nextjs-prerender";("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7169:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getSocketUrl",{enumerable:!0,get:function(){return a}});let n=r(3395);function a(e){let t=(0,n.normalizedAssetPrefix)(e),r=function(e){let t=window.location.protocol;try{t=new URL(e).protocol}catch(e){}return"http:"===t?"ws:":"wss:"}(e||"");if(URL.canParse(t))return t.replace(/^http/,"ws");let{hostname:a,port:o}=window.location;return r+"//"+a+(o?":"+o:"")+t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4920:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{addMessageListener:function(){return s},connectHMR:function(){return d},sendMessage:function(){return u}});let a=r(9492),o=r(7169),i=[];function s(e){i.push(e)}function u(e){if(n&&n.readyState===n.OPEN)return n.send(e)}let l=0,c=!1,f=null;function d(e){!function t(){let r;function s(){if(n.onerror=null,n.onclose=null,n.close(),++l>25){c=!0,window.location.reload();return}clearTimeout(r),r=setTimeout(t,l>5?5e3:1e3)}n&&n.close();let u=(0,o.getSocketUrl)(e.assetPrefix);(n=new window.WebSocket(""+u+e.path)).onopen=function(){l=0,window.console.log("[HMR] connected")},n.onerror=s,n.onclose=s,n.onmessage=function(e){if(c)return;let t=JSON.parse(e.data);if("action"in t&&t.action===a.HMR_ACTIONS_SENT_TO_BROWSER.TURBOPACK_CONNECTED){if(null!==f&&f!==t.data.sessionId){window.location.reload(),c=!0;return}f=t.data.sessionId}for(let e of i)e(t)}}()}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4166:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"detectDomainLocale",{enumerable:!0,get:function(){return r}});let r=function(){for(var e=arguments.length,t=Array(e),r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasBasePath",{enumerable:!0,get:function(){return a}});let n=r(6777);function a(e){return(0,n.pathHasPrefix)(e,"")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6913:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return i},isEqualNode:function(){return o}});let a=r(1321);function o(e,t){if(e instanceof HTMLElement&&t instanceof HTMLElement){let r=t.getAttribute("nonce");if(r&&!e.getAttribute("nonce")){let n=t.cloneNode(!0);return n.setAttribute("nonce",""),n.nonce=r,r===e.nonce&&e.isEqualNode(n)}}return e.isEqualNode(t)}function i(){return{mountedInstances:new Set,updateHead:e=>{let t={};e.forEach(e=>{if("link"===e.type&&e.props["data-optimized-fonts"]){if(document.querySelector('style[data-href="'+e.props["data-href"]+'"]'))return;e.props.href=e.props["data-href"],e.props["data-href"]=void 0}let r=t[e.type]||[];r.push(e),t[e.type]=r});let r=t.title?t.title[0]:null,a="";if(r){let{children:e}=r.props;a="string"==typeof e?e:Array.isArray(e)?e.join(""):""}a!==document.title&&(document.title=a),["meta","base","link","style","script"].forEach(e=>{n(e,t[e]||[])})}}}n=(e,t)=>{let r=document.querySelector("head");if(!r)return;let n=new Set(r.querySelectorAll(""+e+"[data-next-head]"));if("meta"===e){let e=r.querySelector("meta[charset]");null!==e&&n.add(e)}let i=[];for(let e=0;e{"use strict";let n,a,o,i,s,u,l,c,f,d,p,h;Object.defineProperty(t,"__esModule",{value:!0});let _=r(1757);Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{emitter:function(){return q},hydrate:function(){return ec},initialize:function(){return Y},router:function(){return n},version:function(){return G}});let m=r(8754),g=r(5893);r(37);let y=m._(r(7294)),P=m._(r(745)),E=r(1515),b=m._(r(5001)),v=r(1928),S=r(631),R=r(9936),O=r(9730),T=r(7500),A=r(9903),j=r(6144),x=m._(r(6913)),w=m._(r(3419)),C=r(6494),I=r(3079),M=r(676),N=r(3945),L=r(646),D=r(1149),U=r(257),k=r(546),F=r(2608),H=r(7022),B=m._(r(1152)),W=m._(r(3436)),G="15.0.1",q=(0,b.default)(),X=e=>[].slice.call(e),V=!1;class z extends y.default.Component{componentDidCatch(e,t){this.props.fn(e,t)}componentDidMount(){this.scrollToHash(),n.isSsr&&(a.isFallback||a.nextExport&&((0,R.isDynamicRoute)(n.pathname)||location.search,1)||a.props&&a.props.__N_SSG&&(location.search,1))&&n.replace(n.pathname+"?"+String((0,O.assign)((0,O.urlQueryToSearchParams)(n.query),new URLSearchParams(location.search))),o,{_h:1,shallow:!a.isFallback&&!V}).catch(e=>{if(!e.cancelled)throw e})}componentDidUpdate(){this.scrollToHash()}scrollToHash(){let{hash:e}=location;if(!(e=e&&e.substring(1)))return;let t=document.getElementById(e);t&&setTimeout(()=>t.scrollIntoView(),0)}render(){return this.props.children}}async function Y(e){void 0===e&&(e={}),B.default.onSpanEnd(W.default),a=JSON.parse(document.getElementById("__NEXT_DATA__").textContent),window.__NEXT_DATA__=a,h=a.defaultLocale;let t=a.assetPrefix||"";if(self.__next_set_public_path__(""+t+"/_next/"),(0,T.setConfig)({serverRuntimeConfig:{},publicRuntimeConfig:a.runtimeConfig||{}}),o=(0,A.getURL)(),(0,D.hasBasePath)(o)&&(o=(0,L.removeBasePath)(o)),a.scriptLoader){let{initScriptLoader:e}=r(3381);e(a.scriptLoader)}i=new w.default(a.buildId,t);let l=e=>{let[t,r]=e;return i.routeLoader.onEntrypoint(t,r)};return window.__NEXT_P&&window.__NEXT_P.map(e=>setTimeout(()=>l(e),0)),window.__NEXT_P=[],window.__NEXT_P.push=l,(u=(0,x.default)()).getIsSsr=()=>n.isSsr,s=document.getElementById("__next"),{assetPrefix:t}}function K(e,t){return(0,g.jsx)(e,{...t})}function $(e){var t;let{children:r}=e,a=y.default.useMemo(()=>(0,k.adaptForAppRouterInstance)(n),[]);return(0,g.jsx)(z,{fn:e=>J({App:f,err:e}).catch(e=>console.error("Error rendering page: ",e)),children:(0,g.jsx)(U.AppRouterContext.Provider,{value:a,children:(0,g.jsx)(F.SearchParamsContext.Provider,{value:(0,k.adaptForSearchParams)(n),children:(0,g.jsx)(k.PathnameContextProviderAdapter,{router:n,isAutoExport:null!=(t=self.__NEXT_DATA__.autoExport)&&t,children:(0,g.jsx)(F.PathParamsContext.Provider,{value:(0,k.adaptForPathParams)(n),children:(0,g.jsx)(v.RouterContext.Provider,{value:(0,I.makePublicRouterInstance)(n),children:(0,g.jsx)(E.HeadManagerContext.Provider,{value:u,children:(0,g.jsx)(N.ImageConfigContext.Provider,{value:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!0},children:r})})})})})})})})}let Q=e=>t=>{let r={...t,Component:p,err:a.err,router:n};return(0,g.jsx)($,{children:K(e,r)})};function J(e){let{App:t,err:s}=e;return console.error(s),console.error("A client-side exception has occurred, see here for more info: https://nextjs.org/docs/messages/client-side-exception-occurred"),i.loadPage("/_error").then(n=>{let{page:a,styleSheets:o}=n;return(null==l?void 0:l.Component)===a?Promise.resolve().then(()=>_._(r(2111))).then(n=>Promise.resolve().then(()=>_._(r(3802))).then(r=>(t=r.default,e.App=t,n))).then(e=>({ErrorComponent:e.default,styleSheets:[]})):{ErrorComponent:a,styleSheets:o}}).then(r=>{var i;let{ErrorComponent:u,styleSheets:l}=r,c=Q(t),f={Component:u,AppTree:c,router:n,ctx:{err:s,pathname:a.page,query:a.query,asPath:o,AppTree:c}};return Promise.resolve((null==(i=e.props)?void 0:i.err)?e.props:(0,A.loadGetInitialProps)(t,f)).then(t=>eu({...e,err:s,Component:u,styleSheets:l,props:t}))})}function Z(e){let{callback:t}=e;return y.default.useLayoutEffect(()=>t(),[t]),null}let ee={navigationStart:"navigationStart",beforeRender:"beforeRender",afterRender:"afterRender",afterHydrate:"afterHydrate",routeChange:"routeChange"},et={hydration:"Next.js-hydration",beforeHydration:"Next.js-before-hydration",routeChangeToRender:"Next.js-route-change-to-render",render:"Next.js-render"},er=null,en=!0;function ea(){[ee.beforeRender,ee.afterHydrate,ee.afterRender,ee.routeChange].forEach(e=>performance.clearMarks(e))}function eo(){A.ST&&(performance.mark(ee.afterHydrate),performance.getEntriesByName(ee.beforeRender,"mark").length&&(performance.measure(et.beforeHydration,ee.navigationStart,ee.beforeRender),performance.measure(et.hydration,ee.beforeRender,ee.afterHydrate)),d&&performance.getEntriesByName(et.hydration).forEach(d),ea())}function ei(){if(!A.ST)return;performance.mark(ee.afterRender);let e=performance.getEntriesByName(ee.routeChange,"mark");e.length&&(performance.getEntriesByName(ee.beforeRender,"mark").length&&(performance.measure(et.routeChangeToRender,e[0].name,ee.beforeRender),performance.measure(et.render,ee.beforeRender,ee.afterRender),d&&(performance.getEntriesByName(et.render).forEach(d),performance.getEntriesByName(et.routeChangeToRender).forEach(d))),ea(),[et.routeChangeToRender,et.render].forEach(e=>performance.clearMeasures(e)))}function es(e){let{callbacks:t,children:r}=e;return y.default.useLayoutEffect(()=>t.forEach(e=>e()),[t]),r}function eu(e){let t,{App:r,Component:a,props:o,err:i}=e,u="initial"in e?void 0:e.styleSheets;a=a||l.Component;let f={...o=o||l.props,Component:a,err:i,router:n};l=f;let d=!1,p=new Promise((e,r)=>{c&&c(),t=()=>{c=null,e()},c=()=>{d=!0,c=null;let e=Error("Cancel rendering route");e.cancelled=!0,r(e)}});function h(){t()}!function(){if(!u)return;let e=new Set(X(document.querySelectorAll("style[data-n-href]")).map(e=>e.getAttribute("data-n-href"))),t=document.querySelector("noscript[data-n-css]"),r=null==t?void 0:t.getAttribute("data-n-css");u.forEach(t=>{let{href:n,text:a}=t;if(!e.has(n)){let e=document.createElement("style");e.setAttribute("data-n-href",n),e.setAttribute("media","x"),r&&e.setAttribute("nonce",r),document.head.appendChild(e),e.appendChild(document.createTextNode(a))}})}();let _=(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(Z,{callback:function(){if(u&&!d){let e=new Set(u.map(e=>e.href)),t=X(document.querySelectorAll("style[data-n-href]")),r=t.map(e=>e.getAttribute("data-n-href"));for(let n=0;n{let{href:t}=e,r=document.querySelector('style[data-n-href="'+t+'"]');r&&(n.parentNode.insertBefore(r,n.nextSibling),n=r)}),X(document.querySelectorAll("link[data-n-p]")).forEach(e=>{e.parentNode.removeChild(e)})}if(e.scroll){let{x:t,y:r}=e.scroll;(0,S.handleSmoothScroll)(()=>{window.scrollTo(t,r)})}}}),(0,g.jsxs)($,{children:[K(r,f),(0,g.jsx)(j.Portal,{type:"next-route-announcer",children:(0,g.jsx)(C.RouteAnnouncer,{})})]})]});return!function(e,t){A.ST&&performance.mark(ee.beforeRender);let r=t(en?eo:ei);er?(0,y.default.startTransition)(()=>{er.render(r)}):(er=P.default.hydrateRoot(e,r,{onRecoverableError:H.onRecoverableError}),en=!1)}(s,e=>(0,g.jsx)(es,{callbacks:[e,h],children:_})),p}async function el(e){if(e.err&&(void 0===e.Component||!e.isHydratePass)){await J(e);return}try{await eu(e)}catch(r){let t=(0,M.getProperError)(r);if(t.cancelled)throw t;await J({...e,err:t})}}async function ec(e){let t=a.err;try{let e=await i.routeLoader.whenEntrypoint("/_app");if("error"in e)throw e.error;let{component:t,exports:r}=e;f=t,r&&r.reportWebVitals&&(d=e=>{let t,{id:n,name:a,startTime:o,value:i,duration:s,entryType:u,entries:l,attribution:c}=e,f=Date.now()+"-"+(Math.floor(Math.random()*(9e12-1))+1e12);l&&l.length&&(t=l[0].startTime);let d={id:n||f,name:a,startTime:o||t,value:null==i?s:i,label:"mark"===u||"measure"===u?"custom":"web-vital"};c&&(d.attribution=c),r.reportWebVitals(d)});let n=await i.routeLoader.whenEntrypoint(a.page);if("error"in n)throw n.error;p=n.component}catch(e){t=(0,M.getProperError)(e)}window.__NEXT_PRELOADREADY&&await window.__NEXT_PRELOADREADY(a.dynamicIds),n=(0,I.createRouter)(a.page,a.query,o,{initialProps:a.props,pageLoader:i,App:f,Component:p,wrapApp:Q,err:t,isFallback:!!a.isFallback,subscription:(e,t,r)=>el(Object.assign({},e,{App:t,scroll:r})),locale:a.locale,locales:a.locales,defaultLocale:h,domainLocales:a.domainLocales,isPreview:a.isPreview}),V=await n._initialMatchesMiddlewarePromise;let r={App:f,initial:!0,Component:p,props:a.props,err:t,isHydratePass:!0};(null==e?void 0:e.beforeRender)&&await e.beforeRender(),el(r)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3136:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(7178);let n=r(9930);window.next={version:n.version,get router(){return n.router},emitter:n.emitter},(0,n.initialize)({}).then(()=>(0,n.hydrate)()).catch(console.error),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8337:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return o}});let n=r(2657),a=r(2122),o=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:o}=(0,a.parsePath)(e);return""+(0,n.removeTrailingSlash)(t)+r+o};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7022:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"onRecoverableError",{enumerable:!0,get:function(){return o}});let n=r(947),a="function"==typeof reportError?reportError:e=>{window.console.error(e)};function o(e,t){(0,n.isBailoutToCSRError)(e)||a(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3419:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return d}});let n=r(8754),a=r(9470),o=r(1417),i=n._(r(7823)),s=r(5490),u=r(9936),l=r(2913),c=r(2657),f=r(9856);r(2929);class d{getPageList(){return(0,f.getClientBuildManifest)().then(e=>e.sortedPages)}getMiddleware(){return window.__MIDDLEWARE_MATCHERS=[],window.__MIDDLEWARE_MATCHERS}getDataHref(e){let{asPath:t,href:r,locale:n}=e,{pathname:f,query:d,search:p}=(0,l.parseRelativeUrl)(r),{pathname:h}=(0,l.parseRelativeUrl)(t),_=(0,c.removeTrailingSlash)(f);if("/"!==_[0])throw Error('Route name should start with a "/", got "'+_+'"');return(e=>{let t=(0,i.default)((0,c.removeTrailingSlash)((0,s.addLocale)(e,n)),".json");return(0,a.addBasePath)("/_next/data/"+this.buildId+t+p,!0)})(e.skipInterpolation?h:(0,u.isDynamicRoute)(_)?(0,o.interpolateAs)(f,h,d).result:_)}_isSsg(e){return this.promisedSsgManifest.then(t=>t.has(e))}loadPage(e){return this.routeLoader.loadRoute(e).then(e=>{if("component"in e)return{page:e.component,mod:e.exports,styleSheets:e.styles.map(e=>({href:e.href,text:e.content}))};throw e.error})}prefetch(e){return this.routeLoader.prefetch(e)}constructor(e,t){this.routeLoader=(0,f.createRouteLoader)(t),this.buildId=e,this.assetPrefix=t,this.promisedSsgManifest=new Promise(e=>{window.__SSG_MANIFEST?e(window.__SSG_MANIFEST):window.__SSG_MANIFEST_CB=()=>{e(window.__SSG_MANIFEST)}})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6144:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"Portal",{enumerable:!0,get:function(){return o}});let n=r(7294),a=r(3935),o=e=>{let{children:t,type:r}=e,[o,i]=(0,n.useState)(null);return(0,n.useEffect)(()=>{let e=document.createElement(r);return document.body.appendChild(e),i(e),()=>{document.body.removeChild(e)}},[r]),o?(0,a.createPortal)(t,o):null};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},646:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(1149),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8324:(e,t,r)=>{"use strict";function n(e,t){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeLocale",{enumerable:!0,get:function(){return n}}),r(2122),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4474:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{cancelIdleCallback:function(){return n},requestIdleCallback:function(){return r}});let r="undefined"!=typeof self&&self.requestIdleCallback&&self.requestIdleCallback.bind(window)||function(e){let t=Date.now();return self.setTimeout(function(){e({didTimeout:!1,timeRemaining:function(){return Math.max(0,50-(Date.now()-t))}})},1)},n="undefined"!=typeof self&&self.cancelIdleCallback&&self.cancelIdleCallback.bind(window)||function(e){return clearTimeout(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6075:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"resolveHref",{enumerable:!0,get:function(){return f}});let n=r(9730),a=r(8041),o=r(7085),i=r(9903),s=r(8337),u=r(3955),l=r(9062),c=r(1417);function f(e,t,r){let f;let d="string"==typeof t?t:(0,a.formatWithValidation)(t),p=d.match(/^[a-zA-Z]{1,}:\/\//),h=p?d.slice(p[0].length):d;if((h.split("?",1)[0]||"").match(/(\/\/|\\)/)){console.error("Invalid href '"+d+"' passed to next/router in page: '"+e.pathname+"'. Repeated forward-slashes (//) or backslashes \\ are not valid in the href.");let t=(0,i.normalizeRepeatedSlashes)(h);d=(p?p[0]:"")+t}if(!(0,u.isLocalURL)(d))return r?[d]:d;try{f=new URL(d.startsWith("#")?e.asPath:e.pathname,"http://n")}catch(e){f=new URL("/","http://n")}try{let e=new URL(d,f);e.pathname=(0,s.normalizePathTrailingSlash)(e.pathname);let t="";if((0,l.isDynamicRoute)(e.pathname)&&e.searchParams&&r){let r=(0,n.searchParamsToUrlQuery)(e.searchParams),{result:i,params:s}=(0,c.interpolateAs)(e.pathname,e.pathname,r);i&&(t=(0,a.formatWithValidation)({pathname:i,hash:e.hash,query:(0,o.omit)(r,s)}))}let i=e.origin===f.origin?e.href.slice(e.origin.length):e.href;return r?[i,t||i]:i}catch(e){return r?[d]:d}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6494:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{RouteAnnouncer:function(){return u},default:function(){return l}});let n=r(8754),a=r(5893),o=n._(r(7294)),i=r(3079),s={border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",top:0,width:"1px",whiteSpace:"nowrap",wordWrap:"normal"},u=()=>{let{asPath:e}=(0,i.useRouter)(),[t,r]=o.default.useState(""),n=o.default.useRef(e);return o.default.useEffect(()=>{if(n.current!==e){if(n.current=e,document.title)r(document.title);else{var t;let n=document.querySelector("h1");r((null!=(t=null==n?void 0:n.innerText)?t:null==n?void 0:n.textContent)||e)}}},[e]),(0,a.jsx)("p",{"aria-live":"assertive",id:"__next-route-announcer__",role:"alert",style:s,children:t})},l=u;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9856:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createRouteLoader:function(){return m},getClientBuildManifest:function(){return h},isAssetError:function(){return c},markAssetError:function(){return l}}),r(8754),r(7823);let n=r(8140),a=r(4474),o=r(4878),i=r(3924);function s(e,t,r){let n,a=t.get(e);if(a)return"future"in a?a.future:Promise.resolve(a);let o=new Promise(e=>{n=e});return t.set(e,{resolve:n,future:o}),r?r().then(e=>(n(e),e)).catch(r=>{throw t.delete(e),r}):o}let u=Symbol("ASSET_LOAD_ERROR");function l(e){return Object.defineProperty(e,u,{})}function c(e){return e&&u in e}let f=function(e){try{return e=document.createElement("link"),!!window.MSInputMethodContext&&!!document.documentMode||e.relList.supports("prefetch")}catch(e){return!1}}(),d=()=>(0,o.getDeploymentIdQueryOrEmptyString)();function p(e,t,r){return new Promise((n,o)=>{let i=!1;e.then(e=>{i=!0,n(e)}).catch(o),(0,a.requestIdleCallback)(()=>setTimeout(()=>{i||o(r)},t))})}function h(){return self.__BUILD_MANIFEST?Promise.resolve(self.__BUILD_MANIFEST):p(new Promise(e=>{let t=self.__BUILD_MANIFEST_CB;self.__BUILD_MANIFEST_CB=()=>{e(self.__BUILD_MANIFEST),t&&t()}}),3800,l(Error("Failed to load client build manifest")))}function _(e,t){return h().then(r=>{if(!(t in r))throw l(Error("Failed to lookup route: "+t));let a=r[t].map(t=>e+"/_next/"+(0,i.encodeURIPath)(t));return{scripts:a.filter(e=>e.endsWith(".js")).map(e=>(0,n.__unsafeCreateTrustedScriptURL)(e)+d()),css:a.filter(e=>e.endsWith(".css")).map(e=>e+d())}})}function m(e){let t=new Map,r=new Map,n=new Map,o=new Map;function i(e){{var t;let n=r.get(e.toString());return n||(document.querySelector('script[src^="'+e+'"]')?Promise.resolve():(r.set(e.toString(),n=new Promise((r,n)=>{(t=document.createElement("script")).onload=r,t.onerror=()=>n(l(Error("Failed to load script: "+e))),t.crossOrigin=void 0,t.src=e,document.body.appendChild(t)})),n))}}function u(e){let t=n.get(e);return t||n.set(e,t=fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw Error("Failed to load stylesheet: "+e);return t.text().then(t=>({href:e,content:t}))}).catch(e=>{throw l(e)})),t}return{whenEntrypoint:e=>s(e,t),onEntrypoint(e,r){(r?Promise.resolve().then(()=>r()).then(e=>({component:e&&e.default||e,exports:e}),e=>({error:e})):Promise.resolve(void 0)).then(r=>{let n=t.get(e);n&&"resolve"in n?r&&(t.set(e,r),n.resolve(r)):(r?t.set(e,r):t.delete(e),o.delete(e))})},loadRoute(r,n){return s(r,o,()=>{let a;return p(_(e,r).then(e=>{let{scripts:n,css:a}=e;return Promise.all([t.has(r)?[]:Promise.all(n.map(i)),Promise.all(a.map(u))])}).then(e=>this.whenEntrypoint(r).then(t=>({entrypoint:t,styles:e[1]}))),3800,l(Error("Route did not complete loading: "+r))).then(e=>{let{entrypoint:t,styles:r}=e,n=Object.assign({styles:r},t);return"error"in t?t:n}).catch(e=>{if(n)throw e;return{error:e}}).finally(()=>null==a?void 0:a())})},prefetch(t){let r;return(r=navigator.connection)&&(r.saveData||/2g/.test(r.effectiveType))?Promise.resolve():_(e,t).then(e=>Promise.all(f?e.scripts.map(e=>{var t,r,n;return t=e.toString(),r="script",new Promise((e,a)=>{if(document.querySelector('\n link[rel="prefetch"][href^="'+t+'"],\n link[rel="preload"][href^="'+t+'"],\n script[src^="'+t+'"]'))return e();n=document.createElement("link"),r&&(n.as=r),n.rel="prefetch",n.crossOrigin=void 0,n.onload=e,n.onerror=()=>a(l(Error("Failed to prefetch: "+t))),n.href=t,document.head.appendChild(n)})}):[])).then(()=>{(0,a.requestIdleCallback)(()=>this.loadRoute(t,!0).catch(()=>{}))}).catch(()=>{})}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3079:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{Router:function(){return o.default},createRouter:function(){return _},default:function(){return p},makePublicRouterInstance:function(){return m},useRouter:function(){return h},withRouter:function(){return u.default}});let n=r(8754),a=n._(r(7294)),o=n._(r(5298)),i=r(1928),s=n._(r(676)),u=n._(r(1530)),l={router:null,readyCallbacks:[],ready(e){if(this.router)return e();this.readyCallbacks.push(e)}},c=["pathname","route","query","asPath","components","isFallback","basePath","locale","locales","defaultLocale","isReady","isPreview","isLocaleDomain","domainLocales"],f=["push","replace","reload","back","prefetch","beforePopState"];function d(){if(!l.router)throw Error('No router instance found.\nYou should only use "next/router" on the client side of your app.\n');return l.router}Object.defineProperty(l,"events",{get:()=>o.default.events}),c.forEach(e=>{Object.defineProperty(l,e,{get:()=>d()[e]})}),f.forEach(e=>{l[e]=function(){for(var t=arguments.length,r=Array(t),n=0;n{l.ready(()=>{o.default.events.on(e,function(){for(var t=arguments.length,r=Array(t),n=0;ne()),l.readyCallbacks=[],l.router}function m(e){let t={};for(let r of c){if("object"==typeof e[r]){t[r]=Object.assign(Array.isArray(e[r])?[]:{},e[r]);continue}t[r]=e[r]}return t.events=o.default.events,f.forEach(r=>{t[r]=function(){for(var t=arguments.length,n=Array(t),a=0;a{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return y},handleClientScriptLoad:function(){return _},initScriptLoader:function(){return m}});let n=r(8754),a=r(1757),o=r(5893),i=n._(r(3935)),s=a._(r(7294)),u=r(1515),l=r(1321),c=r(4474),f=new Map,d=new Set,p=e=>{if(i.default.preinit){e.forEach(e=>{i.default.preinit(e,{as:"style"})});return}{let t=document.head;e.forEach(e=>{let r=document.createElement("link");r.type="text/css",r.rel="stylesheet",r.href=e,t.appendChild(r)})}},h=e=>{let{src:t,id:r,onLoad:n=()=>{},onReady:a=null,dangerouslySetInnerHTML:o,children:i="",strategy:s="afterInteractive",onError:u,stylesheets:c}=e,h=r||t;if(h&&d.has(h))return;if(f.has(t)){d.add(h),f.get(t).then(n,u);return}let _=()=>{a&&a(),d.add(h)},m=document.createElement("script"),g=new Promise((e,t)=>{m.addEventListener("load",function(t){e(),n&&n.call(this,t),_()}),m.addEventListener("error",function(e){t(e)})}).catch(function(e){u&&u(e)});o?(m.innerHTML=o.__html||"",_()):i?(m.textContent="string"==typeof i?i:Array.isArray(i)?i.join(""):"",_()):t&&(m.src=t,f.set(t,g)),(0,l.setAttributesFromProps)(m,e),"worker"===s&&m.setAttribute("type","text/partytown"),m.setAttribute("data-nscript",s),c&&p(c),document.body.appendChild(m)};function _(e){let{strategy:t="afterInteractive"}=e;"lazyOnload"===t?window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>h(e))}):h(e)}function m(e){e.forEach(_),[...document.querySelectorAll('[data-nscript="beforeInteractive"]'),...document.querySelectorAll('[data-nscript="beforePageRender"]')].forEach(e=>{let t=e.id||e.getAttribute("src");d.add(t)})}function g(e){let{id:t,src:r="",onLoad:n=()=>{},onReady:a=null,strategy:l="afterInteractive",onError:f,stylesheets:p,..._}=e,{updateScripts:m,scripts:g,getIsSsr:y,appDir:P,nonce:E}=(0,s.useContext)(u.HeadManagerContext),b=(0,s.useRef)(!1);(0,s.useEffect)(()=>{let e=t||r;b.current||(a&&e&&d.has(e)&&a(),b.current=!0)},[a,t,r]);let v=(0,s.useRef)(!1);if((0,s.useEffect)(()=>{!v.current&&("afterInteractive"===l?h(e):"lazyOnload"===l&&("complete"===document.readyState?(0,c.requestIdleCallback)(()=>h(e)):window.addEventListener("load",()=>{(0,c.requestIdleCallback)(()=>h(e))})),v.current=!0)},[e,l]),("beforeInteractive"===l||"worker"===l)&&(m?(g[l]=(g[l]||[]).concat([{id:t,src:r,onLoad:n,onReady:a,onError:f,..._}]),m(g)):y&&y()?d.add(t||r):y&&!y()&&h(e)),P){if(p&&p.forEach(e=>{i.default.preinit(e,{as:"style"})}),"beforeInteractive"===l)return r?(i.default.preload(r,_.integrity?{as:"script",integrity:_.integrity,nonce:E,crossOrigin:_.crossOrigin}:{as:"script",nonce:E,crossOrigin:_.crossOrigin}),(0,o.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([r,{..._,id:t}])+")"}})):(_.dangerouslySetInnerHTML&&(_.children=_.dangerouslySetInnerHTML.__html,delete _.dangerouslySetInnerHTML),(0,o.jsx)("script",{nonce:E,dangerouslySetInnerHTML:{__html:"(self.__next_s=self.__next_s||[]).push("+JSON.stringify([0,{..._,id:t}])+")"}}));"afterInteractive"===l&&r&&i.default.preload(r,_.integrity?{as:"script",integrity:_.integrity,nonce:E,crossOrigin:_.crossOrigin}:{as:"script",nonce:E,crossOrigin:_.crossOrigin})}return null}Object.defineProperty(g,"__nextScript",{value:!0});let y=g;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1321:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"setAttributesFromProps",{enumerable:!0,get:function(){return o}});let r={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv",noModule:"noModule"},n=["onLoad","onReady","dangerouslySetInnerHTML","children","onError","strategy","stylesheets"];function a(e){return["async","defer","noModule"].includes(e)}function o(e,t){for(let[o,i]of Object.entries(t)){if(!t.hasOwnProperty(o)||n.includes(o)||void 0===i)continue;let s=r[o]||o.toLowerCase();"SCRIPT"===e.tagName&&a(s)?e[s]=!!i:e.setAttribute(s,String(i)),(!1===i||"SCRIPT"===e.tagName&&a(s)&&(!i||"false"===i))&&(e.setAttribute(s,""),e.removeAttribute(s))}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3436:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return a}});let n=r(4920);function a(e){if("ended"!==e.state.state)throw Error("Expected span to be ended");(0,n.sendMessage)(JSON.stringify({event:"span-end",startTime:e.startTime,endTime:e.state.endTime,spanName:e.name,attributes:e.attributes}))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1152:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(8754)._(r(5001));class a{end(e){if("ended"===this.state.state)throw Error("Span has already ended");this.state={state:"ended",endTime:null!=e?e:Date.now()},this.onSpanEnd(this)}constructor(e,t,r){var n,a;this.name=e,this.attributes=null!=(n=t.attributes)?n:{},this.startTime=null!=(a=t.startTime)?a:Date.now(),this.onSpanEnd=r,this.state={state:"inprogress"}}}class o{startSpan(e,t){return new a(e,t,this.handleSpanEnd)}onSpanEnd(e){return this._emitter.on("spanend",e),()=>{this._emitter.off("spanend",e)}}constructor(){this._emitter=(0,n.default)(),this.handleSpanEnd=e=>{this._emitter.emit("spanend",e)}}}let i=new o;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8140:(e,t)=>{"use strict";let r;function n(e){var t;return(null==(t=function(){if(void 0===r){var e;r=(null==(e=window.trustedTypes)?void 0:e.createPolicy("nextjs",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e}))||null}return r}())?void 0:t.createScriptURL(e))||e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"__unsafeCreateTrustedScriptURL",{enumerable:!0,get:function(){return n}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7178:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(4878),self.__next_set_public_path__=e=>{r.p=e},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1530:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}}),r(8754);let n=r(5893);r(7294);let a=r(3079);function o(e){function t(t){return(0,n.jsx)(e,{router:(0,a.useRouter)(),...t})}return t.getInitialProps=e.getInitialProps,t.origGetInitialProps=e.origGetInitialProps,t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3802:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return u}});let n=r(8754),a=r(5893),o=n._(r(7294)),i=r(9903);async function s(e){let{Component:t,ctx:r}=e;return{pageProps:await (0,i.loadGetInitialProps)(t,r)}}class u extends o.default.Component{render(){let{Component:e,pageProps:t}=this.props;return(0,a.jsx)(e,{...t})}}u.origGetInitialProps=s,u.getInitialProps=s,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2111:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return c}});let n=r(8754),a=r(5893),o=n._(r(7294)),i=n._(r(3867)),s={400:"Bad Request",404:"This page could not be found",405:"Method Not Allowed",500:"Internal Server Error"};function u(e){let{res:t,err:r}=e;return{statusCode:t&&t.statusCode?t.statusCode:r?r.statusCode:404}}let l={error:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",textAlign:"center",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},desc:{lineHeight:"48px"},h1:{display:"inline-block",margin:"0 20px 0 0",paddingRight:23,fontSize:24,fontWeight:500,verticalAlign:"top"},h2:{fontSize:14,fontWeight:400,lineHeight:"28px"},wrap:{display:"inline-block"}};class c extends o.default.Component{render(){let{statusCode:e,withDarkMode:t=!0}=this.props,r=this.props.title||s[e]||"An unexpected error has occurred";return(0,a.jsxs)("div",{style:l.error,children:[(0,a.jsx)(i.default,{children:(0,a.jsx)("title",{children:e?e+": "+r:"Application error: a client-side exception has occurred"})}),(0,a.jsxs)("div",{style:l.desc,children:[(0,a.jsx)("style",{dangerouslySetInnerHTML:{__html:"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}"+(t?"@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}":"")}}),e?(0,a.jsx)("h1",{className:"next-error-h1",style:l.h1,children:e}):null,(0,a.jsx)("div",{style:l.wrap,children:(0,a.jsxs)("h2",{style:l.h2,children:[this.props.title||e?r:(0,a.jsx)(a.Fragment,{children:"Application error: a client-side exception has occurred (see the browser console for more information)"}),"."]})})]})]})}}c.displayName="ErrorPage",c.getInitialProps=u,c.origGetInitialProps=u,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8995:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AmpStateContext",{enumerable:!0,get:function(){return n}});let n=r(8754)._(r(7294)).default.createContext({})},8214:(e,t)=>{"use strict";function r(e){let{ampFirst:t=!1,hybrid:r=!1,hasQuery:n=!1}=void 0===e?{}:e;return t||r&&n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isInAmpMode",{enumerable:!0,get:function(){return r}})},257:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{AppRouterContext:function(){return a},GlobalLayoutRouterContext:function(){return i},LayoutRouterContext:function(){return o},MissingSlotContext:function(){return u},TemplateContext:function(){return s}});let n=r(8754)._(r(7294)),a=n.default.createContext(null),o=n.default.createContext(null),i=n.default.createContext(null),s=n.default.createContext(null),u=n.default.createContext(new Set)},2989:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"BloomFilter",{enumerable:!0,get:function(){return r}});class r{static from(e,t){void 0===t&&(t=1e-4);let n=new r(e.length,t);for(let t of e)n.add(t);return n}export(){return{numItems:this.numItems,errorRate:this.errorRate,numBits:this.numBits,numHashes:this.numHashes,bitArray:this.bitArray}}import(e){this.numItems=e.numItems,this.errorRate=e.errorRate,this.numBits=e.numBits,this.numHashes=e.numHashes,this.bitArray=e.bitArray}add(e){this.getHashValues(e).forEach(e=>{this.bitArray[e]=1})}contains(e){return this.getHashValues(e).every(e=>this.bitArray[e])}getHashValues(e){let t=[];for(let r=1;r<=this.numHashes;r++){let n=function(e){let t=0;for(let r=0;r>>13,t=Math.imul(t,0x5bd1e995);return t>>>0}(""+e+r)%this.numBits;t.push(n)}return t}constructor(e,t=1e-4){this.numItems=e,this.errorRate=t,this.numBits=Math.ceil(-(e*Math.log(t))/(Math.log(2)*Math.log(2))),this.numHashes=Math.ceil(this.numBits/e*Math.log(2)),this.bitArray=Array(this.numBits).fill(0)}}},2929:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{APP_BUILD_MANIFEST:function(){return P},APP_CLIENT_INTERNALS:function(){return $},APP_PATHS_MANIFEST:function(){return m},APP_PATH_ROUTES_MANIFEST:function(){return g},BARREL_OPTIMIZATION_PREFIX:function(){return W},BLOCKED_PAGES:function(){return U},BUILD_ID_FILE:function(){return D},BUILD_MANIFEST:function(){return y},CLIENT_PUBLIC_FILES_PATH:function(){return k},CLIENT_REFERENCE_MANIFEST:function(){return G},CLIENT_STATIC_FILES_PATH:function(){return F},CLIENT_STATIC_FILES_RUNTIME_AMP:function(){return J},CLIENT_STATIC_FILES_RUNTIME_MAIN:function(){return Y},CLIENT_STATIC_FILES_RUNTIME_MAIN_APP:function(){return K},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS:function(){return ee},CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL:function(){return et},CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH:function(){return Q},CLIENT_STATIC_FILES_RUNTIME_WEBPACK:function(){return Z},COMPILER_INDEXES:function(){return o},COMPILER_NAMES:function(){return a},CONFIG_FILES:function(){return L},DEFAULT_RUNTIME_WEBPACK:function(){return er},DEFAULT_SANS_SERIF_FONT:function(){return es},DEFAULT_SERIF_FONT:function(){return ei},DEV_CLIENT_MIDDLEWARE_MANIFEST:function(){return I},DEV_CLIENT_PAGES_MANIFEST:function(){return x},EDGE_RUNTIME_WEBPACK:function(){return en},EDGE_UNSUPPORTED_NODE_APIS:function(){return ed},EXPORT_DETAIL:function(){return R},EXPORT_MARKER:function(){return S},FUNCTIONS_CONFIG_MANIFEST:function(){return E},IMAGES_MANIFEST:function(){return A},INTERCEPTION_ROUTE_REWRITE_MANIFEST:function(){return z},MIDDLEWARE_BUILD_MANIFEST:function(){return X},MIDDLEWARE_MANIFEST:function(){return w},MIDDLEWARE_REACT_LOADABLE_MANIFEST:function(){return V},MODERN_BROWSERSLIST_TARGET:function(){return n.default},NEXT_BUILTIN_DOCUMENT:function(){return B},NEXT_FONT_MANIFEST:function(){return v},PAGES_MANIFEST:function(){return h},PHASE_DEVELOPMENT_SERVER:function(){return f},PHASE_EXPORT:function(){return u},PHASE_INFO:function(){return p},PHASE_PRODUCTION_BUILD:function(){return l},PHASE_PRODUCTION_SERVER:function(){return c},PHASE_TEST:function(){return d},PRERENDER_MANIFEST:function(){return O},REACT_LOADABLE_MANIFEST:function(){return M},ROUTES_MANIFEST:function(){return T},RSC_MODULE_TYPES:function(){return ef},SERVER_DIRECTORY:function(){return N},SERVER_FILES_MANIFEST:function(){return j},SERVER_PROPS_ID:function(){return eo},SERVER_REFERENCE_MANIFEST:function(){return q},STATIC_PROPS_ID:function(){return ea},STATIC_STATUS_PAGES:function(){return eu},STRING_LITERAL_DROP_BUNDLE:function(){return H},SUBRESOURCE_INTEGRITY_MANIFEST:function(){return b},SYSTEM_ENTRYPOINTS:function(){return ep},TRACE_OUTPUT_VERSION:function(){return el},TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST:function(){return C},TURBO_TRACE_DEFAULT_MEMORY_LIMIT:function(){return ec},UNDERSCORE_NOT_FOUND_ROUTE:function(){return i},UNDERSCORE_NOT_FOUND_ROUTE_ENTRY:function(){return s},WEBPACK_STATS:function(){return _}});let n=r(8754)._(r(1098)),a={client:"client",server:"server",edgeServer:"edge-server"},o={[a.client]:0,[a.server]:1,[a.edgeServer]:2},i="/_not-found",s=""+i+"/page",u="phase-export",l="phase-production-build",c="phase-production-server",f="phase-development-server",d="phase-test",p="phase-info",h="pages-manifest.json",_="webpack-stats.json",m="app-paths-manifest.json",g="app-path-routes-manifest.json",y="build-manifest.json",P="app-build-manifest.json",E="functions-config-manifest.json",b="subresource-integrity-manifest",v="next-font-manifest",S="export-marker.json",R="export-detail.json",O="prerender-manifest.json",T="routes-manifest.json",A="images-manifest.json",j="required-server-files.json",x="_devPagesManifest.json",w="middleware-manifest.json",C="_clientMiddlewareManifest.json",I="_devMiddlewareManifest.json",M="react-loadable-manifest.json",N="server",L=["next.config.js","next.config.mjs","next.config.ts"],D="BUILD_ID",U=["/_document","/_app","/_error"],k="public",F="static",H="__NEXT_DROP_CLIENT_FILE__",B="__NEXT_BUILTIN_DOCUMENT__",W="__barrel_optimize__",G="client-reference-manifest",q="server-reference-manifest",X="middleware-build-manifest",V="middleware-react-loadable-manifest",z="interception-route-rewrite-manifest",Y="main",K=""+Y+"-app",$="app-pages-internals",Q="react-refresh",J="amp",Z="webpack",ee="polyfills",et=Symbol(ee),er="webpack-runtime",en="edge-runtime-webpack",ea="__N_SSG",eo="__N_SSP",ei={name:"Times New Roman",xAvgCharWidth:821,azAvgWidth:854.3953488372093,unitsPerEm:2048},es={name:"Arial",xAvgCharWidth:904,azAvgWidth:934.5116279069767,unitsPerEm:2048},eu=["/500"],el=1,ec=6e3,ef={client:"client",server:"server"},ed=["clearImmediate","setImmediate","BroadcastChannel","ByteLengthQueuingStrategy","CompressionStream","CountQueuingStrategy","DecompressionStream","DomException","MessageChannel","MessageEvent","MessagePort","ReadableByteStreamController","ReadableStreamBYOBRequest","ReadableStreamDefaultController","TransformStreamDefaultController","WritableStreamDefaultController"],ep=new Set([Y,Q,J,K]);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},3924:(e,t)=>{"use strict";function r(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"encodeURIPath",{enumerable:!0,get:function(){return r}})},1435:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"escapeStringRegexp",{enumerable:!0,get:function(){return a}});let r=/[|\\{}()[\]^$+*?.-]/,n=/[|\\{}()[\]^$+*?.-]/g;function a(e){return r.test(e)?e.replace(n,"\\$&"):e}},1515:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(8754)._(r(7294)).default.createContext({})},3867:(e,t,r)=>{"use strict";var n=r(3454);Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return m},defaultHead:function(){return d}});let a=r(8754),o=r(1757),i=r(5893),s=o._(r(7294)),u=a._(r(5277)),l=r(8995),c=r(1515),f=r(8214);function d(e){void 0===e&&(e=!1);let t=[(0,i.jsx)("meta",{charSet:"utf-8"},"charset")];return e||t.push((0,i.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")),t}function p(e,t){return"string"==typeof t||"number"==typeof t?e:t.type===s.default.Fragment?e.concat(s.default.Children.toArray(t.props.children).reduce((e,t)=>"string"==typeof t||"number"==typeof t?e:e.concat(t),[])):e.concat(t)}r(3179);let h=["name","httpEquiv","charSet","itemProp"];function _(e,t){let{inAmpMode:r}=t;return e.reduce(p,[]).reverse().concat(d(r).reverse()).filter(function(){let e=new Set,t=new Set,r=new Set,n={};return a=>{let o=!0,i=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){i=!0;let t=a.key.slice(a.key.indexOf("$")+1);e.has(t)?o=!1:e.add(t)}switch(a.type){case"title":case"base":t.has(a.type)?o=!1:t.add(a.type);break;case"meta":for(let e=0,t=h.length;e{let a=e.key||t;if(n.env.__NEXT_OPTIMIZE_FONTS&&!r&&"link"===e.type&&e.props.href&&["https://fonts.googleapis.com/css","https://use.typekit.net/"].some(t=>e.props.href.startsWith(t))){let t={...e.props||{}};return t["data-href"]=t.href,t.href=void 0,t["data-optimized-fonts"]=!0,s.default.cloneElement(e,t)}return s.default.cloneElement(e,{key:a})})}let m=function(e){let{children:t}=e,r=(0,s.useContext)(l.AmpStateContext),n=(0,s.useContext)(c.HeadManagerContext);return(0,i.jsx)(u.default,{reduceComponentsToState:_,headManager:n,inAmpMode:(0,f.isInAmpMode)(r),children:t})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2608:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathParamsContext:function(){return i},PathnameContext:function(){return o},SearchParamsContext:function(){return a}});let n=r(7294),a=(0,n.createContext)(null),o=(0,n.createContext)(null),i=(0,n.createContext)(null)},4165:(e,t)=>{"use strict";function r(e,t){let r;let n=e.split("/");return(t||[]).some(t=>!!n[1]&&n[1].toLowerCase()===t.toLowerCase()&&(r=t,n.splice(1,1),e=n.join("/")||"/",!0)),{pathname:e,detectedLocale:r}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizeLocalePath",{enumerable:!0,get:function(){return r}})},3945:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ImageConfigContext",{enumerable:!0,get:function(){return o}});let n=r(8754)._(r(7294)),a=r(6594),o=n.default.createContext(a.imageConfigDefault)},6594:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{VALID_LOADERS:function(){return r},imageConfigDefault:function(){return n}});let r=["default","imgix","cloudinary","akamai","custom"],n={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[16,32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:60,formats:["image/webp"],dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],unoptimized:!1}},5997:(e,t)=>{"use strict";function r(e){return Object.prototype.toString.call(e)}function n(e){if("[object Object]"!==r(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getObjectClassLabel:function(){return r},isPlainObject:function(){return n}})},947:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{BailoutToCSRError:function(){return n},isBailoutToCSRError:function(){return a}});let r="BAILOUT_TO_CLIENT_SIDE_RENDERING";class n extends Error{constructor(e){super("Bail out to client-side rendering: "+e),this.reason=e,this.digest=r}}function a(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===r}},5001:(e,t)=>{"use strict";function r(){let e=Object.create(null);return{on(t,r){(e[t]||(e[t]=[])).push(r)},off(t,r){e[t]&&e[t].splice(e[t].indexOf(r)>>>0,1)},emit(t){for(var r=arguments.length,n=Array(r>1?r-1:0),a=1;a{e(...n)})}}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}})},1098:e=>{"use strict";e.exports=["chrome 64","edge 79","firefox 67","opera 51","safari 12"]},3395:(e,t)=>{"use strict";function r(e){let t=(null==e?void 0:e.replace(/^\/+|\/+$/g,""))||!1;if(!t)return"";if(URL.canParse(t)){let e=new URL(t).toString();return e.endsWith("/")?e.slice(0,-1):e}return"/"+t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizedAssetPrefix",{enumerable:!0,get:function(){return r}})},7491:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"denormalizePagePath",{enumerable:!0,get:function(){return o}});let n=r(9062),a=r(8040);function o(e){let t=(0,a.normalizePathSep)(e);return t.startsWith("/index/")&&!(0,n.isDynamicRoute)(t)?t.slice(6):"/index"!==t?t:"/"}},435:(e,t)=>{"use strict";function r(e){return e.startsWith("/")?e:"/"+e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ensureLeadingSlash",{enumerable:!0,get:function(){return r}})},8040:(e,t)=>{"use strict";function r(e){return e.replace(/\\/g,"/")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathSep",{enumerable:!0,get:function(){return r}})},1928:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RouterContext",{enumerable:!0,get:function(){return n}});let n=r(8754)._(r(7294)).default.createContext(null)},546:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{PathnameContextProviderAdapter:function(){return p},adaptForAppRouterInstance:function(){return c},adaptForPathParams:function(){return d},adaptForSearchParams:function(){return f}});let n=r(1757),a=r(5893),o=n._(r(7294)),i=r(2608),s=r(9062),u=r(4656),l=r(8330);function c(e){return{back(){e.back()},forward(){e.forward()},refresh(){e.reload()},hmrRefresh(){},push(t,r){let{scroll:n}=void 0===r?{}:r;e.push(t,void 0,{scroll:n})},replace(t,r){let{scroll:n}=void 0===r?{}:r;e.replace(t,void 0,{scroll:n})},prefetch(t){e.prefetch(t)}}}function f(e){return e.isReady&&e.query?(0,u.asPathToSearchParams)(e.asPath):new URLSearchParams}function d(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys((0,l.getRouteRegex)(e.pathname).groups))t[r]=e.query[r];return t}function p(e){let{children:t,router:r,...n}=e,u=(0,o.useRef)(n.isAutoExport),l=(0,o.useMemo)(()=>{let e;let t=u.current;if(t&&(u.current=!1),(0,s.isDynamicRoute)(r.pathname)&&(r.isFallback||t&&!r.isReady))return null;try{e=new URL(r.asPath,"http://f")}catch(e){return"/"}return e.pathname},[r.asPath,r.isFallback,r.isReady,r.pathname]);return(0,a.jsx)(i.PathnameContext.Provider,{value:l,children:t})}},5298:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{createKey:function(){return q},default:function(){return z},matchesMiddleware:function(){return D}});let n=r(8754),a=r(1757),o=r(2657),i=r(9856),s=r(3381),u=a._(r(676)),l=r(7491),c=r(4165),f=n._(r(5001)),d=r(9903),p=r(9936),h=r(2913),_=n._(r(3809)),m=r(4714),g=r(8330),y=r(8041);r(4166);let P=r(2122),E=r(5490),b=r(8324),v=r(646),S=r(9470),R=r(1149),O=r(6075),T=r(9423),A=r(6504),j=r(9467),x=r(2192),w=r(3955),C=r(9888),I=r(7085),M=r(1417),N=r(631);function L(){return Object.assign(Error("Route Cancelled"),{cancelled:!0})}async function D(e){let t=await Promise.resolve(e.router.pageLoader.getMiddleware());if(!t)return!1;let{pathname:r}=(0,P.parsePath)(e.asPath),n=(0,R.hasBasePath)(r)?(0,v.removeBasePath)(r):r,a=(0,S.addBasePath)((0,E.addLocale)(n,e.locale));return t.some(e=>new RegExp(e.regexp).test(a))}function U(e){let t=(0,d.getLocationOrigin)();return e.startsWith(t)?e.substring(t.length):e}function k(e,t,r){let[n,a]=(0,O.resolveHref)(e,t,!0),o=(0,d.getLocationOrigin)(),i=n.startsWith(o),s=a&&a.startsWith(o);n=U(n),a=a?U(a):a;let u=i?n:(0,S.addBasePath)(n),l=r?U((0,O.resolveHref)(e,r)):a||n;return{url:u,as:s?l:(0,S.addBasePath)(l)}}function F(e,t){let r=(0,o.removeTrailingSlash)((0,l.denormalizePagePath)(e));return"/404"===r||"/_error"===r?e:(t.includes(r)||t.some(t=>{if((0,p.isDynamicRoute)(t)&&(0,g.getRouteRegex)(t).re.test(r))return e=t,!0}),(0,o.removeTrailingSlash)(e))}async function H(e){if(!await D(e)||!e.fetchData)return null;let t=await e.fetchData(),r=await function(e,t,r){let n={basePath:r.router.basePath,i18n:{locales:r.router.locales},trailingSlash:!1},a=t.headers.get("x-nextjs-rewrite"),s=a||t.headers.get("x-nextjs-matched-path"),u=t.headers.get("x-matched-path");if(!u||s||u.includes("__next_data_catchall")||u.includes("/_error")||u.includes("/404")||(s=u),s){if(s.startsWith("/")){let t=(0,h.parseRelativeUrl)(s),u=(0,A.getNextPathnameInfo)(t.pathname,{nextConfig:n,parseData:!0}),l=(0,o.removeTrailingSlash)(u.pathname);return Promise.all([r.router.pageLoader.getPageList(),(0,i.getClientBuildManifest)()]).then(n=>{let[o,{__rewrites:i}]=n,s=(0,E.addLocale)(u.pathname,u.locale);if((0,p.isDynamicRoute)(s)||!a&&o.includes((0,c.normalizeLocalePath)((0,v.removeBasePath)(s),r.router.locales).pathname)){let r=(0,A.getNextPathnameInfo)((0,h.parseRelativeUrl)(e).pathname,{nextConfig:void 0,parseData:!0});s=(0,S.addBasePath)(r.pathname),t.pathname=s}{let e=(0,_.default)(s,o,i,t.query,e=>F(e,o),r.router.locales);e.matchedPage&&(t.pathname=e.parsedAs.pathname,s=t.pathname,Object.assign(t.query,e.parsedAs.query))}let f=o.includes(l)?l:F((0,c.normalizeLocalePath)((0,v.removeBasePath)(t.pathname),r.router.locales).pathname,o);if((0,p.isDynamicRoute)(f)){let e=(0,m.getRouteMatcher)((0,g.getRouteRegex)(f))(s);Object.assign(t.query,e||{})}return{type:"rewrite",parsedAs:t,resolvedHref:f}})}let t=(0,P.parsePath)(e);return Promise.resolve({type:"redirect-external",destination:""+(0,j.formatNextPathnameInfo)({...(0,A.getNextPathnameInfo)(t.pathname,{nextConfig:n,parseData:!0}),defaultLocale:r.router.defaultLocale,buildId:""})+t.query+t.hash})}let l=t.headers.get("x-nextjs-redirect");if(l){if(l.startsWith("/")){let e=(0,P.parsePath)(l),t=(0,j.formatNextPathnameInfo)({...(0,A.getNextPathnameInfo)(e.pathname,{nextConfig:n,parseData:!0}),defaultLocale:r.router.defaultLocale,buildId:""});return Promise.resolve({type:"redirect-internal",newAs:""+t+e.query+e.hash,newUrl:""+t+e.query+e.hash})}return Promise.resolve({type:"redirect-external",destination:l})}return Promise.resolve({type:"next"})}(t.dataHref,t.response,e);return{dataHref:t.dataHref,json:t.json,response:t.response,text:t.text,cacheKey:t.cacheKey,effect:r}}let B=Symbol("SSG_DATA_NOT_FOUND");function W(e){try{return JSON.parse(e)}catch(e){return null}}function G(e){let{dataHref:t,inflightCache:r,isPrefetch:n,hasMiddleware:a,isServerRender:o,parseJSON:s,persistCache:u,isBackground:l,unstable_skipClientCache:c}=e,{href:f}=new URL(t,window.location.href),d=e=>{var l;return(function e(t,r,n){return fetch(t,{credentials:"same-origin",method:n.method||"GET",headers:Object.assign({},n.headers,{"x-nextjs-data":"1"})}).then(a=>!a.ok&&r>1&&a.status>=500?e(t,r-1,n):a)})(t,o?3:1,{headers:Object.assign({},n?{purpose:"prefetch"}:{},n&&a?{"x-middleware-prefetch":"1"}:{}),method:null!=(l=null==e?void 0:e.method)?l:"GET"}).then(r=>r.ok&&(null==e?void 0:e.method)==="HEAD"?{dataHref:t,response:r,text:"",json:{},cacheKey:f}:r.text().then(e=>{if(!r.ok){if(a&&[301,302,307,308].includes(r.status))return{dataHref:t,response:r,text:e,json:{},cacheKey:f};if(404===r.status){var n;if(null==(n=W(e))?void 0:n.notFound)return{dataHref:t,json:{notFound:B},response:r,text:e,cacheKey:f}}let s=Error("Failed to load static props");throw o||(0,i.markAssetError)(s),s}return{dataHref:t,json:s?W(e):null,response:r,text:e,cacheKey:f}})).then(e=>(u&&"no-cache"!==e.response.headers.get("x-middleware-cache")||delete r[f],e)).catch(e=>{throw c||delete r[f],("Failed to fetch"===e.message||"NetworkError when attempting to fetch resource."===e.message||"Load failed"===e.message)&&(0,i.markAssetError)(e),e})};return c&&u?d({}).then(e=>("no-cache"!==e.response.headers.get("x-middleware-cache")&&(r[f]=Promise.resolve(e)),e)):void 0!==r[f]?r[f]:r[f]=d(l?{method:"HEAD"}:{})}function q(){return Math.random().toString(36).slice(2,10)}function X(e){let{url:t,router:r}=e;if(t===(0,S.addBasePath)((0,E.addLocale)(r.asPath,r.locale)))throw Error("Invariant: attempted to hard navigate to the same URL "+t+" "+location.href);window.location.href=t}let V=e=>{let{route:t,router:r}=e,n=!1,a=r.clc=()=>{n=!0};return()=>{if(n){let e=Error('Abort fetching component for route: "'+t+'"');throw e.cancelled=!0,e}a===r.clc&&(r.clc=null)}};class z{reload(){window.location.reload()}back(){window.history.back()}forward(){window.history.forward()}push(e,t,r){return void 0===r&&(r={}),{url:e,as:t}=k(this,e,t),this.change("pushState",e,t,r)}replace(e,t,r){return void 0===r&&(r={}),{url:e,as:t}=k(this,e,t),this.change("replaceState",e,t,r)}async _bfl(e,t,n,a){{if(!this._bfl_s&&!this._bfl_d){let t,o;let{BloomFilter:s}=r(2989);try{({__routerFilterStatic:t,__routerFilterDynamic:o}=await (0,i.getClientBuildManifest)())}catch(t){if(console.error(t),a)return!0;return X({url:(0,S.addBasePath)((0,E.addLocale)(e,n||this.locale,this.defaultLocale)),router:this}),new Promise(()=>{})}(null==t?void 0:t.numHashes)&&(this._bfl_s=new s(t.numItems,t.errorRate),this._bfl_s.import(t)),(null==o?void 0:o.numHashes)&&(this._bfl_d=new s(o.numItems,o.errorRate),this._bfl_d.import(o))}let c=!1,f=!1;for(let{as:r,allowMatchCurrent:i}of[{as:e},{as:t}])if(r){let t=(0,o.removeTrailingSlash)(new URL(r,"http://n").pathname),d=(0,S.addBasePath)((0,E.addLocale)(t,n||this.locale));if(i||t!==(0,o.removeTrailingSlash)(new URL(this.asPath,"http://n").pathname)){var s,u,l;for(let e of(c=c||!!(null==(s=this._bfl_s)?void 0:s.contains(t))||!!(null==(u=this._bfl_s)?void 0:u.contains(d)),[t,d])){let t=e.split("/");for(let e=0;!f&&e{})}}}}return!1}async change(e,t,r,n,a){var l,c,f,O,T,A,j,C,N;let U,H;if(!(0,w.isLocalURL)(t))return X({url:t,router:this}),!1;let W=1===n._h;W||n.shallow||await this._bfl(r,void 0,n.locale);let G=W||n._shouldResolveHref||(0,P.parsePath)(t).pathname===(0,P.parsePath)(r).pathname,q={...this.state},V=!0!==this.isReady;this.isReady=!0;let Y=this.isSsr;if(W||(this.isSsr=!1),W&&this.clc)return!1;let K=q.locale;d.ST&&performance.mark("routeChange");let{shallow:$=!1,scroll:Q=!0}=n,J={shallow:$};this._inFlightRoute&&this.clc&&(Y||z.events.emit("routeChangeError",L(),this._inFlightRoute,J),this.clc(),this.clc=null),r=(0,S.addBasePath)((0,E.addLocale)((0,R.hasBasePath)(r)?(0,v.removeBasePath)(r):r,n.locale,this.defaultLocale));let Z=(0,b.removeLocale)((0,R.hasBasePath)(r)?(0,v.removeBasePath)(r):r,q.locale);this._inFlightRoute=r;let ee=K!==q.locale;if(!W&&this.onlyAHashChange(Z)&&!ee){q.asPath=Z,z.events.emit("hashChangeStart",r,J),this.changeState(e,t,r,{...n,scroll:!1}),Q&&this.scrollToHash(Z);try{await this.set(q,this.components[q.route],null)}catch(e){throw(0,u.default)(e)&&e.cancelled&&z.events.emit("routeChangeError",e,Z,J),e}return z.events.emit("hashChangeComplete",r,J),!0}let et=(0,h.parseRelativeUrl)(t),{pathname:er,query:en}=et;try{[U,{__rewrites:H}]=await Promise.all([this.pageLoader.getPageList(),(0,i.getClientBuildManifest)(),this.pageLoader.getMiddleware()])}catch(e){return X({url:r,router:this}),!1}this.urlIsNew(Z)||ee||(e="replaceState");let ea=r;er=er?(0,o.removeTrailingSlash)((0,v.removeBasePath)(er)):er;let eo=(0,o.removeTrailingSlash)(er),ei=r.startsWith("/")&&(0,h.parseRelativeUrl)(r).pathname;if(null==(l=this.components[er])?void 0:l.__appRouter)return X({url:r,router:this}),new Promise(()=>{});let es=!!(ei&&eo!==ei&&(!(0,p.isDynamicRoute)(eo)||!(0,m.getRouteMatcher)((0,g.getRouteRegex)(eo))(ei))),eu=!n.shallow&&await D({asPath:r,locale:q.locale,router:this});if(W&&eu&&(G=!1),G&&"/_error"!==er){if(n._shouldResolveHref=!0,r.startsWith("/")){let e=(0,_.default)((0,S.addBasePath)((0,E.addLocale)(Z,q.locale),!0),U,H,en,e=>F(e,U),this.locales);if(e.externalDest)return X({url:r,router:this}),!0;eu||(ea=e.asPath),e.matchedPage&&e.resolvedHref&&(er=e.resolvedHref,et.pathname=(0,S.addBasePath)(er),eu||(t=(0,y.formatWithValidation)(et)))}else et.pathname=F(er,U),et.pathname===er||(er=et.pathname,et.pathname=(0,S.addBasePath)(er),eu||(t=(0,y.formatWithValidation)(et)))}if(!(0,w.isLocalURL)(r))return X({url:r,router:this}),!1;ea=(0,b.removeLocale)((0,v.removeBasePath)(ea),q.locale),eo=(0,o.removeTrailingSlash)(er);let el=!1;if((0,p.isDynamicRoute)(eo)){let e=(0,h.parseRelativeUrl)(ea),n=e.pathname,a=(0,g.getRouteRegex)(eo);el=(0,m.getRouteMatcher)(a)(n);let o=eo===n,i=o?(0,M.interpolateAs)(eo,n,en):{};if(el&&(!o||i.result))o?r=(0,y.formatWithValidation)(Object.assign({},e,{pathname:i.result,query:(0,I.omit)(en,i.params)})):Object.assign(en,el);else{let e=Object.keys(a.groups).filter(e=>!en[e]&&!a.groups[e].optional);if(e.length>0&&!eu)throw Error((o?"The provided `href` ("+t+") value is missing query values ("+e.join(", ")+") to be interpolated properly. ":"The provided `as` value ("+n+") is incompatible with the `href` value ("+eo+"). ")+"Read more: https://nextjs.org/docs/messages/"+(o?"href-interpolation-failed":"incompatible-href-as"))}}W||z.events.emit("routeChangeStart",r,J);let ec="/404"===this.pathname||"/_error"===this.pathname;try{let o=await this.getRouteInfo({route:eo,pathname:er,query:en,as:r,resolvedAs:ea,routeProps:J,locale:q.locale,isPreview:q.isPreview,hasMiddleware:eu,unstable_skipClientCache:n.unstable_skipClientCache,isQueryUpdating:W&&!this.isFallback,isMiddlewareRewrite:es});if(W||n.shallow||await this._bfl(r,"resolvedAs"in o?o.resolvedAs:void 0,q.locale),"route"in o&&eu){eo=er=o.route||eo,J.shallow||(en=Object.assign({},o.query||{},en));let e=(0,R.hasBasePath)(et.pathname)?(0,v.removeBasePath)(et.pathname):et.pathname;if(el&&er!==e&&Object.keys(el).forEach(e=>{el&&en[e]===el[e]&&delete en[e]}),(0,p.isDynamicRoute)(er)){let e=!J.shallow&&o.resolvedAs?o.resolvedAs:(0,S.addBasePath)((0,E.addLocale)(new URL(r,location.href).pathname,q.locale),!0);(0,R.hasBasePath)(e)&&(e=(0,v.removeBasePath)(e));let t=(0,g.getRouteRegex)(er),n=(0,m.getRouteMatcher)(t)(new URL(e,location.href).pathname);n&&Object.assign(en,n)}}if("type"in o){if("redirect-internal"===o.type)return this.change(e,o.newUrl,o.newAs,n);return X({url:o.destination,router:this}),new Promise(()=>{})}let i=o.Component;if(i&&i.unstable_scriptLoader&&[].concat(i.unstable_scriptLoader()).forEach(e=>{(0,s.handleClientScriptLoad)(e.props)}),(o.__N_SSG||o.__N_SSP)&&o.props){if(o.props.pageProps&&o.props.pageProps.__N_REDIRECT){n.locale=!1;let t=o.props.pageProps.__N_REDIRECT;if(t.startsWith("/")&&!1!==o.props.pageProps.__N_REDIRECT_BASE_PATH){let r=(0,h.parseRelativeUrl)(t);r.pathname=F(r.pathname,U);let{url:a,as:o}=k(this,t,t);return this.change(e,a,o,n)}return X({url:t,router:this}),new Promise(()=>{})}if(q.isPreview=!!o.props.__N_PREVIEW,o.props.notFound===B){let e;try{await this.fetchComponent("/404"),e="/404"}catch(t){e="/_error"}if(o=await this.getRouteInfo({route:e,pathname:e,query:en,as:r,resolvedAs:ea,routeProps:{shallow:!1},locale:q.locale,isPreview:q.isPreview,isNotFound:!0}),"type"in o)throw Error("Unexpected middleware effect on /404")}}W&&"/_error"===this.pathname&&(null==(f=self.__NEXT_DATA__.props)?void 0:null==(c=f.pageProps)?void 0:c.statusCode)===500&&(null==(O=o.props)?void 0:O.pageProps)&&(o.props.pageProps.statusCode=500);let l=n.shallow&&q.route===(null!=(T=o.route)?T:eo),d=null!=(A=n.scroll)?A:!W&&!l,_=null!=a?a:d?{x:0,y:0}:null,y={...q,route:eo,pathname:er,query:en,asPath:Z,isFallback:!1};if(W&&ec){if(o=await this.getRouteInfo({route:this.pathname,pathname:this.pathname,query:en,as:r,resolvedAs:ea,routeProps:{shallow:!1},locale:q.locale,isPreview:q.isPreview,isQueryUpdating:W&&!this.isFallback}),"type"in o)throw Error("Unexpected middleware effect on "+this.pathname);"/_error"===this.pathname&&(null==(C=self.__NEXT_DATA__.props)?void 0:null==(j=C.pageProps)?void 0:j.statusCode)===500&&(null==(N=o.props)?void 0:N.pageProps)&&(o.props.pageProps.statusCode=500);try{await this.set(y,o,_)}catch(e){throw(0,u.default)(e)&&e.cancelled&&z.events.emit("routeChangeError",e,Z,J),e}return!0}if(z.events.emit("beforeHistoryChange",r,J),this.changeState(e,t,r,n),!(W&&!_&&!V&&!ee&&(0,x.compareRouterStates)(y,this.state))){try{await this.set(y,o,_)}catch(e){if(e.cancelled)o.error=o.error||e;else throw e}if(o.error)throw W||z.events.emit("routeChangeError",o.error,Z,J),o.error;W||z.events.emit("routeChangeComplete",r,J),d&&/#.+$/.test(r)&&this.scrollToHash(r)}return!0}catch(e){if((0,u.default)(e)&&e.cancelled)return!1;throw e}}changeState(e,t,r,n){void 0===n&&(n={}),("pushState"!==e||(0,d.getURL)()!==r)&&(this._shallow=n.shallow,window.history[e]({url:t,as:r,options:n,__N:!0,key:this._key="pushState"!==e?this._key:q()},"",r))}async handleRouteInfoError(e,t,r,n,a,o){if(e.cancelled)throw e;if((0,i.isAssetError)(e)||o)throw z.events.emit("routeChangeError",e,n,a),X({url:n,router:this}),L();console.error(e);try{let n;let{page:a,styleSheets:o}=await this.fetchComponent("/_error"),i={props:n,Component:a,styleSheets:o,err:e,error:e};if(!i.props)try{i.props=await this.getInitialProps(a,{err:e,pathname:t,query:r})}catch(e){console.error("Error in error page `getInitialProps`: ",e),i.props={}}return i}catch(e){return this.handleRouteInfoError((0,u.default)(e)?e:Error(e+""),t,r,n,a,!0)}}async getRouteInfo(e){let{route:t,pathname:r,query:n,as:a,resolvedAs:i,routeProps:s,locale:l,hasMiddleware:f,isPreview:d,unstable_skipClientCache:p,isQueryUpdating:h,isMiddlewareRewrite:_,isNotFound:m}=e,g=t;try{var P,E,b,S;let e=this.components[g];if(s.shallow&&e&&this.route===g)return e;let t=V({route:g,router:this});f&&(e=void 0);let u=!e||"initial"in e?void 0:e,R={dataHref:this.pageLoader.getDataHref({href:(0,y.formatWithValidation)({pathname:r,query:n}),skipInterpolation:!0,asPath:m?"/404":i,locale:l}),hasMiddleware:!0,isServerRender:this.isSsr,parseJSON:!0,inflightCache:h?this.sbc:this.sdc,persistCache:!d,isPrefetch:!1,unstable_skipClientCache:p,isBackground:h},O=h&&!_?null:await H({fetchData:()=>G(R),asPath:m?"/404":i,locale:l,router:this}).catch(e=>{if(h)return null;throw e});if(O&&("/_error"===r||"/404"===r)&&(O.effect=void 0),h&&(O?O.json=self.__NEXT_DATA__.props:O={json:self.__NEXT_DATA__.props}),t(),(null==O?void 0:null==(P=O.effect)?void 0:P.type)==="redirect-internal"||(null==O?void 0:null==(E=O.effect)?void 0:E.type)==="redirect-external")return O.effect;if((null==O?void 0:null==(b=O.effect)?void 0:b.type)==="rewrite"){let t=(0,o.removeTrailingSlash)(O.effect.resolvedHref),a=await this.pageLoader.getPageList();if((!h||a.includes(t))&&(g=t,r=O.effect.resolvedHref,n={...n,...O.effect.parsedAs.query},i=(0,v.removeBasePath)((0,c.normalizeLocalePath)(O.effect.parsedAs.pathname,this.locales).pathname),e=this.components[g],s.shallow&&e&&this.route===g&&!f))return{...e,route:g}}if((0,T.isAPIRoute)(g))return X({url:a,router:this}),new Promise(()=>{});let A=u||await this.fetchComponent(g).then(e=>({Component:e.page,styleSheets:e.styleSheets,__N_SSG:e.mod.__N_SSG,__N_SSP:e.mod.__N_SSP})),j=null==O?void 0:null==(S=O.response)?void 0:S.headers.get("x-middleware-skip"),x=A.__N_SSG||A.__N_SSP;j&&(null==O?void 0:O.dataHref)&&delete this.sdc[O.dataHref];let{props:w,cacheKey:C}=await this._getData(async()=>{if(x){if((null==O?void 0:O.json)&&!j)return{cacheKey:O.cacheKey,props:O.json};let e=(null==O?void 0:O.dataHref)?O.dataHref:this.pageLoader.getDataHref({href:(0,y.formatWithValidation)({pathname:r,query:n}),asPath:i,locale:l}),t=await G({dataHref:e,isServerRender:this.isSsr,parseJSON:!0,inflightCache:j?{}:this.sdc,persistCache:!d,isPrefetch:!1,unstable_skipClientCache:p});return{cacheKey:t.cacheKey,props:t.json||{}}}return{headers:{},props:await this.getInitialProps(A.Component,{pathname:r,query:n,asPath:a,locale:l,locales:this.locales,defaultLocale:this.defaultLocale})}});return A.__N_SSP&&R.dataHref&&C&&delete this.sdc[C],this.isPreview||!A.__N_SSG||h||G(Object.assign({},R,{isBackground:!0,persistCache:!1,inflightCache:this.sbc})).catch(()=>{}),w.pageProps=Object.assign({},w.pageProps),A.props=w,A.route=g,A.query=n,A.resolvedAs=i,this.components[g]=A,A}catch(e){return this.handleRouteInfoError((0,u.getProperError)(e),r,n,a,s)}}set(e,t,r){return this.state=e,this.sub(t,this.components["/_app"].Component,r)}beforePopState(e){this._bps=e}onlyAHashChange(e){if(!this.asPath)return!1;let[t,r]=this.asPath.split("#",2),[n,a]=e.split("#",2);return!!a&&t===n&&r===a||t===n&&r!==a}scrollToHash(e){let[,t=""]=e.split("#",2);(0,N.handleSmoothScroll)(()=>{if(""===t||"top"===t){window.scrollTo(0,0);return}let e=decodeURIComponent(t),r=document.getElementById(e);if(r){r.scrollIntoView();return}let n=document.getElementsByName(e)[0];n&&n.scrollIntoView()},{onlyHashChange:this.onlyAHashChange(e)})}urlIsNew(e){return this.asPath!==e}async prefetch(e,t,r){if(void 0===t&&(t=e),void 0===r&&(r={}),(0,C.isBot)(window.navigator.userAgent))return;let n=(0,h.parseRelativeUrl)(e),a=n.pathname,{pathname:s,query:u}=n,l=s,c=await this.pageLoader.getPageList(),f=t,d=void 0!==r.locale?r.locale||void 0:this.locale,R=await D({asPath:t,locale:d,router:this});if(t.startsWith("/")){let r;({__rewrites:r}=await (0,i.getClientBuildManifest)());let a=(0,_.default)((0,S.addBasePath)((0,E.addLocale)(t,this.locale),!0),c,r,n.query,e=>F(e,c),this.locales);if(a.externalDest)return;R||(f=(0,b.removeLocale)((0,v.removeBasePath)(a.asPath),this.locale)),a.matchedPage&&a.resolvedHref&&(s=a.resolvedHref,n.pathname=s,R||(e=(0,y.formatWithValidation)(n)))}n.pathname=F(n.pathname,c),(0,p.isDynamicRoute)(n.pathname)&&(s=n.pathname,n.pathname=s,Object.assign(u,(0,m.getRouteMatcher)((0,g.getRouteRegex)(n.pathname))((0,P.parsePath)(t).pathname)||{}),R||(e=(0,y.formatWithValidation)(n)));let O=await H({fetchData:()=>G({dataHref:this.pageLoader.getDataHref({href:(0,y.formatWithValidation)({pathname:l,query:u}),skipInterpolation:!0,asPath:f,locale:d}),hasMiddleware:!0,isServerRender:!1,parseJSON:!0,inflightCache:this.sdc,persistCache:!this.isPreview,isPrefetch:!0}),asPath:t,locale:d,router:this});if((null==O?void 0:O.effect.type)==="rewrite"&&(n.pathname=O.effect.resolvedHref,s=O.effect.resolvedHref,u={...u,...O.effect.parsedAs.query},f=O.effect.parsedAs.pathname,e=(0,y.formatWithValidation)(n)),(null==O?void 0:O.effect.type)==="redirect-external")return;let T=(0,o.removeTrailingSlash)(s);await this._bfl(t,f,r.locale,!0)&&(this.components[a]={__appRouter:!0}),await Promise.all([this.pageLoader._isSsg(T).then(t=>!!t&&G({dataHref:(null==O?void 0:O.json)?null==O?void 0:O.dataHref:this.pageLoader.getDataHref({href:e,asPath:f,locale:d}),isServerRender:!1,parseJSON:!0,inflightCache:this.sdc,persistCache:!this.isPreview,isPrefetch:!0,unstable_skipClientCache:r.unstable_skipClientCache||r.priority&&!0}).then(()=>!1).catch(()=>!1)),this.pageLoader[r.priority?"loadPage":"prefetch"](T)])}async fetchComponent(e){let t=V({route:e,router:this});try{let r=await this.pageLoader.loadPage(e);return t(),r}catch(e){throw t(),e}}_getData(e){let t=!1,r=()=>{t=!0};return this.clc=r,e().then(e=>{if(r===this.clc&&(this.clc=null),t){let e=Error("Loading initial props cancelled");throw e.cancelled=!0,e}return e})}getInitialProps(e,t){let{Component:r}=this.components["/_app"],n=this._wrapApp(r);return t.AppTree=n,(0,d.loadGetInitialProps)(r,{AppTree:n,Component:e,router:this,ctx:t})}get route(){return this.state.route}get pathname(){return this.state.pathname}get query(){return this.state.query}get asPath(){return this.state.asPath}get locale(){return this.state.locale}get isFallback(){return this.state.isFallback}get isPreview(){return this.state.isPreview}constructor(e,t,r,{initialProps:n,pageLoader:a,App:i,wrapApp:s,Component:u,err:l,subscription:c,isFallback:f,locale:_,locales:m,defaultLocale:g,domainLocales:P,isPreview:E}){this.sdc={},this.sbc={},this.isFirstPopStateEvent=!0,this._key=q(),this.onPopState=e=>{let t;let{isFirstPopStateEvent:r}=this;this.isFirstPopStateEvent=!1;let n=e.state;if(!n){let{pathname:e,query:t}=this;this.changeState("replaceState",(0,y.formatWithValidation)({pathname:(0,S.addBasePath)(e),query:t}),(0,d.getURL)());return}if(n.__NA){window.location.reload();return}if(!n.__N||r&&this.locale===n.options.locale&&n.as===this.asPath)return;let{url:a,as:o,options:i,key:s}=n;this._key=s;let{pathname:u}=(0,h.parseRelativeUrl)(a);(!this.isSsr||o!==(0,S.addBasePath)(this.asPath)||u!==(0,S.addBasePath)(this.pathname))&&(!this._bps||this._bps(n))&&this.change("replaceState",a,o,Object.assign({},i,{shallow:i.shallow&&this._shallow,locale:i.locale||this.defaultLocale,_h:0}),t)};let b=(0,o.removeTrailingSlash)(e);this.components={},"/_error"!==e&&(this.components[b]={Component:u,initial:!0,props:n,err:l,__N_SSG:n&&n.__N_SSG,__N_SSP:n&&n.__N_SSP}),this.components["/_app"]={Component:i,styleSheets:[]},this.events=z.events,this.pageLoader=a;let v=(0,p.isDynamicRoute)(e)&&self.__NEXT_DATA__.autoExport;if(this.basePath="",this.sub=c,this.clc=null,this._wrapApp=s,this.isSsr=!0,this.isLocaleDomain=!1,this.isReady=!!(self.__NEXT_DATA__.gssp||self.__NEXT_DATA__.gip||self.__NEXT_DATA__.isExperimentalCompile||self.__NEXT_DATA__.appGip&&!self.__NEXT_DATA__.gsp||(v||self.location.search,0)),this.state={route:b,pathname:e,query:t,asPath:v?e:r,isPreview:!!E,locale:void 0,isFallback:f},this._initialMatchesMiddlewarePromise=Promise.resolve(!1),!r.startsWith("//")){let n={locale:_},a=(0,d.getURL)();this._initialMatchesMiddlewarePromise=D({router:this,locale:_,asPath:a}).then(o=>(n._shouldResolveHref=r!==e,this.changeState("replaceState",o?a:(0,y.formatWithValidation)({pathname:(0,S.addBasePath)(e),query:t}),a,n),o))}window.addEventListener("popstate",this.onPopState)}}z.events=(0,f.default)()},3913:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addLocale",{enumerable:!0,get:function(){return o}});let n=r(6286),a=r(6777);function o(e,t,r,o){if(!t||t===r)return e;let i=e.toLowerCase();return!o&&((0,a.pathHasPrefix)(i,"/api")||(0,a.pathHasPrefix)(i,"/"+t.toLowerCase()))?e:(0,n.addPathPrefix)(e,"/"+t)}},6286:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathPrefix",{enumerable:!0,get:function(){return a}});let n=r(2122);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:o}=(0,n.parsePath)(e);return""+t+r+a+o}},4551:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"addPathSuffix",{enumerable:!0,get:function(){return a}});let n=r(2122);function a(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:o}=(0,n.parsePath)(e);return""+r+t+a+o}},6525:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{normalizeAppPath:function(){return o},normalizeRscURL:function(){return i}});let n=r(435),a=r(6406);function o(e){return(0,n.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:e+"/"+t,""))}function i(e){return e.replace(/\.rsc($|\?)/,"$1")}},4656:(e,t)=>{"use strict";function r(e){return new URL(e,"http://n").searchParams}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"asPathToSearchParams",{enumerable:!0,get:function(){return r}})},2192:(e,t)=>{"use strict";function r(e,t){let r=Object.keys(e);if(r.length!==Object.keys(t).length)return!1;for(let n=r.length;n--;){let a=r[n];if("query"===a){let r=Object.keys(e.query);if(r.length!==Object.keys(t.query).length)return!1;for(let n=r.length;n--;){let a=r[n];if(!t.query.hasOwnProperty(a)||e.query[a]!==t.query[a])return!1}}else if(!t.hasOwnProperty(a)||e[a]!==t[a])return!1}return!0}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"compareRouterStates",{enumerable:!0,get:function(){return r}})},9467:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"formatNextPathnameInfo",{enumerable:!0,get:function(){return s}});let n=r(2657),a=r(6286),o=r(4551),i=r(3913);function s(e){let t=(0,i.addLocale)(e.pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix);return(e.buildId||!e.trailingSlash)&&(t=(0,n.removeTrailingSlash)(t)),e.buildId&&(t=(0,o.addPathSuffix)((0,a.addPathPrefix)(t,"/_next/data/"+e.buildId),"/"===e.pathname?"index.json":".json")),t=(0,a.addPathPrefix)(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:(0,o.addPathSuffix)(t,"/"):(0,n.removeTrailingSlash)(t)}},8041:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{formatUrl:function(){return o},formatWithValidation:function(){return s},urlObjectKeys:function(){return i}});let n=r(1757)._(r(9730)),a=/https?|ftp|gopher|file/;function o(e){let{auth:t,hostname:r}=e,o=e.protocol||"",i=e.pathname||"",s=e.hash||"",u=e.query||"",l=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?l=t+e.host:r&&(l=t+(~r.indexOf(":")?"["+r+"]":r),e.port&&(l+=":"+e.port)),u&&"object"==typeof u&&(u=String(n.urlQueryToSearchParams(u)));let c=e.search||u&&"?"+u||"";return o&&!o.endsWith(":")&&(o+=":"),e.slashes||(!o||a.test(o))&&!1!==l?(l="//"+(l||""),i&&"/"!==i[0]&&(i="/"+i)):l||(l=""),s&&"#"!==s[0]&&(s="#"+s),c&&"?"!==c[0]&&(c="?"+c),""+o+l+(i=i.replace(/[?#]/g,encodeURIComponent))+(c=c.replace("#","%23"))+s}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return o(e)}},7823:(e,t)=>{"use strict";function r(e,t){return void 0===t&&(t=""),("/"===e?"/index":/^\/index(\/|$)/.test(e)?"/index"+e:e)+t}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return r}})},6504:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getNextPathnameInfo",{enumerable:!0,get:function(){return i}});let n=r(4165),a=r(497),o=r(6777);function i(e,t){var r,i;let{basePath:s,i18n:u,trailingSlash:l}=null!=(r=t.nextConfig)?r:{},c={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):l};s&&(0,o.pathHasPrefix)(c.pathname,s)&&(c.pathname=(0,a.removePathPrefix)(c.pathname,s),c.basePath=s);let f=c.pathname;if(c.pathname.startsWith("/_next/data/")&&c.pathname.endsWith(".json")){let e=c.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/"),r=e[0];c.buildId=r,f="index"!==e[1]?"/"+e.slice(1).join("/"):"/",!0===t.parseData&&(c.pathname=f)}if(u){let e=t.i18nProvider?t.i18nProvider.analyze(c.pathname):(0,n.normalizeLocalePath)(c.pathname,u.locales);c.locale=e.detectedLocale,c.pathname=null!=(i=e.pathname)?i:c.pathname,!e.detectedLocale&&c.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(f):(0,n.normalizeLocalePath)(f,u.locales)).detectedLocale&&(c.locale=e.detectedLocale)}return c}},631:(e,t)=>{"use strict";function r(e,t){if(void 0===t&&(t={}),t.onlyHashChange){e();return}let r=document.documentElement,n=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=n}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleSmoothScroll",{enumerable:!0,get:function(){return r}})},9062:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getSortedRouteObjects:function(){return n.getSortedRouteObjects},getSortedRoutes:function(){return n.getSortedRoutes},isDynamicRoute:function(){return a.isDynamicRoute}});let n=r(7380),a=r(9936)},1417:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"interpolateAs",{enumerable:!0,get:function(){return o}});let n=r(4714),a=r(8330);function o(e,t,r){let o="",i=(0,a.getRouteRegex)(e),s=i.groups,u=(t!==e?(0,n.getRouteMatcher)(i)(t):"")||r;o=e;let l=Object.keys(s);return l.every(e=>{let t=u[e]||"",{repeat:r,optional:n}=s[e],a="["+(r?"...":"")+e+"]";return n&&(a=(t?"":"/")+"["+a+"]"),r&&!Array.isArray(t)&&(t=[t]),(n||e in u)&&(o=o.replace(a,r?t.map(e=>encodeURIComponent(e)).join("/"):encodeURIComponent(t))||"/")})||(o=""),{params:l,result:o}}},9888:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isBot",{enumerable:!0,get:function(){return n}});let r=/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i;function n(e){return r.test(e)}},9936:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isDynamicRoute",{enumerable:!0,get:function(){return o}});let n=r(6895),a=/\/\[[^/]+?\](?=\/|$)/;function o(e){return(0,n.isInterceptionRouteAppPath)(e)&&(e=(0,n.extractInterceptionRouteInformation)(e).interceptedRoute),a.test(e)}},3955:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isLocalURL",{enumerable:!0,get:function(){return o}});let n=r(9903),a=r(1149);function o(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,a.hasBasePath)(r.pathname)}catch(e){return!1}}},7085:(e,t)=>{"use strict";function r(e,t){let r={};return Object.keys(e).forEach(n=>{t.includes(n)||(r[n]=e[n])}),r}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"omit",{enumerable:!0,get:function(){return r}})},2122:(e,t)=>{"use strict";function r(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parsePath",{enumerable:!0,get:function(){return r}})},2913:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parseRelativeUrl",{enumerable:!0,get:function(){return o}});let n=r(9903),a=r(9730);function o(e,t,r){void 0===r&&(r=!0);let o=new URL((0,n.getLocationOrigin)()),i=t?new URL(t,o):e.startsWith(".")?new URL(window.location.href):o,{pathname:s,searchParams:u,search:l,hash:c,href:f,origin:d}=new URL(e,i);if(d!==o.origin)throw Error("invariant: invalid relative URL, router received "+e);return{pathname:s,query:r?(0,a.searchParamsToUrlQuery)(u):void 0,search:l,hash:c,href:f.slice(d.length)}}},5428:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"parseUrl",{enumerable:!0,get:function(){return o}});let n=r(9730),a=r(2913);function o(e){if(e.startsWith("/"))return(0,a.parseRelativeUrl)(e);let t=new URL(e);return{hash:t.hash,hostname:t.hostname,href:t.href,pathname:t.pathname,port:t.port,protocol:t.protocol,query:(0,n.searchParamsToUrlQuery)(t.searchParams),search:t.search}}},6777:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=r(2122);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},2644:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getPathMatch",{enumerable:!0,get:function(){return a}});let n=r(4329);function a(e,t){let r=[],a=(0,n.pathToRegexp)(e,r,{delimiter:"/",sensitive:"boolean"==typeof(null==t?void 0:t.sensitive)&&t.sensitive,strict:null==t?void 0:t.strict}),o=(0,n.regexpToFunction)((null==t?void 0:t.regexModifier)?new RegExp(t.regexModifier(a.source),a.flags):a,r);return(e,n)=>{if("string"!=typeof e)return!1;let a=o(e);if(!a)return!1;if(null==t?void 0:t.removeUnnamedParams)for(let e of r)"number"==typeof e.name&&delete a.params[e.name];return{...n,...a.params}}}},7260:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{compileNonPath:function(){return f},matchHas:function(){return c},prepareDestination:function(){return d}});let n=r(4329),a=r(1435),o=r(5428),i=r(6895),s=r(5708),u=r(1730);function l(e){return e.replace(/__ESC_COLON_/gi,":")}function c(e,t,r,n){void 0===r&&(r=[]),void 0===n&&(n=[]);let a={},o=r=>{let n;let o=r.key;switch(r.type){case"header":o=o.toLowerCase(),n=e.headers[o];break;case"cookie":n="cookies"in e?e.cookies[r.key]:(0,u.getCookieParser)(e.headers)()[r.key];break;case"query":n=t[o];break;case"host":{let{host:t}=(null==e?void 0:e.headers)||{};n=null==t?void 0:t.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return a[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(o)]=n,!0;if(n){let e=RegExp("^"+r.value+"$"),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{a[e]=t.groups[e]}):"host"===r.type&&t[0]&&(a.host=t[0])),!0}return!1};return!!r.every(e=>o(e))&&!n.some(e=>o(e))&&a}function f(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(":"+r)&&(e=e.replace(RegExp(":"+r+"\\*","g"),":"+r+"--ESCAPED_PARAM_ASTERISKS").replace(RegExp(":"+r+"\\?","g"),":"+r+"--ESCAPED_PARAM_QUESTION").replace(RegExp(":"+r+"\\+","g"),":"+r+"--ESCAPED_PARAM_PLUS").replace(RegExp(":"+r+"(?!\\w)","g"),"--ESCAPED_PARAM_COLON"+r));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,n.compile)("/"+e,{validate:!1})(t).slice(1)}function d(e){let t;let r=Object.assign({},e.query);delete r.__nextLocale,delete r.__nextDefaultLocale,delete r.__nextDataReq,delete r.__nextInferredLocaleFromDefault,delete r[s.NEXT_RSC_UNION_QUERY];let u=e.destination;for(let t of Object.keys({...e.params,...r}))u=t?u.replace(RegExp(":"+(0,a.escapeStringRegexp)(t),"g"),"__ESC_COLON_"+t):u;let c=(0,o.parseUrl)(u),d=c.query,p=l(""+c.pathname+(c.hash||"")),h=l(c.hostname||""),_=[],m=[];(0,n.pathToRegexp)(p,_),(0,n.pathToRegexp)(h,m);let g=[];_.forEach(e=>g.push(e.name)),m.forEach(e=>g.push(e.name));let y=(0,n.compile)(p,{validate:!1}),P=(0,n.compile)(h,{validate:!1});for(let[t,r]of Object.entries(d))Array.isArray(r)?d[t]=r.map(t=>f(l(t),e.params)):"string"==typeof r&&(d[t]=f(l(r),e.params));let E=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!E.some(e=>g.includes(e)))for(let t of E)t in d||(d[t]=e.params[t]);if((0,i.isInterceptionRouteAppPath)(p))for(let t of p.split("/")){let r=i.INTERCEPTION_ROUTE_MARKERS.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[r,n]=(t=y(e.params)).split("#",2);c.hostname=P(e.params),c.pathname=r,c.hash=(n?"#":"")+(n||""),delete c.search}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match");throw e}return c.query={...r,...c.query},{newUrl:t,destQuery:d,parsedDestination:c}}},9730:(e,t)=>{"use strict";function r(e){let t={};return e.forEach((e,r)=>{void 0===t[r]?t[r]=e:Array.isArray(t[r])?t[r].push(e):t[r]=[t[r],e]}),t}function n(e){return"string"!=typeof e&&("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;return Object.entries(e).forEach(e=>{let[r,a]=e;Array.isArray(a)?a.forEach(e=>t.append(r,n(e))):t.set(r,n(a))}),t}function o(e){for(var t=arguments.length,r=Array(t>1?t-1:0),n=1;n{Array.from(t.keys()).forEach(t=>e.delete(t)),t.forEach((t,r)=>e.append(r,t))}),e}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{assign:function(){return o},searchParamsToUrlQuery:function(){return r},urlQueryToSearchParams:function(){return a}})},497:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removePathPrefix",{enumerable:!0,get:function(){return a}});let n=r(6777);function a(e,t){if(!(0,n.pathHasPrefix)(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:"/"+r}},2657:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},3809:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}});let n=r(2644),a=r(7260),o=r(2657),i=r(4165),s=r(646),u=r(2913);function l(e,t,r,l,c,f){let d,p=!1,h=!1,_=(0,u.parseRelativeUrl)(e),m=(0,o.removeTrailingSlash)((0,i.normalizeLocalePath)((0,s.removeBasePath)(_.pathname),f).pathname),g=r=>{let u=(0,n.getPathMatch)(r.source+"",{removeUnnamedParams:!0,strict:!0})(_.pathname);if((r.has||r.missing)&&u){let e=(0,a.matchHas)({headers:{host:document.location.hostname,"user-agent":navigator.userAgent},cookies:document.cookie.split("; ").reduce((e,t)=>{let[r,...n]=t.split("=");return e[r]=n.join("="),e},{})},_.query,r.has,r.missing);e?Object.assign(u,e):u=!1}if(u){if(!r.destination)return h=!0,!0;let n=(0,a.prepareDestination)({appendParamsToQuery:!0,destination:r.destination,params:u,query:l});if(_=n.parsedDestination,e=n.newUrl,Object.assign(l,n.parsedDestination.query),m=(0,o.removeTrailingSlash)((0,i.normalizeLocalePath)((0,s.removeBasePath)(e),f).pathname),t.includes(m))return p=!0,d=m,!0;if((d=c(m))!==e&&t.includes(d))return p=!0,!0}},y=!1;for(let e=0;e{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getRouteMatcher",{enumerable:!0,get:function(){return a}});let n=r(9903);function a(e){let{re:t,groups:r}=e;return e=>{let a=t.exec(e);if(!a)return!1;let o=e=>{try{return decodeURIComponent(e)}catch(e){throw new n.DecodeError("failed to decode param")}},i={};return Object.keys(r).forEach(e=>{let t=r[e],n=a[t.pos];void 0!==n&&(i[e]=~n.indexOf("/")?n.split("/").map(e=>o(e)):t.repeat?[o(n)]:o(n))}),i}}},8330:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getNamedMiddlewareRegex:function(){return _},getNamedRouteRegex:function(){return h},getRouteRegex:function(){return f},parseParameter:function(){return u}});let n=r(2350),a=r(6895),o=r(1435),i=r(2657),s=/\[((?:\[.*\])|.+)\]/;function u(e){let t=e.match(s);return t?l(t[1]):l(e)}function l(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function c(e){let t=(0,i.removeTrailingSlash)(e).slice(1).split("/"),r={},n=1;return{parameterizedRoute:t.map(e=>{let t=a.INTERCEPTION_ROUTE_MARKERS.find(t=>e.startsWith(t)),i=e.match(s);if(t&&i){let{key:e,optional:a,repeat:s}=l(i[1]);return r[e]={pos:n++,repeat:s,optional:a},"/"+(0,o.escapeStringRegexp)(t)+"([^/]+?)"}if(!i)return"/"+(0,o.escapeStringRegexp)(e);{let{key:e,repeat:t,optional:a}=l(i[1]);return r[e]={pos:n++,repeat:t,optional:a},t?a?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)"}}).join(""),groups:r}}function f(e){let{parameterizedRoute:t,groups:r}=c(e);return{re:RegExp("^"+t+"(?:/)?$"),groups:r}}function d(e){let{interceptionMarker:t,getSafeRouteKey:r,segment:n,routeKeys:a,keyPrefix:i}=e,{key:s,optional:u,repeat:c}=l(n),f=s.replace(/\W/g,"");i&&(f=""+i+f);let d=!1;(0===f.length||f.length>30)&&(d=!0),isNaN(parseInt(f.slice(0,1)))||(d=!0),d&&(f=r()),i?a[f]=""+i+s:a[f]=s;let p=t?(0,o.escapeStringRegexp)(t):"";return c?u?"(?:/"+p+"(?<"+f+">.+?))?":"/"+p+"(?<"+f+">.+?)":"/"+p+"(?<"+f+">[^/]+?)"}function p(e,t){let r;let s=(0,i.removeTrailingSlash)(e).slice(1).split("/"),u=(r=0,()=>{let e="",t=++r;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={};return{namedParameterizedRoute:s.map(e=>{let r=a.INTERCEPTION_ROUTE_MARKERS.some(t=>e.startsWith(t)),i=e.match(/\[((?:\[.*\])|.+)\]/);if(r&&i){let[r]=e.split(i[0]);return d({getSafeRouteKey:u,interceptionMarker:r,segment:i[1],routeKeys:l,keyPrefix:t?n.NEXT_INTERCEPTION_MARKER_PREFIX:void 0})}return i?d({getSafeRouteKey:u,segment:i[1],routeKeys:l,keyPrefix:t?n.NEXT_QUERY_PARAM_PREFIX:void 0}):"/"+(0,o.escapeStringRegexp)(e)}).join(""),routeKeys:l}}function h(e,t){let r=p(e,t);return{...f(e),namedRegex:"^"+r.namedParameterizedRoute+"(?:/)?$",routeKeys:r.routeKeys}}function _(e,t){let{parameterizedRoute:r}=c(e),{catchAll:n=!0}=t;if("/"===r)return{namedRegex:"^/"+(n?".*":"")+"$"};let{namedParameterizedRoute:a}=p(e,!1);return{namedRegex:"^"+a+(n?"(?:(/.*)?)":"")+"$"}}},7380:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{getSortedRouteObjects:function(){return a},getSortedRoutes:function(){return n}});class r{insert(e){this._insert(e.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(e){void 0===e&&(e="/");let t=[...this.children.keys()].sort();null!==this.slugName&&t.splice(t.indexOf("[]"),1),null!==this.restSlugName&&t.splice(t.indexOf("[...]"),1),null!==this.optionalRestSlugName&&t.splice(t.indexOf("[[...]]"),1);let r=t.map(t=>this.children.get(t)._smoosh(""+e+t+"/")).reduce((e,t)=>[...e,...t],[]);if(null!==this.slugName&&r.push(...this.children.get("[]")._smoosh(e+"["+this.slugName+"]/")),!this.placeholder){let t="/"===e?"/":e.slice(0,-1);if(null!=this.optionalRestSlugName)throw Error('You cannot define a route with the same specificity as a optional catch-all route ("'+t+'" and "'+t+"[[..."+this.optionalRestSlugName+']]").');r.unshift(t)}return null!==this.restSlugName&&r.push(...this.children.get("[...]")._smoosh(e+"[..."+this.restSlugName+"]/")),null!==this.optionalRestSlugName&&r.push(...this.children.get("[[...]]")._smoosh(e+"[[..."+this.optionalRestSlugName+"]]/")),r}_insert(e,t,n){if(0===e.length){this.placeholder=!1;return}if(n)throw Error("Catch-all must be the last part of the URL.");let a=e[0];if(a.startsWith("[")&&a.endsWith("]")){let r=a.slice(1,-1),i=!1;if(r.startsWith("[")&&r.endsWith("]")&&(r=r.slice(1,-1),i=!0),r.startsWith("…"))throw Error("Detected a three-dot character ('…') at ('"+r+"'). Did you mean ('...')?");if(r.startsWith("...")&&(r=r.substring(3),n=!0),r.startsWith("[")||r.endsWith("]"))throw Error("Segment names may not start or end with extra brackets ('"+r+"').");if(r.startsWith("."))throw Error("Segment names may not start with erroneous periods ('"+r+"').");function o(e,r){if(null!==e&&e!==r)throw Error("You cannot use different slug names for the same dynamic path ('"+e+"' !== '"+r+"').");t.forEach(e=>{if(e===r)throw Error('You cannot have the same slug name "'+r+'" repeat within a single dynamic path');if(e.replace(/\W/g,"")===a.replace(/\W/g,""))throw Error('You cannot have the slug names "'+e+'" and "'+r+'" differ only by non-word symbols within a single dynamic path')}),t.push(r)}if(n){if(i){if(null!=this.restSlugName)throw Error('You cannot use both an required and optional catch-all route at the same level ("[...'+this.restSlugName+']" and "'+e[0]+'" ).');o(this.optionalRestSlugName,r),this.optionalRestSlugName=r,a="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Error('You cannot use both an optional and required catch-all route at the same level ("[[...'+this.optionalRestSlugName+']]" and "'+e[0]+'").');o(this.restSlugName,r),this.restSlugName=r,a="[...]"}}else{if(i)throw Error('Optional route parameters are not yet supported ("'+e[0]+'").');o(this.slugName,r),this.slugName=r,a="[]"}}this.children.has(a)||this.children.set(a,new r),this.children.get(a)._insert(e.slice(1),t,n)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function n(e){let t=new r;return e.forEach(e=>t.insert(e)),t.smoosh()}function a(e,t){let r={},a=[];for(let n=0;ne[r[t]])}},7500:(e,t)=>{"use strict";let r;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return n},setConfig:function(){return a}});let n=()=>r;function a(e){r=e}},6406:(e,t)=>{"use strict";function r(e){return"("===e[0]&&e.endsWith(")")}function n(e,t){if(e.includes(a)){let e=JSON.stringify(t);return"{}"!==e?a+"?"+e:a}return e}Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DEFAULT_SEGMENT_KEY:function(){return o},PAGE_SEGMENT_KEY:function(){return a},addSearchParamsIfPageSegment:function(){return n},isGroupSegment:function(){return r}});let a="__PAGE__",o="__DEFAULT__"},5277:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(7294),a=n.useLayoutEffect,o=n.useEffect;function i(e){let{headManager:t,reduceComponentsToState:r}=e;function i(){if(t&&t.mountedInstances){let a=n.Children.toArray(Array.from(t.mountedInstances).filter(Boolean));t.updateHead(r(a,e))}}return a(()=>{var r;return null==t||null==(r=t.mountedInstances)||r.add(e.children),()=>{var r;null==t||null==(r=t.mountedInstances)||r.delete(e.children)}}),a(()=>(t&&(t._pendingUpdate=i),()=>{t&&(t._pendingUpdate=i)})),o(()=>(t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null),()=>{t&&t._pendingUpdate&&(t._pendingUpdate(),t._pendingUpdate=null)})),null}},9903:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{DecodeError:function(){return h},MiddlewareNotFoundError:function(){return y},MissingStaticPage:function(){return g},NormalizeError:function(){return _},PageNotFoundError:function(){return m},SP:function(){return d},ST:function(){return p},WEB_VITALS:function(){return r},execOnce:function(){return n},getDisplayName:function(){return u},getLocationOrigin:function(){return i},getURL:function(){return s},isAbsoluteUrl:function(){return o},isResSent:function(){return l},loadGetInitialProps:function(){return f},normalizeRepeatedSlashes:function(){return c},stringifyError:function(){return P}});let r=["CLS","FCP","FID","INP","LCP","TTFB"];function n(e){let t,r=!1;return function(){for(var n=arguments.length,a=Array(n),o=0;oa.test(e);function i(){let{protocol:e,hostname:t,port:r}=window.location;return e+"//"+t+(r?":"+r:"")}function s(){let{href:e}=window.location,t=i();return e.substring(t.length)}function u(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function l(e){return e.finished||e.headersSent}function c(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?"?"+t.slice(1).join("?"):"")}async function f(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await f(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&l(r))return n;if(!n)throw Error('"'+u(e)+'.getInitialProps()" should resolve to an object. But found "'+n+'" instead.');return n}let d="undefined"!=typeof performance,p=d&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class h extends Error{}class _ extends Error{}class m extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message="Cannot find module for page: "+e}}class g extends Error{constructor(e,t){super(),this.message="Failed to load static file for page: "+e+" "+t}}class y extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function P(e){return JSON.stringify({message:e.message,stack:e.stack})}},3179:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},738:e=>{(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab="//");var t={};(()=>{t.parse=function(t,r){if("string"!=typeof t)throw TypeError("argument str must be a string");for(var a={},o=t.split(n),i=(r||{}).decode||e,s=0;s{(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab="//");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&i<=57||i>=65&&i<=90||i>=97&&i<=122||95===i){a+=e[o++];continue}break}if(!a)throw TypeError("Missing parameter name at "+r);t.push({type:"NAME",index:r,value:a}),r=o;continue}if("("===n){var s=1,u="",o=r+1;if("?"===e[o])throw TypeError('Pattern cannot start with "?" at '+o);for(;o-1:void 0===P;i||(p+="(?:"+d+"(?="+f+"))?"),E||(p+="(?="+d+"|"+f+")")}return new RegExp(p,o(r))}function s(t,r,n){return t instanceof RegExp?function(e,t){if(!t)return e;var r=e.source.match(/\((?!\?)/g);if(r)for(var n=0;n{!function(){var t={229:function(e){var t,r,n,a=e.exports={};function o(){throw Error("setTimeout has not been defined")}function i(){throw Error("clearTimeout has not been defined")}function s(e){if(t===setTimeout)return setTimeout(e,0);if((t===o||!t)&&setTimeout)return t=setTimeout,setTimeout(e,0);try{return t(e,0)}catch(r){try{return t.call(null,e,0)}catch(r){return t.call(this,e,0)}}}!function(){try{t="function"==typeof setTimeout?setTimeout:o}catch(e){t=o}try{r="function"==typeof clearTimeout?clearTimeout:i}catch(e){r=i}}();var u=[],l=!1,c=-1;function f(){l&&n&&(l=!1,n.length?u=n.concat(u):c=-1,u.length&&d())}function d(){if(!l){var e=s(f);l=!0;for(var t=u.length;t;){for(n=u,u=[];++c1)for(var r=1;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{ACTION_SUFFIX:function(){return c},APP_DIR_ALIAS:function(){return C},CACHE_ONE_YEAR:function(){return S},DOT_NEXT_ALIAS:function(){return x},ESLINT_DEFAULT_DIRS:function(){return $},GSP_NO_RETURNED_VALUE:function(){return q},GSSP_COMPONENT_MEMBER_ERROR:function(){return z},GSSP_NO_RETURNED_VALUE:function(){return X},INFINITE_CACHE:function(){return R},INSTRUMENTATION_HOOK_FILENAME:function(){return A},MIDDLEWARE_FILENAME:function(){return O},MIDDLEWARE_LOCATION_REGEXP:function(){return T},NEXT_BODY_SUFFIX:function(){return p},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return v},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return m},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return g},NEXT_CACHE_SOFT_TAGS_HEADER:function(){return _},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return b},NEXT_CACHE_TAGS_HEADER:function(){return h},NEXT_CACHE_TAG_MAX_ITEMS:function(){return P},NEXT_CACHE_TAG_MAX_LENGTH:function(){return E},NEXT_DATA_SUFFIX:function(){return f},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return n},NEXT_META_SUFFIX:function(){return d},NEXT_QUERY_PARAM_PREFIX:function(){return r},NEXT_RESUME_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return Y},PAGES_DIR_ALIAS:function(){return j},PRERENDER_REVALIDATE_HEADER:function(){return a},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return o},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return k},ROOT_DIR_ALIAS:function(){return w},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return U},RSC_ACTION_ENCRYPTION_ALIAS:function(){return D},RSC_ACTION_PROXY_ALIAS:function(){return N},RSC_ACTION_VALIDATE_ALIAS:function(){return M},RSC_CACHE_WRAPPER_ALIAS:function(){return L},RSC_MOD_REF_PROXY_ALIAS:function(){return I},RSC_PREFETCH_SUFFIX:function(){return i},RSC_SEGMENTS_DIR_SUFFIX:function(){return s},RSC_SEGMENT_SUFFIX:function(){return u},RSC_SUFFIX:function(){return l},SERVER_PROPS_EXPORT_ERROR:function(){return G},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return H},SERVER_PROPS_SSG_CONFLICT:function(){return B},SERVER_RUNTIME:function(){return Q},SSG_FALLBACK_EXPORT_ERROR:function(){return K},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return F},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return W},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return V},WEBPACK_LAYERS:function(){return Z},WEBPACK_RESOURCE_QUERIES:function(){return ee}});let r="nxtP",n="nxtI",a="x-prerender-revalidate",o="x-prerender-revalidate-if-generated",i=".prefetch.rsc",s=".segments",u=".segment.rsc",l=".rsc",c=".action",f=".json",d=".meta",p=".body",h="x-next-cache-tags",_="x-next-cache-soft-tags",m="x-next-revalidated-tags",g="x-next-revalidate-tag-token",y="next-resume",P=64,E=256,b=1024,v="_N_T_",S=31536e3,R=0xfffffffe,O="middleware",T=`(?:src/)?${O}`,A="instrumentation",j="private-next-pages",x="private-dot-next",w="private-next-root-dir",C="private-next-app-dir",I="private-next-rsc-mod-ref-proxy",M="private-next-rsc-action-validate",N="private-next-rsc-server-reference",L="private-next-rsc-cache-wrapper",D="private-next-rsc-action-encryption",U="private-next-rsc-action-client-wrapper",k="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",F="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",H="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",B="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",W="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",G="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",q="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",X="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",V="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",z="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",Y='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',K="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",$=["app","pages","components","lib","src"],Q={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},J={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",api:"api",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",appMetadataRoute:"app-metadata-route"},Z={...J,GROUP:{builtinReact:[J.reactServerComponents,J.actionBrowser,J.appMetadataRoute],serverOnly:[J.reactServerComponents,J.actionBrowser,J.appMetadataRoute,J.instrument,J.middleware],neutralTarget:[J.api],clientOnly:[J.serverSideRendering,J.appPagesBrowser],bundled:[J.reactServerComponents,J.actionBrowser,J.appMetadataRoute,J.serverSideRendering,J.appPagesBrowser,J.shared,J.instrument],appPages:[J.reactServerComponents,J.serverSideRendering,J.appPagesBrowser,J.actionBrowser]}},ee={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},9423:(e,t)=>{"use strict";function r(e){return"/api"===e||!!(null==e?void 0:e.startsWith("/api/"))}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isAPIRoute",{enumerable:!0,get:function(){return r}})},676:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{default:function(){return a},getProperError:function(){return o}});let n=r(5997);function a(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function o(e){return a(e)?e:Error((0,n.isPlainObject)(e)?JSON.stringify(e):e+"")}},1730:(e,t,r)=>{"use strict";function n(e){return function(){let{cookie:t}=e;if(!t)return{};let{parse:n}=r(738);return n(Array.isArray(t)?t.join("; "):t)}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getCookieParser",{enumerable:!0,get:function(){return n}})},9492:(e,t)=>{"use strict";var r;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HMR_ACTIONS_SENT_TO_BROWSER",{enumerable:!0,get:function(){return r}}),function(e){e.ADDED_PAGE="addedPage",e.REMOVED_PAGE="removedPage",e.RELOAD_PAGE="reloadPage",e.SERVER_COMPONENT_CHANGES="serverComponentChanges",e.MIDDLEWARE_CHANGES="middlewareChanges",e.CLIENT_CHANGES="clientChanges",e.SERVER_ONLY_CHANGES="serverOnlyChanges",e.SYNC="sync",e.BUILT="built",e.BUILDING="building",e.DEV_PAGES_MANIFEST_UPDATE="devPagesManifestUpdate",e.TURBOPACK_MESSAGE="turbopack-message",e.SERVER_ERROR="serverError",e.TURBOPACK_CONNECTED="turbopack-connected",e.APP_ISR_MANIFEST="appIsrManifest"}(r||(r={}))},6895:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var r in t)Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}(t,{INTERCEPTION_ROUTE_MARKERS:function(){return a},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return o}});let n=r(6525),a=["(..)(..)","(.)","(..)","(...)"];function o(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function i(e){let t,r,o;for(let n of e.split("/"))if(r=a.find(e=>n.startsWith(e))){[t,o]=e.split(r,2);break}if(!t||!r||!o)throw Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`);switch(t=(0,n.normalizeAppPath)(t),r){case"(.)":o="/"===t?`/${o}`:t+"/"+o;break;case"(..)":if("/"===t)throw Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`);o=t.split("/").slice(0,-1).concat(o).join("/");break;case"(...)":o="/"+o;break;case"(..)(..)":let i=t.split("/");if(i.length<=2)throw Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`);o=i.slice(0,-2).concat(o).join("/");break;default:throw Error("Invariant: unexpected marker")}return{interceptingRoute:t,interceptedRoute:o}}},8754:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},1757:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e)if("default"!==i&&Object.prototype.hasOwnProperty.call(e,i)){var s=o?Object.getOwnPropertyDescriptor(e,i):null;s&&(s.get||s.set)?Object.defineProperty(a,i,s):a[i]=e[i]}return a.default=e,r&&r.set(e,a),a}r.r(t),r.d(t,{_:()=>a})}},e=>{var t=t=>e(e.s=t);e.O(0,[774],()=>t(3136)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/nextra-data-en-US.json b/_next/static/chunks/nextra-data-en-US.json
new file mode 100644
index 0000000..75264f1
--- /dev/null
+++ b/_next/static/chunks/nextra-data-en-US.json
@@ -0,0 +1 @@
+{"/branding":{"title":"Branding","data":{"":"Branding in this context refers to the logo that is displayed on the ElegantOTA portal during the OTA update process. You can customize the logo by defining the logo image as a byte array in the logo.h and logo.cpp files of the library's source code without even touching HTML or CSS.","procedure#Procedure":"To add your custom logo on the ElegantOTA Pro portal, follow these steps:","prepare-logo#Prepare logo":"First, you need to create or obtain the logo image you want to display on the ElegantOTA portal during OTA updates. Ensure that the logo image is in a suitable format, such as a SVG (recommended) / PNG or JPG file and make sure your image is optimized & small in file size.","convert-logo-to-a-byte-array#Convert logo to a byte array":"To include the logo in your library, you'll need to convert the image into a byte array.\nGo to File2Raw utility ( I created this utility a few years back for the purpose of converting files into byte array for C++ applications ).\nSelect your logo.\nSelect \"Gzip Compress\" & \"Use PROGMEM (Arduino)\".\nClick \"Convert\".","modify-logoh#Modify logo.h":"Open the logo.h file in your ElegantOTA library source code.\nLocate the ELEGANTOTA_LOGO byte array declaration, which should look like this:\nextern const uint8_t ELEGANTOTA_LOGO[];\nReplace the length of the ELEGANTOTA_LOGO array with your custom logo's byte array length.\nLocate the ELEGANTOTA_LOGO_MIME variable, which defines the MIME type of your logo image. By default, it is set to image/png. If your logo is in a different format (e.g., JPEG), update the ELEGANTOTA_LOGO_MIME variable to the appropriate MIME type.\nSet ELEGANTOTA_LOGO_WIDTH & ELEGANTOTA_LOGO_HEIGHT according to your desired size which will be displayed on the webpage.","modify-logocpp#Modify logo.cpp":"Open the logo.cpp file in your ElegantOTA library source code.\nReplace the contents of the ELEGANTOTA_LOGO array with your custom logo's byte array generated in File2Raw utility.","upload-firmware#Upload firmware":"After making these changes, compile and upload the firmware with modified ElegantOTA library to your device.","final-words#Final Words":"Once you have uploaded the modified ElegantOTA library to your device, the custom logo will be displayed on the ElegantOTA Portal webpage during OTA updates.That's it! You have successfully added custom branding to the ElegantOTA portal by defining the logo as a byte array in the logo.h and logo.cpp files. Your logo will now be displayed on the ElegantOTA portal.\nPlease note that branding, including logos and images, may be subject to copyright and trademark laws. Ensure you have the necessary rights or permissions to use any branding elements in your project."}},"/commercial-license":{"title":"Commercial License","data":{"":"ElegantOTA Lite (open-source version) and ElegantOTA Pro are two different versions of the same OTA (Over-The-Air) update library, each with its own set of features and licensing terms. Here's a comparison between ElegantOTA Lite, which is open-source and AGPL-3.0 based, and ElegantOTA Pro:\nLicensing:\nElegantOTA Lite: This version is open-source and released under the AGPL-3.0 license. It means that it's freely available for anyone to use, modify, and distribute. However, if you use ElegantOTA Lite in a commercial product, the AGPL-3.0 license requires you to make the source code of your product, including any modifications to ElegantOTA Lite, available to the public.\nElegantOTA Pro: This version is offered under a one-time charge for a commercial license. It allows you to use ElegantOTA Pro in a commercial product without the requirement to open-source your proprietary code. The commercial license provides more flexibility and protection for businesses.\nSupport:\nElegantOTA Lite: Support for ElegantOTA Lite is typically community-driven. You may find help through online forums, documentation, or user-contributed resources. However, professional support may be limited.\nElegantOTA Pro: ElegantOTA Pro includes dedicated support and assistance. This can be essential for businesses that require timely and reliable support to ensure their OTA update process runs smoothly.\nIn summary, the choice between ElegantOTA Lite and ElegantOTA Pro depends on your specific needs and the nature of your project:\nIf you are working on an open-source project or have no concerns about the AGPL-3.0 license's requirements and need basic OTA update functionality, ElegantOTA Lite is a viable choice.\nIf you are developing a commercial product, ElegantOTA Pro provides a more comprehensive and professionally supported solution while allowing you to maintain the proprietary nature of your code. However, it comes with a one-time commercial licensing fee.\nYou can get ElegantOTA Pro via the official product page at: https://elegantota.pro"}},"/features/auto-reboot":{"title":"Auto Reboot","data":{"":"Often there comes a situation where you don't want to reboot automatically. In these cases, you can use the setAutoReboot function which will enable/disable automatic reboot of your microcontroller after a successful OTA update.","set-auto-reboot#Set Auto Reboot":"You can set up auto reboot for your device using the ElegantOTA.setAutoReboot(false); function. This functions takes true or false to enable / disable automatic reboot. You can use this function anywhere in your code.","reference#Reference":"#include \nvoid setup() {\n // Initialize your hardware and other configurations here\n // Disable Auto Reboot\n ElegantOTA.setAutoReboot(false);\n // Additional setup code\n}\nvoid loop() {\n // Your main loop code here\n}\nIn the above example, the ElegantOTA.setAutoReboot(false); function call disables automatic reboot."}},"/features/callbacks":{"title":"Callbacks","data":{"":"The ElegantOTA library offers three callbacks that allow you to customize the behavior of your OTA update process. These callbacks enable you to execute specific functions at different stages of the update process, giving you control over the update flow. Here are the available callbacks:\nonStart(void callable(void));\nonProgress(void callable(size_t current, size_t final));\nonEnd(void callable(bool success));\nLet's delve into the details of each callback and how to use them effectively.","onstart-callback#onStart Callback":"The onStart callback is triggered when the OTA update process begins. It's a convenient way to perform any setup or initialization tasks before the update process starts. You can use this callback to prepare your device for the update, such as saving important data, configuring pins, or setting up any required resources.Example:\nElegantOTA.onStart([]() {\n Serial.println(\"OTA update process started.\");\n // Add your initialization tasks here.\n});","onprogress-callback#onProgress Callback":"The onProgress callback is called periodically during the OTA update to provide information about the progress of the update. It's useful for tracking the percentage of completion or displaying progress information to the user. This callback passes two parameters: current (the number of bytes transferred so far) and final (the total number of bytes to be transferred).Note: onProgress callback can be called very frequently while the update is getting downloaded. It's neccessary to defer any tasks or logging so that core is not overloaded. Please refer to 'demo' example where progress is logged after every second.Example:\nElegantOTA.onProgress([](size_t current, size_t final) {\n Serial.printf(\"Progress: %u%%\\n\", (current * 100) / final);\n});","onend-callback#onEnd Callback":"The onEnd callback is invoked when the OTA update process completes, whether it succeeds or fails. It passes a boolean parameter success indicating the outcome of the update. You can use this callback to perform cleanup tasks or take action based on whether the update was successful or not.Example:\nElegantOTA.onEnd([](bool success) {\n if (success) {\n Serial.println(\"OTA update completed successfully.\");\n // Add success handling here.\n } else {\n Serial.println(\"OTA update failed.\");\n // Add failure handling here.\n }\n});"}},"/features/custom-title":{"title":"Custom Title","data":{"":"The setTitle() function is a method provided by the ElegantOTA Pro library. It is used to set the title of the OTA (Over-The-Air) update portal. This title is displayed at the top of the update portal web page, providing a user-friendly and customizable interface for managing firmware updates.","reference#Reference":"#include \nvoid setup() {\n // Initialize the ElegantOTA library\n ElegantOTA.begin();\n // Set the title of the OTA update portal\n ElegantOTA.setTitle(\"OTA Update - XYZ Inc\");\n}\nvoid loop() {\n // Your main program loop\n}","usage#Usage":"Include the ElegantOTA library in your Arduino sketch.\nIn the setup() function of your sketch, initialize the ElegantOTA library using ElegantOTA.begin().\nUse the setTitle() function to set a meaningful title for your OTA update portal. This title will be displayed at the top of the update portal web page when users access it.\nContinue with the rest of your sketch's setup and loop functions."}},"/features/firmware-version":{"title":"Firmware Version","data":{"":"The Firmware Version feature in ElegantOTA allows you to specify and manage the version of the firmware running on your Internet of Things (IoT) devices. By setting a firmware version, you can easily track and control the software running on your devices, making it simpler to perform updates, monitor compatibility, and manage your IoT ecosystem effectively.You can set the firmware version for your device using the ElegantOTA.setFWVersion(\"version\"); function.","reference#Reference":"#include \nvoid setup() {\n // Initialize your hardware and other configurations here\n // Set the Firmware Version\n ElegantOTA.setFWVersion(\"1.0.0\");\n // Additional setup code\n}\nvoid loop() {\n // Your main loop code here\n}\nIn the above example, the ElegantOTA.setFWVersion(\"1.0.0\"); function call assigns the firmware version \"1.0.0\" to the device.","use-cases#Use Cases":"The Firmware Version feature can be beneficial in various scenarios:\nFirmware Updates: When new firmware versions become available, the Firmware Version identifier helps you check if an update is necessary. It also allows you to verify that devices have received the correct update.\nCompatibility: By knowing the firmware version of each device, you can ensure that all components of your IoT network are compatible. This is especially important when devices communicate or interact with each other.\nHistorical Tracking: You can maintain a history of firmware versions installed on each device, which can be useful for troubleshooting issues or understanding the evolution of your firmware.\nRemote Diagnostics: When diagnosing issues remotely, having access to the firmware version can help you identify potential problems related to specific software releases.","best-practices#Best Practices":"To make the most of the Firmware Version feature, consider the following best practices:\nFollow a consistent versioning scheme for your firmware, such as Semantic Versioning (SemVer), to ensure clarity and compatibility tracking.\nSet the firmware version during the device's initialization phase, such as in the setup() function, to guarantee that it accurately reflects the installed firmware.\nWhen updating firmware, always ensure that the new version is correctly set using ElegantOTA.setFWVersion() to maintain accurate version information."}},"/features/hardware-id":{"title":"Hardware ID","data":{"":"The Hardware ID feature in ElegantOTA is shown on the ElegantOTA Pro portal. This ID should be a unique string that helps you easily identify the specific hardware device among others in your network.You can set the hardware ID for your device using the ElegantOTA.setID(\"xyz\"); function.","reference#Reference":"#include \nvoid setup() {\n // Initialize your hardware and other configurations here\n // Set the Hardware ID\n ElegantOTA.setID(\"my_device_001\");\n // Additional setup code\n}\nvoid loop() {\n // Your main loop code here\n}\nIn the above example, the ElegantOTA.setID(\"my_device_001\"); function call assigns the Hardware ID \"my_device_001\" to the device.","best-practices#Best Practices":"To make the most of the Hardware ID feature, consider the following best practices:\nChoose a Hardware ID that is unique to each device to avoid conflicts.\nAvoid using special characters or spaces in the Hardware ID, as these might cause issues when used in network communication or file naming.\nDocument and keep track of the Hardware IDs for all your devices to ensure proper management.\nEnsure that the Hardware ID is set during the device's initialization phase, such as in the setup() function, to guarantee that it is properly configured before any network or communication activities."}},"/getting-started/async-mode":{"title":"Async Mode","data":{"":"ElegantOTA includes an async mode feature, enabling asynchronous web server functionality for managing OTA updates. When async mode is enabled, ElegantOTA utilizes ESPAsyncWebServer to handle all HTTP routes.\nThis mode should only be enabled if you are using ESPAsyncWebServer library in your project/firmware.","recommended-dependencies#Recommended Dependencies":"","for-esp8266#For ESP8266":"(mathieucarbou) esphome-ESPAsyncTCP - v2.0.0\n(mathieucarbou) ESPAsyncWebServer - v3.3.20","for-esp32#For ESP32":"(mathieucarbou) AsyncTCP @ v3.2.10\n(mathieucarbou) ESPAsyncWebServer - v3.3.20","for-rp2040--wifi#For RP2040 (+ WiFi)":"(khoih-prog) AsyncTCP_RP2040W @ v1.2.0\n(mathieucarbou) ESPAsyncWebServer - v3.3.20","use-of-unrecommended-dependencies-experimental#Use of Unrecommended Dependencies (Experimental)":"Incase your project is strictly dependent on a fork of dependency which is not listed above, you need to follow these steps if you are using PlatformIO:\nPlease make sure to install ElegantOTA 'manually' using the steps provided in installation guide\nOpen library.json file in ElegantOTA library folder and delete the dependencies parameter. This will disable auto installation of recommended dependencies.","enabling-async-mode#Enabling Async Mode":"","for-arduino-ide#For Arduino IDE":"Go to your Arduino libraries directory\nOpen ElegantOTA folder and then open src folder\nLocate the ELEGANTOTA_USE_ASYNC_WEBSERVER macro in the ElegantOTA.h file, and set it to 1:\n#define ELEGANTOTA_USE_ASYNC_WEBSERVER 1\nSave the changes to the ElegantOTA.h file.\nYou are now ready to use ElegantOTA in async mode for your OTA updates, utilizing the ESPAsyncWebServer library.","for-platformio#For PlatformIO":"If you use PlatformIO then we can use a neat trick! You can set build_flags in your platformio.ini file that enables Async Mode of ElegantOTA.\nOpen platformio.ini file of your project\nPaste this line build_flags=-DELEGANTOTA_USE_ASYNC_WEBSERVER=1 at bottom\nDone!\nPlatformIO will now compile ElegantOTA in Async Mode!","benefits-of-async-mode#Benefits of Async Mode":"Enabling async mode for ElegantOTA offers several advantages:\nNon-blocking Operation: In async mode, ElegantOTA leverages the asynchronous web server capabilities of ESPAsyncWebServer. This means that OTA updates won't block your device's main loop. It allows your device to continue executing other tasks while handling OTA updates in the background.\nImproved Responsiveness: Your device can remain responsive to user interactions or other processes during OTA updates, ensuring a smoother user experience."}},"/getting-started/examples":{"title":"Examples","data":{"":"The ElegantOTA repository provides two example setups: Demo and Async Demo. These examples showcase how to integrate OTA (Over-The-Air) updates into your project using different types of web servers, allowing you to pick the best option for your specific needs.","demo#Demo":"Demo example is for people who are using the inbuilt webserver of their platform. This is meant to run without any dependencies.","async-demo#Async Demo":"Async demo example utilizes AsyncWebServer which has significant performance gains. Only use this example as reference when your project is using AsyncWebServer. Know more about this in \"Async Mode\" documentation.You can find those examples in the ElegantOTA repository."}},"/getting-started/installation":{"title":"Installation","data":{"":"Learn how to effortlessly set up ElegantOTA, a sleek, web-based tool for seamless over-the-air firmware updates. This guide walks you through the installation process, from initial setup to first use, helping you upgrade your projects with ease and style.","platforms#Platforms":"","for-arduino-ide#For Arduino IDE":"","library-manager#Library Manager":"Go to Sketch > Include Library > Library Manager > Search for \"ElegantOTA\" > Install","manual-installation#Manual Installation":"","for-windows#For Windows":"Download the Repository\nExtract the .zip in Documents > Arduino > Libraries > {Place \"ElegantOTA\" folder Here}","for-linux#For Linux":"Download the Repository\nExtract the .zip in Sketchbook > Libraries > {Place \"ElegantOTA\" folder Here}","import-through-arduino-ide#Import through Arduino IDE":"Download the Repository\nGo to Sketch > Include Library > Add .zip Library > Select the Downloaded .zip File.","for-platformio#For PlatformIO":"Required changes in platformio.iniAs ElegantOTA supports multiple architectures, PlatformIO will try to include all the dependencies automatically which will often result in compilation errors. To mitigate this issue, please follow these steps:\nDelete .pio/libdeps folder (if it exists) in your project before proceeding.\nOpen platformio.ini file of your project.\nAdd the following line inside your platformio.ini file:\nlib_compat_mode = strict\nSave the changes to the platformio.ini file.","library-manager-1#Library Manager":"Go to PlatformIO Menu > Libraries > Search for \"ElegantOTA\" > Install in your project.","manual-installation-1#Manual Installation":"Download the Repository\nExtract the .zip in lib folder of your project"}},"/getting-started/integration":{"title":"Integration","data":{"":"Integrating ElegantOTA in your existing code is pretty simple. This guide assumes that you already have a simple webserver code prepared and you just need to inject the following lines in your existing code:","include-dependency#Include Dependency":"At the very beginning of sketch include the ElegantOTA library.\n#include ","add-begin-function#Add begin function":"Now add the begin function of ElegantOTA in setup block of your sketch. This will inject ElegantOTA routes and logic into the web server.\nElegantOTA.begin(&server);","add-loop-function#Add loop function":"Last part is to call the loop function of ElegantOTA in loop block of your sketch. This loop block is necessary for ElegantOTA to handle reboot after OTA update.\nElegantOTA.loop();","final-code#Final Code":"That's it! This is how a ready to use example will look like. After uploading the code to your platform, you can access ElegantOTA portal on http:///update.\n/*\n -----------------------\n ElegantOTA - Demo Example\n -----------------------\n Skill Level: Beginner\n This example provides with a bare minimal app with ElegantOTA functionality.\n Github: https://github.com/ayushsharma82/ElegantOTA\n WiKi: https://docs.elegantota.pro\n Works with both ESP8266 & ESP32\n -------------------------------\n Upgrade to ElegantOTA Pro: https://elegantota.pro\n*/\n#if defined(ESP8266)\n #include \n #include \n #include \n#elif defined(ESP32)\n #include \n #include \n #include \n#endif\n#include \nconst char* ssid = \"........\";\nconst char* password = \"........\";\n#if defined(ESP8266)\n ESP8266WebServer server(80);\n#elif defined(ESP32)\n WebServer server(80);\n#endif\nvoid setup(void) {\n Serial.begin(115200);\n WiFi.mode(WIFI_STA);\n WiFi.begin(ssid, password);\n Serial.println(\"\");\n // Wait for connection\n while (WiFi.status() != WL_CONNECTED) {\n delay(500);\n Serial.print(\".\");\n }\n Serial.println(\"\");\n Serial.print(\"Connected to \");\n Serial.println(ssid);\n Serial.print(\"IP address: \");\n Serial.println(WiFi.localIP());\n server.on(\"/\", []() {\n server.send(200, \"text/plain\", \"Hi! This is ElegantOTA Demo.\");\n });\n ElegantOTA.begin(&server); // Start ElegantOTA\n server.begin();\n Serial.println(\"HTTP server started\");\n}\nvoid loop(void) {\n server.handleClient();\n ElegantOTA.loop();\n}"}},"/":{"title":"Introduction","data":{"":"ElegantOTA provides a beautiful user interface to upload over-the-air firmware/filesystem updates to your hardware with precise status and progress. ElegantOTA is designed to make the process of OTA updates slick and simple!","features#Features":"🔥 Quick & simple OTA procedure\n🏀 Get useful insight on progress and status of your OTA update\n🎷 No need to learn HTML/CSS/JS\n🛫 Ready to use within 3 lines of code\nThis documentation serves both ElegantOTA Lite & Pro. Therefore, if you notice Pro mentioned on any of the features in the documentation, it means that particular feature is only available in ElegantOTA Pro."}},"/security/authentication":{"title":"Authentication","data":{"":"The Authentication feature in ElegantOTA enhances the security of your Internet of Things (IoT) devices by requiring user to login before allowing firmware updates or configuration changes. This feature ensures that only authorized individuals or systems can access and modify your devices, adding an extra layer of protection to your IoT ecosystem.","setup#Setup":"You can set up authentication for your device using the following function. This function requires two parameters: a username and a password. These credentials act as a gatekeeper, preventing unauthorized access to the device's OTA (Over-The-Air) update endpoint and configuration interfaces.\nElegantOTA.setAuth(\"username\", \"password\");","reference#Reference":"#include \nvoid setup() {\n // Initialize your hardware and other configurations here\n // Set Authentication Credentials\n ElegantOTA.setAuth(\"myUsername\", \"myPassword\");\n // Additional setup code\n}\nvoid loop() {\n // Your main loop code here\n}\nIn the above example, the ElegantOTA.setAuth(\"myUsername\", \"myPassword\"); function call sets the username to \"myUsername\" and the password to \"myPassword\" for device authentication.","clearing-authentication#Clearing Authentication":"Authentication once set can also be cleared by calling:\nElegantOTA.clearAuth();","use-cases#Use Cases":"The Authentication feature is crucial in various scenarios:\nSecurity: It safeguards your IoT devices against unauthorized access, reducing the risk of malicious updates or configuration changes.\nAccess Control: By setting unique credentials for each device, you can control access to individual devices, ensuring that only authorized personnel or systems can modify them.\nCompliance: Some security and compliance standards require authentication mechanisms for IoT devices. ElegantOTA's Authentication feature helps you meet these requirements.","best-practices#Best Practices":"To ensure the effectiveness of the Authentication feature, consider these best practices:\nChoose strong and unique usernames and passwords for each device.\nAvoid using default or easily guessable credentials to enhance security.\nKeep the credentials in a secure location and avoid hardcoding them directly into your code to prevent accidental exposure.\nRegularly update and rotate the authentication credentials to maintain security.\nTest the authentication setup thoroughly to ensure that only authorized users can access the device."}},"/security/disable-filesystem-ota":{"title":"Disable Filesystem OTA","data":{"":"ElegantOTA allows you to selectively enable or disable OTA modes of your choice for security reasons or when you have a important task running where you don't want it to get interrupted by an OTA update. UI automatically hides the modes which have been disabled.Using these functions you can enable or disable filesystem updates ( SPIFFS or LittleFS ).","enable-filesystem-ota#Enable Filesystem OTA":"// Pass 'true' to enable Filesystem mode\nElegantOTA.setFilesystemMode(false);\nAll OTA modes are enabled by default on startup (cold boot).","disable-filesystem-ota#Disable Filesystem OTA":"// Pass 'false' to disable Filesystem mode\nElegantOTA.setFilesystemMode(true);","get-filesystem-ota-mode-status#Get Filesystem OTA mode status":"// You can use this logic inside a function if neccessary\nif(ElegantOTA.checkFilesystemMode() == true) {\n Serial.println(\"Filesystem mode is enabled\");\n} else {\n Serial.println(\"Filesystem mode is disabled\");\n}"}},"/security/disable-firmware-ota":{"title":"Disable Firmware OTA","data":{"":"ElegantOTA allows you to selectively enable or disable OTA modes of your choice for security reasons or when you have a important task running where you don't want it to get interrupted by an OTA update. UI automatically hides the modes which have been disabled.\nThis function should be used very carefully as it blocks firmware update! If by mistake this is left disabled, your device will not be recoverable by an OTA update.","enable-firmware-ota#Enable Firmware OTA":"// Pass 'true' to enable Firmware mode\nElegantOTA.setFirmwareMode(true);\nAll OTA modes are enabled by default on startup (cold boot).","disable-firmware-ota#Disable Firmware OTA":"// Pass 'false' to disable Firmware mode\nElegantOTA.setFirmwareMode(false);","get-firmware-ota-mode-status#Get Firmware OTA mode status":"// You can use this logic inside a function if neccessary\nif(ElegantOTA.checkFirmwareMode() == true) {\n Serial.println(\"Firmware mode is enabled\");\n} else {\n Serial.println(\"Firmware mode is disabled\");\n}"}}}
\ No newline at end of file
diff --git a/_next/static/chunks/nextra-page-map-.mjs b/_next/static/chunks/nextra-page-map-.mjs
new file mode 100644
index 0000000..c962147
--- /dev/null
+++ b/_next/static/chunks/nextra-page-map-.mjs
@@ -0,0 +1,137 @@
+import meta from "../../../pages/_meta.jsx";
+import features_meta from "../../../pages/features/_meta.jsx";
+import getting_started_meta from "../../../pages/getting-started/_meta.jsx";
+import security_meta from "../../../pages/security/_meta.jsx";
+export const pageMap = [{
+ data: meta
+}, {
+ name: "404",
+ route: "/404",
+ frontMatter: {
+ "title": "Page Not Found",
+ "description": "This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."
+ }
+}, {
+ name: "branding",
+ route: "/branding",
+ frontMatter: {
+ "title": "Branding",
+ "description": "Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."
+ }
+}, {
+ name: "commercial-license",
+ route: "/commercial-license",
+ frontMatter: {
+ "title": "Commercial License",
+ "description": "Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."
+ }
+}, {
+ name: "features",
+ route: "/features",
+ children: [{
+ data: features_meta
+ }, {
+ name: "auto-reboot",
+ route: "/features/auto-reboot",
+ frontMatter: {
+ "title": "Auto Reboot",
+ "description": "Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."
+ }
+ }, {
+ name: "callbacks",
+ route: "/features/callbacks",
+ frontMatter: {
+ "title": "Callbacks",
+ "description": "Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."
+ }
+ }, {
+ name: "custom-title",
+ route: "/features/custom-title",
+ frontMatter: {
+ "title": "Custom Title",
+ "description": "Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."
+ }
+ }, {
+ name: "firmware-version",
+ route: "/features/firmware-version",
+ frontMatter: {
+ "title": "Firmware Version",
+ "description": "Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."
+ }
+ }, {
+ name: "hardware-id",
+ route: "/features/hardware-id",
+ frontMatter: {
+ "title": "Hardware ID",
+ "description": "Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."
+ }
+ }]
+}, {
+ name: "getting-started",
+ route: "/getting-started",
+ children: [{
+ data: getting_started_meta
+ }, {
+ name: "async-mode",
+ route: "/getting-started/async-mode",
+ frontMatter: {
+ "title": "Async Mode",
+ "description": "Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."
+ }
+ }, {
+ name: "examples",
+ route: "/getting-started/examples",
+ frontMatter: {
+ "title": "Examples",
+ "description": "Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."
+ }
+ }, {
+ name: "installation",
+ route: "/getting-started/installation",
+ frontMatter: {
+ "title": "Installation",
+ "description": "Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."
+ }
+ }, {
+ name: "integration",
+ route: "/getting-started/integration",
+ frontMatter: {
+ "title": "Integration",
+ "description": "Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."
+ }
+ }]
+}, {
+ name: "index",
+ route: "/",
+ frontMatter: {
+ "title": "Introduction",
+ "description": "An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."
+ }
+}, {
+ name: "security",
+ route: "/security",
+ children: [{
+ data: security_meta
+ }, {
+ name: "authentication",
+ route: "/security/authentication",
+ frontMatter: {
+ "title": "Authentication",
+ "description": "Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."
+ }
+ }, {
+ name: "disable-filesystem-ota",
+ route: "/security/disable-filesystem-ota",
+ frontMatter: {
+ "title": "Disable Filesystem OTA",
+ "description": "Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."
+ }
+ }, {
+ name: "disable-firmware-ota",
+ route: "/security/disable-firmware-ota",
+ frontMatter: {
+ "title": "Disable Firmware OTA",
+ "description": "Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."
+ }
+ }]
+}];
\ No newline at end of file
diff --git a/_next/static/chunks/pages/404-be43fa26d0925cfb.js b/_next/static/chunks/pages/404-be43fa26d0925cfb.js
new file mode 100644
index 0000000..c769f24
--- /dev/null
+++ b/_next/static/chunks/pages/404-be43fa26d0925cfb.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[197],{1211:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/404",function(){return n(1985)}])},1985:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useTOC:()=>o});var a=n(5893),i=n(7812),r=n(8609),s=n(8925);function o(e){return[]}let l=(0,i.c)(function(e){let t={h1:"h1",p:"p",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(t.h1,{children:"404 - Page Not Found"}),"\n",(0,a.jsx)(t.p,{children:"It looks like you’ve followed a broken link or entered a URL that doesn’t exist anymore on this site. Please check the sidebar for the relevant page."})]})},"/404",{filePath:"pages/404.mdx",timestamp:1730034633e3,pageMap:r.v,frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."},title:"Page Not Found"},"undefined"==typeof RemoteContent?o:RemoteContent.useTOC)},8609:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var a=n(5893);function i(){return(0,a.jsx)("span",{className:"_flex _items-center",children:(0,a.jsx)("img",{src:"/pro-badge.gif",width:32})})}let r={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,a.jsx)(i,{})]})},"commercial-license":{title:"Commercial License"}},s=[{data:r},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,a.jsx)(i,{})]})},"firmware-version":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,a.jsx)(i,{})]})},"custom-title":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,a.jsx)(i,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,a.jsx)(i,{})]})},"disable-filesystem-ota":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,a.jsx)(i,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(1211)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/_app-68b39c77ed2d2f9e.js b/_next/static/chunks/pages/_app-68b39c77ed2d2f9e.js
new file mode 100644
index 0000000..bc38d4b
--- /dev/null
+++ b/_next/static/chunks/pages/_app-68b39c77ed2d2f9e.js
@@ -0,0 +1,7 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[888],{1118:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_app",function(){return n(6889)}])},6889:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>lu});var r,o,i,l,a=n(5893),s=n(7294),u=n.t(s,2),c=["light","dark"],d="(prefers-color-scheme: dark)",f="undefined"==typeof window,m=s.createContext(void 0),p={setTheme:e=>{},themes:[]},h=()=>{var e;return null!=(e=s.useContext(m))?e:p},g=e=>s.useContext(m)?e.children:s.createElement(b,{...e}),v=["light","dark"],b=({forcedTheme:e,disableTransitionOnChange:t=!1,enableSystem:n=!0,enableColorScheme:r=!0,storageKey:o="theme",themes:i=v,defaultTheme:l=n?"system":"light",attribute:a="data-theme",value:u,children:f,nonce:p})=>{let[h,g]=s.useState(()=>y(o,l)),[b,E]=s.useState(()=>y(o)),C=u?Object.values(u):i,k=s.useCallback(e=>{let o=e;if(!o)return;"system"===e&&n&&(o=w());let i=u?u[o]:o,s=t?_():null,d=document.documentElement;if("class"===a?(d.classList.remove(...C),i&&d.classList.add(i)):i?d.setAttribute(a,i):d.removeAttribute(a),r){let e=c.includes(l)?l:null,t=c.includes(o)?o:e;d.style.colorScheme=t}null==s||s()},[]),S=s.useCallback(e=>{let t="function"==typeof e?e(e):e;g(t);try{localStorage.setItem(o,t)}catch(e){}},[e]),T=s.useCallback(t=>{E(w(t)),"system"===h&&n&&!e&&k("system")},[h,e]);s.useEffect(()=>{let e=window.matchMedia(d);return e.addListener(T),T(e),()=>e.removeListener(T)},[T]),s.useEffect(()=>{let e=e=>{e.key===o&&S(e.newValue||l)};return window.addEventListener("storage",e),()=>window.removeEventListener("storage",e)},[S]),s.useEffect(()=>{k(null!=e?e:h)},[e,h]);let O=s.useMemo(()=>({theme:h,setTheme:S,forcedTheme:e,resolvedTheme:"system"===h?b:h,themes:n?[...i,"system"]:i,systemTheme:n?b:void 0}),[h,S,e,b,n,i]);return s.createElement(m.Provider,{value:O},s.createElement(x,{forcedTheme:e,disableTransitionOnChange:t,enableSystem:n,enableColorScheme:r,storageKey:o,themes:i,defaultTheme:l,attribute:a,value:u,children:f,attrs:C,nonce:p}),f)},x=s.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:r,enableColorScheme:o,defaultTheme:i,value:l,attrs:a,nonce:u})=>{let f="system"===i,m="class"===n?`var d=document.documentElement,c=d.classList;c.remove(${a.map(e=>`'${e}'`).join(",")});`:`var d=document.documentElement,n='${n}',s='setAttribute';`,p=o?(c.includes(i)?i:null)?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${i}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(e,t=!1,r=!0)=>{let i=l?l[e]:e,a=t?e+"|| ''":`'${i}'`,s="";return o&&r&&!t&&c.includes(e)&&(s+=`d.style.colorScheme = '${e}';`),"class"===n?t||i?s+=`c.add(${a})`:s+="null":i&&(s+=`d[s](n,${a})`),s},g=e?`!function(){${m}${h(e)}}()`:r?`!function(){try{${m}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${f})){var t='${d}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${l?`var x=${JSON.stringify(l)};`:""}${h(l?"x[e]":"e",!0)}}${f?"":"else{"+h(i,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${m}var e=localStorage.getItem('${t}');if(e){${l?`var x=${JSON.stringify(l)};`:""}${h(l?"x[e]":"e",!0)}}else{${h(i,!1,!1)};}${p}}catch(t){}}();`;return s.createElement("script",{nonce:u,dangerouslySetInnerHTML:{__html:g}})}),y=(e,t)=>{let n;if(!f){try{n=localStorage.getItem(e)||void 0}catch(e){}return n||t}},_=()=>{let e=document.createElement("style");return e.appendChild(document.createTextNode("*{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),document.head.appendChild(e),()=>{window.getComputedStyle(document.body),setTimeout(()=>{document.head.removeChild(e)},1)}},w=e=>(e||(e=window.matchMedia(d)),e.matches?"dark":"light"),E=n(8644),C=n(1151),k=n(512),S=n(1664),T=n.n(S);function O(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.brands.some(t=>e.test(t.brand)))||e.test(window.navigator.userAgent))}function j(e){var t;return"undefined"!=typeof window&&null!=window.navigator&&e.test((null===(t=window.navigator.userAgentData)||void 0===t?void 0:t.platform)||window.navigator.platform)}function I(e){let t=null;return()=>(null==t&&(t=e()),t)}let M=I(function(){return j(/^Mac/i)}),R=I(function(){return j(/^iPhone/i)}),P=I(function(){return j(/^iPad/i)||M()&&navigator.maxTouchPoints>1}),L=I(function(){return R()||P()});I(function(){return M()||L()}),I(function(){return O(/AppleWebKit/i)&&!N()});let N=I(function(){return O(/Chrome/i)}),A=I(function(){return O(/Android/i)});I(function(){return O(/Firefox/i)});let F=e=>{var t;return null!==(t=null==e?void 0:e.ownerDocument)&&void 0!==t?t:document},D=e=>e&&"window"in e&&e.window===e?e:F(e).defaultView||window,H=null,z=new Set,W=new Map,B=!1,Z=!1,$={Tab:!0,Escape:!0};function V(e,t){for(let n of z)n(e,t)}function U(e){B=!0,e.metaKey||!M()&&e.altKey||e.ctrlKey||"Control"===e.key||"Shift"===e.key||"Meta"===e.key||(H="keyboard",V("keyboard",e))}function K(e){H="pointer",("mousedown"===e.type||"pointerdown"===e.type)&&(B=!0,V("pointer",e))}function q(e){(0===e.mozInputSource&&e.isTrusted||(A()&&e.pointerType?"click"===e.type&&1===e.buttons:0===e.detail&&!e.pointerType))&&(B=!0,H="virtual")}function Q(e){e.target!==window&&e.target!==document&&(B||Z||(H="virtual",V("virtual",e)),B=!1,Z=!1)}function G(){B=!1,Z=!0}function Y(e){if("undefined"==typeof window||W.get(D(e)))return;let t=D(e),n=F(e),r=t.HTMLElement.prototype.focus;t.HTMLElement.prototype.focus=function(){B=!0,r.apply(this,arguments)},n.addEventListener("keydown",U,!0),n.addEventListener("keyup",U,!0),n.addEventListener("click",q,!0),t.addEventListener("focus",Q,!0),t.addEventListener("blur",G,!1),"undefined"!=typeof PointerEvent?(n.addEventListener("pointerdown",K,!0),n.addEventListener("pointermove",K,!0),n.addEventListener("pointerup",K,!0)):(n.addEventListener("mousedown",K,!0),n.addEventListener("mousemove",K,!0),n.addEventListener("mouseup",K,!0)),t.addEventListener("beforeunload",()=>{X(e)},{once:!0}),W.set(t,{focus:r})}let X=(e,t)=>{let n=D(e),r=F(e);t&&r.removeEventListener("DOMContentLoaded",t),W.has(n)&&(n.HTMLElement.prototype.focus=W.get(n).focus,r.removeEventListener("keydown",U,!0),r.removeEventListener("keyup",U,!0),r.removeEventListener("click",q,!0),n.removeEventListener("focus",Q,!0),n.removeEventListener("blur",G,!1),"undefined"!=typeof PointerEvent?(r.removeEventListener("pointerdown",K,!0),r.removeEventListener("pointermove",K,!0),r.removeEventListener("pointerup",K,!0)):(r.removeEventListener("mousedown",K,!0),r.removeEventListener("mousemove",K,!0),r.removeEventListener("mouseup",K,!0)),W.delete(n))};function J(){return"pointer"!==H}"undefined"!=typeof document&&function(e){let t;let n=F(void 0);"loading"!==n.readyState?Y(void 0):(t=()=>{Y(void 0)},n.addEventListener("DOMContentLoaded",t)),()=>X(e,t)}();let ee=new Set(["checkbox","radio","range","color","file","image","button","submit","reset"]),et="undefined"!=typeof document?s.useLayoutEffect:()=>{};class en{isDefaultPrevented(){return this.nativeEvent.defaultPrevented}preventDefault(){this.defaultPrevented=!0,this.nativeEvent.preventDefault()}stopPropagation(){this.nativeEvent.stopPropagation(),this.isPropagationStopped=()=>!0}isPropagationStopped(){return!1}persist(){}constructor(e,t){this.nativeEvent=t,this.target=t.target,this.currentTarget=t.currentTarget,this.relatedTarget=t.relatedTarget,this.bubbles=t.bubbles,this.cancelable=t.cancelable,this.defaultPrevented=t.defaultPrevented,this.eventPhase=t.eventPhase,this.isTrusted=t.isTrusted,this.timeStamp=t.timeStamp,this.type=e}}function er(e){let t=(0,s.useRef)({isFocused:!1,observer:null});et(()=>{let e=t.current;return()=>{e.observer&&(e.observer.disconnect(),e.observer=null)}},[]);let n=function(e){let t=(0,s.useRef)(null);return et(()=>{t.current=e},[e]),(0,s.useCallback)((...e)=>{let n=t.current;return null==n?void 0:n(...e)},[])}(t=>{null==e||e(t)});return(0,s.useCallback)(e=>{if(e.target instanceof HTMLButtonElement||e.target instanceof HTMLInputElement||e.target instanceof HTMLTextAreaElement||e.target instanceof HTMLSelectElement){t.current.isFocused=!0;let r=e.target;r.addEventListener("focusout",e=>{t.current.isFocused=!1,r.disabled&&n(new en("blur",e)),t.current.observer&&(t.current.observer.disconnect(),t.current.observer=null)},{once:!0}),t.current.observer=new MutationObserver(()=>{if(t.current.isFocused&&r.disabled){var e;null===(e=t.current.observer)||void 0===e||e.disconnect();let n=r===document.activeElement?null:document.activeElement;r.dispatchEvent(new FocusEvent("blur",{relatedTarget:n})),r.dispatchEvent(new FocusEvent("focusout",{bubbles:!0,relatedTarget:n}))}}),t.current.observer.observe(r,{attributes:!0,attributeFilter:["disabled"]})}},[n])}function eo(e={}){var t,n,r;let{autoFocus:o=!1,isTextInput:i,within:l}=e,a=(0,s.useRef)({isFocused:!1,isFocusVisible:o||J()}),[u,c]=(0,s.useState)(!1),[d,f]=(0,s.useState)(()=>a.current.isFocused&&a.current.isFocusVisible),m=(0,s.useCallback)(()=>f(a.current.isFocused&&a.current.isFocusVisible),[]),p=(0,s.useCallback)(e=>{a.current.isFocused=e,c(e),m()},[m]);t=e=>{a.current.isFocusVisible=e,m()},n=[],r={isTextInput:i},Y(),(0,s.useEffect)(()=>{let e=(e,n)=>{(function(e,t,n){var r;let o="undefined"!=typeof window?D(null==n?void 0:n.target).HTMLInputElement:HTMLInputElement,i="undefined"!=typeof window?D(null==n?void 0:n.target).HTMLTextAreaElement:HTMLTextAreaElement,l="undefined"!=typeof window?D(null==n?void 0:n.target).HTMLElement:HTMLElement,a="undefined"!=typeof window?D(null==n?void 0:n.target).KeyboardEvent:KeyboardEvent;return!((e=e||(null==n?void 0:n.target)instanceof o&&!ee.has(null==n?void 0:null===(r=n.target)||void 0===r?void 0:r.type)||(null==n?void 0:n.target)instanceof i||(null==n?void 0:n.target)instanceof l&&(null==n?void 0:n.target.isContentEditable))&&"keyboard"===t&&n instanceof a&&!$[n.key])})(!!(null==r?void 0:r.isTextInput),e,n)&&t(J())};return z.add(e),()=>{z.delete(e)}},n);let{focusProps:h}=function(e){let{isDisabled:t,onFocus:n,onBlur:r,onFocusChange:o}=e,i=(0,s.useCallback)(e=>{if(e.target===e.currentTarget)return r&&r(e),o&&o(!1),!0},[r,o]),l=er(i),a=(0,s.useCallback)(e=>{let t=F(e.target);e.target===e.currentTarget&&t.activeElement===e.target&&(n&&n(e),o&&o(!0),l(e))},[o,n,l]);return{focusProps:{onFocus:!t&&(n||o||r)?a:void 0,onBlur:!t&&(r||o)?i:void 0}}}({isDisabled:l,onFocusChange:p}),{focusWithinProps:g}=function(e){let{isDisabled:t,onBlurWithin:n,onFocusWithin:r,onFocusWithinChange:o}=e,i=(0,s.useRef)({isFocusWithin:!1}),l=(0,s.useCallback)(e=>{i.current.isFocusWithin&&!e.currentTarget.contains(e.relatedTarget)&&(i.current.isFocusWithin=!1,n&&n(e),o&&o(!1))},[n,o,i]),a=er(l),u=(0,s.useCallback)(e=>{i.current.isFocusWithin||document.activeElement!==e.target||(r&&r(e),o&&o(!0),i.current.isFocusWithin=!0,a(e))},[r,o,a]);return t?{focusWithinProps:{onFocus:void 0,onBlur:void 0}}:{focusWithinProps:{onFocus:u,onBlur:l}}}({isDisabled:!l,onFocusWithinChange:p});return{isFocused:u,isFocusVisible:d,focusProps:l?g:h}}let ei=!1,el=0;function ea(){ei=!0,setTimeout(()=>{ei=!1},50)}function es(e){"touch"===e.pointerType&&ea()}function eu(){if("undefined"!=typeof document)return"undefined"!=typeof PointerEvent?document.addEventListener("pointerup",es):document.addEventListener("touchend",ea),el++,()=>{--el>0||("undefined"!=typeof PointerEvent?document.removeEventListener("pointerup",es):document.removeEventListener("touchend",ea))}}function ec(e){let{onHoverStart:t,onHoverChange:n,onHoverEnd:r,isDisabled:o}=e,[i,l]=(0,s.useState)(!1),a=(0,s.useRef)({isHovered:!1,ignoreEmulatedMouseEvents:!1,pointerType:"",target:null}).current;(0,s.useEffect)(eu,[]);let{hoverProps:u,triggerHoverEnd:c}=(0,s.useMemo)(()=>{let e=(e,r)=>{if(a.pointerType=r,o||"touch"===r||a.isHovered||!e.currentTarget.contains(e.target))return;a.isHovered=!0;let i=e.currentTarget;a.target=i,t&&t({type:"hoverstart",target:i,pointerType:r}),n&&n(!0),l(!0)},i=(e,t)=>{if(a.pointerType="",a.target=null,"touch"===t||!a.isHovered)return;a.isHovered=!1;let o=e.currentTarget;r&&r({type:"hoverend",target:o,pointerType:t}),n&&n(!1),l(!1)},s={};return"undefined"!=typeof PointerEvent?(s.onPointerEnter=t=>{ei&&"mouse"===t.pointerType||e(t,t.pointerType)},s.onPointerLeave=e=>{!o&&e.currentTarget.contains(e.target)&&i(e,e.pointerType)}):(s.onTouchStart=()=>{a.ignoreEmulatedMouseEvents=!0},s.onMouseEnter=t=>{a.ignoreEmulatedMouseEvents||ei||e(t,"mouse"),a.ignoreEmulatedMouseEvents=!1},s.onMouseLeave=e=>{!o&&e.currentTarget.contains(e.target)&&i(e,"mouse")}),{hoverProps:s,triggerHoverEnd:i}},[t,n,r,o,a]);return(0,s.useEffect)(()=>{o&&c({currentTarget:a.target},a.pointerType)},[o]),{hoverProps:u,isHovered:i}}var ed=Object.defineProperty,ef=(e,t,n)=>t in e?ed(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,em=(e,t,n)=>(ef(e,"symbol"!=typeof t?t+"":t,n),n);class ep{set(e){this.current!==e&&(this.handoffState="pending",this.currentId=0,this.current=e)}reset(){this.set(this.detect())}nextId(){return++this.currentId}get isServer(){return"server"===this.current}get isClient(){return"client"===this.current}detect(){return"undefined"==typeof document?"server":"client"}handoff(){"pending"===this.handoffState&&(this.handoffState="complete")}get isHandoffComplete(){return"complete"===this.handoffState}constructor(){em(this,"current",this.detect()),em(this,"handoffState","pending"),em(this,"currentId",0)}}let eh=new ep;function eg(e){return eh.isServer?null:e instanceof Node?e.ownerDocument:null!=e&&e.hasOwnProperty("current")&&e.current instanceof Node?e.current.ownerDocument:document}function ev(e){"function"==typeof queueMicrotask?queueMicrotask(e):Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e}))}function eb(){let e=[],t={addEventListener:(e,n,r,o)=>(e.addEventListener(n,r,o),t.add(()=>e.removeEventListener(n,r,o))),requestAnimationFrame(){for(var e=arguments.length,n=Array(e),r=0;rcancelAnimationFrame(o))},nextFrame(){for(var e=arguments.length,n=Array(e),r=0;rt.requestAnimationFrame(...n))},setTimeout(){for(var e=arguments.length,n=Array(e),r=0;rclearTimeout(o))},microTask(){for(var e=arguments.length,n=Array(e),r=0;r{o.current&&n[0]()}),t.add(()=>{o.current=!1})},style(e,t,n){let r=e.style.getPropertyValue(t);return Object.assign(e.style,{[t]:n}),this.add(()=>{Object.assign(e.style,{[t]:r})})},group(e){let t=eb();return e(t),this.add(()=>t.dispose())},add:t=>(e.includes(t)||e.push(t),()=>{let n=e.indexOf(t);if(n>=0)for(let t of e.splice(n,1))t()}),dispose(){for(let t of e.splice(0))t()}};return t}function ex(){let[e]=(0,s.useState)(eb);return(0,s.useEffect)(()=>()=>e.dispose(),[e]),e}let ey=(e,t)=>{eh.isServer?(0,s.useEffect)(e,t):(0,s.useLayoutEffect)(e,t)};function e_(e){let t=(0,s.useRef)(e);return ey(()=>{t.current=e},[e]),t}let ew=function(e){let t=e_(e);return s.useCallback(function(){for(var e=arguments.length,n=Array(e),r=0;r0&&void 0!==arguments[0]?arguments[0]:{},t=(0,s.useRef)(null),[n,r]=(0,s.useState)(!1),o=ex(),i=ew(()=>{t.current=null,r(!1),o.dispose()}),l=ew(e=>{if(o.dispose(),null===t.current){t.current=e.currentTarget,r(!0);{let n=eg(e.currentTarget);o.addEventListener(n,"pointerup",i,!1),o.addEventListener(n,"pointermove",e=>{if(t.current){var n,o;let i,l;r((i=e.width/2,l=e.height/2,n={top:e.clientY-l,right:e.clientX+i,bottom:e.clientY+l,left:e.clientX-i},o=t.current.getBoundingClientRect(),!(!n||!o||n.righto.right||n.bottomo.bottom)))}},!1),o.addEventListener(n,"pointercancel",i,!1)}}});return{pressed:n,pressProps:e?{}:{onPointerDown:l,onPointerUp:i,onClick:i}}}let eC=(0,s.createContext)(void 0);function ek(){return(0,s.useContext)(eC)}function eS(){for(var e=arguments.length,t=Array(e),n=0;n"string"==typeof e?e.split(" "):[]))).filter(Boolean).join(" ")}function eT(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o'"'.concat(e,'"')).join(", "),"."));throw Error.captureStackTrace&&Error.captureStackTrace(i,eT),i}var eO=(e=>(e[e.None=0]="None",e[e.RenderStrategy=1]="RenderStrategy",e[e.Static=2]="Static",e))(eO||{}),ej=(e=>(e[e.Unmount=0]="Unmount",e[e.Hidden=1]="Hidden",e))(ej||{});function eI(){let e,t;let n=(e=(0,s.useRef)([]),t=(0,s.useCallback)(t=>{for(let n of e.current)null!=n&&("function"==typeof n?n(t):n.current=t)},[]),function(){for(var n=arguments.length,r=Array(n),o=0;onull==e))return e.current=r,t});return(0,s.useCallback)(e=>(function(e){let{ourProps:t,theirProps:n,slot:r,defaultTag:o,features:i,visible:l=!0,name:a,mergeRefs:s}=e;s=null!=s?s:eR;let u=eP(n,t);if(l)return eM(u,r,o,a,s);let c=null!=i?i:0;if(2&c){let{static:e=!1,...t}=u;if(e)return eM(t,r,o,a,s)}if(1&c){let{unmount:e=!0,...t}=u;return eT(e?0:1,{0:()=>null,1:()=>eM({...t,hidden:!0,style:{display:"none"}},r,o,a,s)})}return eM(u,r,o,a,s)})({mergeRefs:n,...e}),[n])}function eM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=arguments.length>2?arguments[2]:void 0,r=arguments.length>3?arguments[3]:void 0,o=arguments.length>4?arguments[4]:void 0,{as:i=n,children:l,refName:a="ref",...u}=eF(e,["unmount","static"]),c=void 0!==e.ref?{[a]:e.ref}:{},d="function"==typeof l?l(t):l;"className"in u&&u.className&&"function"==typeof u.className&&(u.className=u.className(t)),u["aria-labelledby"]&&u["aria-labelledby"]===u.id&&(u["aria-labelledby"]=void 0);let f={};if(t){let e=!1,n=[];for(let[r,o]of Object.entries(t))"boolean"==typeof o&&(e=!0),!0===o&&n.push(r.replace(/([A-Z])/g,e=>"-".concat(e.toLowerCase())));if(e)for(let e of(f["data-headlessui-state"]=n.join(" "),n))f["data-".concat(e)]=""}if(i===s.Fragment&&(Object.keys(eA(u)).length>0||Object.keys(eA(f)).length>0)){if(!(0,s.isValidElement)(d)||Array.isArray(d)&&d.length>1){if(Object.keys(eA(u)).length>0)throw Error(['Passing props on "Fragment"!',"","The current component <".concat(r,' /> is rendering a "Fragment".'),"However we need to passthrough the following props:",Object.keys(eA(u)).concat(Object.keys(eA(f))).map(e=>" - ".concat(e)).join("\n"),"","You can apply a few solutions:",['Add an `as="..."` prop, to ensure that we render an actual element instead of a "Fragment".',"Render a single element as the child so that we can forward the props onto that element."].map(e=>" - ".concat(e)).join("\n")].join("\n"))}else{let e=d.props,t=null==e?void 0:e.className,n="function"==typeof t?function(){for(var e=arguments.length,n=Array(e),r=0;r="19"?d.props.ref:d.ref,c.ref)},n?{className:n}:{}))}}return(0,s.createElement)(i,Object.assign({},eF(u,["ref"]),i!==s.Fragment&&c,i!==s.Fragment&&f),d)}function eR(){for(var e=arguments.length,t=Array(e),n=0;nnull==e)?void 0:e=>{for(let n of t)null!=n&&("function"==typeof n?n(e):n.current=e)}}function eP(){for(var e=arguments.length,t=Array(e),n=0;n{var t;return null==(t=null==e?void 0:e.preventDefault)?void 0:t.call(e)}]);for(let e in o)Object.assign(r,{[e](t){for(var n=arguments.length,r=Array(n>1?n-1:0),i=1;i1&&void 0!==arguments[1]?arguments[1]:[],n=Object.assign({},e);for(let e of t)e in n&&delete n[e];return n}let eD=eN(function(e,t){var n;let r=ek(),{disabled:o=r||!1,autoFocus:i=!1,...l}=e,{isFocusVisible:a,focusProps:u}=eo({autoFocus:i}),{isHovered:c,hoverProps:d}=ec({isDisabled:o}),{pressed:f,pressProps:m}=eE({disabled:o}),p=eL({ref:t,type:null!=(n=l.type)?n:"button",disabled:o||void 0,autoFocus:i},u,d,m),h=(0,s.useMemo)(()=>({disabled:o,hover:c,focus:a,active:f,autofocus:i}),[o,c,a,f,i]);return eI()({ourProps:p,theirProps:l,slot:h,defaultTag:"button",name:"Button"})}),eH={border:(0,k.Z)("_border _border-gray-300 dark:_border-neutral-700","contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50")};function ez({children:e,className:t,variant:n="default",...r}){return(0,a.jsx)(eD,{className:e=>(0,k.Z)("_transition",e.focus&&"nextra-focusable","outline"===n&&[eH.border,"_rounded-md _p-1.5"],"function"==typeof t?t(e):t),...r,children:e})}var eW=n(5192),eB=n(1163),eZ=n(3665);let e$=()=>{let{locale:e=eZ.ZW,asPath:t,route:n}=(0,eB.useRouter)();return(0,s.useMemo)(()=>{let{pathname:r}=new URL(eZ.hV.has(n)?n:t,"https://nextra.site");return(e?r.replace(RegExp(`\\.${e}(\\/|$)`),"$1"):r).replace(/\.html$/,"").replace(/\/index(\/|$)/,"$1").replace(/\/$/,"")||"/"},[t,e,n])},eV={breadcrumb:!0,collapsed:!1,footer:!0,layout:"default",navbar:!0,pagination:!0,sidebar:!0,timestamp:!0,toc:!0,typesetting:"default"};var eU=n(3935);function eK(e,t,n){let r,o=n.initialDeps??[];return()=>{var i,l,a,s;let u,c;n.key&&(null==(i=n.debug)?void 0:i.call(n))&&(u=Date.now());let d=e();if(!(d.length!==o.length||d.some((e,t)=>o[t]!==e)))return r;if(o=d,n.key&&(null==(l=n.debug)?void 0:l.call(n))&&(c=Date.now()),r=t(...d),n.key&&(null==(a=n.debug)?void 0:a.call(n))){let e=Math.round((Date.now()-u)*100)/100,t=Math.round((Date.now()-c)*100)/100,r=t/16,o=(e,t)=>{for(e=String(e);e.length1>Math.abs(e-t),eG=(e,t,n)=>{let r;return function(...o){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,o),n)}},eY=e=>e,eX=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1),r=[];for(let e=t;e<=n;e++)r.push(e);return r},eJ=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let o=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(o(n.getBoundingClientRect()),!r.ResizeObserver)return()=>{};let i=new r.ResizeObserver(e=>{let t=e[0];if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e){o({width:e.inlineSize,height:e.blockSize});return}}o(n.getBoundingClientRect())});return i.observe(n,{box:"border-box"}),()=>{i.unobserve(n)}},e0={passive:!0},e1="undefined"==typeof window||"onscrollend"in window,e2=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let o=0,i=e1?()=>void 0:eG(r,()=>{t(o,!1)},e.options.isScrollingResetDelay),l=r=>()=>{let{horizontal:l,isRtl:a}=e.options;o=l?n.scrollLeft*(a&&-1||1):n.scrollTop,i(),t(o,r)},a=l(!0),s=l(!1);return s(),n.addEventListener("scroll",a,e0),n.addEventListener("scrollend",s,e0),()=>{n.removeEventListener("scroll",a),n.removeEventListener("scrollend",s)}},e4=(e,t,n)=>{if(null==t?void 0:t.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?"inlineSize":"blockSize"])}return Math.round(e.getBoundingClientRect()[n.options.horizontal?"width":"height"])},e5=(e,{adjustments:t=0,behavior:n},r)=>{var o,i;null==(i=null==(o=r.scrollElement)?void 0:o.scrollTo)||i.call(o,{[r.options.horizontal?"left":"top"]:e+t,behavior:n})};class e6{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollToIndexTimeoutId=null,this.measurementsCache=[],this.itemSizeCache=new Map,this.pendingMeasuredCacheIndexes=[],this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this.elementsCache=new Map,this.observer=(()=>{let e=null,t=()=>e||(this.targetWindow&&this.targetWindow.ResizeObserver?e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{this._measureElement(e.target,e)})}):null);return{disconnect:()=>{var n;null==(n=t())||n.disconnect(),e=null},observe:e=>{var n;return null==(n=t())?void 0:n.observe(e,{box:"border-box"})},unobserve:e=>{var n;return null==(n=t())?void 0:n.unobserve(e)}}})(),this.range=null,this.setOptions=e=>{Object.entries(e).forEach(([t,n])=>{void 0===n&&delete e[t]}),this.options={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:eY,rangeExtractor:eX,onChange:()=>{},measureElement:e4,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:"data-index",initialMeasurementsCache:[],lanes:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,...e}},this.notify=e=>{var t,n;null==(n=(t=this.options).onChange)||n.call(t,this,e)},this.maybeNotify=eK(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{var e;let t=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==t){if(this.cleanup(),!t){this.maybeNotify();return}this.scrollElement=t,this.scrollElement&&"ownerDocument"in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=(null==(e=this.scrollElement)?void 0:e.window)??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{this.scrollAdjustments=0,this.scrollDirection=t?this.getScrollOffset()this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?"width":"height"]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??("function"==typeof this.options.initialOffset?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let o=t-1;o>=0;o--){let t=e[o];if(n.has(t.lane))continue;let i=r.get(t.lane);if(null==i||t.end>i.end?r.set(t.lane,t):t.ende.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=eK(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled],(e,t,n,r,o)=>(this.pendingMeasuredCacheIndexes=[],{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:o}),{key:!1}),this.getMeasurements=eK(()=>[this.getMeasurementOptions(),this.itemSizeCache],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:o},i)=>{if(!o)return this.measurementsCache=[],this.itemSizeCache.clear(),[];0===this.measurementsCache.length&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.pendingMeasuredCacheIndexes.length>0?Math.min(...this.pendingMeasuredCacheIndexes):0;this.pendingMeasuredCacheIndexes=[];let a=this.measurementsCache.slice(0,l);for(let o=l;othis.options.debug}),this.calculateRange=eK(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset()],(e,t,n)=>this.range=e.length>0&&t>0?function({measurements:e,outerSize:t,scrollOffset:n}){let r=e.length-1,o=e7(0,r,t=>e[t].start,n),i=o;for(;ithis.options.debug}),this.getIndexes=eK(()=>[this.options.rangeExtractor,this.calculateRange(),this.options.overscan,this.options.count],(e,t,n,r)=>null===t?[]:e({startIndex:t.startIndex,endIndex:t.endIndex,overscan:n,count:r}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this._measureElement=(e,t)=>{let n=this.indexFromElement(e),r=this.measurementsCache[n];if(!r)return;let o=r.key,i=this.elementsCache.get(o);i!==e&&(i&&this.observer.unobserve(i),this.observer.observe(e),this.elementsCache.set(o,e)),e.isConnected&&this.resizeItem(n,this.options.measureElement(e,t,this))},this.resizeItem=(e,t)=>{let n=this.measurementsCache[e];if(!n)return;let r=t-(this.itemSizeCache.get(n.key)??n.size);0!==r&&((void 0!==this.shouldAdjustScrollPositionOnItemSizeChange?this.shouldAdjustScrollPositionOnItemSizeChange(n,r,this):n.start{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}this._measureElement(e,void 0)},this.getVirtualItems=eK(()=>[this.getIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,o=e.length;rthis.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(0!==t.length)return eq(t[e7(0,t.length-1,e=>eq(t[e]).start,e)])},this.getOffsetForAlignment=(e,t)=>{let n=this.getSize(),r=this.getScrollOffset();"auto"===t&&(t=e<=r?"start":e>=r+n?"end":"start"),"start"===t||("end"===t?e-=n:"center"===t&&(e-=n/2));let o=this.options.horizontal?"scrollWidth":"scrollHeight";return Math.max(Math.min((this.scrollElement?"document"in this.scrollElement?this.scrollElement.document.documentElement[o]:this.scrollElement[o]:0)-n,e),0)},this.getOffsetForIndex=(e,t="auto")=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.measurementsCache[e];if(!n)return;let r=this.getSize(),o=this.getScrollOffset();if("auto"===t){if(n.end>=o+r-this.options.scrollPaddingEnd)t="end";else{if(!(n.start<=o+this.options.scrollPaddingStart))return[o,t];t="start"}}let i="end"===t?n.end+this.options.scrollPaddingEnd:n.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(i,t),t]},this.isDynamicMode=()=>this.elementsCache.size>0,this.cancelScrollToIndex=()=>{null!==this.scrollToIndexTimeoutId&&this.targetWindow&&(this.targetWindow.clearTimeout(this.scrollToIndexTimeoutId),this.scrollToIndexTimeoutId=null)},this.scrollToOffset=(e,{align:t="start",behavior:n}={})=>{this.cancelScrollToIndex(),"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getOffsetForAlignment(e,t),{adjustments:void 0,behavior:n})},this.scrollToIndex=(e,{align:t="auto",behavior:n}={})=>{e=Math.max(0,Math.min(e,this.options.count-1)),this.cancelScrollToIndex(),"smooth"===n&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size.");let r=this.getOffsetForIndex(e,t);if(!r)return;let[o,i]=r;this._scrollToOffset(o,{adjustments:void 0,behavior:n}),"smooth"!==n&&this.isDynamicMode()&&this.targetWindow&&(this.scrollToIndexTimeoutId=this.targetWindow.setTimeout(()=>{if(this.scrollToIndexTimeoutId=null,this.elementsCache.has(this.options.getItemKey(e))){let[t]=eq(this.getOffsetForIndex(e,i));eQ(t,this.getScrollOffset())||this.scrollToIndex(e,{align:i,behavior:n})}else this.scrollToIndex(e,{align:i,behavior:n})}))},this.scrollBy=(e,{behavior:t}={})=>{this.cancelScrollToIndex(),"smooth"===t&&this.isDynamicMode()&&console.warn("The `smooth` scroll behavior is not fully supported with dynamic size."),this._scrollToOffset(this.getScrollOffset()+e,{adjustments:void 0,behavior:t})},this.getTotalSize=()=>{var e;let t=this.getMeasurements();return Math.max((0===t.length?this.options.paddingStart:1===this.options.lanes?(null==(e=t[t.length-1])?void 0:e.end)??0:Math.max(...t.slice(-this.options.lanes).map(e=>e.end)))-this.options.scrollMargin+this.options.paddingEnd,0)},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.itemSizeCache=new Map,this.notify(!1)},this.setOptions(e)}}let e7=(e,t,n,r)=>{for(;e<=t;){let o=(e+t)/2|0,i=n(o);if(ir))return o;t=o-1}}return e>0?e-1:0},e3="undefined"!=typeof document?s.useLayoutEffect:s.useEffect;function e9(e,t){return null!==e&&null!==t&&"object"==typeof e&&"object"==typeof t&&"id"in e&&"id"in t?e.id===t.id:e===t}function e8(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:e9;return(0,s.useCallback)((t,n)=>"string"==typeof e?(null==t?void 0:t[e])===(null==n?void 0:n[e]):e(t,n),[e])}function te(e,t,n){let[r,o]=(0,s.useState)(n),i=void 0!==e,l=(0,s.useRef)(i),a=(0,s.useRef)(!1),u=(0,s.useRef)(!1);return!i||l.current||a.current?i||!l.current||u.current||(u.current=!0,l.current=i,console.error("A component is changing from controlled to uncontrolled. This may be caused by the value changing from a defined value to undefined, which should not happen.")):(a.current=!0,l.current=i,console.error("A component is changing from uncontrolled to controlled. This may be caused by the value changing from undefined to a defined value, which should not happen.")),[i?e:r,ew(e=>(i||o(e),null==t?void 0:t(e)))]}function tt(e){let[t]=(0,s.useState)(e);return t}function tn(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],[n,r]=(0,s.useReducer)(()=>({}),{}),o=(0,s.useMemo)(()=>(function(e){if(null===e)return{width:0,height:0};let{width:t,height:n}=e.getBoundingClientRect();return{width:t,height:n}})(e),[e,n]);return ey(()=>{if(!e)return;let t=new ResizeObserver(r);return t.observe(e),()=>{t.disconnect()}},[e]),t?{width:"".concat(o.width,"px"),height:"".concat(o.height,"px")}:o}class tr extends Map{get(e){let t=super.get(e);return void 0===t&&(t=this.factory(e),this.set(e,t)),t}constructor(e){super(),this.factory=e}}function to(e,t){let n=e(),r=new Set;return{getSnapshot:()=>n,subscribe:e=>(r.add(e),()=>r.delete(e)),dispatch(e){for(var o=arguments.length,i=Array(o>1?o-1:0),l=1;le()))}}}function ti(e){return(0,s.useSyncExternalStore)(e.subscribe,e.getSnapshot,e.getSnapshot)}let tl=new tr(()=>to(()=>[],{ADD(e){return this.includes(e)?this:[...this,e]},REMOVE(e){let t=this.indexOf(e);if(-1===t)return this;let n=this.slice();return n.splice(t,1),n}}));function ta(e,t){let n=tl.get(t),r=(0,s.useId)(),o=ti(n);if(ey(()=>{if(e)return n.dispatch("ADD",r),()=>n.dispatch("REMOVE",r)},[n,e]),!e)return!1;let i=o.indexOf(r),l=o.length;return -1===i&&(i=l,l+=1),i===l-1}let ts=new Map,tu=new Map;function tc(e){var t;let n=null!=(t=tu.get(e))?t:0;return tu.set(e,n+1),0!==n||(ts.set(e,{"aria-hidden":e.getAttribute("aria-hidden"),inert:e.inert}),e.setAttribute("aria-hidden","true"),e.inert=!0),()=>(function(e){var t;let n=null!=(t=tu.get(e))?t:1;if(1===n?tu.delete(e):tu.set(e,n-1),1!==n)return;let r=ts.get(e);r&&(null===r["aria-hidden"]?e.removeAttribute("aria-hidden"):e.setAttribute("aria-hidden",r["aria-hidden"]),e.inert=r.inert,ts.delete(e))})(e)}function td(e){let{allowed:t,disallowed:n}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},r=ta(e,"inert-others");ey(()=>{var e,o;if(!r)return;let i=eb();for(let t of null!=(e=null==n?void 0:n())?e:[])t&&i.add(tc(t));let l=null!=(o=null==t?void 0:t())?o:[];for(let e of l){if(!e)continue;let t=eg(e);if(!t)continue;let n=e.parentElement;for(;n&&n!==t.body;){for(let e of n.children)l.some(t=>e.contains(t))||i.add(tc(e));n=n.parentElement}}return i.dispose},[r,t,n])}function tf(e,t,n){let r=e_(e=>{let t=e.getBoundingClientRect();0===t.x&&0===t.y&&0===t.width&&0===t.height&&n()});(0,s.useEffect)(()=>{if(!e)return;let n=null===t?null:t instanceof HTMLElement?t:t.current;if(!n)return;let o=eb();if("undefined"!=typeof ResizeObserver){let e=new ResizeObserver(()=>r.current(n));e.observe(n),o.add(()=>e.disconnect())}if("undefined"!=typeof IntersectionObserver){let e=new IntersectionObserver(()=>r.current(n));e.observe(n),o.add(()=>e.disconnect())}return()=>o.dispose()},[t,r,e])}let tm=["[contentEditable=true]","[tabindex]","a[href]","area[href]","button:not([disabled])","iframe","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].map(e=>"".concat(e,":not([tabindex='-1'])")).join(","),tp=["[data-autofocus]"].map(e=>"".concat(e,":not([tabindex='-1'])")).join(",");var th=(e=>(e[e.First=1]="First",e[e.Previous=2]="Previous",e[e.Next=4]="Next",e[e.Last=8]="Last",e[e.WrapAround=16]="WrapAround",e[e.NoScroll=32]="NoScroll",e[e.AutoFocus=64]="AutoFocus",e))(th||{}),tg=(e=>(e[e.Error=0]="Error",e[e.Overflow=1]="Overflow",e[e.Success=2]="Success",e[e.Underflow=3]="Underflow",e))(tg||{}),tv=(e=>(e[e.Previous=-1]="Previous",e[e.Next=1]="Next",e))(tv||{});function tb(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return null==e?[]:Array.from(e.querySelectorAll(tm)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}var tx=(e=>(e[e.Strict=0]="Strict",e[e.Loose=1]="Loose",e))(tx||{});function ty(e){var t;let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0;return e!==(null==(t=eg(e))?void 0:t.body)&&eT(n,{0:()=>e.matches(tm),1(){let t=e;for(;null!==t;){if(t.matches(tm))return!0;t=t.parentElement}return!1}})}function t_(e){let t=eg(e);eb().nextFrame(()=>{t&&!ty(t.activeElement,0)&&(null==e||e.focus({preventScroll:!0}))})}var tw=(e=>(e[e.Keyboard=0]="Keyboard",e[e.Mouse=1]="Mouse",e))(tw||{});function tE(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e;return e.slice().sort((e,n)=>{let r=t(e),o=t(n);if(null===r||null===o)return 0;let i=r.compareDocumentPosition(o);return i&Node.DOCUMENT_POSITION_FOLLOWING?-1:i&Node.DOCUMENT_POSITION_PRECEDING?1:0})}function tC(e,t){return function(e,t){var n,r,o;let{sorted:i=!0,relativeTo:l=null,skipElements:a=[]}=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},s=Array.isArray(e)?e.length>0?e[0].ownerDocument:document:e.ownerDocument,u=Array.isArray(e)?i?tE(e):e:64&t?function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:document.body;return null==e?[]:Array.from(e.querySelectorAll(tp)).sort((e,t)=>Math.sign((e.tabIndex||Number.MAX_SAFE_INTEGER)-(t.tabIndex||Number.MAX_SAFE_INTEGER)))}(e):tb(e);a.length>0&&u.length>1&&(u=u.filter(e=>!a.some(t=>null!=t&&"current"in t?(null==t?void 0:t.current)===e:t===e))),l=null!=l?l:s.activeElement;let c=(()=>{if(5&t)return 1;if(10&t)return -1;throw Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),d=(()=>{if(1&t)return 0;if(2&t)return Math.max(0,u.indexOf(l))-1;if(4&t)return Math.max(0,u.indexOf(l))+1;if(8&t)return u.length-1;throw Error("Missing Focus.First, Focus.Previous, Focus.Next or Focus.Last")})(),f=32&t?{preventScroll:!0}:{},m=0,p=u.length,h;do{if(m>=p||m+p<=0)return 0;let e=d+m;if(16&t)e=(e+p)%p;else{if(e<0)return 3;if(e>=p)return 1}null==(h=u[e])||h.focus(f),m+=c}while(h!==s.activeElement);return 6&t&&null!=(o=null==(r=null==(n=h)?void 0:n.matches)?void 0:r.call(n,"textarea,input"))&&o&&h.select(),2}(tb(),t,{relativeTo:e})}function tk(){return/iPhone/gi.test(window.navigator.platform)||/Mac/gi.test(window.navigator.platform)&&window.navigator.maxTouchPoints>0}function tS(){return tk()||/Android/gi.test(window.navigator.userAgent)}function tT(e,t,n,r){let o=e_(n);(0,s.useEffect)(()=>{if(e)return document.addEventListener(t,n,r),()=>document.removeEventListener(t,n,r);function n(e){o.current(e)}},[e,t,r])}function tO(e,t,n){var r;let o,i=ta(e,"outside-click"),l=e_(n),a=(0,s.useCallback)(function(e,n){if(e.defaultPrevented)return;let r=n(e);if(null!==r&&r.getRootNode().contains(r)&&r.isConnected){for(let n of function e(t){return"function"==typeof t?e(t()):Array.isArray(t)||t instanceof Set?t:[t]}(t))if(null!==n&&(n.contains(r)||e.composed&&e.composedPath().includes(n)))return;return ty(r,tx.Loose)||-1===r.tabIndex||e.preventDefault(),l.current(e,r)}},[l,t]),u=(0,s.useRef)(null);tT(i,"pointerdown",e=>{var t,n;u.current=(null==(n=null==(t=e.composedPath)?void 0:t.call(e))?void 0:n[0])||e.target},!0),tT(i,"mousedown",e=>{var t,n;u.current=(null==(n=null==(t=e.composedPath)?void 0:t.call(e))?void 0:n[0])||e.target},!0),tT(i,"click",e=>{tS()||u.current&&(a(e,()=>u.current),u.current=null)},!0);let c=(0,s.useRef)({x:0,y:0});tT(i,"touchstart",e=>{c.current.x=e.touches[0].clientX,c.current.y=e.touches[0].clientY},!0),tT(i,"touchend",e=>{let t={x:e.changedTouches[0].clientX,y:e.changedTouches[0].clientY};if(!(Math.abs(t.x-c.current.x)>=30||Math.abs(t.y-c.current.y)>=30))return a(e,()=>e.target instanceof HTMLElement?e.target:null)},!0),r="blur",o=e_(e=>a(e,()=>window.document.activeElement instanceof HTMLIFrameElement?window.document.activeElement:null)),(0,s.useEffect)(()=>{if(i)return window.addEventListener(r,e,!0),()=>window.removeEventListener(r,e,!0);function e(e){o.current(e)}},[i,r,!0])}function tj(){for(var e=arguments.length,t=Array(e),n=0;neg(...t),[...t])}function tI(e){var t,n,r;let o,i=(0,s.useRef)({value:"",selectionStart:null,selectionEnd:null});return t=e,n="blur",o=e_(e=>{let t=e.target;t instanceof HTMLInputElement&&(i.current={value:t.value,selectionStart:t.selectionStart,selectionEnd:t.selectionEnd})}),(0,s.useEffect)(()=>{function e(e){o.current(e)}return(t=null!=t?t:window).addEventListener(n,e,void 0),()=>t.removeEventListener(n,e,r)},[t,n,r]),ew(()=>{if(document.activeElement!==e&&e instanceof HTMLInputElement&&e.isConnected){if(e.focus({preventScroll:!0}),e.value!==i.current.value)e.setSelectionRange(e.value.length,e.value.length);else{let{selectionStart:t,selectionEnd:n}=i.current;null!==t&&null!==n&&e.setSelectionRange(t,n)}i.current={value:"",selectionStart:null,selectionEnd:null}}})}function tM(e,t){return(0,s.useMemo)(()=>{var n;if(e.type)return e.type;let r=null!=(n=e.as)?n:"button";if("string"==typeof r&&"button"===r.toLowerCase()||(null==t?void 0:t.tagName)==="BUTTON"&&!t.hasAttribute("type"))return"button"},[e.type,e.as,t])}"undefined"!=typeof document&&(document.addEventListener("keydown",e=>{e.metaKey||e.altKey||e.ctrlKey||(document.documentElement.dataset.headlessuiFocusVisible="")},!0),document.addEventListener("click",e=>{1===e.detail?delete document.documentElement.dataset.headlessuiFocusVisible:0===e.detail&&(document.documentElement.dataset.headlessuiFocusVisible="")},!0));let tR=to(()=>new Map,{PUSH(e,t){var n;let r=null!=(n=this.get(e))?n:{doc:e,count:0,d:eb(),meta:new Set};return r.count++,r.meta.add(t),this.set(e,r),this},POP(e,t){let n=this.get(e);return n&&(n.count--,n.meta.delete(t)),this},SCROLL_PREVENT(e){let t,{doc:n,d:r,meta:o}=e,i={doc:n,d:r,meta:function(e){let t={};for(let n of e)Object.assign(t,n(t));return t}(o)},l=[tk()?{before(e){let{doc:t,d:n,meta:r}=e;function o(e){return r.containers.flatMap(e=>e()).some(t=>t.contains(e))}n.microTask(()=>{var e;if("auto"!==window.getComputedStyle(t.documentElement).scrollBehavior){let e=eb();e.style(t.documentElement,"scrollBehavior","auto"),n.add(()=>n.microTask(()=>e.dispose()))}let r=null!=(e=window.scrollY)?e:window.pageYOffset,i=null;n.addEventListener(t,"click",e=>{if(e.target instanceof HTMLElement)try{let n=e.target.closest("a");if(!n)return;let{hash:r}=new URL(n.href),l=t.querySelector(r);l&&!o(l)&&(i=l)}catch(e){}},!0),n.addEventListener(t,"touchstart",e=>{if(e.target instanceof HTMLElement){if(o(e.target)){let t=e.target;for(;t.parentElement&&o(t.parentElement);)t=t.parentElement;n.style(t,"overscrollBehavior","contain")}else n.style(e.target,"touchAction","none")}}),n.addEventListener(t,"touchmove",e=>{if(e.target instanceof HTMLElement&&"INPUT"!==e.target.tagName){if(o(e.target)){let t=e.target;for(;t.parentElement&&""!==t.dataset.headlessuiPortal&&!(t.scrollHeight>t.clientHeight||t.scrollWidth>t.clientWidth);)t=t.parentElement;""===t.dataset.headlessuiPortal&&e.preventDefault()}else e.preventDefault()}},{passive:!1}),n.add(()=>{var e;r!==(null!=(e=window.scrollY)?e:window.pageYOffset)&&window.scrollTo(0,r),i&&i.isConnected&&(i.scrollIntoView({block:"nearest"}),i=null)})})}}:{},{before(e){var n;let{doc:r}=e,o=r.documentElement;t=Math.max(0,(null!=(n=r.defaultView)?n:window).innerWidth-o.clientWidth)},after(e){let{doc:n,d:r}=e,o=n.documentElement,i=Math.max(0,o.clientWidth-o.offsetWidth),l=Math.max(0,t-i);r.style(o,"paddingRight","".concat(l,"px"))}},{before(e){let{doc:t,d:n}=e;n.style(t.documentElement,"overflow","hidden")}}];l.forEach(e=>{let{before:t}=e;return null==t?void 0:t(i)}),l.forEach(e=>{let{after:t}=e;return null==t?void 0:t(i)})},SCROLL_ALLOW(e){let{d:t}=e;t.dispose()},TEARDOWN(e){let{doc:t}=e;this.delete(t)}});function tP(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>[document.body];!function(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:()=>({containers:[]}),r=ti(tR),o=t?r.get(t):void 0;o&&o.count,ey(()=>{if(!(!t||!e))return tR.dispatch("PUSH",t,n),()=>tR.dispatch("POP",t,n)},[e,t])}(ta(e,"scroll-lock"),t,e=>{var t;return{containers:[...null!=(t=e.containers)?t:[],n]}})}tR.subscribe(()=>{let e=tR.getSnapshot(),t=new Map;for(let[n]of e)t.set(n,n.documentElement.style.overflow);for(let n of e.values()){let e="hidden"===t.get(n.doc),r=0!==n.count;(r&&!e||!r&&e)&&tR.dispatch(n.count>0?"SCROLL_PREVENT":"SCROLL_ALLOW",n),0===n.count&&tR.dispatch("TEARDOWN",n)}});let tL=Symbol();function tN(){for(var e=arguments.length,t=Array(e),n=0;n{r.current=t},[t]);let o=ew(e=>{for(let t of r.current)null!=t&&("function"==typeof t?t(e):t.current=e)});return t.every(e=>null==e||(null==e?void 0:e[tL]))?void 0:o}function tA(e){return[e.screenX,e.screenY]}function tF(){let e=(0,s.useRef)([-1,-1]);return{wasMoved(t){let n=tA(t);return(e.current[0]!==n[0]||e.current[1]!==n[1])&&(e.current=n,!0)},update(t){e.current=tA(t)}}}var tD=n(3454);void 0!==tD&&"undefined"!=typeof globalThis&&"undefined"!=typeof Element&&(null==(r=null==tD?void 0:tD.env)?void 0:r.NODE_ENV)==="test"&&void 0===(null==(o=null==Element?void 0:Element.prototype)?void 0:o.getAnimations)&&(Element.prototype.getAnimations=function(){return console.warn("Headless UI has polyfilled `Element.prototype.getAnimations` for your tests.\nPlease install a proper polyfill e.g. `jsdom-testing-mocks`, to silence these warnings.\n\nExample usage:\n```js\nimport { mockAnimationsApi } from 'jsdom-testing-mocks'\nmockAnimationsApi()\n```"),[]});var tH=(e=>(e[e.None=0]="None",e[e.Closed=1]="Closed",e[e.Enter=2]="Enter",e[e.Leave=4]="Leave",e))(tH||{});function tz(e){let t={};for(let n in e)!0===e[n]&&(t["data-".concat(n)]="");return t}function tW(e,t,n,r){let[o,i]=(0,s.useState)(n),{hasFlag:l,addFlag:a,removeFlag:u}=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,[t,n]=(0,s.useState)(e),r=(0,s.useCallback)(e=>n(e),[t]),o=(0,s.useCallback)(e=>n(t=>t|e),[t]),i=(0,s.useCallback)(e=>(t&e)===e,[t]);return{flags:t,setFlag:r,addFlag:o,hasFlag:i,removeFlag:(0,s.useCallback)(e=>n(t=>t&~e),[n]),toggleFlag:(0,s.useCallback)(e=>n(t=>t^e),[n])}}(e&&o?3:0),c=(0,s.useRef)(!1),d=(0,s.useRef)(!1);return ey(()=>{var o;if(e){if(n&&i(!0),!t){n&&a(3);return}return null==(o=null==r?void 0:r.start)||o.call(r,n),function(e,t){let{prepare:n,run:r,done:o,inFlight:i}=t,l=eb();return function(e,t){let{inFlight:n,prepare:r}=t;if(null!=n&&n.current){r();return}let o=e.style.transition;e.style.transition="none",r(),e.offsetHeight,e.style.transition=o}(e,{prepare:n,inFlight:i}),l.nextFrame(()=>{r(),l.requestAnimationFrame(()=>{l.add(function(e,t){var n,r;let o=eb();if(!e)return o.dispose;let i=!1;o.add(()=>{i=!0});let l=null!=(r=null==(n=e.getAnimations)?void 0:n.call(e).filter(e=>e instanceof CSSTransition))?r:[];return 0===l.length?t():Promise.allSettled(l.map(e=>e.finished)).then(()=>{i||t()}),o.dispose}(e,o))})}),l.dispose}(t,{inFlight:c,prepare(){d.current?d.current=!1:d.current=c.current,c.current=!0,d.current||(n?(a(3),u(4)):(a(4),u(2)))},run(){d.current?n?(u(3),a(4)):(u(4),a(3)):n?u(1):a(1)},done(){var e;d.current&&"function"==typeof t.getAnimations&&t.getAnimations().length>0||(c.current=!1,u(7),n||i(!1),null==(e=null==r?void 0:r.end)||e.call(r,n))}})}},[e,n,t,ex()]),e?[o,{closed:l(1),enter:l(2),leave:l(4),transition:l(2)||l(4)}]:[n,{closed:void 0,enter:void 0,leave:void 0,transition:void 0}]}function tB(e,t){let{container:n,accept:r,walk:o}=t,i=(0,s.useRef)(r),l=(0,s.useRef)(o);(0,s.useEffect)(()=>{i.current=r,l.current=o},[r,o]),ey(()=>{if(!n||!e)return;let t=eg(n);if(!t)return;let r=i.current,o=l.current,a=Object.assign(e=>r(e),{acceptNode:r}),s=t.createTreeWalker(n,NodeFilter.SHOW_ELEMENT,a,!1);for(;s.nextNode();)o(s.currentNode)},[n,e,i,l])}function tZ(e,t){let n=(0,s.useRef)([]),r=ew(e);(0,s.useEffect)(()=>{let e=[...n.current];for(let[o,i]of t.entries())if(n.current[o]!==i){let o=r(t,e);return n.current=t,o}},[r,...t])}let t$=Math.min,tV=Math.max,tU=Math.round,tK=Math.floor,tq=e=>({x:e,y:e}),tQ={left:"right",right:"left",bottom:"top",top:"bottom"},tG={start:"end",end:"start"};function tY(e,t){return"function"==typeof e?e(t):e}function tX(e){return e.split("-")[0]}function tJ(e){return e.split("-")[1]}function t0(e){return"x"===e?"y":"x"}function t1(e){return"y"===e?"height":"width"}function t2(e){return["top","bottom"].includes(tX(e))?"y":"x"}function t4(e){return e.replace(/start|end/g,e=>tG[e])}function t5(e){return e.replace(/left|right|bottom|top/g,e=>tQ[e])}function t6(e){let{x:t,y:n,width:r,height:o}=e;return{width:r,height:o,top:n,left:t,right:t+r,bottom:n+o,x:t,y:n}}function t7(){return"undefined"!=typeof window}function t3(e){return ne(e)?(e.nodeName||"").toLowerCase():"#document"}function t9(e){var t;return(null==e||null==(t=e.ownerDocument)?void 0:t.defaultView)||window}function t8(e){var t;return null==(t=(ne(e)?e.ownerDocument:e.document)||window.document)?void 0:t.documentElement}function ne(e){return!!t7()&&(e instanceof Node||e instanceof t9(e).Node)}function nt(e){return!!t7()&&(e instanceof Element||e instanceof t9(e).Element)}function nn(e){return!!t7()&&(e instanceof HTMLElement||e instanceof t9(e).HTMLElement)}function nr(e){return!!t7()&&"undefined"!=typeof ShadowRoot&&(e instanceof ShadowRoot||e instanceof t9(e).ShadowRoot)}function no(e){let{overflow:t,overflowX:n,overflowY:r,display:o}=nu(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&!["inline","contents"].includes(o)}function ni(e){return[":popover-open",":modal"].some(t=>{try{return e.matches(t)}catch(e){return!1}})}function nl(e){let t=na(),n=nt(e)?nu(e):e;return"none"!==n.transform||"none"!==n.perspective||!!n.containerType&&"normal"!==n.containerType||!t&&!!n.backdropFilter&&"none"!==n.backdropFilter||!t&&!!n.filter&&"none"!==n.filter||["transform","perspective","filter"].some(e=>(n.willChange||"").includes(e))||["paint","layout","strict","content"].some(e=>(n.contain||"").includes(e))}function na(){return"undefined"!=typeof CSS&&!!CSS.supports&&CSS.supports("-webkit-backdrop-filter","none")}function ns(e){return["html","body","#document"].includes(t3(e))}function nu(e){return t9(e).getComputedStyle(e)}function nc(e){return nt(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function nd(e){if("html"===t3(e))return e;let t=e.assignedSlot||e.parentNode||nr(e)&&e.host||t8(e);return nr(t)?t.host:t}function nf(e,t,n){var r;void 0===t&&(t=[]),void 0===n&&(n=!0);let o=function e(t){let n=nd(t);return ns(n)?t.ownerDocument?t.ownerDocument.body:t.body:nn(n)&&no(n)?n:e(n)}(e),i=o===(null==(r=e.ownerDocument)?void 0:r.body),l=t9(o);if(i){let e=nm(l);return t.concat(l,l.visualViewport||[],no(o)?o:[],e&&n?nf(e):[])}return t.concat(o,nf(o,[],n))}function nm(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function np(e,t,n){let r,{reference:o,floating:i}=e,l=t2(t),a=t0(t2(t)),s=t1(a),u=tX(t),c="y"===l,d=o.x+o.width/2-i.width/2,f=o.y+o.height/2-i.height/2,m=o[s]/2-i[s]/2;switch(u){case"top":r={x:d,y:o.y-i.height};break;case"bottom":r={x:d,y:o.y+o.height};break;case"right":r={x:o.x+o.width,y:f};break;case"left":r={x:o.x-i.width,y:f};break;default:r={x:o.x,y:o.y}}switch(tJ(t)){case"start":r[a]-=m*(n&&c?-1:1);break;case"end":r[a]+=m*(n&&c?-1:1)}return r}let nh=async(e,t,n)=>{let{placement:r="bottom",strategy:o="absolute",middleware:i=[],platform:l}=n,a=i.filter(Boolean),s=await (null==l.isRTL?void 0:l.isRTL(t)),u=await l.getElementRects({reference:e,floating:t,strategy:o}),{x:c,y:d}=np(u,r,s),f=r,m={},p=0;for(let n=0;nnt(e)&&"body"!==t3(e)),o=null,i="fixed"===nu(e).position,l=i?nd(e):e;for(;nt(l)&&!ns(l);){let t=nu(l),n=nl(l);n||"fixed"!==t.position||(o=null),(i?!n&&!o:!n&&"static"===t.position&&!!o&&["absolute","fixed"].includes(o.position)||no(l)&&!n&&function e(t,n){let r=nd(t);return!(r===n||!nt(r)||ns(r))&&("fixed"===nu(r).position||e(r,n))}(e,l))?r=r.filter(e=>e!==l):o=t,l=nd(l)}return t.set(e,r),r}(t,this._c):[].concat(n),r],l=i[0],a=i.reduce((e,n)=>{let r=nk(t,n,o);return e.top=tV(r.top,e.top),e.right=t$(r.right,e.right),e.bottom=t$(r.bottom,e.bottom),e.left=tV(r.left,e.left),e},nk(t,l,o));return{width:a.right-a.left,height:a.bottom-a.top,x:a.left,y:a.top}},getOffsetParent:nO,getElementRects:nj,getClientRects:function(e){return Array.from(e.getClientRects())},getDimensions:function(e){let{width:t,height:n}=nb(e);return{width:t,height:n}},getScale:ny,isElement:nt,isRTL:function(e){return"rtl"===nu(e).direction}};function nM(e,t,n,r){let o;void 0===r&&(r={});let{ancestorScroll:i=!0,ancestorResize:l=!0,elementResize:a="function"==typeof ResizeObserver,layoutShift:s="function"==typeof IntersectionObserver,animationFrame:u=!1}=r,c=nx(e),d=i||l?[...c?nf(c):[],...nf(t)]:[];d.forEach(e=>{i&&e.addEventListener("scroll",n,{passive:!0}),l&&e.addEventListener("resize",n)});let f=c&&s?function(e,t){let n,r=null,o=t8(e);function i(){var e;clearTimeout(n),null==(e=r)||e.disconnect(),r=null}return!function l(a,s){void 0===a&&(a=!1),void 0===s&&(s=1),i();let{left:u,top:c,width:d,height:f}=e.getBoundingClientRect();if(a||t(),!d||!f)return;let m=tK(c),p=tK(o.clientWidth-(u+d)),h={rootMargin:-m+"px "+-p+"px "+-tK(o.clientHeight-(c+f))+"px "+-tK(u)+"px",threshold:tV(0,t$(1,s))||1},g=!0;function v(e){let t=e[0].intersectionRatio;if(t!==s){if(!g)return l();t?l(!1,t):n=setTimeout(()=>{l(!1,1e-7)},1e3)}g=!1}try{r=new IntersectionObserver(v,{...h,root:o.ownerDocument})}catch(e){r=new IntersectionObserver(v,h)}r.observe(e)}(!0),i}(c,n):null,m=-1,p=null;a&&(p=new ResizeObserver(e=>{let[r]=e;r&&r.target===c&&p&&(p.unobserve(t),cancelAnimationFrame(m),m=requestAnimationFrame(()=>{var e;null==(e=p)||e.observe(t)})),n()}),c&&!u&&p.observe(c),p.observe(t));let h=u?nE(e):null;return u&&function t(){let r=nE(e);h&&(r.x!==h.x||r.y!==h.y||r.width!==h.width||r.height!==h.height)&&n(),h=r,o=requestAnimationFrame(t)}(),n(),()=>{var e;d.forEach(e=>{i&&e.removeEventListener("scroll",n),l&&e.removeEventListener("resize",n)}),null==f||f(),null==(e=p)||e.disconnect(),p=null,u&&cancelAnimationFrame(o)}}let nR=(e,t,n)=>{let r=new Map,o={platform:nI,...n},i={...o.platform,_c:r};return nh(e,t,{...o,platform:i})};var nP="undefined"!=typeof document?s.useLayoutEffect:s.useEffect;function nL(e,t){let n,r,o;if(e===t)return!0;if(typeof e!=typeof t)return!1;if("function"==typeof e&&e.toString()===t.toString())return!0;if(e&&t&&"object"==typeof e){if(Array.isArray(e)){if((n=e.length)!==t.length)return!1;for(r=n;0!=r--;)if(!nL(e[r],t[r]))return!1;return!0}if((n=(o=Object.keys(e)).length)!==Object.keys(t).length)return!1;for(r=n;0!=r--;)if(!({}).hasOwnProperty.call(t,o[r]))return!1;for(r=n;0!=r--;){let n=o[r];if(("_owner"!==n||!e.$$typeof)&&!nL(e[n],t[n]))return!1}return!0}return e!=e&&t!=t}function nN(e){return"undefined"==typeof window?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function nA(e,t){let n=nN(e);return Math.round(t*n)/n}function nF(e){let t=s.useRef(e);return nP(()=>{t.current=e}),t}let nD=(e,t)=>({...function(e){return void 0===e&&(e=0),{name:"offset",options:e,async fn(t){var n,r;let{x:o,y:i,placement:l,middlewareData:a}=t,s=await nv(t,e);return l===(null==(n=a.offset)?void 0:n.placement)&&null!=(r=a.arrow)&&r.alignmentOffset?{}:{x:o+s.x,y:i+s.y,data:{...s,placement:l}}}}}(e),options:[e,t]}),nH=(e,t)=>({...function(e){return void 0===e&&(e={}),{name:"shift",options:e,async fn(t){let{x:n,y:r,placement:o}=t,{mainAxis:i=!0,crossAxis:l=!1,limiter:a={fn:e=>{let{x:t,y:n}=e;return{x:t,y:n}}},...s}=tY(e,t),u={x:n,y:r},c=await ng(t,s),d=t2(tX(o)),f=t0(d),m=u[f],p=u[d];if(i){let e="y"===f?"top":"left",t="y"===f?"bottom":"right",n=m+c[e],r=m-c[t];m=tV(n,t$(m,r))}if(l){let e="y"===d?"top":"left",t="y"===d?"bottom":"right",n=p+c[e],r=p-c[t];p=tV(n,t$(p,r))}let h=a.fn({...t,[f]:m,[d]:p});return{...h,data:{x:h.x-n,y:h.y-r,enabled:{[f]:i,[d]:l}}}}}}(e),options:[e,t]}),nz=(e,t)=>({...function(e){return void 0===e&&(e={}),{name:"flip",options:e,async fn(t){var n,r,o,i,l;let{placement:a,middlewareData:s,rects:u,initialPlacement:c,platform:d,elements:f}=t,{mainAxis:m=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:g="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:b=!0,...x}=tY(e,t);if(null!=(n=s.arrow)&&n.alignmentOffset)return{};let y=tX(a),_=t2(c),w=tX(c)===c,E=await (null==d.isRTL?void 0:d.isRTL(f.floating)),C=h||(w||!b?[t5(c)]:function(e){let t=t5(e);return[t4(e),t,t4(t)]}(c)),k="none"!==v;!h&&k&&C.push(...function(e,t,n,r){let o=tJ(e),i=function(e,t,n){let r=["left","right"],o=["right","left"];switch(e){case"top":case"bottom":if(n)return t?o:r;return t?r:o;case"left":case"right":return t?["top","bottom"]:["bottom","top"];default:return[]}}(tX(e),"start"===n,r);return o&&(i=i.map(e=>e+"-"+o),t&&(i=i.concat(i.map(t4)))),i}(c,b,v,E));let S=[c,...C],T=await ng(t,x),O=[],j=(null==(r=s.flip)?void 0:r.overflows)||[];if(m&&O.push(T[y]),p){let e=function(e,t,n){void 0===n&&(n=!1);let r=tJ(e),o=t0(t2(e)),i=t1(o),l="x"===o?r===(n?"end":"start")?"right":"left":"start"===r?"bottom":"top";return t.reference[i]>t.floating[i]&&(l=t5(l)),[l,t5(l)]}(a,u,E);O.push(T[e[0]],T[e[1]])}if(j=[...j,{placement:a,overflows:O}],!O.every(e=>e<=0)){let e=((null==(o=s.flip)?void 0:o.index)||0)+1,t=S[e];if(t)return{data:{index:e,overflows:j},reset:{placement:t}};let n=null==(i=j.filter(e=>e.overflows[0]<=0).sort((e,t)=>e.overflows[1]-t.overflows[1])[0])?void 0:i.placement;if(!n)switch(g){case"bestFit":{let e=null==(l=j.filter(e=>{if(k){let t=t2(e.placement);return t===_||"y"===t}return!0}).map(e=>[e.placement,e.overflows.filter(e=>e>0).reduce((e,t)=>e+t,0)]).sort((e,t)=>e[1]-t[1])[0])?void 0:l[0];e&&(n=e);break}case"initialPlacement":n=c}if(a!==n)return{reset:{placement:n}}}return{}}}}(e),options:[e,t]}),nW=(e,t)=>({...function(e){return void 0===e&&(e={}),{name:"size",options:e,async fn(t){var n,r;let o,i;let{placement:l,rects:a,platform:s,elements:u}=t,{apply:c=()=>{},...d}=tY(e,t),f=await ng(t,d),m=tX(l),p=tJ(l),h="y"===t2(l),{width:g,height:v}=a.floating;"top"===m||"bottom"===m?(o=m,i=p===(await (null==s.isRTL?void 0:s.isRTL(u.floating))?"start":"end")?"left":"right"):(i=m,o="end"===p?"top":"bottom");let b=v-f.top-f.bottom,x=g-f.left-f.right,y=t$(v-f[o],b),_=t$(g-f[i],x),w=!t.middlewareData.shift,E=y,C=_;if(null!=(n=t.middlewareData.shift)&&n.enabled.x&&(C=x),null!=(r=t.middlewareData.shift)&&r.enabled.y&&(E=b),w&&!p){let e=tV(f.left,0),t=tV(f.right,0),n=tV(f.top,0),r=tV(f.bottom,0);h?C=g-2*(0!==e||0!==t?e+t:tV(f.left,f.right)):E=v-2*(0!==n||0!==r?n+r:tV(f.top,f.bottom))}await c({...t,availableWidth:C,availableHeight:E});let k=await s.getDimensions(u.floating);return g!==k.width||v!==k.height?{reset:{rects:!0}}:{}}}}(e),options:[e,t]}),nB={...u},nZ=nB.useInsertionEffect||(e=>e());function n$(e){let t=s.useRef(()=>{});return nZ(()=>{t.current=e}),s.useCallback(function(){for(var e=arguments.length,n=Array(e),r=0;r"floating-ui-"+Math.random().toString(36).slice(2,6)+nK++,nQ=nB.useId||function(){let[e,t]=s.useState(()=>nU?nq():void 0);return nV(()=>{null==e&&t(nq())},[]),s.useEffect(()=>{nU=!0},[]),e},nG=s.createContext(null),nY=s.createContext(null),nX=()=>{var e;return(null==(e=s.useContext(nG))?void 0:e.id)||null},nJ=()=>s.useContext(nY),n0=()=>{},n1=e=>e&&(e.host||n1(e.parentNode)),n2=()=>({getShadowRoot:!0,displayCheck:"function"==typeof ResizeObserver&&ResizeObserver.toString().includes("[native code]")?"full":"none"}),n4="active",n5="selected";function n6(e,t,n){let r=new Map,o="item"===n,i=e;if(o&&e){let{[n4]:t,[n5]:n,...r}=e;i=r}return{..."floating"===n&&{tabIndex:-1,"data-floating-ui-focusable":""},...i,...t.map(t=>{let r=t?t[n]:null;return"function"==typeof r?e?r(e):null:r}).concat(e).reduce((e,t)=>(t&&Object.entries(t).forEach(t=>{let[n,i]=t;if(!(o&&[n4,n5].includes(n))){if(0===n.indexOf("on")){if(r.has(n)||r.set(n,[]),"function"==typeof i){var l;null==(l=r.get(n))||l.push(i),e[n]=function(){for(var e,t=arguments.length,o=Array(t),i=0;ie(...o)).find(e=>void 0!==e)}}}else e[n]=i}}),e),{})}}function n7(e,t){return{...e,rects:{...e.rects,floating:{...e.rects.floating,height:t}}}}let n3=e=>({name:"inner",options:e,async fn(t){let{listRef:n,overflowRef:r,onFallbackChange:o,offset:i=0,index:l=0,minItemsVisible:a=4,referenceOverflowThreshold:s=0,scrollRef:u,...c}=tY(e,t),{rects:d,elements:{floating:f}}=t,m=n.current[l],p=(null==u?void 0:u.current)||f,h=f.clientTop||p.clientTop,g=0!==f.clientTop,v=0!==p.clientTop,b=f===p;if(!m)return{};let x={...t,...await nD(-m.offsetTop-f.clientTop-d.reference.height/2-m.offsetHeight/2-i).fn(t)},y=await ng(n7(x,p.scrollHeight+h+f.clientTop),c),_=await ng(x,{...c,elementContext:"reference"}),w=tV(0,y.top),E=x.y+w,C=p.scrollHeight>p.clientHeight,k=(C?e=>e:tU)(tV(0,p.scrollHeight+(g&&b||v?2*h:0)-w-tV(0,y.bottom)));if(p.style.maxHeight=k+"px",p.scrollTop=w,o){let e=C&&p.offsetHeight=-s||_.bottom>=-s;eU.flushSync(()=>o(e))}return r&&(r.current=await ng(n7({...x,y:E},p.offsetHeight+h+f.clientTop),c)),{y:E}}}),n9=(0,s.createContext)({styles:void 0,setReference:()=>{},setFloating:()=>{},getReferenceProps:()=>({}),getFloatingProps:()=>({}),slot:{}});n9.displayName="FloatingContext";let n8=(0,s.createContext)(null);function re(e){return(0,s.useMemo)(()=>e?"string"==typeof e?{to:e}:e:null,[e])}function rt(){return(0,s.useContext)(n9).setReference}function rn(){return(0,s.useContext)(n9).getReferenceProps}function rr(){let{getFloatingProps:e,slot:t}=(0,s.useContext)(n9);return(0,s.useCallback)(function(){for(var n=arguments.length,r=Array(n),o=0;o0&&void 0!==arguments[0]?arguments[0]:null;!1===e&&(e=null),"string"==typeof e&&(e={to:e});let t=(0,s.useContext)(n8),n=(0,s.useMemo)(()=>e,[JSON.stringify(e,(e,t)=>{var n;return null!=(n=null==t?void 0:t.outerHTML)?n:t})]);ey(()=>{null==t||t(null!=n?n:null)},[t,n]);let r=(0,s.useContext)(n9);return(0,s.useMemo)(()=>[r.setFloating,e?r.styles:{}],[r.setFloating,e,r.styles])}function ri(e){var t,n,r,o;let i,l,a,{children:u,enabled:c=!0}=e,[d,f]=(0,s.useState)(null),[m,p]=(0,s.useState)(0),h=(0,s.useRef)(null),[g,v]=(0,s.useState)(null);ey(()=>{if(!t)return;let e=new MutationObserver(()=>{let e=window.getComputedStyle(t).maxHeight,n=parseFloat(e);if(isNaN(n))return;let r=parseInt(e);isNaN(r)||n!==r&&(t.style.maxHeight="".concat(Math.ceil(n),"px"))});return e.observe(t,{attributes:!0,attributeFilter:["style"]}),()=>{e.disconnect()}},[t=g]);let b=c&&null!==d&&null!==g,{to:x="bottom",gap:y=0,offset:_=0,padding:w=0,inner:E}=(i=rl(null!=(n=null==d?void 0:d.gap)?n:"var(--anchor-gap, 0)",g),l=rl(null!=(r=null==d?void 0:d.offset)?r:"var(--anchor-offset, 0)",g),a=rl(null!=(o=null==d?void 0:d.padding)?o:"var(--anchor-padding, 0)",g),{...d,gap:i,offset:l,padding:a}),[C,k="center"]=x.split(" ");ey(()=>{b&&p(0)},[b]);let{refs:S,floatingStyles:T,context:O}=function(e){void 0===e&&(e={});let{nodeId:t}=e,n=function(e){let{open:t=!1,onOpenChange:n,elements:r}=e,o=nQ(),i=s.useRef({}),[l]=s.useState(()=>(function(){let e=new Map;return{emit(t,n){var r;null==(r=e.get(t))||r.forEach(e=>e(n))},on(t,n){e.set(t,[...e.get(t)||[],n])},off(t,n){var r;e.set(t,(null==(r=e.get(t))?void 0:r.filter(e=>e!==n))||[])}}})()),a=null!=nX(),[u,c]=s.useState(r.reference),d=n$((e,t,r)=>{i.current.openEvent=e?t:void 0,l.emit("openchange",{open:e,event:t,reason:r,nested:a}),null==n||n(e,t,r)}),f=s.useMemo(()=>({setPositionReference:c}),[]),m=s.useMemo(()=>({reference:u||r.reference||null,floating:r.floating||null,domReference:r.reference}),[u,r.reference,r.floating]);return s.useMemo(()=>({dataRef:i,open:t,onOpenChange:d,elements:m,events:l,floatingId:o,refs:f}),[t,d,m,l,o,f])}({...e,elements:{reference:null,floating:null,...e.elements}}),r=e.rootContext||n,o=r.elements,[i,l]=s.useState(null),[a,u]=s.useState(null),c=(null==o?void 0:o.reference)||i,d=s.useRef(null),f=nJ();nV(()=>{c&&(d.current=c)},[c]);let m=function(e){void 0===e&&(e={});let{placement:t="bottom",strategy:n="absolute",middleware:r=[],platform:o,elements:{reference:i,floating:l}={},transform:a=!0,whileElementsMounted:u,open:c}=e,[d,f]=s.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[m,p]=s.useState(r);nL(m,r)||p(r);let[h,g]=s.useState(null),[v,b]=s.useState(null),x=s.useCallback(e=>{e!==E.current&&(E.current=e,g(e))},[]),y=s.useCallback(e=>{e!==C.current&&(C.current=e,b(e))},[]),_=i||h,w=l||v,E=s.useRef(null),C=s.useRef(null),k=s.useRef(d),S=null!=u,T=nF(u),O=nF(o),j=nF(c),I=s.useCallback(()=>{if(!E.current||!C.current)return;let e={placement:t,strategy:n,middleware:m};O.current&&(e.platform=O.current),nR(E.current,C.current,e).then(e=>{let t={...e,isPositioned:!1!==j.current};M.current&&!nL(k.current,t)&&(k.current=t,eU.flushSync(()=>{f(t)}))})},[m,t,n,O,j]);nP(()=>{!1===c&&k.current.isPositioned&&(k.current.isPositioned=!1,f(e=>({...e,isPositioned:!1})))},[c]);let M=s.useRef(!1);nP(()=>(M.current=!0,()=>{M.current=!1}),[]),nP(()=>{if(_&&(E.current=_),w&&(C.current=w),_&&w){if(T.current)return T.current(_,w,I);I()}},[_,w,I,T,S]);let R=s.useMemo(()=>({reference:E,floating:C,setReference:x,setFloating:y}),[x,y]),P=s.useMemo(()=>({reference:_,floating:w}),[_,w]),L=s.useMemo(()=>{let e={position:n,left:0,top:0};if(!P.floating)return e;let t=nA(P.floating,d.x),r=nA(P.floating,d.y);return a?{...e,transform:"translate("+t+"px, "+r+"px)",...nN(P.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:t,top:r}},[n,a,P.floating,d.x,d.y]);return s.useMemo(()=>({...d,update:I,refs:R,elements:P,floatingStyles:L}),[d,I,R,P,L])}({...e,elements:{...o,...a&&{reference:a}}}),p=s.useCallback(e=>{let t=nt(e)?{getBoundingClientRect:()=>e.getBoundingClientRect(),contextElement:e}:e;u(t),m.refs.setReference(t)},[m.refs]),h=s.useCallback(e=>{(nt(e)||null===e)&&(d.current=e,l(e)),(nt(m.refs.reference.current)||null===m.refs.reference.current||null!==e&&!nt(e))&&m.refs.setReference(e)},[m.refs]),g=s.useMemo(()=>({...m.refs,setReference:h,setPositionReference:p,domReference:d}),[m.refs,h,p]),v=s.useMemo(()=>({...m.elements,domReference:c}),[m.elements,c]),b=s.useMemo(()=>({...m,...r,refs:g,elements:v,nodeId:t}),[m,g,v,t,r]);return nV(()=>{r.dataRef.current.floatingContext=b;let e=null==f?void 0:f.nodesRef.current.find(e=>e.id===t);e&&(e.context=b)}),s.useMemo(()=>({...m,context:b,refs:g,elements:v}),[m,g,v,b])}({open:b,placement:"selection"===C?"center"===k?"bottom":"bottom-".concat(k):"center"===k?"".concat(C):"".concat(C,"-").concat(k),strategy:"absolute",transform:!1,middleware:[nD({mainAxis:"selection"===C?0:y,crossAxis:_}),nH({padding:w}),"selection"!==C&&nz({padding:w}),"selection"===C&&E?n3({...E,padding:w,overflowRef:h,offset:m,minItemsVisible:4,referenceOverflowThreshold:w,onFallbackChange(e){var t,n;if(!e)return;let r=O.elements.floating;if(!r)return;let o=parseFloat(getComputedStyle(r).scrollPaddingBottom)||0,i=Math.min(4,r.childElementCount),l=0,a=0;for(let e of null!=(n=null==(t=O.elements.floating)?void 0:t.childNodes)?n:[])if(e instanceof HTMLElement){let t=e.offsetTop,n=t+e.clientHeight+o,s=r.scrollTop,u=s+r.clientHeight;if(t>=s&&n<=u)i--;else{a=Math.max(0,Math.min(n,u)-Math.max(t,s)),l=e.clientHeight;break}}i>=1&&p(e=>{let t=l*i-a+o;return e>=t?e:t})}}):null,nW({padding:w,apply(e){let{availableWidth:t,availableHeight:n,elements:r}=e;Object.assign(r.floating.style,{overflow:"auto",maxWidth:"".concat(t,"px"),maxHeight:"min(var(--anchor-max-height, 100vh), ".concat(n,"px)")})}})].filter(Boolean),whileElementsMounted:nM}),[j=C,I=k]=O.placement.split("-");"selection"===C&&(j="selection");let M=(0,s.useMemo)(()=>({anchor:[j,I].filter(Boolean).join(" ")}),[j,I]),{getReferenceProps:R,getFloatingProps:P}=function(e){void 0===e&&(e=[]);let t=e.map(e=>null==e?void 0:e.reference),n=e.map(e=>null==e?void 0:e.floating),r=e.map(e=>null==e?void 0:e.item),o=s.useCallback(t=>n6(t,e,"reference"),t),i=s.useCallback(t=>n6(t,e,"floating"),n),l=s.useCallback(t=>n6(t,e,"item"),r);return s.useMemo(()=>({getReferenceProps:o,getFloatingProps:i,getItemProps:l}),[o,i,l])}([function(e,t){let{open:n,elements:r}=e,{enabled:o=!0,overflowRef:i,scrollRef:l,onChange:a}=t,u=n$(a),c=s.useRef(!1),d=s.useRef(null),f=s.useRef(null);s.useEffect(()=>{if(!o)return;function e(e){if(e.ctrlKey||!t||null==i.current)return;let n=e.deltaY,r=i.current.top>=-.5,o=i.current.bottom>=-.5,l=t.scrollHeight-t.clientHeight,a=n<0?-1:1,s=n<0?"max":"min";!(t.scrollHeight<=t.clientHeight)&&(!r&&n>0||!o&&n<0?(e.preventDefault(),eU.flushSync(()=>{u(e=>e+Math[s](n,l*a))})):/firefox/i.test(function(){let e=navigator.userAgentData;return e&&Array.isArray(e.brands)?e.brands.map(e=>{let{brand:t,version:n}=e;return t+"/"+n}).join(" "):navigator.userAgent}())&&(t.scrollTop+=n))}let t=(null==l?void 0:l.current)||r.floating;if(n&&t)return t.addEventListener("wheel",e),requestAnimationFrame(()=>{d.current=t.scrollTop,null!=i.current&&(f.current={...i.current})}),()=>{d.current=null,f.current=null,t.removeEventListener("wheel",e)}},[o,n,r.floating,i,l,u]);let m=s.useMemo(()=>({onKeyDown(){c.current=!0},onWheel(){c.current=!1},onPointerMove(){c.current=!1},onScroll(){let e=(null==l?void 0:l.current)||r.floating;if(i.current&&e&&c.current){if(null!==d.current){let t=e.scrollTop-d.current;(i.current.bottom<-.5&&t<-1||i.current.top<-.5&&t>1)&&eU.flushSync(()=>u(e=>e+t))}requestAnimationFrame(()=>{d.current=e.scrollTop})}}}),[r.floating,u,i,l]);return s.useMemo(()=>o?{floating:m}:{},[o,m])}(O,{overflowRef:h,onChange:p})]),L=ew(e=>{v(e),S.setFloating(e)});return s.createElement(n8.Provider,{value:f},s.createElement(n9.Provider,{value:{setFloating:L,setReference:S.setReference,styles:T,getReferenceProps:R,getFloatingProps:P,slot:M}},u))}function rl(e,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:void 0,r=ex(),o=ew((e,t)=>{if(null==e)return[n,null];if("number"==typeof e)return[e,null];if("string"==typeof e){if(!t)return[n,null];let o=ra(e,t);return[o,n=>{let i=function e(t){let n=/var\((.*)\)/.exec(t);if(n){let t=n[1].indexOf(",");if(-1===t)return[n[1]];let r=n[1].slice(0,t).trim(),o=n[1].slice(t+1).trim();return o?[r,...e(o)]:[r]}return[]}(e);{let l=i.map(e=>window.getComputedStyle(t).getPropertyValue(e));r.requestAnimationFrame(function a(){r.nextFrame(a);let s=!1;for(let[e,n]of i.entries()){let r=window.getComputedStyle(t).getPropertyValue(n);if(l[e]!==r){l[e]=r,s=!0;break}}if(!s)return;let u=ra(e,t);o!==u&&(n(u),o=u)})}return r.dispose}]}return[n,null]}),i=(0,s.useMemo)(()=>o(e,t)[0],[e,t]),[l=i,a]=(0,s.useState)();return ey(()=>{let[n,r]=o(e,t);if(a(n),r)return r(a)},[e,t]),l}function ra(e,t){let n=document.createElement("div");t.appendChild(n),n.style.setProperty("margin-top","0px","important"),n.style.setProperty("margin-top",e,"important");let r=parseFloat(window.getComputedStyle(n).marginTop)||0;return t.removeChild(n),r}function rs(e,t){return e?e+"["+t+"]":t}n8.displayName="PlacementContext";var ru=(e=>(e[e.None=1]="None",e[e.Focusable=2]="Focusable",e[e.Hidden=4]="Hidden",e))(ru||{});let rc=eN(function(e,t){var n;let{features:r=1,...o}=e,i={ref:t,"aria-hidden":(2&r)==2||(null!=(n=o["aria-hidden"])?n:void 0),hidden:(4&r)==4||void 0,style:{position:"fixed",top:1,left:1,width:1,height:0,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",borderWidth:"0",...(4&r)==4&&(2&r)!=2&&{display:"none"}}};return eI()({ourProps:i,theirProps:o,slot:{},defaultTag:"span",name:"Hidden"})}),rd=(0,s.createContext)(null);function rf(e){let{children:t}=e,n=(0,s.useContext)(rd);if(!n)return s.createElement(s.Fragment,null,t);let{target:r}=n;return r?(0,eU.createPortal)(s.createElement(s.Fragment,null,t),r):null}function rm(e){let{data:t,form:n,disabled:r,onReset:o,overrides:i}=e,[l,a]=(0,s.useState)(null),u=ex();return(0,s.useEffect)(()=>{if(o&&l)return u.addEventListener(l,"reset",o)},[l,n,o]),s.createElement(rf,null,s.createElement(rp,{setForm:a,formId:n}),(function e(){let t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];for(let[o,i]of Object.entries(t))!function t(n,r,o){if(Array.isArray(o))for(let[e,i]of o.entries())t(n,rs(r,e.toString()),i);else o instanceof Date?n.push([r,o.toISOString()]):"boolean"==typeof o?n.push([r,o?"1":"0"]):"string"==typeof o?n.push([r,o]):"number"==typeof o?n.push([r,"".concat(o)]):null==o?n.push([r,""]):e(o,r,n)}(r,rs(n,o),i);return r})(t).map(e=>{let[t,o]=e;return s.createElement(rc,{features:ru.Hidden,...eA({key:t,as:"input",type:"hidden",hidden:!0,readOnly:!0,form:n,disabled:r,name:t,value:o,...i})})}))}function rp(e){let{setForm:t,formId:n}=e;return(0,s.useEffect)(()=>{if(n){let e=document.getElementById(n);e&&t(e)}},[t,n]),n?null:s.createElement(rc,{features:ru.Hidden,as:"input",type:"hidden",hidden:!0,readOnly:!0,ref:e=>{if(!e)return;let n=e.closest("form");n&&t(n)}})}function rh(e){let{children:t,freeze:n}=e,r=rg(n,t);return s.createElement(s.Fragment,null,r)}function rg(e,t){let[n,r]=(0,s.useState)(t);return e||n===t||r(t),e?n:t}let rv=(0,s.createContext)(void 0);function rb(){return(0,s.useContext)(rv)}let rx=(0,s.createContext)(null);rx.displayName="OpenClosedContext";var ry=(e=>(e[e.Open=1]="Open",e[e.Closed=2]="Closed",e[e.Closing=4]="Closing",e[e.Opening=8]="Opening",e))(ry||{});function r_(){return(0,s.useContext)(rx)}function rw(e){let{value:t,children:n}=e;return s.createElement(rx.Provider,{value:t},n)}let rE=[];function rC(e){let t=e.parentElement,n=null;for(;t&&!(t instanceof HTMLFieldSetElement);)t instanceof HTMLLegendElement&&(n=t),t=t.parentElement;let r=(null==t?void 0:t.getAttribute("disabled"))==="";return!(r&&function(e){if(!e)return!1;let t=e.previousElementSibling;for(;null!==t;){if(t instanceof HTMLLegendElement)return!1;t=t.previousElementSibling}return!0}(n))&&r}!function(e){function t(){"loading"!==document.readyState&&(e(),document.removeEventListener("DOMContentLoaded",t))}"undefined"!=typeof document&&(document.addEventListener("DOMContentLoaded",t),t())}(()=>{function e(e){if(!(e.target instanceof HTMLElement)||e.target===document.body||rE[0]===e.target)return;let t=e.target;t=t.closest(tm),rE.unshift(null!=t?t:e.target),(rE=rE.filter(e=>null!=e&&e.isConnected)).splice(10)}window.addEventListener("click",e,{capture:!0}),window.addEventListener("mousedown",e,{capture:!0}),window.addEventListener("focus",e,{capture:!0}),document.body.addEventListener("click",e,{capture:!0}),document.body.addEventListener("mousedown",e,{capture:!0}),document.body.addEventListener("focus",e,{capture:!0})});var rk=(e=>(e[e.First=0]="First",e[e.Previous=1]="Previous",e[e.Next=2]="Next",e[e.Last=3]="Last",e[e.Specific=4]="Specific",e[e.Nothing=5]="Nothing",e))(rk||{});function rS(e,t){let n=t.resolveItems();if(n.length<=0)return null;let r=t.resolveActiveIndex(),o=null!=r?r:-1;switch(e.focus){case 0:for(let e=0;e=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 2:for(let e=o+1;e=0;--e)if(!t.resolveDisabled(n[e],e,n))return e;return r;case 4:for(let r=0;r component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(t,e),t}return t}(),a=tN(t);ey(()=>l.register(o),[o,l.register]);let u=r||!1,c=(0,s.useMemo)(()=>({...l.slot,disabled:u}),[l.slot,u]),d={ref:a,...l.props,id:o};return eI()({ourProps:d,theirProps:i,slot:c,defaultTag:"p",name:l.name||"Description"})}),{});var rj=(e=>(e.Space=" ",e.Enter="Enter",e.Escape="Escape",e.Backspace="Backspace",e.Delete="Delete",e.ArrowLeft="ArrowLeft",e.ArrowUp="ArrowUp",e.ArrowRight="ArrowRight",e.ArrowDown="ArrowDown",e.Home="Home",e.End="End",e.PageUp="PageUp",e.PageDown="PageDown",e.Tab="Tab",e))(rj||{});let rI=(0,s.createContext)(null);function rM(){let e=(0,s.useContext)(rI);if(null===e){let e=Error("You used a component, but it is not inside a relevant parent.");throw Error.captureStackTrace&&Error.captureStackTrace(e,rM),e}return e}function rR(e){var t,n,r;let o=null!=(n=null==(t=(0,s.useContext)(rI))?void 0:t.value)?n:void 0;return(null!=(r=null==e?void 0:e.length)?r:0)>0?[o,...e].filter(Boolean).join(" "):o}function rP(){let{inherit:e=!1}=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=rR(),[n,r]=(0,s.useState)([]),o=e?[t,...n].filter(Boolean):n;return[o.length>0?o.join(" "):void 0,(0,s.useMemo)(()=>function(e){let t=ew(e=>(r(t=>[...t,e]),()=>r(t=>{let n=t.slice(),r=n.indexOf(e);return -1!==r&&n.splice(r,1),n}))),n=(0,s.useMemo)(()=>({register:t,slot:e.slot,name:e.name,props:e.props,value:e.value}),[t,e.slot,e.name,e.props,e.value]);return s.createElement(rI.Provider,{value:n},e.children)},[r])]}rI.displayName="LabelContext";let rL=Object.assign(eN(function(e,t){var n;let r=(0,s.useId)(),o=rM(),i=rb(),l=ek(),{id:a="headlessui-label-".concat(r),htmlFor:u=null!=i?i:null==(n=o.props)?void 0:n.htmlFor,passive:c=!1,...d}=e,f=tN(t);ey(()=>o.register(a),[a,o.register]);let m=ew(e=>{let t=e.currentTarget;if(t instanceof HTMLLabelElement&&e.preventDefault(),o.props&&"onClick"in o.props&&"function"==typeof o.props.onClick&&o.props.onClick(e),t instanceof HTMLLabelElement){let e=document.getElementById(t.htmlFor);if(e){let t=e.getAttribute("disabled");if("true"===t||""===t)return;let n=e.getAttribute("aria-disabled");if("true"===n||""===n)return;(e instanceof HTMLInputElement&&("radio"===e.type||"checkbox"===e.type)||"radio"===e.role||"checkbox"===e.role||"switch"===e.role)&&e.click(),e.focus({preventScroll:!0})}}}),p=l||!1,h=(0,s.useMemo)(()=>({...o.slot,disabled:p}),[o.slot,p]),g={ref:f,...o.props,id:a,htmlFor:u,onClick:m};return c&&("onClick"in g&&(delete g.htmlFor,delete g.onClick),"onClick"in d&&delete d.onClick),eI()({ourProps:g,theirProps:d,slot:h,defaultTag:u?"label":"div",name:o.name||"Label"})}),{});var rN=(e=>(e[e.Left=0]="Left",e[e.Right=2]="Right",e))(rN||{});let rA=(0,s.createContext)(!1),rF=s.Fragment,rD=eN(function(e,t){let n,r,o=(0,s.useRef)(null),i=tN(function(e){let t=!(arguments.length>1)||void 0===arguments[1]||arguments[1];return Object.assign(e,{[tL]:t})}(e=>{o.current=e}),t),l=tj(o),a=function(e){let t=(0,s.useContext)(rA),n=(0,s.useContext)(rz),r=tj(e),[o,i]=(0,s.useState)(()=>{var e;if(!t&&null!==n)return null!=(e=n.current)?e:null;if(eh.isServer)return null;let o=null==r?void 0:r.getElementById("headlessui-portal-root");if(o)return o;if(null===r)return null;let i=r.createElement("div");return i.setAttribute("id","headlessui-portal-root"),r.body.appendChild(i)});return(0,s.useEffect)(()=>{null!==o&&(null!=r&&r.body.contains(o)||null==r||r.body.appendChild(o))},[o,r]),(0,s.useEffect)(()=>{t||null!==n&&i(n.current)},[n,i,t]),o}(o),[c]=(0,s.useState)(()=>{var e;return eh.isServer?null:null!=(e=null==l?void 0:l.createElement("div"))?e:null}),d=(0,s.useContext)(rW),f=function(){let e;let t=(e="undefined"==typeof document,(0,u.useSyncExternalStore)(()=>()=>{},()=>!1,()=>!e)),[n,r]=s.useState(eh.isHandoffComplete);return n&&!1===eh.isHandoffComplete&&r(!1),s.useEffect(()=>{!0!==n&&r(!0)},[n]),s.useEffect(()=>eh.handoff(),[]),!t&&n}();ey(()=>{!a||!c||a.contains(c)||(c.setAttribute("data-headlessui-portal",""),a.appendChild(c))},[a,c]),ey(()=>{if(c&&d)return d.register(c)},[d,c]),n=ew(()=>{var e;a&&c&&(c instanceof Node&&a.contains(c)&&a.removeChild(c),a.childNodes.length<=0&&(null==(e=a.parentElement)||e.removeChild(a)))}),r=(0,s.useRef)(!1),(0,s.useEffect)(()=>(r.current=!1,()=>{r.current=!0,ev(()=>{r.current&&n()})}),[n]);let m=eI();return f&&a&&c?(0,eU.createPortal)(m({ourProps:{ref:i},theirProps:e,slot:{},defaultTag:rF,name:"Portal"}),c):null}),rH=s.Fragment,rz=(0,s.createContext)(null),rW=(0,s.createContext)(null),rB=Object.assign(eN(function(e,t){let n=tN(t),{enabled:r=!0,...o}=e,i=eI();return r?s.createElement(rD,{...o,ref:n}):i({ourProps:{ref:n},theirProps:o,slot:{},defaultTag:rF,name:"Portal"})}),{Group:eN(function(e,t){let{target:n,...r}=e,o={ref:tN(t)},i=eI();return s.createElement(rz.Provider,{value:n},i({ourProps:o,theirProps:r,defaultTag:rH,name:"Popover.Group"}))})});var rZ=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(rZ||{}),r$=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(r$||{}),rV=(e=>(e[e.Pointer=0]="Pointer",e[e.Focus=1]="Focus",e[e.Other=2]="Other",e))(rV||{}),rU=(e=>(e[e.OpenCombobox=0]="OpenCombobox",e[e.CloseCombobox=1]="CloseCombobox",e[e.GoToOption=2]="GoToOption",e[e.SetTyping=3]="SetTyping",e[e.RegisterOption=4]="RegisterOption",e[e.UnregisterOption=5]="UnregisterOption",e[e.SetActivationTrigger=6]="SetActivationTrigger",e[e.UpdateVirtualConfiguration=7]="UpdateVirtualConfiguration",e[e.SetInputElement=8]="SetInputElement",e[e.SetButtonElement=9]="SetButtonElement",e[e.SetOptionsElement=10]="SetOptionsElement",e))(rU||{});function rK(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,n=null!==e.activeOptionIndex?e.options[e.activeOptionIndex]:null,r=t(e.options.slice()),o=r.length>0&&null!==r[0].dataRef.current.order?r.sort((e,t)=>e.dataRef.current.order-t.dataRef.current.order):tE(r,e=>e.dataRef.current.domRef.current),i=n?o.indexOf(n):null;return -1===i&&(i=null),{options:o,activeOptionIndex:i}}let rq={1(e){var t;return null!=(t=e.dataRef.current)&&t.disabled||1===e.comboboxState?e:{...e,activeOptionIndex:null,comboboxState:1,isTyping:!1,activationTrigger:2,__demoMode:!1}},0(e){var t,n;if(null!=(t=e.dataRef.current)&&t.disabled||0===e.comboboxState)return e;if(null!=(n=e.dataRef.current)&&n.value){let t=e.dataRef.current.calculateIndex(e.dataRef.current.value);if(-1!==t)return{...e,activeOptionIndex:t,comboboxState:0,__demoMode:!1}}return{...e,comboboxState:0,__demoMode:!1}},3:(e,t)=>e.isTyping===t.isTyping?e:{...e,isTyping:t.isTyping},2(e,t){var n,r,o,i;if(null!=(n=e.dataRef.current)&&n.disabled||e.optionsElement&&!(null!=(r=e.dataRef.current)&&r.optionsPropsRef.current.static)&&1===e.comboboxState)return e;if(e.virtual){let{options:n,disabled:r}=e.virtual,i=t.focus===rk.Specific?t.idx:rS(t,{resolveItems:()=>n,resolveActiveIndex:()=>{var t,o;return null!=(o=null!=(t=e.activeOptionIndex)?t:n.findIndex(e=>!r(e)))?o:null},resolveDisabled:r,resolveId(){throw Error("Function not implemented.")}}),l=null!=(o=t.trigger)?o:2;return e.activeOptionIndex===i&&e.activationTrigger===l?e:{...e,activeOptionIndex:i,activationTrigger:l,isTyping:!1,__demoMode:!1}}let l=rK(e);if(null===l.activeOptionIndex){let e=l.options.findIndex(e=>!e.dataRef.current.disabled);-1!==e&&(l.activeOptionIndex=e)}let a=t.focus===rk.Specific?t.idx:rS(t,{resolveItems:()=>l.options,resolveActiveIndex:()=>l.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled}),s=null!=(i=t.trigger)?i:2;return e.activeOptionIndex===a&&e.activationTrigger===s?e:{...e,...l,isTyping:!1,activeOptionIndex:a,activationTrigger:s,__demoMode:!1}},4:(e,t)=>{var n,r,o;if(null!=(n=e.dataRef.current)&&n.virtual)return{...e,options:[...e.options,t.payload]};let i=t.payload,l=rK(e,e=>(e.push(i),e));null===e.activeOptionIndex&&null!=(r=e.dataRef.current)&&r.isSelected(t.payload.dataRef.current.value)&&(l.activeOptionIndex=l.options.indexOf(i));let a={...e,...l,activationTrigger:2};return null!=(o=e.dataRef.current)&&o.__demoMode&&void 0===e.dataRef.current.value&&(a.activeOptionIndex=0),a},5:(e,t)=>{var n;if(null!=(n=e.dataRef.current)&&n.virtual)return{...e,options:e.options.filter(e=>e.id!==t.id)};let r=rK(e,e=>{let n=e.findIndex(e=>e.id===t.id);return -1!==n&&e.splice(n,1),e});return{...e,...r,activationTrigger:2}},6:(e,t)=>e.activationTrigger===t.trigger?e:{...e,activationTrigger:t.trigger},7:(e,t)=>{var n,r;if(null===e.virtual)return{...e,virtual:{options:t.options,disabled:null!=(n=t.disabled)?n:()=>!1}};if(e.virtual.options===t.options&&e.virtual.disabled===t.disabled)return e;let o=e.activeOptionIndex;if(null!==e.activeOptionIndex){let n=t.options.indexOf(e.virtual.options[e.activeOptionIndex]);o=-1!==n?n:null}return{...e,activeOptionIndex:o,virtual:{options:t.options,disabled:null!=(r=t.disabled)?r:()=>!1}}},8:(e,t)=>e.inputElement===t.element?e:{...e,inputElement:t.element},9:(e,t)=>e.buttonElement===t.element?e:{...e,buttonElement:t.element},10:(e,t)=>e.optionsElement===t.element?e:{...e,optionsElement:t.element}},rQ=(0,s.createContext)(null);function rG(e){let t=(0,s.useContext)(rQ);if(null===t){let t=Error("<".concat(e," /> is missing a parent component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,rG),t}return t}rQ.displayName="ComboboxActionsContext";let rY=(0,s.createContext)(null);function rX(e){let t=r0("VirtualProvider"),{options:n}=t.virtual,[r,o]=(0,s.useMemo)(()=>{let e=t.optionsElement;if(!e)return[0,0];let n=window.getComputedStyle(e);return[parseFloat(n.paddingBlockStart||n.paddingTop),parseFloat(n.paddingBlockEnd||n.paddingBottom)]},[t.optionsElement]),i=function(e){let t=s.useReducer(()=>({}),{})[1],n={...e,onChange:(n,r)=>{var o;r?(0,eU.flushSync)(t):t(),null==(o=e.onChange)||o.call(e,n,r)}},[r]=s.useState(()=>new e6(n));return r.setOptions(n),s.useEffect(()=>r._didMount(),[]),e3(()=>r._willUpdate()),r}({observeElementRect:eJ,observeElementOffset:e2,scrollToFn:e5,enabled:0!==n.length,scrollPaddingStart:r,scrollPaddingEnd:o,count:n.length,estimateSize:()=>40,getScrollElement:()=>t.optionsElement,overscan:12}),[l,a]=(0,s.useState)(0);ey(()=>{a(e=>e+1)},[n]);let u=i.getVirtualItems();return 0===u.length?null:s.createElement(rY.Provider,{value:i},s.createElement("div",{style:{position:"relative",width:"100%",height:"".concat(i.getTotalSize(),"px")},ref:e=>{e&&0!==t.activationTrigger&&null!==t.activeOptionIndex&&n.length>t.activeOptionIndex&&i.scrollToIndex(t.activeOptionIndex)}},u.map(t=>{var r;return s.createElement(s.Fragment,{key:t.key},s.cloneElement(null==(r=e.children)?void 0:r.call(e,{...e.slot,option:n[t.index]}),{key:"".concat(l,"-").concat(t.key),"data-index":t.index,"aria-setsize":n.length,"aria-posinset":t.index+1,style:{position:"absolute",top:0,left:0,transform:"translateY(".concat(t.start,"px)"),overflowAnchor:"none"}}))})))}let rJ=(0,s.createContext)(null);function r0(e){let t=(0,s.useContext)(rJ);if(null===t){let t=Error("<".concat(e," /> is missing a parent component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,r0),t}return t}function r1(e,t){return eT(t.type,rq,e,t)}rJ.displayName="ComboboxDataContext";let r2=s.Fragment,r4=eO.RenderStrategy|eO.Static,r5=eN(function(e,t){var n,r;let o=ek(),{value:i,defaultValue:l,onChange:a,form:u,name:c,by:d,disabled:f=o||!1,onClose:m,__demoMode:p=!1,multiple:h=!1,immediate:g=!1,virtual:v=null,nullable:b,...x}=e,y=tt(l),[_=h?[]:void 0,w]=te(i,a,y),[E,C]=(0,s.useReducer)(r1,{dataRef:(0,s.createRef)(),comboboxState:p?0:1,isTyping:!1,options:[],virtual:v?{options:v.options,disabled:null!=(n=v.disabled)?n:()=>!1}:null,activeOptionIndex:null,activationTrigger:2,inputElement:null,buttonElement:null,optionsElement:null,__demoMode:p}),k=(0,s.useRef)(!1),S=(0,s.useRef)({static:!1,hold:!1}),T=e8(d),O=ew(e=>v?null===d?v.options.indexOf(e):v.options.findIndex(t=>T(t,e)):E.options.findIndex(t=>T(t.dataRef.current.value,e))),j=(0,s.useCallback)(e=>eT(M.mode,{1:()=>_.some(t=>T(t,e)),0:()=>T(_,e)}),[_]),I=ew(e=>E.activeOptionIndex===O(e)),M=(0,s.useMemo)(()=>({...E,immediate:g,optionsPropsRef:S,value:_,defaultValue:y,disabled:f,mode:h?1:0,virtual:v?E.virtual:null,get activeOptionIndex(){if(k.current&&null===E.activeOptionIndex&&(v?v.options.length>0:E.options.length>0)){if(v){let e=v.options.findIndex(e=>{var t,n;return!(null!=(n=null==(t=v.disabled)?void 0:t.call(v,e))&&n)});if(-1!==e)return e}let e=E.options.findIndex(e=>!e.dataRef.current.disabled);if(-1!==e)return e}return E.activeOptionIndex},calculateIndex:O,compare:T,isSelected:j,isActive:I}),[_,y,f,h,p,E,v]);ey(()=>{var e;v&&C({type:7,options:v.options,disabled:null!=(e=v.disabled)?e:null})},[v,null==v?void 0:v.options,null==v?void 0:v.disabled]),ey(()=>{E.dataRef.current=M},[M]),tO(0===M.comboboxState,[M.buttonElement,M.inputElement,M.optionsElement],()=>$.closeCombobox());let R=(0,s.useMemo)(()=>{var e,t,n;return{open:0===M.comboboxState,disabled:f,activeIndex:M.activeOptionIndex,activeOption:null===M.activeOptionIndex?null:M.virtual?M.virtual.options[null!=(e=M.activeOptionIndex)?e:0]:null!=(n=null==(t=M.options[M.activeOptionIndex])?void 0:t.dataRef.current.value)?n:null,value:_}},[M,f,_]),P=ew(()=>{if(null!==M.activeOptionIndex){if($.setIsTyping(!1),M.virtual)H(M.virtual.options[M.activeOptionIndex]);else{let{dataRef:e}=M.options[M.activeOptionIndex];H(e.current.value)}$.goToOption(rk.Specific,M.activeOptionIndex)}}),L=ew(()=>{C({type:0}),k.current=!0}),N=ew(()=>{C({type:1}),k.current=!1,null==m||m()}),A=ew(e=>{C({type:3,isTyping:e})}),F=ew((e,t,n)=>(k.current=!1,e===rk.Specific?C({type:2,focus:rk.Specific,idx:t,trigger:n}):C({type:2,focus:e,trigger:n}))),D=ew((e,t)=>(C({type:4,payload:{id:e,dataRef:t}}),()=>{M.isActive(t.current.value)&&(k.current=!0),C({type:5,id:e})})),H=ew(e=>eT(M.mode,{0:()=>null==w?void 0:w(e),1(){let t=M.value.slice(),n=t.findIndex(t=>T(t,e));return -1===n?t.push(e):t.splice(n,1),null==w?void 0:w(t)}})),z=ew(e=>{C({type:6,trigger:e})}),W=ew(e=>{C({type:8,element:e})}),B=ew(e=>{C({type:9,element:e})}),Z=ew(e=>{C({type:10,element:e})}),$=(0,s.useMemo)(()=>({onChange:H,registerOption:D,goToOption:F,setIsTyping:A,closeCombobox:N,openCombobox:L,setActivationTrigger:z,selectActiveOption:P,setInputElement:W,setButtonElement:B,setOptionsElement:Z}),[]),[V,U]=rP(),K=(0,s.useCallback)(()=>{if(void 0!==y)return null==w?void 0:w(y)},[w,y]),q=eI();return s.createElement(U,{value:V,props:{htmlFor:null==(r=M.inputElement)?void 0:r.id},slot:{open:0===M.comboboxState,disabled:f}},s.createElement(ri,null,s.createElement(rQ.Provider,{value:$},s.createElement(rJ.Provider,{value:M},s.createElement(rw,{value:eT(M.comboboxState,{0:ry.Open,1:ry.Closed})},null!=c&&s.createElement(rm,{disabled:f,data:null!=_?{[c]:_}:{},form:u,onReset:K}),q({ourProps:null===t?{}:{ref:t},theirProps:x,slot:R,defaultTag:r2,name:"Combobox"}))))))}),r6=eN(function(e,t){var n;let r=r0("Combobox.Button"),o=rG("Combobox.Button"),i=tN(t,o.setButtonElement),l=(0,s.useId)(),{id:a="headlessui-combobox-button-".concat(l),disabled:u=r.disabled||!1,autoFocus:c=!1,...d}=e,f=tI(r.inputElement),m=ew(e=>{switch(e.key){case rj.Space:case rj.Enter:e.preventDefault(),e.stopPropagation(),1===r.comboboxState&&(0,eU.flushSync)(()=>o.openCombobox()),f();return;case rj.ArrowDown:e.preventDefault(),e.stopPropagation(),1===r.comboboxState&&((0,eU.flushSync)(()=>o.openCombobox()),r.value||o.goToOption(rk.First)),f();return;case rj.ArrowUp:e.preventDefault(),e.stopPropagation(),1===r.comboboxState&&((0,eU.flushSync)(()=>o.openCombobox()),r.value||o.goToOption(rk.Last)),f();return;case rj.Escape:if(0!==r.comboboxState)return;e.preventDefault(),r.optionsElement&&!r.optionsPropsRef.current.static&&e.stopPropagation(),(0,eU.flushSync)(()=>o.closeCombobox()),f();return;default:return}}),p=ew(e=>{e.preventDefault(),rC(e.currentTarget)||(e.button===rN.Left&&(0===r.comboboxState?o.closeCombobox():o.openCombobox()),f())}),h=rR([a]),{isFocusVisible:g,focusProps:v}=eo({autoFocus:c}),{isHovered:b,hoverProps:x}=ec({isDisabled:u}),{pressed:y,pressProps:_}=eE({disabled:u}),w=(0,s.useMemo)(()=>({open:0===r.comboboxState,active:y||0===r.comboboxState,disabled:u,value:r.value,hover:b,focus:g}),[r,b,g,y,u]),E=eL({ref:i,id:a,type:tM(e,r.buttonElement),tabIndex:-1,"aria-haspopup":"listbox","aria-controls":null==(n=r.optionsElement)?void 0:n.id,"aria-expanded":0===r.comboboxState,"aria-labelledby":h,disabled:u||void 0,autoFocus:c,onMouseDown:p,onKeyDown:m},v,x,_);return eI()({ourProps:E,theirProps:d,slot:w,defaultTag:"button",name:"Combobox.Button"})}),r7=eN(function(e,t){var n,r,o,i,l;let a=r0("Combobox.Input"),u=rG("Combobox.Input"),c=(0,s.useId)(),d=rb(),{id:f=d||"headlessui-combobox-input-".concat(c),onChange:m,displayValue:p,disabled:h=a.disabled||!1,autoFocus:g=!1,type:v="text",...b}=e,x=(0,s.useRef)(null),y=tN(x,t,rt(),u.setInputElement),_=tj(a.inputElement),w=ex(),E=ew(()=>{u.onChange(null),a.optionsElement&&(a.optionsElement.scrollTop=0),u.goToOption(rk.Nothing)});tZ((e,t)=>{let[n,r]=e,[o,i]=t;if(a.isTyping)return;let l=x.current;l&&((0===i&&1===r||n!==o)&&(l.value=n),requestAnimationFrame(()=>{if(a.isTyping||!l||(null==_?void 0:_.activeElement)!==l)return;let{selectionStart:e,selectionEnd:t}=l;0===Math.abs((null!=t?t:0)-(null!=e?e:0))&&0===e&&l.setSelectionRange(l.value.length,l.value.length)}))},[(0,s.useMemo)(()=>{var e;return"function"==typeof p&&void 0!==a.value?null!=(e=p(a.value))?e:"":"string"==typeof a.value?a.value:""},[a.value,p]),a.comboboxState,_,a.isTyping]),tZ((e,t)=>{let[n]=e,[r]=t;if(0===n&&1===r){if(a.isTyping)return;let e=x.current;if(!e)return;let t=e.value,{selectionStart:n,selectionEnd:r,selectionDirection:o}=e;e.value="",e.value=t,null!==o?e.setSelectionRange(n,r,o):e.setSelectionRange(n,r)}},[a.comboboxState]);let C=(0,s.useRef)(!1),k=ew(()=>{C.current=!0}),S=ew(()=>{w.nextFrame(()=>{C.current=!1})}),T=ew(e=>{switch(u.setIsTyping(!0),e.key){case rj.Enter:if(0!==a.comboboxState||C.current)return;if(e.preventDefault(),e.stopPropagation(),null===a.activeOptionIndex){u.closeCombobox();return}u.selectActiveOption(),0===a.mode&&u.closeCombobox();break;case rj.ArrowDown:return e.preventDefault(),e.stopPropagation(),eT(a.comboboxState,{0:()=>u.goToOption(rk.Next),1:()=>u.openCombobox()});case rj.ArrowUp:return e.preventDefault(),e.stopPropagation(),eT(a.comboboxState,{0:()=>u.goToOption(rk.Previous),1:()=>{(0,eU.flushSync)(()=>u.openCombobox()),a.value||u.goToOption(rk.Last)}});case rj.Home:if(e.shiftKey)break;return e.preventDefault(),e.stopPropagation(),u.goToOption(rk.First);case rj.PageUp:return e.preventDefault(),e.stopPropagation(),u.goToOption(rk.First);case rj.End:if(e.shiftKey)break;return e.preventDefault(),e.stopPropagation(),u.goToOption(rk.Last);case rj.PageDown:return e.preventDefault(),e.stopPropagation(),u.goToOption(rk.Last);case rj.Escape:return 0!==a.comboboxState?void 0:(e.preventDefault(),a.optionsElement&&!a.optionsPropsRef.current.static&&e.stopPropagation(),0===a.mode&&null===a.value&&E(),u.closeCombobox());case rj.Tab:if(0!==a.comboboxState)return;0===a.mode&&1!==a.activationTrigger&&u.selectActiveOption(),u.closeCombobox()}}),O=ew(e=>{null==m||m(e),0===a.mode&&""===e.target.value&&E(),u.openCombobox()}),j=ew(e=>{var t,n,r;let o=null!=(t=e.relatedTarget)?t:rE.find(t=>t!==e.currentTarget);if(!(null!=(n=a.optionsElement)&&n.contains(o))&&!(null!=(r=a.buttonElement)&&r.contains(o))&&0===a.comboboxState)return e.preventDefault(),0===a.mode&&null===a.value&&E(),u.closeCombobox()}),I=ew(e=>{var t,n,r;let o=null!=(t=e.relatedTarget)?t:rE.find(t=>t!==e.currentTarget);null!=(n=a.buttonElement)&&n.contains(o)||null!=(r=a.optionsElement)&&r.contains(o)||a.disabled||a.immediate&&0!==a.comboboxState&&w.microTask(()=>{(0,eU.flushSync)(()=>u.openCombobox()),u.setActivationTrigger(1)})}),M=rR(),R=rO(),{isFocused:P,focusProps:L}=eo({autoFocus:g}),{isHovered:N,hoverProps:A}=ec({isDisabled:h}),F=(0,s.useMemo)(()=>({open:0===a.comboboxState,disabled:h,hover:N,focus:P,autofocus:g}),[a,N,P,g,h]),D=eL({ref:y,id:f,role:"combobox",type:v,"aria-controls":null==(n=a.optionsElement)?void 0:n.id,"aria-expanded":0===a.comboboxState,"aria-activedescendant":null===a.activeOptionIndex?void 0:a.virtual?null==(r=a.options.find(e=>!e.dataRef.current.disabled&&a.compare(e.dataRef.current.value,a.virtual.options[a.activeOptionIndex])))?void 0:r.id:null==(o=a.options[a.activeOptionIndex])?void 0:o.id,"aria-labelledby":M,"aria-describedby":R,"aria-autocomplete":"list",defaultValue:null!=(l=null!=(i=e.defaultValue)?i:void 0!==a.defaultValue?null==p?void 0:p(a.defaultValue):null)?l:a.defaultValue,disabled:h||void 0,autoFocus:g,onCompositionStart:k,onCompositionEnd:S,onKeyDown:T,onChange:O,onFocus:I,onBlur:j},L,A);return eI()({ourProps:D,theirProps:b,slot:F,defaultTag:"input",name:"Combobox.Input"})}),r3=eN(function(e,t){var n,r,o;let i=(0,s.useId)(),{id:l="headlessui-combobox-options-".concat(i),hold:a=!1,anchor:u,portal:c=!1,modal:d=!0,transition:f=!1,...m}=e,p=r0("Combobox.Options"),h=rG("Combobox.Options"),g=re(u);g&&(c=!0);let[v,b]=ro(g),[x,y]=(0,s.useState)(null),_=rr(),w=tN(t,g?v:null,h.setOptionsElement,y),E=tj(p.optionsElement),C=r_(),[k,S]=tW(f,x,null!==C?(C&ry.Open)===ry.Open:0===p.comboboxState);tf(k,p.inputElement,h.closeCombobox),tP(!p.__demoMode&&d&&0===p.comboboxState,E),td(!p.__demoMode&&d&&0===p.comboboxState,{allowed:(0,s.useCallback)(()=>[p.inputElement,p.buttonElement,p.optionsElement],[p.inputElement,p.buttonElement,p.optionsElement])}),ey(()=>{var t;p.optionsPropsRef.current.static=null!=(t=e.static)&&t},[p.optionsPropsRef,e.static]),ey(()=>{p.optionsPropsRef.current.hold=a},[p.optionsPropsRef,a]),tB(0===p.comboboxState,{container:p.optionsElement,accept:e=>"option"===e.getAttribute("role")?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT,walk(e){e.setAttribute("role","none")}});let T=rR([null==(n=p.buttonElement)?void 0:n.id]),O=(0,s.useMemo)(()=>({open:0===p.comboboxState,option:void 0}),[p.comboboxState]),j=ew(()=>{h.setActivationTrigger(0)}),I=ew(e=>{e.preventDefault(),h.setActivationTrigger(0)}),M=eL(g?_():{},{"aria-labelledby":T,role:"listbox","aria-multiselectable":1===p.mode||void 0,id:l,ref:w,style:{...m.style,...b,"--input-width":tn(p.inputElement,!0).width,"--button-width":tn(p.buttonElement,!0).width},onWheel:0===p.activationTrigger?void 0:j,onMouseDown:I,...tz(S)}),R=k&&1===p.comboboxState,P=rg(R,null==(r=p.virtual)?void 0:r.options),L=rg(R,p.value),N=ew(e=>p.compare(L,e));if(p.virtual){if(void 0===P)throw Error("Missing `options` in virtual mode");Object.assign(m,{children:s.createElement(rJ.Provider,{value:P!==p.virtual.options?{...p,virtual:{...p.virtual,options:P}}:p},s.createElement(rX,{slot:O},m.children))})}let A=eI();return s.createElement(rB,{enabled:!!c&&(e.static||k)},s.createElement(rJ.Provider,{value:1===p.mode?p:{...p,isSelected:N}},A({ourProps:M,theirProps:{...m,children:s.createElement(rh,{freeze:R},"function"==typeof m.children?null==(o=m.children)?void 0:o.call(m,O):m.children)},slot:O,defaultTag:"div",features:r4,visible:k,name:"Combobox.Options"})))}),r9=eN(function(e,t){var n,r,o,i;let l=r0("Combobox.Option"),a=rG("Combobox.Option"),u=(0,s.useId)(),{id:c="headlessui-combobox-option-".concat(u),value:d,disabled:f=null!=(o=null==(r=null==(n=l.virtual)?void 0:n.disabled)?void 0:r.call(n,d))&&o,order:m=null,...p}=e,h=tI(l.inputElement),g=l.virtual?l.activeOptionIndex===l.calculateIndex(d):null!==l.activeOptionIndex&&(null==(i=l.options[l.activeOptionIndex])?void 0:i.id)===c,v=l.isSelected(d),b=(0,s.useRef)(null),x=e_({disabled:f,value:d,domRef:b,order:m}),y=(0,s.useContext)(rY),_=tN(t,b,y?y.measureElement:null),w=ew(()=>{a.setIsTyping(!1),a.onChange(d)});ey(()=>a.registerOption(c,x),[x,c]);let E=(0,s.useRef)(!(l.virtual||l.__demoMode));ey(()=>{if(!l.virtual&&!l.__demoMode)return eb().requestAnimationFrame(()=>{E.current=!0})},[l.virtual,l.__demoMode]),ey(()=>{if(E.current&&0===l.comboboxState&&g&&0!==l.activationTrigger)return eb().requestAnimationFrame(()=>{var e,t;null==(t=null==(e=b.current)?void 0:e.scrollIntoView)||t.call(e,{block:"nearest"})})},[b,g,l.comboboxState,l.activationTrigger,l.activeOptionIndex]);let C=ew(e=>{e.preventDefault(),e.button===rN.Left&&(f||(w(),tS()||requestAnimationFrame(()=>h()),0===l.mode&&a.closeCombobox()))}),k=ew(()=>{if(f)return a.goToOption(rk.Nothing);let e=l.calculateIndex(d);a.goToOption(rk.Specific,e)}),S=tF(),T=ew(e=>S.update(e)),O=ew(e=>{if(!S.wasMoved(e)||f||g)return;let t=l.calculateIndex(d);a.goToOption(rk.Specific,t,0)}),j=ew(e=>{S.wasMoved(e)&&(f||g&&(l.optionsPropsRef.current.hold||a.goToOption(rk.Nothing)))}),I=(0,s.useMemo)(()=>({active:g,focus:g,selected:v,disabled:f}),[g,v,f]);return eI()({ourProps:{id:c,ref:_,role:"option",tabIndex:!0===f?void 0:-1,"aria-disabled":!0===f||void 0,"aria-selected":v,disabled:void 0,onMouseDown:C,onFocus:k,onPointerEnter:T,onMouseEnter:T,onPointerMove:O,onMouseMove:O,onPointerLeave:j,onMouseLeave:j},theirProps:p,slot:I,defaultTag:"div",name:"Combobox.Option"})}),r8=Object.assign(r5,{Input:r7,Button:r6,Label:rL,Options:r3,Option:r9});function oe(){let[e,t]=(0,s.useState)(!1);return(0,s.useEffect)(()=>{t(!0)},[]),e}var ot=n(9470);function on(e,t){let n=(0,s.useRef)({left:0,top:0});if(ey(()=>{if(!t)return;let e=t.getBoundingClientRect();e&&(n.current=e)},[e,t]),null==t||!e||t===document.activeElement)return!1;let r=t.getBoundingClientRect();return r.top!==n.current.top||r.left!==n.current.left}let or=/([\u2700-\u27BF]|[\uE000-\uF8FF]|\uD83C[\uDC00-\uDFFF]|\uD83D[\uDC00-\uDFFF]|[\u2011-\u26FF]|\uD83E[\uDD10-\uDDFF])/g;function oo(e){var t,n;let r=null!=(t=e.innerText)?t:"",o=e.cloneNode(!0);if(!(o instanceof HTMLElement))return r;let i=!1;for(let e of o.querySelectorAll('[hidden],[aria-hidden],[role="img"]'))e.remove(),i=!0;let l=i?null!=(n=o.innerText)?n:"":r;return or.test(l)&&(l=l.replace(or,"")),l}function oi(e){let t=(0,s.useRef)(""),n=(0,s.useRef)("");return ew(()=>{let r=e.current;if(!r)return"";let o=r.innerText;if(t.current===o)return n.current;let i=(function(e){let t=e.getAttribute("aria-label");if("string"==typeof t)return t.trim();let n=e.getAttribute("aria-labelledby");if(n){let e=n.split(" ").map(e=>{let t=document.getElementById(e);if(t){let e=t.getAttribute("aria-label");return"string"==typeof e?e.trim():oo(t).trim()}return null}).filter(Boolean);if(e.length>0)return e.join(", ")}return oo(e).trim()})(r).trim().toLowerCase();return t.current=o,n.current=i,i})}var ol=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(ol||{}),oa=(e=>(e[e.Single=0]="Single",e[e.Multi=1]="Multi",e))(oa||{}),os=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(os||{}),ou=(e=>(e[e.OpenListbox=0]="OpenListbox",e[e.CloseListbox=1]="CloseListbox",e[e.GoToOption=2]="GoToOption",e[e.Search=3]="Search",e[e.ClearSearch=4]="ClearSearch",e[e.RegisterOption=5]="RegisterOption",e[e.UnregisterOption=6]="UnregisterOption",e[e.SetButtonElement=7]="SetButtonElement",e[e.SetOptionsElement=8]="SetOptionsElement",e))(ou||{});function oc(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,n=null!==e.activeOptionIndex?e.options[e.activeOptionIndex]:null,r=tE(t(e.options.slice()),e=>e.dataRef.current.domRef.current),o=n?r.indexOf(n):null;return -1===o&&(o=null),{options:r,activeOptionIndex:o}}let od={1:e=>e.dataRef.current.disabled||1===e.listboxState?e:{...e,activeOptionIndex:null,listboxState:1,__demoMode:!1},0(e){if(e.dataRef.current.disabled||0===e.listboxState)return e;let t=e.activeOptionIndex,{isSelected:n}=e.dataRef.current,r=e.options.findIndex(e=>n(e.dataRef.current.value));return -1!==r&&(t=r),{...e,listboxState:0,activeOptionIndex:t,__demoMode:!1}},2(e,t){var n,r,o,i,l;if(e.dataRef.current.disabled||1===e.listboxState)return e;let a={...e,searchQuery:"",activationTrigger:null!=(n=t.trigger)?n:1,__demoMode:!1};if(t.focus===rk.Nothing)return{...a,activeOptionIndex:null};if(t.focus===rk.Specific)return{...a,activeOptionIndex:e.options.findIndex(e=>e.id===t.id)};if(t.focus===rk.Previous){let n=e.activeOptionIndex;if(null!==n){let i=e.options[n].dataRef.current.domRef,l=rS(t,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(null!==l){let t=e.options[l].dataRef.current.domRef;if((null==(r=i.current)?void 0:r.previousElementSibling)===t.current||(null==(o=t.current)?void 0:o.previousElementSibling)===null)return{...a,activeOptionIndex:l}}}}else if(t.focus===rk.Next){let n=e.activeOptionIndex;if(null!==n){let r=e.options[n].dataRef.current.domRef,o=rS(t,{resolveItems:()=>e.options,resolveActiveIndex:()=>e.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(null!==o){let t=e.options[o].dataRef.current.domRef;if((null==(i=r.current)?void 0:i.nextElementSibling)===t.current||(null==(l=t.current)?void 0:l.nextElementSibling)===null)return{...a,activeOptionIndex:o}}}}let s=oc(e),u=rS(t,{resolveItems:()=>s.options,resolveActiveIndex:()=>s.activeOptionIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});return{...a,...s,activeOptionIndex:u}},3:(e,t)=>{if(e.dataRef.current.disabled||1===e.listboxState)return e;let n=""!==e.searchQuery?0:1,r=e.searchQuery+t.value.toLowerCase(),o=(null!==e.activeOptionIndex?e.options.slice(e.activeOptionIndex+n).concat(e.options.slice(0,e.activeOptionIndex+n)):e.options).find(e=>{var t;return!e.dataRef.current.disabled&&(null==(t=e.dataRef.current.textValue)?void 0:t.startsWith(r))}),i=o?e.options.indexOf(o):-1;return -1===i||i===e.activeOptionIndex?{...e,searchQuery:r}:{...e,searchQuery:r,activeOptionIndex:i,activationTrigger:1}},4:e=>e.dataRef.current.disabled||1===e.listboxState||""===e.searchQuery?e:{...e,searchQuery:""},5:(e,t)=>{let n={id:t.id,dataRef:t.dataRef},r=oc(e,e=>[...e,n]);return null===e.activeOptionIndex&&e.dataRef.current.isSelected(t.dataRef.current.value)&&(r.activeOptionIndex=r.options.indexOf(n)),{...e,...r}},6:(e,t)=>{let n=oc(e,e=>{let n=e.findIndex(e=>e.id===t.id);return -1!==n&&e.splice(n,1),e});return{...e,...n,activationTrigger:1}},7:(e,t)=>e.buttonElement===t.element?e:{...e,buttonElement:t.element},8:(e,t)=>e.optionsElement===t.element?e:{...e,optionsElement:t.element}},of=(0,s.createContext)(null);function om(e){let t=(0,s.useContext)(of);if(null===t){let t=Error("<".concat(e," /> is missing a parent component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,om),t}return t}of.displayName="ListboxActionsContext";let op=(0,s.createContext)(null);function oh(e){let t=(0,s.useContext)(op);if(null===t){let t=Error("<".concat(e," /> is missing a parent component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,oh),t}return t}function og(e,t){return eT(t.type,od,e,t)}op.displayName="ListboxDataContext";let ov=s.Fragment,ob=(0,s.createContext)(!1),ox=eO.RenderStrategy|eO.Static,oy=s.Fragment,o_=eN(function(e,t){var n;let r=ek(),{value:o,defaultValue:i,form:l,name:a,onChange:u,by:c,invalid:d=!1,disabled:f=r||!1,horizontal:m=!1,multiple:p=!1,__demoMode:h=!1,...g}=e,v=m?"horizontal":"vertical",b=tN(t),x=tt(i),[y=p?[]:void 0,_]=te(o,u,x),[w,E]=(0,s.useReducer)(og,{dataRef:(0,s.createRef)(),listboxState:h?0:1,options:[],searchQuery:"",activeOptionIndex:null,activationTrigger:1,optionsVisible:!1,buttonElement:null,optionsElement:null,__demoMode:h}),C=(0,s.useRef)({static:!1,hold:!1}),k=(0,s.useRef)(new Map),S=e8(c),T=(0,s.useCallback)(e=>eT(O.mode,{1:()=>y.some(t=>S(t,e)),0:()=>S(y,e)}),[y]),O=(0,s.useMemo)(()=>({...w,value:y,disabled:f,invalid:d,mode:p?1:0,orientation:v,compare:S,isSelected:T,optionsPropsRef:C,listRef:k}),[y,f,d,p,w,k]);ey(()=>{w.dataRef.current=O},[O]),tO(0===O.listboxState,[O.buttonElement,O.optionsElement],(e,t)=>{var n;E({type:1}),ty(t,tx.Loose)||(e.preventDefault(),null==(n=O.buttonElement)||n.focus())});let j=(0,s.useMemo)(()=>({open:0===O.listboxState,disabled:f,invalid:d,value:y}),[O,f,y,d]),I=ew(e=>{let t=O.options.find(t=>t.id===e);t&&F(t.dataRef.current.value)}),M=ew(()=>{if(null!==O.activeOptionIndex){let{dataRef:e,id:t}=O.options[O.activeOptionIndex];F(e.current.value),E({type:2,focus:rk.Specific,id:t})}}),R=ew(()=>E({type:0})),P=ew(()=>E({type:1})),L=ex(),N=ew((e,t,n)=>{L.dispose(),L.microTask(()=>e===rk.Specific?E({type:2,focus:rk.Specific,id:t,trigger:n}):E({type:2,focus:e,trigger:n}))}),A=ew((e,t)=>(E({type:5,id:e,dataRef:t}),()=>E({type:6,id:e}))),F=ew(e=>eT(O.mode,{0:()=>null==_?void 0:_(e),1(){let t=O.value.slice(),n=t.findIndex(t=>S(t,e));return -1===n?t.push(e):t.splice(n,1),null==_?void 0:_(t)}})),D=ew(e=>E({type:3,value:e})),H=ew(()=>E({type:4})),z=ew(e=>{E({type:7,element:e})}),W=ew(e=>{E({type:8,element:e})}),B=(0,s.useMemo)(()=>({onChange:F,registerOption:A,goToOption:N,closeListbox:P,openListbox:R,selectActiveOption:M,selectOption:I,search:D,clearSearch:H,setButtonElement:z,setOptionsElement:W}),[]),[Z,$]=rP({inherit:!0}),V=(0,s.useCallback)(()=>{if(void 0!==x)return null==_?void 0:_(x)},[_,x]),U=eI();return s.createElement($,{value:Z,props:{htmlFor:null==(n=O.buttonElement)?void 0:n.id},slot:{open:0===O.listboxState,disabled:f}},s.createElement(ri,null,s.createElement(of.Provider,{value:B},s.createElement(op.Provider,{value:O},s.createElement(rw,{value:eT(O.listboxState,{0:ry.Open,1:ry.Closed})},null!=a&&null!=y&&s.createElement(rm,{disabled:f,data:{[a]:y},form:l,onReset:V}),U({ourProps:{ref:b},theirProps:g,slot:j,defaultTag:ov,name:"Listbox"}))))))}),ow=eN(function(e,t){var n;let r=oh("Listbox.Button"),o=om("Listbox.Button"),i=(0,s.useId)(),l=rb(),{id:a=l||"headlessui-listbox-button-".concat(i),disabled:u=r.disabled||!1,autoFocus:c=!1,...d}=e,f=tN(t,rt(),o.setButtonElement),m=rn(),p=ew(e=>{switch(e.key){case rj.Enter:!function(e){var t,n;let r=null!=(t=null==e?void 0:e.form)?t:e.closest("form");if(r){for(let t of r.elements)if(t!==e&&("INPUT"===t.tagName&&"submit"===t.type||"BUTTON"===t.tagName&&"submit"===t.type||"INPUT"===t.nodeName&&"image"===t.type)){t.click();return}null==(n=r.requestSubmit)||n.call(r)}}(e.currentTarget);break;case rj.Space:case rj.ArrowDown:e.preventDefault(),(0,eU.flushSync)(()=>o.openListbox()),r.value||o.goToOption(rk.First);break;case rj.ArrowUp:e.preventDefault(),(0,eU.flushSync)(()=>o.openListbox()),r.value||o.goToOption(rk.Last)}}),h=ew(e=>{e.key===rj.Space&&e.preventDefault()}),g=ew(e=>{var t;if(rC(e.currentTarget))return e.preventDefault();0===r.listboxState?((0,eU.flushSync)(()=>o.closeListbox()),null==(t=r.buttonElement)||t.focus({preventScroll:!0})):(e.preventDefault(),o.openListbox())}),v=ew(e=>e.preventDefault()),b=rR([a]),x=rO(),{isFocusVisible:y,focusProps:_}=eo({autoFocus:c}),{isHovered:w,hoverProps:E}=ec({isDisabled:u}),{pressed:C,pressProps:k}=eE({disabled:u}),S=(0,s.useMemo)(()=>({open:0===r.listboxState,active:C||0===r.listboxState,disabled:u,invalid:r.invalid,value:r.value,hover:w,focus:y,autofocus:c}),[r.listboxState,r.value,u,w,y,C,r.invalid,c]),T=eL(m(),{ref:f,id:a,type:tM(e,r.buttonElement),"aria-haspopup":"listbox","aria-controls":null==(n=r.optionsElement)?void 0:n.id,"aria-expanded":0===r.listboxState,"aria-labelledby":b,"aria-describedby":x,disabled:u||void 0,autoFocus:c,onKeyDown:p,onKeyUp:h,onKeyPress:v,onClick:g},_,E,k);return eI()({ourProps:T,theirProps:d,slot:S,defaultTag:"button",name:"Listbox.Button"})}),oE=eN(function(e,t){var n,r;let o=(0,s.useId)(),{id:i="headlessui-listbox-options-".concat(o),anchor:l,portal:a=!1,modal:u=!0,transition:c=!1,...d}=e,f=re(l),[m,p]=(0,s.useState)(null);f&&(a=!0);let h=oh("Listbox.Options"),g=om("Listbox.Options"),v=tj(h.optionsElement),b=r_(),[x,y]=tW(c,m,null!==b?(b&ry.Open)===ry.Open:0===h.listboxState);tf(x,h.buttonElement,g.closeListbox),tP(!h.__demoMode&&u&&0===h.listboxState,v),td(!h.__demoMode&&u&&0===h.listboxState,{allowed:(0,s.useCallback)(()=>[h.buttonElement,h.optionsElement],[h.buttonElement,h.optionsElement])});let _=!on(0!==h.listboxState,h.buttonElement)&&x,w=rg(x&&1===h.listboxState,h.value),E=ew(e=>h.compare(w,e)),C=(0,s.useMemo)(()=>{var e;if(null==f||!(null!=(e=null==f?void 0:f.to)&&e.includes("selection")))return null;let t=h.options.findIndex(e=>E(e.dataRef.current.value));return -1===t&&(t=0),t},[f,h.options]),[k,S]=ro((()=>{if(null==f)return;if(null===C)return{...f,inner:void 0};let e=Array.from(h.listRef.current.values());return{...f,inner:{listRef:{current:e},index:C}}})()),T=rr(),O=tN(t,f?k:null,g.setOptionsElement,p),j=ex();(0,s.useEffect)(()=>{var e;let t=h.optionsElement;t&&0===h.listboxState&&t!==(null==(e=eg(t))?void 0:e.activeElement)&&(null==t||t.focus({preventScroll:!0}))},[h.listboxState,h.optionsElement]);let I=ew(e=>{var t,n;switch(j.dispose(),e.key){case rj.Space:if(""!==h.searchQuery)return e.preventDefault(),e.stopPropagation(),g.search(e.key);case rj.Enter:if(e.preventDefault(),e.stopPropagation(),null!==h.activeOptionIndex){let{dataRef:e}=h.options[h.activeOptionIndex];g.onChange(e.current.value)}0===h.mode&&((0,eU.flushSync)(()=>g.closeListbox()),null==(t=h.buttonElement)||t.focus({preventScroll:!0}));break;case eT(h.orientation,{vertical:rj.ArrowDown,horizontal:rj.ArrowRight}):return e.preventDefault(),e.stopPropagation(),g.goToOption(rk.Next);case eT(h.orientation,{vertical:rj.ArrowUp,horizontal:rj.ArrowLeft}):return e.preventDefault(),e.stopPropagation(),g.goToOption(rk.Previous);case rj.Home:case rj.PageUp:return e.preventDefault(),e.stopPropagation(),g.goToOption(rk.First);case rj.End:case rj.PageDown:return e.preventDefault(),e.stopPropagation(),g.goToOption(rk.Last);case rj.Escape:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>g.closeListbox()),null==(n=h.buttonElement)||n.focus({preventScroll:!0});return;case rj.Tab:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>g.closeListbox()),tC(h.buttonElement,e.shiftKey?th.Previous:th.Next);break;default:1===e.key.length&&(g.search(e.key),j.setTimeout(()=>g.clearSearch(),350))}}),M=null==(n=h.buttonElement)?void 0:n.id,R=(0,s.useMemo)(()=>({open:0===h.listboxState}),[h.listboxState]),P=eL(f?T():{},{id:i,ref:O,"aria-activedescendant":null===h.activeOptionIndex||null==(r=h.options[h.activeOptionIndex])?void 0:r.id,"aria-multiselectable":1===h.mode||void 0,"aria-labelledby":M,"aria-orientation":h.orientation,onKeyDown:I,role:"listbox",tabIndex:0===h.listboxState?0:void 0,style:{...d.style,...S,"--button-width":tn(h.buttonElement,!0).width},...tz(y)}),L=eI();return s.createElement(rB,{enabled:!!a&&(e.static||x)},s.createElement(op.Provider,{value:1===h.mode?h:{...h,isSelected:E}},L({ourProps:P,theirProps:d,slot:R,defaultTag:"div",features:ox,visible:_,name:"Listbox.Options"})))}),oC=eN(function(e,t){let n=(0,s.useId)(),{id:r="headlessui-listbox-option-".concat(n),disabled:o=!1,value:i,...l}=e,a=!0===(0,s.useContext)(ob),u=oh("Listbox.Option"),c=om("Listbox.Option"),d=null!==u.activeOptionIndex&&u.options[u.activeOptionIndex].id===r,f=u.isSelected(i),m=(0,s.useRef)(null),p=oi(m),h=e_({disabled:o,value:i,domRef:m,get textValue(){return p()}}),g=tN(t,m,e=>{e?u.listRef.current.set(r,e):u.listRef.current.delete(r)});ey(()=>{if(!u.__demoMode&&0===u.listboxState&&d&&0!==u.activationTrigger)return eb().requestAnimationFrame(()=>{var e,t;null==(t=null==(e=m.current)?void 0:e.scrollIntoView)||t.call(e,{block:"nearest"})})},[m,d,u.__demoMode,u.listboxState,u.activationTrigger,u.activeOptionIndex]),ey(()=>{if(!a)return c.registerOption(r,h)},[h,r,a]);let v=ew(e=>{var t;if(o)return e.preventDefault();c.onChange(i),0===u.mode&&((0,eU.flushSync)(()=>c.closeListbox()),null==(t=u.buttonElement)||t.focus({preventScroll:!0}))}),b=ew(()=>{if(o)return c.goToOption(rk.Nothing);c.goToOption(rk.Specific,r)}),x=tF(),y=ew(e=>{x.update(e),!o&&(d||c.goToOption(rk.Specific,r,0))}),_=ew(e=>{x.wasMoved(e)&&(o||d||c.goToOption(rk.Specific,r,0))}),w=ew(e=>{x.wasMoved(e)&&(o||d&&c.goToOption(rk.Nothing))}),E=(0,s.useMemo)(()=>({active:d,focus:d,selected:f,disabled:o,selectedOption:f&&a}),[d,f,o,a]),C=a?{}:{id:r,ref:g,role:"option",tabIndex:!0===o?void 0:-1,"aria-disabled":!0===o||void 0,"aria-selected":f,disabled:void 0,onClick:v,onFocus:b,onPointerEnter:y,onMouseEnter:y,onPointerMove:_,onMouseMove:_,onPointerLeave:w,onMouseLeave:w},k=eI();return!f&&a?null:k({ourProps:C,theirProps:l,slot:E,defaultTag:"div",name:"Listbox.Option"})}),ok=Object.assign(o_,{Button:ow,Label:rL,Options:oE,Option:oC,SelectedOption:eN(function(e,t){let{options:n,placeholder:r,...o}=e,i={ref:tN(t)},l=oh("ListboxSelectedOption"),a=(0,s.useMemo)(()=>({}),[]),u=void 0===l.value||null===l.value||1===l.mode&&Array.isArray(l.value)&&0===l.value.length,c=eI();return s.createElement(ob.Provider,{value:!0},c({ourProps:i,theirProps:{...o,children:s.createElement(s.Fragment,null,r&&u?r:n)},slot:a,defaultTag:oy,name:"ListboxSelectedOption"}))})});var oS=n(9008),oT=n.n(oS),oO=(e=>(e[e.Open=0]="Open",e[e.Closed=1]="Closed",e))(oO||{}),oj=(e=>(e[e.Pointer=0]="Pointer",e[e.Other=1]="Other",e))(oj||{}),oI=(e=>(e[e.OpenMenu=0]="OpenMenu",e[e.CloseMenu=1]="CloseMenu",e[e.GoToItem=2]="GoToItem",e[e.Search=3]="Search",e[e.ClearSearch=4]="ClearSearch",e[e.RegisterItem=5]="RegisterItem",e[e.UnregisterItem=6]="UnregisterItem",e[e.SetButtonElement=7]="SetButtonElement",e[e.SetItemsElement=8]="SetItemsElement",e))(oI||{});function oM(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:e=>e,n=null!==e.activeItemIndex?e.items[e.activeItemIndex]:null,r=tE(t(e.items.slice()),e=>e.dataRef.current.domRef.current),o=n?r.indexOf(n):null;return -1===o&&(o=null),{items:r,activeItemIndex:o}}let oR={1:e=>1===e.menuState?e:{...e,activeItemIndex:null,menuState:1},0:e=>0===e.menuState?e:{...e,__demoMode:!1,menuState:0},2:(e,t)=>{var n,r,o,i,l;if(1===e.menuState)return e;let a={...e,searchQuery:"",activationTrigger:null!=(n=t.trigger)?n:1,__demoMode:!1};if(t.focus===rk.Nothing)return{...a,activeItemIndex:null};if(t.focus===rk.Specific)return{...a,activeItemIndex:e.items.findIndex(e=>e.id===t.id)};if(t.focus===rk.Previous){let n=e.activeItemIndex;if(null!==n){let i=e.items[n].dataRef.current.domRef,l=rS(t,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(null!==l){let t=e.items[l].dataRef.current.domRef;if((null==(r=i.current)?void 0:r.previousElementSibling)===t.current||(null==(o=t.current)?void 0:o.previousElementSibling)===null)return{...a,activeItemIndex:l}}}}else if(t.focus===rk.Next){let n=e.activeItemIndex;if(null!==n){let r=e.items[n].dataRef.current.domRef,o=rS(t,{resolveItems:()=>e.items,resolveActiveIndex:()=>e.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});if(null!==o){let t=e.items[o].dataRef.current.domRef;if((null==(i=r.current)?void 0:i.nextElementSibling)===t.current||(null==(l=t.current)?void 0:l.nextElementSibling)===null)return{...a,activeItemIndex:o}}}}let s=oM(e),u=rS(t,{resolveItems:()=>s.items,resolveActiveIndex:()=>s.activeItemIndex,resolveId:e=>e.id,resolveDisabled:e=>e.dataRef.current.disabled});return{...a,...s,activeItemIndex:u}},3:(e,t)=>{let n=""!==e.searchQuery?0:1,r=e.searchQuery+t.value.toLowerCase(),o=(null!==e.activeItemIndex?e.items.slice(e.activeItemIndex+n).concat(e.items.slice(0,e.activeItemIndex+n)):e.items).find(e=>{var t;return(null==(t=e.dataRef.current.textValue)?void 0:t.startsWith(r))&&!e.dataRef.current.disabled}),i=o?e.items.indexOf(o):-1;return -1===i||i===e.activeItemIndex?{...e,searchQuery:r}:{...e,searchQuery:r,activeItemIndex:i,activationTrigger:1}},4:e=>""===e.searchQuery?e:{...e,searchQuery:"",searchActiveItemIndex:null},5:(e,t)=>{let n=oM(e,e=>[...e,{id:t.id,dataRef:t.dataRef}]);return{...e,...n}},6:(e,t)=>{let n=oM(e,e=>{let n=e.findIndex(e=>e.id===t.id);return -1!==n&&e.splice(n,1),e});return{...e,...n,activationTrigger:1}},7:(e,t)=>e.buttonElement===t.element?e:{...e,buttonElement:t.element},8:(e,t)=>e.itemsElement===t.element?e:{...e,itemsElement:t.element}},oP=(0,s.createContext)(null);function oL(e){let t=(0,s.useContext)(oP);if(null===t){let t=Error("<".concat(e," /> is missing a parent component."));throw Error.captureStackTrace&&Error.captureStackTrace(t,oL),t}return t}function oN(e,t){return eT(t.type,oR,e,t)}oP.displayName="MenuContext";let oA=s.Fragment,oF=eO.RenderStrategy|eO.Static,oD=s.Fragment,oH=eN(function(e,t){let{__demoMode:n=!1,...r}=e,o=(0,s.useReducer)(oN,{__demoMode:n,menuState:n?0:1,buttonElement:null,itemsElement:null,items:[],searchQuery:"",activeItemIndex:null,activationTrigger:1}),[{menuState:i,itemsElement:l,buttonElement:a},u]=o,c=tN(t);tO(0===i,[a,l],(e,t)=>{u({type:1}),ty(t,tx.Loose)||(e.preventDefault(),null==a||a.focus())});let d=ew(()=>{u({type:1})}),f=(0,s.useMemo)(()=>({open:0===i,close:d}),[i,d]),m=eI();return s.createElement(ri,null,s.createElement(oP.Provider,{value:o},s.createElement(rw,{value:eT(i,{0:ry.Open,1:ry.Closed})},m({ourProps:{ref:c},theirProps:r,slot:f,defaultTag:oA,name:"Menu"}))))}),oz=eN(function(e,t){var n;let r=(0,s.useId)(),{id:o="headlessui-menu-button-".concat(r),disabled:i=!1,autoFocus:l=!1,...a}=e,[u,c]=oL("Menu.Button"),d=rn(),f=tN(t,rt(),ew(e=>c({type:7,element:e}))),m=ew(e=>{switch(e.key){case rj.Space:case rj.Enter:case rj.ArrowDown:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>c({type:0})),c({type:2,focus:rk.First});break;case rj.ArrowUp:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>c({type:0})),c({type:2,focus:rk.Last})}}),p=ew(e=>{e.key===rj.Space&&e.preventDefault()}),h=ew(e=>{var t;if(rC(e.currentTarget))return e.preventDefault();i||(0===u.menuState?((0,eU.flushSync)(()=>c({type:1})),null==(t=u.buttonElement)||t.focus({preventScroll:!0})):(e.preventDefault(),c({type:0})))}),{isFocusVisible:g,focusProps:v}=eo({autoFocus:l}),{isHovered:b,hoverProps:x}=ec({isDisabled:i}),{pressed:y,pressProps:_}=eE({disabled:i}),w=(0,s.useMemo)(()=>({open:0===u.menuState,active:y||0===u.menuState,disabled:i,hover:b,focus:g,autofocus:l}),[u,b,g,y,i,l]),E=eL(d(),{ref:f,id:o,type:tM(e,u.buttonElement),"aria-haspopup":"menu","aria-controls":null==(n=u.itemsElement)?void 0:n.id,"aria-expanded":0===u.menuState,disabled:i||void 0,autoFocus:l,onKeyDown:m,onKeyUp:p,onClick:h},v,x,_);return eI()({ourProps:E,theirProps:a,slot:w,defaultTag:"button",name:"Menu.Button"})}),oW=eN(function(e,t){var n,r;let o=(0,s.useId)(),{id:i="headlessui-menu-items-".concat(o),anchor:l,portal:a=!1,modal:u=!0,transition:c=!1,...d}=e,f=re(l),[m,p]=oL("Menu.Items"),[h,g]=ro(f),v=rr(),[b,x]=(0,s.useState)(null),y=tN(t,f?h:null,ew(e=>p({type:8,element:e})),x),_=tj(m.itemsElement);f&&(a=!0);let w=r_(),[E,C]=tW(c,b,null!==w?(w&ry.Open)===ry.Open:0===m.menuState);tf(E,m.buttonElement,()=>{p({type:1})}),tP(!m.__demoMode&&u&&0===m.menuState,_),td(!m.__demoMode&&u&&0===m.menuState,{allowed:(0,s.useCallback)(()=>[m.buttonElement,m.itemsElement],[m.buttonElement,m.itemsElement])});let k=!on(0!==m.menuState,m.buttonElement)&&E;(0,s.useEffect)(()=>{let e=m.itemsElement;e&&0===m.menuState&&e!==(null==_?void 0:_.activeElement)&&e.focus({preventScroll:!0})},[m.menuState,m.itemsElement,_]),tB(0===m.menuState,{container:m.itemsElement,accept:e=>"menuitem"===e.getAttribute("role")?NodeFilter.FILTER_REJECT:e.hasAttribute("role")?NodeFilter.FILTER_SKIP:NodeFilter.FILTER_ACCEPT,walk(e){e.setAttribute("role","none")}});let S=ex(),T=ew(e=>{var t,n,r;switch(S.dispose(),e.key){case rj.Space:if(""!==m.searchQuery)return e.preventDefault(),e.stopPropagation(),p({type:3,value:e.key});case rj.Enter:if(e.preventDefault(),e.stopPropagation(),p({type:1}),null!==m.activeItemIndex){let{dataRef:e}=m.items[m.activeItemIndex];null==(n=null==(t=e.current)?void 0:t.domRef.current)||n.click()}t_(m.buttonElement);break;case rj.ArrowDown:return e.preventDefault(),e.stopPropagation(),p({type:2,focus:rk.Next});case rj.ArrowUp:return e.preventDefault(),e.stopPropagation(),p({type:2,focus:rk.Previous});case rj.Home:case rj.PageUp:return e.preventDefault(),e.stopPropagation(),p({type:2,focus:rk.First});case rj.End:case rj.PageDown:return e.preventDefault(),e.stopPropagation(),p({type:2,focus:rk.Last});case rj.Escape:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>p({type:1})),null==(r=m.buttonElement)||r.focus({preventScroll:!0});break;case rj.Tab:e.preventDefault(),e.stopPropagation(),(0,eU.flushSync)(()=>p({type:1})),tC(m.buttonElement,e.shiftKey?th.Previous:th.Next);break;default:1===e.key.length&&(p({type:3,value:e.key}),S.setTimeout(()=>p({type:4}),350))}}),O=ew(e=>{e.key===rj.Space&&e.preventDefault()}),j=(0,s.useMemo)(()=>({open:0===m.menuState}),[m.menuState]),I=eL(f?v():{},{"aria-activedescendant":null===m.activeItemIndex||null==(n=m.items[m.activeItemIndex])?void 0:n.id,"aria-labelledby":null==(r=m.buttonElement)?void 0:r.id,id:i,onKeyDown:T,onKeyUp:O,role:"menu",tabIndex:0===m.menuState?0:void 0,ref:y,style:{...d.style,...g,"--button-width":tn(m.buttonElement,!0).width},...tz(C)}),M=eI();return s.createElement(rB,{enabled:!!a&&(e.static||E)},M({ourProps:I,theirProps:d,slot:j,defaultTag:"div",features:oF,visible:k,name:"Menu.Items"}))}),oB=eN(function(e,t){let n=(0,s.useId)(),{id:r="headlessui-menu-item-".concat(n),disabled:o=!1,...i}=e,[l,a]=oL("Menu.Item"),u=null!==l.activeItemIndex&&l.items[l.activeItemIndex].id===r,c=(0,s.useRef)(null),d=tN(t,c);ey(()=>{if(!l.__demoMode&&0===l.menuState&&u&&0!==l.activationTrigger)return eb().requestAnimationFrame(()=>{var e,t;null==(t=null==(e=c.current)?void 0:e.scrollIntoView)||t.call(e,{block:"nearest"})})},[l.__demoMode,c,u,l.menuState,l.activationTrigger,l.activeItemIndex]);let f=oi(c),m=(0,s.useRef)({disabled:o,domRef:c,get textValue(){return f()}});ey(()=>{m.current.disabled=o},[m,o]),ey(()=>(a({type:5,id:r,dataRef:m}),()=>a({type:6,id:r})),[m,r]);let p=ew(()=>{a({type:1})}),h=ew(e=>{if(o)return e.preventDefault();a({type:1}),t_(l.buttonElement)}),g=ew(()=>{if(o)return a({type:2,focus:rk.Nothing});a({type:2,focus:rk.Specific,id:r})}),v=tF(),b=ew(e=>{v.update(e),!o&&(u||a({type:2,focus:rk.Specific,id:r,trigger:0}))}),x=ew(e=>{v.wasMoved(e)&&(o||u||a({type:2,focus:rk.Specific,id:r,trigger:0}))}),y=ew(e=>{v.wasMoved(e)&&(o||u&&a({type:2,focus:rk.Nothing}))}),[_,w]=rP(),[E,C]=function(){let[e,t]=(0,s.useState)([]);return[e.length>0?e.join(" "):void 0,(0,s.useMemo)(()=>function(e){let n=ew(e=>(t(t=>[...t,e]),()=>t(t=>{let n=t.slice(),r=n.indexOf(e);return -1!==r&&n.splice(r,1),n}))),r=(0,s.useMemo)(()=>({register:n,slot:e.slot,name:e.name,props:e.props,value:e.value}),[n,e.slot,e.name,e.props,e.value]);return s.createElement(rT.Provider,{value:r},e.children)},[t])]}(),k=(0,s.useMemo)(()=>({active:u,focus:u,disabled:o,close:p}),[u,o,p]),S=eI();return s.createElement(w,null,s.createElement(C,null,S({ourProps:{id:r,ref:d,role:"menuitem",tabIndex:!0===o?void 0:-1,"aria-disabled":!0===o||void 0,"aria-labelledby":_,"aria-describedby":E,disabled:void 0,onClick:h,onFocus:g,onPointerEnter:b,onMouseEnter:b,onPointerMove:x,onMouseMove:x,onPointerLeave:y,onMouseLeave:y},theirProps:i,slot:k,defaultTag:oD,name:"Menu.Item"})))}),oZ=Object.assign(oH,{Button:oz,Items:oW,Item:oB,Section:eN(function(e,t){let[n,r]=rP(),o=eI();return s.createElement(r,null,o({ourProps:{ref:t,"aria-labelledby":n,role:"group"},theirProps:e,slot:{},defaultTag:"div",name:"Menu.Section"}))}),Heading:eN(function(e,t){let n=(0,s.useId)(),{id:r="headlessui-menu-heading-".concat(n),...o}=e,i=rM();ey(()=>i.register(r),[r,i.register]);let l={id:r,ref:t,role:"presentation",...i.props};return eI()({ourProps:l,theirProps:o,slot:{},defaultTag:"header",name:"Menu.Heading"})}),Separator:eN(function(e,t){return eI()({ourProps:{ref:t,role:"separator"},theirProps:e,slot:{},defaultTag:"div",name:"Menu.Separator"})})}),o$=e=>"object"==typeof e&&null!=e&&1===e.nodeType,oV=(e,t)=>(!t||"hidden"!==e)&&"visible"!==e&&"clip"!==e,oU=(e,t)=>{if(e.clientHeight{let t=(e=>{if(!e.ownerDocument||!e.ownerDocument.defaultView)return null;try{return e.ownerDocument.defaultView.frameElement}catch(e){return null}})(e);return!!t&&(t.clientHeightit||i>e&&l=t&&a>=n?i-e-r:l>t&&an?l-t+o:0,oq=e=>{let t=e.parentElement;return null==t?e.getRootNode().host||null:t},oQ=(e,t)=>{var n,r,o,i;if("undefined"==typeof document)return[];let{scrollMode:l,block:a,inline:s,boundary:u,skipOverflowHiddenElements:c}=t,d="function"==typeof u?u:e=>e!==u;if(!o$(e))throw TypeError("Invalid target");let f=document.scrollingElement||document.documentElement,m=[],p=e;for(;o$(p)&&d(p);){if((p=oq(p))===f){m.push(p);break}null!=p&&p===document.body&&oU(p)&&!oU(document.documentElement)||null!=p&&oU(p,c)&&m.push(p)}let h=null!=(r=null==(n=window.visualViewport)?void 0:n.width)?r:innerWidth,g=null!=(i=null==(o=window.visualViewport)?void 0:o.height)?i:innerHeight,{scrollX:v,scrollY:b}=window,{height:x,width:y,top:_,right:w,bottom:E,left:C}=e.getBoundingClientRect(),{top:k,right:S,bottom:T,left:O}=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e),j="start"===a||"nearest"===a?_-k:"end"===a?E+T:_+x/2-k+T,I="center"===s?C+y/2-O+S:"end"===s?w+S:C-O,M=[];for(let e=0;e=0&&C>=0&&E<=g&&w<=h&&_>=o&&E<=u&&C>=c&&w<=i)break;let d=getComputedStyle(t),p=parseInt(d.borderLeftWidth,10),k=parseInt(d.borderTopWidth,10),S=parseInt(d.borderRightWidth,10),T=parseInt(d.borderBottomWidth,10),O=0,R=0,P="offsetWidth"in t?t.offsetWidth-t.clientWidth-p-S:0,L="offsetHeight"in t?t.offsetHeight-t.clientHeight-k-T:0,N="offsetWidth"in t?0===t.offsetWidth?0:r/t.offsetWidth:0,A="offsetHeight"in t?0===t.offsetHeight?0:n/t.offsetHeight:0;if(f===t)O="start"===a?j:"end"===a?j-g:"nearest"===a?oK(b,b+g,g,k,T,b+j,b+j+x,x):j-g/2,R="start"===s?I:"center"===s?I-h/2:"end"===s?I-h:oK(v,v+h,h,p,S,v+I,v+I+y,y),O=Math.max(0,O+b),R=Math.max(0,R+v);else{O="start"===a?j-o-k:"end"===a?j-u+T+L:"nearest"===a?oK(o,u,n,k,T+L,j,j+x,x):j-(o+n/2)+L/2,R="start"===s?I-c-p:"center"===s?I-(c+r/2)+P/2:"end"===s?I-i+S+P:oK(c,i,r,p,S+P,I,I+y,y);let{scrollLeft:e,scrollTop:l}=t;O=0===A?0:Math.max(0,Math.min(l+O/A,t.scrollHeight-n/A+L)),R=0===N?0:Math.max(0,Math.min(e+R/N,t.scrollWidth-r/N+P)),j+=l-O,I+=e-R}M.push({el:t,top:O,left:R})}return M},oG=e=>!1===e?{block:"end",inline:"nearest"}:(e=>e===Object(e)&&0!==Object.keys(e).length)(e)?e:{block:"start",inline:"nearest"};function oY(e,t){if(!e.isConnected||!(e=>{let t=e;for(;t&&t.parentNode;){if(t.parentNode===document)return!0;t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentNode}return!1})(e))return;let n=(e=>{let t=window.getComputedStyle(e);return{top:parseFloat(t.scrollMarginTop)||0,right:parseFloat(t.scrollMarginRight)||0,bottom:parseFloat(t.scrollMarginBottom)||0,left:parseFloat(t.scrollMarginLeft)||0}})(e);if("object"==typeof t&&"function"==typeof t.behavior)return t.behavior(oQ(e,t));let r="boolean"==typeof t||null==t?void 0:t.behavior;for(let{el:o,top:i,left:l}of oQ(e,oG(t))){let e=i-n.top+n.bottom,t=l-n.left+n.right;o.scroll({top:e,left:t,behavior:r})}}let oX=({className:e,...t})=>(0,a.jsx)("table",{className:(0,k.Z)("_not-prose","_block _overflow-x-auto",e),...t});function oJ({getValue:e,...t}){let[n,r]=(0,s.useState)(!1);(0,s.useEffect)(()=>{if(!n)return;let e=setTimeout(()=>{r(!1)},2e3);return()=>{clearTimeout(e)}},[n]);let o=(0,s.useCallback)(async()=>{r(!0),navigator?.clipboard||console.error("Access to clipboard rejected!");try{await navigator.clipboard.writeText(e())}catch{console.error("Failed to copy!")}},[e]),i=n?eW.nQ:eW.TI;return(0,a.jsx)(ez,{onClick:o,title:"Copy code",variant:"outline",...t,children:(0,a.jsx)(i,{height:"16",className:"nextra-copy-icon"})})}function o0(){let e=document.documentElement.dataset;"nextraWordWrap"in e?delete e.nextraWordWrap:e.nextraWordWrap=""}var o1=Object.defineProperty,o2=Object.defineProperties,o4=Object.getOwnPropertyDescriptors,o5=Object.getOwnPropertySymbols,o6=Object.prototype.hasOwnProperty,o7=Object.prototype.propertyIsEnumerable,o3=(e,t,n)=>t in e?o1(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,o9=(e,t)=>{for(var n in t||(t={}))o6.call(t,n)&&o3(e,n,t[n]);if(o5)for(var n of o5(t))o7.call(t,n)&&o3(e,n,t[n]);return e},o8=(e,t)=>o2(e,o4(t)),ie=(e,t)=>{var n={};for(var r in e)o6.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&o5)for(var r of o5(e))0>t.indexOf(r)&&o7.call(e,r)&&(n[r]=e[r]);return n},it=(e,t,n)=>new Promise((r,o)=>{var i=e=>{try{a(n.next(e))}catch(e){o(e)}},l=e=>{try{a(n.throw(e))}catch(e){o(e)}},a=e=>e.done?r(e.value):Promise.resolve(e.value).then(i,l);a((n=n.apply(e,t)).next())}),ir=(0,s.forwardRef)((e,t)=>{var{href:n="",children:r,newWindow:o}=e,i=ie(e,["href","children","newWindow"]);let l=o||n.startsWith("#")?"a":T();return(0,a.jsx)(l,o8(o9(o8(o9({},i),{className:(0,k.Z)("nextra-focus",i.className),ref:t,href:n}),o&&{target:"_blank",rel:"noreferrer"}),{children:r}))});ir.displayName="Anchor";var io=(0,s.createContext)(null);io.displayName="ActiveAnchor";var ii=(0,s.createContext)(null);ii.displayName="SetActiveAnchor";var il=(0,s.createContext)(null);il.displayName="IntersectionObserver";var ia=new WeakMap,is=(0,s.createContext)(ia);is.displayName="Slugs";var iu=()=>(0,s.useContext)(io),ic=()=>(0,s.useContext)(ii),id=()=>(0,s.useContext)(il),im=()=>(0,s.useContext)(is),ip=({children:e})=>{let[t,n]=(0,s.useState)({}),r=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let e=getComputedStyle(document.body).getPropertyValue("--nextra-navbar-height");return r.current=new IntersectionObserver(e=>{n(t=>{let n=o9({},t);for(let t of e)if((null==t?void 0:t.rootBounds)&&ia.has(t.target)){let[e,r]=ia.get(t.target),o=t.boundingClientRect.y+t.boundingClientRect.height<=t.rootBounds.y+t.rootBounds.height,i=t.intersectionRatio>0;n[e]={index:r,aboveHalfViewport:o,insideHalfViewport:i}}let r="",o=1/0,i=-1;for(let e in n)n[e].isActive=!1,n[e].insideHalfViewport&&n[e].indexi&&(i=n[e].index,r=e);return n[r]&&(n[r].isActive=!0),n})},{rootMargin:`-${e} 0px -50%`,threshold:[0,1]}),()=>{r.current.disconnect()}},[]),(0,a.jsx)(io.Provider,{value:t,children:(0,a.jsx)(ii.Provider,{value:n,children:(0,a.jsx)(is.Provider,{value:ia,children:(0,a.jsx)(il.Provider,{value:r.current,children:e})})})})},ih=(0,s.createContext)({menu:!1,setMenu:()=>!1});ih.displayName="Menu";var ig=()=>(0,s.useContext)(ih),iv=ih.Provider,ib=(0,s.createContext)({title:"",frontMatter:{},filePath:"",hideSidebar:!1,normalizePagesResult:{}});function ix(){return(0,s.useContext)(ib)}function iy({children:e,value:t}){let[n,r]=(0,s.useState)(!1),{asPath:o}=(0,eB.useRouter)(),i=e$(),l=(0,s.useMemo)(()=>(function e({list:t,route:n,docsRoot:r="",underCurrentDocsRoot:o=!1,pageThemeContext:i=eV}){let l={},a=[],s=[];for(let[e,n]of t.entries()){if("data"in n){for(let e of a=Object.keys(l=n.data).filter(e=>"*"!==e))"string"==typeof l[e]&&(l[e]={title:l[e]});continue}let r=t[e-1];if(r&&r.name===n.name){s[s.length-1]={...r,withIndexPage:!0,frontMatter:n.frontMatter};continue}s.push(n)}for(let[e,t]of(s.sort((e,t)=>{let n=a.indexOf(e.name),r=a.indexOf(t.name);return -1===n&&-1===r?e.namee.name===t);if("menu"===n.type&&r&&(r.items=n.items,"undefined"==typeof window)){let{children:e}=s.find(e=>e.name===t);for(let[n,o]of Object.entries(r.items))if(!o.href&&e.every(e=>e.name!==n))throw Error(`Validation of "_meta" file has failed.
+The field key "${t}.items.${n}" in \`_meta\` file refers to a page that cannot be found, remove this key from "_meta" file.`)}if(r)continue;if("undefined"==typeof window&&!("separator"===n.type||"menu"===n.type||n.href))throw Error(`Validation of "_meta" file has failed.
+The field key "${t}" in \`_meta\` file refers to a page that cannot be found, remove this key from "_meta" file.`);let o=s[e];o&&o.name===t||s.splice(e,0,{name:t,...l[t]})}let u=[],c=[],d=[],f=[],m=[],{title:p,href:h,...g}=l["*"]||{},v=g.type,b=0,x={...i,...g.theme},y=[];for(let t of s){let a=function(e={},t,n={}){let r={...t.theme,...e.theme,...n.theme};return{...t,...e,display:n.display||e.display||t.display,theme:r}}(l[t.name],g,t.frontMatter),{display:s,type:p="doc"}=a,h={...i,...a.theme},_=n.startsWith(r),w=t.children&&e({list:t.children,route:n,docsRoot:"page"===p||"menu"===p?t.route:r,underCurrentDocsRoot:o||_,pageThemeContext:h}),E=a.title||"separator"!==p&&(t.frontMatter?.sidebarTitle||t.frontMatter?.title||t.name),C=()=>({...t,type:p,...E&&{title:E},...s&&{display:s},...w&&{children:[]}}),k=C(),S=C(),T=C();if(S.isUnderCurrentDocsTree=_,"separator"===p&&(k.isUnderCurrentDocsTree=_),t.route===n)switch(y=[k],v=p,x={...x,...h},p){case"page":case"menu":b=m.length;break;case"doc":b=f.length}if(eZ.hV.has(t.route))continue;let O="hidden"===s;if(w){if(void 0!==w.activeIndex&&void 0!==w.activeType){if(x=w.activeThemeContext,v=w.activeType,O)continue;switch(y=[k,...w.activePath.filter(e=>"children"!==e.display)],v){case"page":case"menu":b=m.length+w.activeIndex;break;case"doc":b=f.length+w.activeIndex}t.withIndexPage&&"doc"===p&&b++}switch(p){case"page":case"menu":if(T.children.push(...w.directories),d.push(...w.docsDirectories),w.flatDirectories.length){let e=function e(t){for(let n of t){if(n.route)return n.route;if(n.children){let t=e(n.children);if(t)return t}}}(w.flatDirectories);e&&(T.firstChildRoute=e),m.push(T)}else T.withIndexPage&&m.push(T);break;case"doc":S.children.push(...w.docsDirectories),k.withIndexPage&&"children"!==s&&f.push(S)}c.push(...w.flatDirectories),f.push(...w.flatDocsDirectories),k.children.push(...w.directories)}else{if(O)continue;switch(c.push(k),p){case"page":case"menu":m.push(T);break;case"doc":"href"in k||f.push(S)}}if(!O)switch("doc"===p&&"children"===s?S.children&&(u.push(...S.children),d.push(...S.children)):u.push(k),p){case"page":case"menu":d.push(T);break;case"doc":"children"!==s&&d.push(S);break;case"separator":d.push(k)}}return{activeType:v,activeIndex:b,activeThemeContext:x,activePath:y,directories:u,flatDirectories:c,docsDirectories:d,flatDocsDirectories:f,topLevelNavbarItems:m}})({list:t.pageMap,route:i}),[t.pageMap,i]),{activeType:u,activeThemeContext:c}=l,d={title:t.title,frontMatter:t.frontMatter,filePath:t.filePath,timestamp:t.timestamp,hideSidebar:!c.sidebar||"raw"===c.layout||"page"===u,normalizePagesResult:l};(0,s.useEffect)(()=>{r(!1)},[o]),(0,s.useEffect)(()=>{document.body.classList.toggle("max-md:_overflow-hidden",n)},[n]),(0,s.useEffect)(()=>{let e;function t(){document.body.classList.add("resizing"),clearTimeout(e),e=window.setTimeout(()=>{document.body.classList.remove("resizing")},200)}return window.addEventListener("resize",t),()=>{window.removeEventListener("resize",t)}},[]);let f=(0,s.useMemo)(()=>({menu:n,setMenu:r}),[n]);return(0,a.jsx)(ib.Provider,{value:d,children:(0,a.jsx)(iv,{value:f,children:e})})}function i_(e){let{href:t,origin:n,pathname:r}=new URL(e),[,o,i]=r.split("/");return{href:t,origin:n,owner:o,name:i}}function iw(e,t){return e?"function"!=typeof e?e:(0,a.jsx)(e,o9({},t)):null}function iE(e,t={}){return("function"==typeof e?e(t):e)||""}ib.displayName="Config";var iC="en-US",ik={backgroundColor:{dark:"17,17,17",light:"250,250,250"},banner:{dismissible:!0,key:"nextra-banner"},chat:{icon:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eW.D7,{}),(0,a.jsx)("span",{className:"_sr-only",children:"Discord"})]})},color:{hue:{dark:204,light:212},saturation:100},darkMode:!0,direction:"ltr",docsRepositoryBase:"https://github.com/shuding/nextra",editLink:{component:function({className:e,filePath:t,children:n}){let r=function(e=""){let t=i_(iO().docsRepositoryBase||"");if(!t)throw Error("Invalid `docsRepositoryBase` URL!");return`${t.href}/${e}`}(t);return r?(0,a.jsx)(ir,{className:e,href:r,children:n}):null},content:"Edit this page"},feedback:{content:"Question? Give us feedback →",labels:"feedback",useLink(){let e=ix(),t=iO();return function({repository:e="",title:t,labels:n}){let r=i_(e);if(!r)throw Error("Invalid `docsRepositoryBase` URL!");return r.origin.includes("gitlab")?`${r.origin}/${r.owner}/${r.name}/-/issues/new?issue[title]=${encodeURIComponent(t)}${n?`&issue[description]=/label${encodeURIComponent(` ~${n}
+`)}`:""}`:r.origin.includes("github")?`${r.origin}/${r.owner}/${r.name}/issues/new?title=${encodeURIComponent(t)}&labels=${n||""}`:"#"}({labels:t.feedback.labels,repository:t.docsRepositoryBase,title:`Feedback for \u201C${e.title}\u201D`})}},footer:{component:function({menu:e}){let t=iO();return(0,a.jsxs)("footer",{className:"_bg-gray-100 _pb-[env(safe-area-inset-bottom)] dark:_bg-neutral-900 print:_bg-transparent",children:[(0,a.jsxs)("div",{className:(0,k.Z)("_mx-auto _flex _max-w-[90rem] _gap-2 _py-2 _px-4",e&&(t.i18n.length>0||t.darkMode)?"_flex":"_hidden"),children:[(0,a.jsx)(iW,{}),t.darkMode&&iw(t.themeSwitch.component)]}),(0,a.jsx)("hr",{className:"dark:_border-neutral-800"}),(0,a.jsx)("div",{className:(0,k.Z)("_mx-auto _flex _max-w-[90rem] _justify-center _py-12 _text-gray-600 dark:_text-gray-400 md:_justify-start","_pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"),children:iw(t.footer.content)})]})},content:`MIT ${new Date().getFullYear()} \xa9 Nextra.`},gitTimestamp:function({timestamp:e}){let{locale:t=iC}=(0,E.t)();return(0,a.jsxs)(a.Fragment,{children:["Last updated on"," ",(0,a.jsx)("time",{dateTime:e.toISOString(),children:e.toLocaleDateString(t,{day:"numeric",month:"long",year:"numeric"})})]})},head:function(){let{frontMatter:e,title:t}=ix(),n=`${t} \u2013 Nextra`,{description:r,canonical:o,image:i}=e;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("title",{children:n}),(0,a.jsx)("meta",{property:"og:title",content:n}),r&&[(0,a.jsx)("meta",{name:"description",content:r},0),(0,a.jsx)("meta",{property:"og:description",content:r},1)],o&&(0,a.jsx)("link",{rel:"canonical",href:o}),i&&(0,a.jsx)("meta",{name:"og:image",content:i})]})},i18n:[],logo:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"_font-extrabold",children:"Nextra"}),(0,a.jsx)("span",{className:"_ml-2 max-md:_hidden _font-normal _text-gray-600",children:"The Next Docs Builder"})]}),logoLink:!0,navbar:{component:function({items:e}){let t=iO(),n=e$(),{menu:r,setMenu:o}=ig();return(0,a.jsxs)("div",{className:"nextra-nav-container _sticky _top-0 _z-20 _w-full _bg-transparent print:_hidden",children:[(0,a.jsx)("div",{className:"nextra-nav-container-blur"}),(0,a.jsxs)("nav",{className:"_mx-auto _flex _h-[var(--nextra-navbar-height)] _max-w-[90rem] _items-center _justify-end _gap-4 _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]",children:[t.logoLink?(0,a.jsx)(T(),{href:"string"==typeof t.logoLink?t.logoLink:"/",className:"nextra-focus _flex _items-center hover:_opacity-75 ltr:_mr-auto rtl:_ml-auto",children:iw(t.logo)}):(0,a.jsx)("div",{className:"_flex _items-center ltr:_mr-auto rtl:_ml-auto",children:iw(t.logo)}),(0,a.jsx)("div",{className:"_flex _gap-4 _overflow-x-auto nextra-scrollbar _py-1.5",children:e.map(e=>{if("hidden"===e.display)return null;if("menu"===e.type)return(0,a.jsx)(iU,{menu:e,children:e.title},e.title);let t=e.href||e.route||"#";e.children&&(t=(e.withIndexPage?e.route:e.firstChildRoute)||t);let r=e.route===n||n.startsWith(e.route+"/");return(0,a.jsx)(ir,{href:t,className:(0,k.Z)(iV.link,"max-md:_hidden _whitespace-nowrap _ring-inset",!r||e.newWindow?iV.inactive:iV.active),newWindow:e.newWindow,"aria-current":!e.newWindow&&r,children:e.title},t)})}),iw(t.search.component,{className:"max-md:_hidden"}),t.project.link?(0,a.jsx)(ir,{href:t.project.link,newWindow:!0,children:iw(t.project.icon)}):null,t.chat.link?(0,a.jsx)(ir,{href:t.chat.link,newWindow:!0,children:iw(t.chat.icon)}):null,iw(t.navbar.extraContent),(0,a.jsx)(ez,{"aria-label":"Menu",className:({active:e})=>(0,k.Z)("nextra-hamburger _rounded md:_hidden",e&&"_bg-gray-400/20"),onClick:()=>o(!r),children:(0,a.jsx)(eW.Oq,{className:(0,k.Z)({open:r})})})]})]})}},navigation:!0,nextThemes:{defaultTheme:"system",storageKey:"theme"},notFound:{content:"Submit an issue about broken link →",labels:"bug"},project:{icon:(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)(eW.fy,{}),(0,a.jsx)("span",{className:"_sr-only",children:"GitHub"})]})},search:{component:function({className:e}){let{locale:t=iC,basePath:n}=(0,E.t)(),[r,o]=(0,s.useState)(!1),[i,l]=(0,s.useState)(!1),[u,c]=(0,s.useState)([]),[d,f]=(0,s.useState)(""),m=e=>{var n,r;if(!e){c([]);return}let[o,i]=iA[t],l=(null==(n=o.search(e,5,{enrich:!0,suggest:!0})[0])?void 0:n.result)||[],s=[],u={};for(let t=0;te._page_rk===t._page_rk?e._section_rk-t._section_rk:u[e._page_rk]!==u[t._page_rk]?u[t._page_rk]-u[e._page_rk]:e._page_rk-t._page_rk).map(e=>({id:`${e._page_rk}_${e._section_rk}`,route:e.route,prefix:e.prefix,children:e.children})))},p=(0,s.useCallback)(()=>it(this,null,function*(){if(!iA[t]){o(!0);try{yield iD(n,t)}catch(e){l(!0)}o(!1)}}),[t,n]);return(0,a.jsx)(iN,{loading:r,error:i,value:d,onChange:e=>{f(e),r||m(e)},onActive:p,className:e,results:u})},emptyResult:(0,a.jsx)("span",{className:"_block _select-none _p-8 _text-center _text-sm _text-gray-400",children:"No results found."}),error:"Failed to load search index.",loading:"Loading…",placeholder:"Search documentation…"},sidebar:{defaultMenuCollapseLevel:2,toggleButton:!0},themeSwitch:{component:function({lite:e,className:t}){let{setTheme:n,resolvedTheme:r,theme:o=""}=h(),i=oe(),l=iO().themeSwitch,s=i&&"dark"===r?eW.kL:eW.NW,u="function"==typeof l.useOptions?l.useOptions():l.useOptions;return(0,a.jsx)(iz,{className:t,title:"Change theme",options:[{key:"light",name:u.light},{key:"dark",name:u.dark},{key:"system",name:u.system}],onChange:e=>{n(e.key)},selected:{key:o,name:(0,a.jsxs)("div",{className:"_flex _items-center _gap-2 _capitalize",children:[(0,a.jsx)(s,{}),(0,a.jsx)("span",{className:e?"md:_hidden":"",children:i?u[o]:u.light})]})}})},useOptions:{dark:"Dark",light:"Light",system:"System"}},toc:{backToTop:"Scroll to top",component:function({toc:e,filePath:t}){var n;let r=iu(),o=(0,s.useRef)(null),i=iO(),l=e.length>0,u=!!(i.feedback.content||i.editLink.component||i.toc.extraContent||i.toc.backToTop),c=null==(n=Object.entries(r).find(([,{isActive:e}])=>e))?void 0:n[0],d=e.findIndex(({id:e})=>e===c);return(0,s.useEffect)(()=>{var e;if(!c)return;let t=null==(e=o.current)?void 0:e.querySelector(`a[href="#${c}"]`);t&&oY(t,{behavior:"smooth",block:"center",inline:"center",scrollMode:"if-needed",boundary:o.current})},[c]),(0,a.jsxs)("div",{className:(0,k.Z)(l&&"_grid _grid-rows-[min-content_1fr_min-content]","_sticky _top-[--nextra-navbar-height] _pt-6 _text-sm","_max-h-[calc(100vh-var(--nextra-navbar-height))]"),children:[l&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("p",{className:(0,k.Z)("_mx-4","_font-semibold _tracking-tight","_pb-2 _shadow-[0_12px_16px_rgb(var(--nextra-bg))] contrast-more:_shadow-none _z-[1]"),children:iw(i.toc.title)}),(0,a.jsx)("ul",{ref:o,className:(0,k.Z)("_px-4 nextra-scrollbar _overscroll-y-contain _overflow-y-auto _hyphens-auto","_py-1.5"),children:e.map(({id:e,value:t,depth:n})=>{var o;return(0,a.jsx)("li",{className:"_my-2 _scroll-my-6 _scroll-py-6",children:(0,a.jsx)("a",{href:`#${e}`,className:(0,k.Z)("nextra-focus",{2:"_font-semibold",3:"_ms-4",4:"_ms-8",5:"_ms-12",6:"_ms-16"}[n],"_block _transition-colors _subpixel-antialiased",(null==(o=r[e])?void 0:o.isActive)?"_text-primary-600 contrast-more:!_text-primary-600":"_text-gray-500 hover:_text-gray-900 dark:_text-gray-400 dark:hover:_text-gray-300","contrast-more:_text-gray-900 contrast-more:_underline contrast-more:dark:_text-gray-50 _break-words"),children:function e(t){return"string"==typeof t?t:s.Children.map(t,t=>{var n;if("string"!=typeof(n=t)&&n.props.href&&(t=t.props.children),"string"==typeof t)return t;if(Array.isArray(t))return e(t);let r=e(t.props.children);return(0,s.cloneElement)(t,{children:r})})}(t)})},e)})})]}),u&&(0,a.jsxs)("div",{className:(0,k.Z)(l&&"nextra-toc-footer _pt-4","_flex _flex-col _items-start _gap-2 _pb-4","_mx-4"),children:[i.feedback.content?(0,a.jsx)(ir,{className:i8,href:i.feedback.useLink(),newWindow:!0,children:iw(i.feedback.content)}):null,iw(i.editLink.component,{filePath:t,className:i8,children:iw(i.editLink.content)}),iw(i.toc.extraContent),i.toc.backToTop&&(0,a.jsx)(i9,{className:i8,hidden:d<2,children:iw(i.toc.backToTop)})]})]})},float:!0,title:"On This Page"}},iS=Object.entries(ik).map(([e,t])=>{if(t&&"object"==typeof t&&!Array.isArray(t)&&!(0,s.isValidElement)(t))return e}).filter(Boolean),iT=(0,s.createContext)(ik);iT.displayName="ThemeConfig";var iO=()=>(0,s.useContext)(iT);function ij({value:e,children:t}){let n=(0,s.useRef)();return n.current||(n.current=o9(o9({},ik),e&&Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t&&"object"==typeof t&&iS.includes(e)?o9(o9({},ik[e]),t):t])))),(0,a.jsx)(iT.Provider,{value:n.current,children:t})}function iI(){let{banner:e}=iO();if(!e.content)return null;let t=`try{if(localStorage.getItem(${JSON.stringify(e.key)})==='0'){document.body.classList.add('nextra-banner-hidden')}}catch(e){}`;return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("script",{dangerouslySetInnerHTML:{__html:t}}),(0,a.jsxs)("div",{className:(0,k.Z)("nextra-banner-container max-md:_sticky _top-0 _z-20 _flex _items-center","_h-[var(--nextra-banner-height)] [body.nextra-banner-hidden_&]:_hidden","_text-slate-50 dark:_text-white _bg-neutral-900 dark:_bg-[linear-gradient(1deg,#383838,#212121)]","_px-2 _ps-10 print:_hidden"),children:[(0,a.jsx)("div",{className:"_w-full _truncate _text-center _font-medium _text-sm",children:iw(e.content)}),e.dismissible&&(0,a.jsx)(ez,{"aria-label":"Dismiss banner",className:({hover:e})=>(0,k.Z)("_p-2",e?"_opacity-100":"_opacity-80"),onClick:()=>{try{localStorage.setItem(e.key,"0")}catch(e){}document.body.classList.add("nextra-banner-hidden")},children:(0,a.jsx)(eW.b0,{height:"16"})})]})]})}function iM({activePath:e}){return(0,a.jsx)("div",{className:"nextra-breadcrumb _mt-1.5 _flex _items-center _gap-1 _overflow-hidden _text-sm _text-gray-500 dark:_text-gray-400 contrast-more:_text-current",children:e.map((e,t,n)=>{let r=n[t+1],o=r?e.withIndexPage?e.route:e.children[0].route===r.route?"":e.children[0].route:"",i=o?T():"span";return(0,a.jsxs)(s.Fragment,{children:[t>0&&(0,a.jsx)(eW.LZ,{height:"14",className:"_shrink-0 rtl:_rotate-180"}),(0,a.jsx)(i,o8(o9({className:(0,k.Z)("_whitespace-nowrap _transition-colors",r?"_min-w-6 _overflow-hidden _text-ellipsis":"_font-medium _text-gray-700 contrast-more:_font-bold contrast-more:_text-current dark:_text-gray-100 contrast-more:dark:_text-current",o&&"nextra-focus _ring-inset hover:_text-gray-900 dark:hover:_text-gray-100"),title:e.title},o&&{href:o}),{children:e.title}))]},e.route+e.name)})})}function iR({children:e,isOpen:t,horizontal:n=!1,openDuration:r=500,closeDuration:o=300}){let i=(0,s.useRef)(null),l=(0,s.useRef)(t),u=(0,s.useRef)(0),c=(0,s.useRef)(!0);return(0,s.useEffect)(()=>{let e=u.current,o=i.current;if(e&&(clearTimeout(e),u.current=0),c.current)return;let l=o.children[0];n?(l.style.width=`${l.clientWidth}px`,o.style.width=`${l.clientWidth}px`):o.style.height=`${l.clientHeight}px`,t?u.current=window.setTimeout(()=>{o.style.removeProperty("height")},r):setTimeout(()=>{n?o.style.width="0":o.style.height="0"})},[n,t,r]),(0,s.useEffect)(()=>{c.current=!1},[]),(0,a.jsx)("div",{ref:i,className:(0,k.Z)("_transform-gpu _transition-all _ease-in-out motion-reduce:_transition-none",t?"_opacity-100":["_opacity-0","_overflow-hidden"]),style:o8(o9({},l.current||n?void 0:{height:0}),{transitionDuration:(t?r:o)+"ms"}),children:(0,a.jsx)("div",{children:e})})}var iP=(0,s.memo)(function({value:e,match:t}){let n;if(!e)return null;let r=e.split(""),o=RegExp((function(e){if("string"!=typeof e)throw TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")})(t.trim()).replaceAll(/\s+/g,"|"),"ig"),i=0,l=[];for(;n=o.exec(e);)if(n.index===o.lastIndex)o.lastIndex++;else{let e=r.splice(0,n.index-i).join(""),t=r.splice(0,o.lastIndex-n.index).join("");l.push(e,(0,a.jsx)("span",{className:"_text-primary-600",children:t},n.index)),i=o.lastIndex}return(0,a.jsxs)(a.Fragment,{children:[l,r.join("")]})}),iL=new Set(["input","select","button","textarea"]);function iN({className:e,value:t,onChange:n,onActive:r,loading:o,error:i,results:l}){let u=iO(),{setMenu:c}=ig(),d=(0,eB.useRouter)(),[f,m]=(0,s.useState)(!1),p=oe(),h=(0,s.useRef)(null);(0,s.useEffect)(()=>{function e(e){let t=h.current,n=document.activeElement,r=null==n?void 0:n.tagName.toLowerCase();!(!t||!r||iL.has(r))&&(null==n||!n.isContentEditable)&&("/"===e.key||"k"===e.key&&(e.metaKey||e.ctrlKey))&&(e.preventDefault(),t.focus({preventScroll:!0}))}return window.addEventListener("keydown",e),()=>{window.removeEventListener("keydown",e)}},[]);let g=p&&!f&&(0,a.jsx)("kbd",{className:(0,k.Z)("_absolute _my-1.5 _select-none ltr:_right-1.5 rtl:_left-1.5","_h-5 _rounded _bg-white _px-1.5 _font-mono _text-[11px] _font-medium _text-gray-500","_border dark:_border-gray-100/20 dark:_bg-black/50","contrast-more:_border-current contrast-more:_text-current contrast-more:dark:_border-current","_items-center _gap-1 _flex","max-sm:_hidden"),children:navigator.userAgent.includes("Mac")?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("span",{className:"_text-xs",children:"⌘"}),"K"]}):"CTRL K"}),v=(0,s.useCallback)(e=>{let t="focus"===e.type;t&&(null==r||r()),m(t)},[r]),b=(0,s.useCallback)(e=>{let{value:t}=e.currentTarget;n(t)},[n]),x=(0,s.useCallback)(e=>it(this,null,function*(){var t;e&&(null==(t=h.current)||t.blur(),yield d.push(e.route),c(!1),n(""))}),[d,c,n]);return(0,a.jsxs)(r8,{onChange:x,children:[(0,a.jsxs)("div",{className:(0,k.Z)("_not-prose","_relative _flex _items-center","_text-gray-900 dark:_text-gray-300","contrast-more:_text-gray-800 contrast-more:dark:_text-gray-300",e),children:[(0,a.jsx)(r7,{ref:h,spellCheck:!1,className:({focus:e})=>(0,k.Z)("_rounded-lg _px-3 _py-2 _transition-colors","_w-full md:_w-64","_text-base _leading-tight md:_text-sm",e?"_bg-transparent nextra-focusable":"_bg-black/[.05] dark:_bg-gray-50/10","placeholder:_text-gray-500 dark:placeholder:_text-gray-400","contrast-more:_border contrast-more:_border-current","[&::-webkit-search-cancel-button]:_appearance-none"),autoComplete:"off",type:"search",onChange:b,onFocus:v,onBlur:v,value:t,placeholder:iE(u.search.placeholder)}),g]}),(0,a.jsx)(r3,{transition:!0,anchor:{to:"top end",gap:10,padding:16},className:({open:e})=>(0,k.Z)("nextra-search-results","nextra-scrollbar max-md:_h-full","_border _border-gray-200 _text-gray-100 dark:_border-neutral-800","_z-20 _rounded-xl _py-2.5 _shadow-xl","contrast-more:_border contrast-more:_border-gray-900 contrast-more:dark:_border-gray-50","_backdrop-blur-lg _bg-[rgb(var(--nextra-bg),.8)]","motion-reduce:_transition-none _transition-opacity",e?"_opacity-100":"_opacity-0",i||o||!l.length?"md:_h-[100px]":"md:!_max-h-[min(calc(100vh-5rem),400px)]","_w-full md:_w-[576px]","empty:_invisible"),children:i?(0,a.jsxs)("span",{className:"_flex _select-none _justify-center _gap-2 _p-8 _text-center _text-sm _text-red-500",children:[(0,a.jsx)(eW.AV,{className:"_size-5"}),iE(u.search.error)]}):o?(0,a.jsxs)("span",{className:"_flex _select-none _justify-center _gap-2 _p-8 _text-center _text-sm _text-gray-400",children:[(0,a.jsx)(eW.L4,{className:"_size-5 _animate-spin"}),iw(u.search.loading)]}):l.length?l.map(e=>(0,a.jsxs)(s.Fragment,{children:[e.prefix,(0,a.jsx)(r9,{as:T(),value:e,href:e.route,className:({focus:e})=>(0,k.Z)("_mx-2.5 _break-words _rounded-md","contrast-more:_border",e?"_text-primary-600 contrast-more:_border-current _bg-primary-500/10":"_text-gray-800 dark:_text-gray-300 contrast-more:_border-transparent","_block _scroll-m-12 _px-2.5 _py-2"),children:e.children})]},e.id)):t&&iw(u.search.emptyResult)})]})}var iA={},iF=new Map,iD=(e,t)=>{let n=e+"@"+t;if(iF.has(n))return iF.get(n);let r=iH(e,t);return iF.set(n,r),r},iH=(e,t)=>it(void 0,null,function*(){let[r,o]=yield Promise.all([fetch(`${e}/_next/static/chunks/nextra-data-${t}.json`).then(e=>e.json()),n.e(921).then(n.bind(n,4921)).then(e=>e.default.Document)]),i=new o({cache:100,tokenize:"full",document:{id:"id",index:"content",store:["title"]},context:{resolution:9,depth:2,bidirectional:!0}}),l=new o({cache:100,tokenize:"full",document:{id:"id",index:"content",tag:"pageId",store:["title","content","url","display"]},context:{resolution:9,depth:2,bidirectional:!0}}),a=0;for(let[e,t]of Object.entries(r)){let n="";for(let[r,o]of(++a,Object.entries(t.data))){let[i,s]=r.split("#"),u=e+(i?"#"+i:""),c=s||t.title,d=o.split("\n");l.add(o9({id:u,url:u,title:c,pageId:`page_${a}`,content:c},d[0]&&{display:d[0]}));for(let e=0;e(0,k.Z)("_h-7 _rounded-md _px-2 _text-xs _font-medium _transition-colors",t?"_bg-gray-200 _text-gray-900 dark:_bg-primary-100/10 dark:_text-gray-50":e?"_bg-gray-100 _text-gray-900 dark:_bg-primary-100/5 dark:_text-gray-50":"_text-gray-600 dark:_text-gray-400",n&&"nextra-focusable",o),children:t.name}),(0,a.jsx)(oE,{as:"ul",transition:!0,anchor:{to:"top start",gap:10},className:({open:e})=>(0,k.Z)("nextra-focus",e?"_opacity-100":"_opacity-0","motion-reduce:_transition-none _transition-opacity _min-w-[--button-width] _z-20 _max-h-64 _rounded-md _border _border-black/5 _backdrop-blur-lg _bg-[rgb(var(--nextra-bg),.8)] _py-1 _text-sm _shadow-lg dark:_border-white/20"),children:e.map(e=>(0,a.jsxs)(oC,{value:e,as:"li",className:({focus:n})=>(0,k.Z)(n?"_bg-primary-50 _text-primary-600 dark:_bg-primary-500/10":"_text-gray-800 dark:_text-gray-100","_cursor-pointer _whitespace-nowrap _py-1.5 _px-3","_transition-colors",e.key===t.key&&"_flex _items-center _justify-between _gap-3"),children:[e.name,e.key===t.key&&(0,a.jsx)(eW.nQ,{height:"16"})]},e.key))})]})}function iW({lite:e,className:t}){let n=iO(),{locale:r,asPath:o}=(0,E.t)(),i=n.i18n;if(!i.length)return null;let l=i.find(e=>r===e.locale);return(0,a.jsx)(iz,{title:"Change language",className:t,onChange:e=>{let t=new Date(Date.now()+31536e6);document.cookie=`NEXT_LOCALE=${e.key}; expires=${t.toUTCString()}; path=/`;let n=(0,ot.addBasePath)(o.replace(`/${r}`,`/${e.key}`));location.href=n},selected:{key:(null==l?void 0:l.locale)||"",name:(0,a.jsxs)("span",{className:"_flex _items-center _gap-2",children:[(0,a.jsx)(eW.n9,{}),(0,a.jsx)("span",{className:e?"_hidden":"",children:null==l?void 0:l.name})]})},options:i.map(e=>({key:e.locale,name:e.name}))})}function iB(){let{resolvedTheme:e}=h(),t=oe(),n=iO(),r="function"==typeof n.head?n.head({}):n.head,{hue:o,saturation:i}=n.color,{dark:l,light:s}="number"==typeof o?{dark:o,light:o}:o,{dark:u,light:c}="number"==typeof i?{dark:i,light:i}:i,d=n.backgroundColor;return(0,a.jsxs)(oT(),{children:[n.faviconGlyph?(0,a.jsx)("link",{rel:"icon",href:`data:image/svg+xml;utf8,`}):null,t?(0,a.jsx)("meta",{name:"theme-color",content:"dark"===e?"#111":"#fff"}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"theme-color",content:"#fff",media:"(prefers-color-scheme: light)"}),(0,a.jsx)("meta",{name:"theme-color",content:"#111",media:"(prefers-color-scheme: dark)"})]}),(0,a.jsx)("meta",{name:"viewport",content:"width=device-width, initial-scale=1.0, viewport-fit=cover"}),(0,a.jsx)("style",{children:`:root{--nextra-primary-hue:${s}deg;--nextra-primary-saturation:${c}%;--nextra-navbar-height:64px;--nextra-menu-height:3.75rem;--nextra-banner-height:2.5rem;--nextra-bg:${d.light};}.dark{--nextra-primary-hue:${l}deg;--nextra-primary-saturation:${u}%;--nextra-bg:${d.dark};}`}),r]})}var iZ={link:(0,k.Z)("nextra-focus _text-gray-600 dark:_text-gray-400","hover:_text-gray-800 dark:hover:_text-gray-200","contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100","_flex _max-w-[50%] _items-center _gap-1 _py-4 _text-base _font-medium _transition-colors [word-break:break-word] md:_text-lg"),icon:(0,k.Z)("_inline _h-5 _shrink-0")};function i$({flatDocsDirectories:e,currentIndex:t}){let n=iO().navigation,r="boolean"==typeof n?{prev:n,next:n}:n,o=r.prev&&e[t-1],i=r.next&&e[t+1];return(o&&!o.isUnderCurrentDocsTree&&(o=!1),i&&!i.isUnderCurrentDocsTree&&(i=!1),o||i)?(0,a.jsxs)("div",{className:(0,k.Z)("_mb-8 _flex _items-center _border-t _pt-8 dark:_border-neutral-800","contrast-more:_border-neutral-400 dark:contrast-more:_border-neutral-400","print:_hidden"),children:[o&&(0,a.jsxs)(T(),{href:o.route,title:o.title,className:(0,k.Z)(iZ.link,"ltr:_pr-4 rtl:_pl-4"),children:[(0,a.jsx)(eW.LZ,{className:(0,k.Z)(iZ.icon,"ltr:_rotate-180")}),o.title]}),i&&(0,a.jsxs)(T(),{href:i.route,title:i.title,className:(0,k.Z)(iZ.link,"ltr:_ml-auto ltr:_pl-4 ltr:_text-right rtl:_mr-auto rtl:_pr-4 rtl:_text-left"),children:[i.title,(0,a.jsx)(eW.LZ,{className:(0,k.Z)(iZ.icon,"rtl:_rotate-180")})]})]}):null}var iV={link:(0,k.Z)("_text-sm contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100"),active:(0,k.Z)("_font-medium _subpixel-antialiased"),inactive:(0,k.Z)("_text-gray-600 hover:_text-gray-800 dark:_text-gray-400 dark:hover:_text-gray-200")};function iU({menu:e,children:t}){let n=Object.fromEntries((e.children||[]).map(e=>[e.name,e]));return(0,a.jsxs)(oZ,{children:[(0,a.jsxs)(oz,{className:({focus:e})=>(0,k.Z)(iV.link,iV.inactive,"max-md:_hidden _items-center _whitespace-nowrap _flex _gap-1.5 _ring-inset",e&&"nextra-focusable"),children:[t,(0,a.jsx)(eW.LZ,{className:"_h-3.5 *:_origin-center *:_transition-transform *:_rotate-90"})]}),(0,a.jsx)(oW,{transition:!0,className:({open:e})=>(0,k.Z)("motion-reduce:_transition-none","nextra-focus",e?"_opacity-100":"_opacity-0","nextra-scrollbar _transition-opacity","_border _border-black/5 dark:_border-white/20","_backdrop-blur-lg _bg-[rgb(var(--nextra-bg),.8)]","_z-20 _rounded-md _py-1 _text-sm _shadow-lg","!_max-h-[min(calc(100vh-5rem),256px)]"),anchor:{to:"top end",gap:10,padding:16},children:Object.entries(e.items||{}).map(([e,t])=>{var r;return(0,a.jsx)(oB,{as:ir,href:t.href||(null==(r=n[e])?void 0:r.route),className:({focus:e})=>(0,k.Z)("_block","_py-1.5 _transition-colors ltr:_pl-3 ltr:_pr-9 rtl:_pr-3 rtl:_pl-9",e?"_text-gray-900 dark:_text-gray-100":"_text-gray-600 dark:_text-gray-400"),newWindow:t.newWindow,children:t.title},e)})})]})}var iK=Object.create(null),iq=(0,s.createContext)("");iq.displayName="FocusedItem";var iQ=(0,s.createContext)(()=>{});iQ.displayName="OnFocusItem";var iG=(0,s.createContext)(0);iG.displayName="FolderLevel";var iY=(0,s.memo)(function(e){let t=(0,s.useContext)(iG);return(0,a.jsx)(iG.Provider,{value:t+1,children:(0,a.jsx)(iJ,o9({},e))})}),iX={link:(0,k.Z)("_flex _rounded _px-2 _py-1.5 _text-sm _transition-colors [word-break:break-word]","_cursor-pointer contrast-more:_border"),inactive:(0,k.Z)("_text-gray-500 hover:_bg-gray-100 hover:_text-gray-900","dark:_text-neutral-400 dark:hover:_bg-primary-100/5 dark:hover:_text-gray-50","contrast-more:_text-gray-900 contrast-more:dark:_text-gray-50","contrast-more:_border-transparent contrast-more:hover:_border-gray-900 contrast-more:dark:hover:_border-gray-50"),active:(0,k.Z)("_bg-primary-100 _font-semibold _text-primary-800 dark:_bg-primary-400/10 dark:_text-primary-600","contrast-more:_border-primary-500 contrast-more:dark:_border-primary-500"),list:(0,k.Z)("_flex _flex-col _gap-1"),border:(0,k.Z)("_relative before:_absolute before:_inset-y-1",'before:_w-px before:_bg-gray-200 before:_content-[""] dark:before:_bg-neutral-800',"ltr:_pl-3 ltr:before:_left-0 rtl:_pr-3 rtl:before:_right-0")};function iJ({item:e,anchors:t,onFocus:n}){let[r]=e$().split("#"),o=!!e.route,i=o&&[r,r+"/"].includes(e.route+"/"),l=i||o&&r.startsWith(e.route+"/"),u=(0,s.useContext)(iq).startsWith(e.route+"/"),c=(0,s.useContext)(iG),{setMenu:d}=ig(),{theme:f}=e,m=iO(),p=void 0===iK[e.route]?i||l||u||(f&&"collapsed"in f?!f.collapsed:c{m.sidebar.autoCollapse?l&&u?iK[e.route]=!0:delete iK[e.route]:(l||u)&&(iK[e.route]=!0)},[l,u,e.route,m.sidebar.autoCollapse]),"menu"===e.type){let t=Object.fromEntries((e.children||[]).map(e=>[e.name,e]));e.children=Object.entries(e.items||{}).map(([n,r])=>o9(o9({},t[n]||{name:n,route:e.route+"/"+n}),r))}let g="withIndexPage"in e&&e.withIndexPage,v=g?ir:ez;return(0,a.jsxs)("li",{className:(0,k.Z)({open:p,active:i}),children:[(0,a.jsxs)(v,{href:g?e.route:void 0,"data-href":g?void 0:e.route,className:(0,k.Z)("_items-center _justify-between _gap-2",!g&&"_text-left _w-full",iX.link,i?iX.active:iX.inactive),onClick:t=>{let n=["svg","path"].includes(t.target.tagName.toLowerCase());if(n&&t.preventDefault(),g){i||n?iK[e.route]=!p:(iK[e.route]=!0,d(!1)),h({});return}i||(iK[e.route]=!p,h({}))},onFocus:n,children:[e.title,(0,a.jsx)(eW.LZ,{height:"18",className:(0,k.Z)("_shrink-0","_rounded-sm _p-0.5 hover:_bg-gray-800/5 dark:hover:_bg-gray-100/5","motion-reduce:*:_transition-none *:_origin-center *:_transition-transform *:rtl:_-rotate-180",p&&"*:ltr:_rotate-90 *:rtl:_rotate-[-270deg]")})]}),Array.isArray(e.children)&&(0,a.jsx)(iR,{isOpen:p,children:(0,a.jsx)(i2,{className:(0,k.Z)(iX.border,"_pt-1 ltr:_ml-3 rtl:_mr-3"),directories:e.children,anchors:t})})]})}function i0({title:e}){return(0,a.jsx)("li",{className:(0,k.Z)("[word-break:break-word]",e?"[&:not(:first-child)]:_mt-5 _mb-2 _px-2 _py-1.5 _text-sm _font-semibold _text-gray-900 dark:_text-gray-100":"_my-4"),children:e?iw(e):(0,a.jsx)("hr",{className:"_mx-2 _border-t _border-gray-200 dark:_border-primary-100/10"})})}function i1({item:e,anchors:t,onFocus:n}){let r=e$(),o=e.route&&[r,r+"/"].includes(e.route+"/"),i=iu(),{setMenu:l}=ig();return"separator"===e.type?(0,a.jsx)(i0,{title:e.title}):(0,a.jsxs)("li",{className:(0,k.Z)(iX.list,{active:o}),children:[(0,a.jsx)(ir,{href:e.href||e.route,newWindow:e.newWindow,className:(0,k.Z)(iX.link,o?iX.active:iX.inactive),onClick:()=>{l(!1)},onFocus:n,children:e.title}),o&&t.length>0&&(0,a.jsx)("ul",{className:(0,k.Z)(iX.list,iX.border,"ltr:_ml-3 rtl:_mr-3"),children:t.map(({id:e,value:t})=>{var n;return(0,a.jsx)("li",{children:(0,a.jsx)("a",{href:`#${e}`,className:(0,k.Z)(iX.link,'_flex _gap-2 before:_opacity-25 before:_content-["#"]',(null==(n=i[e])?void 0:n.isActive)?iX.active:iX.inactive),onClick:()=>{l(!1)},children:t})},e)})})]})}function i2({directories:e,anchors:t,className:n,onlyCurrentDocs:r}){let o=(0,s.useContext)(iQ),i=(0,s.useCallback)(e=>{o(e.target.getAttribute("href")||e.target.getAttribute("data-href")||"")},[o]);return(0,a.jsx)("ul",{className:(0,k.Z)(iX.list,n),children:e.map(e=>{if(r&&!e.isUnderCurrentDocsTree)return;let n="menu"===e.type||e.children&&(e.children.length||!e.withIndexPage)?iY:i1;return(0,a.jsx)(n,{item:e,anchors:t,onFocus:i},e.name)})})}function i4({docsDirectories:e,fullDirectories:t,asPopover:n=!1,toc:r,includePlaceholder:o}){let{menu:i,setMenu:l}=ig(),[u,c]=(0,s.useState)(""),[d,f]=(0,s.useState)(!0),[m,p]=(0,s.useState)(!1),h=(0,s.useMemo)(()=>r.filter(e=>2===e.depth),[r]),g=(0,s.useRef)(null),v=(0,s.useRef)(null),b=oe();(0,s.useEffect)(()=>{let e=g.current.querySelector("li.active");if(e&&(window.innerWidth>767||i)){let t=()=>{oY(e,{block:"center",inline:"center",scrollMode:"always",boundary:v.current})};i?setTimeout(t,300):t()}},[i]);let x=iO(),y=x.i18n.length>0,_=x.darkMode||y||x.sidebar.toggleButton;return(0,a.jsxs)(a.Fragment,{children:[o&&n&&(0,a.jsx)("div",{className:"max-xl:_hidden _h-0 _w-64 _shrink-0"}),(0,a.jsx)("div",{className:(0,k.Z)("[transition:background-color_1.5s_ease]",i?"_bg-black/80 dark:_bg-black/60 _fixed _inset-0 _z-10 md:_hidden":"_bg-transparent"),onClick:()=>l(!1)}),(0,a.jsxs)("aside",{className:(0,k.Z)("nextra-sidebar-container _flex _flex-col","md:_top-16 md:_shrink-0 motion-reduce:_transform-none motion-reduce:_transition-none","[.resizing_&]:_transition-none","_transform-gpu _transition-all _ease-in-out","print:_hidden",d?"md:_w-64":"md:_w-20",n?"md:_hidden":"md:_sticky md:_self-start",i?"max-md:[transform:translate3d(0,0,0)]":"max-md:[transform:translate3d(0,-100%,0)]"),ref:v,children:[(0,a.jsx)("div",{className:"_px-4 _pt-4 md:_hidden",children:iw(x.search.component)}),(0,a.jsx)(iq.Provider,{value:u,children:(0,a.jsx)(iQ.Provider,{value:c,children:(0,a.jsxs)("div",{className:(0,k.Z)("_overflow-y-auto","_p-4 _grow md:_h-[calc(100vh-var(--nextra-navbar-height)-var(--nextra-menu-height))]",d?"nextra-scrollbar":"no-scrollbar"),ref:g,children:[(!n||!d)&&(0,a.jsx)(iR,{isOpen:d,horizontal:!0,children:(0,a.jsx)(i2,{className:"nextra-menu-desktop max-md:_hidden",directories:e,anchors:x.toc.float?[]:h,onlyCurrentDocs:!0})}),b&&window.innerWidth<768&&(0,a.jsx)(i2,{className:"nextra-menu-mobile md:_hidden",directories:t,anchors:h})]})})}),_&&(0,a.jsxs)("div",{className:(0,k.Z)("nextra-sidebar-footer _sticky _bottom-0","_flex _items-center _gap-2 _py-4","_mx-3 _px-1",d?y&&"_justify-end":"_py-4 _flex-wrap _justify-center"),"data-toggle-animation":m?d?"show":"hide":"off",children:[(0,a.jsx)(iW,{lite:!d,className:d?"_grow":"max-md:_grow"}),x.darkMode&&(0,a.jsx)("div",{className:d&&!y?"_grow _flex _flex-col":"",children:iw(x.themeSwitch.component,{lite:!d||y})}),x.sidebar.toggleButton&&(0,a.jsx)(ez,{title:d?"Hide sidebar":"Show sidebar",className:({hover:e})=>(0,k.Z)("max-md:_hidden _rounded-md _p-2",e?"_bg-gray-100 _text-gray-900 dark:_bg-primary-100/5 dark:_text-gray-50":"_text-gray-600 dark:_text-gray-400"),onClick:()=>{f(!d),p(!0)},children:(0,a.jsx)(eW.Qq,{height:"12",className:(0,k.Z)(!d&&"first:*:_origin-[35%] first:*:_rotate-180")})})]})]})]})}var i5="reach-skip-nav";(0,s.forwardRef)((e,t)=>{var{className:n,id:r,label:o="Skip to content",styled:i}=e,l=ie(e,["className","id","label","styled"]);let s=void 0===n?i?(0,k.Z)("_sr-only","nextra-focus","focus:_not-sr-only focus:_fixed focus:_z-50 focus:_m-3 focus:_ml-4 focus:_h-[calc(var(--nextra-navbar-height)-1.5rem)] focus:_rounded-lg focus:_border focus:_px-3 focus:_py-2 focus:_align-middle focus:_text-sm focus:_font-bold","focus:_text-gray-900 focus:dark:_text-gray-100","focus:_bg-white focus:dark:_bg-neutral-900","focus:_border-neutral-400 focus:dark:_border-neutral-800"):"":n;return(0,a.jsx)("a",o8(o9({},l),{ref:t,href:`#${r||i5}`,className:s,children:o}))}).displayName="SkipNavLink";var i6=(0,s.forwardRef)((e,t)=>{var{id:n}=e,r=ie(e,["id"]);return(0,a.jsx)("div",o8(o9({},r),{ref:t,id:n||i5}))});i6.displayName="SkipNavContent";var i7={top:0,behavior:"smooth"},i3=e=>{let t=e.currentTarget,n=t.parentElement.parentElement;window.scrollTo(i7),n.scrollTo(i7),t.disabled=!0};function i9({children:e,className:t,hidden:n}){return(0,a.jsxs)(ez,{"aria-hidden":n?"true":void 0,onClick:i3,disabled:n,className:({disabled:e})=>(0,k.Z)("_flex _items-center _gap-1.5","_whitespace-nowrap",e?"_opacity-0":"_opacity-100",t),children:[e,(0,a.jsx)(eW.LZ,{height:"16",className:"_-rotate-90 _border _rounded-full _border-current"})]})}var i8=(0,k.Z)("_text-xs _font-medium","_text-gray-600 dark:_text-gray-400","hover:_text-gray-800 dark:hover:_text-gray-200","contrast-more:_text-gray-700 contrast-more:dark:_text-gray-100"),le=(e,t)=>function(n){var{children:r,id:o,className:i}=n,l=ie(n,["children","id","className"]);let u=ic(),c=im(),d=id(),f=(0,s.useRef)(null);return(0,s.useEffect)(()=>{let e=f.current;if(o&&d&&e)return d.observe(e),c.set(e,[o,t.index+=1]),()=>{d.disconnect(),c.delete(e),u(e=>{let t=o9({},e);return delete t[o],t})}},[o,c,d,u]),(0,a.jsxs)(e,o8(o9({id:o,className:"sr-only"===i?"_sr-only":(0,k.Z)("_font-semibold _tracking-tight _text-slate-900 dark:_text-slate-100",{h2:"_mt-10 _border-b _pb-1 _text-3xl _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400",h3:"_mt-8 _text-2xl",h4:"_mt-8 _text-xl",h5:"_mt-8 _text-lg",h6:"_mt-8 _text-base"}[e],i)},l),{children:[r,o&&(0,a.jsx)("a",{href:`#${o}`,className:"nextra-focus subheading-anchor","aria-label":"Permalink for this section",ref:f})]}))};function lt(e){var{children:t,className:n}=e,r=ie(e,["children","className"]);return(0,a.jsxs)("summary",o8(o9({className:(0,k.Z)("nextra-focus","_flex _items-center _cursor-pointer _p-1 _transition-colors hover:_bg-gray-100 dark:hover:_bg-neutral-800","[&::-webkit-details-marker]:_hidden","_whitespace-pre-wrap","_select-none",n)},r),{children:[t,(0,a.jsx)(eW.LZ,{className:(0,k.Z)("_order-first","_h-4 _shrink-0 _mx-1.5 motion-reduce:_transition-none","rtl:_rotate-180 [[data-expanded]>summary:first-child>&]:_rotate-90 _transition"),strokeWidth:"3"})]}))}var ln=/https?:\/\//,lr=e=>{var{href:t=""}=e,n=ie(e,["href"]);return(0,a.jsx)(ir,o9({href:t,newWindow:ln.test(t)},n))},lo={toc:(0,k.Z)("nextra-toc _order-last max-xl:_hidden _w-64 _shrink-0 print:_hidden"),main:(0,k.Z)("_w-full _break-words")};function li({children:e}){let t=ix(),n=iO(),r=oe(),{activeThemeContext:o,activeType:i,activeIndex:l,flatDocsDirectories:s,activePath:u}=t.normalizePagesResult;if("raw"===o.layout)return(0,a.jsx)("div",{className:lo.main,children:e});let c=o.timestamp&&n.gitTimestamp&&t.timestamp?new Date(t.timestamp):null,d=r&&c?(0,a.jsx)("div",{className:"_mt-12 _mb-8 _block _text-xs _text-gray-500 ltr:_text-right rtl:_text-left dark:_text-gray-400",children:iw(n.gitTimestamp,{timestamp:c})}):(0,a.jsx)("div",{className:"_mt-16"}),f=(0,a.jsxs)(a.Fragment,{children:[iw(o.topContent),e,d,iw(o.bottomContent),"page"!==i&&o.pagination&&(0,a.jsx)(i$,{flatDocsDirectories:s,currentIndex:l})]}),m=n.main?(0,a.jsx)(n.main,{children:f}):f;return"full"===o.layout?(0,a.jsx)("article",{className:(0,k.Z)(lo.main,"nextra-content _min-h-[calc(100vh-var(--nextra-navbar-height))] _pl-[max(env(safe-area-inset-left),1.5rem)] _pr-[max(env(safe-area-inset-right),1.5rem)]"),children:m}):(0,a.jsx)("article",{className:(0,k.Z)(lo.main,"nextra-content _flex _min-h-[calc(100vh-var(--nextra-navbar-height))] _min-w-0 _justify-center _pb-8 _pr-[calc(env(safe-area-inset-right)-1.5rem)]","article"===o.typesetting&&"nextra-body-typesetting-article"),children:(0,a.jsxs)("main",{className:"_w-full _min-w-0 _max-w-6xl _px-6 _pt-4 md:_px-12",children:["page"!==i&&o.breadcrumb&&(0,a.jsx)(iM,{activePath:u}),m]})})}var ll={h1:e=>(0,a.jsx)("h1",o9({className:"_mt-2 _text-4xl _font-bold _tracking-tight _text-slate-900 dark:_text-slate-100"},e)),ul:e=>(0,a.jsx)("ul",o9({className:"[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-disc ltr:_ml-6 rtl:_mr-6"},e)),ol:e=>(0,a.jsx)("ol",o9({className:"[:is(ol,ul)_&]:_my-3 [&:not(:first-child)]:_mt-6 _list-decimal ltr:_ml-6 rtl:_mr-6"},e)),li:e=>(0,a.jsx)("li",o9({className:"_my-2"},e)),blockquote:e=>(0,a.jsx)("blockquote",o9({className:(0,k.Z)("[&:not(:first-child)]:_mt-6 _border-gray-300 _italic _text-gray-700 dark:_border-gray-700 dark:_text-gray-400","ltr:_border-l-2 ltr:_pl-6 rtl:_border-r-2 rtl:_pr-6")},e)),hr:e=>(0,a.jsx)("hr",o9({className:"_my-8 _border-neutral-200/70 contrast-more:_border-neutral-400 dark:_border-primary-100/10 contrast-more:dark:_border-neutral-400"},e)),a:e=>{var{href:t="",className:n}=e,r=ie(e,["href","className"]);return(0,a.jsx)(ir,o9({href:t,newWindow:ln.test(t),className:(0,k.Z)("_text-primary-600 _underline hover:_no-underline _decoration-from-font [text-underline-position:from-font]",n)},r))},table:e=>(0,a.jsx)(oX,o8(o9({},e),{className:(0,k.Z)("nextra-scrollbar [&:not(:first-child)]:_mt-6 _p-0",e.className)})),p:e=>(0,a.jsx)("p",o9({className:"[&:not(:first-child)]:_mt-6 _leading-7"},e)),tr:({className:e="",...t})=>(0,a.jsx)("tr",{className:(0,k.Z)("_m-0 _border-t _border-gray-300 _p-0 dark:_border-gray-600","even:_bg-gray-100 even:dark:_bg-gray-600/20",e),...t}),th:({className:e="",...t})=>(0,a.jsx)("th",{className:(0,k.Z)("_m-0 _border _border-gray-300 _px-4 _py-2 _font-semibold dark:_border-gray-600",e),...t}),td:({className:e="",...t})=>(0,a.jsx)("td",{className:(0,k.Z)("_m-0 _border _border-gray-300 _px-4 _py-2 dark:_border-gray-600",e),...t}),details:function e(t){var{children:n,open:r,className:o}=t,i=ie(t,["children","open","className"]);let[l,u]=(0,s.useState)(()=>!!r),[c,d]=(0,s.useState)(l),f=(0,s.useRef)(0);(0,s.useEffect)(()=>{let e=f.current;if(e&&(clearTimeout(e),f.current=0),!l)return f.current=window.setTimeout(()=>d(l),300),()=>{clearTimeout(f.current)};d(!0)},[l]);let[m,p]=(0,s.useMemo)(function t(r=n){let o;let i=s.Children.map(r,n=>{if(!o&&n&&"object"==typeof n&&"type"in n){if(n.type===lt){o=(0,s.cloneElement)(n,{onClick(e){e.preventDefault(),u(e=>!e)}});return}n.type!==e&&n.props.children&&([o,n]=t(n.props.children))}return n});return[o,i]},[n]);return(0,a.jsxs)("details",o8(o9({className:(0,k.Z)("[&:not(:first-child)]:_mt-4 _rounded _border _border-gray-200 _bg-white _p-2 _shadow-sm dark:_border-neutral-800 dark:_bg-neutral-900","_overflow-hidden",o)},i),{open:l||c,"data-expanded":l?"":void 0,children:[m,(0,a.jsx)(iR,{isOpen:l,children:p})]}))},summary:lt,pre:function({children:e,className:t,"data-filename":n,"data-copy":r,"data-language":o,"data-word-wrap":i,icon:l,...u}){let c=(0,s.useRef)(null),d=""===r&&(0,a.jsx)(oJ,{className:n?"_ml-auto":"",getValue:()=>c.current?.querySelector("code")?.textContent||""});return(0,a.jsxs)("div",{className:"nextra-code _relative [&:not(:first-child)]:_mt-6",children:[n&&(0,a.jsxs)("div",{className:(0,k.Z)("_px-4 _text-xs _text-gray-700 dark:_text-gray-200","_bg-gray-100 dark:_bg-neutral-900","_flex _items-center _h-12 _gap-2 _rounded-t-md",eH.border,"_border-b-0"),children:[l&&(0,a.jsx)(l,{className:"_h-4 _w-auto _max-w-6 _shrink-0"}),(0,a.jsx)("span",{className:"_truncate",children:n}),d]}),(0,a.jsx)("pre",{className:(0,k.Z)("nextra-focus","_overflow-x-auto _subpixel-antialiased _text-[.9em]","_bg-white dark:_bg-black _py-4","_ring-1 _ring-inset _ring-gray-300 dark:_ring-neutral-700","contrast-more:_ring-gray-900 contrast-more:dark:_ring-gray-50","contrast-more:_contrast-150",n?"_rounded-b-md":"_rounded-md",t),ref:c,...u,children:e}),(0,a.jsxs)("div",{className:(0,k.Z)("_opacity-0 _transition [div:hover>&]:_opacity-100 focus-within:_opacity-100","_flex _gap-1 _absolute _right-4",n?"_top-14":"_top-2"),children:[""===i&&(0,a.jsx)(ez,{onClick:o0,className:"md:_hidden",title:"Toggle word wrap",variant:"outline",children:(0,a.jsx)(eW.NK,{height:"16"})}),!n&&d]})]})},code:function({children:e,className:t,"data-language":n,...r}){return(0,a.jsx)("code",{className:(0,k.Z)("nextra-code","data-line-numbers"in r&&"[counter-reset:line]",t),dir:"ltr",...r,children:e})},wrapper:function({toc:e,children:t}){let n=ix(),r=iO(),{activeType:o,activeThemeContext:i,docsDirectories:l,directories:s}=n.normalizePagesResult,u="page"!==o&&i.toc&&"default"===i.layout?(0,a.jsx)("nav",{className:lo.toc,"aria-label":"table of contents",children:iw(r.toc.component,{toc:r.toc.float?e:[],filePath:n.filePath})}):"full"!==i.layout&&"raw"!==i.layout&&(0,a.jsx)("nav",{className:lo.toc,"aria-label":"table of contents"});return(0,a.jsxs)("div",{className:(0,k.Z)("_mx-auto _flex","raw"!==i.layout&&"_max-w-[90rem]"),children:[(0,a.jsx)(i4,{docsDirectories:l,fullDirectories:s,toc:e,asPopover:n.hideSidebar,includePlaceholder:"default"===i.layout}),u,(0,a.jsx)(i6,{}),(0,a.jsx)(li,{children:t})]})}};function la({children:e}){let t=iO(),n=ix(),{locale:r}=(0,E.t)(),{direction:o}=t.i18n.find(e=>e.locale===r)||t,i="rtl"===o?"rtl":"ltr",{activeThemeContext:l,topLevelNavbarItems:s}=n.normalizePagesResult,u=function({isRawLayout:e,components:t}){if(e)return{a:lr,wrapper:ll.wrapper};let n={index:0};return o9(o8(o9({},ll),{h2:le("h2",n),h3:le("h3",n),h4:le("h4",n),h5:le("h5",n),h6:le("h6",n)}),t)}({isRawLayout:"raw"===l.layout,components:t.components});return(0,a.jsx)(g,o8(o9({attribute:"class",disableTransitionOnChange:!0},t.nextThemes),{children:(0,a.jsxs)("div",{dir:i,children:[(0,a.jsx)("script",{dangerouslySetInnerHTML:{__html:`document.documentElement.setAttribute('dir','${i}')`}}),(0,a.jsx)(iB,{}),(0,a.jsx)(iI,{}),l.navbar&&iw(t.navbar.component,{items:s}),(0,a.jsx)(ip,{children:(0,a.jsx)(C.Z,{disableParentContext:!0,components:u,children:e})}),l.footer&&iw(t.footer.component,{menu:n.hideSidebar})]})}))}let ls={darkMode:!0,head(){let{asPath:e,defaultLocale:t,locale:n}=(0,eB.useRouter)(),{frontMatter:r}=ix(),o="https://docs.elegantota.pro"+(t===n?e:"/".concat(n).concat(e));return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("title",{children:[r.title+" - ","ElegantOTA Docs"]}),(0,a.jsx)("meta",{property:"og:url",content:o}),(0,a.jsx)("meta",{property:"og:title",content:r.title+" - ElegantOTA Docs"}),(0,a.jsx)("meta",{property:"og:description",content:r.description||"ElegantOTA provides a beautiful user interface to upload over-the-air firmware/filesystem updates to your hardware with precise status and progress."})]})},logo:()=>{let{resolvedTheme:e}=h();return"dark"===e?(0,a.jsx)("img",{width:160,src:"/logo-dark.svg"}):(0,a.jsx)("img",{width:160,src:"/logo-light.svg"})},docsRepositoryBase:"https://github.com/ayushsharma82/ElegantOTA/tree/docs",project:{link:"https://github.com/ayushsharma82/ElegantOTA"},navbar:{extraContent:(0,a.jsxs)("a",{href:"https://elegantota.pro",target:"_blank",className:"text-zinc-900 bg-white hover:bg-zinc-100 border border-zinc-200 focus:ring-4 focus:outline-none focus:ring-zinc-100 font-medium rounded-lg text-sm px-5 py-2 text-center inline-flex items-center dark:focus:ring-zinc-600 dark:bg-zinc-800 dark:border-zinc-700 dark:text-white dark:hover:bg-zinc-700",children:["Upgrade to",(0,a.jsx)("img",{src:"/pro-badge.gif",alt:"",width:32,className:"me-1 ms-1"}),(0,a.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"14",height:"14",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:"ms-1",children:[(0,a.jsx)("path",{d:"M5 12h14"}),(0,a.jsx)("path",{d:"m12 5 7 7-7 7"})]})]})},footer:{component:(0,a.jsx)("div",{className:"flex flex-col items-center text-xs py-4 px-4 text-zinc-500",children:(0,a.jsxs)("div",{children:["Copyright \xa9 ",new Date().getFullYear()," ",(0,a.jsx)("a",{href:"https://softt.io",target:"_blank",children:"Softt"}),". All rights reserved."]})})}};function lu(e){let{Component:t,pageProps:n}=e;return(0,a.jsx)(t,{...n})}n(6724),n(5060);let lc=(i=globalThis)[l=Symbol.for("__nextra_internal__")]||(i[l]=Object.create(null));lc.context||(lc.context=Object.create(null)),lc.Layout=function({children:e,themeConfig:t,pageOpts:n}){return(0,a.jsx)(ij,{value:t,children:(0,a.jsx)(iy,{value:n,children:(0,a.jsx)(la,{children:e})})})},lc.themeConfig=ls},8199:(e,t)=>{"use strict";var n,r;Object.defineProperty(t,"__esModule",{value:!0}),function(e,t){for(var n in t)Object.defineProperty(e,n,{enumerable:!0,get:t[n]})}(t,{ACTION_HMR_REFRESH:function(){return u},ACTION_NAVIGATE:function(){return i},ACTION_PREFETCH:function(){return s},ACTION_REFRESH:function(){return o},ACTION_RESTORE:function(){return l},ACTION_SERVER_ACTION:function(){return c},ACTION_SERVER_PATCH:function(){return a},PrefetchCacheEntryStatus:function(){return r},PrefetchKind:function(){return n}});let o="refresh",i="navigate",l="restore",a="server-patch",s="prefetch",u="hmr-refresh",c="server-action";!function(e){e.AUTO="auto",e.FULL="full",e.TEMPORARY="temporary"}(n||(n={})),function(e){e.fresh="fresh",e.reusable="reusable",e.expired="expired",e.stale="stale"}(r||(r={})),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},7195:(e,t,n)=>{"use strict";function r(e,t,n,r){return!1}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getDomainLocale",{enumerable:!0,get:function(){return r}}),n(8337),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8342:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return _}});let r=n(8754),o=n(5893),i=r._(n(7294)),l=n(6075),a=n(3955),s=n(8041),u=n(9903),c=n(5490),d=n(1928),f=n(257),m=n(4229),p=n(7195),h=n(9470),g=n(8199),v=n(2145),b=new Set;function x(e,t,n,r,o,i){if(i||(0,a.isLocalURL)(t)){if(!r.bypassPrefetchedCheck&&!i){let o=t+"%"+n+"%"+(void 0!==r.locale?r.locale:"locale"in e?e.locale:void 0);if(b.has(o))return;b.add(o)}(async()=>i?e.prefetch(t,o):e.prefetch(t,n,r))().catch(e=>{})}}function y(e){return"string"==typeof e?e:(0,s.formatUrl)(e)}let _=i.default.forwardRef(function(e,t){let n,r;let{href:s,as:b,children:_,prefetch:w=null,passHref:E,replace:C,shallow:k,scroll:S,locale:T,onClick:O,onMouseEnter:j,onTouchStart:I,legacyBehavior:M=!1,...R}=e;n=_,M&&("string"==typeof n||"number"==typeof n)&&(n=(0,o.jsx)("a",{children:n}));let P=i.default.useContext(d.RouterContext),L=i.default.useContext(f.AppRouterContext),N=null!=P?P:L,A=!P,F=!1!==w,D=null===w?g.PrefetchKind.AUTO:g.PrefetchKind.FULL,{href:H,as:z}=i.default.useMemo(()=>{if(!P){let e=y(s);return{href:e,as:b?y(b):e}}let[e,t]=(0,l.resolveHref)(P,s,!0);return{href:e,as:b?(0,l.resolveHref)(P,b):t||e}},[P,s,b]),W=i.default.useRef(H),B=i.default.useRef(z);M&&(r=i.default.Children.only(n));let Z=M?r&&"object"==typeof r&&r.ref:t,[$,V,U]=(0,m.useIntersection)({rootMargin:"200px"}),K=i.default.useCallback(e=>{(B.current!==z||W.current!==H)&&(U(),B.current=z,W.current=H),$(e)},[z,H,U,$]),q=(0,v.useMergedRef)(K,Z);i.default.useEffect(()=>{N&&V&&F&&x(N,H,z,{locale:T},{kind:D},A)},[z,H,V,T,F,null==P?void 0:P.locale,N,A,D]);let Q={ref:q,onClick(e){M||"function"!=typeof O||O(e),M&&r.props&&"function"==typeof r.props.onClick&&r.props.onClick(e),N&&!e.defaultPrevented&&function(e,t,n,r,o,l,s,u,c){let{nodeName:d}=e.currentTarget;if("A"===d.toUpperCase()&&(function(e){let t=e.currentTarget.getAttribute("target");return t&&"_self"!==t||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||e.nativeEvent&&2===e.nativeEvent.which}(e)||!c&&!(0,a.isLocalURL)(n)))return;e.preventDefault();let f=()=>{let e=null==s||s;"beforePopState"in t?t[o?"replace":"push"](n,r,{shallow:l,locale:u,scroll:e}):t[o?"replace":"push"](r||n,{scroll:e})};c?i.default.startTransition(f):f()}(e,N,H,z,C,k,S,T,A)},onMouseEnter(e){M||"function"!=typeof j||j(e),M&&r.props&&"function"==typeof r.props.onMouseEnter&&r.props.onMouseEnter(e),N&&(F||!A)&&x(N,H,z,{locale:T,priority:!0,bypassPrefetchedCheck:!0},{kind:D},A)},onTouchStart:function(e){M||"function"!=typeof I||I(e),M&&r.props&&"function"==typeof r.props.onTouchStart&&r.props.onTouchStart(e),N&&(F||!A)&&x(N,H,z,{locale:T,priority:!0,bypassPrefetchedCheck:!0},{kind:D},A)}};if((0,u.isAbsoluteUrl)(z))Q.href=z;else if(!M||E||"a"===r.type&&!("href"in r.props)){let e=void 0!==T?T:null==P?void 0:P.locale,t=(null==P?void 0:P.isLocaleDomain)&&(0,p.getDomainLocale)(z,e,null==P?void 0:P.locales,null==P?void 0:P.domainLocales);Q.href=t||(0,h.addBasePath)((0,c.addLocale)(z,e,null==P?void 0:P.defaultLocale))}return M?i.default.cloneElement(r,Q):(0,o.jsx)("a",{...R,...Q,children:n})});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4229:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useIntersection",{enumerable:!0,get:function(){return s}});let r=n(7294),o=n(4474),i="function"==typeof IntersectionObserver,l=new Map,a=[];function s(e){let{rootRef:t,rootMargin:n,disabled:s}=e,u=s||!i,[c,d]=(0,r.useState)(!1),f=(0,r.useRef)(null),m=(0,r.useCallback)(e=>{f.current=e},[]);return(0,r.useEffect)(()=>{if(i){if(u||c)return;let e=f.current;if(e&&e.tagName)return function(e,t,n){let{id:r,observer:o,elements:i}=function(e){let t;let n={root:e.root||null,margin:e.rootMargin||""},r=a.find(e=>e.root===n.root&&e.margin===n.margin);if(r&&(t=l.get(r)))return t;let o=new Map;return t={id:n,observer:new IntersectionObserver(e=>{e.forEach(e=>{let t=o.get(e.target),n=e.isIntersecting||e.intersectionRatio>0;t&&n&&t(n)})},e),elements:o},a.push(n),l.set(n,t),t}(n);return i.set(e,t),o.observe(e),function(){if(i.delete(e),o.unobserve(e),0===i.size){o.disconnect(),l.delete(r);let e=a.findIndex(e=>e.root===r.root&&e.margin===r.margin);e>-1&&a.splice(e,1)}}}(e,e=>e&&d(e),{root:null==t?void 0:t.current,rootMargin:n})}else if(!c){let e=(0,o.requestIdleCallback)(()=>d(!0));return()=>(0,o.cancelIdleCallback)(e)}},[u,n,t,c,f.current]),[m,c,(0,r.useCallback)(()=>{d(!1)},[])]}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},2145:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useMergedRef",{enumerable:!0,get:function(){return o}});let r=n(7294);function o(e,t){let n=(0,r.useRef)(()=>{}),o=(0,r.useRef)(()=>{});return(0,r.useMemo)(()=>e&&t?r=>{null===r?(n.current(),o.current()):(n.current=i(e,r),o.current=i(t,r))}:e||t,[e,t])}function i(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let n=e(t);return"function"==typeof n?n:()=>e(null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},6724:()=>{},5060:()=>{},9008:(e,t,n)=>{e.exports=n(3867)},1664:(e,t,n)=>{e.exports=n(8342)},1163:(e,t,n)=>{e.exports=n(3079)},8644:(e,t,n)=>{"use strict";n.d(t,{t:()=>l});var r=n(1163),o=n(7294),i=n(3454);let l=()=>{let e=(0,r.useRouter)();return(0,o.useMemo)(()=>{let t=i.env.NEXTRA_DEFAULT_LOCALE;return{...e,defaultLocale:t,...t&&{locale:e.asPath.split("/")[1]}}},[e])}},5192:(e,t,n)=>{"use strict";n.d(t,{$P:()=>b,AV:()=>d,D7:()=>a,L4:()=>p,LZ:()=>o,NK:()=>g,NW:()=>h,Oq:()=>f,Qq:()=>s,TI:()=>l,b0:()=>v,fy:()=>u,kL:()=>m,n9:()=>c,nQ:()=>i});var r=n(5893),o=e=>(0,r.jsx)("svg",{viewBox:"0 0 24 24",stroke:"currentColor",fill:"none",strokeWidth:2,...e,children:(0,r.jsx)("path",{d:"M9 5l7 7-7 7",strokeLinecap:"round",strokeLinejoin:"round"})}),i=e=>(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",...e,children:(0,r.jsx)("path",{d:"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z"})}),l=e=>(0,r.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,...e,children:[(0,r.jsx)("rect",{x:9,y:9,width:13,height:13,rx:2}),(0,r.jsx)("path",{d:"M5 15H4C2.89543 15 2 14.1046 2 13V4C2 2.89543 2.89543 2 4 2H13C14.1046 2 15 2.89543 15 4V5"})]}),a=e=>(0,r.jsxs)("svg",{width:24,height:24,fill:"currentColor",viewBox:"0 5 30.67 23.25",...e,children:[(0,r.jsx)("title",{children:"Discord"}),(0,r.jsx)("path",{d:"M26.0015 6.9529C24.0021 6.03845 21.8787 5.37198 19.6623 5C19.3833 5.48048 19.0733 6.13144 18.8563 6.64292C16.4989 6.30193 14.1585 6.30193 11.8336 6.64292C11.6166 6.13144 11.2911 5.48048 11.0276 5C8.79575 5.37198 6.67235 6.03845 4.6869 6.9529C0.672601 12.8736 -0.41235 18.6548 0.130124 24.3585C2.79599 26.2959 5.36889 27.4739 7.89682 28.2489C8.51679 27.4119 9.07477 26.5129 9.55525 25.5675C8.64079 25.2265 7.77283 24.808 6.93587 24.312C7.15286 24.1571 7.36986 23.9866 7.57135 23.8161C12.6241 26.1255 18.0969 26.1255 23.0876 23.8161C23.3046 23.9866 23.5061 24.1571 23.7231 24.312C22.8861 24.808 22.0182 25.2265 21.1037 25.5675C21.5842 26.5129 22.1422 27.4119 22.7621 28.2489C25.2885 27.4739 27.8769 26.2959 30.5288 24.3585C31.1952 17.7559 29.4733 12.0212 26.0015 6.9529ZM10.2527 20.8402C8.73376 20.8402 7.49382 19.4608 7.49382 17.7714C7.49382 16.082 8.70276 14.7025 10.2527 14.7025C11.7871 14.7025 13.0425 16.082 13.0115 17.7714C13.0115 19.4608 11.7871 20.8402 10.2527 20.8402ZM20.4373 20.8402C18.9183 20.8402 17.6768 19.4608 17.6768 17.7714C17.6768 16.082 18.8873 14.7025 20.4373 14.7025C21.9717 14.7025 23.2271 16.082 23.1961 17.7714C23.1961 19.4608 21.9872 20.8402 20.4373 20.8402Z"})]}),s=e=>(0,r.jsxs)("svg",{viewBox:"0 0 16 16",fill:"currentColor",...e,children:[(0,r.jsx)("path",{d:"M4.177 7.823l2.396-2.396A.25.25 0 017 5.604v4.792a.25.25 0 01-.427.177L4.177 8.177a.25.25 0 010-.354z"}),(0,r.jsx)("path",{fillRule:"evenodd",d:"M0 1.75C0 .784.784 0 1.75 0h12.5C15.216 0 16 .784 16 1.75v12.5A1.75 1.75 0 0114.25 16H1.75A1.75 1.75 0 010 14.25V1.75zm1.75-.25a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25H9.5v-13H1.75zm12.5 13H11v-13h3.25a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25z"})]}),u=e=>(0,r.jsxs)("svg",{width:24,height:24,fill:"currentColor",viewBox:"3 3 18 18",...e,children:[(0,r.jsx)("title",{children:"GitHub"}),(0,r.jsx)("path",{d:"M12 3C7.0275 3 3 7.12937 3 12.2276C3 16.3109 5.57625 19.7597 9.15374 20.9824C9.60374 21.0631 9.77249 20.7863 9.77249 20.5441C9.77249 20.3249 9.76125 19.5982 9.76125 18.8254C7.5 19.2522 6.915 18.2602 6.735 17.7412C6.63375 17.4759 6.19499 16.6569 5.8125 16.4378C5.4975 16.2647 5.0475 15.838 5.80124 15.8264C6.51 15.8149 7.01625 16.4954 7.18499 16.7723C7.99499 18.1679 9.28875 17.7758 9.80625 17.5335C9.885 16.9337 10.1212 16.53 10.38 16.2993C8.3775 16.0687 6.285 15.2728 6.285 11.7432C6.285 10.7397 6.63375 9.9092 7.20749 9.26326C7.1175 9.03257 6.8025 8.08674 7.2975 6.81794C7.2975 6.81794 8.05125 6.57571 9.77249 7.76377C10.4925 7.55615 11.2575 7.45234 12.0225 7.45234C12.7875 7.45234 13.5525 7.55615 14.2725 7.76377C15.9937 6.56418 16.7475 6.81794 16.7475 6.81794C17.2424 8.08674 16.9275 9.03257 16.8375 9.26326C17.4113 9.9092 17.76 10.7281 17.76 11.7432C17.76 15.2843 15.6563 16.0687 13.6537 16.2993C13.98 16.5877 14.2613 17.1414 14.2613 18.0065C14.2613 19.2407 14.25 20.2326 14.25 20.5441C14.25 20.7863 14.4188 21.0746 14.8688 20.9824C16.6554 20.364 18.2079 19.1866 19.3078 17.6162C20.4077 16.0457 20.9995 14.1611 21 12.2276C21 7.12937 16.9725 3 12 3Z"})]}),c=e=>(0,r.jsx)("svg",{viewBox:"2 2 16 16",width:12,height:12,fill:"currentColor",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",d:"M4.083 9h1.946c.089-1.546.383-2.97.837-4.118A6.004 6.004 0 004.083 9zM10 2a8 8 0 100 16 8 8 0 000-16zm0 2c-.076 0-.232.032-.465.262-.238.234-.497.623-.737 1.182-.389.907-.673 2.142-.766 3.556h3.936c-.093-1.414-.377-2.649-.766-3.556-.24-.56-.5-.948-.737-1.182C10.232 4.032 10.076 4 10 4zm3.971 5c-.089-1.546-.383-2.97-.837-4.118A6.004 6.004 0 0115.917 9h-1.946zm-2.003 2H8.032c.093 1.414.377 2.649.766 3.556.24.56.5.948.737 1.182.233.23.389.262.465.262.076 0 .232-.032.465-.262.238-.234.498-.623.737-1.182.389-.907.673-2.142.766-3.556zm1.166 4.118c.454-1.147.748-2.572.837-4.118h1.946a6.004 6.004 0 01-2.783 4.118zm-6.268 0C6.412 13.97 6.118 12.546 6.03 11H4.083a6.004 6.004 0 002.783 4.118z",clipRule:"evenodd"})}),d=e=>(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",width:20,height:20,...e,children:(0,r.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z"})}),f=e=>(0,r.jsxs)("svg",{fill:"none",width:24,height:24,viewBox:"0 0 24 24",stroke:"currentColor",...e,children:[(0,r.jsx)("g",{children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 6h16"})}),(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 12h16"}),(0,r.jsx)("g",{children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 18h16"})})]}),m=e=>(0,r.jsx)("svg",{fill:"none",viewBox:"2 2 20 20",width:12,height:12,stroke:"currentColor",...e,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,fill:"currentColor",d:"M20.354 15.354A9 9 0 018.646 3.646 9.003 9.003 0 0012 21a9.003 9.003 0 008.354-5.646z"})}),p=e=>(0,r.jsxs)("svg",{fill:"none",viewBox:"0 0 24 24",width:24,height:24,...e,children:[(0,r.jsx)("circle",{className:"_opacity-25",cx:12,cy:12,r:10,stroke:"currentColor",strokeWidth:4}),(0,r.jsx)("path",{className:"_opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),h=e=>(0,r.jsx)("svg",{fill:"none",viewBox:"3 3 18 18",width:12,height:12,stroke:"currentColor",...e,children:(0,r.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,fill:"currentColor",d:"M12 3v1m0 16v1m9-9h-1M4 12H3m15.364 6.364l-.707-.707M6.343 6.343l-.707-.707m12.728 0l-.707.707M6.343 17.657l-.707.707M16 12a4 4 0 11-8 0 4 4 0 018 0z"})}),g=e=>(0,r.jsx)("svg",{viewBox:"0 0 24 24",fill:"currentColor",...e,children:(0,r.jsx)("path",{d:"M4 19h6v-2H4v2zM20 5H4v2h16V5zm-3 6H4v2h13.25c1.1 0 2 .9 2 2s-.9 2-2 2H15v-2l-3 3l3 3v-2h2c2.21 0 4-1.79 4-4s-1.79-4-4-4z"})}),v=e=>(0,r.jsx)("svg",{viewBox:"0 0 20 20",fill:"currentColor",...e,children:(0,r.jsx)("path",{d:"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z"})}),b=e=>(0,r.jsx)("svg",{viewBox:"0 0 22 24",fill:"currentColor",...e,children:(0,r.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M21.2953 7.0593C21.2951 6.65684 21.209 6.3012 21.035 5.99598C20.864 5.69585 20.6079 5.44429 20.2645 5.24539C19.0505 4.54539 17.836 3.84631 16.6215 3.14723L16.6182 3.14533C14.9975 2.21243 13.3767 1.27954 11.7572 0.344467C10.9931 -0.0966561 10.2523 -0.0805743 9.49388 0.366881C8.81382 0.76795 6.49169 2.1029 4.38515 3.31391L4.38492 3.31404C2.99605 4.11247 1.70093 4.85701 1.03198 5.24448C0.338633 5.64585 0.00124988 6.26012 0.00108323 7.05854C0.000541613 8.70234 0.000541613 10.3461 0.000541613 11.9899C0.000541613 13.6337 0.000541613 15.2775 0 16.9213C0.00016665 17.3149 0.0825751 17.6637 0.248975 17.9643C0.420041 18.2735 0.679682 18.532 1.03106 18.7354C1.69773 19.1215 2.98636 19.8622 4.36992 20.6575L4.37044 20.6578L4.37063 20.6579C6.48106 21.8709 8.81214 23.2108 9.49355 23.6129C10.2523 24.0606 10.9932 24.0766 11.7575 23.6353C13.3994 22.6873 15.0426 21.7416 16.6858 20.7958L16.6881 20.7944C17.8807 20.1081 19.0733 19.4217 20.2654 18.7344C20.6168 18.5311 20.8764 18.2724 21.0475 17.9635C21.2136 17.6628 21.2962 17.3141 21.2964 16.9204C21.2964 16.9204 21.2964 10.347 21.2953 7.0593ZM20.7253 12.3872H19.9152V13.1974H19.1049V12.3872H18.2949V11.5772H19.1049V10.7671H19.9152V11.5772H20.7253V12.3872ZM17.7693 12.3872H16.9593V13.1974H16.1492V12.3872H15.3391V11.5772H16.1492V10.7671H16.9593V11.5772H17.7693V12.3872ZM10.6482 15.5115C11.9653 15.5115 13.1129 14.7877 13.7169 13.7166L16.7904 15.4974C15.5718 17.6267 13.2775 19.0621 10.6482 19.0621C8.02369 19.0621 5.73301 17.6325 4.51263 15.5094C3.91686 14.4729 3.57597 13.2713 3.57597 11.9899C3.57597 8.08411 6.74224 4.91776 10.6482 4.91776C13.2644 4.91776 15.5486 6.33862 16.7721 8.45057L13.694 10.2231C13.0839 9.17417 11.9488 8.46832 10.6482 8.46832C8.70329 8.46832 7.12653 10.045 7.12653 11.9899C7.1259 12.6029 7.28605 13.2053 7.59099 13.737C8.19801 14.7968 9.33915 15.5115 10.6482 15.5115Z"})})},1151:(e,t,n)=>{"use strict";n.d(t,{Z:()=>a,a:()=>l});var r=n(7294);let o={},i=r.createContext(o);function l(e){let t=r.useContext(i);return r.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function a(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(o):e.components||o:l(e.components),r.createElement(i.Provider,{value:t},e.children)}},512:(e,t,n)=>{"use strict";n.d(t,{Z:()=>r});let r=function(){for(var e,t,n=0,r="",o=arguments.length;n{"use strict";n.d(t,{ZW:()=>i,hV:()=>o,ud:()=>r});let r=Symbol.for("__nextra_internal__"),o=new Set(["/404","/500"]),i="en-US"}},e=>{var t=t=>e(e.s=t);e.O(0,[774,179],()=>(t(1118),t(3079))),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/_error-8c2b6ff87cd513a2.js b/_next/static/chunks/pages/_error-8c2b6ff87cd513a2.js
new file mode 100644
index 0000000..2c7454b
--- /dev/null
+++ b/_next/static/chunks/pages/_error-8c2b6ff87cd513a2.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[820],{1981:(_,n,e)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_error",function(){return e(2111)}])}},_=>{var n=n=>_(_.s=n);_.O(0,[888,774,179],()=>n(1981)),_N_E=_.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/_meta-4dab19a68b0c3fea.js b/_next/static/chunks/pages/_meta-4dab19a68b0c3fea.js
new file mode 100644
index 0000000..92dc682
--- /dev/null
+++ b/_next/static/chunks/pages/_meta-4dab19a68b0c3fea.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[926],{136:(_,e,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/_meta",function(){return u(1858)}])},1858:(_,e,u)=>{"use strict";u.r(e),u.d(e,{__N_SSG:()=>n,default:()=>s});var n=!0;let s=()=>null}},_=>{var e=e=>_(_.s=e);_.O(0,[888,774,179],()=>e(136)),_N_E=_.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/branding-41da91627612f687.js b/_next/static/chunks/pages/branding-41da91627612f687.js
new file mode 100644
index 0000000..881a74e
--- /dev/null
+++ b/_next/static/chunks/pages/branding-41da91627612f687.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[260],{285:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/branding",function(){return r(5798)}])},5798:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>h,useTOC:()=>u});var i=r(5893),n=r(7812),a=r(8609),o=r(8925),s=r(8458),l=r(2033),d=r(5956),c=r(5192);function u(e){let t={code:"code",...(0,o.a)()};return[{value:"Procedure",id:"procedure",depth:2},{value:"Prepare logo",id:"prepare-logo",depth:3},{value:"Convert logo to a byte array",id:"convert-logo-to-a-byte-array",depth:3},{value:(0,i.jsxs)(i.Fragment,{children:["Modify ",(0,i.jsx)(t.code,{children:"logo.h"})]}),id:"modify-logoh",depth:3},{value:(0,i.jsxs)(i.Fragment,{children:["Modify ",(0,i.jsx)(t.code,{children:"logo.cpp"})]}),id:"modify-logocpp",depth:3},{value:"Upload firmware",id:"upload-firmware",depth:3},{value:"Final Words",id:"final-words",depth:2}]}let h=(0,n.c)(function(e){let{toc:t=u(e)}=e,r={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",...(0,o.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(r.h1,{children:"Branding"}),"\n",(0,i.jsx)(s.Z,{}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)("img",{src:"/branding.png",alt:"Branding",width:"400px"}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsxs)(r.p,{children:["Branding in this context refers to the logo that is displayed on the ElegantOTA portal during the OTA update process. You can customize the logo by defining the logo image as a byte array in the ",(0,i.jsx)(r.code,{children:"logo.h"})," and ",(0,i.jsx)(r.code,{children:"logo.cpp"})," files of the library’s source code without even touching HTML or CSS."]}),"\n",(0,i.jsx)(r.h2,{id:t[0].id,children:t[0].value}),"\n",(0,i.jsx)(r.p,{children:"To add your custom logo on the ElegantOTA Pro portal, follow these steps:"}),"\n",(0,i.jsxs)(l.R,{children:[(0,i.jsx)(r.h3,{id:t[1].id,children:t[1].value}),(0,i.jsx)(r.p,{children:"First, you need to create or obtain the logo image you want to display on the ElegantOTA portal during OTA updates. Ensure that the logo image is in a suitable format, such as a SVG (recommended) / PNG or JPG file and make sure your image is optimized & small in file size."}),(0,i.jsx)(r.h3,{id:t[2].id,children:t[2].value}),(0,i.jsx)(r.p,{children:"To include the logo in your library, you’ll need to convert the image into a byte array."}),(0,i.jsxs)(r.ol,{children:["\n",(0,i.jsxs)(r.li,{children:["Go to ",(0,i.jsx)(r.a,{href:"https://file2raw.labrat.one/",children:"File2Raw utility"})," ( I created this utility a few years back for the purpose of converting files into byte array for C++ applications )."]}),"\n",(0,i.jsx)(r.li,{children:"Select your logo."}),"\n",(0,i.jsx)(r.li,{children:"Select “Gzip Compress” & “Use PROGMEM (Arduino)”."}),"\n",(0,i.jsx)(r.li,{children:"Click “Convert”."}),"\n"]}),(0,i.jsx)(r.h3,{id:t[3].id,children:t[3].value}),(0,i.jsxs)(r.ol,{children:["\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Open the ",(0,i.jsx)(r.code,{children:"logo.h"})," file in your ElegantOTA library source code."]}),"\n"]}),"\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Locate the ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO"})," byte array declaration, which should look like this:"]}),"\n",(0,i.jsx)(r.pre,{icon:c.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,i.jsx)(r.code,{children:(0,i.jsxs)(r.span,{children:[(0,i.jsx)(r.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"extern"}),(0,i.jsx)(r.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" const"}),(0,i.jsx)(r.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" uint8_t"}),(0,i.jsx)(r.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ELEGANTOTA_LOGO[];"})]})})}),"\n"]}),"\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Replace the length of the ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO"})," array with your custom logo’s byte array length."]}),"\n"]}),"\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Locate the ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO_MIME"})," variable, which defines the MIME type of your logo image. By default, it is set to ",(0,i.jsx)(r.code,{children:"image/png"}),". If your logo is in a different format (e.g., JPEG), update the ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO_MIME"})," variable to the appropriate MIME type."]}),"\n"]}),"\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Set ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO_WIDTH"})," & ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO_HEIGHT"})," according to your desired size which will be displayed on the webpage."]}),"\n"]}),"\n"]}),(0,i.jsx)(r.h3,{id:t[4].id,children:t[4].value}),(0,i.jsxs)(r.ol,{children:["\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Open the ",(0,i.jsx)(r.code,{children:"logo.cpp"})," file in your ElegantOTA library source code."]}),"\n"]}),"\n",(0,i.jsxs)(r.li,{children:["\n",(0,i.jsxs)(r.p,{children:["Replace the contents of the ",(0,i.jsx)(r.code,{children:"ELEGANTOTA_LOGO"})," array with your custom logo’s byte array generated in File2Raw utility."]}),"\n"]}),"\n"]}),(0,i.jsx)(r.h3,{id:t[5].id,children:t[5].value}),(0,i.jsx)(r.p,{children:"After making these changes, compile and upload the firmware with modified ElegantOTA library to your device."})]}),"\n",(0,i.jsx)(r.h2,{id:t[6].id,children:t[6].value}),"\n",(0,i.jsx)(r.p,{children:"Once you have uploaded the modified ElegantOTA library to your device, the custom logo will be displayed on the ElegantOTA Portal webpage during OTA updates."}),"\n",(0,i.jsxs)(r.p,{children:["That’s it! You have successfully added custom branding to the ElegantOTA portal by defining the logo as a byte array in the ",(0,i.jsx)(r.code,{children:"logo.h"})," and ",(0,i.jsx)(r.code,{children:"logo.cpp"})," files. Your logo will now be displayed on the ElegantOTA portal."]}),"\n",(0,i.jsx)("br",{}),"\n",(0,i.jsx)(d.U,{type:"warning",emoji:"⚠️",children:(0,i.jsx)(r.p,{children:"Please note that branding, including logos and images, may be subject to copyright and trademark laws. Ensure you have the necessary rights or permissions to use any branding elements in your project."})})]})},"/branding",{filePath:"pages/branding.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."},title:"Branding"},"undefined"==typeof RemoteContent?u:RemoteContent.useTOC)},8458:(e,t,r)=>{"use strict";r.d(t,{Z:()=>a});var i=r(5893),n=r(5956);function a(){return(0,i.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,i.jsx)(n.U,{type:"info",emoji:(0,i.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,i.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,i.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,i.jsx)("span",{className:"block mb-1",children:(0,i.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,i.jsx)("path",{d:"M15 3h6v6"}),(0,i.jsx)("path",{d:"M10 14 21 3"}),(0,i.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,r)=>{"use strict";r.d(t,{U:()=>l});var i=r(5893),n=r(512),a=r(5192);let o={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,i.jsx)(a.AV,{className:"_mt-1"}),warning:"⚠️"},s={default:(0,n.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:r=o[t]}){return(0,i.jsxs)("div",{className:(0,n.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",s[t]),children:[(0,i.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:r}),(0,i.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},2033:(e,t,r)=>{"use strict";r.d(t,{R:()=>o});var i=r(5893),n=r(512),a=r(7294);function o({children:e,className:t,style:r,...o}){let s=(0,a.useId)().replaceAll(":","");return(0,i.jsx)("div",{className:(0,n.Z)("nextra-steps _ms-4 _mb-12 _border-s _border-gray-200 _ps-6","dark:_border-neutral-800",t),style:{...r,"--counter-id":s},...o,children:e})}},8609:(e,t,r)=>{"use strict";r.d(t,{v:()=>o});var i=r(5893);function n(){return(0,i.jsx)("span",{className:"_flex _items-center",children:(0,i.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,i.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},o=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,i.jsx)(n,{})]})},"firmware-version":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,i.jsx)(n,{})]})},"custom-title":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,i.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,i.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,i.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(285)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/commercial-license-2f5f69ce84fc5db2.js b/_next/static/chunks/pages/commercial-license-2f5f69ce84fc5db2.js
new file mode 100644
index 0000000..954c119
--- /dev/null
+++ b/_next/static/chunks/pages/commercial-license-2f5f69ce84fc5db2.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[368],{644:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/commercial-license",function(){return n(3114)}])},3114:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useTOC:()=>o});var i=n(5893),r=n(7812),a=n(8609),s=n(8925);function o(e){return[]}let l=(0,r.c)(function(e){let t={a:"a",h1:"h1",li:"li",ol:"ol",p:"p",ul:"ul",...(0,s.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.h1,{children:"Commercial License"}),"\n",(0,i.jsx)(t.p,{children:"ElegantOTA Lite (open-source version) and ElegantOTA Pro are two different versions of the same OTA (Over-The-Air) update library, each with its own set of features and licensing terms. Here’s a comparison between ElegantOTA Lite, which is open-source and AGPL-3.0 based, and ElegantOTA Pro:"}),"\n",(0,i.jsxs)(t.ol,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Licensing:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"ElegantOTA Lite: This version is open-source and released under the AGPL-3.0 license. It means that it’s freely available for anyone to use, modify, and distribute. However, if you use ElegantOTA Lite in a commercial product, the AGPL-3.0 license requires you to make the source code of your product, including any modifications to ElegantOTA Lite, available to the public."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"ElegantOTA Pro: This version is offered under a one-time charge for a commercial license. It allows you to use ElegantOTA Pro in a commercial product without the requirement to open-source your proprietary code. The commercial license provides more flexibility and protection for businesses."}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"Support:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"ElegantOTA Lite: Support for ElegantOTA Lite is typically community-driven. You may find help through online forums, documentation, or user-contributed resources. However, professional support may be limited."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"ElegantOTA Pro: ElegantOTA Pro includes dedicated support and assistance. This can be essential for businesses that require timely and reliable support to ensure their OTA update process runs smoothly."}),"\n"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,i.jsx)(t.p,{children:"In summary, the choice between ElegantOTA Lite and ElegantOTA Pro depends on your specific needs and the nature of your project:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"If you are working on an open-source project or have no concerns about the AGPL-3.0 license’s requirements and need basic OTA update functionality, ElegantOTA Lite is a viable choice."}),"\n"]}),"\n",(0,i.jsxs)(t.li,{children:["\n",(0,i.jsx)(t.p,{children:"If you are developing a commercial product, ElegantOTA Pro provides a more comprehensive and professionally supported solution while allowing you to maintain the proprietary nature of your code. However, it comes with a one-time commercial licensing fee."}),"\n"]}),"\n"]}),"\n",(0,i.jsxs)(t.p,{children:["You can get ElegantOTA Pro via the official product page at: ",(0,i.jsx)(t.a,{href:"https://elegantota.pro",children:"https://elegantota.pro"})]})]})},"/commercial-license",{filePath:"pages/commercial-license.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."},title:"Commercial License"},"undefined"==typeof RemoteContent?o:RemoteContent.useTOC)},8609:(e,t,n)=>{"use strict";n.d(t,{v:()=>s});var i=n(5893);function r(){return(0,i.jsx)("span",{className:"_flex _items-center",children:(0,i.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,i.jsx)(r,{})]})},"commercial-license":{title:"Commercial License"}},s=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,i.jsx)(r,{})]})},"firmware-version":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,i.jsx)(r,{})]})},"custom-title":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,i.jsx)(r,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,i.jsx)(r,{})]})},"disable-filesystem-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,i.jsx)(r,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(644)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/_meta-0dbb30a885667886.js b/_next/static/chunks/pages/features/_meta-0dbb30a885667886.js
new file mode 100644
index 0000000..feb3ce9
--- /dev/null
+++ b/_next/static/chunks/pages/features/_meta-0dbb30a885667886.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[701],{8191:(_,e,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/_meta",function(){return u(8547)}])},8547:(_,e,u)=>{"use strict";u.r(e),u.d(e,{__N_SSG:()=>n,default:()=>s});var n=!0;let s=()=>null}},_=>{var e=e=>_(_.s=e);_.O(0,[888,774,179],()=>e(8191)),_N_E=_.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/auto-reboot-78cf89dd20ccaf0a.js b/_next/static/chunks/pages/features/auto-reboot-78cf89dd20ccaf0a.js
new file mode 100644
index 0000000..41400f6
--- /dev/null
+++ b/_next/static/chunks/pages/features/auto-reboot-78cf89dd20ccaf0a.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[818],{5700:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/auto-reboot",function(){return i(2260)}])},2260:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>c,useTOC:()=>l});var s=i(5893),n=i(7812),a=i(8609),r=i(8925),o=i(5192);function l(e){return[{value:"Set Auto Reboot",id:"set-auto-reboot",depth:2},{value:"Reference",id:"reference",depth:2}]}let c=(0,n.c)(function(e){let{toc:t=l(e)}=e,i={code:"code",h1:"h1",h2:"h2",p:"p",pre:"pre",span:"span",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{children:"Auto Reboot"}),"\n",(0,s.jsxs)(i.p,{children:["Often there comes a situation where you don’t want to reboot automatically. In these cases, you can use the ",(0,s.jsx)(i.code,{children:"setAutoReboot"})," function which will enable/disable automatic reboot of your microcontroller after a successful OTA update."]}),"\n",(0,s.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,s.jsxs)(i.p,{children:["You can set up auto reboot for your device using the ",(0,s.jsx)(i.code,{children:"ElegantOTA.setAutoReboot(false);"})," function. This functions takes ",(0,s.jsx)(i.code,{children:"true"})," or ",(0,s.jsx)(i.code,{children:"false"})," to enable / disable automatic reboot. You can use this function anywhere in your code."]}),"\n",(0,s.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,s.jsx)(i.pre,{icon:o.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Initialize your hardware and other configurations here"})}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Disable Auto Reboot"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setAutoReboot"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"false"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Additional setup code"})}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Your main loop code here"})}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})}),"\n",(0,s.jsxs)(i.p,{children:["In the above example, the ",(0,s.jsx)(i.code,{children:"ElegantOTA.setAutoReboot(false);"})," function call disables automatic reboot."]})]})},"/features/auto-reboot",{filePath:"pages/features/auto-reboot.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."},title:"Auto Reboot"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>r});var s=i(5893);function n(){return(0,s.jsx)("span",{className:"_flex _items-center",children:(0,s.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,s.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},r=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,s.jsx)(n,{})]})},"firmware-version":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,s.jsx)(n,{})]})},"custom-title":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,s.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,s.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,s.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(5700)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/callbacks-2e4aebcac1442781.js b/_next/static/chunks/pages/features/callbacks-2e4aebcac1442781.js
new file mode 100644
index 0000000..8af448c
--- /dev/null
+++ b/_next/static/chunks/pages/features/callbacks-2e4aebcac1442781.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[719],{6052:(e,i,s)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/callbacks",function(){return s(1614)}])},1614:(e,i,s)=>{"use strict";s.r(i),s.d(i,{default:()=>d,useTOC:()=>o});var t=s(5893),n=s(7812),a=s(8609),r=s(8925),l=s(5192);function o(e){let i={code:"code",...(0,r.a)()};return[{value:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.code,{children:"onStart"})," Callback"]}),id:"onstart-callback",depth:2},{value:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.code,{children:"onProgress"})," Callback"]}),id:"onprogress-callback",depth:2},{value:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(i.code,{children:"onEnd"})," Callback"]}),id:"onend-callback",depth:2}]}let d=(0,n.c)(function(e){let{toc:i=o(e)}=e,s={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",...(0,r.a)(),...e.components};return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(s.h1,{children:"Callbacks"}),"\n",(0,t.jsx)(s.p,{children:"The ElegantOTA library offers three callbacks that allow you to customize the behavior of your OTA update process. These callbacks enable you to execute specific functions at different stages of the update process, giving you control over the update flow. Here are the available callbacks:"}),"\n",(0,t.jsxs)(s.ol,{children:["\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"onStart(void callable(void));"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"onProgress(void callable(size_t current, size_t final));"})}),"\n",(0,t.jsx)(s.li,{children:(0,t.jsx)(s.code,{children:"onEnd(void callable(bool success));"})}),"\n"]}),"\n",(0,t.jsx)(s.p,{children:"Let’s delve into the details of each callback and how to use them effectively."}),"\n",(0,t.jsx)(s.h2,{id:i[0].id,children:i[0].value}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"onStart"})," callback is triggered when the OTA update process begins. It’s a convenient way to perform any setup or initialization tasks before the update process starts. You can use this callback to prepare your device for the update, such as saving important data, configuring pins, or setting up any required resources."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Example:"})}),"\n",(0,t.jsx)(s.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,t.jsxs)(s.code,{children:[(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"onStart"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"([]() {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"OTA update process started."'}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Add your initialization tasks here."})}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"});"})})]})}),"\n",(0,t.jsx)(s.h2,{id:i[1].id,children:i[1].value}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"onProgress"})," callback is called periodically during the OTA update to provide information about the progress of the update. It’s useful for tracking the percentage of completion or displaying progress information to the user. This callback passes two parameters: ",(0,t.jsx)(s.code,{children:"current"})," (the number of bytes transferred so far) and ",(0,t.jsx)(s.code,{children:"final"})," (the total number of bytes to be transferred)."]}),"\n",(0,t.jsxs)(s.p,{children:[(0,t.jsx)(s.strong,{children:"Note:"})," onProgress callback can be called very frequently while the update is getting downloaded. It’s neccessary to defer any tasks or logging so that core is not overloaded. Please refer to ‘demo’ example where progress is logged after every second."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Example:"})}),"\n",(0,t.jsx)(s.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,t.jsxs)(s.code,{children:[(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"onProgress"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"([]("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"size_t"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#E36209","--shiki-dark":"#FFAB70"},children:" current"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", "}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"size_t"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#E36209","--shiki-dark":"#FFAB70"},children:" final"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"printf"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Progress: '}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"%u%%\\n"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"'}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", (current "}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"*"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" 100"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") "}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"/"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" final);"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"});"})})]})}),"\n",(0,t.jsx)(s.h2,{id:i[2].id,children:i[2].value}),"\n",(0,t.jsxs)(s.p,{children:["The ",(0,t.jsx)(s.code,{children:"onEnd"})," callback is invoked when the OTA update process completes, whether it succeeds or fails. It passes a boolean parameter ",(0,t.jsx)(s.code,{children:"success"})," indicating the outcome of the update. You can use this callback to perform cleanup tasks or take action based on whether the update was successful or not."]}),"\n",(0,t.jsx)(s.p,{children:(0,t.jsx)(s.strong,{children:"Example:"})}),"\n",(0,t.jsx)(s.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,t.jsxs)(s.code,{children:[(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"onEnd"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"([]("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"bool"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#E36209","--shiki-dark":"#FFAB70"},children:" success"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" if"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" (success) {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"OTA update completed successfully."'}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Add success handling here."})}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" } "}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"else"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" {"})]}),"\n",(0,t.jsxs)(s.span,{children:[(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"OTA update failed."'}),(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Add failure handling here."})}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" }"})}),"\n",(0,t.jsx)(s.span,{children:(0,t.jsx)(s.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"});"})})]})})]})},"/features/callbacks",{filePath:"pages/features/callbacks.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."},title:"Callbacks"},"undefined"==typeof RemoteContent?o:RemoteContent.useTOC)},8609:(e,i,s)=>{"use strict";s.d(i,{v:()=>r});var t=s(5893);function n(){return(0,t.jsx)("span",{className:"_flex _items-center",children:(0,t.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,t.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},r=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,t.jsx)(n,{})]})},"firmware-version":{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,t.jsx)(n,{})]})},"custom-title":{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,t.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,t.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,t.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,t.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var i=i=>e(e.s=i);e.O(0,[812,888,774,179],()=>i(6052)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/custom-title-a5706c2dca97f4a4.js b/_next/static/chunks/pages/features/custom-title-a5706c2dca97f4a4.js
new file mode 100644
index 0000000..5053771
--- /dev/null
+++ b/_next/static/chunks/pages/features/custom-title-a5706c2dca97f4a4.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[110],{2180:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/custom-title",function(){return i(7784)}])},7784:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>c,useTOC:()=>d});var s=i(5893),n=i(7812),r=i(8609),a=i(8925),o=i(8458),l=i(5192);function d(e){return[{value:"Reference",id:"reference",depth:2},{value:"Usage",id:"usage",depth:2}]}let c=(0,n.c)(function(e){let{toc:t=d(e)}=e,i={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",...(0,a.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{children:"Custom Title"}),"\n",(0,s.jsx)(o.Z,{}),"\n",(0,s.jsx)("br",{}),"\n",(0,s.jsx)("img",{src:"/custom-title.png",alt:"Custom Title",width:"400px"}),"\n",(0,s.jsxs)(i.p,{children:["The ",(0,s.jsx)(i.code,{children:"setTitle()"})," function is a method provided by the ElegantOTA Pro library. It is used to set the title of the OTA (Over-The-Air) update portal. This title is displayed at the top of the update portal web page, providing a user-friendly and customizable interface for managing firmware updates."]}),"\n",(0,s.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,s.jsx)(i.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Initialize the ElegantOTA library"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Set the title of the OTA update portal"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setTitle"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"OTA Update - XYZ Inc"'}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,s.jsx)(i.span,{children:" "}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Your main program loop"})}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})}),"\n",(0,s.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,s.jsxs)(i.ol,{children:["\n",(0,s.jsx)(i.li,{children:"Include the ElegantOTA library in your Arduino sketch."}),"\n",(0,s.jsxs)(i.li,{children:["In the ",(0,s.jsx)(i.code,{children:"setup()"})," function of your sketch, initialize the ElegantOTA library using ",(0,s.jsx)(i.code,{children:"ElegantOTA.begin()"}),"."]}),"\n",(0,s.jsxs)(i.li,{children:["Use the ",(0,s.jsx)(i.code,{children:"setTitle()"})," function to set a meaningful title for your OTA update portal. This title will be displayed at the top of the update portal web page when users access it."]}),"\n",(0,s.jsx)(i.li,{children:"Continue with the rest of your sketch’s setup and loop functions."}),"\n"]})]})},"/features/custom-title",{filePath:"pages/features/custom-title.mdx",timestamp:1730034633e3,pageMap:r.v,frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."},title:"Custom Title"},"undefined"==typeof RemoteContent?d:RemoteContent.useTOC)},8458:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var s=i(5893),n=i(5956);function r(){return(0,s.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,s.jsx)(n.U,{type:"info",emoji:(0,s.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,s.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,s.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,s.jsx)("span",{className:"block mb-1",children:(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,s.jsx)("path",{d:"M15 3h6v6"}),(0,s.jsx)("path",{d:"M10 14 21 3"}),(0,s.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>l});var s=i(5893),n=i(512),r=i(5192);let a={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,s.jsx)(r.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,n.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:i=a[t]}){return(0,s.jsxs)("div",{className:(0,n.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,s.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,s.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>a});var s=i(5893);function n(){return(0,s.jsx)("span",{className:"_flex _items-center",children:(0,s.jsx)("img",{src:"/pro-badge.gif",width:32})})}let r={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,s.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},a=[{data:r},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,s.jsx)(n,{})]})},"firmware-version":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,s.jsx)(n,{})]})},"custom-title":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,s.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,s.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,s.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(2180)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/firmware-version-4ef4ef306b14751a.js b/_next/static/chunks/pages/features/firmware-version-4ef4ef306b14751a.js
new file mode 100644
index 0000000..c8ab883
--- /dev/null
+++ b/_next/static/chunks/pages/features/firmware-version-4ef4ef306b14751a.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[102],{2014:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/firmware-version",function(){return i(183)}])},183:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>d,useTOC:()=>c});var n=i(5893),r=i(7812),s=i(8609),a=i(8925),o=i(8458),l=i(5192);function c(e){return[{value:"Reference",id:"reference",depth:2},{value:"Use Cases",id:"use-cases",depth:2},{value:"Best Practices",id:"best-practices",depth:2}]}let d=(0,r.c)(function(e){let{toc:t=c(e)}=e,i={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{children:"Firmware Version"}),"\n",(0,n.jsx)(o.Z,{}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)("br",{}),"\n",(0,n.jsx)("img",{src:"/firmware-version.png",alt:"Firmware Version",width:"400px"}),"\n",(0,n.jsx)(i.p,{children:"The Firmware Version feature in ElegantOTA allows you to specify and manage the version of the firmware running on your Internet of Things (IoT) devices. By setting a firmware version, you can easily track and control the software running on your devices, making it simpler to perform updates, monitor compatibility, and manage your IoT ecosystem effectively."}),"\n",(0,n.jsxs)(i.p,{children:["You can set the firmware version for your device using the ",(0,n.jsx)(i.code,{children:'ElegantOTA.setFWVersion("version");'})," function."]}),"\n",(0,n.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,n.jsx)(i.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsxs)(i.code,{children:[(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Initialize your hardware and other configurations here"})}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Set the Firmware Version"})}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setFWVersion"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"1.0.0"'}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Additional setup code"})}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Your main loop code here"})}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})}),"\n",(0,n.jsxs)(i.p,{children:["In the above example, the ",(0,n.jsx)(i.code,{children:'ElegantOTA.setFWVersion("1.0.0");'})," function call assigns the firmware version “1.0.0” to the device."]}),"\n",(0,n.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,n.jsx)(i.p,{children:"The Firmware Version feature can be beneficial in various scenarios:"}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Firmware Updates"}),": When new firmware versions become available, the Firmware Version identifier helps you check if an update is necessary. It also allows you to verify that devices have received the correct update."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Compatibility"}),": By knowing the firmware version of each device, you can ensure that all components of your IoT network are compatible. This is especially important when devices communicate or interact with each other."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Historical Tracking"}),": You can maintain a history of firmware versions installed on each device, which can be useful for troubleshooting issues or understanding the evolution of your firmware."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Remote Diagnostics"}),": When diagnosing issues remotely, having access to the firmware version can help you identify potential problems related to specific software releases."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:t[2].id,children:t[2].value}),"\n",(0,n.jsx)(i.p,{children:"To make the most of the Firmware Version feature, consider the following best practices:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Follow a consistent versioning scheme for your firmware, such as Semantic Versioning (SemVer), to ensure clarity and compatibility tracking."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["Set the firmware version during the device’s initialization phase, such as in the ",(0,n.jsx)(i.code,{children:"setup()"})," function, to guarantee that it accurately reflects the installed firmware."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:["When updating firmware, always ensure that the new version is correctly set using ",(0,n.jsx)(i.code,{children:"ElegantOTA.setFWVersion()"})," to maintain accurate version information."]}),"\n"]}),"\n"]})]})},"/features/firmware-version",{filePath:"pages/features/firmware-version.mdx",timestamp:1730034633e3,pageMap:s.v,frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."},title:"Firmware Version"},"undefined"==typeof RemoteContent?c:RemoteContent.useTOC)},8458:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});var n=i(5893),r=i(5956);function s(){return(0,n.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,n.jsx)(r.U,{type:"info",emoji:(0,n.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,n.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,n.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,n.jsx)("span",{className:"block mb-1",children:(0,n.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,n.jsx)("path",{d:"M15 3h6v6"}),(0,n.jsx)("path",{d:"M10 14 21 3"}),(0,n.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>l});var n=i(5893),r=i(512),s=i(5192);let a={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,n.jsx)(s.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,r.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,r.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,r.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,r.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:i=a[t]}){return(0,n.jsxs)("div",{className:(0,r.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,n.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,n.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>a});var n=i(5893);function r(){return(0,n.jsx)("span",{className:"_flex _items-center",children:(0,n.jsx)("img",{src:"/pro-badge.gif",width:32})})}let s={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,n.jsx)(r,{})]})},"commercial-license":{title:"Commercial License"}},a=[{data:s},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,n.jsx)(r,{})]})},"firmware-version":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,n.jsx)(r,{})]})},"custom-title":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,n.jsx)(r,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,n.jsx)(r,{})]})},"disable-filesystem-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,n.jsx)(r,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(2014)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/features/hardware-id-37f6f8e4b4f765e1.js b/_next/static/chunks/pages/features/hardware-id-37f6f8e4b4f765e1.js
new file mode 100644
index 0000000..360ef8b
--- /dev/null
+++ b/_next/static/chunks/pages/features/hardware-id-37f6f8e4b4f765e1.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[28],{3939:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/features/hardware-id",function(){return i(2100)}])},2100:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>c,useTOC:()=>d});var r=i(5893),n=i(7812),s=i(8609),a=i(8925),o=i(8458),l=i(5192);function d(e){return[{value:"Reference",id:"reference",depth:2},{value:"Best Practices",id:"best-practices",depth:2}]}let c=(0,n.c)(function(e){let{toc:t=d(e)}=e,i={code:"code",h1:"h1",h2:"h2",li:"li",p:"p",pre:"pre",span:"span",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.h1,{children:"Hardware ID"}),"\n",(0,r.jsx)(o.Z,{}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)("img",{src:"/hardware-id.png",alt:"Hardware ID",width:"400px"}),"\n",(0,r.jsx)(i.p,{children:"The Hardware ID feature in ElegantOTA is shown on the ElegantOTA Pro portal. This ID should be a unique string that helps you easily identify the specific hardware device among others in your network."}),"\n",(0,r.jsxs)(i.p,{children:["You can set the hardware ID for your device using the ",(0,r.jsx)(i.code,{children:'ElegantOTA.setID("xyz");'})," function."]}),"\n",(0,r.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,r.jsx)(i.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,r.jsxs)(i.code,{children:[(0,r.jsxs)(i.span,{children:[(0,r.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,r.jsx)(i.span,{children:" "}),"\n",(0,r.jsxs)(i.span,{children:[(0,r.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Initialize your hardware and other configurations here"})}),"\n",(0,r.jsx)(i.span,{children:" "}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Set the Hardware ID"})}),"\n",(0,r.jsxs)(i.span,{children:[(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setID"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"my_device_001"'}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,r.jsx)(i.span,{children:" "}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Additional setup code"})}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,r.jsx)(i.span,{children:" "}),"\n",(0,r.jsxs)(i.span,{children:[(0,r.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Your main loop code here"})}),"\n",(0,r.jsx)(i.span,{children:(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})}),"\n",(0,r.jsxs)(i.p,{children:["In the above example, the ",(0,r.jsx)(i.code,{children:'ElegantOTA.setID("my_device_001");'})," function call assigns the Hardware ID “my_device_001” to the device."]}),"\n",(0,r.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,r.jsx)(i.p,{children:"To make the most of the Hardware ID feature, consider the following best practices:"}),"\n",(0,r.jsxs)(i.ul,{children:["\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsx)(i.p,{children:"Choose a Hardware ID that is unique to each device to avoid conflicts."}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsx)(i.p,{children:"Avoid using special characters or spaces in the Hardware ID, as these might cause issues when used in network communication or file naming."}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsx)(i.p,{children:"Document and keep track of the Hardware IDs for all your devices to ensure proper management."}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:["Ensure that the Hardware ID is set during the device’s initialization phase, such as in the ",(0,r.jsx)(i.code,{children:"setup()"})," function, to guarantee that it is properly configured before any network or communication activities."]}),"\n"]}),"\n"]})]})},"/features/hardware-id",{filePath:"pages/features/hardware-id.mdx",timestamp:1730034633e3,pageMap:s.v,frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."},title:"Hardware ID"},"undefined"==typeof RemoteContent?d:RemoteContent.useTOC)},8458:(e,t,i)=>{"use strict";i.d(t,{Z:()=>s});var r=i(5893),n=i(5956);function s(){return(0,r.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,r.jsx)(n.U,{type:"info",emoji:(0,r.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,r.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,r.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,r.jsx)("span",{className:"block mb-1",children:(0,r.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,r.jsx)("path",{d:"M15 3h6v6"}),(0,r.jsx)("path",{d:"M10 14 21 3"}),(0,r.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>l});var r=i(5893),n=i(512),s=i(5192);let a={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,r.jsx)(s.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,n.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:i=a[t]}){return(0,r.jsxs)("div",{className:(0,n.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,r.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,r.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>a});var r=i(5893);function n(){return(0,r.jsx)("span",{className:"_flex _items-center",children:(0,r.jsx)("img",{src:"/pro-badge.gif",width:32})})}let s={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,r.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},a=[{data:s},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,r.jsx)(n,{})]})},"firmware-version":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,r.jsx)(n,{})]})},"custom-title":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,r.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,r.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,r.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(3939)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/getting-started/_meta-7cfc185b02033982.js b/_next/static/chunks/pages/getting-started/_meta-7cfc185b02033982.js
new file mode 100644
index 0000000..077abe6
--- /dev/null
+++ b/_next/static/chunks/pages/getting-started/_meta-7cfc185b02033982.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[211],{9951:(_,e,t)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/getting-started/_meta",function(){return t(3310)}])},3310:(_,e,t)=>{"use strict";t.r(e),t.d(e,{__N_SSG:()=>n,default:()=>u});var n=!0;let u=()=>null}},_=>{var e=e=>_(_.s=e);_.O(0,[888,774,179],()=>e(9951)),_N_E=_.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/getting-started/async-mode-25f2c28d051ae972.js b/_next/static/chunks/pages/getting-started/async-mode-25f2c28d051ae972.js
new file mode 100644
index 0000000..e5db389
--- /dev/null
+++ b/_next/static/chunks/pages/getting-started/async-mode-25f2c28d051ae972.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[255],{2680:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/getting-started/async-mode",function(){return n(2898)}])},2898:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>c,useTOC:()=>d});var r=n(5893),i=n(7812),s=n(8609),a=n(8925),o=n(5956),l=n(5192);function d(e){return[{value:"Recommended Dependencies",id:"recommended-dependencies",depth:2},{value:"For ESP8266",id:"for-esp8266",depth:3},{value:"For ESP32",id:"for-esp32",depth:3},{value:"For RP2040 (+ WiFi)",id:"for-rp2040--wifi",depth:3},{value:"Use of Unrecommended Dependencies (Experimental)",id:"use-of-unrecommended-dependencies-experimental",depth:2},{value:"Enabling Async Mode",id:"enabling-async-mode",depth:2},{value:"For Arduino IDE",id:"for-arduino-ide",depth:3},{value:"For PlatformIO",id:"for-platformio",depth:3},{value:"Benefits of Async Mode",id:"benefits-of-async-mode",depth:2}]}let c=(0,i.c)(function(e){let{toc:t=d(e)}=e,n={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...(0,a.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.h1,{children:"Async Mode"}),"\n",(0,r.jsx)(n.p,{children:"ElegantOTA includes an async mode feature, enabling asynchronous web server functionality for managing OTA updates. When async mode is enabled, ElegantOTA utilizes ESPAsyncWebServer to handle all HTTP routes."}),"\n",(0,r.jsx)(o.U,{children:(0,r.jsx)(n.p,{children:"This mode should only be enabled if you are using ESPAsyncWebServer library in your project/firmware."})}),"\n",(0,r.jsx)(n.h2,{id:t[0].id,children:t[0].value}),"\n",(0,r.jsx)(n.h3,{id:t[1].id,children:t[1].value}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["(mathieucarbou) ",(0,r.jsx)(n.a,{href:"https://github.com/mathieucarbou/esphome-ESPAsyncTCP#v2.0.0",children:"esphome-ESPAsyncTCP"})," - ",(0,r.jsx)(n.strong,{children:"v2.0.0"})]}),"\n",(0,r.jsxs)(n.li,{children:["(mathieucarbou) ",(0,r.jsx)(n.a,{href:"https://github.com/mathieucarbou/ESPAsyncWebServer#v3.3.11",children:"ESPAsyncWebServer"})," - ",(0,r.jsx)(n.strong,{children:"v3.3.20"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:t[2].id,children:t[2].value}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["(mathieucarbou) ",(0,r.jsx)(n.a,{href:"https://github.com/mathieucarbou/AsyncTCP#v3.2.6",children:"AsyncTCP"})," @ ",(0,r.jsx)(n.strong,{children:"v3.2.10"})]}),"\n",(0,r.jsxs)(n.li,{children:["(mathieucarbou) ",(0,r.jsx)(n.a,{href:"https://github.com/mathieucarbou/ESPAsyncWebServer#v3.3.11",children:"ESPAsyncWebServer"})," - ",(0,r.jsx)(n.strong,{children:"v3.3.20"})]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:t[3].id,children:t[3].value}),"\n",(0,r.jsxs)(n.ul,{children:["\n",(0,r.jsxs)(n.li,{children:["(khoih-prog) ",(0,r.jsx)(n.a,{href:"https://github.com/khoih-prog/AsyncTCP_RP2040W#v1.2.0",children:"AsyncTCP_RP2040W"})," @ ",(0,r.jsx)(n.strong,{children:"v1.2.0"})]}),"\n",(0,r.jsxs)(n.li,{children:["(mathieucarbou) ",(0,r.jsx)(n.a,{href:"https://github.com/mathieucarbou/ESPAsyncWebServer#v3.3.11",children:"ESPAsyncWebServer"})," - ",(0,r.jsx)(n.strong,{children:"v3.3.20"})]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.h2,{id:t[4].id,children:t[4].value}),"\n",(0,r.jsx)(n.p,{children:"Incase your project is strictly dependent on a fork of dependency which is not listed above, you need to follow these steps if you are using PlatformIO:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Please make sure to install ElegantOTA ‘manually’ using the steps provided in ",(0,r.jsx)(n.a,{href:"/installation",children:"installation guide"})]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open ",(0,r.jsx)(n.code,{children:"library.json"})," file in ElegantOTA library folder and delete the ",(0,r.jsx)(n.code,{children:"dependencies"})," parameter. This will disable auto installation of recommended dependencies."]}),"\n"]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.h2,{id:t[5].id,children:t[5].value}),"\n",(0,r.jsx)(n.h3,{id:t[6].id,children:t[6].value}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"Go to your Arduino libraries directory"}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Open ",(0,r.jsx)(n.code,{children:"ElegantOTA"})," folder and then open ",(0,r.jsx)(n.code,{children:"src"})," folder"]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Locate the ",(0,r.jsx)(n.code,{children:"ELEGANTOTA_USE_ASYNC_WEBSERVER"})," macro in the ",(0,r.jsx)(n.code,{children:"ElegantOTA.h"})," file, and set it to ",(0,r.jsx)(n.code,{children:"1"}),":"]}),"\n",(0,r.jsx)(n.pre,{icon:l.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,r.jsx)(n.code,{children:(0,r.jsxs)(n.span,{children:[(0,r.jsx)(n.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#define"}),(0,r.jsx)(n.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" ELEGANTOTA_USE_ASYNC_WEBSERVER"}),(0,r.jsx)(n.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" 1"})]})})}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:["Save the changes to the ",(0,r.jsx)(n.code,{children:"ElegantOTA.h"})," file."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsx)(n.p,{children:"You are now ready to use ElegantOTA in async mode for your OTA updates, utilizing the ESPAsyncWebServer library."}),"\n"]}),"\n"]}),"\n",(0,r.jsx)(n.h3,{id:t[7].id,children:t[7].value}),"\n",(0,r.jsxs)(n.p,{children:["If you use PlatformIO then we can use a neat trick! You can set ",(0,r.jsx)(n.code,{children:"build_flags"})," in your ",(0,r.jsx)(n.code,{children:"platformio.ini"})," file that enables Async Mode of ElegantOTA."]}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["Open ",(0,r.jsx)(n.code,{children:"platformio.ini"})," file of your project"]}),"\n",(0,r.jsxs)(n.li,{children:["Paste this line ",(0,r.jsx)(n.code,{children:"build_flags=-DELEGANTOTA_USE_ASYNC_WEBSERVER=1"})," at bottom"]}),"\n",(0,r.jsx)(n.li,{children:"Done!"}),"\n"]}),"\n",(0,r.jsx)(n.p,{children:"PlatformIO will now compile ElegantOTA in Async Mode!"}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(n.h2,{id:t[8].id,children:t[8].value}),"\n",(0,r.jsx)(n.p,{children:"Enabling async mode for ElegantOTA offers several advantages:"}),"\n",(0,r.jsxs)(n.ol,{children:["\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Non-blocking Operation:"})," In async mode, ElegantOTA leverages the asynchronous web server capabilities of ESPAsyncWebServer. This means that OTA updates won’t block your device’s main loop. It allows your device to continue executing other tasks while handling OTA updates in the background."]}),"\n"]}),"\n",(0,r.jsxs)(n.li,{children:["\n",(0,r.jsxs)(n.p,{children:[(0,r.jsx)(n.strong,{children:"Improved Responsiveness:"})," Your device can remain responsive to user interactions or other processes during OTA updates, ensuring a smoother user experience."]}),"\n"]}),"\n"]})]})},"/getting-started/async-mode",{filePath:"pages/getting-started/async-mode.mdx",timestamp:1730034633e3,pageMap:s.v,frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."},title:"Async Mode"},"undefined"==typeof RemoteContent?d:RemoteContent.useTOC)},5956:(e,t,n)=>{"use strict";n.d(t,{U:()=>l});var r=n(5893),i=n(512),s=n(5192);let a={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,r.jsx)(s.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,i.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,i.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,i.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,i.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:n=a[t]}){return(0,r.jsxs)("div",{className:(0,i.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,r.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:n}),(0,r.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,n)=>{"use strict";n.d(t,{v:()=>a});var r=n(5893);function i(){return(0,r.jsx)("span",{className:"_flex _items-center",children:(0,r.jsx)("img",{src:"/pro-badge.gif",width:32})})}let s={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,r.jsx)(i,{})]})},"commercial-license":{title:"Commercial License"}},a=[{data:s},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,r.jsx)(i,{})]})},"firmware-version":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,r.jsx)(i,{})]})},"custom-title":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,r.jsx)(i,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,r.jsx)(i,{})]})},"disable-filesystem-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,r.jsx)(i,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(2680)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/getting-started/examples-5a975738a1a6de33.js b/_next/static/chunks/pages/getting-started/examples-5a975738a1a6de33.js
new file mode 100644
index 0000000..c4f43bf
--- /dev/null
+++ b/_next/static/chunks/pages/getting-started/examples-5a975738a1a6de33.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[258],{4967:(e,t,n)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/getting-started/examples",function(){return n(9566)}])},9566:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>l,useTOC:()=>o});var i=n(5893),a=n(7812),s=n(8609),r=n(8925);function o(e){return[{value:"Demo",id:"demo",depth:2},{value:"Async Demo",id:"async-demo",depth:2}]}let l=(0,a.c)(function(e){let{toc:t=o(e)}=e,n={a:"a",h1:"h1",h2:"h2",p:"p",...(0,r.a)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(n.h1,{children:"Examples"}),"\n",(0,i.jsx)(n.p,{children:"The ElegantOTA repository provides two example setups: Demo and Async Demo. These examples showcase how to integrate OTA (Over-The-Air) updates into your project using different types of web servers, allowing you to pick the best option for your specific needs."}),"\n",(0,i.jsx)(n.h2,{id:t[0].id,children:t[0].value}),"\n",(0,i.jsx)(n.p,{children:"Demo example is for people who are using the inbuilt webserver of their platform. This is meant to run without any dependencies."}),"\n",(0,i.jsx)(n.h2,{id:t[1].id,children:t[1].value}),"\n",(0,i.jsx)(n.p,{children:"Async demo example utilizes AsyncWebServer which has significant performance gains. Only use this example as reference when your project is using AsyncWebServer. Know more about this in “Async Mode” documentation."}),"\n",(0,i.jsxs)(n.p,{children:["You can find those examples in the ",(0,i.jsx)(n.a,{href:"https://github.com/ayushsharma82/ElegantOTA/tree/master/examples",children:"ElegantOTA repository"}),"."]})]})},"/getting-started/examples",{filePath:"pages/getting-started/examples.mdx",timestamp:1730034633e3,pageMap:s.v,frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."},title:"Examples"},"undefined"==typeof RemoteContent?o:RemoteContent.useTOC)},8609:(e,t,n)=>{"use strict";n.d(t,{v:()=>r});var i=n(5893);function a(){return(0,i.jsx)("span",{className:"_flex _items-center",children:(0,i.jsx)("img",{src:"/pro-badge.gif",width:32})})}let s={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,i.jsx)(a,{})]})},"commercial-license":{title:"Commercial License"}},r=[{data:s},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,i.jsx)(a,{})]})},"firmware-version":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,i.jsx)(a,{})]})},"custom-title":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,i.jsx)(a,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,i.jsx)(a,{})]})},"disable-filesystem-ota":{title:(0,i.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,i.jsx)(a,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(4967)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/getting-started/installation-21a5de76ff4e0d92.js b/_next/static/chunks/pages/getting-started/installation-21a5de76ff4e0d92.js
new file mode 100644
index 0000000..a225cf4
--- /dev/null
+++ b/_next/static/chunks/pages/getting-started/installation-21a5de76ff4e0d92.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[632],{8984:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/getting-started/installation",function(){return i(9029)}])},9029:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>d,useTOC:()=>l});var r=i(5893),n=i(7812),a=i(8609),s=i(8925),o=i(5956);function l(e){return[{value:"Platforms",id:"platforms",depth:2},{value:"For Arduino IDE",id:"for-arduino-ide",depth:3},{value:"Library Manager",id:"library-manager",depth:4},{value:"Manual Installation",id:"manual-installation",depth:4},{value:"For Windows",id:"for-windows",depth:5},{value:"For Linux",id:"for-linux",depth:5},{value:"Import through Arduino IDE",id:"import-through-arduino-ide",depth:5},{value:"For PlatformIO",id:"for-platformio",depth:3},{value:"Library Manager",id:"library-manager-1",depth:4},{value:"Manual Installation",id:"manual-installation-1",depth:4}]}let d=(0,n.c)(function(e){let{toc:t=l(e)}=e,i={a:"a",code:"code",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",...(0,s.a)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.h1,{children:"Installation"}),"\n",(0,r.jsx)(i.p,{children:"Learn how to effortlessly set up ElegantOTA, a sleek, web-based tool for seamless over-the-air firmware updates. This guide walks you through the installation process, from initial setup to first use, helping you upgrade your projects with ease and style."}),"\n",(0,r.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,r.jsx)(i.h3,{id:t[1].id,children:t[1].value}),"\n",(0,r.jsx)(i.h4,{id:t[2].id,children:t[2].value}),"\n",(0,r.jsx)(i.p,{children:"Go to Sketch > Include Library > Library Manager > Search for “ElegantOTA” > Install"}),"\n",(0,r.jsx)(i.h4,{id:t[3].id,children:t[3].value}),"\n",(0,r.jsx)(i.h5,{id:t[4].id,children:t[4].value}),"\n",(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsxs)(i.li,{children:["Download the ",(0,r.jsx)(i.a,{href:"https://github.com/ayushsharma82/ElegantOTA/archive/master.zip",children:"Repository"})]}),"\n",(0,r.jsxs)(i.li,{children:["Extract the .zip in ",(0,r.jsx)(i.code,{children:'Documents > Arduino > Libraries > {Place "ElegantOTA" folder Here}'})]}),"\n"]}),"\n",(0,r.jsx)(i.h5,{id:t[5].id,children:t[5].value}),"\n",(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsxs)(i.li,{children:["Download the ",(0,r.jsx)(i.a,{href:"https://github.com/ayushsharma82/ElegantOTA/archive/master.zip",children:"Repository"})]}),"\n",(0,r.jsxs)(i.li,{children:["Extract the .zip in ",(0,r.jsx)(i.code,{children:'Sketchbook > Libraries > {Place "ElegantOTA" folder Here}'})]}),"\n"]}),"\n",(0,r.jsx)(i.h5,{id:t[6].id,children:t[6].value}),"\n",(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsxs)(i.li,{children:["Download the ",(0,r.jsx)(i.a,{href:"https://github.com/ayushsharma82/ElegantOTA/archive/master.zip",children:"Repository"})]}),"\n",(0,r.jsxs)(i.li,{children:["Go to ",(0,r.jsx)(i.code,{children:"Sketch > Include Library > Add .zip Library > Select the Downloaded .zip File."})]}),"\n"]}),"\n",(0,r.jsx)("br",{}),"\n",(0,r.jsx)(i.h3,{id:t[7].id,children:t[7].value}),"\n",(0,r.jsxs)(o.U,{type:"info",children:[(0,r.jsx)(i.p,{children:"Required changes in platformio.ini"}),(0,r.jsx)(i.p,{children:"As ElegantOTA supports multiple architectures, PlatformIO will try to include all the dependencies automatically which will often result in compilation errors. To mitigate this issue, please follow these steps:"}),(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:["Delete ",(0,r.jsx)(i.code,{children:".pio/libdeps"})," folder (if it exists) in your project before proceeding."]}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:["Open ",(0,r.jsx)(i.code,{children:"platformio.ini"})," file of your project."]}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:["Add the following line inside your ",(0,r.jsx)(i.code,{children:"platformio.ini"})," file:"]}),"\n",(0,r.jsx)(i.pre,{tabIndex:"0","data-language":"ini","data-word-wrap":"",children:(0,r.jsx)(i.code,{children:(0,r.jsxs)(i.span,{children:[(0,r.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"lib_compat_mode"}),(0,r.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" = strict"})]})})}),"\n"]}),"\n",(0,r.jsxs)(i.li,{children:["\n",(0,r.jsxs)(i.p,{children:["Save the changes to the ",(0,r.jsx)(i.code,{children:"platformio.ini"})," file."]}),"\n"]}),"\n"]})]}),"\n",(0,r.jsx)(i.h4,{id:t[8].id,children:t[8].value}),"\n",(0,r.jsx)(i.p,{children:"Go to PlatformIO Menu > Libraries > Search for “ElegantOTA” > Install in your project."}),"\n",(0,r.jsx)(i.h4,{id:t[9].id,children:t[9].value}),"\n",(0,r.jsxs)(i.ol,{children:["\n",(0,r.jsxs)(i.li,{children:["Download the ",(0,r.jsx)(i.a,{href:"https://github.com/ayushsharma82/ElegantOTA/archive/master.zip",children:"Repository"})]}),"\n",(0,r.jsxs)(i.li,{children:["Extract the .zip in ",(0,r.jsx)(i.code,{children:"lib"})," folder of your project"]}),"\n"]})]})},"/getting-started/installation",{filePath:"pages/getting-started/installation.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."},title:"Installation"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>l});var r=i(5893),n=i(512),a=i(5192);let s={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,r.jsx)(a.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,n.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:i=s[t]}){return(0,r.jsxs)("div",{className:(0,n.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,r.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,r.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>s});var r=i(5893);function n(){return(0,r.jsx)("span",{className:"_flex _items-center",children:(0,r.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,r.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},s=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,r.jsx)(n,{})]})},"firmware-version":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,r.jsx)(n,{})]})},"custom-title":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,r.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,r.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,r.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,r.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(8984)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/getting-started/integration-409502fa2db31af9.js b/_next/static/chunks/pages/getting-started/integration-409502fa2db31af9.js
new file mode 100644
index 0000000..71a82c6
--- /dev/null
+++ b/_next/static/chunks/pages/getting-started/integration-409502fa2db31af9.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[432],{4532:(i,s,e)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/getting-started/integration",function(){return e(6570)}])},6570:(i,s,e)=>{"use strict";e.r(s),e.d(s,{default:()=>k,useTOC:()=>d});var n=e(5893),t=e(7812),l=e(8609),a=e(8925),h=e(2033),r=e(5192);function d(i){let s={code:"code",...(0,a.a)()};return[{value:"Include Dependency",id:"include-dependency",depth:3},{value:(0,n.jsxs)(n.Fragment,{children:["Add ",(0,n.jsx)(s.code,{children:"begin"})," function"]}),id:"add-begin-function",depth:3},{value:(0,n.jsxs)(n.Fragment,{children:["Add ",(0,n.jsx)(s.code,{children:"loop"})," function"]}),id:"add-loop-function",depth:3},{value:"Final Code",id:"final-code",depth:3}]}let k=(0,t.c)(function(i){let{toc:s=d(i)}=i,e={code:"code",h1:"h1",h3:"h3",p:"p",pre:"pre",span:"span",...(0,a.a)(),...i.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(e.h1,{children:"Integration Guide"}),"\n",(0,n.jsx)(e.p,{children:"Integrating ElegantOTA in your existing code is pretty simple. This guide assumes that you already have a simple webserver code prepared and you just need to inject the following lines in your existing code:"}),"\n",(0,n.jsxs)(h.R,{children:[(0,n.jsx)(e.h3,{id:s[0].id,children:s[0].value}),(0,n.jsx)(e.p,{children:"At the very beginning of sketch include the ElegantOTA library."}),(0,n.jsx)(e.pre,{icon:r.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsx)(e.code,{children:(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]})})}),(0,n.jsx)("br",{}),(0,n.jsx)(e.h3,{id:s[1].id,children:s[1].value}),(0,n.jsxs)(e.p,{children:["Now add the ",(0,n.jsx)(e.code,{children:"begin"})," function of ElegantOTA in setup block of your sketch. This will inject ElegantOTA routes and logic into the web server."]}),(0,n.jsx)(e.pre,{icon:r.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsx)(e.code,{children:(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"&"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"server);"})]})})}),(0,n.jsx)("br",{}),(0,n.jsx)(e.h3,{id:s[2].id,children:s[2].value}),(0,n.jsxs)(e.p,{children:["Last part is to call the ",(0,n.jsx)(e.code,{children:"loop"})," function of ElegantOTA in loop block of your sketch. This loop block is necessary for ElegantOTA to handle reboot after OTA update."]}),(0,n.jsx)(e.pre,{icon:r.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsx)(e.code,{children:(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"loop"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]})})}),(0,n.jsx)("br",{}),(0,n.jsx)(e.h3,{id:s[3].id,children:s[3].value}),(0,n.jsxs)(e.p,{children:["That’s it! This is how a ready to use example will look like. After uploading the code to your platform, you can access ElegantOTA portal on ",(0,n.jsx)(e.code,{children:"http:///update"}),"."]}),(0,n.jsx)(e.pre,{icon:r.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsxs)(e.code,{children:[(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"/*"})}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" -----------------------"})}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" ElegantOTA - Demo Example"})}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" -----------------------"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" Skill Level: Beginner"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" This example provides with a bare minimal app with ElegantOTA functionality."})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" Github: https://github.com/ayushsharma82/ElegantOTA"})}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" WiKi: https://docs.elegantota.pro"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" Works with both ESP8266 & ESP32"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" -------------------------------"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" Upgrade to ElegantOTA Pro: https://elegantota.pro"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"*/"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#if"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" defined"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"ESP8266"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:")"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#elif"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" defined"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ESP32)"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" #include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#endif"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"const"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" char*"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ssid "}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"="}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:' "........"'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:";"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"const"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" char*"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" password "}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"="}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:' "........"'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:";"})]}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#if"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" defined"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"ESP8266"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:")"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" ESP8266WebServer"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" server"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"80"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#elif"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" defined"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ESP32)"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" WebServer"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" server"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"80"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#endif"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"115200"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" WiFi."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"mode"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(WIFI_STA);"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" WiFi."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ssid, password);"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'""'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Wait for connection"})}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:" while"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" (WiFi."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"status"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() "}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"!="}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" WL_CONNECTED) {"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" delay"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"500"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"print"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"."'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" }"})}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'""'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"print"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Connected to "'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ssid);"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"print"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"IP address: "'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(WiFi."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"localIP"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"());"})]}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" server."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"on"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"/"'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", []() {"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" server."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"send"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"200"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", "}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"text/plain"'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", "}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Hi! This is ElegantOTA Demo."'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" });"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"&"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"server);"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Start ElegantOTA"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" server."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"begin"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"HTTP server started"'}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,n.jsx)(e.span,{children:" "}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" server."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"handleClient"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]}),"\n",(0,n.jsxs)(e.span,{children:[(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"loop"}),(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]}),"\n",(0,n.jsx)(e.span,{children:(0,n.jsx)(e.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})})]})]})},"/getting-started/integration",{filePath:"pages/getting-started/integration.mdx",timestamp:1730034633e3,pageMap:l.v,frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."},title:"Integration"},"undefined"==typeof RemoteContent?d:RemoteContent.useTOC)},2033:(i,s,e)=>{"use strict";e.d(s,{R:()=>a});var n=e(5893),t=e(512),l=e(7294);function a({children:i,className:s,style:e,...a}){let h=(0,l.useId)().replaceAll(":","");return(0,n.jsx)("div",{className:(0,t.Z)("nextra-steps _ms-4 _mb-12 _border-s _border-gray-200 _ps-6","dark:_border-neutral-800",s),style:{...e,"--counter-id":h},...a,children:i})}},8609:(i,s,e)=>{"use strict";e.d(s,{v:()=>a});var n=e(5893);function t(){return(0,n.jsx)("span",{className:"_flex _items-center",children:(0,n.jsx)("img",{src:"/pro-badge.gif",width:32})})}let l={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,n.jsx)(t,{})]})},"commercial-license":{title:"Commercial License"}},a=[{data:l},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,n.jsx)(t,{})]})},"firmware-version":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,n.jsx)(t,{})]})},"custom-title":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,n.jsx)(t,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,n.jsx)(t,{})]})},"disable-filesystem-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,n.jsx)(t,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},i=>{var s=s=>i(i.s=s);i.O(0,[812,888,774,179],()=>s(4532)),_N_E=i.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/index-5f72cd6471600a42.js b/_next/static/chunks/pages/index-5f72cd6471600a42.js
new file mode 100644
index 0000000..035440f
--- /dev/null
+++ b/_next/static/chunks/pages/index-5f72cd6471600a42.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[405],{1464:(e,t,r)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/",function(){return r(5942)}])},5942:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>d,useTOC:()=>l});var a=r(5893),n=r(7812),i=r(8609),s=r(8925),o=r(5956);function l(e){return[{value:"Features",id:"features",depth:2}]}let d=(0,n.c)(function(e){let{toc:t=l(e)}=e,r={h2:"h2",li:"li",p:"p",strong:"strong",ul:"ul",...(0,s.a)(),...e.components};return(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("br",{}),"\n",(0,a.jsx)("a",{href:"https://elegantota.pro?ref=ghfeature",target:"_blank",children:(0,a.jsx)("img",{src:"https://raw.githubusercontent.com/ayushsharma82/ElegantOTA/master/docs/feature.png",width:"1200"})}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(r.p,{children:"ElegantOTA provides a beautiful user interface to upload over-the-air firmware/filesystem updates to your hardware with precise status and progress. ElegantOTA is designed to make the process of OTA updates slick and simple!"}),"\n",(0,a.jsx)(r.h2,{id:t[0].id,children:t[0].value}),"\n",(0,a.jsxs)(r.ul,{children:["\n",(0,a.jsx)(r.li,{children:"\uD83D\uDD25 Quick & simple OTA procedure"}),"\n",(0,a.jsx)(r.li,{children:"\uD83C\uDFC0 Get useful insight on progress and status of your OTA update"}),"\n",(0,a.jsx)(r.li,{children:"\uD83C\uDFB7 No need to learn HTML/CSS/JS"}),"\n",(0,a.jsx)(r.li,{children:"\uD83D\uDEEB Ready to use within 3 lines of code"}),"\n"]}),"\n",(0,a.jsx)("br",{}),"\n",(0,a.jsx)(o.U,{emoji:"\uD83D\uDE80",children:(0,a.jsxs)(r.p,{children:["This documentation serves both ElegantOTA Lite & Pro. Therefore, if you notice ",(0,a.jsx)(r.strong,{children:"Pro"})," mentioned on any of the features in the documentation, it means that particular feature is only available in ",(0,a.jsx)("a",{href:"https://elegantota.pro",children:"ElegantOTA Pro"}),"."]})})]})},"/",{filePath:"pages/index.mdx",timestamp:1730034633e3,pageMap:i.v,frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."},title:"Introduction"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)},5956:(e,t,r)=>{"use strict";r.d(t,{U:()=>l});var a=r(5893),n=r(512),i=r(5192);let s={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,a.jsx)(i.AV,{className:"_mt-1"}),warning:"⚠️"},o={default:(0,n.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,n.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,n.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,n.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function l({children:e,type:t="default",emoji:r=s[t]}){return(0,a.jsxs)("div",{className:(0,n.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",o[t]),children:[(0,a.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:r}),(0,a.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,r)=>{"use strict";r.d(t,{v:()=>s});var a=r(5893);function n(){return(0,a.jsx)("span",{className:"_flex _items-center",children:(0,a.jsx)("img",{src:"/pro-badge.gif",width:32})})}let i={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,a.jsx)(n,{})]})},"commercial-license":{title:"Commercial License"}},s=[{data:i},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,a.jsx)(n,{})]})},"firmware-version":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,a.jsx)(n,{})]})},"custom-title":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,a.jsx)(n,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,a.jsx)(n,{})]})},"disable-filesystem-ota":{title:(0,a.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,a.jsx)(n,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(1464)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/security/_meta-d5de56178a3d8d63.js b/_next/static/chunks/pages/security/_meta-d5de56178a3d8d63.js
new file mode 100644
index 0000000..d984a62
--- /dev/null
+++ b/_next/static/chunks/pages/security/_meta-d5de56178a3d8d63.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[571],{351:(_,e,u)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/security/_meta",function(){return u(5651)}])},5651:(_,e,u)=>{"use strict";u.r(e),u.d(e,{__N_SSG:()=>n,default:()=>s});var n=!0;let s=()=>null}},_=>{var e=e=>_(_.s=e);_.O(0,[888,774,179],()=>e(351)),_N_E=_.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/security/authentication-0fd0e6295c2862e9.js b/_next/static/chunks/pages/security/authentication-0fd0e6295c2862e9.js
new file mode 100644
index 0000000..5fa79a5
--- /dev/null
+++ b/_next/static/chunks/pages/security/authentication-0fd0e6295c2862e9.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[351],{2359:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/security/authentication",function(){return i(1838)}])},1838:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>c,useTOC:()=>l});var n=i(5893),s=i(7812),a=i(8609),r=i(8925),o=i(5192);function l(e){return[{value:"Setup",id:"setup",depth:2},{value:"Reference",id:"reference",depth:2},{value:"Clearing Authentication",id:"clearing-authentication",depth:2},{value:"Use Cases",id:"use-cases",depth:2},{value:"Best Practices",id:"best-practices",depth:2}]}let c=(0,s.c)(function(e){let{toc:t=l(e)}=e,i={code:"code",h1:"h1",h2:"h2",li:"li",ol:"ol",p:"p",pre:"pre",span:"span",strong:"strong",ul:"ul",...(0,r.a)(),...e.components};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(i.h1,{children:"Authentication"}),"\n",(0,n.jsx)(i.p,{children:"The Authentication feature in ElegantOTA enhances the security of your Internet of Things (IoT) devices by requiring user to login before allowing firmware updates or configuration changes. This feature ensures that only authorized individuals or systems can access and modify your devices, adding an extra layer of protection to your IoT ecosystem."}),"\n",(0,n.jsx)(i.h2,{id:t[0].id,children:t[0].value}),"\n",(0,n.jsx)(i.p,{children:"You can set up authentication for your device using the following function. This function requires two parameters: a username and a password. These credentials act as a gatekeeper, preventing unauthorized access to the device’s OTA (Over-The-Air) update endpoint and configuration interfaces."}),"\n",(0,n.jsx)(i.pre,{icon:o.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsx)(i.code,{children:(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setAuth"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"username"'}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", "}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"password"'}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]})})}),"\n",(0,n.jsx)(i.h2,{id:t[1].id,children:t[1].value}),"\n",(0,n.jsx)(i.pre,{icon:o.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsxs)(i.code,{children:[(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"#include"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:" "})]}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" setup"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Initialize your hardware and other configurations here"})}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Set Authentication Credentials"})}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" ElegantOTA."}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setAuth"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"myUsername"'}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:", "}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"myPassword"'}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Additional setup code"})}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})}),"\n",(0,n.jsx)(i.span,{children:" "}),"\n",(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"void"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:" loop"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() {"})]}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:" // Your main loop code here"})}),"\n",(0,n.jsx)(i.span,{children:(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})}),"\n",(0,n.jsxs)(i.p,{children:["In the above example, the ",(0,n.jsx)(i.code,{children:'ElegantOTA.setAuth("myUsername", "myPassword");'})," function call sets the username to “myUsername” and the password to “myPassword” for device authentication."]}),"\n",(0,n.jsx)(i.h2,{id:t[2].id,children:t[2].value}),"\n",(0,n.jsx)(i.p,{children:"Authentication once set can also be cleared by calling:"}),"\n",(0,n.jsx)(i.pre,{icon:o.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,n.jsx)(i.code,{children:(0,n.jsxs)(i.span,{children:[(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"clearAuth"}),(0,n.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"();"})]})})}),"\n",(0,n.jsx)(i.h2,{id:t[3].id,children:t[3].value}),"\n",(0,n.jsx)(i.p,{children:"The Authentication feature is crucial in various scenarios:"}),"\n",(0,n.jsxs)(i.ol,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Security"}),": It safeguards your IoT devices against unauthorized access, reducing the risk of malicious updates or configuration changes."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Access Control"}),": By setting unique credentials for each device, you can control access to individual devices, ensuring that only authorized personnel or systems can modify them."]}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsxs)(i.p,{children:[(0,n.jsx)(i.strong,{children:"Compliance"}),": Some security and compliance standards require authentication mechanisms for IoT devices. ElegantOTA’s Authentication feature helps you meet these requirements."]}),"\n"]}),"\n"]}),"\n",(0,n.jsx)(i.h2,{id:t[4].id,children:t[4].value}),"\n",(0,n.jsx)(i.p,{children:"To ensure the effectiveness of the Authentication feature, consider these best practices:"}),"\n",(0,n.jsxs)(i.ul,{children:["\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Choose strong and unique usernames and passwords for each device."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Avoid using default or easily guessable credentials to enhance security."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Keep the credentials in a secure location and avoid hardcoding them directly into your code to prevent accidental exposure."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Regularly update and rotate the authentication credentials to maintain security."}),"\n"]}),"\n",(0,n.jsxs)(i.li,{children:["\n",(0,n.jsx)(i.p,{children:"Test the authentication setup thoroughly to ensure that only authorized users can access the device."}),"\n"]}),"\n"]})]})},"/security/authentication",{filePath:"pages/security/authentication.mdx",timestamp:1730034633e3,pageMap:a.v,frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."},title:"Authentication"},"undefined"==typeof RemoteContent?l:RemoteContent.useTOC)},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>r});var n=i(5893);function s(){return(0,n.jsx)("span",{className:"_flex _items-center",children:(0,n.jsx)("img",{src:"/pro-badge.gif",width:32})})}let a={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,n.jsx)(s,{})]})},"commercial-license":{title:"Commercial License"}},r=[{data:a},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,n.jsx)(s,{})]})},"firmware-version":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,n.jsx)(s,{})]})},"custom-title":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,n.jsx)(s,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,n.jsx)(s,{})]})},"disable-filesystem-ota":{title:(0,n.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,n.jsx)(s,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(2359)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/security/disable-filesystem-ota-26da5e2d6ece505a.js b/_next/static/chunks/pages/security/disable-filesystem-ota-26da5e2d6ece505a.js
new file mode 100644
index 0000000..5811e49
--- /dev/null
+++ b/_next/static/chunks/pages/security/disable-filesystem-ota-26da5e2d6ece505a.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[783],{3051:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/security/disable-filesystem-ota",function(){return i(8235)}])},8235:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>h,useTOC:()=>c});var s=i(5893),a=i(7812),n=i(8609),r=i(8925),l=i(8458),o=i(5956),d=i(5192);function c(e){return[{value:"Enable Filesystem OTA",id:"enable-filesystem-ota",depth:4},{value:"Disable Filesystem OTA",id:"disable-filesystem-ota",depth:4},{value:"Get Filesystem OTA mode status",id:"get-filesystem-ota-mode-status",depth:4}]}let h=(0,a.c)(function(e){let{toc:t=c(e)}=e,i={code:"code",h1:"h1",h4:"h4",p:"p",pre:"pre",span:"span",...(0,r.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{children:"Disable Filesystem OTA"}),"\n",(0,s.jsx)(l.Z,{}),"\n",(0,s.jsx)("br",{}),"\n",(0,s.jsx)("img",{src:"/ota-modes.png",alt:"Modes",width:"400px"}),"\n",(0,s.jsx)(i.p,{children:"ElegantOTA allows you to selectively enable or disable OTA modes of your choice for security reasons or when you have a important task running where you don’t want it to get interrupted by an OTA update. UI automatically hides the modes which have been disabled."}),"\n",(0,s.jsx)(i.p,{children:"Using these functions you can enable or disable filesystem updates ( SPIFFS or LittleFS )."}),"\n",(0,s.jsx)(i.h4,{id:t[0].id,children:t[0].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// Pass 'true' to enable Filesystem mode"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setFilesystemMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"false"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]})]})}),"\n",(0,s.jsx)(o.U,{children:(0,s.jsx)(i.p,{children:"All OTA modes are enabled by default on startup (cold boot)."})}),"\n",(0,s.jsx)(i.h4,{id:t[1].id,children:t[1].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// Pass 'false' to disable Filesystem mode"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setFilesystemMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"true"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]})]})}),"\n",(0,s.jsx)(i.h4,{id:t[2].id,children:t[2].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// You can use this logic inside a function if neccessary"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"if"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"checkFilesystemMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() "}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"=="}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" true"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Filesystem mode is enabled"'}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"} "}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"else"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" {"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Filesystem mode is disabled"'}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})})]})},"/security/disable-filesystem-ota",{filePath:"pages/security/disable-filesystem-ota.mdx",timestamp:1730034633e3,pageMap:n.v,frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."},title:"Disable Filesystem OTA"},"undefined"==typeof RemoteContent?c:RemoteContent.useTOC)},8458:(e,t,i)=>{"use strict";i.d(t,{Z:()=>n});var s=i(5893),a=i(5956);function n(){return(0,s.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,s.jsx)(a.U,{type:"info",emoji:(0,s.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,s.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,s.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,s.jsx)("span",{className:"block mb-1",children:(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,s.jsx)("path",{d:"M15 3h6v6"}),(0,s.jsx)("path",{d:"M10 14 21 3"}),(0,s.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>o});var s=i(5893),a=i(512),n=i(5192);let r={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,s.jsx)(n.AV,{className:"_mt-1"}),warning:"⚠️"},l={default:(0,a.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,a.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,a.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,a.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function o({children:e,type:t="default",emoji:i=r[t]}){return(0,s.jsxs)("div",{className:(0,a.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",l[t]),children:[(0,s.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,s.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>r});var s=i(5893);function a(){return(0,s.jsx)("span",{className:"_flex _items-center",children:(0,s.jsx)("img",{src:"/pro-badge.gif",width:32})})}let n={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,s.jsx)(a,{})]})},"commercial-license":{title:"Commercial License"}},r=[{data:n},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,s.jsx)(a,{})]})},"firmware-version":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,s.jsx)(a,{})]})},"custom-title":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,s.jsx)(a,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,s.jsx)(a,{})]})},"disable-filesystem-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,s.jsx)(a,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(3051)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/pages/security/disable-firmware-ota-0fb36fe1defcd66f.js b/_next/static/chunks/pages/security/disable-firmware-ota-0fb36fe1defcd66f.js
new file mode 100644
index 0000000..6b16ab1
--- /dev/null
+++ b/_next/static/chunks/pages/security/disable-firmware-ota-0fb36fe1defcd66f.js
@@ -0,0 +1 @@
+(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[581],{3302:(e,t,i)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/security/disable-firmware-ota",function(){return i(8513)}])},8513:(e,t,i)=>{"use strict";i.r(t),i.d(t,{default:()=>h,useTOC:()=>c});var s=i(5893),a=i(7812),r=i(8609),n=i(8925),l=i(8458),o=i(5956),d=i(5192);function c(e){return[{value:"Enable Firmware OTA",id:"enable-firmware-ota",depth:4},{value:"Disable Firmware OTA",id:"disable-firmware-ota",depth:4},{value:"Get Firmware OTA mode status",id:"get-firmware-ota-mode-status",depth:4}]}let h=(0,a.c)(function(e){let{toc:t=c(e)}=e,i={code:"code",h1:"h1",h4:"h4",p:"p",pre:"pre",span:"span",...(0,n.a)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(i.h1,{children:"Disable Firmware OTA"}),"\n",(0,s.jsx)(l.Z,{}),"\n",(0,s.jsx)("br",{}),"\n",(0,s.jsx)("img",{src:"/ota-modes.png",alt:"Modes",width:"400px"}),"\n",(0,s.jsx)(i.p,{children:"ElegantOTA allows you to selectively enable or disable OTA modes of your choice for security reasons or when you have a important task running where you don’t want it to get interrupted by an OTA update. UI automatically hides the modes which have been disabled."}),"\n",(0,s.jsx)(o.U,{type:"warning",emoji:"⚠️",children:(0,s.jsx)(i.p,{children:"This function should be used very carefully as it blocks firmware update! If by mistake this is left disabled, your device will not be recoverable by an OTA update."})}),"\n",(0,s.jsx)(i.h4,{id:t[0].id,children:t[0].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// Pass 'true' to enable Firmware mode"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setFirmwareMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"true"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]})]})}),"\n",(0,s.jsx)(o.U,{children:(0,s.jsx)(i.p,{children:"All OTA modes are enabled by default on startup (cold boot)."})}),"\n",(0,s.jsx)(i.h4,{id:t[1].id,children:t[1].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// Pass 'false' to disable Firmware mode"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"setFirmwareMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:"false"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]})]})}),"\n",(0,s.jsx)(i.h4,{id:t[2].id,children:t[2].value}),"\n",(0,s.jsx)(i.pre,{icon:d.$P,tabIndex:"0","data-language":"cpp","data-word-wrap":"",children:(0,s.jsxs)(i.code,{children:[(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#6A737D","--shiki-dark":"#6A737D"},children:"// You can use this logic inside a function if neccessary"})}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"if"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"(ElegantOTA."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"checkFirmwareMode"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"() "}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"=="}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#005CC5","--shiki-dark":"#79B8FF"},children:" true"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:") {"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Firmware mode is enabled"'}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"} "}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#D73A49","--shiki-dark":"#F97583"},children:"else"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" {"})]}),"\n",(0,s.jsxs)(i.span,{children:[(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:" Serial."}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#B392F0"},children:"println"}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"("}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#032F62","--shiki-dark":"#9ECBFF"},children:'"Firmware mode is disabled"'}),(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:");"})]}),"\n",(0,s.jsx)(i.span,{children:(0,s.jsx)(i.span,{style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"},children:"}"})})]})})]})},"/security/disable-firmware-ota",{filePath:"pages/security/disable-firmware-ota.mdx",timestamp:1730034633e3,pageMap:r.v,frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."},title:"Disable Firmware OTA"},"undefined"==typeof RemoteContent?c:RemoteContent.useTOC)},8458:(e,t,i)=>{"use strict";i.d(t,{Z:()=>r});var s=i(5893),a=i(5956);function r(){return(0,s.jsx)("a",{href:"https://elegantota.pro",target:"_blank",children:(0,s.jsx)(a.U,{type:"info",emoji:(0,s.jsx)("img",{src:"/pro-badge.gif",className:"block",alt:"",width:48}),children:(0,s.jsxs)("div",{className:"flex flex-row items-center gap-2",children:[(0,s.jsx)("span",{children:"This feature is only available in ElegantOTA Pro"}),(0,s.jsx)("span",{className:"block mb-1",children:(0,s.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round",class:"lucide lucide-external-link",children:[(0,s.jsx)("path",{d:"M15 3h6v6"}),(0,s.jsx)("path",{d:"M10 14 21 3"}),(0,s.jsx)("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})})]})})})}},5956:(e,t,i)=>{"use strict";i.d(t,{U:()=>o});var s=i(5893),a=i(512),r=i(5192);let n={default:"\uD83D\uDCA1",error:"\uD83D\uDEAB",info:(0,s.jsx)(r.AV,{className:"_mt-1"}),warning:"⚠️"},l={default:(0,a.Z)("_border-orange-100 _bg-orange-50 _text-orange-800 dark:_border-orange-400/30 dark:_bg-orange-400/20 dark:_text-orange-300"),error:(0,a.Z)("_border-red-200 _bg-red-100 _text-red-900 dark:_border-red-200/30 dark:_bg-red-900/30 dark:_text-red-200"),info:(0,a.Z)("_border-blue-200 _bg-blue-100 _text-blue-900 dark:_border-blue-200/30 dark:_bg-blue-900/30 dark:_text-blue-200"),warning:(0,a.Z)("_border-yellow-100 _bg-yellow-50 _text-yellow-900 dark:_border-yellow-200/30 dark:_bg-yellow-700/30 dark:_text-yellow-200")};function o({children:e,type:t="default",emoji:i=n[t]}){return(0,s.jsxs)("div",{className:(0,a.Z)("nextra-callout _overflow-x-auto _mt-6 _flex _rounded-lg _border _py-2 ltr:_pr-4 rtl:_pl-4","contrast-more:_border-current contrast-more:dark:_border-current",l[t]),children:[(0,s.jsx)("div",{className:"_select-none _text-xl ltr:_pl-3 ltr:_pr-2 rtl:_pr-3 rtl:_pl-2",style:{fontFamily:'"Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"'},children:i}),(0,s.jsx)("div",{className:"_w-full _min-w-0 _leading-7",children:e})]})}},8609:(e,t,i)=>{"use strict";i.d(t,{v:()=>n});var s=i(5893);function a(){return(0,s.jsx)("span",{className:"_flex _items-center",children:(0,s.jsx)("img",{src:"/pro-badge.gif",width:32})})}let r={index:{title:"Introduction"},"getting-started":{title:"Getting Started",open:!0},security:{title:"Security",open:!0},features:{title:"Features",head:{titleTemplate:"%s - Features"},open:!0},branding:{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Branding ",(0,s.jsx)(a,{})]})},"commercial-license":{title:"Commercial License"}},n=[{data:r},{name:"404",route:"/404",frontMatter:{title:"Page Not Found",description:"This page could not be found. It looks like you've followed a broken link or entered a URL that doesn't exist anymore on this site."}},{name:"branding",route:"/branding",frontMatter:{title:"Branding",description:"Learn how to customize the logo displayed on the ElegantOTA portal during OTA updates. This guide covers preparing your logo, converting it to a byte array, and modifying the necessary files in the ElegantOTA library."}},{name:"commercial-license",route:"/commercial-license",frontMatter:{title:"Commercial License",description:"Comparison between ElegantOTA Lite (open-source, AGPL-3.0) and ElegantOTA Pro (commercial license). Covers licensing terms, usage restrictions, and support options for each version."}},{name:"features",route:"/features",children:[{data:{"auto-reboot":{title:"Auto Reboot"},callbacks:{title:"Callbacks"},"hardware-id":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Hardware ID ",(0,s.jsx)(a,{})]})},"firmware-version":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Firmware Version ",(0,s.jsx)(a,{})]})},"custom-title":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Custom Title ",(0,s.jsx)(a,{})]})}}},{name:"auto-reboot",route:"/features/auto-reboot",frontMatter:{title:"Auto Reboot",description:"Learn how to control the automatic reboot feature in ElegantOTA after successful OTA updates. This guide explains how to enable or disable auto-reboot functionality using the setAutoReboot function."}},{name:"callbacks",route:"/features/callbacks",frontMatter:{title:"Callbacks",description:"Explore ElegantOTA's callback functions for customizing the OTA update process. Learn how to use onStart, onProgress, and onEnd callbacks to execute specific functions at different stages of the update."}},{name:"custom-title",route:"/features/custom-title",frontMatter:{title:"Custom Title",description:"Learn how to customize the title of your ElegantOTA update portal using the setTitle() function. This guide explains how to set a personalized title for your OTA update interface."}},{name:"firmware-version",route:"/features/firmware-version",frontMatter:{title:"Firmware Version",description:"Learn how to use ElegantOTA's Firmware Version feature to manage and track the software running on your IoT devices. This guide covers setting firmware versions, use cases, and best practices."}},{name:"hardware-id",route:"/features/hardware-id",frontMatter:{title:"Hardware ID",description:"Learn about ElegantOTA's Hardware ID feature for uniquely identifying devices in your network. This guide covers setting hardware IDs, best practices, and how to use this feature effectively in your IoT projects."}}]},{name:"getting-started",route:"/getting-started",children:[{data:{installation:{title:"Installation"},integration:{title:"Integration Guide"},examples:{title:"Examples"},"async-mode":{title:"Async Mode"}}},{name:"async-mode",route:"/getting-started/async-mode",frontMatter:{title:"Async Mode",description:"Enable asynchronous web server functionality for OTA updates in ElegantOTA. Learn about the benefits, recommended dependencies, and how to enable async mode for different platforms including ESP8266, ESP32, and RP2040."}},{name:"examples",route:"/getting-started/examples",frontMatter:{title:"Examples",description:"Explore ElegantOTA's example setups: Demo and Async Demo. Learn about integrating OTA updates using different web server types, and choose the best option for your project needs."}},{name:"installation",route:"/getting-started/installation",frontMatter:{title:"Installation",description:"Learn how to install ElegantOTA for various platforms including Arduino IDE and PlatformIO. This guide covers both Library Manager and manual installation methods, with special instructions for PlatformIO users."}},{name:"integration",route:"/getting-started/integration",frontMatter:{title:"Integration",description:"Integrate ElegantOTA into your existing projects with ease. This guide provides step-by-step instructions for adding ElegantOTA to your web server code, including setup and loop functions for seamless OTA updates."}}]},{name:"index",route:"/",frontMatter:{title:"Introduction",description:"An overview of ElegantOTA, a user-friendly interface for over-the-air firmware and filesystem updates, featuring quick setup and detailed progress tracking."}},{name:"security",route:"/security",children:[{data:{authentication:"Authentication","disable-firmware-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Firmware OTA ",(0,s.jsx)(a,{})]})},"disable-filesystem-ota":{title:(0,s.jsxs)("span",{className:"flex items-center justify-center gap-2",children:["Disable Filesystem OTA ",(0,s.jsx)(a,{})]})}}},{name:"authentication",route:"/security/authentication",frontMatter:{title:"Authentication",description:"Learn how to implement and manage authentication in ElegantOTA to enhance the security of your IoT devices. This guide covers setup, usage, best practices, and use cases for the authentication feature."}},{name:"disable-filesystem-ota",route:"/security/disable-filesystem-ota",frontMatter:{title:"Disable Filesystem OTA",description:"Learn how to selectively enable or disable filesystem OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of filesystem OTA mode."}},{name:"disable-firmware-ota",route:"/security/disable-firmware-ota",frontMatter:{title:"Disable Firmware OTA",description:"Learn how to selectively enable or disable firmware OTA updates in ElegantOTA for enhanced security and control. This guide covers enabling, disabling, and checking the status of firmware OTA mode."}}]}]}},e=>{var t=t=>e(e.s=t);e.O(0,[812,888,774,179],()=>t(3302)),_N_E=e.O()}]);
\ No newline at end of file
diff --git a/_next/static/chunks/polyfills-42372ed130431b0a.js b/_next/static/chunks/polyfills-42372ed130431b0a.js
new file mode 100644
index 0000000..ab422b9
--- /dev/null
+++ b/_next/static/chunks/polyfills-42372ed130431b0a.js
@@ -0,0 +1 @@
+!function(){var t="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function e(t){var e={exports:{}};return t(e,e.exports),e.exports}var r,n,o=function(t){return t&&t.Math===Math&&t},i=o("object"==typeof globalThis&&globalThis)||o("object"==typeof window&&window)||o("object"==typeof self&&self)||o("object"==typeof t&&t)||o("object"==typeof t&&t)||function(){return this}()||Function("return this")(),a=function(t){try{return!!t()}catch(t){return!0}},u=!a(function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}),s=!a(function(){var t=function(){}.bind();return"function"!=typeof t||t.hasOwnProperty("prototype")}),c=Function.prototype.call,f=s?c.bind(c):function(){return c.apply(c,arguments)},l={}.propertyIsEnumerable,h=Object.getOwnPropertyDescriptor,p=h&&!l.call({1:2},1)?function(t){var e=h(this,t);return!!e&&e.enumerable}:l,v={f:p},d=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}},g=Function.prototype,y=g.call,m=s&&g.bind.bind(y,y),b=s?m:function(t){return function(){return y.apply(t,arguments)}},w=b({}.toString),S=b("".slice),E=function(t){return S(w(t),8,-1)},O=Object,x=b("".split),R=a(function(){return!O("z").propertyIsEnumerable(0)})?function(t){return"String"===E(t)?x(t,""):O(t)}:O,P=function(t){return null==t},A=TypeError,j=function(t){if(P(t))throw new A("Can't call method on "+t);return t},k=function(t){return R(j(t))},I="object"==typeof document&&document.all,T=void 0===I&&void 0!==I?function(t){return"function"==typeof t||t===I}:function(t){return"function"==typeof t},M=function(t){return"object"==typeof t?null!==t:T(t)},L=function(t,e){return arguments.length<2?T(r=i[t])?r:void 0:i[t]&&i[t][e];var r},U=b({}.isPrototypeOf),N=i.navigator,C=N&&N.userAgent,_=C?String(C):"",F=i.process,B=i.Deno,D=F&&F.versions||B&&B.version,z=D&&D.v8;z&&(n=(r=z.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&_&&(!(r=_.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=_.match(/Chrome\/(\d+)/))&&(n=+r[1]);var W=n,q=i.String,H=!!Object.getOwnPropertySymbols&&!a(function(){var t=Symbol("symbol detection");return!q(t)||!(Object(t)instanceof Symbol)||!Symbol.sham&&W&&W<41}),$=H&&!Symbol.sham&&"symbol"==typeof Symbol.iterator,K=Object,G=$?function(t){return"symbol"==typeof t}:function(t){var e=L("Symbol");return T(e)&&U(e.prototype,K(t))},V=String,Y=function(t){try{return V(t)}catch(t){return"Object"}},X=TypeError,J=function(t){if(T(t))return t;throw new X(Y(t)+" is not a function")},Q=function(t,e){var r=t[e];return P(r)?void 0:J(r)},Z=TypeError,tt=Object.defineProperty,et=function(t,e){try{tt(i,t,{value:e,configurable:!0,writable:!0})}catch(r){i[t]=e}return e},rt=e(function(t){var e="__core-js_shared__",r=t.exports=i[e]||et(e,{});(r.versions||(r.versions=[])).push({version:"3.38.1",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.38.1/LICENSE",source:"https://github.com/zloirock/core-js"})}),nt=function(t,e){return rt[t]||(rt[t]=e||{})},ot=Object,it=function(t){return ot(j(t))},at=b({}.hasOwnProperty),ut=Object.hasOwn||function(t,e){return at(it(t),e)},st=0,ct=Math.random(),ft=b(1..toString),lt=function(t){return"Symbol("+(void 0===t?"":t)+")_"+ft(++st+ct,36)},ht=i.Symbol,pt=nt("wks"),vt=$?ht.for||ht:ht&&ht.withoutSetter||lt,dt=function(t){return ut(pt,t)||(pt[t]=H&&ut(ht,t)?ht[t]:vt("Symbol."+t)),pt[t]},gt=TypeError,yt=dt("toPrimitive"),mt=function(t,e){if(!M(t)||G(t))return t;var r,n=Q(t,yt);if(n){if(void 0===e&&(e="default"),r=f(n,t,e),!M(r)||G(r))return r;throw new gt("Can't convert object to primitive value")}return void 0===e&&(e="number"),function(t,e){var r,n;if("string"===e&&T(r=t.toString)&&!M(n=f(r,t)))return n;if(T(r=t.valueOf)&&!M(n=f(r,t)))return n;if("string"!==e&&T(r=t.toString)&&!M(n=f(r,t)))return n;throw new Z("Can't convert object to primitive value")}(t,e)},bt=function(t){var e=mt(t,"string");return G(e)?e:e+""},wt=i.document,St=M(wt)&&M(wt.createElement),Et=function(t){return St?wt.createElement(t):{}},Ot=!u&&!a(function(){return 7!==Object.defineProperty(Et("div"),"a",{get:function(){return 7}}).a}),xt=Object.getOwnPropertyDescriptor,Rt={f:u?xt:function(t,e){if(t=k(t),e=bt(e),Ot)try{return xt(t,e)}catch(t){}if(ut(t,e))return d(!f(v.f,t,e),t[e])}},Pt=u&&a(function(){return 42!==Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype}),At=String,jt=TypeError,kt=function(t){if(M(t))return t;throw new jt(At(t)+" is not an object")},It=TypeError,Tt=Object.defineProperty,Mt=Object.getOwnPropertyDescriptor,Lt="enumerable",Ut="configurable",Nt="writable",Ct={f:u?Pt?function(t,e,r){if(kt(t),e=bt(e),kt(r),"function"==typeof t&&"prototype"===e&&"value"in r&&Nt in r&&!r[Nt]){var n=Mt(t,e);n&&n[Nt]&&(t[e]=r.value,r={configurable:Ut in r?r[Ut]:n[Ut],enumerable:Lt in r?r[Lt]:n[Lt],writable:!1})}return Tt(t,e,r)}:Tt:function(t,e,r){if(kt(t),e=bt(e),kt(r),Ot)try{return Tt(t,e,r)}catch(t){}if("get"in r||"set"in r)throw new It("Accessors not supported");return"value"in r&&(t[e]=r.value),t}},_t=u?function(t,e,r){return Ct.f(t,e,d(1,r))}:function(t,e,r){return t[e]=r,t},Ft=Function.prototype,Bt=u&&Object.getOwnPropertyDescriptor,Dt=ut(Ft,"name"),zt={EXISTS:Dt,PROPER:Dt&&"something"===function(){}.name,CONFIGURABLE:Dt&&(!u||u&&Bt(Ft,"name").configurable)},Wt=b(Function.toString);T(rt.inspectSource)||(rt.inspectSource=function(t){return Wt(t)});var qt,Ht,$t,Kt=rt.inspectSource,Gt=i.WeakMap,Vt=T(Gt)&&/native code/.test(String(Gt)),Yt=nt("keys"),Xt=function(t){return Yt[t]||(Yt[t]=lt(t))},Jt={},Qt="Object already initialized",Zt=i.TypeError;if(Vt||rt.state){var te=rt.state||(rt.state=new(0,i.WeakMap));te.get=te.get,te.has=te.has,te.set=te.set,qt=function(t,e){if(te.has(t))throw new Zt(Qt);return e.facade=t,te.set(t,e),e},Ht=function(t){return te.get(t)||{}},$t=function(t){return te.has(t)}}else{var ee=Xt("state");Jt[ee]=!0,qt=function(t,e){if(ut(t,ee))throw new Zt(Qt);return e.facade=t,_t(t,ee,e),e},Ht=function(t){return ut(t,ee)?t[ee]:{}},$t=function(t){return ut(t,ee)}}var re,ne={set:qt,get:Ht,has:$t,enforce:function(t){return $t(t)?Ht(t):qt(t,{})},getterFor:function(t){return function(e){var r;if(!M(e)||(r=Ht(e)).type!==t)throw new Zt("Incompatible receiver, "+t+" required");return r}}},oe=e(function(t){var e=zt.CONFIGURABLE,r=ne.enforce,n=ne.get,o=String,i=Object.defineProperty,s=b("".slice),c=b("".replace),f=b([].join),l=u&&!a(function(){return 8!==i(function(){},"length",{value:8}).length}),h=String(String).split("String"),p=t.exports=function(t,n,a){"Symbol("===s(o(n),0,7)&&(n="["+c(o(n),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),a&&a.getter&&(n="get "+n),a&&a.setter&&(n="set "+n),(!ut(t,"name")||e&&t.name!==n)&&(u?i(t,"name",{value:n,configurable:!0}):t.name=n),l&&a&&ut(a,"arity")&&t.length!==a.arity&&i(t,"length",{value:a.arity});try{a&&ut(a,"constructor")&&a.constructor?u&&i(t,"prototype",{writable:!1}):t.prototype&&(t.prototype=void 0)}catch(t){}var p=r(t);return ut(p,"source")||(p.source=f(h,"string"==typeof n?n:"")),t};Function.prototype.toString=p(function(){return T(this)&&n(this).source||Kt(this)},"toString")}),ie=function(t,e,r,n){n||(n={});var o=n.enumerable,i=void 0!==n.name?n.name:e;if(T(r)&&oe(r,i,n),n.global)o?t[e]=r:et(e,r);else{try{n.unsafe?t[e]&&(o=!0):delete t[e]}catch(t){}o?t[e]=r:Ct.f(t,e,{value:r,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return t},ae=Math.ceil,ue=Math.floor,se=Math.trunc||function(t){var e=+t;return(e>0?ue:ae)(e)},ce=function(t){var e=+t;return e!=e||0===e?0:se(e)},fe=Math.max,le=Math.min,he=function(t,e){var r=ce(t);return r<0?fe(r+e,0):le(r,e)},pe=Math.min,ve=function(t){var e=ce(t);return e>0?pe(e,9007199254740991):0},de=function(t){return ve(t.length)},ge=function(t){return function(e,r,n){var o=k(e),i=de(o);if(0===i)return!t&&-1;var a,u=he(n,i);if(t&&r!=r){for(;i>u;)if((a=o[u++])!=a)return!0}else for(;i>u;u++)if((t||u in o)&&o[u]===r)return t||u||0;return!t&&-1}},ye={includes:ge(!0),indexOf:ge(!1)},me=ye.indexOf,be=b([].push),we=function(t,e){var r,n=k(t),o=0,i=[];for(r in n)!ut(Jt,r)&&ut(n,r)&&be(i,r);for(;e.length>o;)ut(n,r=e[o++])&&(~me(i,r)||be(i,r));return i},Se=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ee=Se.concat("length","prototype"),Oe={f:Object.getOwnPropertyNames||function(t){return we(t,Ee)}},xe={f:Object.getOwnPropertySymbols},Re=b([].concat),Pe=L("Reflect","ownKeys")||function(t){var e=Oe.f(kt(t)),r=xe.f;return r?Re(e,r(t)):e},Ae=function(t,e,r){for(var n=Pe(e),o=Ct.f,i=Rt.f,a=0;aa;)Ct.f(t,r=o[a++],n[r]);return t},Be={f:Fe},De=L("document","documentElement"),ze="prototype",We="script",qe=Xt("IE_PROTO"),He=function(){},$e=function(t){return"<"+We+">"+t+""+We+">"},Ke=function(t){t.write($e("")),t.close();var e=t.parentWindow.Object;return t=null,e},Ge=function(){try{re=new ActiveXObject("htmlfile")}catch(t){}var t,e,r;Ge="undefined"!=typeof document?document.domain&&re?Ke(re):(e=Et("iframe"),r="java"+We+":",e.style.display="none",De.appendChild(e),e.src=String(r),(t=e.contentWindow.document).open(),t.write($e("document.F=Object")),t.close(),t.F):Ke(re);for(var n=Se.length;n--;)delete Ge[ze][Se[n]];return Ge()};Jt[qe]=!0;var Ve=Object.create||function(t,e){var r;return null!==t?(He[ze]=kt(t),r=new He,He[ze]=null,r[qe]=t):r=Ge(),void 0===e?r:Be.f(r,e)},Ye=Ct.f,Xe=dt("unscopables"),Je=Array.prototype;void 0===Je[Xe]&&Ye(Je,Xe,{configurable:!0,value:Ve(null)});var Qe=function(t){Je[Xe][t]=!0};Ce({target:"Array",proto:!0},{at:function(t){var e=it(this),r=de(e),n=ce(t),o=n>=0?n:r+n;return o<0||o>=r?void 0:e[o]}}),Qe("at");var Ze=function(t,e){return b(i[t].prototype[e])},tr=(Ze("Array","at"),TypeError),er=function(t,e){if(!delete t[e])throw new tr("Cannot delete property "+Y(e)+" of "+Y(t))},rr=Math.min,nr=[].copyWithin||function(t,e){var r=it(this),n=de(r),o=he(t,n),i=he(e,n),a=arguments.length>2?arguments[2]:void 0,u=rr((void 0===a?n:he(a,n))-i,n-o),s=1;for(i0;)i in r?r[o]=r[i]:er(r,o),o+=s,i+=s;return r};Ce({target:"Array",proto:!0},{copyWithin:nr}),Qe("copyWithin"),Ze("Array","copyWithin"),Ce({target:"Array",proto:!0},{fill:function(t){for(var e=it(this),r=de(e),n=arguments.length,o=he(n>1?arguments[1]:void 0,r),i=n>2?arguments[2]:void 0,a=void 0===i?r:he(i,r);a>o;)e[o++]=t;return e}}),Qe("fill"),Ze("Array","fill");var or=function(t){if("Function"===E(t))return b(t)},ir=or(or.bind),ar=function(t,e){return J(t),void 0===e?t:s?ir(t,e):function(){return t.apply(e,arguments)}},ur=Array.isArray||function(t){return"Array"===E(t)},sr={};sr[dt("toStringTag")]="z";var cr="[object z]"===String(sr),fr=dt("toStringTag"),lr=Object,hr="Arguments"===E(function(){return arguments}()),pr=cr?E:function(t){var e,r,n;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(r=function(t,e){try{return t[e]}catch(t){}}(e=lr(t),fr))?r:hr?E(e):"Object"===(n=E(e))&&T(e.callee)?"Arguments":n},vr=function(){},dr=L("Reflect","construct"),gr=/^\s*(?:class|function)\b/,yr=b(gr.exec),mr=!gr.test(vr),br=function(t){if(!T(t))return!1;try{return dr(vr,[],t),!0}catch(t){return!1}},wr=function(t){if(!T(t))return!1;switch(pr(t)){case"AsyncFunction":case"GeneratorFunction":case"AsyncGeneratorFunction":return!1}try{return mr||!!yr(gr,Kt(t))}catch(t){return!0}};wr.sham=!0;var Sr=!dr||a(function(){var t;return br(br.call)||!br(Object)||!br(function(){t=!0})||t})?wr:br,Er=dt("species"),Or=Array,xr=function(t,e){return new(function(t){var e;return ur(t)&&(Sr(e=t.constructor)&&(e===Or||ur(e.prototype))||M(e)&&null===(e=e[Er]))&&(e=void 0),void 0===e?Or:e}(t))(0===e?0:e)},Rr=b([].push),Pr=function(t){var e=1===t,r=2===t,n=3===t,o=4===t,i=6===t,a=7===t,u=5===t||i;return function(s,c,f,l){for(var h,p,v=it(s),d=R(v),g=de(d),y=ar(c,f),m=0,b=l||xr,w=e?b(s,g):r||a?b(s,0):void 0;g>m;m++)if((u||m in d)&&(p=y(h=d[m],m,v),t))if(e)w[m]=p;else if(p)switch(t){case 3:return!0;case 5:return h;case 6:return m;case 2:Rr(w,h)}else switch(t){case 4:return!1;case 7:Rr(w,h)}return i?-1:n||o?o:w}},Ar={forEach:Pr(0),map:Pr(1),filter:Pr(2),some:Pr(3),every:Pr(4),find:Pr(5),findIndex:Pr(6),filterReject:Pr(7)},jr=Ar.find,kr="find",Ir=!0;kr in[]&&Array(1)[kr](function(){Ir=!1}),Ce({target:"Array",proto:!0,forced:Ir},{find:function(t){return jr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(kr),Ze("Array","find");var Tr=Ar.findIndex,Mr="findIndex",Lr=!0;Mr in[]&&Array(1)[Mr](function(){Lr=!1}),Ce({target:"Array",proto:!0,forced:Lr},{findIndex:function(t){return Tr(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe(Mr),Ze("Array","findIndex");var Ur=TypeError,Nr=function(t){if(t>9007199254740991)throw Ur("Maximum allowed index exceeded");return t},Cr=function(t,e,r,n,o,i,a,u){for(var s,c,f=o,l=0,h=!!a&&ar(a,u);l0&&ur(s)?(c=de(s),f=Cr(t,e,s,c,f,i-1)-1):(Nr(f+1),t[f]=s),f++),l++;return f},_r=Cr;Ce({target:"Array",proto:!0},{flatMap:function(t){var e,r=it(this),n=de(r);return J(t),(e=xr(r,0)).length=_r(e,r,r,n,0,1,t,arguments.length>1?arguments[1]:void 0),e}}),Qe("flatMap"),Ze("Array","flatMap"),Ce({target:"Array",proto:!0},{flat:function(){var t=arguments.length?arguments[0]:void 0,e=it(this),r=de(e),n=xr(e,0);return n.length=_r(n,e,e,r,0,void 0===t?1:ce(t)),n}}),Qe("flat"),Ze("Array","flat");var Fr,Br,Dr,zr=String,Wr=function(t){if("Symbol"===pr(t))throw new TypeError("Cannot convert a Symbol value to a string");return zr(t)},qr=b("".charAt),Hr=b("".charCodeAt),$r=b("".slice),Kr=function(t){return function(e,r){var n,o,i=Wr(j(e)),a=ce(r),u=i.length;return a<0||a>=u?t?"":void 0:(n=Hr(i,a))<55296||n>56319||a+1===u||(o=Hr(i,a+1))<56320||o>57343?t?qr(i,a):n:t?$r(i,a,a+2):o-56320+(n-55296<<10)+65536}},Gr={codeAt:Kr(!1),charAt:Kr(!0)},Vr=!a(function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}),Yr=Xt("IE_PROTO"),Xr=Object,Jr=Xr.prototype,Qr=Vr?Xr.getPrototypeOf:function(t){var e=it(t);if(ut(e,Yr))return e[Yr];var r=e.constructor;return T(r)&&e instanceof r?r.prototype:e instanceof Xr?Jr:null},Zr=dt("iterator"),tn=!1;[].keys&&("next"in(Dr=[].keys())?(Br=Qr(Qr(Dr)))!==Object.prototype&&(Fr=Br):tn=!0);var en=!M(Fr)||a(function(){var t={};return Fr[Zr].call(t)!==t});en&&(Fr={}),T(Fr[Zr])||ie(Fr,Zr,function(){return this});var rn={IteratorPrototype:Fr,BUGGY_SAFARI_ITERATORS:tn},nn=Ct.f,on=dt("toStringTag"),an=function(t,e,r){t&&!r&&(t=t.prototype),t&&!ut(t,on)&&nn(t,on,{configurable:!0,value:e})},un={},sn=rn.IteratorPrototype,cn=function(){return this},fn=function(t,e,r,n){var o=e+" Iterator";return t.prototype=Ve(sn,{next:d(+!n,r)}),an(t,o,!1),un[o]=cn,t},ln=function(t,e,r){try{return b(J(Object.getOwnPropertyDescriptor(t,e)[r]))}catch(t){}},hn=String,pn=TypeError,vn=function(t){if(function(t){return M(t)||null===t}(t))return t;throw new pn("Can't set "+hn(t)+" as a prototype")},dn=Object.setPrototypeOf||("__proto__"in{}?function(){var t,e=!1,r={};try{(t=ln(Object.prototype,"__proto__","set"))(r,[]),e=r instanceof Array}catch(t){}return function(r,n){return j(r),vn(n),M(r)?(e?t(r,n):r.__proto__=n,r):r}}():void 0),gn=zt.PROPER,yn=zt.CONFIGURABLE,mn=rn.IteratorPrototype,bn=rn.BUGGY_SAFARI_ITERATORS,wn=dt("iterator"),Sn="keys",En="values",On="entries",xn=function(){return this},Rn=function(t,e,r,n,o,i,a){fn(r,e,n);var u,s,c,l=function(t){if(t===o&&g)return g;if(!bn&&t&&t in v)return v[t];switch(t){case Sn:case En:case On:return function(){return new r(this,t)}}return function(){return new r(this)}},h=e+" Iterator",p=!1,v=t.prototype,d=v[wn]||v["@@iterator"]||o&&v[o],g=!bn&&d||l(o),y="Array"===e&&v.entries||d;if(y&&(u=Qr(y.call(new t)))!==Object.prototype&&u.next&&(Qr(u)!==mn&&(dn?dn(u,mn):T(u[wn])||ie(u,wn,xn)),an(u,h,!0)),gn&&o===En&&d&&d.name!==En&&(yn?_t(v,"name",En):(p=!0,g=function(){return f(d,this)})),o)if(s={values:l(En),keys:i?g:l(Sn),entries:l(On)},a)for(c in s)(bn||p||!(c in v))&&ie(v,c,s[c]);else Ce({target:e,proto:!0,forced:bn||p},s);return v[wn]!==g&&ie(v,wn,g,{name:o}),un[e]=g,s},Pn=function(t,e){return{value:t,done:e}},An=Gr.charAt,jn="String Iterator",kn=ne.set,In=ne.getterFor(jn);Rn(String,"String",function(t){kn(this,{type:jn,string:Wr(t),index:0})},function(){var t,e=In(this),r=e.string,n=e.index;return n>=r.length?Pn(void 0,!0):(t=An(r,n),e.index+=t.length,Pn(t,!1))});var Tn=function(t,e,r){var n,o;kt(t);try{if(!(n=Q(t,"return"))){if("throw"===e)throw r;return r}n=f(n,t)}catch(t){o=!0,n=t}if("throw"===e)throw r;if(o)throw n;return kt(n),r},Mn=function(t,e,r,n){try{return n?e(kt(r)[0],r[1]):e(r)}catch(e){Tn(t,"throw",e)}},Ln=dt("iterator"),Un=Array.prototype,Nn=function(t){return void 0!==t&&(un.Array===t||Un[Ln]===t)},Cn=function(t,e,r){u?Ct.f(t,e,d(0,r)):t[e]=r},_n=dt("iterator"),Fn=function(t){if(!P(t))return Q(t,_n)||Q(t,"@@iterator")||un[pr(t)]},Bn=TypeError,Dn=function(t,e){var r=arguments.length<2?Fn(t):e;if(J(r))return kt(f(r,t));throw new Bn(Y(t)+" is not iterable")},zn=Array,Wn=function(t){var e=it(t),r=Sr(this),n=arguments.length,o=n>1?arguments[1]:void 0,i=void 0!==o;i&&(o=ar(o,n>2?arguments[2]:void 0));var a,u,s,c,l,h,p=Fn(e),v=0;if(!p||this===zn&&Nn(p))for(a=de(e),u=r?new this(a):zn(a);a>v;v++)h=i?o(e[v],v):e[v],Cn(u,v,h);else for(u=r?new this:[],l=(c=Dn(e,p)).next;!(s=f(l,c)).done;v++)h=i?Mn(c,o,[s.value,v],!0):s.value,Cn(u,v,h);return u.length=v,u},qn=dt("iterator"),Hn=!1;try{var $n=0,Kn={next:function(){return{done:!!$n++}},return:function(){Hn=!0}};Kn[qn]=function(){return this},Array.from(Kn,function(){throw 2})}catch(t){}var Gn=function(t,e){try{if(!e&&!Hn)return!1}catch(t){return!1}var r=!1;try{var n={};n[qn]=function(){return{next:function(){return{done:r=!0}}}},t(n)}catch(t){}return r},Vn=!Gn(function(t){Array.from(t)});Ce({target:"Array",stat:!0,forced:Vn},{from:Wn});var Yn=i,Xn=ye.includes,Jn=a(function(){return!Array(1).includes()});Ce({target:"Array",proto:!0,forced:Jn},{includes:function(t){return Xn(this,t,arguments.length>1?arguments[1]:void 0)}}),Qe("includes"),Ze("Array","includes");var Qn=Ct.f,Zn="Array Iterator",to=ne.set,eo=ne.getterFor(Zn),ro=Rn(Array,"Array",function(t,e){to(this,{type:Zn,target:k(t),index:0,kind:e})},function(){var t=eo(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);switch(t.kind){case"keys":return Pn(r,!1);case"values":return Pn(e[r],!1)}return Pn([r,e[r]],!1)},"values"),no=un.Arguments=un.Array;if(Qe("keys"),Qe("values"),Qe("entries"),u&&"values"!==no.name)try{Qn(no,"name",{value:"values"})}catch(t){}cr||ie(Object.prototype,"toString",cr?{}.toString:function(){return"[object "+pr(this)+"]"},{unsafe:!0}),Ze("Array","values");var oo=Array,io=a(function(){function t(){}return!(oo.of.call(t)instanceof t)});Ce({target:"Array",stat:!0,forced:io},{of:function(){for(var t=0,e=arguments.length,r=new(Sr(this)?this:oo)(e);e>t;)Cn(r,t,arguments[t++]);return r.length=e,r}});var ao=dt("hasInstance"),uo=Function.prototype;ao in uo||Ct.f(uo,ao,{value:oe(function(t){if(!T(this)||!M(t))return!1;var e=this.prototype;return M(e)?U(e,t):t instanceof this},ao)}),dt("hasInstance");var so=function(t,e,r){return r.get&&oe(r.get,e,{getter:!0}),r.set&&oe(r.set,e,{setter:!0}),Ct.f(t,e,r)},co=zt.EXISTS,fo=Function.prototype,lo=b(fo.toString),ho=/function\b(?:\s|\/\*[\S\s]*?\*\/|\/\/[^\n\r]*[\n\r]+)*([^\s(/]*)/,po=b(ho.exec);u&&!co&&so(fo,"name",{configurable:!0,get:function(){try{return po(ho,lo(this))[1]}catch(t){return""}}});var vo=b([].slice),go=Oe.f,yo="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],mo={f:function(t){return yo&&"Window"===E(t)?function(t){try{return go(t)}catch(t){return vo(yo)}}(t):go(k(t))}},bo=a(function(){if("function"==typeof ArrayBuffer){var t=new ArrayBuffer(8);Object.isExtensible(t)&&Object.defineProperty(t,"a",{value:8})}}),wo=Object.isExtensible,So=a(function(){wo(1)})||bo?function(t){return!!M(t)&&(!bo||"ArrayBuffer"!==E(t))&&(!wo||wo(t))}:wo,Eo=!a(function(){return Object.isExtensible(Object.preventExtensions({}))}),Oo=e(function(t){var e=Ct.f,r=!1,n=lt("meta"),o=0,i=function(t){e(t,n,{value:{objectID:"O"+o++,weakData:{}}})},a=t.exports={enable:function(){a.enable=function(){},r=!0;var t=Oe.f,e=b([].splice),o={};o[n]=1,t(o).length&&(Oe.f=function(r){for(var o=t(r),i=0,a=o.length;ii;i++)if((u=y(t[i]))&&U(Po,u))return u;return new Ro(!1)}n=Dn(t,o)}for(s=h?t.next:n.next;!(c=f(s,n)).done;){try{u=y(c.value)}catch(t){Tn(n,"throw",t)}if("object"==typeof u&&u&&U(Po,u))return u}return new Ro(!1)},jo=TypeError,ko=function(t,e){if(U(e,t))return t;throw new jo("Incorrect invocation")},Io=function(t,e,r){var n,o;return dn&&T(n=e.constructor)&&n!==r&&M(o=n.prototype)&&o!==r.prototype&&dn(t,o),t},To=function(t,e,r){var n=-1!==t.indexOf("Map"),o=-1!==t.indexOf("Weak"),u=n?"set":"add",s=i[t],c=s&&s.prototype,f=s,l={},h=function(t){var e=b(c[t]);ie(c,t,"add"===t?function(t){return e(this,0===t?0:t),this}:"delete"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:"get"===t?function(t){return o&&!M(t)?void 0:e(this,0===t?0:t)}:"has"===t?function(t){return!(o&&!M(t))&&e(this,0===t?0:t)}:function(t,r){return e(this,0===t?0:t,r),this})};if(Ue(t,!T(s)||!(o||c.forEach&&!a(function(){(new s).entries().next()}))))f=r.getConstructor(e,t,n,u),Oo.enable();else if(Ue(t,!0)){var p=new f,v=p[u](o?{}:-0,1)!==p,d=a(function(){p.has(1)}),g=Gn(function(t){new s(t)}),y=!o&&a(function(){for(var t=new s,e=5;e--;)t[u](e,e);return!t.has(-0)});g||((f=e(function(t,e){ko(t,c);var r=Io(new s,t,f);return P(e)||Ao(e,r[u],{that:r,AS_ENTRIES:n}),r})).prototype=c,c.constructor=f),(d||y)&&(h("delete"),h("has"),n&&h("get")),(y||v)&&h(u),o&&c.clear&&delete c.clear}return l[t]=f,Ce({global:!0,constructor:!0,forced:f!==s},l),an(f,t),o||r.setStrong(f,t,n),f},Mo=function(t,e,r){for(var n in e)ie(t,n,e[n],r);return t},Lo=dt("species"),Uo=function(t){var e=L(t);u&&e&&!e[Lo]&&so(e,Lo,{configurable:!0,get:function(){return this}})},No=Oo.fastKey,Co=ne.set,_o=ne.getterFor,Fo={getConstructor:function(t,e,r,n){var o=t(function(t,o){ko(t,i),Co(t,{type:e,index:Ve(null),first:null,last:null,size:0}),u||(t.size=0),P(o)||Ao(o,t[n],{that:t,AS_ENTRIES:r})}),i=o.prototype,a=_o(e),s=function(t,e,r){var n,o,i=a(t),s=c(t,e);return s?s.value=r:(i.last=s={index:o=No(e,!0),key:e,value:r,previous:n=i.last,next:null,removed:!1},i.first||(i.first=s),n&&(n.next=s),u?i.size++:t.size++,"F"!==o&&(i.index[o]=s)),t},c=function(t,e){var r,n=a(t),o=No(e);if("F"!==o)return n.index[o];for(r=n.first;r;r=r.next)if(r.key===e)return r};return Mo(i,{clear:function(){for(var t=a(this),e=t.first;e;)e.removed=!0,e.previous&&(e.previous=e.previous.next=null),e=e.next;t.first=t.last=null,t.index=Ve(null),u?t.size=0:this.size=0},delete:function(t){var e=this,r=a(e),n=c(e,t);if(n){var o=n.next,i=n.previous;delete r.index[n.index],n.removed=!0,i&&(i.next=o),o&&(o.previous=i),r.first===n&&(r.first=o),r.last===n&&(r.last=i),u?r.size--:e.size--}return!!n},forEach:function(t){for(var e,r=a(this),n=ar(t,arguments.length>1?arguments[1]:void 0);e=e?e.next:r.first;)for(n(e.value,e.key,this);e&&e.removed;)e=e.previous},has:function(t){return!!c(this,t)}}),Mo(i,r?{get:function(t){var e=c(this,t);return e&&e.value},set:function(t,e){return s(this,0===t?0:t,e)}}:{add:function(t){return s(this,t=0===t?0:t,t)}}),u&&so(i,"size",{configurable:!0,get:function(){return a(this).size}}),o},setStrong:function(t,e,r){var n=e+" Iterator",o=_o(e),i=_o(n);Rn(t,e,function(t,e){Co(this,{type:n,target:t,state:o(t),kind:e,last:null})},function(){for(var t=i(this),e=t.kind,r=t.last;r&&r.removed;)r=r.previous;return t.target&&(t.last=r=r?r.next:t.state.first)?Pn("keys"===e?r.key:"values"===e?r.value:[r.key,r.value],!1):(t.target=null,Pn(void 0,!0))},r?"entries":"values",!r,!0),Uo(e)}};To("Map",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var Bo=Map.prototype,Do={Map:Map,set:b(Bo.set),get:b(Bo.get),has:b(Bo.has),remove:b(Bo.delete),proto:Bo},zo=Do.Map,Wo=Do.has,qo=Do.get,Ho=Do.set,$o=b([].push),Ko=a(function(){return 1!==zo.groupBy("ab",function(t){return t}).get("a").length});Ce({target:"Map",stat:!0,forced:Ko},{groupBy:function(t,e){j(t),J(e);var r=new zo,n=0;return Ao(t,function(t){var o=e(t,n++);Wo(r,o)?$o(qo(r,o),t):Ho(r,o,[t])}),r}});var Go={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0},Vo=Et("span").classList,Yo=Vo&&Vo.constructor&&Vo.constructor.prototype,Xo=Yo===Object.prototype?void 0:Yo,Jo=dt("iterator"),Qo=ro.values,Zo=function(t,e){if(t){if(t[Jo]!==Qo)try{_t(t,Jo,Qo)}catch(e){t[Jo]=Qo}if(an(t,e,!0),Go[e])for(var r in ro)if(t[r]!==ro[r])try{_t(t,r,ro[r])}catch(e){t[r]=ro[r]}}};for(var ti in Go)Zo(i[ti]&&i[ti].prototype,ti);Zo(Xo,"DOMTokenList");var ei=function(t,e,r){return function(n){var o=it(n),i=arguments.length,a=i>1?arguments[1]:void 0,u=void 0!==a,s=u?ar(a,i>2?arguments[2]:void 0):void 0,c=new t,f=0;return Ao(o,function(t){var n=u?s(t,f++):t;r?e(c,kt(n)[0],n[1]):e(c,n)}),c}};Ce({target:"Map",stat:!0,forced:!0},{from:ei(Do.Map,Do.set,!0)});var ri=function(t,e,r){return function(){for(var n=new t,o=arguments.length,i=0;i1?arguments[1]:void 0);return!1!==di(e,function(t,n){if(!r(t,n,e))return!1},!0)}});var gi=Do.Map,yi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new gi;return di(e,function(t,o){r(t,o,e)&&yi(n,o,t)}),n}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{find:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=di(e,function(t,n){if(r(t,n,e))return{key:n}},!0);return n&&n.key}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(t){return!0===di(oi(this),function(e){if((r=e)===(n=t)||r!=r&&n!=n)return!0;var r,n},!0)}});var mi=Do.Map;Ce({target:"Map",stat:!0,forced:!0},{keyBy:function(t,e){var r=new(T(this)?this:mi);J(e);var n=J(r.set);return Ao(t,function(t){f(n,r,e(t),t)}),r}}),Ce({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(t){var e=di(oi(this),function(e,r){if(e===t)return{key:r}},!0);return e&&e.key}});var bi=Do.Map,wi=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new bi;return di(e,function(t,o){wi(n,r(t,o,e),t)}),n}});var Si=Do.Map,Ei=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(t){var e=oi(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new Si;return di(e,function(t,o){Ei(n,o,r(t,o,e))}),n}});var Oi=Do.set;Ce({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(t){for(var e=oi(this),r=arguments.length,n=0;n1?arguments[1]:void 0);return!0===di(e,function(t,n){if(r(t,n,e))return!0},!0)}});var Ri=TypeError,Pi=Do.get,Ai=Do.has,ji=Do.set;Ce({target:"Map",proto:!0,real:!0,forced:!0},{update:function(t,e){var r=oi(this),n=arguments.length;J(e);var o=Ai(r,t);if(!o&&n<3)throw new Ri("Updating absent value");var i=o?Pi(r,t):J(n>2?arguments[2]:void 0)(t,r);return ji(r,t,e(i,t,r)),r}});var ki=TypeError,Ii=function(t,e){var r,n=kt(this),o=J(n.get),i=J(n.has),a=J(n.set),u=arguments.length>2?arguments[2]:void 0;if(!T(e)&&!T(u))throw new ki("At least one callback required");return f(i,n,t)?(r=f(o,n,t),T(e)&&(r=e(r),f(a,n,t,r))):T(u)&&(r=u(),f(a,n,t,r)),r};Ce({target:"Map",proto:!0,real:!0,forced:!0},{upsert:Ii}),Ce({target:"Map",proto:!0,real:!0,name:"upsert",forced:!0},{updateOrInsert:Ii});var Ti=b(1..valueOf),Mi="\t\n\v\f\r \u2028\u2029\ufeff",Li=b("".replace),Ui=RegExp("^["+Mi+"]+"),Ni=RegExp("(^|[^"+Mi+"])["+Mi+"]+$"),Ci=function(t){return function(e){var r=Wr(j(e));return 1&t&&(r=Li(r,Ui,"")),2&t&&(r=Li(r,Ni,"$1")),r}},_i={start:Ci(1),end:Ci(2),trim:Ci(3)},Fi=Oe.f,Bi=Rt.f,Di=Ct.f,zi=_i.trim,Wi="Number",qi=i[Wi],Hi=qi.prototype,$i=i.TypeError,Ki=b("".slice),Gi=b("".charCodeAt),Vi=Ue(Wi,!qi(" 0o1")||!qi("0b1")||qi("+0x1")),Yi=function(t){var e,r=arguments.length<1?0:qi(function(t){var e=mt(t,"number");return"bigint"==typeof e?e:function(t){var e,r,n,o,i,a,u,s,c=mt(t,"number");if(G(c))throw new $i("Cannot convert a Symbol value to a number");if("string"==typeof c&&c.length>2)if(c=zi(c),43===(e=Gi(c,0))||45===e){if(88===(r=Gi(c,2))||120===r)return NaN}else if(48===e){switch(Gi(c,1)){case 66:case 98:n=2,o=49;break;case 79:case 111:n=8,o=55;break;default:return+c}for(a=(i=Ki(c,2)).length,u=0;uo)return NaN;return parseInt(i,n)}return+c}(e)}(t));return U(Hi,e=this)&&a(function(){Ti(e)})?Io(Object(r),this,Yi):r};Yi.prototype=Hi,Vi&&(Hi.constructor=Yi),Ce({global:!0,constructor:!0,wrap:!0,forced:Vi},{Number:Yi}),Vi&&function(t,e){for(var r,n=u?Fi(e):"MAX_VALUE,MIN_VALUE,NaN,NEGATIVE_INFINITY,POSITIVE_INFINITY,EPSILON,MAX_SAFE_INTEGER,MIN_SAFE_INTEGER,isFinite,isInteger,isNaN,isSafeInteger,parseFloat,parseInt,fromString,range".split(","),o=0;n.length>o;o++)ut(e,r=n[o])&&!ut(t,r)&&Di(t,r,Bi(e,r))}(Yn[Wi],qi),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{EPSILON:Math.pow(2,-52)});var Xi=i.isFinite;Ce({target:"Number",stat:!0},{isFinite:Number.isFinite||function(t){return"number"==typeof t&&Xi(t)}});var Ji=Math.floor,Qi=Number.isInteger||function(t){return!M(t)&&isFinite(t)&&Ji(t)===t};Ce({target:"Number",stat:!0},{isInteger:Qi}),Ce({target:"Number",stat:!0},{isNaN:function(t){return t!=t}});var Zi=Math.abs;Ce({target:"Number",stat:!0},{isSafeInteger:function(t){return Qi(t)&&Zi(t)<=9007199254740991}}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MAX_SAFE_INTEGER:9007199254740991}),Ce({target:"Number",stat:!0,nonConfigurable:!0,nonWritable:!0},{MIN_SAFE_INTEGER:-9007199254740991});var ta=_i.trim,ea=b("".charAt),ra=i.parseFloat,na=i.Symbol,oa=na&&na.iterator,ia=1/ra(Mi+"-0")!=-Infinity||oa&&!a(function(){ra(Object(oa))})?function(t){var e=ta(Wr(t)),r=ra(e);return 0===r&&"-"===ea(e,0)?-0:r}:ra;Ce({target:"Number",stat:!0,forced:Number.parseFloat!==ia},{parseFloat:ia});var aa=_i.trim,ua=i.parseInt,sa=i.Symbol,ca=sa&&sa.iterator,fa=/^[+-]?0x/i,la=b(fa.exec),ha=8!==ua(Mi+"08")||22!==ua(Mi+"0x16")||ca&&!a(function(){ua(Object(ca))})?function(t,e){var r=aa(Wr(t));return ua(r,e>>>0||(la(fa,r)?16:10))}:ua;Ce({target:"Number",stat:!0,forced:Number.parseInt!==ha},{parseInt:ha});var pa=b(v.f),va=b([].push),da=u&&a(function(){var t=Object.create(null);return t[2]=2,!pa(t,2)}),ga=function(t){return function(e){for(var r,n=k(e),o=_e(n),i=da&&null===Qr(n),a=o.length,s=0,c=[];a>s;)r=o[s++],u&&!(i?r in n:pa(n,r))||va(c,t?[r,n[r]]:n[r]);return c}},ya={entries:ga(!0),values:ga(!1)},ma=ya.entries;Ce({target:"Object",stat:!0},{entries:function(t){return ma(t)}}),Ce({target:"Object",stat:!0,sham:!u},{getOwnPropertyDescriptors:function(t){for(var e,r,n=k(t),o=Rt.f,i=Pe(n),a={},u=0;i.length>u;)void 0!==(r=o(n,e=i[u++]))&&Cn(a,e,r);return a}});var ba=a(function(){_e(1)});Ce({target:"Object",stat:!0,forced:ba},{keys:function(t){return _e(it(t))}});var wa=Object.is||function(t,e){return t===e?0!==t||1/t==1/e:t!=t&&e!=e};Ce({target:"Object",stat:!0},{is:wa});var Sa=ya.values;Ce({target:"Object",stat:!0},{values:function(t){return Sa(t)}}),Ce({target:"Object",stat:!0},{hasOwn:ut});var Ea=Function.prototype,Oa=Ea.apply,xa=Ea.call,Ra="object"==typeof Reflect&&Reflect.apply||(s?xa.bind(Oa):function(){return xa.apply(Oa,arguments)}),Pa=!a(function(){Reflect.apply(function(){})});Ce({target:"Reflect",stat:!0,forced:Pa},{apply:function(t,e,r){return Ra(J(t),e,kt(r))}});var Aa=Function,ja=b([].concat),ka=b([].join),Ia={},Ta=s?Aa.bind:function(t){var e=J(this),r=e.prototype,n=vo(arguments,1),o=function(){var r=ja(n,vo(arguments));return this instanceof o?function(t,e,r){if(!ut(Ia,e)){for(var n=[],o=0;ob)","g");return"b"!==t.exec("b").groups.a||"bc"!=="b".replace(t,"$c")}),gs=Oe.f,ys=ne.enforce,ms=dt("match"),bs=i.RegExp,ws=bs.prototype,Ss=i.SyntaxError,Es=b(ws.exec),Os=b("".charAt),xs=b("".replace),Rs=b("".indexOf),Ps=b("".slice),As=/^\?<[^\s\d!#%&*+<=>@^][^\s!#%&*+<=>@^]*>/,js=/a/g,ks=/a/g,Is=new bs(js)!==js,Ts=cs.MISSED_STICKY,Ms=cs.UNSUPPORTED_Y,Ls=u&&(!Is||Ts||ps||ds||a(function(){return ks[ms]=!1,bs(js)!==js||bs(ks)===ks||"/a/i"!==String(bs(js,"i"))}));if(Ue("RegExp",Ls)){for(var Us=function(t,e){var r,n,o,i,a,u,s=U(ws,this),c=es(t),f=void 0===e,l=[],h=t;if(!s&&c&&f&&t.constructor===Us)return t;if((c||U(ws,t))&&(t=t.source,f&&(e=os(h))),t=void 0===t?"":Wr(t),e=void 0===e?"":Wr(e),h=t,ps&&"dotAll"in js&&(n=!!e&&Rs(e,"s")>-1)&&(e=xs(e,/s/g,"")),r=e,Ts&&"sticky"in js&&(o=!!e&&Rs(e,"y")>-1)&&Ms&&(e=xs(e,/y/g,"")),ds&&(i=function(t){for(var e,r=t.length,n=0,o="",i=[],a=Ve(null),u=!1,s=!1,c=0,f="";n<=r;n++){if("\\"===(e=Os(t,n)))e+=Os(t,++n);else if("]"===e)u=!1;else if(!u)switch(!0){case"["===e:u=!0;break;case"("===e:if(o+=e,"?:"===Ps(t,n+1,n+3))continue;Es(As,Ps(t,n+1))&&(n+=2,s=!0),c++;continue;case">"===e&&s:if(""===f||ut(a,f))throw new Ss("Invalid capture group name");a[f]=!0,i[i.length]=[f,c],s=!1,f="";continue}s?f+=e:o+=e}return[o,i]}(t),t=i[0],l=i[1]),a=Io(bs(t,e),s?this:ws,Us),(n||o||l.length)&&(u=ys(a),n&&(u.dotAll=!0,u.raw=Us(function(t){for(var e,r=t.length,n=0,o="",i=!1;n<=r;n++)"\\"!==(e=Os(t,n))?i||"."!==e?("["===e?i=!0:"]"===e&&(i=!1),o+=e):o+="[\\s\\S]":o+=e+Os(t,++n);return o}(t),r)),o&&(u.sticky=!0),l.length&&(u.groups=l)),t!==h)try{_t(a,"source",""===h?"(?:)":h)}catch(t){}return a},Ns=gs(bs),Cs=0;Ns.length>Cs;)ls(Us,bs,Ns[Cs++]);ws.constructor=Us,Us.prototype=ws,ie(i,"RegExp",Us,{constructor:!0})}Uo("RegExp");var _s=zt.PROPER,Fs="toString",Bs=RegExp.prototype,Ds=Bs[Fs];(a(function(){return"/a/b"!==Ds.call({source:"a",flags:"b"})})||_s&&Ds.name!==Fs)&&ie(Bs,Fs,function(){var t=kt(this);return"/"+Wr(t.source)+"/"+Wr(os(t))},{unsafe:!0});var zs=ne.get,Ws=RegExp.prototype,qs=TypeError;u&&ps&&so(Ws,"dotAll",{configurable:!0,get:function(){if(this!==Ws){if("RegExp"===E(this))return!!zs(this).dotAll;throw new qs("Incompatible receiver, RegExp required")}}});var Hs=ne.get,$s=nt("native-string-replace",String.prototype.replace),Ks=RegExp.prototype.exec,Gs=Ks,Vs=b("".charAt),Ys=b("".indexOf),Xs=b("".replace),Js=b("".slice),Qs=function(){var t=/a/,e=/b*/g;return f(Ks,t,"a"),f(Ks,e,"a"),0!==t.lastIndex||0!==e.lastIndex}(),Zs=cs.BROKEN_CARET,tc=void 0!==/()??/.exec("")[1];(Qs||tc||Zs||ps||ds)&&(Gs=function(t){var e,r,n,o,i,a,u,s=this,c=Hs(s),l=Wr(t),h=c.raw;if(h)return h.lastIndex=s.lastIndex,e=f(Gs,h,l),s.lastIndex=h.lastIndex,e;var p=c.groups,v=Zs&&s.sticky,d=f(rs,s),g=s.source,y=0,m=l;if(v&&(d=Xs(d,"y",""),-1===Ys(d,"g")&&(d+="g"),m=Js(l,s.lastIndex),s.lastIndex>0&&(!s.multiline||s.multiline&&"\n"!==Vs(l,s.lastIndex-1))&&(g="(?: "+g+")",m=" "+m,y++),r=new RegExp("^(?:"+g+")",d)),tc&&(r=new RegExp("^"+g+"$(?!\\s)",d)),Qs&&(n=s.lastIndex),o=f(Ks,v?r:s,m),v?o?(o.input=Js(o.input,y),o[0]=Js(o[0],y),o.index=s.lastIndex,s.lastIndex+=o[0].length):s.lastIndex=0:Qs&&o&&(s.lastIndex=s.global?o.index+o[0].length:n),tc&&o&&o.length>1&&f($s,o[0],r,function(){for(i=1;i]*>)/g,Oc=/\$([$&'`]|\d{1,2})/g,xc=function(t,e,r,n,o,i){var a=r+t.length,u=n.length,s=Oc;return void 0!==o&&(o=it(o),s=Ec),wc(i,s,function(i,s){var c;switch(bc(s,0)){case"$":return"$";case"&":return t;case"`":return Sc(e,0,r);case"'":return Sc(e,a);case"<":c=o[Sc(s,1,-1)];break;default:var f=+s;if(0===f)return i;if(f>u){var l=mc(f/10);return 0===l?i:l<=u?void 0===n[l-1]?bc(s,1):n[l-1]+bc(s,1):i}c=n[f-1]}return void 0===c?"":c})},Rc=dt("replace"),Pc=Math.max,Ac=Math.min,jc=b([].concat),kc=b([].push),Ic=b("".indexOf),Tc=b("".slice),Mc="$0"==="a".replace(/./,"$0"),Lc=!!/./[Rc]&&""===/./[Rc]("a","$0"),Uc=!a(function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$")});pc("replace",function(t,e,r){var n=Lc?"$":"$0";return[function(t,r){var n=j(this),o=P(t)?void 0:Q(t,Rc);return o?f(o,t,n,r):f(e,Wr(n),t,r)},function(t,o){var i=kt(this),a=Wr(t);if("string"==typeof o&&-1===Ic(o,n)&&-1===Ic(o,"$<")){var u=r(e,i,a,o);if(u.done)return u.value}var s=T(o);s||(o=Wr(o));var c,f=i.global;f&&(c=i.unicode,i.lastIndex=0);for(var l,h=[];null!==(l=yc(i,a))&&(kc(h,l),f);)""===Wr(l[0])&&(i.lastIndex=dc(a,ve(i.lastIndex),c));for(var p,v="",d=0,g=0;g=d&&(v+=Tc(a,d,b)+y,d=b+m.length)}return v+Tc(a,d)}]},!Uc||!Mc||Lc),pc("search",function(t,e,r){return[function(e){var r=j(this),n=P(e)?void 0:Q(e,t);return n?f(n,e,r):new RegExp(e)[t](Wr(r))},function(t){var n=kt(this),o=Wr(t),i=r(e,n,o);if(i.done)return i.value;var a=n.lastIndex;wa(a,0)||(n.lastIndex=0);var u=yc(n,o);return wa(n.lastIndex,a)||(n.lastIndex=a),null===u?-1:u.index}]});var Nc=dt("species"),Cc=function(t,e){var r,n=kt(t).constructor;return void 0===n||P(r=kt(n)[Nc])?e:La(r)},_c=cs.UNSUPPORTED_Y,Fc=Math.min,Bc=b([].push),Dc=b("".slice),zc=!a(function(){var t=/(?:)/,e=t.exec;t.exec=function(){return e.apply(this,arguments)};var r="ab".split(t);return 2!==r.length||"a"!==r[0]||"b"!==r[1]}),Wc="c"==="abbc".split(/(b)*/)[1]||4!=="test".split(/(?:)/,-1).length||2!=="ab".split(/(?:ab)*/).length||4!==".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length;pc("split",function(t,e,r){var n="0".split(void 0,0).length?function(t,r){return void 0===t&&0===r?[]:f(e,this,t,r)}:e;return[function(e,r){var o=j(this),i=P(e)?void 0:Q(e,t);return i?f(i,e,o,r):f(n,Wr(o),e,r)},function(t,o){var i=kt(this),a=Wr(t);if(!Wc){var u=r(n,i,a,o,n!==e);if(u.done)return u.value}var s=Cc(i,RegExp),c=i.unicode,f=new s(_c?"^(?:"+i.source+")":i,(i.ignoreCase?"i":"")+(i.multiline?"m":"")+(i.unicode?"u":"")+(_c?"g":"y")),l=void 0===o?4294967295:o>>>0;if(0===l)return[];if(0===a.length)return null===yc(f,a)?[a]:[];for(var h=0,p=0,v=[];p0;(n>>>=1)&&(e+=e))1&n&&(r+=e);return r},Kc=b($c),Gc=b("".slice),Vc=Math.ceil,Yc=function(t){return function(e,r,n){var o,i,a=Wr(j(e)),u=ve(r),s=a.length,c=void 0===n?" ":Wr(n);return u<=s||""===c?a:((i=Kc(c,Vc((o=u-s)/c.length))).length>o&&(i=Gc(i,0,o)),t?a+i:i+a)}},Xc={start:Yc(!1),end:Yc(!0)},Jc=Xc.start,Qc=Array,Zc=RegExp.escape,tf=b("".charAt),ef=b("".charCodeAt),rf=b(1.1.toString),nf=b([].join),of=/^[0-9a-z]/i,af=/^[$()*+./?[\\\]^{|}]/,uf=RegExp("^[!\"#%&',\\-:;<=>@`~"+Mi+"]"),sf=b(of.exec),cf={"\t":"t","\n":"n","\v":"v","\f":"f","\r":"r"},ff=function(t){var e=rf(ef(t,0),16);return e.length<3?"\\x"+Jc(e,2,"0"):"\\u"+Jc(e,4,"0")},lf=!Zc||"\\x61b"!==Zc("ab");Ce({target:"RegExp",stat:!0,forced:lf},{escape:function(t){!function(t){if("string"==typeof t)return t;throw new qc("Argument is not a string")}(t);for(var e=t.length,r=Qc(e),n=0;n=56320||n+1>=e||56320!=(64512&ef(t,n+1))?r[n]=ff(o):(r[n]=o,r[++n]=tf(t,n))}}return nf(r,"")}}),To("Set",function(t){return function(){return t(this,arguments.length?arguments[0]:void 0)}},Fo);var hf=Set.prototype,pf={Set:Set,add:b(hf.add),has:b(hf.has),remove:b(hf.delete),proto:hf},vf=pf.has,df=function(t){return vf(t),t},gf=pf.Set,yf=pf.proto,mf=b(yf.forEach),bf=b(yf.keys),wf=bf(new gf).next,Sf=function(t,e,r){return r?ci({iterator:bf(t),next:wf},e):mf(t,e)},Ef=pf.Set,Of=pf.add,xf=function(t){var e=new Ef;return Sf(t,function(t){Of(e,t)}),e},Rf=ln(pf.proto,"size","get")||function(t){return t.size},Pf="Invalid size",Af=RangeError,jf=TypeError,kf=Math.max,If=function(t,e){this.set=t,this.size=kf(e,0),this.has=J(t.has),this.keys=J(t.keys)};If.prototype={getIterator:function(){return{iterator:t=kt(f(this.keys,this.set)),next:t.next,done:!1};var t},includes:function(t){return f(this.has,this.set,t)}};var Tf=function(t){kt(t);var e=+t.size;if(e!=e)throw new jf(Pf);var r=ce(e);if(r<0)throw new Af(Pf);return new If(t,r)},Mf=pf.has,Lf=pf.remove,Uf=function(t){var e=df(this),r=Tf(t),n=xf(e);return Rf(e)<=r.size?Sf(e,function(t){r.includes(t)&&Lf(n,t)}):ci(r.getIterator(),function(t){Mf(e,t)&&Lf(n,t)}),n},Nf=function(t){return{size:t,has:function(){return!1},keys:function(){return{next:function(){return{done:!0}}}}}},Cf=function(t){var e=L("Set");try{(new e)[t](Nf(0));try{return(new e)[t](Nf(-1)),!1}catch(t){return!0}}catch(t){return!1}};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("difference")},{difference:Uf});var _f=pf.Set,Ff=pf.add,Bf=pf.has,Df=function(t){var e=df(this),r=Tf(t),n=new _f;return Rf(e)>r.size?ci(r.getIterator(),function(t){Bf(e,t)&&Ff(n,t)}):Sf(e,function(t){r.includes(t)&&Ff(n,t)}),n},zf=!Cf("intersection")||a(function(){return"3,2"!==String(Array.from(new Set([1,2,3]).intersection(new Set([3,2]))))});Ce({target:"Set",proto:!0,real:!0,forced:zf},{intersection:Df});var Wf=pf.has,qf=function(t){var e=df(this),r=Tf(t);if(Rf(e)<=r.size)return!1!==Sf(e,function(t){if(r.includes(t))return!1},!0);var n=r.getIterator();return!1!==ci(n,function(t){if(Wf(e,t))return Tn(n,"normal",!1)})};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isDisjointFrom")},{isDisjointFrom:qf});var Hf=function(t){var e=df(this),r=Tf(t);return!(Rf(e)>r.size)&&!1!==Sf(e,function(t){if(!r.includes(t))return!1},!0)};Ce({target:"Set",proto:!0,real:!0,forced:!Cf("isSubsetOf")},{isSubsetOf:Hf});var $f=pf.has,Kf=function(t){var e=df(this),r=Tf(t);if(Rf(e)1?arguments[1]:void 0);return!1!==Sf(e,function(t){if(!r(t,t,e))return!1},!0)}});var el=dt("iterator"),rl=Object,nl=L("Set"),ol=function(t){return function(t){return M(t)&&"number"==typeof t.size&&T(t.has)&&T(t.keys)}(t)?t:function(t){if(P(t))return!1;var e=rl(t);return void 0!==e[el]||"@@iterator"in e||ut(un,pr(e))}(t)?new nl(t):t};Ce({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(t){return f(Uf,this,ol(t))}});var il=pf.Set,al=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new il;return Sf(e,function(t){r(t,t,e)&&al(n,t)}),n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{find:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=Sf(e,function(t){if(r(t,t,e))return{value:t}},!0);return n&&n.value}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(t){return f(Df,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(t){return f(qf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(t){return f(Hf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(t){return f(Kf,this,ol(t))}});var ul=b([].join),sl=b([].push);Ce({target:"Set",proto:!0,real:!0,forced:!0},{join:function(t){var e=df(this),r=void 0===t?",":Wr(t),n=[];return Sf(e,function(t){sl(n,t)}),ul(n,r)}});var cl=pf.Set,fl=pf.add;Ce({target:"Set",proto:!0,real:!0,forced:!0},{map:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0),n=new cl;return Sf(e,function(t){fl(n,r(t,t,e))}),n}});var ll=TypeError;Ce({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(t){var e=df(this),r=arguments.length<2,n=r?void 0:arguments[1];if(J(t),Sf(e,function(o){r?(r=!1,n=o):n=t(n,o,o,e)}),r)throw new ll("Reduce of empty set with no initial value");return n}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{some:function(t){var e=df(this),r=ar(t,arguments.length>1?arguments[1]:void 0);return!0===Sf(e,function(t){if(r(t,t,e))return!0},!0)}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(t){return f(Xf,this,ol(t))}}),Ce({target:"Set",proto:!0,real:!0,forced:!0},{union:function(t){return f(Qf,this,ol(t))}});var hl=dt("species"),pl=dt("isConcatSpreadable"),vl=W>=51||!a(function(){var t=[];return t[pl]=!1,t.concat()[0]!==t}),dl=function(t){if(!M(t))return!1;var e=t[pl];return void 0!==e?!!e:ur(t)},gl=!(vl&&(W>=51||!a(function(){var t=[];return(t.constructor={})[hl]=function(){return{foo:1}},1!==t.concat(Boolean).foo})));Ce({target:"Array",proto:!0,arity:1,forced:gl},{concat:function(t){var e,r,n,o,i,a=it(this),u=xr(a,0),s=0;for(e=-1,n=arguments.length;e1?arguments[1]:void 0,n=e.length,o=void 0===r?n:ip(ve(r),n),i=Wr(t);return op(e,o-i.length,o)===i}}),Ze("String","endsWith");var sp=RangeError,cp=String.fromCharCode,fp=String.fromCodePoint,lp=b([].join);Ce({target:"String",stat:!0,arity:1,forced:!!fp&&1!==fp.length},{fromCodePoint:function(t){for(var e,r=[],n=arguments.length,o=0;n>o;){if(e=+arguments[o++],he(e,1114111)!==e)throw new sp(e+" is not a valid code point");r[o]=e<65536?cp(e):cp(55296+((e-=65536)>>10),e%1024+56320)}return lp(r,"")}});var hp=b("".indexOf);Ce({target:"String",proto:!0,forced:!rp("includes")},{includes:function(t){return!!~hp(Wr(j(this)),Wr(tp(t)),arguments.length>1?arguments[1]:void 0)}}),Ze("String","includes"),b(un.String);var pp=/Version\/10(?:\.\d+){1,2}(?: [\w./]+)?(?: Mobile\/\w+)? Safari\//.test(_),vp=Xc.start;Ce({target:"String",proto:!0,forced:pp},{padStart:function(t){return vp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padStart");var dp=Xc.end;Ce({target:"String",proto:!0,forced:pp},{padEnd:function(t){return dp(this,t,arguments.length>1?arguments[1]:void 0)}}),Ze("String","padEnd");var gp=b([].push),yp=b([].join);Ce({target:"String",stat:!0},{raw:function(t){var e=k(it(t).raw),r=de(e);if(!r)return"";for(var n=arguments.length,o=[],i=0;;){if(gp(o,Wr(e[i++])),i===r)return yp(o,"");i1?arguments[1]:void 0,e.length)),n=Wr(t);return bp(e,r,r+n.length)===n}}),Ze("String","startsWith");var Op=zt.PROPER,xp=function(t){return a(function(){return!!Mi[t]()||"
"!=="
"[t]()||Op&&Mi[t].name!==t})},Rp=_i.start,Pp=xp("trimStart")?function(){return Rp(this)}:"".trimStart;Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimLeft!==Pp},{trimLeft:Pp}),Ce({target:"String",proto:!0,name:"trimStart",forced:"".trimStart!==Pp},{trimStart:Pp}),Ze("String","trimLeft");var Ap=_i.end,jp=xp("trimEnd")?function(){return Ap(this)}:"".trimEnd;Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimRight!==jp},{trimRight:jp}),Ce({target:"String",proto:!0,name:"trimEnd",forced:"".trimEnd!==jp},{trimEnd:jp}),Ze("String","trimRight");var kp=Object.getOwnPropertyDescriptor,Ip=function(t){if(!u)return i[t];var e=kp(i,t);return e&&e.value},Tp=dt("iterator"),Mp=!a(function(){var t=new URL("b?a=1&b=2&c=3","https://a"),e=t.searchParams,r=new URLSearchParams("a=1&a=2&b=3"),n="";return t.pathname="c%20d",e.forEach(function(t,r){e.delete("b"),n+=r+t}),r.delete("a",2),r.delete("b",void 0),!e.size&&!u||!e.sort||"https://a/c%20d?a=1&c=3"!==t.href||"3"!==e.get("c")||"a=1"!==String(new URLSearchParams("?a=1"))||!e[Tp]||"a"!==new URL("https://a@b").username||"b"!==new URLSearchParams(new URLSearchParams("a=b")).get("a")||"xn--e1aybc"!==new URL("https://тест").host||"#%D0%B1"!==new URL("https://a#б").hash||"a1c3"!==n||"x"!==new URL("https://x",void 0).host}),Lp=TypeError,Up=function(t,e){if(t0;)t[o]=t[--o];o!==i++&&(t[o]=n)}else for(var a=Np(r/2),u=Cp(vo(t,0,a),e),s=Cp(vo(t,a),e),c=u.length,f=s.length,l=0,h=0;l0&&0!=(t&r);r>>=1)e++;return e},pv=function(t){var e=null;switch(t.length){case 1:e=t[0];break;case 2:e=(31&t[0])<<6|63&t[1];break;case 3:e=(15&t[0])<<12|(63&t[1])<<6|63&t[2];break;case 4:e=(7&t[0])<<18|(63&t[1])<<12|(63&t[2])<<6|63&t[3]}return e>1114111?null:e},vv=function(t){for(var e=(t=nv(t,cv," ")).length,r="",n=0;ne){r+="%",n++;continue}var i=lv(t,n+1);if(i!=i){r+=o,n++;continue}n+=2;var a=hv(i);if(0===a)o=Jp(i);else{if(1===a||a>4){r+="�",n++;continue}for(var u=[i],s=1;se||"%"!==tv(t,n));){var c=lv(t,n+1);if(c!=c){n+=3;break}if(c>191||c<128)break;rv(u,c),n+=2,s++}if(u.length!==a){r+="�";continue}var f=pv(u);null===f?r+="�":o=Qp(f)}}r+=o,n++}return r},dv=/[!'()~]|%20/g,gv={"!":"%21","'":"%27","(":"%28",")":"%29","~":"%7E","%20":"+"},yv=function(t){return gv[t]},mv=function(t){return nv(Xp(t),dv,yv)},bv=fn(function(t,e){zp(this,{type:Dp,target:Wp(t).entries,index:0,kind:e})},Bp,function(){var t=qp(this),e=t.target,r=t.index++;if(!e||r>=e.length)return t.target=null,Pn(void 0,!0);var n=e[r];switch(t.kind){case"keys":return Pn(n.key,!1);case"values":return Pn(n.value,!1)}return Pn([n.key,n.value],!1)},!0),wv=function(t){this.entries=[],this.url=null,void 0!==t&&(M(t)?this.parseObject(t):this.parseQuery("string"==typeof t?"?"===tv(t,0)?uv(t,1):t:Wr(t)))};wv.prototype={type:Bp,bindURL:function(t){this.url=t,this.update()},parseObject:function(t){var e,r,n,o,i,a,u,s=this.entries,c=Fn(t);if(c)for(r=(e=Dn(t,c)).next;!(n=f(r,e)).done;){if(o=Dn(kt(n.value)),(a=f(i=o.next,o)).done||(u=f(i,o)).done||!f(i,o).done)throw new Yp("Expected sequence with length 2");rv(s,{key:Wr(a.value),value:Wr(u.value)})}else for(var l in t)ut(t,l)&&rv(s,{key:l,value:Wr(t[l])})},parseQuery:function(t){if(t)for(var e,r,n=this.entries,o=av(t,"&"),i=0;i0?arguments[0]:void 0));u||(this.size=t.entries.length)},Ev=Sv.prototype;if(Mo(Ev,{append:function(t,e){var r=Wp(this);Up(arguments.length,2),rv(r.entries,{key:Wr(t),value:Wr(e)}),u||this.length++,r.updateURL()},delete:function(t){for(var e=Wp(this),r=Up(arguments.length,1),n=e.entries,o=Wr(t),i=r<2?void 0:arguments[1],a=void 0===i?i:Wr(i),s=0;se.key?1:-1}),t.updateURL()},forEach:function(t){for(var e,r=Wp(this).entries,n=ar(t,arguments.length>1?arguments[1]:void 0),o=0;o1?Rv(arguments[1]):{})}}),T($p)){var Pv=function(t){return ko(this,Gp),new $p(t,arguments.length>1?Rv(arguments[1]):{})};Gp.constructor=Pv,Pv.prototype=Gp,Ce({global:!0,constructor:!0,dontCallGetSet:!0,forced:!0},{Request:Pv})}}var Av={URLSearchParams:Sv,getState:Wp},jv=URLSearchParams,kv=jv.prototype,Iv=b(kv.append),Tv=b(kv.delete),Mv=b(kv.forEach),Lv=b([].push),Uv=new jv("a=1&a=2&b=3");Uv.delete("a",1),Uv.delete("b",void 0),Uv+""!="a=2"&&ie(kv,"delete",function(t){var e=arguments.length,r=e<2?void 0:arguments[1];if(e&&void 0===r)return Tv(this,t);var n=[];Mv(this,function(t,e){Lv(n,{key:e,value:t})}),Up(e,1);for(var o,i=Wr(t),a=Wr(r),u=0,s=0,c=!1,f=n.length;uo;)for(var s,c=R(arguments[o++]),l=i?$v(_e(c),i(c)):_e(c),h=l.length,p=0;h>p;)s=l[p++],u&&!f(a,c,s)||(r[s]=c[s]);return r}:qv,Gv=2147483647,Vv=/[^\0-\u007E]/,Yv=/[.\u3002\uFF0E\uFF61]/g,Xv="Overflow: input needs wider integers to process",Jv=RangeError,Qv=b(Yv.exec),Zv=Math.floor,td=String.fromCharCode,ed=b("".charCodeAt),rd=b([].join),nd=b([].push),od=b("".replace),id=b("".split),ad=b("".toLowerCase),ud=function(t){return t+22+75*(t<26)},sd=function(t,e,r){var n=0;for(t=r?Zv(t/700):t>>1,t+=Zv(t/e);t>455;)t=Zv(t/35),n+=36;return Zv(n+36*t/(t+38))},cd=function(t){var e=[];t=function(t){for(var e=[],r=0,n=t.length;r=55296&&o<=56319&&r=i&&nZv((Gv-a)/l))throw new Jv(Xv);for(a+=(f-i)*l,i=f,r=0;rGv)throw new Jv(Xv);if(n===i){for(var h=a,p=36;;){var v=p<=u?1:p>=u+26?26:p-u;if(h?@[\\\]^|]/,qd=/[\0\t\n\r #/:<>?@[\\\]^|]/,Hd=/^[\u0000-\u0020]+/,$d=/(^|[^\u0000-\u0020])[\u0000-\u0020]+$/,Kd=/[\t\n\r]/g,Gd=function(t){var e,r,n,o;if("number"==typeof t){for(e=[],r=0;r<4;r++)Td(e,t%256),t=md(t/256);return Ed(e,".")}if("object"==typeof t){for(e="",n=function(t){for(var e=null,r=1,n=null,o=0,i=0;i<8;i++)0!==t[i]?(o>r&&(e=n,r=o),n=null,o=0):(null===n&&(n=i),++o);return o>r?n:e}(t),r=0;r<8;r++)o&&0===t[r]||(o&&(o=!1),n===r?(e+=r?":":"::",o=!0):(e+=Od(t[r],16),r<7&&(e+=":")));return"["+e+"]"}return t},Vd={},Yd=Kv({},Vd,{" ":1,'"':1,"<":1,">":1,"`":1}),Xd=Kv({},Yd,{"#":1,"?":1,"{":1,"}":1}),Jd=Kv({},Xd,{"/":1,":":1,";":1,"=":1,"@":1,"[":1,"\\":1,"]":1,"^":1,"|":1}),Qd=function(t,e){var r=fd(t,0);return r>32&&r<127&&!ut(e,t)?t:encodeURIComponent(t)},Zd={ftp:21,file:null,http:80,https:443,ws:80,wss:443},tg=function(t,e){var r;return 2===t.length&&Sd(Nd,wd(t,0))&&(":"===(r=wd(t,1))||!e&&"|"===r)},eg=function(t){var e;return t.length>1&&tg(kd(t,0,2))&&(2===t.length||"/"===(e=wd(t,2))||"\\"===e||"?"===e||"#"===e)},rg=function(t){return"."===t||"%2e"===Id(t)},ng={},og={},ig={},ag={},ug={},sg={},cg={},fg={},lg={},hg={},pg={},vg={},dg={},gg={},yg={},mg={},bg={},wg={},Sg={},Eg={},Og={},xg=function(t,e,r){var n,o,i,a=Wr(t);if(e){if(o=this.parse(a))throw new gd(o);this.searchParams=null}else{if(void 0!==r&&(n=new xg(r,!0)),o=this.parse(a,null,n))throw new gd(o);(i=vd(new pd)).bindURL(this),this.searchParams=i}};xg.prototype={type:"URL",parse:function(t,e,r){var n,o,i,a,u,s=this,c=e||ng,f=0,l="",h=!1,p=!1,v=!1;for(t=Wr(t),e||(s.scheme="",s.username="",s.password="",s.host=null,s.port=null,s.path=[],s.query=null,s.fragment=null,s.cannotBeABaseURL=!1,t=Pd(t,Hd,""),t=Pd(t,$d,"$1")),t=Pd(t,Kd,""),n=Wn(t);f<=n.length;){switch(o=n[f],c){case ng:if(!o||!Sd(Nd,o)){if(e)return Md;c=ig;continue}l+=Id(o),c=og;break;case og:if(o&&(Sd(Cd,o)||"+"===o||"-"===o||"."===o))l+=Id(o);else{if(":"!==o){if(e)return Md;l="",c=ig,f=0;continue}if(e&&(s.isSpecial()!==ut(Zd,l)||"file"===l&&(s.includesCredentials()||null!==s.port)||"file"===s.scheme&&!s.host))return;if(s.scheme=l,e)return void(s.isSpecial()&&Zd[s.scheme]===s.port&&(s.port=null));l="","file"===s.scheme?c=gg:s.isSpecial()&&r&&r.scheme===s.scheme?c=ag:s.isSpecial()?c=fg:"/"===n[f+1]?(c=ug,f++):(s.cannotBeABaseURL=!0,Rd(s.path,""),c=Sg)}break;case ig:if(!r||r.cannotBeABaseURL&&"#"!==o)return Md;if(r.cannotBeABaseURL&&"#"===o){s.scheme=r.scheme,s.path=vo(r.path),s.query=r.query,s.fragment="",s.cannotBeABaseURL=!0,c=Og;break}c="file"===r.scheme?gg:sg;continue;case ag:if("/"!==o||"/"!==n[f+1]){c=sg;continue}c=lg,f++;break;case ug:if("/"===o){c=hg;break}c=wg;continue;case sg:if(s.scheme=r.scheme,o===Wv)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query;else if("/"===o||"\\"===o&&s.isSpecial())c=cg;else if("?"===o)s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query="",c=Eg;else{if("#"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.path.length--,c=wg;continue}s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og}break;case cg:if(!s.isSpecial()||"/"!==o&&"\\"!==o){if("/"!==o){s.username=r.username,s.password=r.password,s.host=r.host,s.port=r.port,c=wg;continue}c=hg}else c=lg;break;case fg:if(c=lg,"/"!==o||"/"!==wd(l,f+1))continue;f++;break;case lg:if("/"!==o&&"\\"!==o){c=hg;continue}break;case hg:if("@"===o){h&&(l="%40"+l),h=!0,i=Wn(l);for(var d=0;d65535)return Ud;s.port=s.isSpecial()&&m===Zd[s.scheme]?null:m,l=""}if(e)return;c=bg;continue}return Ud}l+=o;break;case gg:if(s.scheme="file","/"===o||"\\"===o)c=yg;else{if(!r||"file"!==r.scheme){c=wg;continue}switch(o){case Wv:s.host=r.host,s.path=vo(r.path),s.query=r.query;break;case"?":s.host=r.host,s.path=vo(r.path),s.query="",c=Eg;break;case"#":s.host=r.host,s.path=vo(r.path),s.query=r.query,s.fragment="",c=Og;break;default:eg(Ed(vo(n,f),""))||(s.host=r.host,s.path=vo(r.path),s.shortenPath()),c=wg;continue}}break;case yg:if("/"===o||"\\"===o){c=mg;break}r&&"file"===r.scheme&&!eg(Ed(vo(n,f),""))&&(tg(r.path[0],!0)?Rd(s.path,r.path[0]):s.host=r.host),c=wg;continue;case mg:if(o===Wv||"/"===o||"\\"===o||"?"===o||"#"===o){if(!e&&tg(l))c=wg;else if(""===l){if(s.host="",e)return;c=bg}else{if(a=s.parseHost(l))return a;if("localhost"===s.host&&(s.host=""),e)return;l="",c=bg}continue}l+=o;break;case bg:if(s.isSpecial()){if(c=wg,"/"!==o&&"\\"!==o)continue}else if(e||"?"!==o)if(e||"#"!==o){if(o!==Wv&&(c=wg,"/"!==o))continue}else s.fragment="",c=Og;else s.query="",c=Eg;break;case wg:if(o===Wv||"/"===o||"\\"===o&&s.isSpecial()||!e&&("?"===o||"#"===o)){if(".."===(u=Id(u=l))||"%2e."===u||".%2e"===u||"%2e%2e"===u?(s.shortenPath(),"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,"")):rg(l)?"/"===o||"\\"===o&&s.isSpecial()||Rd(s.path,""):("file"===s.scheme&&!s.path.length&&tg(l)&&(s.host&&(s.host=""),l=wd(l,0)+":"),Rd(s.path,l)),l="","file"===s.scheme&&(o===Wv||"?"===o||"#"===o))for(;s.path.length>1&&""===s.path[0];)Ad(s.path);"?"===o?(s.query="",c=Eg):"#"===o&&(s.fragment="",c=Og)}else l+=Qd(o,Xd);break;case Sg:"?"===o?(s.query="",c=Eg):"#"===o?(s.fragment="",c=Og):o!==Wv&&(s.path[0]+=Qd(o,Vd));break;case Eg:e||"#"!==o?o!==Wv&&("'"===o&&s.isSpecial()?s.query+="%27":s.query+="#"===o?"%23":Qd(o,Vd)):(s.fragment="",c=Og);break;case Og:o!==Wv&&(s.fragment+=Qd(o,Yd))}f++}},parseHost:function(t){var e,r,n;if("["===wd(t,0)){if("]"!==wd(t,t.length-1))return Ld;if(e=function(t){var e,r,n,o,i,a,u,s=[0,0,0,0,0,0,0,0],c=0,f=null,l=0,h=function(){return wd(t,l)};if(":"===h()){if(":"!==wd(t,1))return;l+=2,f=++c}for(;h();){if(8===c)return;if(":"!==h()){for(e=r=0;r<4&&Sd(zd,h());)e=16*e+yd(h(),16),l++,r++;if("."===h()){if(0===r)return;if(l-=r,c>6)return;for(n=0;h();){if(o=null,n>0){if(!("."===h()&&n<4))return;l++}if(!Sd(_d,h()))return;for(;Sd(_d,h());){if(i=yd(h(),10),null===o)o=i;else{if(0===o)return;o=10*o+i}if(o>255)return;l++}s[c]=256*s[c]+o,2!=++n&&4!==n||c++}if(4!==n)return;break}if(":"===h()){if(l++,!h())return}else if(h())return;s[c++]=e}else{if(null!==f)return;l++,f=++c}}if(null!==f)for(a=c-f,c=7;0!==c&&a>0;)u=s[c],s[c--]=s[f+a-1],s[f+--a]=u;else if(8!==c)return;return s}(kd(t,1,-1)),!e)return Ld;this.host=e}else if(this.isSpecial()){if(t=function(t){var e,r,n=[],o=id(od(ad(t),Yv,"."),".");for(e=0;e4)return t;for(r=[],n=0;n1&&"0"===wd(o,0)&&(i=Sd(Fd,o)?16:8,o=kd(o,8===i?1:2)),""===o)a=0;else{if(!Sd(10===i?Dd:8===i?Bd:zd,o))return t;a=yd(o,i)}Rd(r,a)}for(n=0;n=bd(256,5-e))return null}else if(a>255)return null;for(u=xd(r),n=0;n1?arguments[1]:void 0,n=ld(e,new xg(t,!1,r));u||(e.href=n.serialize(),e.origin=n.getOrigin(),e.protocol=n.getProtocol(),e.username=n.getUsername(),e.password=n.getPassword(),e.host=n.getHost(),e.hostname=n.getHostname(),e.port=n.getPort(),e.pathname=n.getPathname(),e.search=n.getSearch(),e.searchParams=n.getSearchParams(),e.hash=n.getHash())},Pg=Rg.prototype,Ag=function(t,e){return{get:function(){return hd(this)[t]()},set:e&&function(t){return hd(this)[e](t)},configurable:!0,enumerable:!0}};if(u&&(so(Pg,"href",Ag("serialize","setHref")),so(Pg,"origin",Ag("getOrigin")),so(Pg,"protocol",Ag("getProtocol","setProtocol")),so(Pg,"username",Ag("getUsername","setUsername")),so(Pg,"password",Ag("getPassword","setPassword")),so(Pg,"host",Ag("getHost","setHost")),so(Pg,"hostname",Ag("getHostname","setHostname")),so(Pg,"port",Ag("getPort","setPort")),so(Pg,"pathname",Ag("getPathname","setPathname")),so(Pg,"search",Ag("getSearch","setSearch")),so(Pg,"searchParams",Ag("getSearchParams")),so(Pg,"hash",Ag("getHash","setHash"))),ie(Pg,"toJSON",function(){return hd(this).serialize()},{enumerable:!0}),ie(Pg,"toString",function(){return hd(this).serialize()},{enumerable:!0}),dd){var jg=dd.createObjectURL,kg=dd.revokeObjectURL;jg&&ie(Rg,"createObjectURL",ar(jg,dd)),kg&&ie(Rg,"revokeObjectURL",ar(kg,dd))}an(Rg,"URL"),Ce({global:!0,constructor:!0,forced:!Mp,sham:!u},{URL:Rg});var Ig=L("URL"),Tg=Mp&&a(function(){Ig.canParse()}),Mg=a(function(){return 1!==Ig.canParse.length});Ce({target:"URL",stat:!0,forced:!Tg||Mg},{canParse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return!!new Ig(r,n)}catch(t){return!1}}});var Lg=L("URL");Ce({target:"URL",stat:!0,forced:!Mp},{parse:function(t){var e=Up(arguments.length,1),r=Wr(t),n=e<2||void 0===arguments[1]?void 0:Wr(arguments[1]);try{return new Lg(r,n)}catch(t){return null}}}),Ce({target:"URL",proto:!0,enumerable:!0},{toJSON:function(){return f(URL.prototype.toString,this)}});var Ug=WeakMap.prototype,Ng={WeakMap:WeakMap,set:b(Ug.set),get:b(Ug.get),has:b(Ug.has),remove:b(Ug.delete)},Cg=Ng.has,_g=function(t){return Cg(t),t},Fg=Ng.get,Bg=Ng.has,Dg=Ng.set;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{emplace:function(t,e){var r,n,o=_g(this);return Bg(o,t)?(r=Fg(o,t),"update"in e&&(r=e.update(r,t,o),Dg(o,t,r)),r):(n=e.insert(t,o),Dg(o,t,n),n)}}),Ce({target:"WeakMap",stat:!0,forced:!0},{from:ei(Ng.WeakMap,Ng.set,!0)}),Ce({target:"WeakMap",stat:!0,forced:!0},{of:ri(Ng.WeakMap,Ng.set,!0)});var zg=Ng.remove;Ce({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var t,e=_g(this),r=!0,n=0,o=arguments.length;n2&&(n=r,M(o=arguments[2])&&"cause"in o&&_t(n,"cause",o.cause));var s=[];return Ao(t,ny,{that:s}),_t(r,"errors",s),r};dn?dn(oy,ry):Ae(oy,ry,{name:!0});var iy=oy.prototype=Ve(ry.prototype,{constructor:d(1,oy),message:d(1,""),name:d(1,"AggregateError")});Ce({global:!0,constructor:!0,arity:2},{AggregateError:oy});var ay,uy,sy,cy,fy=function(t){return _.slice(0,t.length)===t},ly=fy("Bun/")?"BUN":fy("Cloudflare-Workers")?"CLOUDFLARE":fy("Deno/")?"DENO":fy("Node.js/")?"NODE":i.Bun&&"string"==typeof Bun.version?"BUN":i.Deno&&"object"==typeof Deno.version?"DENO":"process"===E(i.process)?"NODE":i.window&&i.document?"BROWSER":"REST",hy="NODE"===ly,py=/(?:ipad|iphone|ipod).*applewebkit/i.test(_),vy=i.setImmediate,dy=i.clearImmediate,gy=i.process,yy=i.Dispatch,my=i.Function,by=i.MessageChannel,wy=i.String,Sy=0,Ey={},Oy="onreadystatechange";a(function(){ay=i.location});var xy=function(t){if(ut(Ey,t)){var e=Ey[t];delete Ey[t],e()}},Ry=function(t){return function(){xy(t)}},Py=function(t){xy(t.data)},Ay=function(t){i.postMessage(wy(t),ay.protocol+"//"+ay.host)};vy&&dy||(vy=function(t){Up(arguments.length,1);var e=T(t)?t:my(t),r=vo(arguments,1);return Ey[++Sy]=function(){Ra(e,void 0,r)},uy(Sy),Sy},dy=function(t){delete Ey[t]},hy?uy=function(t){gy.nextTick(Ry(t))}:yy&&yy.now?uy=function(t){yy.now(Ry(t))}:by&&!py?(cy=(sy=new by).port2,sy.port1.onmessage=Py,uy=ar(cy.postMessage,cy)):i.addEventListener&&T(i.postMessage)&&!i.importScripts&&ay&&"file:"!==ay.protocol&&!a(Ay)?(uy=Ay,i.addEventListener("message",Py,!1)):uy=Oy in Et("script")?function(t){De.appendChild(Et("script"))[Oy]=function(){De.removeChild(this),xy(t)}}:function(t){setTimeout(Ry(t),0)});var jy={set:vy,clear:dy},ky=function(){this.head=null,this.tail=null};ky.prototype={add:function(t){var e={item:t,next:null},r=this.tail;r?r.next=e:this.head=e,this.tail=e},get:function(){var t=this.head;if(t)return null===(this.head=t.next)&&(this.tail=null),t.item}};var Iy,Ty,My,Ly,Uy,Ny=ky,Cy=/ipad|iphone|ipod/i.test(_)&&"undefined"!=typeof Pebble,_y=/web0s(?!.*chrome)/i.test(_),Fy=jy.set,By=i.MutationObserver||i.WebKitMutationObserver,Dy=i.document,zy=i.process,Wy=i.Promise,qy=Ip("queueMicrotask");if(!qy){var Hy=new Ny,$y=function(){var t,e;for(hy&&(t=zy.domain)&&t.exit();e=Hy.get();)try{e()}catch(t){throw Hy.head&&Iy(),t}t&&t.enter()};py||hy||_y||!By||!Dy?!Cy&&Wy&&Wy.resolve?((Ly=Wy.resolve(void 0)).constructor=Wy,Uy=ar(Ly.then,Ly),Iy=function(){Uy($y)}):hy?Iy=function(){zy.nextTick($y)}:(Fy=ar(Fy,i),Iy=function(){Fy($y)}):(Ty=!0,My=Dy.createTextNode(""),new By($y).observe(My,{characterData:!0}),Iy=function(){My.data=Ty=!Ty}),qy=function(t){Hy.head||Iy(),Hy.add(t)}}var Ky,Gy,Vy,Yy=qy,Xy=function(t){try{return{error:!1,value:t()}}catch(t){return{error:!0,value:t}}},Jy=i.Promise,Qy=dt("species"),Zy=!1,tm=T(i.PromiseRejectionEvent),em=Ue("Promise",function(){var t=Kt(Jy),e=t!==String(Jy);if(!e&&66===W)return!0;if(!W||W<51||!/native code/.test(t)){var r=new Jy(function(t){t(1)}),n=function(t){t(function(){},function(){})};if((r.constructor={})[Qy]=n,!(Zy=r.then(function(){})instanceof n))return!0}return!(e||"BROWSER"!==ly&&"DENO"!==ly||tm)}),rm={CONSTRUCTOR:em,REJECTION_EVENT:tm,SUBCLASSING:Zy},nm=TypeError,om=function(t){var e,r;this.promise=new t(function(t,n){if(void 0!==e||void 0!==r)throw new nm("Bad Promise constructor");e=t,r=n}),this.resolve=J(e),this.reject=J(r)},im={f:function(t){return new om(t)}},am=jy.set,um="Promise",sm=rm.CONSTRUCTOR,cm=rm.REJECTION_EVENT,fm=rm.SUBCLASSING,lm=ne.getterFor(um),hm=ne.set,pm=Jy&&Jy.prototype,vm=Jy,dm=pm,gm=i.TypeError,ym=i.document,mm=i.process,bm=im.f,wm=bm,Sm=!!(ym&&ym.createEvent&&i.dispatchEvent),Em="unhandledrejection",Om=function(t){var e;return!(!M(t)||!T(e=t.then))&&e},xm=function(t,e){var r,n,o,i=e.value,a=1===e.state,u=a?t.ok:t.fail,s=t.resolve,c=t.reject,l=t.domain;try{u?(a||(2===e.rejection&&km(e),e.rejection=1),!0===u?r=i:(l&&l.enter(),r=u(i),l&&(l.exit(),o=!0)),r===t.promise?c(new gm("Promise-chain cycle")):(n=Om(r))?f(n,r,s,c):s(r)):c(i)}catch(t){l&&!o&&l.exit(),c(t)}},Rm=function(t,e){t.notified||(t.notified=!0,Yy(function(){for(var r,n=t.reactions;r=n.get();)xm(r,t);t.notified=!1,e&&!t.rejection&&Am(t)}))},Pm=function(t,e,r){var n,o;Sm?((n=ym.createEvent("Event")).promise=e,n.reason=r,n.initEvent(t,!1,!0),i.dispatchEvent(n)):n={promise:e,reason:r},!cm&&(o=i["on"+t])?o(n):t===Em&&function(t,e){try{1===arguments.length?console.error(t):console.error(t,e)}catch(t){}}("Unhandled promise rejection",r)},Am=function(t){f(am,i,function(){var e,r=t.facade,n=t.value;if(jm(t)&&(e=Xy(function(){hy?mm.emit("unhandledRejection",n,r):Pm(Em,r,n)}),t.rejection=hy||jm(t)?2:1,e.error))throw e.value})},jm=function(t){return 1!==t.rejection&&!t.parent},km=function(t){f(am,i,function(){var e=t.facade;hy?mm.emit("rejectionHandled",e):Pm("rejectionhandled",e,t.value)})},Im=function(t,e,r){return function(n){t(e,n,r)}},Tm=function(t,e,r){t.done||(t.done=!0,r&&(t=r),t.value=e,t.state=2,Rm(t,!0))},Mm=function(t,e,r){if(!t.done){t.done=!0,r&&(t=r);try{if(t.facade===e)throw new gm("Promise can't be resolved itself");var n=Om(e);n?Yy(function(){var r={done:!1};try{f(n,e,Im(Mm,r,t),Im(Tm,r,t))}catch(e){Tm(r,e,t)}}):(t.value=e,t.state=1,Rm(t,!1))}catch(e){Tm({done:!1},e,t)}}};if(sm&&(vm=function(t){ko(this,dm),J(t),f(Ky,this);var e=lm(this);try{t(Im(Mm,e),Im(Tm,e))}catch(t){Tm(e,t)}},(Ky=function(t){hm(this,{type:um,done:!1,notified:!1,parent:!1,reactions:new Ny,rejection:!1,state:0,value:null})}).prototype=ie(dm=vm.prototype,"then",function(t,e){var r=lm(this),n=bm(Cc(this,vm));return r.parent=!0,n.ok=!T(t)||t,n.fail=T(e)&&e,n.domain=hy?mm.domain:void 0,0===r.state?r.reactions.add(n):Yy(function(){xm(n,r)}),n.promise}),Gy=function(){var t=new Ky,e=lm(t);this.promise=t,this.resolve=Im(Mm,e),this.reject=Im(Tm,e)},im.f=bm=function(t){return t===vm||void 0===t?new Gy(t):wm(t)},T(Jy)&&pm!==Object.prototype)){Vy=pm.then,fm||ie(pm,"then",function(t,e){var r=this;return new vm(function(t,e){f(Vy,r,t,e)}).then(t,e)},{unsafe:!0});try{delete pm.constructor}catch(t){}dn&&dn(pm,dm)}Ce({global:!0,constructor:!0,wrap:!0,forced:sm},{Promise:vm}),an(vm,um,!1),Uo(um);var Lm=rm.CONSTRUCTOR||!Gn(function(t){Jy.all(t).then(void 0,function(){})});Ce({target:"Promise",stat:!0,forced:Lm},{all:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),i=[],a=0,u=1;Ao(t,function(t){var s=a++,c=!1;u++,f(r,e,t).then(function(t){c||(c=!0,i[s]=t,--u||n(i))},o)}),--u||n(i)});return i.error&&o(i.value),r.promise}});var Um=Jy&&Jy.prototype;if(Ce({target:"Promise",proto:!0,forced:rm.CONSTRUCTOR,real:!0},{catch:function(t){return this.then(void 0,t)}}),T(Jy)){var Nm=L("Promise").prototype.catch;Um.catch!==Nm&&ie(Um,"catch",Nm,{unsafe:!0})}Ce({target:"Promise",stat:!0,forced:Lm},{race:function(t){var e=this,r=im.f(e),n=r.reject,o=Xy(function(){var o=J(e.resolve);Ao(t,function(t){f(o,e,t).then(r.resolve,n)})});return o.error&&n(o.value),r.promise}}),Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{reject:function(t){var e=im.f(this);return(0,e.reject)(t),e.promise}});var Cm=function(t,e){if(kt(t),M(e)&&e.constructor===t)return e;var r=im.f(t);return(0,r.resolve)(e),r.promise};Ce({target:"Promise",stat:!0,forced:rm.CONSTRUCTOR},{resolve:function(t){return Cm(this,t)}}),Ce({target:"Promise",stat:!0,forced:Lm},{allSettled:function(t){var e=this,r=im.f(e),n=r.resolve,o=r.reject,i=Xy(function(){var r=J(e.resolve),o=[],i=0,a=1;Ao(t,function(t){var u=i++,s=!1;a++,f(r,e,t).then(function(t){s||(s=!0,o[u]={status:"fulfilled",value:t},--a||n(o))},function(t){s||(s=!0,o[u]={status:"rejected",reason:t},--a||n(o))})}),--a||n(o)});return i.error&&o(i.value),r.promise}});var _m="No one promise resolved";Ce({target:"Promise",stat:!0,forced:Lm},{any:function(t){var e=this,r=L("AggregateError"),n=im.f(e),o=n.resolve,i=n.reject,a=Xy(function(){var n=J(e.resolve),a=[],u=0,s=1,c=!1;Ao(t,function(t){var l=u++,h=!1;s++,f(n,e,t).then(function(t){h||c||(c=!0,o(t))},function(t){h||c||(h=!0,a[l]=t,--s||i(new r(a,_m)))})}),--s||i(new r(a,_m))});return a.error&&i(a.value),n.promise}}),Ce({target:"Promise",stat:!0},{withResolvers:function(){var t=im.f(this);return{promise:t.promise,resolve:t.resolve,reject:t.reject}}});var Fm=Jy&&Jy.prototype,Bm=!!Jy&&a(function(){Fm.finally.call({then:function(){}},function(){})});if(Ce({target:"Promise",proto:!0,real:!0,forced:Bm},{finally:function(t){var e=Cc(this,L("Promise")),r=T(t);return this.then(r?function(r){return Cm(e,t()).then(function(){return r})}:t,r?function(r){return Cm(e,t()).then(function(){throw r})}:t)}}),T(Jy)){var Dm=L("Promise").prototype.finally;Fm.finally!==Dm&&ie(Fm,"finally",Dm,{unsafe:!0})}var zm=i.Promise,Wm=!1,qm=!zm||!zm.try||Xy(function(){zm.try(function(t){Wm=8===t},8)}).error||!Wm;Ce({target:"Promise",stat:!0,forced:qm},{try:function(t){var e=arguments.length>1?vo(arguments,1):[],r=im.f(this),n=Xy(function(){return Ra(J(t),void 0,e)});return(n.error?r.reject:r.resolve)(n.value),r.promise}}),Ze("Promise","finally");var Hm="URLSearchParams"in self,$m="Symbol"in self&&"iterator"in Symbol,Km="FileReader"in self&&"Blob"in self&&function(){try{return new Blob,!0}catch(t){return!1}}(),Gm="FormData"in self,Vm="ArrayBuffer"in self;if(Vm)var Ym=["[object Int8Array]","[object Uint8Array]","[object Uint8ClampedArray]","[object Int16Array]","[object Uint16Array]","[object Int32Array]","[object Uint32Array]","[object Float32Array]","[object Float64Array]"],Xm=ArrayBuffer.isView||function(t){return t&&Ym.indexOf(Object.prototype.toString.call(t))>-1};function Jm(t){if("string"!=typeof t&&(t=String(t)),/[^a-z0-9\-#$%&'*+.^_`|~]/i.test(t))throw new TypeError("Invalid character in header field name");return t.toLowerCase()}function Qm(t){return"string"!=typeof t&&(t=String(t)),t}function Zm(t){var e={next:function(){var e=t.shift();return{done:void 0===e,value:e}}};return $m&&(e[Symbol.iterator]=function(){return e}),e}function tb(t){this.map={},t instanceof tb?t.forEach(function(t,e){this.append(e,t)},this):Array.isArray(t)?t.forEach(function(t){this.append(t[0],t[1])},this):t&&Object.getOwnPropertyNames(t).forEach(function(e){this.append(e,t[e])},this)}function eb(t){if(t.bodyUsed)return Promise.reject(new TypeError("Already read"));t.bodyUsed=!0}function rb(t){return new Promise(function(e,r){t.onload=function(){e(t.result)},t.onerror=function(){r(t.error)}})}function nb(t){var e=new FileReader,r=rb(e);return e.readAsArrayBuffer(t),r}function ob(t){if(t.slice)return t.slice(0);var e=new Uint8Array(t.byteLength);return e.set(new Uint8Array(t)),e.buffer}function ib(){return this.bodyUsed=!1,this._initBody=function(t){var e;this._bodyInit=t,t?"string"==typeof t?this._bodyText=t:Km&&Blob.prototype.isPrototypeOf(t)?this._bodyBlob=t:Gm&&FormData.prototype.isPrototypeOf(t)?this._bodyFormData=t:Hm&&URLSearchParams.prototype.isPrototypeOf(t)?this._bodyText=t.toString():Vm&&Km&&(e=t)&&DataView.prototype.isPrototypeOf(e)?(this._bodyArrayBuffer=ob(t.buffer),this._bodyInit=new Blob([this._bodyArrayBuffer])):Vm&&(ArrayBuffer.prototype.isPrototypeOf(t)||Xm(t))?this._bodyArrayBuffer=ob(t):this._bodyText=t=Object.prototype.toString.call(t):this._bodyText="",this.headers.get("content-type")||("string"==typeof t?this.headers.set("content-type","text/plain;charset=UTF-8"):this._bodyBlob&&this._bodyBlob.type?this.headers.set("content-type",this._bodyBlob.type):Hm&&URLSearchParams.prototype.isPrototypeOf(t)&&this.headers.set("content-type","application/x-www-form-urlencoded;charset=UTF-8"))},Km&&(this.blob=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return Promise.resolve(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(new Blob([this._bodyArrayBuffer]));if(this._bodyFormData)throw new Error("could not read FormData body as blob");return Promise.resolve(new Blob([this._bodyText]))},this.arrayBuffer=function(){return this._bodyArrayBuffer?eb(this)||Promise.resolve(this._bodyArrayBuffer):this.blob().then(nb)}),this.text=function(){var t=eb(this);if(t)return t;if(this._bodyBlob)return function(t){var e=new FileReader,r=rb(e);return e.readAsText(t),r}(this._bodyBlob);if(this._bodyArrayBuffer)return Promise.resolve(function(t){for(var e=new Uint8Array(t),r=new Array(e.length),n=0;n-1?e:t}(e.method||this.method||"GET"),this.mode=e.mode||this.mode||null,this.signal=e.signal||this.signal,this.referrer=null,("GET"===this.method||"HEAD"===this.method)&&r)throw new TypeError("Body not allowed for GET or HEAD requests");this._initBody(r)}function sb(t){var e=new FormData;return t.trim().split("&").forEach(function(t){if(t){var r=t.split("="),n=r.shift().replace(/\+/g," "),o=r.join("=").replace(/\+/g," ");e.append(decodeURIComponent(n),decodeURIComponent(o))}}),e}function cb(t,e){e||(e={}),this.type="default",this.status=void 0===e.status?200:e.status,this.ok=this.status>=200&&this.status<300,this.statusText="statusText"in e?e.statusText:"OK",this.headers=new tb(e.headers),this.url=e.url||"",this._initBody(t)}ub.prototype.clone=function(){return new ub(this,{body:this._bodyInit})},ib.call(ub.prototype),ib.call(cb.prototype),cb.prototype.clone=function(){return new cb(this._bodyInit,{status:this.status,statusText:this.statusText,headers:new tb(this.headers),url:this.url})},cb.error=function(){var t=new cb(null,{status:0,statusText:""});return t.type="error",t};var fb=[301,302,303,307,308];cb.redirect=function(t,e){if(-1===fb.indexOf(e))throw new RangeError("Invalid status code");return new cb(null,{status:e,headers:{location:t}})};var lb=self.DOMException;try{new lb}catch(t){(lb=function(t,e){this.message=t,this.name=e;var r=Error(t);this.stack=r.stack}).prototype=Object.create(Error.prototype),lb.prototype.constructor=lb}function hb(t,e){return new Promise(function(r,n){var o=new ub(t,e);if(o.signal&&o.signal.aborted)return n(new lb("Aborted","AbortError"));var i=new XMLHttpRequest;function a(){i.abort()}i.onload=function(){var t,e,n={status:i.status,statusText:i.statusText,headers:(t=i.getAllResponseHeaders()||"",e=new tb,t.replace(/\r?\n[\t ]+/g," ").split(/\r?\n/).forEach(function(t){var r=t.split(":"),n=r.shift().trim();if(n){var o=r.join(":").trim();e.append(n,o)}}),e)};n.url="responseURL"in i?i.responseURL:n.headers.get("X-Request-URL"),r(new cb("response"in i?i.response:i.responseText,n))},i.onerror=function(){n(new TypeError("Network request failed"))},i.ontimeout=function(){n(new TypeError("Network request failed"))},i.onabort=function(){n(new lb("Aborted","AbortError"))},i.open(o.method,o.url,!0),"include"===o.credentials?i.withCredentials=!0:"omit"===o.credentials&&(i.withCredentials=!1),"responseType"in i&&Km&&(i.responseType="blob"),o.headers.forEach(function(t,e){i.setRequestHeader(e,t)}),o.signal&&(o.signal.addEventListener("abort",a),i.onreadystatechange=function(){4===i.readyState&&o.signal.removeEventListener("abort",a)}),i.send(void 0===o._bodyInit?null:o._bodyInit)})}hb.polyfill=!0,self.fetch||(self.fetch=hb,self.Headers=tb,self.Request=ub,self.Response=cb);var pb=Object.getOwnPropertySymbols,vb=Object.prototype.hasOwnProperty,db=Object.prototype.propertyIsEnumerable,gb=function(){try{if(!Object.assign)return!1;var t=new String("abc");if(t[5]="de","5"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e["_"+String.fromCharCode(r)]=r;if("0123456789"!==Object.getOwnPropertyNames(e).map(function(t){return e[t]}).join(""))return!1;var n={};return"abcdefghijklmnopqrst".split("").forEach(function(t){n[t]=t}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},n)).join("")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,n,o=function(t){if(null==t)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(t)}(t),i=1;i{"use strict";var e={},t={};function r(o){var n=t[o];if(void 0!==n)return n.exports;var a=t[o]={exports:{}},i=!0;try{e[o](a,a.exports,r),i=!1}finally{i&&delete t[o]}return a.exports}r.m=e,(()=>{var e=[];r.O=(t,o,n,a)=>{if(o){a=a||0;for(var i=e.length;i>0&&e[i-1][2]>a;i--)e[i]=e[i-1];e[i]=[o,n,a];return}for(var u=1/0,i=0;i=a)&&Object.keys(r.O).every(e=>r.O[e](o[c]))?o.splice(c--,1):(l=!1,a{var t=e&&e.__esModule?()=>e.default:()=>e;return r.d(t,{a:t}),t},(()=>{var e,t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__;r.t=function(o,n){if(1&n&&(o=this(o)),8&n||"object"==typeof o&&o&&(4&n&&o.__esModule||16&n&&"function"==typeof o.then))return o;var a=Object.create(null);r.r(a);var i={};e=e||[null,t({}),t([]),t(t)];for(var u=2&n&&o;"object"==typeof u&&!~e.indexOf(u);u=t(u))Object.getOwnPropertyNames(u).forEach(e=>i[e]=()=>o[e]);return i.default=()=>o,r.d(a,i),a}})(),r.d=(e,t)=>{for(var o in t)r.o(t,o)&&!r.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})},r.f={},r.e=e=>Promise.all(Object.keys(r.f).reduce((t,o)=>(r.f[o](e,t),t),[])),r.u=e=>"static/chunks/"+e+".94dcaf49d61da5b7.js",r.miniCssF=e=>{},r.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),r.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{var e={},t="_N_E:";r.l=(o,n,a,i)=>{if(e[o]){e[o].push(n);return}if(void 0!==a)for(var u,l,c=document.getElementsByTagName("script"),d=0;d{u.onerror=u.onload=null,clearTimeout(p);var n=e[o];if(delete e[o],u.parentNode&&u.parentNode.removeChild(u),n&&n.forEach(e=>e(r)),t)return t(r)},p=setTimeout(f.bind(null,void 0,{type:"timeout",target:u}),12e4);u.onerror=f.bind(null,u.onerror),u.onload=f.bind(null,u.onload),l&&document.head.appendChild(u)}})(),r.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{var e;r.tt=()=>(void 0===e&&(e={createScriptURL:e=>e},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(e=trustedTypes.createPolicy("nextjs#bundler",e))),e)})(),r.tu=e=>r.tt().createScriptURL(e),r.p="/_next/",(()=>{var e={272:0};r.f.j=(t,o)=>{var n=r.o(e,t)?e[t]:void 0;if(0!==n){if(n)o.push(n[2]);else if(272!=t){var a=new Promise((r,o)=>n=e[t]=[r,o]);o.push(n[2]=a);var i=r.p+r.u(t),u=Error();r.l(i,o=>{if(r.o(e,t)&&(0!==(n=e[t])&&(e[t]=void 0),n)){var a=o&&("load"===o.type?"missing":o.type),i=o&&o.target&&o.target.src;u.message="Loading chunk "+t+" failed.\n("+a+": "+i+")",u.name="ChunkLoadError",u.type=a,u.request=i,n[1](u)}},"chunk-"+t,t)}else e[t]=0}},r.O.j=t=>0===e[t];var t=(t,o)=>{var n,a,[i,u,l]=o,c=0;if(i.some(t=>0!==e[t])){for(n in u)r.o(u,n)&&(r.m[n]=u[n]);if(l)var d=l(r)}for(t&&t(o);ccode.nextra-code:not([class*=twoslash-]){overflow-wrap:break-word;border-width:1px;border-color:rgb(0 0 0/var(--tw-border-opacity));--tw-border-opacity:.04;background-color:rgb(0 0 0/var(--tw-bg-opacity));--tw-bg-opacity:.03;border-radius:.375rem;padding:.125rem .25em;font-size:.9em}:not(pre)>code.nextra-code:not([class*=twoslash-]):is(html[class~=dark] *){background-color:#ffffff1a;border-color:#ffffff1a}pre code.nextra-code:not([class*=twoslash-]){display:grid}pre code.nextra-code:not([class*=twoslash-])[data-line-numbers]>span{padding-left:.5rem}pre code.nextra-code:not([class*=twoslash-])[data-line-numbers]>span:before{counter-increment:line;content:counter(line);text-align:right;--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity));min-width:2.6rem;padding-right:1rem;display:inline-block}pre code.nextra-code:not([class*=twoslash-])>span{padding-left:1rem;padding-right:1rem}pre code.nextra-code:not([class*=twoslash-])>span[data-highlighted-line]{background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.1);--tw-shadow:2px 0 currentColor inset;--tw-shadow-colored:inset 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.8)!important}pre code.nextra-code:not([class*=twoslash-])>span[data-highlighted-line]:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.2)}pre code.nextra-code:not([class*=twoslash-])>span [data-highlighted-chars]{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.2);border-radius:.125rem}pre code.nextra-code:not([class*=twoslash-])>span [data-highlighted-chars]:is(html[class~=dark] *){--tw-ring-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.4)}pre code.nextra-code:not([class*=twoslash-])>span [data-highlighted-chars]{background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.2)}pre code.nextra-code:not([class*=twoslash-])>span [data-highlighted-chars]:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/.4)}@media not all and (min-width:768px){html[data-nextra-word-wrap] pre code.nextra-code:not([class*=twoslash-]){white-space:pre-wrap}}.nextra-copy-icon{animation:fade-in .3s forwards}@keyframes fade-in{0%{opacity:0}to{opacity:1}}:root{--twoslash-border-color:#8888;--twoslash-underline-color:currentColor;--twoslash-highlighted-border:195,125,13;--twoslash-popup-bg:#f8f8f8;--twoslash-popup-color:inherit;--twoslash-popup-shadow:#000 0px 1px 4px;--twoslash-docs-color:#888;--twoslash-docs-font:sans-serif;--twoslash-matched-color:inherit;--twoslash-unmatched-color:#888;--twoslash-cursor-color:#8888;--twoslash-error-color:212,86,86;--twoslash-error-bg:rgba(var(--twoslash-error-color),.13);--twoslash-tag-color:55,114,207;--twoslash-tag-warn-color:195,125,13;--twoslash-tag-annotate-color:27,166,115}.dark{--twoslash-popup-bg:#000;--twoslash-border-color:#404040}@media (prefers-reduced-motion:reduce){.twoslash *{transition:none!important}}.twoslash:hover .twoslash-hover{border-color:var(--twoslash-underline-color)}.twoslash-hover{border-bottom:1px dotted #0000;transition:border-color .3s;position:relative}.twoslash-popup-container{z-index:10;color:var(--twoslash-popup-color);border:1px solid var(--twoslash-border-color);text-align:left;border-radius:.25rem;flex-direction:column;margin-top:.375rem;transition-property:opacity;transition-duration:.3s;transition-timing-function:cubic-bezier(.4,0,.2,1);display:inline-flex;position:absolute;transform:translateY(1.1em);background:var(--twoslash-popup-bg)!important}.twoslash-query-presisted .twoslash-popup-container{z-index:9;transform:translateY(1.5em)}.twoslash-popup-arrow{--tw-rotate:-45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y));border-top-width:1px;border-right-width:1px;border-color:var(--twoslash-border-color);background-color:var(--twoslash-popup-bg);pointer-events:none;width:.375rem;height:.375rem;position:absolute;top:-.25rem;left:1em}.twoslash-popup-code,.twoslash-popup-docs{padding:6px 8px}.twoslash-popup-docs{color:var(--twoslash-docs-color);font-size:.875rem;font-family:var(--twoslash-docs-font);border-top:1px solid var(--twoslash-border-color)}.twoslash-popup-docs-tags{font-family:var(--twoslash-docs-font);flex-direction:column;display:flex}.twoslash-popup-docs-tag-name,.twoslash-popup-docs-tags{margin-right:.5em}.twoslash-error-line{background-color:var(--twoslash-error-bg);color:rgb(var(--twoslash-error-color));border-left:3px solid;margin:.2em 0;padding:6px 12px;position:relative}.twoslash-error{background:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%206%203'%20enable-background%3D'new%200%200%206%203'%20height%3D'3'%20width%3D'6'%3E%3Cg%20fill%3D'%23c94824'%3E%3Cpolygon%20points%3D'5.5%2C0%202.5%2C3%201.1%2C3%204.1%2C0'%2F%3E%3Cpolygon%20points%3D'4%2C0%206%2C2%206%2C0.6%205.4%2C0'%2F%3E%3Cpolygon%20points%3D'0%2C2%201%2C3%202.4%2C3%200%2C0.6'%2F%3E%3C%2Fg%3E%3C%2Fsvg%3E") 0 100% repeat-x;padding-bottom:2px}.twoslash-completion-cursor{position:relative}.twoslash-completion-cursor .twoslash-completion-list{background:var(--twoslash-popup-bg);border-width:1px;border-color:var(--twoslash-border-color);border-radius:.25rem;position:absolute;top:.25rem;left:0;transform:translateY(1.2em)}.twoslash-completion-list{width:15rem;padding:.25rem .5rem}.twoslash-completion-list:before{background-color:var(--twoslash-cursor-color);content:" ";width:2px;height:1.4em;position:absolute;top:-1.6em;left:-1px}.twoslash-completion-list li{align-items:center;gap:.25em;line-height:1em;display:flex;overflow:hidden}.twoslash-completion-list li span.twoslash-completions-unmatched{color:var(--twoslash-unmatched-color)}.twoslash-completion-list .deprecated{opacity:.5;text-decoration:line-through}.twoslash-completion-list li span.twoslash-completions-matched{color:var(--twoslash-matched-color)}.twoslash-highlighted{background-color:rgba(var(--twoslash-highlighted-border),.13);border:1px solid rgba(var(--twoslash-highlighted-border),.31);border-radius:4px;margin:-1px -3px;padding:1px 2px}.twoslash-completion-list .twoslash-completions-icon{color:var(--twoslash-unmatched-color);flex:none;width:1em}.twoslash-tag-line{background-color:rgba(var(--twoslash-tag-color),.13);color:rgb(var(--twoslash-tag-color));border-left:3px solid;align-items:center;gap:.3em;margin:.2em 0;padding:6px 10px;display:flex;position:relative}.twoslash-tag-line .twoslash-tag-icon{color:inherit;width:1.1em}.twoslash-tag-line.twoslash-tag-error-line{background-color:var(--twoslash-error-bg);color:rgb(var(--twoslash-error-color))}.twoslash-tag-line.twoslash-tag-warn-line{background-color:rgba(var(--twoslash-tag-warn-color),.13);color:rgb(var(--twoslash-tag-warn-color))}.twoslash-tag-line.twoslash-tag-annotate-line{background-color:rgba(var(--twoslash-tag-annotate-color),.13);color:rgb(var(--twoslash-tag-annotate-color))}.subheading-anchor{opacity:0;transition-property:opacity;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.subheading-anchor:where([dir=ltr],[dir=ltr] *){margin-left:.25rem}.subheading-anchor:where([dir=rtl],[dir=rtl] *){margin-right:.25rem}.subheading-anchor:focus,.subheading-anchor:hover,:target>.subheading-anchor{opacity:1}:target>.subheading-anchor:after{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}:target>.subheading-anchor:is(html[class~=dark] *):after{--tw-text-opacity:1;color:rgb(115 115 115/var(--tw-text-opacity))}.subheading-anchor:after{--tw-content:"#";content:var(--tw-content);--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity));padding-left:.25rem;padding-right:.25rem}.subheading-anchor:is(html[class~=dark] *):after{--tw-text-opacity:1;color:rgb(64 64 64/var(--tw-text-opacity))}.nextra-scrollbar{scrollbar-width:thin;scrollbar-color:#73737366 transparent;scrollbar-gutter:stable}.nextra-scrollbar::-webkit-scrollbar{width:.75rem;height:.75rem}.nextra-scrollbar::-webkit-scrollbar-track{background-color:#0000}.nextra-scrollbar::-webkit-scrollbar-thumb{border-radius:10px}.nextra-scrollbar::-webkit-scrollbar-thumb:hover{background-color:var(--tw-shadow-color);--tw-shadow-color:#73737333;--tw-shadow:var(--tw-shadow-colored);background-clip:content-box;border:3px solid #0000}.nextra-scrollbar::-webkit-scrollbar-thumb:hover:hover{--tw-shadow-color:#73737366;--tw-shadow:var(--tw-shadow-colored)}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.nextra-steps h2,.nextra-steps h3,.nextra-steps h4{counter-increment:var(--counter-id);letter-spacing:-.015em;border-width:0;margin-top:2rem;padding-bottom:0;font-size:1.5rem;font-weight:600}.nextra-steps h2:before,.nextra-steps h3:before,.nextra-steps h4:before{border-width:4px;border-color:rgb(var(--nextra-bg));--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity));width:33px;height:33px;position:absolute}.nextra-steps h2:is(html[class~=dark] *):before,.nextra-steps h3:is(html[class~=dark] *):before,.nextra-steps h4:is(html[class~=dark] *):before{--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity))}.nextra-steps h2:before,.nextra-steps h3:before,.nextra-steps h4:before{text-align:center;text-indent:-1px;--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity));margin-top:3px;content:counter(var(--counter-id));border-radius:9999px;margin-inline-start:-41px;font-size:1rem;font-weight:400}.nextra-cards{grid-template-columns:repeat(auto-fill,minmax(max(250px,calc((100% - 1rem*2)/var(--rows))),1fr))}.nextra-card img{-webkit-user-select:none;user-select:none}.nextra-card svg{color:#0000004d;width:1.5rem;height:auto;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter,backdrop-filter;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.nextra-card svg:is(html[class~=dark] *){color:#fff6}.nextra-card:hover svg,.nextra-card:hover svg:is(html[class~=dark] *){color:currentColor}.nextra-card p{margin-top:.5rem}@media (prefers-reduced-motion:reduce){.nextra-hamburger svg g,.nextra-hamburger svg path{transition-property:none!important}}.nextra-hamburger svg{--transition:transform .2s cubic-bezier(.25,1,.5,1)}.nextra-hamburger svg g{transform-origin:50%;transition:var(--transition)}.nextra-hamburger svg path{opacity:1;transition:var(--transition).2s,opacity .2s ease .2s}.nextra-hamburger svg.open path{transition:var(--transition),opacity 0s ease .2s}.nextra-hamburger svg.open g{transition:var(--transition).2s}.nextra-hamburger svg.open>path{opacity:0}.nextra-hamburger svg.open>g:first-of-type{transform:rotate(45deg)}.nextra-hamburger svg.open>g:first-of-type path{transform:translateY(6px)}.nextra-hamburger svg.open>g:nth-of-type(2){transform:rotate(-45deg)}.nextra-hamburger svg.open>g:nth-of-type(2) path{transform:translateY(-6px)}article.nextra-body-typesetting-article{font-feature-settings:"rlig" 1,"calt" 1;font-size:17px}article.nextra-body-typesetting-article h1{text-align:center;margin-top:1.5rem;margin-bottom:1rem;font-size:2.5rem}article.nextra-body-typesetting-article h2{border-style:none}article.nextra-body-typesetting-article a{text-decoration-line:none}article.nextra-body-typesetting-article a:hover{text-decoration-line:underline}article.nextra-body-typesetting-article p{line-height:2rem}article.nextra-body-typesetting-article code{border-style:none}article.nextra-body-typesetting-article code:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity))}article.nextra-body-typesetting-article pre code:is(html[class~=dark] *){background-color:#0000}article.nextra-body-typesetting-article .subheading-anchor:hover{text-decoration-line:none}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"rlig" 1,"calt" 1,"ss01" 1;-webkit-tap-highlight-color:transparent;font-size:1rem}html:not(:has(:focus)){scroll-padding-top:var(--nextra-navbar-height)}body{width:100%}body:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.nextra-focus:focus-visible,.nextra-focusable{--tw-ring-offset-shadow:var(--tw-ring-inset)0 0 0 var(--tw-ring-offset-width)var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000);--tw-ring-opacity:1;--tw-ring-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)86%/var(--tw-ring-opacity));--tw-ring-offset-width:1px;--tw-ring-offset-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)77%)}.nextra-focus:focus-visible:is(html[class~=dark] *),.nextra-focusable:is(html[class~=dark] *){--tw-ring-opacity:1;--tw-ring-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)32%/var(--tw-ring-opacity));--tw-ring-offset-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)39%)}.nextra-focus:focus-visible,.nextra-focusable:focus-visible{outline-offset:2px;outline:2px solid #0000}.nextra-content{--tw-text-opacity:1;color:rgb(51 65 85/var(--tw-text-opacity))}.nextra-content:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(226 232 240/var(--tw-text-opacity))}@media (max-width:767px){.nextra-sidebar-container{z-index:15;overscroll-behavior:contain;padding-top:calc(var(--nextra-navbar-height));will-change:transform,opacity;contain:layout style;backface-visibility:hidden;width:100%;transition:transform .8s cubic-bezier(.52,.16,.04,1);position:fixed;top:0;bottom:0}.nextra-sidebar-container>.nextra-scrollbar{-webkit-mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0);mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0)}.nextra-banner-container~div .nextra-sidebar-container{padding-top:6.5rem}.nextra-banner-container~div.nextra-nav-container{top:2.5rem}@media (min-width:768px){.nextra-banner-container~div.nextra-nav-container{top:0}}.nextra-banner-hidden .nextra-banner-container~div .nextra-sidebar-container{padding-top:4rem}.nextra-banner-hidden .nextra-nav-container{top:0!important}.nextra-search .excerpt{text-overflow:ellipsis;line-clamp:1;-webkit-line-clamp:1;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}}@media (min-width:768px){.nextra-sidebar-container,.nextra-toc>.div{-webkit-mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0);mask-image:linear-gradient(#0000,#000 20px),linear-gradient(270deg,#000 10px,#0000 0)}}.contains-task-list{margin-left:0;list-style-type:none}.contains-task-list input[type=checkbox]{margin-right:.25rem}.nextra-sidebar-container [data-toggle-animation=show] button{opacity:0;animation:nextra-fadein 1s .2s forwards}.nextra-sidebar-container [data-toggle-animation=hide] button{opacity:0;animation:nextra-fadein2 1s .2s forwards}.footnotes a[data-footnote-backref]{font-family:initial}@keyframes nextra-fadein{0%{opacity:0}to{opacity:1}}@keyframes nextra-fadein2{0%{opacity:0}to{opacity:1}}.nextra-nav-container-blur,.nextra-sidebar-footer,body{background-color:rgb(var(--nextra-bg))}@media not all and (min-width:768px){.nextra-sidebar-container{background-color:rgb(var(--nextra-bg))}}.nextra-nav-container-blur{pointer-events:none;z-index:-1;--tw-shadow:0 2px 4px #00000005,0 1px 0 #0000000f;--tw-shadow-colored:0 2px 4px var(--tw-shadow-color),0 1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);width:100%;height:100%;position:absolute}.nextra-nav-container-blur:is(html[class~=dark] *){--tw-shadow:0 -1px 0 #ffffff1a inset;--tw-shadow-colored:inset 0 -1px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}@media (prefers-contrast:more){.nextra-nav-container-blur{--tw-shadow:0 0 0 1px #000;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nextra-nav-container-blur:is(html[class~=dark] *){--tw-shadow:0 0 0 1px #fff;--tw-shadow-colored:0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}}.nextra-nav-container-blur{background-color:rgba(var(--nextra-bg),.7);--tw-backdrop-blur:blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur)var(--tw-backdrop-brightness)var(--tw-backdrop-contrast)var(--tw-backdrop-grayscale)var(--tw-backdrop-hue-rotate)var(--tw-backdrop-invert)var(--tw-backdrop-opacity)var(--tw-backdrop-saturate)var(--tw-backdrop-sepia)}.nextra-sidebar-footer,.nextra-toc-footer{border-top-width:1px}.nextra-sidebar-footer:is(html[class~=dark] *),.nextra-toc-footer:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity))}@media (prefers-contrast:more){.nextra-sidebar-footer,.nextra-toc-footer{--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity));--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.nextra-sidebar-footer:is(html[class~=dark] *),.nextra-toc-footer:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity))}}.nextra-sidebar-footer,.nextra-toc-footer{--tw-shadow:0 -12px 16px rgb(var(--nextra-bg));--tw-shadow-colored:0 -12px 16px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.\*\:_origin-center>*{transform-origin:50%}.\*\:_rotate-90>*{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\*\:_transition-transform>*{transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.placeholder\:_text-gray-500::placeholder{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity))}.before\:_absolute:before{content:var(--tw-content);position:absolute}.before\:_inset-y-1:before{content:var(--tw-content);top:.25rem;bottom:.25rem}.before\:_w-px:before{content:var(--tw-content);width:1px}.before\:_bg-gray-200:before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(229 231 235/var(--tw-bg-opacity))}.before\:_opacity-25:before{content:var(--tw-content);opacity:.25}.before\:_content-\[\"\"\]:before{--tw-content:"";content:var(--tw-content)}.before\:_content-\[\"\#\"\]:before{--tw-content:"#";content:var(--tw-content)}.after\:_transition-transform:after{content:var(--tw-content);transition-property:transform;transition-duration:.15s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.after\:_duration-75:after{content:var(--tw-content);transition-duration:75ms}.after\:_content-\[\"→\"\]:after{--tw-content:"→";content:var(--tw-content)}.first\:\*\:_origin-\[35\%\]>:first-child{transform-origin:35%}.first\:\*\:_rotate-180>:first-child{--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.even\:_bg-gray-100:nth-child(2n){--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.empty\:_invisible:empty{visibility:hidden}.focus-within\:_opacity-100:focus-within{opacity:1}.hover\:_border-gray-300:hover{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity))}.hover\:_bg-gray-100:hover{--tw-bg-opacity:1;background-color:rgb(243 244 246/var(--tw-bg-opacity))}.hover\:_bg-gray-800\/5:hover{background-color:#1f29370d}.hover\:_bg-slate-50:hover{--tw-bg-opacity:1;background-color:rgb(248 250 252/var(--tw-bg-opacity))}.hover\:_text-gray-800:hover{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.hover\:_text-gray-900:hover{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.hover\:_no-underline:hover{text-decoration-line:none}.hover\:_opacity-75:hover{opacity:.75}.hover\:_shadow-lg:hover{--tw-shadow:0 10px 15px -3px #0000001a,0 4px 6px -4px #0000001a;--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:_shadow-lg:hover,.hover\:_shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:_shadow-md:hover{--tw-shadow:0 4px 6px -1px #0000001a,0 2px 4px -2px #0000001a;--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:_shadow-gray-100:hover{--tw-shadow-color:#f3f4f6;--tw-shadow:var(--tw-shadow-colored)}.focus\:_not-sr-only:focus{clip:auto;white-space:normal;width:auto;height:auto;margin:0;padding:0;position:static;overflow:visible}.focus\:_fixed:focus{position:fixed}.focus\:_z-50:focus{z-index:50}.focus\:_m-3:focus{margin:.75rem}.focus\:_ml-4:focus{margin-left:1rem}.focus\:_h-\[calc\(var\(--nextra-navbar-height\)-1\.5rem\)\]:focus{height:calc(var(--nextra-navbar-height) - 1.5rem)}.focus\:_rounded-lg:focus{border-radius:.5rem}.focus\:_border:focus{border-width:1px}.focus\:_border-neutral-400:focus{--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity))}.focus\:_bg-white:focus{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.focus\:_px-3:focus{padding-left:.75rem;padding-right:.75rem}.focus\:_py-2:focus{padding-top:.5rem;padding-bottom:.5rem}.focus\:_align-middle:focus{vertical-align:middle}.focus\:_text-sm:focus{font-size:.875rem}.focus\:_font-bold:focus{font-weight:700}.focus\:_text-gray-900:focus{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.active\:_shadow-sm:active{--tw-shadow:0 1px 2px 0 #0000000d;--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.active\:_shadow-gray-200:active{--tw-shadow-color:#e5e7eb;--tw-shadow:var(--tw-shadow-colored)}._group:hover .after\:group-hover\:_translate-x-0\.5:after{content:var(--tw-content);--tw-translate-x:.125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}@media (prefers-reduced-motion:reduce){.motion-reduce\:_transform-none{transform:none}.motion-reduce\:\*\:_transition-none>*,.motion-reduce\:_transition-none{transition-property:none}}@media (prefers-contrast:more){.contrast-more\:_border{border-width:1px}.contrast-more\:_border-current{border-color:currentColor}.contrast-more\:_border-gray-600{--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.contrast-more\:_border-gray-900{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}.contrast-more\:_border-neutral-400{--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity))}.contrast-more\:_border-primary-500{--tw-border-opacity:1;border-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)50%/var(--tw-border-opacity))}.contrast-more\:_border-transparent{border-color:#0000}.contrast-more\:_font-bold{font-weight:700}.contrast-more\:\!_text-primary-600{--tw-text-opacity:1!important;color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/var(--tw-text-opacity))!important}.contrast-more\:_text-current{color:currentColor}.contrast-more\:_text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81/var(--tw-text-opacity))}.contrast-more\:_text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55/var(--tw-text-opacity))}.contrast-more\:_text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39/var(--tw-text-opacity))}.contrast-more\:_underline{text-decoration-line:underline}.contrast-more\:_shadow-none{--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.contrast-more\:_ring-gray-900{--tw-ring-opacity:1;--tw-ring-color:rgb(17 24 39/var(--tw-ring-opacity))}.contrast-more\:_contrast-150{--tw-contrast:contrast(1.5);filter:var(--tw-blur)var(--tw-brightness)var(--tw-contrast)var(--tw-grayscale)var(--tw-hue-rotate)var(--tw-invert)var(--tw-saturate)var(--tw-sepia)var(--tw-drop-shadow)}.contrast-more\:hover\:_border-gray-900:hover{--tw-border-opacity:1;border-color:rgb(17 24 39/var(--tw-border-opacity))}}.dark\:_border-blue-200\/30:is(html[class~=dark] *){border-color:#bfdbfe4d}.dark\:_border-gray-100\/20:is(html[class~=dark] *){border-color:#f3f4f633}.dark\:_border-gray-600:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(75 85 99/var(--tw-border-opacity))}.dark\:_border-gray-700:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(55 65 81/var(--tw-border-opacity))}.dark\:_border-neutral-700:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity))}.dark\:_border-neutral-800:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity))}.dark\:_border-orange-400\/30:is(html[class~=dark] *){border-color:#fb923c4d}.dark\:_border-primary-100\/10:is(html[class~=dark] *){border-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)94%/.1)}.dark\:_border-red-200\/30:is(html[class~=dark] *){border-color:#fecaca4d}.dark\:_border-white\/20:is(html[class~=dark] *){border-color:#fff3}.dark\:_border-yellow-200\/30:is(html[class~=dark] *){border-color:#fef08a4d}.dark\:_bg-black:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(0 0 0/var(--tw-bg-opacity))}.dark\:_bg-black\/50:is(html[class~=dark] *){background-color:#00000080}.dark\:_bg-black\/60:is(html[class~=dark] *){background-color:#0009}.dark\:_bg-blue-900\/30:is(html[class~=dark] *){background-color:#1e3a8a4d}.dark\:_bg-gray-50\/10:is(html[class~=dark] *){background-color:#f9fafb1a}.dark\:_bg-neutral-800:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity))}.dark\:_bg-neutral-900:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity))}.dark\:_bg-orange-400\/20:is(html[class~=dark] *){background-color:#fb923c33}.dark\:_bg-primary-100\/10:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)94%/.1)}.dark\:_bg-primary-100\/5:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)94%/.05)}.dark\:_bg-primary-400\/10:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)66%/.1)}.dark\:_bg-primary-500\/10:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)50%/.1)}.dark\:_bg-red-900\/30:is(html[class~=dark] *){background-color:#7f1d1d4d}.dark\:_bg-yellow-700\/30:is(html[class~=dark] *){background-color:#a162074d}.dark\:_bg-\[linear-gradient\(1deg\,\#383838\,\#212121\)\]:is(html[class~=dark] *){background-image:linear-gradient(1deg,#383838,#212121)}.dark\:_text-blue-200:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(191 219 254/var(--tw-text-opacity))}.dark\:_text-gray-100:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:_text-gray-200:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark\:_text-gray-300:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:_text-gray-400:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:_text-gray-50:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity))}.dark\:_text-neutral-200:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(229 229 229/var(--tw-text-opacity))}.dark\:_text-neutral-400:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(163 163 163/var(--tw-text-opacity))}.dark\:_text-neutral-600:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(82 82 82/var(--tw-text-opacity))}.dark\:_text-orange-300:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(253 186 116/var(--tw-text-opacity))}.dark\:_text-primary-600:is(html[class~=dark] *){--tw-text-opacity:1;color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)45%/var(--tw-text-opacity))}.dark\:_text-red-200:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(254 202 202/var(--tw-text-opacity))}.dark\:_text-slate-100:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(241 245 249/var(--tw-text-opacity))}.dark\:_text-white:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:_text-yellow-200:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(254 240 138/var(--tw-text-opacity))}.dark\:_shadow-none:is(html[class~=dark] *){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.dark\:_ring-neutral-700:is(html[class~=dark] *){--tw-ring-opacity:1;--tw-ring-color:rgb(64 64 64/var(--tw-ring-opacity))}.dark\:placeholder\:_text-gray-400:is(html[class~=dark] *)::placeholder{--tw-text-opacity:1;color:rgb(156 163 175/var(--tw-text-opacity))}.dark\:before\:_bg-neutral-800:is(html[class~=dark] *):before{content:var(--tw-content);--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity))}.even\:dark\:_bg-gray-600\/20:is(html[class~=dark] *):nth-child(2n){background-color:#4b556333}.dark\:hover\:_border-neutral-500:hover:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(115 115 115/var(--tw-border-opacity))}.dark\:hover\:_border-neutral-700:hover:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(64 64 64/var(--tw-border-opacity))}.dark\:hover\:_bg-gray-100\/5:hover:is(html[class~=dark] *){background-color:#f3f4f60d}.dark\:hover\:_bg-neutral-700:hover:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(64 64 64/var(--tw-bg-opacity))}.dark\:hover\:_bg-neutral-800:hover:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(38 38 38/var(--tw-bg-opacity))}.dark\:hover\:_bg-neutral-900:hover:is(html[class~=dark] *){--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity))}.dark\:hover\:_bg-primary-100\/5:hover:is(html[class~=dark] *){background-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)94%/.05)}.dark\:hover\:_text-gray-100:hover:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.dark\:hover\:_text-gray-200:hover:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(229 231 235/var(--tw-text-opacity))}.dark\:hover\:_text-gray-300:hover:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.dark\:hover\:_text-gray-50:hover:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity))}.dark\:hover\:_text-neutral-50:hover:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(250 250 250/var(--tw-text-opacity))}.dark\:hover\:_shadow-none:hover:is(html[class~=dark] *){--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:dark\:_border-neutral-800:is(html[class~=dark] *):focus{--tw-border-opacity:1;border-color:rgb(38 38 38/var(--tw-border-opacity))}.focus\:dark\:_bg-neutral-900:is(html[class~=dark] *):focus{--tw-bg-opacity:1;background-color:rgb(23 23 23/var(--tw-bg-opacity))}.focus\:dark\:_text-gray-100:is(html[class~=dark] *):focus{--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}@media (prefers-contrast:more){.contrast-more\:dark\:_border-current:is(html[class~=dark] *){border-color:currentColor}.contrast-more\:dark\:_border-gray-50:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity))}.contrast-more\:dark\:_border-neutral-400:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity))}.contrast-more\:dark\:_border-primary-500:is(html[class~=dark] *){--tw-border-opacity:1;border-color:hsl(var(--nextra-primary-hue)var(--nextra-primary-saturation)50%/var(--tw-border-opacity))}.dark\:contrast-more\:_border-neutral-400:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(163 163 163/var(--tw-border-opacity))}.contrast-more\:dark\:_text-current:is(html[class~=dark] *){color:currentColor}.contrast-more\:dark\:_text-gray-100:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(243 244 246/var(--tw-text-opacity))}.contrast-more\:dark\:_text-gray-300:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(209 213 219/var(--tw-text-opacity))}.contrast-more\:dark\:_text-gray-50:is(html[class~=dark] *){--tw-text-opacity:1;color:rgb(249 250 251/var(--tw-text-opacity))}.contrast-more\:dark\:_ring-gray-50:is(html[class~=dark] *){--tw-ring-opacity:1;--tw-ring-color:rgb(249 250 251/var(--tw-ring-opacity))}.contrast-more\:dark\:hover\:_border-gray-50:hover:is(html[class~=dark] *){--tw-border-opacity:1;border-color:rgb(249 250 251/var(--tw-border-opacity))}}@media not all and (min-width:1280px){.max-xl\:_hidden{display:none}}@media not all and (min-width:768px){.max-md\:_sticky{position:sticky}.max-md\:_hidden{display:none}.max-md\:_h-full{height:100%}.max-md\:_grow{flex-grow:1}.max-md\:_overflow-hidden{overflow:hidden}.max-md\:\[transform\:translate3d\(0\,-100\%\,0\)\]{transform:translateY(-100%)}.max-md\:\[transform\:translate3d\(0\,0\,0\)\]{transform:translate(0)}}@media not all and (min-width:640px){.max-sm\:_hidden{display:none}}@media (min-width:768px){.md\:_sticky{position:sticky}.md\:_top-16{top:4rem}.md\:_-mx-8{margin-left:-2rem;margin-right:-2rem}.md\:_hidden{display:none}.md\:_h-\[100px\]{height:100px}.md\:_h-\[calc\(100vh-var\(--nextra-navbar-height\)-var\(--nextra-menu-height\)\)\]{height:calc(100vh - var(--nextra-navbar-height) - var(--nextra-menu-height))}.md\:\!_max-h-\[min\(calc\(100vh-5rem\)\,400px\)\]{max-height:min(100vh - 5rem,400px)!important}.md\:_w-20{width:5rem}.md\:_w-64{width:16rem}.md\:_w-\[576px\]{width:576px}.md\:_shrink-0{flex-shrink:0}.md\:_justify-start{justify-content:flex-start}.md\:_self-start{align-self:flex-start}.md\:_px-12{padding-left:3rem;padding-right:3rem}.md\:_text-lg{font-size:1.125rem}.md\:_text-sm{font-size:.875rem}}@media (min-width:1536px){.\32 xl\:_-mx-24{margin-left:-6rem;margin-right:-6rem}}.ltr\:_right-1\.5:where([dir=ltr],[dir=ltr] *){right:.375rem}.ltr\:_ml-3:where([dir=ltr],[dir=ltr] *){margin-left:.75rem}.ltr\:_ml-6:where([dir=ltr],[dir=ltr] *){margin-left:1.5rem}.ltr\:_ml-auto:where([dir=ltr],[dir=ltr] *){margin-left:auto}.ltr\:_mr-auto:where([dir=ltr],[dir=ltr] *){margin-right:auto}.ltr\:_rotate-180:where([dir=ltr],[dir=ltr] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.ltr\:_border-l-2:where([dir=ltr],[dir=ltr] *){border-left-width:2px}.ltr\:_pl-3:where([dir=ltr],[dir=ltr] *){padding-left:.75rem}.ltr\:_pl-4:where([dir=ltr],[dir=ltr] *){padding-left:1rem}.ltr\:_pl-6:where([dir=ltr],[dir=ltr] *){padding-left:1.5rem}.ltr\:_pr-2:where([dir=ltr],[dir=ltr] *){padding-right:.5rem}.ltr\:_pr-4:where([dir=ltr],[dir=ltr] *){padding-right:1rem}.ltr\:_pr-9:where([dir=ltr],[dir=ltr] *){padding-right:2.25rem}.ltr\:_text-right:where([dir=ltr],[dir=ltr] *){text-align:right}.\*\:ltr\:_rotate-90:where([dir=ltr],[dir=ltr] *)>*{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.ltr\:before\:_left-0:where([dir=ltr],[dir=ltr] *):before{content:var(--tw-content);left:0}@media (min-width:1280px){.ltr\:xl\:_ml-\[calc\(50\%-50vw\+16rem\)\]:where([dir=ltr],[dir=ltr] *){margin-left:calc(50% - 50vw + 16rem)}.ltr\:xl\:_mr-\[calc\(50\%-50vw\)\]:where([dir=ltr],[dir=ltr] *){margin-right:calc(50% - 50vw)}}.rtl\:_left-1\.5:where([dir=rtl],[dir=rtl] *){left:.375rem}.rtl\:_ml-auto:where([dir=rtl],[dir=rtl] *){margin-left:auto}.rtl\:_mr-3:where([dir=rtl],[dir=rtl] *){margin-right:.75rem}.rtl\:_mr-6:where([dir=rtl],[dir=rtl] *){margin-right:1.5rem}.rtl\:_mr-auto:where([dir=rtl],[dir=rtl] *){margin-right:auto}.rtl\:_rotate-180:where([dir=rtl],[dir=rtl] *){--tw-rotate:180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.rtl\:_border-r-2:where([dir=rtl],[dir=rtl] *){border-right-width:2px}.rtl\:_pl-2:where([dir=rtl],[dir=rtl] *){padding-left:.5rem}.rtl\:_pl-4:where([dir=rtl],[dir=rtl] *){padding-left:1rem}.rtl\:_pl-9:where([dir=rtl],[dir=rtl] *){padding-left:2.25rem}.rtl\:_pr-3:where([dir=rtl],[dir=rtl] *){padding-right:.75rem}.rtl\:_pr-4:where([dir=rtl],[dir=rtl] *){padding-right:1rem}.rtl\:_pr-6:where([dir=rtl],[dir=rtl] *){padding-right:1.5rem}.rtl\:_text-left:where([dir=rtl],[dir=rtl] *){text-align:left}.\*\:rtl\:_-rotate-180:where([dir=rtl],[dir=rtl] *)>*{--tw-rotate:-180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.\*\:rtl\:_rotate-\[-270deg\]:where([dir=rtl],[dir=rtl] *)>*{--tw-rotate:-270deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}.rtl\:before\:_right-0:where([dir=rtl],[dir=rtl] *):before{content:var(--tw-content);right:0}@media (min-width:1280px){.rtl\:xl\:_ml-\[calc\(50\%-50vw\)\]:where([dir=rtl],[dir=rtl] *){margin-left:calc(50% - 50vw)}.rtl\:xl\:_mr-\[calc\(50\%-50vw\+16rem\)\]:where([dir=rtl],[dir=rtl] *){margin-right:calc(50% - 50vw + 16rem)}}@media print{.print\:_hidden{display:none}.print\:_bg-transparent{background-color:#0000}}.\[\&\:\:-webkit-details-marker\]\:_hidden::-webkit-details-marker{display:none}.\[\&\:\:-webkit-search-cancel-button\]\:_appearance-none::-webkit-search-cancel-button{appearance:none}.\[\&\:not\(\:first-child\)\]\:_mt-4:not(:first-child){margin-top:1rem}.\[\&\:not\(\:first-child\)\]\:_mt-5:not(:first-child){margin-top:1.25rem}.\[\&\:not\(\:first-child\)\]\:_mt-6:not(:first-child){margin-top:1.5rem}.\[\&_svg\]\:_text-red-500 svg{--tw-text-opacity:1;color:rgb(239 68 68/var(--tw-text-opacity))}.resizing .\[\.resizing_\&\]\:_transition-none{transition-property:none}:is(ol,ul) .\[\:is\(ol\,ul\)_\&\]\:_my-3{margin-top:.75rem;margin-bottom:.75rem}[data-expanded]>summary:first-child>.\[\[data-expanded\]\>summary\:first-child\>\&\]\:_rotate-90{--tw-rotate:90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y))rotate(var(--tw-rotate))skewX(var(--tw-skew-x))skewY(var(--tw-skew-y))scaleX(var(--tw-scale-x))scaleY(var(--tw-scale-y))}body.nextra-banner-hidden .\[body\.nextra-banner-hidden_\&\]\:_hidden{display:none}div:hover>.\[div\:hover\>\&\]\:_opacity-100{opacity:1}@font-face{font-family:Geist Mono;src:url(/_next/static/media/GeistMono-Regular.731e98a9.woff2) format("woff2"),url(/_next/static/media/GeistMono-Regular.bc3d11b3.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Geist;src:url(/_next/static/media/Geist-Regular.f8bf5db2.woff2) format("woff2"),url(/_next/static/media/Geist-Regular.23d57e8e.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*
+! tailwindcss v3.4.14 | MIT License | https://tailwindcss.com
+*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.mb-1{margin-bottom:.25rem}.me-1{margin-inline-end:.25rem}.ms-1{margin-inline-start:.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.contents{display:contents}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.gap-2{gap:.5rem}.rounded-lg{border-radius:.5rem}.border{border-width:1px}.border-zinc-200{--tw-border-opacity:1;border-color:rgb(228 228 231/var(--tw-border-opacity))}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity))}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-4{padding-top:1rem;padding-bottom:1rem}.text-center{text-align:center}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.text-zinc-500{--tw-text-opacity:1;color:rgb(113 113 122/var(--tw-text-opacity))}.text-zinc-900{--tw-text-opacity:1;color:rgb(24 24 27/var(--tw-text-opacity))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Geist,Arial,Helvetica,sans-serif}.hover\:bg-zinc-100:hover{--tw-bg-opacity:1;background-color:rgb(244 244 245/var(--tw-bg-opacity))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-4:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-zinc-100:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(244 244 245/var(--tw-ring-opacity))}.dark\:border-zinc-700:is(.dark *){--tw-border-opacity:1;border-color:rgb(63 63 70/var(--tw-border-opacity))}.dark\:bg-zinc-800:is(.dark *){--tw-bg-opacity:1;background-color:rgb(39 39 42/var(--tw-bg-opacity))}.dark\:text-white:is(.dark *){--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity))}.dark\:hover\:bg-zinc-700:hover:is(.dark *){--tw-bg-opacity:1;background-color:rgb(63 63 70/var(--tw-bg-opacity))}.dark\:focus\:ring-zinc-600:focus:is(.dark *){--tw-ring-opacity:1;--tw-ring-color:rgb(82 82 91/var(--tw-ring-opacity))}
\ No newline at end of file
diff --git a/_next/static/media/Geist-Regular.23d57e8e.woff b/_next/static/media/Geist-Regular.23d57e8e.woff
new file mode 100644
index 0000000000000000000000000000000000000000..684c28ba40a72eac64726c19a99527f2098745d2
GIT binary patch
literal 37340
zcmZr$V{|4>u#Rmz8{4+6jcwcZ#v41?*tTukw(aDNZ@zo~-ae;JPgOsKsh;WS?rC=g
zad9AEpq~=I3557l0TbE$$NhgrTwF!&2iN=4hWkT!#aCw55~5<_KtK+ZKfL!3r7$os
zSxfv@PzD0>Kmr27t_1=T@6V8BVw6x;75>2$0s%o<0s+B&RUPCqDkw8B|2SOy(Np>%
z1HNtj5o23Jhab!j4(vxCeA+p*3B}yd`A6pP>jwk%AANrVftuTRngIbJM*#sTr~&~c
z=-g`isaTjAn*7+)_`$IMN3_=Ua27wpA6eWFPxM2iaG%hv7Pc-PKtLcrF@yia3@3bp
zlqYCoZ~TLUZTyif0Rcgf-dSKs+ZuZO_yzuv0sZ=qAX$L+>qe)^yQ1Mw%D
z9_vLZx;9B-XrVKcl>tzya8*hF^q`iCpewB-lfTN6ghLuD=Y;dbGC-OYWy6sRB+;IP
zg<+|caxvB5DV;*Fk}dK@g@qsU4IYOn^O4Zlj2OXCqbq09?VEK|2(4}IpZQpJCNE!e
znDk{LZ_RODUnn?cUA@{c2^8sT3Cu^uj9qv{~mT=a=tK8fxI?j;c|0b
zgeMJ%9g96u4#YUe>$(LN+H5-as~K#FKiZ2|rzT~_lcUOfhsaYocNGFYlcqP?Yh(G2
zsQ_B7+SHda~vMk@^GpC
zDIc^Q%^Ej1BShL*pR3Vd=Uxa*i`S4)Fv#2+D|$
zYhOR)R$z^TS)6?&LAZNX1abyngqSvvWfP+~&STkXYOC_YYzRo?Q>L
zAR8o5&~ULgR=~hJKWdQ9spb*$@CXquP8fLL()Rdnn2p-TL8{@D!v59OjalVaSu311
z0*8L+n7wumzuZ*v`g>_&=cB^v3q1eu_9M0jvm0h_l~s?nG@QIt;&RZ;SoW^Mxv=vC
z$aS3K;+6#=&67GkA#7!x@(y^+QUVPmma;m33rRJ+&YpF&PY0G
zK!p&YM<~~;zQ%zoZ;am3E%^t^`J}Gcx0UEuw*4vgQl?J9T?`-O`2fz9_t51Q(wc*9)jKgy
zogdM9XLIy}*vWv{LPC#XiF$)8_wU2VK=iK#iuTf+#5s=WnrGWx*6wRsZ|_&}Xiq*X
zVZzy+@AS^?p%1^0CjU~1%T$0XfweeN&{n0l8qTWn75@Oo&+{|zg>kIVmtin91x+N8
z{LWbu>6)_}YwL3pVKp`40#|=rab8tdHdfxZA9rCrfG>G%cK$2%$~#Zuf@_T}zw%wL
zA5mYD8T0{wR2t77(iY$4uJq85kHcsU;3tGwy22avQs^EH>k;ZOZ}EQy@mea^|$R~rrXoMR@;Gi(!p3D9$5dOYc*8@06(>gD5qIeXok!suG5pN=dd6=+t$VXJkpJ=vYY<9ti&-C)Bn0|GGT4mhT(h8{ZiSwpg-5^#7qW*1Fz*_;<5@^M!cto>NVq*cIH8~lNT?0CI;_r=OH8g?2(4a+OHMjM7G&P5U759B2X`}#BX
z9xYxdtBK)3-rihmwgovtL!CCB0C)ux?t@WMJ0r(b8G}$Hp@m=@p%$F1u;zP_;Kiju
z3#kTMB~9{?TA(wA|Ix3`E^0jdIsyE)Vq-UD809>12_CLH6Z043X=v#2t>bx5U)#Y9
z2uQ~U`Gb2TaU3IilRj%!Es%>RzZ%8tf})QiWHgGBAUQ9IT}A{s2Gu4UWC^FM@P7L1
zGdKoX)&ZFpjF3nt90MoB%}@}_jKGFuWAN`9g4zf|gScCgYl9wpZ|EA=Go5oS%_U|{
zQ9h|!xP7?DKHDAQ^+-_bs42m?tq*YQ33O-h&Aw`9ko&!IXDp)Bv{C@6O!_=TnVwYw
zci~In!u-oTS^BvAz0H~gLV_5Vuzb?PVLulM2I9m)3L#x+)5f|retmYGpB*124xySE
zs?ByYkhbK-m(+oR6;^TTft(AnKXcAt{1Iuoi7ZdgFI3js;s;tj20;guOK7ePS8rN;A_^;sPgs1yJQYut
zwpx*DrRWx~TGc5}z}MVn425<`U+r3d9OB8YpyW
zvS`e{9=;7Y6Sy8Pb4zzAu2i;7e0dZBPHGU{RZ5>j+)e;d~;A}C*!kH;tbgMK=%64L=S0hUoOsK%f=;r4o}@{Ox1=mldAl
zD1)CvmvxJ(Nm}t$n5#-h@tV4ak|D``#%AX0-DYpiJXr_4{7<=`syJH>b?LK;MEOlQ
z&600Jr{)Y^F6mn|>LQt6-KY=92b#!dpfAvT);|Hn}#tHoX=BtKn3fnOZ~c+F}x0
z>c4k21)2r!h4wpvu&SP>MmPC)J#DL?4O(0K^>N$eX6G#Bla=VR`gYr`rfYG;(~c)0
zz6!!c^QVe8xzFw|4gIB@i<+mFHwr;`K_F1cUL-~YSrE-%khGu|z3jiirvt5bF+7+{
z;o}0Cqj1RKSVCJuJM#=U!Ax@@f`woTg&>l8eQ#j_=)9mcy*s-Fil$)E7zeNiNq5nX
zeXUkL_8%6!VU0*IYrg~rg+FI;Er7K`wnYf@Ku@vWAan)41>MQhrHuc`B}K3^k&m$&
zXt7qM^QXDVg%zV>g;J%3Vr%>f+jaCnneONEz}5?E*@N+c6(F(#6Rr%0G(>{N7SATB
ziCY=vF#%r_bc<6MMOG4?!LsdKcUG+BZhW|R{cu!UGQD@edF23yRFM8
zSyNRl3%x~2ZT+pk-A1>?PCK>|{UYnBPGkZ3)PS3uTN*z(#v7*aLnU~>)Xyqv{C7>M
zrd4#gQput(#rl{__odF&$GoTQfGtULCY?P`Q^jSeZaw0v{s!Wu>U-N~A28QPOr!BC
z(_WgB34UY@`bgbD#esTi^~4U__EWWWOT~E-*TA&mNwD*9+Xb)7m&-Qy1$~jsg|Kdd
zbuZibKZmK-`)bgYSi5}h!j40=Ryw<3zSC@n9#_mwboVV04^D;QhF#5P8}ArCwwit!
z&xP$u_w9~T-8+mf!cM|2$Zg{rlB+zDM#-548JGC&d>NPY>e&*PsjxR2{+`&Ur}t3b
z8DHgYuAM*jL+X!LfM;LR9rqoEo_WOAl@Hu6{BLvrCI7jC3&-cEXEg6;uWQgiAlx{R
zpujmnaz=Cy{88`}kdR)fntYC}jEk*{D#*26;oDyT^;=qi!YxrDOdpX%IAU}Nxd?1t
z(5zG`#v8sDOu=5??Z&MgfYb-M8$sYX&^MdEjA5Z=!F|zv*&R1t>~_?|giI-tS8T6T
zfEz6<2BScGPN@;EN>rhs=~S+9ni4yJD9tX^7$OahWq_6${Fp@9kl=gu>mbdwR>mfN
z%Sgs1y{fjvCc4Y;g2{Fgvy>hMQ;7Mh%hEEMG+Voa31E`w7xleC+H9#sJKB{OruiPHSw18?HV
zd0^A|8vW&;_ehlk?k2)Z1kZl?CYO6wBRSugq>?NG`A7moV#C<$p;CQXCHYL^%Gkys
zYRxgx_P93yis4@5gHvG4{FPUKm*bW1i{%^ho8vp^duRo`2nZ^87wr!SMPUds5s56U
zbARA%ivy7kbWbqPo}x-P4lTtJ5#oG|3#D)3bRpsVfj{pzh(E-~e;XS=YwRva1MQ(t&adli
zy0yC`6V2^r+OdQ%QtgFiT6@pY`p)blY@UG#R0@PTma#vz{csJi(nMr&!NRafAb}~G
zDB^*_+Uv})bhApif@`@aJJBU2<`RK^-`|5;FZ}K|&h9zyo90_5OcQB)A=nPU+Jm)G
znNmiqvi!y-aywUtsJ^Jx7lX_yyP|AI
zfQpT4Fw9#9pb4H8OnG^BD_9EH8iq~x&!?xS#HYlNkf)Uu1&=xH&!?%Wl^Po=0Kd0_
z$4MwW@PqNRth2#DXw}pD*gs)iLubRPY71Az3HnF;&ycN$l4sMYY2p6YdSw?w`ggR#TzD>MQhe_-mzYde_Iez}IbJf7GK>VdhV-!WclB}h&
zORKhOE6(cca>Hm$yPKmPkos+JEONU&mQY}SiCUM;SzjO!^CqV%7!ZpDXe5w0RB{8
z|Ml*zm&}0t#>0*9ue9=m~V}ix5Mt6g@!h(r)HFBb{e6pRO#C>vj
zkYzbUVfW!yEI9Qql}Tk3q%ow6G;H`U(ch&K0y0oq>2Al`)qS%jfQqpgvjV1jbqhwc
zeN3!KMJRnZ%mCdK0&COQp?PJ?t2!4hno0SRw*Ik}1rV<~Sj;^cxcSsi%!jKC+>ScRbzUl?#gRdq3g)mf`5Y*#*W?Tp>E${h9+%qJ_A
zn&d`Jyr$j#`FlKHDNQNE=m_An;j~DktwB^6lEvixkPeW*cjUSJiwTTs5GMdIi7}RX
z`v!t)d$~+||6X_8%_`({
z*bFm_3n7PIj9s*L(3w67$9RdB+qI1&YYV5A`?Za0BWn=u3VSu(c5NP(|Ky}Wdm}R&
zBXl{mFAKG3YNcA$CoL8)wBFv+@2QJG?r_ICdRZn8W@jwSju;n0>(5jz|nRx=h(iAO_#(v^h7GeMo+Yo+4(>qZjzB8IWCP1ro={F)`5u
zSvfq+<4u`-?A<*@rr&_oH99nNR4?UxF0D`pao>8Pb3xGC3+r>)l&EDS*(Y2FL00WRkqu6S^PZI6)&uf8lB*o4a>R*
zr3p_pnFN;CGRov~klJdij)X+UBKBD(yh>QZxvs=N`w;EZWk9>!Uyue*fLn)f{Z@7;
zy#u+;CPJW?p6Dp}{*8!pOUymF+9g9H1G0ib@B5EnMbFU{HeR&GC(7Zf-Cy65itT3o
z3+&n}twXVjPm73d;GyI2yG}9R)LS}hwQW_OQC@$IvlzuaWwCW%O*oMjz+{R^`cuGg
zJOR8f*=z;4EE39{O9d60MMlOY_CY0%-3`uZ)@5)iSUfZfh~Ew~K^YQWD3i;Cegf6S
z9d^nRFP*8l@NNis6{>+wfo2BCMcAqHRjyV`%%#g&oc0tw7(R{$FSl~N?o61SDc=hW
zOx;Q9Tu9xo;p$xA(r#^RN`F$uwwO4}=FvaDhGUNBe%V}>rrX(ORi9Y|_bIYg_!<*E
z+E>;Tb#;OF%vX?WgIFhH|IHpgN6xSqm;hbd+A6e|npJkwJDVz@oD?fKI@%hy#zJ-x1>
zyuPb&&|Ln+$0_KpoN%PcWqHOG;`qYfZ;PZR;5k8FTh(36Gq-%)-UtID&5>1lCZJ|M
z5<4VaDwTxa3<7h{Y0%!GEk31CgnUZYGXld0qA5+gEepc6lSR)KoZ=OKH~+;f8(}Nn
zMt}Z{$*1R39F$pMjnm5hMhyKvRpA52tN|od~Zpl5%yeecRHjI3|-_nN(Rx-DxeEv|>Q
zW;qojJX=4v;&@&&5u)=?-aL$XtDu{DH0
z_V;0BS1~;-b57!BSNfuNJY?HIrd2|po^~YyDrnVR9DUJ1izc1SV{d27{UMMrhUb&JYtYTZD0%5F+DM%j1uC#W%iu@Ql#y7}|Cf
zV}d(=HKVp3!t;Z9a@g+>n6IzDUoc-K@l2fI!-D?jSfi&%zv87&7O7pt<){|}4<|sk
z)GN6ka=lnxi5pG3t=cy_HWBlzSz8!erXzJiW>T*?mH`d(dGmJmZuCC5~
z#zeCVD=XfYSiFY%YxC{veLaxNP0g%q4>`~PexMt1KzSU0d(!tgu_qe6?B7oIIs%#*I}1zyb4*Q2V$N|ivf)l%J41)_Qu@-6vQ4m0uI
zY3B8{^PATUG?cGK$Xi^*h}2~eUR|2-pardr7pT%lL-yZi6wLY<13cQMcw7@K~kL-Nk!EH(YsFNJt7up!7AD**5E(KqjV>TZ*)W6;Z&i&868?GUd
zI7|(w_C_?mmdagWw#;k#AJs)1vJd(pp}V)BcBnj1rXceOIz5=lDxgMZY+&RNe%4uX
z=FdeO*O%ZkcdB{Njd8OSx{?96pRgnsM3^joPlGfJ3b(M%$T;T24wv*}|3-(}-B3ci
z&&O5Ob-7-9hh-SH0?Idmy~iSH;VUWfo<~l(!D-8i`j-SZd8}i1c%G(vR`_pw(b7OF
zW>wH`Iqp~f7=1NC>Cr$l#4L(bP<>uBAqsRpUm#IJguQkM1rSQ~J`&LCy4wW|@du>1
z(ytEaLua4NfMVWi4lst{BJ@l_U!a|_0~c=O)-4%O;dBiPblwfiU3&b|!OUeu0DE95
z{~jz*1U8oZ1QrMT!$@4E~-ej+vBATKW2S37EeCJw2E8TOy{o%&cE8rs_m3Z-0SHbIqMd-)^=jIXII+M
zUB{~4At0WcQV}OSFU6I653O$_vQF=G2GiL_KPBbH
z#3?Nc&yqV6CJk^D=fPNZpRu++_!APM137zNGtjX9x!!+kZ|GcMk&yW`TUHf!5xm@(
z%B5?wesRvsj_ah_4#6SZ=nD=Pmp%GU0CZbW-5&B=yHT%p*a4O|!X+6I3!>^DQKRZF
ze6zia5bR?D9Rw}Qw&Zz?b_&|0QADRk{`imC3EA59rSK4-91c$H6PYy^3Cp0O5*f?;V`t1bgp+T+ji_+
zbDK8z@MJ|4&U8zBX$sFhHKDkX3-0R_9JM(j8_D%P(!1m_9
zZyIi6BaAf#N0d;FX*#KzW)T*&X@vV_~C{o1aMG{RKOW_+b`@k&i{eS|Qq
zxAOEgSU1Z+NNQFmBX{my-?(UKJb$87E6q$@T6VvJ1$%ZqT5Br%z+~9dP7lMy4Vy~p
zHlM}8yvD5Qtu(50Dn?3XoX2-icQR7-rs~rDbW&x8gI&EA28F4OWR=+gDA
zvf=0bKW^y2(?IbGG?*fRe(t!g)zU?W_N(F
zX%O^bwg3%B{2SZp6`zWKJgpL_7XY%C=u4h)(B0XfBIkhNNy24)qL-dj0xKNu1l(fz
zXnNA?BYIXL0`BUPxeezA2Rq%a3Blw^+o=*9d>K!sXJCF|{@kgh@lm5$19G!DaOB7jP;oY*M1U4K@{S4d#ON9LL0;q!MVX{u}1lo|;!KCPWz`&6k
zN}=?je7hqNh)acx(j5nDUmG7Cot-*OdzZ+c#gt#P&bi+CJh4qtJQJ(CRIOr{^EZL+
zeKYBJp>wGkz+{g2WFGAhm*Mk)Gx^fWho*-|kB#24%d)O^W_orCVJBUkw8`Siwl^8e
z7{{gu3ZbjT6lo;C830+VSmyW`DY;rFoub3z!u6bMy?9tw?vtsVpUsZbb6=C2czfs^
z1)e*h!(uX@lGXN!oB{b2c`|-KKXU9~)t@uPAA7wZgd1_rur0cbzeIRl$s+B=!8qiK
zA*4#u2i@>*Hq~HH)W=zuXsor>RVieP0Mw05+?qarKB`6TG@CFSSaRHsO?;KI1q!y#
z30yTgs1J*h*R_1hiAX3`^x5XCk5`FUubGSgI`-M5DLl&K-_hkK@4vZyDqk;;!k-So
z)JfQhIr99A@^+jyY5q^U{nik1`tZQCUVSMAvI9+d?@J;|P
z-#BNwrWog-M*E3gk2DK4LTp()an`Al=7ZXR3GAuwtr!Yndawbs;*v{2HT2Oeb#60C
zsfvuXPHMjS{rT=*b>aC#N7A&4ZJAbvf}u#{D~gm+411gm<48jdrnIeb_rnhRaMTl*
zR8JAH>5?%TtUaSW^Hm9?Eo$gW$0uCYyh3Hh$0xmJ3LDxzSMBbW*=Drf@ao5LlpU+3
z;&UlolatuWSTf(r-9#)~M9i9LBAFLGHL1#BYMKVKvNiSXZ0RB3$=2(YjD;LSGKt#z
zadt(S5x@pS6HB!K!K%=1A)z;ow6ycKscG{_MJqe)UQboZ%7
z+s@=aT(#)@foi{ukj6`68Z?IDBXAIq*fL$==~rwFyJ@JBRu^WslhayhH8pLLC|Fh0
zGT!Ui*3u2C>nl5%sTw4$Bb}EU*=%K`%8ess4w{Oxor08*Yt$%Nu$WV1f$j>`=Oc;s
zch6|O{H1qQr*;W;`}jpbizV?jMsmO)|J*?Kh^`#W{__GqyKtGDT77uMzlcD`6T`_;
zEGZU7XOH=Ema)FT$cgRbk;vNLSxj5dPFm61(6HM{&B@W$e3ian*S}a+dpy}#);hp*
z=9U=UNkavjEcQwCu`@gNPRA~f;tzd>od!najj=F^8~@q`VT8EJXWnk{OsaWFPI;3h
zzt^)EzV>w{Y89jvzR5byCuZ?8TyJ3ZN(+7#I8Vg9%Jo3kBEk4d?EBTq3(!IG5%g6t
z+ZB0~xonqaJ&Ny;*s`>gB#GZx(rRdGqU5NctoTh~pY&dlMW-gCmxsVR>JR)Jm9Zr4
zYo^vMKeF7+u9D1(UcM+E64rbJHkGtPT}1QA+RbB#RBcHa7+srRTiYm{k(E`jVs?Ty
zAg)=mG*?WssQCyFu}fQvS+6Pfw)tls$2PQBvLK4abw%}X110hNQS7>3%*#h0uV5|&
z`<4uckZn&EB`|^;X|Y{#`pWL|&`TA#qA&4}iP%?5prAi)N_r?=_5KIN*>(h})-CeB
zBUQij9T4f^!FNlh_w{jVhmUSAdxy`fO)JJVj6RSJh^>F$Ce$*j0zy!CVm&zDs6h(R
z2f1Vicy5R%ST-rUEEhIG@Mbr<<`ITAY$c>>ijyB=F(HXo#e+rFJ^<}+;BIWf{4|%b
zvF=wLQ_r@^Jg&41yn!9@Dj(Avex`-vM)~Gavg*>JzsNG)dirnsfVpbL3FNvsM2Cf{
z1x$TjUD0i!VN{M+doPe4G;OdLtTVZu6qc+h6#w>x4kP==v%5Yh;cZ~ETekjjQizx&`<3fba!EHR^
zo&pc9llQ>KkO}ueMqDG8Nl7;t6JhBWWJfI#M^5&*=NDlq@19kN!Ua2oS)0rIGoKLqdUvwYHwHzH_vP$U3gLnd!<
zY7S`MFM@{(tfSA#9-|aQ#uJ(Gm++&3NwPv-^mph{EY;a(Og#!;@mnD2@po(w9Cb&inKu1ce5ehbgcim>PJ7~$2+=0Ej!O%DS~U2hPI4;GupJlx
zoS#66?TjE%$HkZg%pB<%U|hQ*fLtVj!U8?Mjg}i}hf;x$`(6S01FHarP-poITftT&
zZ`L#ACPoN%6ui`wmmome5$Gh5)T>>ck4F8l8VZ0rkYJn0+8}duVKudISdmt7TfQVs
z49{j`jQ{cGa18$>r{}=Ljqcf
zk@;`3G!T_(Q}2bk#yuqQ0*viIzR{V3UCkxEiZ2-*y~s5r%gwkdC8$Xm!MUfxlvo~F
z9o>l|O3UlPN}A^U9{3bgP`iMpipGlZVWQU@L}9pjJ5^DjY^vNoCPHyK|4V=X)z6>^
z?Tf4~6IOCU;qTGF!u&nM;Il+pkZ7~e(IvY^z#}W_!f0b8dmhBEh|5ux3FSOI?W{Sw
zXmPp){Ff_?nfFi|RnV#x;GB|r*ENl|n6IUWA?PM!w(I8kuGgYtpIBV5?kUQDCbycI
zPa#yVa#hpJo(4XC2YkmEpr@?O>gQ~C_lx_&S<$uvSw||X@3p?zPc6|=1HmSlsJr@#
zo{-e3f!(@3QBJb{GxWDiyO3sux3Q5&0~wZFf-PLK$C2yQ?|Qi}L(fABWJjN5i=nT`
z&w-NTkOW0XIR&w`gU4JSV5sQ~!V|RX3XV3g14GoH_`PyDZLegQZ;n@x}1TZ2CWrY~a;D1euXmgh&Cs+;X|9L|P3
zcOy>+6CVc$-g&}Xs=OY4Y5%-afLYwvY$U|Z!JG1TEcDF
z1K-L?qy)K(Sq|c-ecxZo#BG9O?!*<{`AcS|nCPbF&^ZR|08vFXHAO==HRM%{SMd#b
z@fVj|Heq8n;|HxV!65Z8kBeCrrpuDrUmyEtvZWrf5mWH7LyY(xRdwTct9-~mT`CRZ
z|Kkl~IBC6y@uPKi+A-ov?KZU(qs=>fwSCY5cm8q7rMhly*+uQeEG&Qz>C_GI_pc9v
z$G&qx1dd{KD5n0u17Yp*5uF&t7LS|6{w`#BV>Alt_sPHYGryeaw%(z7xasff`lzUU
zRE}YoRwQ=|e3)5@dKol!ZEu5tX8uUs@&v}v)~4Ksspa{o#3k|vuf#vg1b@;>*yP0M
zZVW`5giow1d5~FsbQu^^4yJ|(TR{zc{OY8e+!G{o`n`*TfW>)k9->(o
zP22zNa;=d)&YkVf;HIW`wB!D_1LbDxTUg^XB2&Q?-7avlub-wgbKJ&7;l$3Im>E=(
zh&Qeuk-k%KSD;UtXD<-V@758fM!%NPpZHNnXq-YI`qmxRSt$woZ(R7cd7
zl3BuxTOv33@xU6aroWLCUL|wXbYGRw#$5`u@GpK5T
z?gFqA8Dp*}(517e@E%Au?=NUN!Eb2qC6Biw1GTN%zpjmOCh$xWc{`E*jzup1Zaf)*
zbyd)1rWO7q=KTgv$}T|{{Wp@r5yCA$C)yq~(c&`;73BC#*tT?rBU)`+KM%R8_cvhq
z_~T=#;@_V?aKb(tQW_BP&Ar3-EN2lY$ze!1&8YVwvrKUcmZG%DE!RNqrsO`7vik^#oA|?xNxhtUZ5A(op)^
z0WiD68{nspg4`TJ_A4ltDrfrW!U|V;l!NKQh7{P$1>ERDR1@Q8ZxcOeJz2%P(_yOF5q~L9zWfY=QnbBPnP*DNpL>6ie7`2UiY5E)
zff6aPs|&)PBQ}iwk<}Xp#{H!#3jjVY$GQ!#c@$e;InWRQCfI1NM!(AQr#KMVqZl?i
zU%Lu>tyS%oX4tXMWk*_=Uc
zh1_%qszc{^TtU4IS6PYX$*Y8(MKRfc*h4cnp)$iz=&Mo81=|htOrok*zc}7+HVtYs
zRuM!X;82@9G}I4@Fe~~TBa~=6bLPhRo;-eu;j#{@g>>MI7|ZmM@Tc9AgFVOjX21XKum$$mzyJ7v)BwlAv1drrj{L%2&oYj3Li6+4=JH
zIC_M<^*mkBpjeA@Vlb!&$!qp^M!vQxB8-$vR;HX-%Lq+HHB(JomGr3<_PLZJCBPkN^z93H-r*0)YPl6&}V@SKc
zqN}v*x>;=HT5IT;&1=i9E3qp56hejofZ!4)=~qG4#e_(Idzc0_ezT2Xp>fO!`f@gL{)ajzZF;dOTGA`bpg6*{!ja4vj3wZc$(Zy9
ziFFsf9Woa4trz!xBzOn0vDImlSI1DFaP!A!t0MMO=6>F}4$5-kjuwAZGBc&RgJqxJ5ig0xplm37P=X_FUU62y
zHis7$u4b_t2;${tg3-_Z$NlYNm~CgsA_YhIr#IZodh3nK~js~erE(C&W&Z{bSaLa@gQQshF+?P0`2JZG(-6)jU{b$rA?_V03Myf?r!ueiN_JsxKJ#9n3~8=iNL5Khw9$?D|cTL$g`pS=%a&>P{-jd1rk
zi!^wyP9q7UuX*J_tE$h=`u6IUa^Rj%Jd{{2UexSb7Q
z65~^ECr*?e=8h9~HoLd9KW`UOGzxHZ0=#q>!yHm*6
zsM86p(!|CXQin3XGL;~GFiTc2Fz$(BHh^^ZO4@x5*!+DRBM5yaOJJCbEm}a#hi_?a
zkS8K?u%6&2IyrYl2%3aw4wWw27clAsPeA|lPvkA0Cll<1wl{x@99;aVYAR@+E!YLs
zgI2gzKTdT|@if!o;aGM8#qZuuIKGeFg_dt^0lk4W2>bQoBkU99vC~H4G^|pOc!3cn
zySFsGU#j4wV?EV9pm~t44N->b>L7FMvApN24@|+|&~!9?4uuZU^ts81bde`2G8Ic?&giTJU!;mmLYNd2wL)D?oO`+j==3Bha2
zE$h|x?cGSX9k<9F-zOZi#CtH;oA@IlMZ!I(sJgTu_x08vcq6txk_bb%aK1Vix_pf)
z5KfUi=ROU}57RlmOAo-W%n`Mo(oFGTC5CKg`1sXtI4fWkC<