1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/terms-BYjB6amp.js","assets/Terms-BlrdTBbw.js","assets/Navigation-DHdnVkh9.js","assets/react-router-dom-CNTZ-wWZ.js","assets/sheet-DpGHk04f.js","assets/linkedin-8jHd5aY2.js","assets/dropdown-menu-2XKpQ27e.js","assets/index-CIQtW-3T.js","assets/chevron-right-BtkGwMPu.js","assets/check-46YfkBzA.js","assets/smartiz-logo-purple-Pzffqjml.js","assets/SEOHead-DuWC-X_n.js","assets/download-DBJlBNCS.js","assets/signup-confirmation-CbMP1lBG.js","assets/SignUpConfirmation-ezoARMKI.js","assets/circle-check-big-DTkeSFG6.js","assets/signup-n0ZrydXs.js","assets/SignUp-DmOhkv_h.js","assets/input-D6mtPhVS.js","assets/index-Di2wm4Dk.js","assets/index-njKgzMzR.css","assets/supabase-CV5pr-z7.js","assets/arrow-left-CfHZZXk-.js","assets/loader-circle-CiCh4c_6.js","assets/reset-password-DDpFD_Yf.js","assets/profile-completion-BG69_iOa.js","assets/avatar-BIOAjU4q.js","assets/upload-BrPFuClz.js","assets/pending-approval-CTZC7A-F.js","assets/useAuth-BKUtz-rg.js","assets/refresh-cw-DuAzMmG_.js","assets/clock-CuDQF1_i.js","assets/cookies-BtPYUeJI.js","assets/Cookies-BZ9teMFd.js","assets/calculator-CsNCeCE1.js","assets/Calculator-CgkRX0Gr.js","assets/slider-BuO6Sc9H.js","assets/arrow-right-sdCKFSeH.js","assets/application-thank-you-BHAbV_8d.js","assets/ApplicationThankYou-CPkphlyB.js","assets/admin-login-DdT6vQaJ.js","assets/admin-D7C68v1e.js","assets/chevron-down-CGBDjqmg.js","assets/badge-LO6eryVO.js","assets/format-DPouvYOD.js","assets/calendar-PEVyNbCY.js","assets/search-DLUYTJZ1.js","assets/index-wacNcylH.js","assets/trending-up-B7uSHhok.js","assets/checkbox-DBA8Urls.js","assets/circle-check-CVyqfPS9.js","assets/quote-DuaIbpw-.js","assets/minus-DteuVM2Z.js","assets/image-CNcqcWdK.js","assets/about-QUtfb4pw.js","assets/About-DIv1_ioe.js","assets/olivier-dubuisson-Bv1WGylT.js","assets/index-BjJZxpdC.js","assets/Index-CemMZYIO.js","assets/accordion-hIfStt2n.js","assets/guestbook-welcome-oQmJj98C.js","assets/innovaud-logo-BNJBlv0-.js","assets/guestbook-experiences-DaD8Rx7c.js","assets/stripe-crDVXpI4.js","assets/lock-gSqx5gKh.js","assets/resources.index-CLqn2Yti.js","assets/ResourcesPage-Ca4ShvQt.js","assets/safeDate-C57h0qxj.js","assets/news.index-CeGh_pES.js","assets/NewsPage-Eqv1ciQo.js","assets/map-pin-BWqUTlLl.js","assets/news._slug-CB43w7Yd.js","assets/NewsArticlePage-CiQ0DbQr.js","assets/resources._slug-Bp0-Mxa9.js","assets/ResourceArticlePage-BVSB5_3J.js","assets/order._orderId-DsR65lQ8.js","assets/message-circle-CmTrjaSc.js","assets/v2.index-DimNT3jg.js","assets/HomeV2-b6gH8tnO.js","assets/FooterV2-BqoFhNdB.js","assets/clientLogos-CSc1N7Yc.js","assets/V2Marquee-BuDPYpPp.js","assets/v2.tarifs-Cd-46vQG.js","assets/PricingPageV2-CHbxwAnw.js","assets/V2PageShell-CXHkFk-V.js","assets/V2TileGrid-DIuFJRIc.js","assets/v2.ressources-DkZECGH1.js","assets/ResourcesPageV2-B9tHG8SM.js","assets/v2.integrations-Cq8f7yaw.js","assets/IntegrationsPageV2-f-57JP7N.js","assets/V2PageHero-CL5xD3oX.js","assets/V2VisualPlaceholder-CXMPyuIh.js","assets/v2.clients-D-Y8Uru8.js","assets/ClientsPageV2-BJUD5AVI.js","assets/V2FinalCta-DGuoowwd.js","assets/V2TestimonialPlaceholder-Bt29qxjt.js","assets/v2.a-propos-ChUVk9SL.js","assets/AboutPageV2-
1B34bQtdA.js","assets/_lang.index-kQjiArlm.js","assets/_lang.terms-B1b-2rZ0.js","assets/_lang.signup-confirmation-DTq5hMN3.js","assets/_lang.signup-BSYhbq3Z.js","assets/_lang.cookies-BaqgA8jz.js","assets/_lang.calculator-BEjzUT_y.js","assets/_lang.application-thank-you-D0l4W2Lg.js","assets/_lang.about-BwOuJOt2.js","assets/v2.solutions.parcs-de-gites-B_sggcjM.js","assets/SolutionPageV2-Di51-fCQ.js","assets/v2.solutions.hotels-CdmbmsUC.js","assets/v2.solutions.conciergeries-B6lHPF3t.js","assets/v2.produit.whatsapp-QB8q-_i6.js","assets/ProductPageV2-BSaGtG1N.js","assets/v2.produit.securite-D4LDAnUO.js","assets/SecurityPageV2-dQUdMB2z.js","assets/v2.produit.revenus-CsJhzdqr.js","assets/v2.produit.operations-Cn0db_Dv.js","assets/v2.produit.ia-CalRFmS1.js","assets/v2.produit.experience-voyageur-BNPLgKeF.js","assets/_lang.resources.index-CZOHrxfU.js","assets/_lang.news.index-DrGitutf.js","assets/_lang.resources._slug-TVUP90e4.js","assets/_lang.news._slug-jNYD7a4a.js","assets/_lang.v2.index-Ct1QBAA6.js","assets/_lang.v2.tarifs-CiTlIOx6.js","assets/_lang.v2.ressources-C0uXnVO9.js","assets/_lang.v2.integrations-BomW-mpl.js","assets/_lang.v2.clients-gX_gq0zM.js","assets/_lang.v2.a-propos-Ck8Gz3YB.js","assets/_lang.v2.solutions.parcs-de-gites-DbFpnsVb.js","assets/_lang.v2.solutions.hotels-DaRQDaqj.js","assets/_lang.v2.solutions.conciergeries-B9dVTpcW.js","assets/_lang.v2.produit.whatsapp-BsylqLVl.js","assets/_lang.v2.produit.securite-BcFDYN5E.js","assets/_lang.v2.produit.revenus-DEKTZFqA.js","assets/_lang.v2.produit.operations-DomkH-Uf.js","assets/_lang.v2.produit.ia-C9sCGh_R.js","assets/_lang.v2.produit.experience-voyageur-ClwVcbTa.js"])))=>i.map(i=>d[i]); 2function hw(e,t){for(var n=0;n<t.length;n++){const o=t[n];if(typeof o!="string"&&!Array.isArray(o)){for(const s in o)if(s!=="default"&&!(s in e)){const a=Object.getOwnPropertyDescriptor(o,s);a&&Object.defineProperty(e,s,a.get?a:{enumerable:!0,get:()=>o[s]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var JV=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function kp(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function u_(e){if(Object.prototype.hasOwnProperty.call(e,"__esModule"))return e;var t=e.default;if(typeof t=="function"){var n=function o(){var s=!1;try{s=this instanceof o}catch{}return s?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(o){var s=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,s.get?s:{enumerable:!0,get:function(){return e[o]}})}),n}var Gd={exports:{}},Us={},Hd={exports:{}},Ce={};var Jg;function c_(){if(Jg)return Ce;Jg=1;var e=Symbol.for("react.element"),t=Symbol.for("react.portal"),n=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),a=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),h=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),f=Symbol.for("react.lazy"),m=Symbol.iterator;function y(z){return z===null||typeof z!="object"?null:(z=m&&z[m]||z["@@iterator"],typeof z=="function"?z:null)}var v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},k=Object.assign,S={};function b(z,U,oe){this.props=z,this.context=U,this.refs=S,this.updater=oe||v}b.prototype.isReactComponent={},b.prototype.setState=function(z,U){if(typeof z!="object"&&typeof z!="function"&&z!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,z,U,"setState")},b.prototype.forceUpdate=function(z){this.updater.enqueueForceUpdate(this,z,"forceUpdate")};function x(){}x.prototype=b.prototype;function E(z,U,oe){this.props=z,this.context=U,this.refs=S,this.updater=oe||v}var P=E.prototype=new x;P.constructor=E,k(P,b.prototype),P.isPureReactComponent=!0;var I=Array.isArray,O=Object.prototype.hasOwnProperty,D={current:null},M={key:!0,ref:!0,__self:!0,__source:!0};function $(z,U,oe){var se,ce={},_e=null,ge=null;if(U!=null)for(se in U.ref!==void 0&&(ge=U.ref),U.key!==void 0&&(_e=""+U.key),U)O.call(U,se)&&!M.hasOwnProperty(se)&&(ce[se]=U[se]);var Ee=arguments.length-2;if(Ee===1)ce.children=oe;else if(1<Ee){for(var Pe=Array(Ee),He=0;He<Ee;He++)Pe[He]=arguments[He+2];ce.children=Pe}if(z&&z.defaultProps)for(se in Ee=z.defaultProps,Ee)ce[se]===void 0&&(ce[se]=Ee[se]);return{$$typeof:e,type:z,key:_e,ref:ge,props:ce,_owner:D.current}}function W(z,U){return{$$typeof:e,type:z.type,key:U,ref:z.ref,props:z.props,_owner:z._owner}}function ee(z){return typeof z=="object"&&z!==null&&z.$$typeof===e}function te(z){var U={"=":"=0",":":"=2"};return"$"+z.replace(/[=:]/g,function(oe){return U[oe]}
vendor: 7,437 bytes, line 2
2)}var G=/\/+/g;function ye(z,U){return typeof z=="object"&&z!==null&&z.key!=null?te(""+z.key):U.toString(36)}function Q(z,U,oe,se,ce){var _e=typeof z;(_e==="undefined"||_e==="boolean")&&(z=null);var ge=!1;if(z===null)ge=!0;else switch(_e){case"string":case"number":ge=!0;break;case"object":switch(z.$$typeof){case e:case t:ge=!0}}if(ge)return ge=z,ce=ce(ge),z=se===""?"."+ye(ge,0):se,I(ce)?(oe="",z!=null&&(oe=z.replace(G,"$&/")+"/"),Q(ce,U,oe,"",function(He){return He})):ce!=null&&(ee(ce)&&(ce=W(ce,oe+(!ce.key||ge&&ge.key===ce.key?"":(""+ce.key).replace(G,"$&/")+"/")+z)),U.push(ce)),1;if(ge=0,se=se===""?".":se+":",I(z))for(var Ee=0;Ee<z.length;Ee++){_e=z[Ee];var Pe=se+ye(_e,Ee);ge+=Q(_e,U,oe,Pe,ce)}else if(Pe=y(z),typeof Pe=="function")for(z=Pe.call(z),Ee=0;!(_e=z.next()).done;)_e=_e.value,Pe=se+ye(_e,Ee++),ge+=Q(_e,U,oe,Pe,ce);else if(_e==="object")throw U=String(z),Error("Objects are not valid as a React child (found: "+(U==="[object Object]"?"object with keys {"+Object.keys(z).join(", ")+"}":U)+"). If you meant to render a collection of children, use an array instead.");return ge}function we(z,U,oe){if(z==null)return z;var se=[],ce=0;return Q(z,se,"","",function(_e){return U.call(oe,_e,ce++)}),se}function pe(z){if(z._status===-1){var U=z._result;U=U(),U.then(function(oe){(z._status===0||z._status===-1)&&(z._status=1,z._result=oe)},function(oe){(z._status===0||z._status===-1)&&(z._status=2,z._result=oe)}),z._status===-1&&(z._status=0,z._result=U)}if(z._status===1)return z._result.default;throw z._result}var ie={current:null},B={transition:null},q={ReactCurrentDispatcher:ie,ReactCurrentBatchConfig:B,ReactCurrentOwner:D};function Y(){throw Error("act(...) is not supported in production builds of React.")}return Ce.Children={map:we,forEach:function(z,U,oe){we(z,function(){U.apply(this,arguments)},oe)},count:function(z){var U=0;return we(z,function(){U++}),U},toArray:function(z){return we(z,function(U){return U})||[]},only:function(z){if(!ee(z))throw Error("React.Children.only expected to receive a single React element child.");return z}},Ce.Component=b,Ce.Fragment=n,Ce.Profiler=s,Ce.PureComponent=E,Ce.StrictMode=o,Ce.Suspense=h,Ce.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=q,Ce.act=Y,Ce.cloneElement=function(z,U,oe){if(z==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+z+".");var se=k({},z.props),ce=z.key,_e=z.ref,ge=z._owner;if(U!=null){if(U.ref!==void 0&&(_e=U.ref,ge=D.current),U.key!==void 0&&(ce=""+U.key),z.type&&z.type.defaultProps)var Ee=z.type.defaultProps;for(Pe in U)O.call(U,Pe)&&!M.hasOwnProperty(Pe)&&(se[Pe]=U[Pe]===void 0&&Ee!==void 0?Ee[Pe]:U[Pe])}var Pe=arguments.length-2;if(Pe===1)se.children=oe;else if(1<Pe){Ee=Array(Pe);for(var He=0;He<Pe;He++)Ee[He]=arguments[He+2];se.children=Ee}return{$$typeof:e,type:z.type,key:ce,ref:_e,props:se,_owner:ge}},Ce.createContext=function(z){return z={$$typeof:l,_currentValue:z,_currentValue2:z,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},z.Provider={$$typeof:a,_context:z},z.Consumer=z},Ce.createElement=$,Ce.createFactory=function(z){var U=$.bind(null,z);return U.type=z,U},Ce.createRef=function(){return{current:null}},Ce.forwardRef=function(z){return{$$typeof:c,render:z}},Ce.isValidElement=ee,Ce.lazy=function(z){return{$$typeof:f,_payload:{_status:-1,_result:z},_init:pe}},Ce.memo=function(z,U){return{$$typeof:p,type:z,compare:U===void 0?null:U}},Ce.startTransition=function(z){var U=B.transition;B.transition={};try{z()}finally{B.transition=U}},Ce.unstable_act=Y,Ce.useCallback=function(z,U){return ie.current.useCallback(z,U)},Ce.useContext=function(z){return ie.current.useContext(z)},Ce.useDebugValue=function(){},Ce.useDeferredValue=function(z){return ie.current.useDeferredValue(z)},Ce.useEffect=function(z,U){return ie.current.useEffect(z,U)},Ce.useId=function(){return ie.current.useId()},Ce.useImperativeHandle=function(z,U,oe){return ie.current.useImperativeHandle(z,U,oe)},Ce.useInsertionEffect=function(z,U){return ie.current.useInsertionEffect(z,U)},Ce.useLayoutEffect=function(z,U){return ie.current.useLayoutEffect(z,U)},Ce.useMemo=function(z,U){return ie.current.useMemo(z,U)},Ce.useReducer=function(z,U,oe){return ie.current.useReducer(z,U,oe)},Ce.useRef=function(z){return ie.current.useRef(z)},Ce.useState=function(z){return ie.current.useState(z)},Ce.useSyncExternalStore=function(z,U,oe){return ie.current.useSyncExternalStore(z,U,oe)},Ce.useTransition=function(){return ie.current.useTransition()},Ce.version="18.3.1",Ce}var Qg;function wa(){return Qg||(Qg=1,Hd.exports=c_()),Hd.exports}var Xg;function d_(){if(Xg)return Us;Xg=1;var e=wa(),t=Symbol.for("react.element"),n=Symbol.for("react.fragment"),o=Object.prototype.hasOwnProperty,s=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,a={key:!0,ref:!0,__self:!0,__source:!0};function l(c,h,p){var f,m={},y=null,v=null;p!==void 0&&(y=""+p),h.key!==void 0&&(y=""+h.key),h.ref!==void 0&&(v=h.ref);for(f in h)o.call(h,f)&&!a.hasOwnProperty(f)&&(m[f]=h[f]);if(c&&c.defaultProps)for(f in h=c.defaultProps,h)m[f]===void 0&&(m[f]=h[f]);return{$$typeof:t,type:c,key:y,ref:v,props:m,_owner:s.current}}return Us.Fragment=n,Us.jsx=l,Us.jsxs=l,Us}var Zg;function h_(){return Zg||(Zg=1,Gd.exports=d_()),Gd.exports}var C=h_(),_=wa();const Z=kp(_),pw=hw({__proto__:null,default:Z},[_]);var Dl={},Kd={exports:{}},Jt={},Yd={exports:{}},Jd={};var ev;function p_(){return ev||(ev=1,(function(e){function t(B,q){var Y=B.length;B.push(q);e:for(;0<Y;){var z=Y-1>>>1,U=B[z];if(0<s(U,q))B[z]=q,B[Y]=U,Y=z;else break e}}function n(B){return B.length===0?null:B[0]}function o(B){if(B.length===0)return null;var q=B[0],Y=B.pop();if(Y!==q){B[0]=Y;e:for(var z=0,U=B.length,oe=U>>>1;z<oe;){var se=2*(z+1)-1,ce=B[se],_e=se+1,ge=B[_e];if(0>s(ce,Y))_e<U&&0>s(ge,ce)?(B[z]=ge,B[_e]=Y,z=_e):(B[z]=ce,B[se]=Y,z=se);else if(_e<U&&0>s(ge,Y))B[z]=ge,B[_e]=Y,z=_e;else break e}}return q}function s(B,q){var Y=B.sortIndex-q.sortIndex;return Y!==0?Y:B.id-q.id}if(typeof performance=="object"&&typeof performance.now=="function"){var a=performance;e.unstable_now=function(){return a.now()}}else{var l=Date,c=l.now();e.unstable_now=function(){return l.now()-c}}var h=[],p=[],f=1,m=null,y=3,v=!1,k=!1,S=!1,b=typeof setTimeout=="function"?setTimeout:null,x=typeof clearTimeout=="function"?clearTimeout:null,E=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function P(B){for(var q=n(p);q!==null;){if(q.callback===null)o(p);else if(q.startTime<=B)o(p),q.sortIndex=q.expirationTime,t(h,q);else break;q=n(p)}}function I(B){if(S=!1,P(B),!k)if(n(h)!==null)k=!0,pe(O);else{var q=n(p);q!==null&&ie(I,q.startTime-B)}}function O(B,q){k=!1,S&&(S=!1,x($),$=-1),v=!0;var Y=y;try{for(P(q),m=n(h);m!==null&&(!(m.expirationTime>q)||B&&!te());){var z=m.callback;if(typeof z=="function"){m.callback=null,y=m.priorityLevel;var U=z(m.expirationTime<=q);q=e.unstable_now(),typeof U=="function"?m.callback=U:m===n(h)&&o(h),P(q)}else o(h);m=n(h)}if(m!==null)var oe=!0;else{var se=n(p);se!==null&&ie(I,se.startTime-q),oe=!1}return oe}finally{m=null,y=Y,v=!1}}var D=!1,M=null,$=-1,W=5,ee=-1;function te(){return!(e.unstable_now()-ee<W)}function G(){if(M!==null){var B=e.unstable_now();ee=B;var q=!0;try{q=M(!0,B)}finally{q?ye():(D=!1,M=null)}}else D=!1}var ye;
vendor: 48,484 bytes, lines 2-7
2if(typeof E=="function")ye=function(){E(G)};else if(typeof MessageChannel<"u"){var Q=new MessageChannel,we=Q.port2;Q.port1.onmessage=G,ye=function(){we.postMessage(null)}}else ye=function(){b(G,0)};function pe(B){M=B,D||(D=!0,ye())}function ie(B,q){$=b(function(){B(e.unstable_now())},q)}e.unstable_IdlePriority=5,e.unstable_ImmediatePriority=1,e.unstable_LowPriority=4,e.unstable_NormalPriority=3,e.unstable_Profiling=null,e.unstable_UserBlockingPriority=2,e.unstable_cancelCallback=function(B){B.callback=null},e.unstable_continueExecution=function(){k||v||(k=!0,pe(O))},e.unstable_forceFrameRate=function(B){0>B||125<B?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):W=0<B?Math.floor(1e3/B):5},e.unstable_getCurrentPriorityLevel=function(){return y},e.unstable_getFirstCallbackNode=function(){return n(h)},e.unstable_next=function(B){switch(y){case 1:case 2:case 3:var q=3;break;default:q=y}var Y=y;y=q;try{return B()}finally{y=Y}},e.unstable_pauseExecution=function(){},e.unstable_requestPaint=function(){},e.unstable_runWithPriority=function(B,q){switch(B){case 1:case 2:case 3:case 4:case 5:break;default:B=3}var Y=y;y=B;try{return q()}finally{y=Y}},e.unstable_scheduleCallback=function(B,q,Y){var z=e.unstable_now();switch(typeof Y=="object"&&Y!==null?(Y=Y.delay,Y=typeof Y=="number"&&0<Y?z+Y:z):Y=z,B){case 1:var U=-1;break;case 2:U=250;break;case 5:U=1073741823;break;case 4:U=1e4;break;default:U=5e3}return U=Y+U,B={id:f++,callback:q,priorityLevel:B,startTime:Y,expirationTime:U,sortIndex:-1},Y>z?(B.sortIndex=Y,t(p,B),n(h)===null&&B===n(p)&&(S?(x($),$=-1):S=!0,ie(I,Y-z))):(B.sortIndex=U,t(h,B),k||v||(k=!0,pe(O))),B},e.unstable_shouldYield=te,e.unstable_wrapCallback=function(B){var q=y;return function(){var Y=y;y=q;try{return B.apply(this,arguments)}finally{y=Y}}}})(Jd)),Jd}var tv;function f_(){return tv||(tv=1,Yd.exports=p_()),Yd.exports}var nv;function m_(){if(nv)return Jt;nv=1;var e=wa(),t=f_();function n(r){for(var i="https://reactjs.org/docs/error-decoder.html?invariant="+r,u=1;u<arguments.length;u++)i+="&args[]="+encodeURIComponent(arguments[u]);return"Minified React error #"+r+"; visit "+i+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var o=new Set,s={};function a(r,i){l(r,i),l(r+"Capture",i)}function l(r,i){for(s[r]=i,r=0;r<i.length;r++)o.add(i[r])}var c=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),h=Object.prototype.hasOwnProperty,p=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,f={},m={};function y(r){return h.call(m,r)?!0:h.call(f,r)?!1:p.test(r)?m[r]=!0:(f[r]=!0,!1)}function v(r,i,u,d){if(u!==null&&u.type===0)return!1;switch(typeof i){case"function":case"symbol":return!0;case"boolean":return d?!1:u!==null?!u.acceptsBooleans:(r=r.toLowerCase().slice(0,5),r!=="data-"&&r!=="aria-");default:return!1}}function k(r,i,u,d){if(i===null||typeof i>"u"||v(r,i,u,d))return!0;if(d)return!1;if(u!==null)switch(u.type){case 3:return!i;case 4:return i===!1;case 5:return isNaN(i);case 6:return isNaN(i)||1>i}return!1}function S(r,i,u,d,g,w,A){this.acceptsBooleans=i===2||i===3||i===4,this.attributeName=d,this.attributeNamespace=g,this.mustUseProperty=u,this.propertyName=r,this.type=i,this.sanitizeURL=w,this.removeEmptyString=A}var b={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(r){b[r]=new S(r,0,!1,r,null,!1,!1)}),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(r){var i=r[0];b[i]=new S(i,1,!1,r[1],null,!1,!1)}),["contentEditable","draggable","spellCheck","value"].forEach(function(r){b[r]=new S(r,2,!1,r.toLowerCase(),null,!1,!1)}),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(r){b[r]=new S(r,2,!1,r,null,!1,!1)}),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach(function(r){b[r]=new S(r,3,!1,r.toLowerCase(),null,!1,!1)}),["checked","multiple","muted","selected"].forEach(function(r){b[r]=new S(r,3,!0,r,null,!1,!1)}),["capture","download"].forEach(function(r){b[r]=new S(r,4,!1,r,null,!1,!1)}),["cols","rows","size","span"].forEach(function(r){b[r]=new S(r,6,!1,r,null,!1,!1)}),["rowSpan","start"].forEach(function(r){b[r]=new S(r,5,!1,r.toLowerCase(),null,!1,!1)});var x=/[\-:]([a-z])/g;function E(r){return r[1].toUpperCase()}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach(function(r){var i=r.replace(x,E);b[i]=new S(i,1,!1,r,null,!1,!1)}),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(r){var i=r.replace(x,E);b[i]=new S(i,1,!1,r,"http://www.w3.org/1999/xlink",!1,!1)}),["xml:base","xml:lang","xml:space"].forEach(function(r){var i=r.replace(x,E);b[i]=new S(i,1,!1,r,"http://www.w3.org/XML/1998/namespace",!1,!1)}),["tabIndex","crossOrigin"].forEach(function(r){b[r]=new S(r,1,!1,r.toLowerCase(),null,!1,!1)}),b.xlinkHref=new S("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach(function(r){b[r]=new S(r,1,!1,r.toLowerCase(),null,!0,!0)});function P(r,i,u,d){var g=b.hasOwnProperty(i)?b[i]:null;(g!==null?g.type!==0:d||!(2<i.length)||i[0]!=="o"&&i[0]!=="O"||i[1]!=="n"&&i[1]!=="N")&&(k(i,u,g,d)&&(u=null),d||g===null?y(i)&&(u===null?r.removeAttribute(i):r.setAttribute(i,""+u)):g.mustUseProperty?r[g.propertyName]=u===null?g.type===3?!1:"":u:(i=g.attributeName,d=g.attributeNamespace,u===null?r.removeAttribute(i):(g=g.type,u=g===3||g===4&&u===!0?"":""+u,d?r.setAttributeNS(d,i,u):r.setAttribute(i,u))))}var I=e.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,O=Symbol.for("react.element"),D=Symbol.for("react.portal"),M=Symbol.for("react.fragment"),$=Symbol.for("react.strict_mode"),W=Symbol.for("react.profiler"),ee=Symbol.for("react.provider"),te=Symbol.for("react.context"),G=Symbol.for("react.forward_ref"),ye=Symbol.for("react.suspense"),Q=Symbol.for("react.suspense_list"),we=Symbol.for("react.memo"),pe=Symbol.for("react.lazy"),ie=Symbol.for("react.offscreen"),B=Symbol.iterator;function q(r){return r===null||typeof r!="object"?null:(r=B&&r[B]||r["@@iterator"],typeof r=="function"?r:null)}var Y=Object.assign,z;function U(r){if(z===void 0)try{throw Error()}catch(u){var i=u.stack.trim().match(/\n( *(at )?)/);z=i&&i[1]||""}return` 3`+z+r}var oe=!1;function se(r,i){if(!r||oe)return"";oe=!0;var u=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(i)if(i=function(){throw Error()},Object.defineProperty(i.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(i,[])}catch(V){var d=V}Reflect.construct(r,[],i)}else{try{i.call()}catch(V){d=V}r.call(i.prototype)}else{try{throw Error()}catch(V){d=V}r()}}catch(V){if(V&&d&&typeof V.stack=="string"){for(var g=V.stack.split(` 4`),w=d.stack.split(` 5`),A=g.length-1,R=w.length-1;1<=A&&0<=R&&g[A]!==w[R];)R--;for(;1<=A&&0<=R;A--,R--)if(g[A]!==w[R]){if(A!==1||R!==1)do if(A--,R--,0>R||g[A]!==w[R]){var L=` 6`+g[A].replace(" at new "," at ");return r.displayName&&L.includes("<anonymous>")&&(L=L.replace("<anonymous>",r.displayName)),L}while(1<=A&&0<=R);break}}}finally{oe=!1,Error.prepareStackTrace=u}return(r=r?r.displayName||r.name:"")?U(r):""}function ce(r){switch(r.tag){case 5:return U(r.type);case 16:return U("Lazy");case 13:return U("Suspense");case 19:return U("SuspenseList");case 0:case 2:case 15:return r=se(r.type,!1),r;case 11:return r=se(r.type.render,!1),r;case 1:return r=se(r.type,!0),r;default:return""}}function _e(r){if(r==null)return null;if(typeof r=="function")return r.displayName||r.name||null;if(typeof r=="string")return r;switch(r){case M:return"Fragment";case D:return"Portal";case W:return"Profiler";case $:return"StrictMode";case ye:return"Suspense";case Q:return"SuspenseList"}if(typeof r=="object")switch(r.$$typeof){case te:return(r.displayName||"Context")+".Consumer";case ee:return(r._context.displayName||"Context")+".Provider";case G:var i=r.render;return r=r.displayName,r||(r=i.displayName||i.name||"",r=r!==""?"ForwardRef("+r+")":"ForwardRef"),r;case we:return i=r.displayName||null,i!==null?i:_e(r.type)||"Memo";case pe:i=r._payload,r=r._init;try{return _e(r(i))}catch{}}return null}function ge(r){var i=r.type;switch(r.tag){case 24:return"Cache";case 9:return(i.displayName||"Context")+".Consumer";case 10:return(i._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return r=i.render,r=r.displayName||r.name||"",i.displayName||(r!==""?"ForwardRef("+r+")":"ForwardRef");case 7:return"Fragment";case 5:return i;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return _e(i);case 8:return i===$?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if(typeof i=="function")return i.displayName||i.name||null;if(typeof i=="string")return i}return null}function Ee(r){switch(typeof r){case"boolean":case"number":case"string":case"undefined":return r;case"object":return r;default:return""}}function Pe(r){var i=r.type;return(r=r.nodeName)&&r.toLowerCase()==="input"&&(i==="checkbox"||i==="radio")}function He(r){var i=Pe(r)?"checked":"value",u=Object.getOwnPropertyDescriptor(r.constructor.prototype,i),d=""+r[i];if(!r.hasOwnProperty(i)&&typeof u<"u"&&typeof u.get=="function"&&typeof u.set=="function"){var g=u.get,w=u.set;return Object.defineProperty(r,i,{configurable:!0,get:function(){return g.call(this)},set:function(A){d=""+A,w.call(this,A)}}),Object.defineProperty(r,i,{enumerable:u.enumerable}),{getValue:function(){return d},setValue:function(A){d=""+A},stopTracking:function(){r._valueTracker=null,delete r[i]}}}}function bt(r){r._valueTracker||(r._valueTracker=He(r))}function tn(r){if(!r)return!1;var i=r._valueTracker;if(!i)return!0;var u=i.getValue(),d="";return r&&(d=Pe(r)?r.checked?"true":"false":r.value),r=d,r!==u?(i.setValue(r),!0):!1}function Nt(r){if(r=r||(typeof document<"u"?document:void 0),typeof r>"u")return null;try{return r.activeElement||r.body}catch{return r.body}}function Er(r,i){var u=i.checked;return Y({},i,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:u??r._wrapperState.initialChecked})}function Xo(r,i){var u=i.defaultValue==null?"":i.defaultValue,d=i.checked!=null?i.checked:i.defaultChecked;u=Ee(i.value!=null?i.value:u),r._wrapperState={initialChecked:d,initialValue:u,controlled:i.type==="checkbox"||i.type==="radio"?i.checked!=null:i.value!=null}}function Tr(r,i){i=i.checked,i!=null&&P(r,"checked",i,!1)}function Pr(r,i){Tr(r,i);var u=Ee(i.value),d=i.type;if(u!=null)d==="number"?(u===0&&r.value===""||r.value!=u)&&(r.value=""+u):r.value!==""+u&&(r.value=""+u);else if(d==="submit"||d==="reset"){r.removeAttribute("value");return}i.hasOwnProperty("value")?rr(r,i.type,u):i.hasOwnProperty("defaultValue")&&rr(r,i.type,Ee(i.defaultValue)),i.checked==null&&i.defaultChecked!=null&&(r.defaultChecked=!!i.defaultChecked)}function nn(r,i,u){if(i.hasOwnProperty("value")||i.hasOwnProperty("defaultValue")){var d=i.type;if(!(d!=="submit"&&d!=="reset"||i.value!==void 0&&i.value!==null))return;i=""+r._wrapperState.initialValue,u||i===r.value||(r.value=i),r.defaultValue=i}u=r.name,u!==""&&(r.name=""),r.defaultChecked=!!r._wrapperState.initialChecked,u!==""&&(r.name=u)}function rr(r,i,u){(i!=="number"||Nt(r.ownerDocument)!==r)&&(u==null?r.defaultValue=""+r._wrapperState.initialValue:r.defaultValue!==""+u&&(r.defaultValue=""+u))}var Tt=Array.isArray;function Ut(r,i,u,d){if(r=r.options,i){i={};for(var g=0;g<u.length;g++)i["$"+u[g]]=!0;for(u=0;u<r.length;u++)g=i.hasOwnProperty("$"+r[u].value),r[u].selected!==g&&(r[u].selected=g),g&&d&&(r[u].defaultSelected=!0)}else{for(u=""+Ee(u),i=null,g=0;g<r.length;g++){if(r[g].value===u){r[g].selected=!0,d&&(r[g].defaultSelected=!0);return}i!==null||r[g].disabled||(i=r[g])}i!==null&&(i.selected=!0)}}function or(r,i){if(i.dangerouslySetInnerHTML!=null)throw Error(n(91));return Y({},i,{value:void 0,defaultValue:void 0,children:""+r._wrapperState.initialValue})}function pn(r,i){var u=i.value;if(u==null){if(u=i.children,i=i.defaultValue,u!=null){if(i!=null)throw Error(n(92));if(Tt(u)){if(1<u.length)throw Error(n(93));u=u[0]}i=u}i==null&&(i=""),u=i}r._wrapperState={initialValue:Ee(u)}}function mo(r,i){var u=Ee(i.value),d=Ee(i.defaultValue);u!=null&&(u=""+u,u!==r.value&&(r.value=u),i.defaultValue==null&&r.defaultValue!==u&&(r.defaultValue=u)),d!=null&&(r.defaultValue=""+d)}function Ne(r){var i=r.textContent;i===r._wrapperState.initialValue&&i!==""&&i!==null&&(r.value=i)}function ze(r){switch(r){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function ft(r,i){return r==null||r==="http://www.w3.org/1999/xhtml"?ze(i):r==="http://www.w3.org/2000/svg"&&i==="foreignObject"?"http://www.w3.org/1999/xhtml":r}var Cr,Ea=(function(r){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(i,u,d,g){MSApp.execUnsafeLocalFunction(function(){return r(i,u,d,g)})}:r})(function(r,i){if(r.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in r)r.innerHTML=i;else{for(Cr=Cr||document.createElement("div"),Cr.innerHTML="<svg>"+i.valueOf().toString()+"</svg>",i=Cr.firstChild;r.firstChild;)r.removeChild(r.firstChild);for(;i.firstChild;)r.appendChild(i.firstChild)}});function Vn(r,i){if(i){var u=r.firstChild;if(u&&u===r.lastChild&&u.nodeType===3){u.nodeValue=i;return}}r.textContent=i}var go={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},Ta=["Webkit","ms","Moz","O"];Object.keys(go).forEach(function(r){Ta.forEach(function(i){i=i+r.charAt(0).toUpperCase()+r.substring(1),go[i]=go[r]})});function Zo(r,i,u){return i==null||typeof i=="boolean"||i===""?"":u||typeof i!="number"||i===0||go.hasOwnProperty(r)&&go[r]?(""+i).trim():i+"px"}function ir(r,i){r=r.style;for(var u in i)if(i.hasOwnProperty(u)){var d=u.indexOf("--")===0,g=Zo(u,i[u],d);u==="float"&&(u="cssFloat"),d?r.setProperty(u,g):r[u]=g}}var Pa=Y({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function Un(r,i){if(i){if(Pa[r]&&(i.children!=null||i.dangerouslySetInnerHTML!=null))throw Error(n(137,r));if(i.dangerouslySetInnerHTML!=null){if(i.children!=null)throw Error(n(60));if(typeof i.dangerouslySetInnerHTML!="object"||!("__html"in i.dangerouslySetInnerHTML))throw Error(n(61))}if(i.style!=null&&typeof i.style!="object")throw Error(n(62))}}function ss(r,i){if(r.indexOf("-")===-1)return typeof i.is=="string";switch(r){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var as=null;function ei(r){return r=r.target||r.srcElement||window,r.correspondingUseElement&&(r=r.correspondingUseElement),r.nodeType===3?r.parentNode:r}var ti=null,Ir=null,Bn=null;function kn(r){if(r=Ts(r)){if(typeof ti!="function")throw Error(n(280));var i=r.stateNode;i&&(i=Xa(i),ti(r.stateNode,r.type,i))}}function Ca(r){Ir?Bn?Bn.push(r):Bn=[r]:Ir=r}function xe(){if(Ir){var r=Ir,i=Bn;if(Bn=Ir=null,kn(r),i)for(r=0;r<i.length;r++)kn(i[r])}}function Le(r,i){return r(i)}function Fe(){}var Mt=!1;function Bt(r,i,u){if(Mt)return r(i,u);Mt=!0;try{return Le(r,i,u)}finally{Mt=!1,(Ir!==null||Bn!==null)&&(Fe(),xe())}}function Wt(r,i){var u=r.stateNode;if(u===null)return null;var d=Xa(u);if(d===null)return null;u=d[i];e:switch(i){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(d=!d.disabled)||(r=r.type,d=!(r==="button"||r==="input"||r==="select"||r==="textarea")),r=!d;break e;default:r=!1}if(r)return null;if(u&&typeof u!="function")throw Error(n(231,i,typeof u));return u}var An=!1;if(c)try{var St={};Object.defineProperty(St,"passive",{get:function(){An=!0}}),window.addEventListener("test",St,St),window.removeEventListener("test",St,St)}catch{An=!1}function Wn(r,i,u,d,g,w,A,R,L){var V=Array.prototype.slice.call(arguments,3);try{i.apply(u,V)}catch(K){this.onError(K)}}var ls=!1,Ia=null,Ra=!1,dc=null,gA={onError:function(r){ls=!0,Ia=r}};function vA(r,i,u,d,g,w,A,R,L){ls=!1,Ia=null,Wn.apply(gA,arguments)}function yA(r,i,u,d,g,w,A,R,L){if(vA.apply(this,arguments),ls){if(ls){var V=Ia;ls=!1,Ia=null}else throw Error(n(198));Ra||(Ra=!0,dc=V)}}function vo(r){var i=r,u=r;if(r.alternate)for(;i.return;)i=i.return;else{r=i;do i=r,(i.flags&4098)!==0&&(u=i.return),r=i.return;while(r)}return i.tag===3?u:null}function wf(r){if(r.tag===13){var i=r.memoizedState;if(i===null&&(r=r.alternate,r!==null&&(i=r.memoizedState)),i!==null)return i.dehydrated}return null}function bf(r){if(vo(r)!==r)throw Error(n(188))}function wA(r){var i=r.alternate;if(!i){if(i=vo(r),i===null)throw Error(n(188));return i!==r?null:r}for(var u=r,d=i;;){var g=u.return;if(g===null)break;var w=g.alternate;if(w===null){if(d=g.return,d!==null){u=d;continue}break}if(g.child===w.child){for(w=g.child;w;){if(w===u)return bf(g),r;if(w===d)return bf(g),i;w=w.sibling}throw Error(n(188))}if(u.return!==d.return)u=g,d=w;else{for(var A=!1,R=g.child;R;){if(R===u){A=!0,u=g,d=w;break}if(R===d){A=!0,d=g,u=w;break}R=R.sibling}if(!A){for(R=w.child;R;){if(R===u){A=!0,u=w,d=g;break}if(R===d){A=!0,d=w,u=g;break}R=R.sibling}if(!A)throw Error(n(189))}}if(u.alternate!==d)throw Error(n(190))}if(u.tag!==3)throw Error(n(188));return u.stateNode.current===u?r:i}function Sf(r){return r=wA(r),r!==null?kf(r):null}function kf(r){if(r.tag===5||r.tag===6)return r;for(r=r.child;r!==null;){var i=kf(r);if(i!==null)return i;r=r.sibling}return null}var Af=t.unstable_scheduleCallback,xf=t.unstable_cancelCallback,bA=t.unstable_shouldYield,SA=t.unstable_requestPaint,ot=t.unstable_now,kA=t.unstable_getCurrentPriorityLevel,hc=t.unstable_ImmediatePriority,_f=t.unstable_UserBlockingPriority,Oa=t.unstable_NormalPriority,AA=t.unstable_LowPriority,Ef=t.unstable_IdlePriority,La=null,qn=null;function xA(r){if(qn&&typeof qn.onCommitFiberRoot=="function")try{qn.onCommitFiberRoot(La,r,void 0,(r.current.flags&128)===128)}catch{}}var xn=Math.clz32?Math.clz32:TA,_A=Math.log,EA=Math.LN2;function TA(r){return r>>>=0,r===0?32:31-(_A(r)/EA|0)|0}var za=64,Na=4194304;function us(r){switch(r&-r){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return r&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return r&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return r}}function Ma(r,i){var u=r.pendingLanes;if(u===0)return 0;var d=0,g=r.suspendedLanes,w=r.pingedLanes,A=u&268435455;if(A!==0){var R=A&~g;R!==0?d=us(R):(w&=A,w!==0&&(d=us(w)))}else A=u&~g,A!==0?d=us(A):w!==0&&(d=us(w));if(d===0)return 0;if(i!==0&&i!==d&&(i&g)===0&&(g=d&-d,w=i&-i,g>=w||g===16&&(w&4194240)!==0))return i;if((d&4)!==0&&(d|=u&16),i=r.entangledLanes,i!==0)for(r=r.entanglements,i&=d;0<i;)u=31-xn(i),g=1<<u,d|=r[u],i&=~g;return d}function PA(r,i){switch(r){case 1:case 2:case 4:return i+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return i+5e3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}function CA(r,i){for(var u=r.suspendedLanes,d=r.pingedLanes,g=r.expirationTimes,w=r.pendingLanes;0<w;){var A=31-xn(w),R=1<<A,L=g[A];L===-1?((R&u)===0||(R&d)!==0)&&(g[A]=PA(R,i)):L<=i&&(r.expiredLanes|=R),w&=~R}}function pc(r){return r=r.pendingLanes&-1073741825,r!==0?r:r&1073741824?1073741824:0}function Tf(){var r=za;return za<<=1,(za&4194240)===0&&(za=64),r}function fc(r){for(var i=[],u=0;31>u;u++)i.push(r);return i}function cs(r,i,u){r.pendingLanes|=i,i!==536870912&&(r.suspendedLanes=0,r.pingedLanes=0),r=r.eventTimes,i=31-xn(i),r[i]=u}function IA(r,i){var u=r.pendingLanes&~i;r.pendingLanes=i,r.suspendedLanes=0,r.pingedLanes=0,r.expiredLanes&=i,r.mutableReadLanes&=i,r.entangledLanes&=i,i=r.entanglements;var d=r.eventTimes;for(r=r.expirationTimes;0<u;){var g=31-xn(u),w=1<<g;i[g]=0,d[g]=-1,r[g]=-1,u&=~w}}function mc(r,i){var u=r.entangledLanes|=i;for(r=r.entanglements;u;){var d=31-xn(u),g=1<<d;g&i|r[d]&i&&(r[d]|=i),u&=~g}}var Me=0;function Pf(r){return r&=-r,1<r?4<r?(r&268435455)!==0?16:536870912:4:1}var Cf,gc,If,Rf,Of,vc=!1,Da=[],Rr=null,Or=null,Lr=null,ds=new Map,hs=new Map,zr=[],RA="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Lf(r,i){switch(r){case"focusin":case"focusout":Rr=null;break;case"dragenter":case"dragleave":Or=null;break;case"mouseover":case"mouseout":Lr=null;break;case"pointerover":case"pointerout":ds.delete(i.pointerId);break;case"gotpointercapture":case"lostpointercapture":hs.delete(i.pointerId)}}function ps(r,i,u,d,g,w){return r===null||r.nativeEvent!==w?(r={blockedOn:i,domEventName:u,eventSystemFlags:d,nativeEvent:w,targetContainers:[g]},i!==null&&(i=Ts(i),i!==null&&gc(i)),r):(r.eventSystemFlags|=d,i=r.targetContainers,g!==null&&i.indexOf(g)===-1&&i.push(g),r)}function OA(r,i,u,d,g){switch(i){case"focusin":return Rr=ps(Rr,r,i,u,d,g),!0;case"dragenter":return Or=ps(Or,r,i,u,d,g),!0;case"mouseover":return Lr=ps(Lr,r,i,u,d,g),!0;case"pointerover":var w=g.pointerId;return ds.set(w,ps(ds.get(w)||null,r,i,u,d,g)),!0;case"gotpointercapture":return w=g.pointerId,hs.set(w,ps(hs.get(w)||null,r,i,u,d,g)),!0}return!1}function zf(r){var i=yo(r.target);if(i!==null){var u=vo(i);if(u!==null){if(i=u.tag,i===13){if(i=wf(u),i!==null){r.blockedOn=i,Of(r.priority,function(){If(u)});return}}else if(i===3&&u.stateNode.current.memoizedState.isDehydrated){r.blockedOn=u.tag===3?u.stateNode.containerInfo:null;return}}}r.blockedOn=null}function ja(r){if(r.blockedOn!==null)return!1;for(var i=r.targetContainers;0<i.length;){var u=wc(r.domEventName,r.eventSystemFlags,i[0],r.nativeEvent);if(u===null){u=r.nativeEvent;var d=new u.constructor(u.type,u);as=d,u.target.dispatchEvent(d),as=null}else return i=Ts(u),i!==null&&gc(i),r.blockedOn=u,!1;i.shift()}return!0}function Nf(r,i,u){ja(r)&&u.delete(i)}function LA(){vc=!1,Rr!==null&&ja(Rr)&&(Rr=null),Or!==null&&ja(Or)&&(Or=null),Lr!==null&&ja(Lr)&&(Lr=null),ds.forEach(Nf),hs.forEach(Nf)}function fs(r,i){r.blockedOn===i&&(r.blockedOn=null,vc||(vc=!0,t.unstable_scheduleCallback(t.unstable_NormalPriority,LA)))}function ms(r){function i(g){return fs(g,r)}if(0<Da.length){fs(Da[0],r);for(var u=1;u<Da.length;u++){var d=Da[u];d.blockedOn===r&&(d.blockedOn=null)}}for(Rr!==null&&fs(Rr,r),Or!==null&&fs(Or,r),Lr!==null&&fs(Lr,r),ds.forEach(i),hs.forEach(i),u=0;u<zr.length;u++)d=zr[u],d.blockedOn===r&&(d.blockedOn=null);for(;0<zr.length&&(u=zr[0],u.blockedOn===null);)zf(u),u.blockedOn===null&&zr.shift()}var ni=I.ReactCurrentBatchConfig,Fa=!0;function zA(r,i,u,d){var g=Me,w=ni.transition;ni.transition=null;try{Me=1,yc(r,i,u,d)}finally{Me=g,ni.transition=w}}function NA(r,i,u,d){var g=Me,w=ni.transition;ni.transition=null;try{Me=4,yc(r,i,u,d)}finally{Me=g,ni.transition=w}}function yc(r,i,u,d){if(Fa){var g=wc(r,i,u,d);if(g===null)Mc(r,i,d,$a,u),Lf(r,d);else if(OA(g,r,i,u,d))d.stopPropagation();else if(Lf(r,d),i&4&&-1<RA.indexOf(r)){for(;g!==null;){var w=Ts(g);if(w!==null&&Cf(w),w=wc(r,i,u,d),w===null&&Mc(r,i,d,$a,u),w===g)break;g=w}g!==null&&d.stopPropagation()}else Mc(r,i,d,null,u)}}var $a=null;function wc(r,i,u,d){if($a=null,r=ei(d),r=yo(r),r!==null)if(i=vo(r),i===null)r=null;else if(u=i.tag,u===13){if(r=wf(i),r!==null)return r;r=null}else if(u===3){if(i.stateNode.current.memoizedState.isDehydrated)return i.tag===3?i.stateNode.containerInfo:null;r=null}else i!==r&&(r=null);return $a=r,null}function Mf(r){switch(r){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(kA()){case hc:return 1;case _f:return 4;case Oa:case AA:return 16;case Ef:return 536870912;default:return 16}default:return 16}}var Nr=null,bc=null,Va=null;function Df(){if(Va)return Va;var r,i=bc,u=i.length,d,g="value"in Nr?Nr.value:Nr.textContent,w=g.length;for(r=0;r<u&&i[r]===g[r];r++);var A=u-r;for(d=1;d<=A&&i[u-d]===g[w-d];d++);return Va=g.slice(r,1<d?1-d:void 0)}function Ua(r){var i=r.keyCode;return"charCode"in r?(r=r.charCode,r===0&&i===13&&(r=13)):r=i,r===10&&(r=13),32<=r||r===13?r:0}function Ba(){return!0}function jf(){return!1}function rn(r){function i(u,d,g,w,A){this._reactName=u,this._targetInst=g,this.type=d,this.nativeEvent=w,this.target=A,this.currentTarget=null;for(var R in r)r.hasOwnProperty(R)&&(u=r[R],this[R]=u?u(w):w[R]);return this.isDefaultPrevented=(w.defaultPrevented!=null?w.defaultPrevented:w.returnValue===!1)?Ba:jf,this.isPropagationStopped=jf,this}return Y(i.prototype,{preventDefault:function(){this.defaultPrevented=!0;var u=this.nativeEvent;u&&(u.preventDefault?u.preventDefault():typeof u.returnValue!="unknown"&&(u.returnValue=!1),this.isDefaultPrevented=Ba)},stopPropagation:function(){var u=this.nativeEvent;u&&(u.stopPropagation?u.stopPropagation():typeof u.cancelBubble!="unknown"&&(u.cancelBubble=!0),this.isPropagationStopped=Ba)},persist:function(){},isPersistent:Ba}),i}var ri={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(r){return r.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Sc=rn(ri),gs=Y({},ri,{view:0,detail:0}),MA=rn(gs),kc,Ac,vs,Wa=Y({},gs,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:_c,button:0,buttons:0,relatedTarget:function(r){return r.relatedTarget===void 0?r.fromElement===r.srcElement?r.toElement:r.fromElement:r.relatedTarget},movementX:function(r){return"movementX"in r?r.movementX:(r!==vs&&(vs&&r.type==="mousemove"?(kc=r.screenX-vs.screenX,Ac=r.screenY-vs.screenY):Ac=kc=0,vs=r),kc)},movementY:function(r){return"movementY"in r?r.movementY:Ac}}),Ff=rn(Wa),DA=Y({},Wa,{dataTransfer:0}),jA=rn(DA),FA=Y({},gs,{relatedTarget:0}),xc=rn(FA),$A=Y({},ri,{animationName:0,elapsedTime:0,pseudoElement:0}),VA=rn($A),UA=Y({},ri,{clipboardData:function(r){return"clipboardData"in r?r.clipboardData:window.clipboardData}}),BA=rn(UA),WA=Y({},ri,{data:0}),$f=rn(WA),qA={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},GA={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},HA={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function KA(r){var i=this.nativeEvent;return i.getModifierState?i.getModifierState(r):(r=HA[r])?!!i[r]:!1}function _c(){return KA}var YA=Y({},gs,{key:function(r){if(r.key){var i=qA[r.key]||r.key;if(i!=="Unidentified")return i}return r.type==="keypress"?(r=Ua(r),r===13?"Enter":String.fromCharCode(r)):r.type==="keydown"||r.type==="keyup"?GA[r.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:_c,charCode:function(r){return r.type==="keypress"?Ua(r):0},keyCode:function(r){return r.type==="keydown"||r.type==="keyup"?r.keyCode:0},which:function(r){return r.type==="keypress"?Ua(r):r.type==="keydown"||r.type==="keyup"?r.keyCode:0}}),JA=rn(YA),QA=Y({},Wa,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Vf=rn(QA),XA=Y({},gs,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:_c}),ZA=rn(XA),ex=Y({},ri,{propertyName:0,elapsedTime:0,pseudoElement:0}),tx=rn(ex),nx=Y({},Wa,{deltaX:function(r){return"deltaX"in r?r.deltaX:"wheelDeltaX"in r?-r.wheelDeltaX:0},deltaY:function(r){return"deltaY"in r?r.deltaY:"wheelDeltaY"in r?-r.wheelDeltaY:"wheelDelta"in r?-r.wheelDelta:0},deltaZ:0,deltaMode:0}),rx=rn(nx),ox=[9,13,27,32],Ec=c&&"CompositionEvent"in window,ys=null;c&&"documentMode"in document&&(ys=document.documentMode);var ix=c&&"TextEvent"in window&&!ys,Uf=c&&(!Ec||ys&&8<ys&&11>=ys),Bf=" ",Wf=!1;function qf(r,i){switch(r){case"keyup":return ox.indexOf(i.keyCode)!==-1;case"keydown":return i.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gf(r){return r=r.detail,typeof r=="object"&&"data"in r?r.data:null}var oi=!1;function sx(r,i){switch(r){case"compositionend":return Gf(i);case"keypress":return i.which!==32?null:(Wf=!0,Bf);case"textInput":return r=i.data,r===Bf&&Wf?null:r;default:return null}}function ax(r,i){if(oi)return r==="compositionend"||!Ec&&qf(r,i)?(r=Df(),Va=bc=Nr=null,oi=!1,r):null;switch(r){case"paste":return null;case"keypress":if(!(i.ctrlKey||i.altKey||i.metaKey)||i.ctrlKey&&i.altKey){if(i.char&&1<i.char.length)return i.char;if(i.which)return String.fromCharCode(i.which)}return null;case"compositionend":return Uf&&i.locale!=="ko"?null:i.data;default:return null}}var lx={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Hf(r){var i=r&&r.nodeName&&r.nodeName.toLowerCase();return i==="input"?!!lx[r.type]:i==="textarea"}function Kf(r,i,u,d){Ca(d),i=Ya(i,"onChange"),0<i.length&&(u=new Sc("onChange","change",null,u,d),r.push({event:u,listeners:i}))}var ws=null,bs=null;function ux(r){hm(r,0)}function qa(r){var i=ui(r);if(tn(i))return r}function cx(r,i){if(r==="change")return i}var Yf=!1;if(c){var Tc;if(c){var Pc="oninput"in document;if(!Pc){var Jf=document.createElement("div");Jf.setAttribute("oninput","return;"),Pc=typeof Jf.oninput=="function"}Tc=Pc}else Tc=!1;Yf=Tc&&(!document.documentMode||9<document.documentMode)}function Qf(){ws&&(ws.detachEvent("onpropertychange",Xf),bs=ws=null)}function Xf(r){if(r.propertyName==="value"&&qa(bs)){var i=[];Kf(i,bs,r,ei(r)),Bt(ux,i)}}function dx(r,i,u){r==="focusin"?(Qf(),ws=i,bs=u,ws.attachEvent("onpropertychange",Xf)):r==="focusout"&&Qf()}function hx(r){if(r==="selectionchange"||r==="keyup"||r==="keydown")return qa(bs)}function px(r,i){if(r==="click")return qa(i)}function fx(r,i){if(r==="input"||r==="change")return qa(i)}function mx(r,i){return r===i&&(r!==0||1/r===1/i)||r!==r&&i!==i}var _n=typeof Object.is=="function"?Object.is:mx;function Ss(r,i){if(_n(r,i))return!0;if(typeof r!="object"||r===null||typeof i!="object"||i===null)return!1;var u=Object.keys(r),d=Object.keys(i);if(u.length!==d.length)return!1;for(d=0;d<u.length;d++){var g=u[d];if(!h.call(i,g)||!_n(r[g],i[g]))return!1}return!0}function Zf(r){for(;r&&r.firstChild;)r=r.firstChild;return r}function em(r,i){var u=Zf(r);r=0;for(var d;u;){if(u.nodeType===3){if(d=r+u.textContent.length,r<=i&&d>=i)return{node:u,offset:i-r};r=d}e:{for(;u;){if(u.nextSibling){u=u.nextSibling;break e}u=u.parentNode}u=void 0}u=Zf(u)}}function tm(r,i){return r&&i?r===i?!0:r&&r.nodeType===3?!1:i&&i.nodeType===3?tm(r,i.parentNode):"contains"in r?r.contains(i):r.compareDocumentPosition?!!(r.compareDocumentPosition(i)&16):!1:!1}function nm(){for(var r=window,i=Nt();i instanceof r.HTMLIFrameElement;){try{var u=typeof i.contentWindow.location.href=="string"}catch{u=!1}if(u)r=i.contentWindow;else break;i=Nt(r.document)}return i}function Cc(r){var i=r&&r.nodeName&&r.nodeName.toLowerCase();return i&&(i==="input"&&(r.type==="text"||r.type==="search"||r.type==="tel"||r.type==="url"||r.type==="password")||i==="textarea"||r.contentEditable==="true")}function gx(r){var i=nm(),u=r.focusedElem,d=r.selectionRange;if(i!==u&&u&&u.ownerDocument&&tm(u.ownerDocument.documentElement,u)){if(d!==null&&Cc(u)){if(i=d.start,r=d.end,r===void 0&&(r=i),"selectionStart"in u)u.selectionStart=i,u.selectionEnd=Math.min(r,u.value.length);else if(r=(i=u.ownerDocument||document)&&i.defaultView||window,r.getSelection){r=r.getSelection();var g=u.textContent.length,w=Math.min(d.start,g);d=d.end===void 0?w:Math.min(d.end,g),!r.extend&&w>d&&(g=d,d=w,w=g),g=em(u,w);var A=em(u,d);g&&A&&(r.rangeCount!==1||r.anchorNode!==g.node||r.anchorOffset!==g.offset||r.focusNode!==A.node||r.focusOffset!==A.offset)&&(i=i.createRange(),i.setStart(g.node,g.offset),r.removeAllRanges(),w>d?(r.addRange(i),r.extend(A.node,A.offset)):(i.setEnd(A.node,A.offset),r.addRange(i)))}}for(i=[],r=u;r=r.parentNode;)r.nodeType===1&&i.push({element:r,left:r.scrollLeft,top:r.scrollTop});for(typeof u.focus=="function"&&u.focus(),u=0;u<i.length;u++)r=i[u],r.element.scrollLeft=r.left,r.element.scrollTop=r.top}}var vx=c&&"documentMode"in document&&11>=document.documentMode,ii=null,Ic=null,ks=null,Rc=!1;function rm(r,i,u){var d=u.window===u?u.document:u.nodeType===9?u:u.ownerDocument;Rc||ii==null||ii!==Nt(d)||(d=ii,"selectionStart"in d&&Cc(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),ks&&Ss(ks,d)||(ks=d,d=Ya(Ic,"onSelect"),0<d.length&&(i=new Sc("onSelect","select",null,i,u),r.push({event:i,listeners:d}),i.target=ii)))}function Ga(r,i){var u={};return u[r.toLowerCase()]=i.toLowerCase(),u["Webkit"+r]="webkit"+i,u["Moz"+r]="moz"+i,u}var si={animationend:Ga("Animation","AnimationEnd"),animationiteration:Ga("Animation","AnimationIteration"),animationstart:Ga("Animation","AnimationStart"),transitionend:Ga("Transition","TransitionEnd")},Oc={},om={};c&&(om=document.createElement("div").style,"AnimationEvent"in window||(delete si.animationend.animation,delete si.animationiteration.animation,delete si.animationstart.animation),"TransitionEvent"in window||delete si.transitionend.transition);function Ha(r){if(Oc[r])return Oc[r];if(!si[r])return r;var i=si[r],u;for(u in i)if(i.hasOwnProperty(u)&&u in om)return Oc[r]=i[u];return r}var im=Ha("animationend"),sm=Ha("animationiteration"),am=Ha("animationstart"),lm=Ha("transitionend"),um=new Map,cm="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Mr(r,i){um.set(r,i),a(i,[r])}for(var Lc=0;Lc<cm.length;Lc++){var zc=cm[Lc],yx=zc.toLowerCase(),wx=zc[0].toUpperCase()+zc.slice(1);Mr(yx,"on"+wx)}Mr(im,"onAnimationEnd"),Mr(sm,"onAnimationIteration"),Mr(am,"onAnimationStart"),Mr("dblclick","onDoubleClick"),Mr("focusin","onFocus"),Mr("focusout","onBlur"),Mr(lm,"onTransitionEnd"),l("onMouseEnter",["mouseout","mouseover"]),l("onMouseLeave",["mouseout","mouseover"]),l("onPointerEnter",["pointerout","pointerover"]),l("onPointerLeave",["pointerout","pointerover"]),a("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),a("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),a("onBeforeInput",["compositionend","keypress","textInput","paste"]),a("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),a("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var As="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),bx=new Set("cancel close invalid load scroll toggle".split(" ").concat(As));function dm(r,i,u){var d=r.type||"unknown-event";r.currentTarget=u,yA(d,i,void 0,r),r.currentTarget=null}function hm(r,i){i=(i&4)!==0;for(var u=0;u<r.length;u++){var d=r[u],g=d.event;d=d.listeners;e:{var w=void 0;if(i)for(var A=d.length-1;0<=A;A--){var R=d[A],L=R.instance,V=R.currentTarget;if(R=R.listener,L!==w&&g.isPropagationStopped())break e;dm(g,R,V),w=L}else for(A=0;A<d.length;A++){if(R=d[A],L=R.instance,V=R.currentTarget,R=R.listener,L!==w&&g.isPropagationStopped())break e;dm(g,R,V),w=L}}}if(Ra)throw r=dc,Ra=!1,dc=null,r}function Be(r,i){var u=i[Uc];u===void 0&&(u=i[Uc]=new Set);var d=r+"__bubble";u.has(d)||(pm(i,r,2,!1),u.add(d))}function Nc(r,i,u){var d=0;i&&(d|=4),pm(u,r,d,i)}var Ka="_reactListening"+Math.random().toString(36).slice(2);function xs(r){if(!r[Ka]){r[Ka]=!0,o.forEach(function(u){u!=="selectionchange"&&(bx.has(u)||Nc(u,!1,r),Nc(u,!0,r))});var i=r.nodeType===9?r:r.ownerDocument;i===null||i[Ka]||(i[Ka]=!0,Nc("selectionchange",!1,i))}}function pm(r,i,u,d){switch(Mf(i)){case 1:var g=zA;break;case 4:g=NA;break;default:g=yc}u=g.bind(null,i,u,r),g=void 0,!An||i!=="touchstart"&&i!=="touchmove"&&i!=="wheel"||(g=!0),d?g!==void 0?r.addEventListener(i,u,{capture:!0,passive:g}):r.addEventListener(i,u,!0):g!==void 0?r.addEventListener(i,u,{passive:g}):r.addEventListener(i,u,!1)}function Mc(r,i,u,d,g){var w=d;if((i&1)===0&&(i&2)===0&&d!==null)e:for(;;){if(d===null)return;var A=d.tag;if(A===3||A===4){var R=d.stateNode.containerInfo;if(R===g||R.nodeType===8&&R.parentNode===g)break;if(A===4)for(A=d.return;A!==null;){var L=A.tag;if((L===3||L===4)&&(L=A.stateNode.containerInfo,L===g||L.nodeType===8&&L.parentNode===g))return;A=A.return}for(;R!==null;){if(A=yo(R),A===null)return;if(L=A.tag,L===5||L===6){d=w=A;continue e}R=R.parentNode}}d=d.return}Bt(function(){var V=w,K=ei(u),J=[];e:{var H=um.get(r);if(H!==void 0){var ae=Sc,de=r;switch(r){case"keypress":if(Ua(u)===0)break e;case"keydown":case"keyup":ae=JA;break;case"focusin":de="focus",ae=xc;break;case"focusout":de="blur",ae=xc;break;case"beforeblur":case"afterblur":ae=xc;break;case"click":if(u.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":ae=Ff;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":ae=jA;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":ae=ZA;break;case im:case sm:case am:ae=VA;break;case lm:ae=tx;break;case"scroll":ae=MA;break;case"wheel":ae=rx;break;case"copy":case"cut":case"paste":ae=BA;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":ae=Vf}var he=(i&4)!==0,it=!he&&r==="scroll",j=he?H!==null?H+"Capture":null:H;he=[];for(var N=V,F;N!==null;){F=N;var X=F.stateNode;if(F.tag===5&&X!==null&&(F=X,j!==null&&(X=Wt(N,j),X!=null&&he.push(_s(N,X,F)))),it)break;N=N.return}0<he.length&&(H=new ae(H,de,null,u,K),J.push({event:H,listeners:he}))}}if((i&7)===0){e:{if(H=r==="mouseover"||r==="pointerover",ae=r==="mouseout"||r==="pointerout",H&&u!==as&&(de=u.relatedTarget||u.fromElement)&&(yo(de)||de[sr]))break e;if((ae||H)&&(H=K.window===K?K:(H=K.ownerDocument)?H.defaultView||H.parentWindow:window,ae?(de=u.relatedTarget||u.toElement,ae=V,de=de?yo(de):null,de!==null&&(it=vo(de),de!==it||de.tag!==5&&de.tag!==6)&&(de=null)):(ae=null,de=V),ae!==de)){if(he=Ff,X="onMouseLeave",j="onMouseEnter",N="mouse",(r==="pointerout"||r==="pointerover")&&(he=Vf,X="onPointerLeave",j="onPointerEnter",N="pointer"),it=ae==null?H:ui(ae),F=de==null?H:ui(de),H=new he(X,N+"leave",ae,u,K),H.target=it,H.relatedTarget=F,X=null,yo(K)===V&&(he=new he(j,N+"enter",de,u,K),he.target=F,he.relatedTarget=it,X=he),it=X,ae&&de)t:{for(he=ae,j=de,N=0,F=he;F;F=ai(F))N++;for(F=0,X=j;X;X=ai(X))F++;for(;0<N-F;)he=ai(he),N--;for(;0<F-N;)j=ai(j),F--;for(;N--;){if(he===j||j!==null&&he===j.alternate)break t;he=ai(he),j=ai(j)}he=null}else he=null;ae!==null&&fm(J,H,ae,he,!1),de!==null&&it!==null&&fm(J,it,de,he,!0)}}e:{if(H=V?ui(V):window,ae=H.nodeName&&H.nodeName.toLowerCase(),ae==="select"||ae==="input"&&H.type==="file")var fe=cx;else if(Hf(H))if(Yf)fe=fx;else{fe=hx;var be=dx}else(ae=H.nodeName)&&ae.toLowerCase()==="input"&&(H.type==="checkbox"||H.type==="radio")&&(fe=px);if(fe&&(fe=fe(r,V))){Kf(J,fe,u,K);break e}be&&be(r,H,V),r==="focusout"&&(be=H._wrapperState)&&be.controlled&&H.type==="number"&&rr(H,"number",H.value)}switch(be=V?ui(V):window,r){case"focusin":(Hf(be)||be.contentEditable==="true")&&(ii=be,Ic=V,ks=null);break;case"focusout":ks=Ic=ii=null;break;case"mousedown":Rc=!0;break;case"contextmenu":case"mouseup":case"dragend":Rc=!1,rm(J,u,K);break;case"selectionchange":if(vx)break;case"keydown":case"keyup":rm(J,u,K)}var Se;if(Ec)e:{switch(r){case"compositionstart":var Ae="onCompositionStart";break e;case"compositionend":Ae="onCompositionEnd";break e;case"compositionupdate":Ae="onCompositionUpdate";break e}Ae=void 0}else oi?qf(r,u)&&(Ae="onCompositionEnd"):r==="keydown"&&u.keyCode===229&&(Ae="onCompositionStart");Ae&&(Uf&&u.locale!=="ko"&&(oi||Ae!=="onCompositionStart"?Ae==="onCompositionEnd"&&oi&&(Se=Df()):(Nr=K,bc="value"in Nr?Nr.value:Nr.textContent,oi=!0)),be=Ya(V,Ae),0<be.length&&(Ae=new $f(Ae,r,null,u,K),J.push({event:Ae,listeners:be}),Se?Ae.data=Se:(Se=Gf(u),Se!==null&&(Ae.data=Se)))),(Se=ix?sx(r,u):ax(r,u))&&(V=Ya(V,"onBeforeInput"),0<V.length&&(K=new $f("onBeforeInput","beforeinput",null,u,K),J.push({event:K,listeners:V}),K.data=Se))}hm(J,i)})}function _s(r,i,u){return{instance:r,listener:i,currentTarget:u}}function Ya(r,i){for(var u=i+"Capture",d=[];r!==null;){var g=r,w=g.stateNode;g.tag===5&&w!==null&&(g=w,w=Wt(r,u),w!=null&&d.unshift(_s(r,w,g)),w=Wt(r,i),w!=null&&d.push(_s(r,w,g))),r=r.return}return d}function ai(r){if(r===null)return null;do r=r.return;while(r&&r.tag!==5);return r||null}function fm(r,i,u,d,g){for(var w=i._reactName,A=[];u!==null&&u!==d;){var R=u,L=R.alternate,V=R.stateNode;if(L!==null&&L===d)break;R.tag===5&&V!==null&&(R=V,g?(L=Wt(u,w),L!=null&&A.unshift(_s(u,L,R))):g||(L=Wt(u,w),L!=null&&A.push(_s(u,L,R)))),u=u.return}A.length!==0&&r.push({event:i,listeners:A})}var Sx=/\r\n?/g,kx=/\u0000|\uFFFD/g;function mm(r){return(typeof r=="string"?r:""+r).replace(Sx,` 7`).replace(kx,"")}function Ja(r,i,u){if(i=mm(i),mm(r)!==i&&u)throw Error(n(425))}function Qa(){}var Dc=null,jc=null;function Fc(r,i){return r==="textarea"||r==="noscript"||typeof i.children=="string"||typeof i.children=="number"||typeof i.dangerouslySetInnerHTML=="object"&&i.dangerouslySetInnerHTML!==null&&i.dangerouslySetInnerHTML.__html!=null}var $c=typeof setTimeout=="function"?setTimeout:void 0,Ax=typeof clearTimeout=="function"?clearTimeout:void 0,gm=typeof Promise=="function"?Promise:void 0,xx=typeof queueMicrotask=="function"?queueMicrotask:typeof gm<"u"?function(r){return gm.resolve(null).then(r).catch(_x)}:$c;function _x(r){setTimeout(function(){throw r})}function Vc(r,i){var u=i,d=0;do{var g=u.nextSibling;if(r.removeChild(u),g&&g.nodeType===8)if(u=g.data,u==="/$"){if(d===0){r.removeChild(g),ms(i);return}d--}else u!=="$"&&u!=="$?"&&u!=="$!"||d++;u=g}while(u);ms(i)}function Dr(r){for(;r!=null;r=r.nextSibling){var i=r.nodeType;if(i===1||i===3)break;if(i===8){if(i=r.data,i==="$"||i==="$!"||i==="$?")break;if(i==="/$")return null}}return r}function vm(r){r=r.previousSibling;for(var i=0;r;){if(r.nodeType===8){var u=r.data;if(u==="$"||u==="$!"||u==="$?"){if(i===0)return r;i--}else u==="/$"&&i++}r=r.previousSibling}return null}var li=Math.random().toString(36).slice(2),Gn="__reactFiber$"+li,Es="__reactProps$"+li,sr="__reactContainer$"+li,Uc="__reactEvents$"+li,Ex="__reactListeners$"+li,Tx="__reactHandles$"+li;function yo(r){var i=r[Gn];if(i)return i;for(var u=r.parentNode;u;){if(i=u[sr]||u[Gn]){if(u=i.alternate,i.child!==null||u!==null&&u.child!==null)for(r=vm(r);r!==null;){if(u=r[Gn])return u;r=vm(r)}return i}r=u,u=r.parentNode}return null}function Ts(r){return r=r[Gn]||r[sr],!r||r.tag!==5&&r.tag!==6&&r.tag!==13&&r.tag!==3?null:r}function ui(r){if(r.tag===5||r.tag===6)return r.stateNode;throw Error(n(33))}function Xa(r){return r[Es]||null}var Bc=[],ci=-1;function jr(r){return{current:r}}function We(r){0>ci||(r.current=Bc[ci],Bc[ci]=null,ci--)}function $e(r,i){ci++,Bc[ci]=r.current,r.current=i}var Fr={},Pt=jr(Fr),qt=jr(!1),wo=Fr;function di(r,i){var u=r.type.contextTypes;if(!u)return Fr;var d=r.stateNode;
vendor: 4,657 bytes, line 7
7if(d&&d.__reactInternalMemoizedUnmaskedChildContext===i)return d.__reactInternalMemoizedMaskedChildContext;var g={},w;for(w in u)g[w]=i[w];return d&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=i,r.__reactInternalMemoizedMaskedChildContext=g),g}function Gt(r){return r=r.childContextTypes,r!=null}function Za(){We(qt),We(Pt)}function ym(r,i,u){if(Pt.current!==Fr)throw Error(n(168));$e(Pt,i),$e(qt,u)}function wm(r,i,u){var d=r.stateNode;if(i=i.childContextTypes,typeof d.getChildContext!="function")return u;d=d.getChildContext();for(var g in d)if(!(g in i))throw Error(n(108,ge(r)||"Unknown",g));return Y({},u,d)}function el(r){return r=(r=r.stateNode)&&r.__reactInternalMemoizedMergedChildContext||Fr,wo=Pt.current,$e(Pt,r),$e(qt,qt.current),!0}function bm(r,i,u){var d=r.stateNode;if(!d)throw Error(n(169));u?(r=wm(r,i,wo),d.__reactInternalMemoizedMergedChildContext=r,We(qt),We(Pt),$e(Pt,r)):We(qt),$e(qt,u)}var ar=null,tl=!1,Wc=!1;function Sm(r){ar===null?ar=[r]:ar.push(r)}function Px(r){tl=!0,Sm(r)}function $r(){if(!Wc&&ar!==null){Wc=!0;var r=0,i=Me;try{var u=ar;for(Me=1;r<u.length;r++){var d=u[r];do d=d(!0);while(d!==null)}ar=null,tl=!1}catch(g){throw ar!==null&&(ar=ar.slice(r+1)),Af(hc,$r),g}finally{Me=i,Wc=!1}}return null}var hi=[],pi=0,nl=null,rl=0,fn=[],mn=0,bo=null,lr=1,ur="";function So(r,i){hi[pi++]=rl,hi[pi++]=nl,nl=r,rl=i}function km(r,i,u){fn[mn++]=lr,fn[mn++]=ur,fn[mn++]=bo,bo=r;var d=lr;r=ur;var g=32-xn(d)-1;d&=~(1<<g),u+=1;var w=32-xn(i)+g;if(30<w){var A=g-g%5;w=(d&(1<<A)-1).toString(32),d>>=A,g-=A,lr=1<<32-xn(i)+g|u<<g|d,ur=w+r}else lr=1<<w|u<<g|d,ur=r}function qc(r){r.return!==null&&(So(r,1),km(r,1,0))}function Gc(r){for(;r===nl;)nl=hi[--pi],hi[pi]=null,rl=hi[--pi],hi[pi]=null;for(;r===bo;)bo=fn[--mn],fn[mn]=null,ur=fn[--mn],fn[mn]=null,lr=fn[--mn],fn[mn]=null}var on=null,sn=null,Ke=!1,En=null;function Am(r,i){var u=wn(5,null,null,0);u.elementType="DELETED",u.stateNode=i,u.return=r,i=r.deletions,i===null?(r.deletions=[u],r.flags|=16):i.push(u)}function xm(r,i){switch(r.tag){case 5:var u=r.type;return i=i.nodeType!==1||u.toLowerCase()!==i.nodeName.toLowerCase()?null:i,i!==null?(r.stateNode=i,on=r,sn=Dr(i.firstChild),!0):!1;case 6:return i=r.pendingProps===""||i.nodeType!==3?null:i,i!==null?(r.stateNode=i,on=r,sn=null,!0):!1;case 13:return i=i.nodeType!==8?null:i,i!==null?(u=bo!==null?{id:lr,overflow:ur}:null,r.memoizedState={dehydrated:i,treeContext:u,retryLane:1073741824},u=wn(18,null,null,0),u.stateNode=i,u.return=r,r.child=u,on=r,sn=null,!0):!1;default:return!1}}function Hc(r){return(r.mode&1)!==0&&(r.flags&128)===0}function Kc(r){if(Ke){var i=sn;if(i){var u=i;if(!xm(r,i)){if(Hc(r))throw Error(n(418));i=Dr(u.nextSibling);var d=on;i&&xm(r,i)?Am(d,u):(r.flags=r.flags&-4097|2,Ke=!1,on=r)}}else{if(Hc(r))throw Error(n(418));r.flags=r.flags&-4097|2,Ke=!1,on=r}}}function _m(r){for(r=r.return;r!==null&&r.tag!==5&&r.tag!==3&&r.tag!==13;)r=r.return;on=r}function ol(r){if(r!==on)return!1;if(!Ke)return _m(r),Ke=!0,!1;var i;if((i=r.tag!==3)&&!(i=r.tag!==5)&&(i=r.type,i=i!=="head"&&i!=="body"&&!Fc(r.type,r.memoizedProps)),i&&(i=sn)){if(Hc(r))throw Em(),Error(n(418));for(;i;)Am(r,i),i=Dr(i.nextSibling)}if(_m(r),r.tag===13){if(r=r.memoizedState,r=r!==null?r.dehydrated:null,!r)throw Error(n(317));e:{for(r=r.nextSibling,i=0;r;){if(r.nodeType===8){var u=r.data;if(u==="/$"){if(i===0){sn=Dr(r.nextSibling);break e}i--}else u!=="$"&&u!=="$!"&&u!=="$?"||i++}r=r.nextSibling}sn=null}}else sn=on?Dr(r.stateNode.nextSibling):null;return!0}function Em(){for(var r=sn;r;)r=Dr(r.nextSibling)}function fi(){sn=on=null,Ke=!1}function Yc(r){En===null?En=[r]:En.push(r)}var Cx=I.ReactCurrentBatchConfig;function Ps(r,i,u){if(r=u.ref,r!==null&&typeof r!="function"&&typeof r!="object"){if(u._owner){if(u=u._owner,u){if(u.tag!==1)throw Error(n(309));var d=u.stateNode}if(!d)throw Error(n(147,r));var g=d,w=""+r;return i!==null&&i.ref!==null&&typeof i.ref=="function"&&i.ref._stringRef===w?i.ref:(i=function(A){var R=g.refs;A===null?delete R[w]:R[w]=A},i._stringRef=w,i)}if(typeof r!="string")throw Error(n(284));if(!u._owner)throw Error(n(290,r))}return r}function il(r,i){throw r=Object.prototype.toString.call(i),Error(n(31,r==="[object Object]"?"object with keys {"+Object.keys(i).join(", ")+"}":r))}function Tm(r){var i=r._init;return i(r._payload)}function Pm(r){function i(j,N){if(r){var F=j.deletions;F===null?(j.deletions=[N],j.flags|=16):F.push(N)}}function u(j,N){if(!r)return null;for(;N!==null;)i(j,N),N=N.sibling;return null}function d(j,N){for(j=new Map;N!==null;)N.key!==null?j.set(N.key,N):j.set(N.index,N),N=N.sibling;return j}function g(j,N){return j=Kr(j,N),j.index=0,j.sibling=null,j}
vendor: 4,328 bytes, line 7
7function w(j,N,F){return j.index=F,r?(F=j.alternate,F!==null?(F=F.index,F<N?(j.flags|=2,N):F):(j.flags|=2,N)):(j.flags|=1048576,N)}function A(j){return r&&j.alternate===null&&(j.flags|=2),j}function R(j,N,F,X){return N===null||N.tag!==6?(N=$d(F,j.mode,X),N.return=j,N):(N=g(N,F),N.return=j,N)}function L(j,N,F,X){var fe=F.type;return fe===M?K(j,N,F.props.children,X,F.key):N!==null&&(N.elementType===fe||typeof fe=="object"&&fe!==null&&fe.$$typeof===pe&&Tm(fe)===N.type)?(X=g(N,F.props),X.ref=Ps(j,N,F),X.return=j,X):(X=Cl(F.type,F.key,F.props,null,j.mode,X),X.ref=Ps(j,N,F),X.return=j,X)}function V(j,N,F,X){return N===null||N.tag!==4||N.stateNode.containerInfo!==F.containerInfo||N.stateNode.implementation!==F.implementation?(N=Vd(F,j.mode,X),N.return=j,N):(N=g(N,F.children||[]),N.return=j,N)}function K(j,N,F,X,fe){return N===null||N.tag!==7?(N=Co(F,j.mode,X,fe),N.return=j,N):(N=g(N,F),N.return=j,N)}function J(j,N,F){if(typeof N=="string"&&N!==""||typeof N=="number")return N=$d(""+N,j.mode,F),N.return=j,N;if(typeof N=="object"&&N!==null){switch(N.$$typeof){case O:return F=Cl(N.type,N.key,N.props,null,j.mode,F),F.ref=Ps(j,null,N),F.return=j,F;case D:return N=Vd(N,j.mode,F),N.return=j,N;case pe:var X=N._init;return J(j,X(N._payload),F)}if(Tt(N)||q(N))return N=Co(N,j.mode,F,null),N.return=j,N;il(j,N)}return null}function H(j,N,F,X){var fe=N!==null?N.key:null;if(typeof F=="string"&&F!==""||typeof F=="number")return fe!==null?null:R(j,N,""+F,X);if(typeof F=="object"&&F!==null){switch(F.$$typeof){case O:return F.key===fe?L(j,N,F,X):null;case D:return F.key===fe?V(j,N,F,X):null;case pe:return fe=F._init,H(j,N,fe(F._payload),X)}if(Tt(F)||q(F))return fe!==null?null:K(j,N,F,X,null);il(j,F)}return null}function ae(j,N,F,X,fe){if(typeof X=="string"&&X!==""||typeof X=="number")return j=j.get(F)||null,R(N,j,""+X,fe);if(typeof X=="object"&&X!==null){switch(X.$$typeof){case O:return j=j.get(X.key===null?F:X.key)||null,L(N,j,X,fe);case D:return j=j.get(X.key===null?F:X.key)||null,V(N,j,X,fe);case pe:var be=X._init;return ae(j,N,F,be(X._payload),fe)}if(Tt(X)||q(X))return j=j.get(F)||null,K(N,j,X,fe,null);il(N,X)}return null}function de(j,N,F,X){for(var fe=null,be=null,Se=N,Ae=N=0,vt=null;Se!==null&&Ae<F.length;Ae++){Se.index>Ae?(vt=Se,Se=null):vt=Se.sibling;var Oe=H(j,Se,F[Ae],X);if(Oe===null){Se===null&&(Se=vt);break}r&&Se&&Oe.alternate===null&&i(j,Se),N=w(Oe,N,Ae),be===null?fe=Oe:be.sibling=Oe,be=Oe,Se=vt}if(Ae===F.length)return u(j,Se),Ke&&So(j,Ae),fe;if(Se===null){for(;Ae<F.length;Ae++)Se=J(j,F[Ae],X),Se!==null&&(N=w(Se,N,Ae),be===null?fe=Se:be.sibling=Se,be=Se);return Ke&&So(j,Ae),fe}for(Se=d(j,Se);Ae<F.length;Ae++)vt=ae(Se,j,Ae,F[Ae],X),vt!==null&&(r&&vt.alternate!==null&&Se.delete(vt.key===null?Ae:vt.key),N=w(vt,N,Ae),be===null?fe=vt:be.sibling=vt,be=vt);return r&&Se.forEach(function(Yr){return i(j,Yr)}),Ke&&So(j,Ae),fe}function he(j,N,F,X){var fe=q(F);if(typeof fe!="function")throw Error(n(150));if(F=fe.call(F),F==null)throw Error(n(151));for(var be=fe=null,Se=N,Ae=N=0,vt=null,Oe=F.next();Se!==null&&!Oe.done;Ae++,Oe=F.next()){Se.index>Ae?(vt=Se,Se=null):vt=Se.sibling;var Yr=H(j,Se,Oe.value,X);if(Yr===null){Se===null&&(Se=vt);break}r&&Se&&Yr.alternate===null&&i(j,Se),N=w(Yr,N,Ae),be===null?fe=Yr:be.sibling=Yr,be=Yr,Se=vt}if(Oe.done)return u(j,Se),Ke&&So(j,Ae),fe;if(Se===null){for(;!Oe.done;Ae++,Oe=F.next())Oe=J(j,Oe.value,X),Oe!==null&&(N=w(Oe,N,Ae),be===null?fe=Oe:be.sibling=Oe,be=Oe);return Ke&&So(j,Ae),fe}for(Se=d(j,Se);!Oe.done;Ae++,Oe=F.next())Oe=ae(Se,j,Ae,Oe.value,X),Oe!==null&&(r&&Oe.alternate!==null&&Se.delete(Oe.key===null?Ae:Oe.key),N=w(Oe,N,Ae),be===null?fe=Oe:be.sibling=Oe,be=Oe);return r&&Se.forEach(function(l_){return i(j,l_)}),Ke&&So(j,Ae),fe}function it(j,N,F,X){if(typeof F=="object"&&F!==null&&F.type===M&&F.key===null&&(F=F.props.children),typeof F=="object"&&F!==null){switch(F.$$typeof){case O:e:{for(var fe=F.key,be=N;be!==null;){if(be.key===fe){if(fe=F.type,fe===M){if(be.tag===7){u(j,be.sibling),N=g(be,F.props.children),N.return=j,j=N;break e}}else if(be.elementType===fe||typeof fe=="object"&&fe!==null&&fe.$$typeof===pe&&Tm(fe)===be.type){u(j,be.sibling),N=g(be,F.props),N.ref=Ps(j,be,F),N.return=j,j=N;break e}u(j,be);break}else i(j,be);be=be.sibling}F.type===M?(N=Co(F.props.children,j.mode,X,F.key),N.return=j,j=N):(X=Cl(F.type,F.key,F.props,null,
vendor: 17,984 bytes, lines 7-9
7j.mode,X),X.ref=Ps(j,N,F),X.return=j,j=X)}return A(j);case D:e:{for(be=F.key;N!==null;){if(N.key===be)if(N.tag===4&&N.stateNode.containerInfo===F.containerInfo&&N.stateNode.implementation===F.implementation){u(j,N.sibling),N=g(N,F.children||[]),N.return=j,j=N;break e}else{u(j,N);break}else i(j,N);N=N.sibling}N=Vd(F,j.mode,X),N.return=j,j=N}return A(j);case pe:return be=F._init,it(j,N,be(F._payload),X)}if(Tt(F))return de(j,N,F,X);if(q(F))return he(j,N,F,X);il(j,F)}return typeof F=="string"&&F!==""||typeof F=="number"?(F=""+F,N!==null&&N.tag===6?(u(j,N.sibling),N=g(N,F),N.return=j,j=N):(u(j,N),N=$d(F,j.mode,X),N.return=j,j=N),A(j)):u(j,N)}return it}var mi=Pm(!0),Cm=Pm(!1),sl=jr(null),al=null,gi=null,Jc=null;function Qc(){Jc=gi=al=null}function Xc(r){var i=sl.current;We(sl),r._currentValue=i}function Zc(r,i,u){for(;r!==null;){var d=r.alternate;if((r.childLanes&i)!==i?(r.childLanes|=i,d!==null&&(d.childLanes|=i)):d!==null&&(d.childLanes&i)!==i&&(d.childLanes|=i),r===u)break;r=r.return}}function vi(r,i){al=r,Jc=gi=null,r=r.dependencies,r!==null&&r.firstContext!==null&&((r.lanes&i)!==0&&(Ht=!0),r.firstContext=null)}function gn(r){var i=r._currentValue;if(Jc!==r)if(r={context:r,memoizedValue:i,next:null},gi===null){if(al===null)throw Error(n(308));gi=r,al.dependencies={lanes:0,firstContext:r}}else gi=gi.next=r;return i}var ko=null;function ed(r){ko===null?ko=[r]:ko.push(r)}function Im(r,i,u,d){var g=i.interleaved;return g===null?(u.next=u,ed(i)):(u.next=g.next,g.next=u),i.interleaved=u,cr(r,d)}function cr(r,i){r.lanes|=i;var u=r.alternate;for(u!==null&&(u.lanes|=i),u=r,r=r.return;r!==null;)r.childLanes|=i,u=r.alternate,u!==null&&(u.childLanes|=i),u=r,r=r.return;return u.tag===3?u.stateNode:null}var Vr=!1;function td(r){r.updateQueue={baseState:r.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Rm(r,i){r=r.updateQueue,i.updateQueue===r&&(i.updateQueue={baseState:r.baseState,firstBaseUpdate:r.firstBaseUpdate,lastBaseUpdate:r.lastBaseUpdate,shared:r.shared,effects:r.effects})}function dr(r,i){return{eventTime:r,lane:i,tag:0,payload:null,callback:null,next:null}}function Ur(r,i,u){var d=r.updateQueue;if(d===null)return null;if(d=d.shared,(Ie&2)!==0){var g=d.pending;return g===null?i.next=i:(i.next=g.next,g.next=i),d.pending=i,cr(r,u)}return g=d.interleaved,g===null?(i.next=i,ed(d)):(i.next=g.next,g.next=i),d.interleaved=i,cr(r,u)}function ll(r,i,u){if(i=i.updateQueue,i!==null&&(i=i.shared,(u&4194240)!==0)){var d=i.lanes;d&=r.pendingLanes,u|=d,i.lanes=u,mc(r,u)}}function Om(r,i){var u=r.updateQueue,d=r.alternate;if(d!==null&&(d=d.updateQueue,u===d)){var g=null,w=null;if(u=u.firstBaseUpdate,u!==null){do{var A={eventTime:u.eventTime,lane:u.lane,tag:u.tag,payload:u.payload,callback:u.callback,next:null};w===null?g=w=A:w=w.next=A,u=u.next}while(u!==null);w===null?g=w=i:w=w.next=i}else g=w=i;u={baseState:d.baseState,firstBaseUpdate:g,lastBaseUpdate:w,shared:d.shared,effects:d.effects},r.updateQueue=u;return}r=u.lastBaseUpdate,r===null?u.firstBaseUpdate=i:r.next=i,u.lastBaseUpdate=i}function ul(r,i,u,d){var g=r.updateQueue;Vr=!1;var w=g.firstBaseUpdate,A=g.lastBaseUpdate,R=g.shared.pending;if(R!==null){g.shared.pending=null;var L=R,V=L.next;L.next=null,A===null?w=V:A.next=V,A=L;var K=r.alternate;K!==null&&(K=K.updateQueue,R=K.lastBaseUpdate,R!==A&&(R===null?K.firstBaseUpdate=V:R.next=V,K.lastBaseUpdate=L))}if(w!==null){var J=g.baseState;A=0,K=V=L=null,R=w;do{var H=R.lane,ae=R.eventTime;if((d&H)===H){K!==null&&(K=K.next={eventTime:ae,lane:0,tag:R.tag,payload:R.payload,callback:R.callback,next:null});e:{var de=r,he=R;switch(H=i,ae=u,he.tag){case 1:if(de=he.payload,typeof de=="function"){J=de.call(ae,J,H);break e}J=de;break e;case 3:de.flags=de.flags&-65537|128;case 0:if(de=he.payload,H=typeof de=="function"?de.call(ae,J,H):de,H==null)break e;J=Y({},J,H);break e;case 2:Vr=!0}}R.callback!==null&&R.lane!==0&&(r.flags|=64,H=g.effects,H===null?g.effects=[R]:H.push(R))}else ae={eventTime:ae,lane:H,tag:R.tag,payload:R.payload,callback:R.callback,next:null},K===null?(V=K=ae,L=J):K=K.next=ae,A|=H;if(R=R.next,R===null){if(R=g.shared.pending,R===null)break;H=R,R=H.next,H.next=null,g.lastBaseUpdate=H,g.shared.pending=null}}while(!0);if(K===null&&(L=J),g.baseState=L,g.firstBaseUpdate=V,g.lastBaseUpdate=K,i=g.shared.interleaved,i!==null){g=i;do A|=g.lane,g=g.next;while(g!==i)}else w===null&&(g.shared.lanes=0);_o|=A,r.lanes=A,r.memoizedState=J}}function Lm(r,i,u){if(r=i.effects,i.effects=null,r!==null)for(i=0;i<r.length;i++){var d=r[i],g=d.callback;if(g!==null){if(d.callback=null,d=u,typeof g!="function")throw Error(n(191,g));g.call(d)}}}var Cs={},Hn=jr(Cs),Is=jr(Cs),Rs=jr(Cs);function Ao(r){if(r===Cs)throw Error(n(174));return r}function nd(r,i){switch($e(Rs,i),$e(Is,r),$e(Hn,Cs),r=i.nodeType,r){case 9:case 11:i=(i=i.documentElement)?i.namespaceURI:ft(null,"");break;default:r=r===8?i.parentNode:i,i=r.namespaceURI||null,r=r.tagName,i=ft(i,r)}We(Hn),$e(Hn,i)}function yi(){We(Hn),We(Is),We(Rs)}function zm(r){Ao(Rs.current);var i=Ao(Hn.current),u=ft(i,r.type);i!==u&&($e(Is,r),$e(Hn,u))}function rd(r){Is.current===r&&(We(Hn),We(Is))}var Ze=jr(0);function cl(r){for(var i=r;i!==null;){if(i.tag===13){var u=i.memoizedState;if(u!==null&&(u=u.dehydrated,u===null||u.data==="$?"||u.data==="$!"))return i}else if(i.tag===19&&i.memoizedProps.revealOrder!==void 0){if((i.flags&128)!==0)return i}else if(i.child!==null){i.child.return=i,i=i.child;continue}if(i===r)break;for(;i.sibling===null;){if(i.return===null||i.return===r)return null;i=i.return}i.sibling.return=i.return,i=i.sibling}return null}var od=[];function id(){for(var r=0;r<od.length;r++)od[r]._workInProgressVersionPrimary=null;od.length=0}var dl=I.ReactCurrentDispatcher,sd=I.ReactCurrentBatchConfig,xo=0,et=null,ct=null,mt=null,hl=!1,Os=!1,Ls=0,Ix=0;function Ct(){throw Error(n(321))}function ad(r,i){if(i===null)return!1;for(var u=0;u<i.length&&u<r.length;u++)if(!_n(r[u],i[u]))return!1;return!0}function ld(r,i,u,d,g,w){if(xo=w,et=i,i.memoizedState=null,i.updateQueue=null,i.lanes=0,dl.current=r===null||r.memoizedState===null?zx:Nx,r=u(d,g),Os){w=0;do{if(Os=!1,Ls=0,25<=w)throw Error(n(301));w+=1,mt=ct=null,i.updateQueue=null,dl.current=Mx,r=u(d,g)}while(Os)}if(dl.current=ml,i=ct!==null&&ct.next!==null,xo=0,mt=ct=et=null,hl=!1,i)throw Error(n(300));return r}function ud(){var r=Ls!==0;return Ls=0,r}function Kn(){var r={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return mt===null?et.memoizedState=mt=r:mt=mt.next=r,mt}function vn(){if(ct===null){var r=et.alternate;r=r!==null?r.memoizedState:null}else r=ct.next;var i=mt===null?et.memoizedState:mt.next;if(i!==null)mt=i,ct=r;else{if(r===null)throw Error(n(310));ct=r,r={memoizedState:ct.memoizedState,baseState:ct.baseState,baseQueue:ct.baseQueue,queue:ct.queue,next:null},mt===null?et.memoizedState=mt=r:mt=mt.next=r}return mt}function zs(r,i){return typeof i=="function"?i(r):i}function cd(r){var i=vn(),u=i.queue;if(u===null)throw Error(n(311));u.lastRenderedReducer=r;var d=ct,g=d.baseQueue,w=u.pending;if(w!==null){if(g!==null){var A=g.next;g.next=w.next,w.next=A}d.baseQueue=g=w,u.pending=null}if(g!==null){w=g.next,d=d.baseState;var R=A=null,L=null,V=w;do{var K=V.lane;if((xo&K)===K)L!==null&&(L=L.next={lane:0,action:V.action,hasEagerState:V.hasEagerState,eagerState:V.eagerState,next:null}),d=V.hasEagerState?V.eagerState:r(d,V.action);else{var J={lane:K,action:V.action,hasEagerState:V.hasEagerState,eagerState:V.eagerState,next:null};L===null?(R=L=J,A=d):L=L.next=J,et.lanes|=K,_o|=K}V=V.next}while(V!==null&&V!==w);L===null?A=d:L.next=R,_n(d,i.memoizedState)||(Ht=!0),i.memoizedState=d,i.baseState=A,i.baseQueue=L,u.lastRenderedState=d}if(r=u.interleaved,r!==null){g=r;do w=g.lane,et.lanes|=w,_o|=w,g=g.next;while(g!==r)}else g===null&&(u.lanes=0);return[i.memoizedState,u.dispatch]}function dd(r){var i=vn(),u=i.queue;if(u===null)throw Error(n(311));u.lastRenderedReducer=r;var d=u.dispatch,g=u.pending,w=i.memoizedState;if(g!==null){u.pending=null;var A=g=g.next;do w=r(w,A.action),A=A.next;while(A!==g);_n(w,i.memoizedState)||(Ht=!0),i.memoizedState=w,i.baseQueue===null&&(i.baseState=w),u.lastRenderedState=w}return[w,d]}function Nm(){}function Mm(r,i){var u=et,d=vn(),g=i(),w=!_n(d.memoizedState,g);if(w&&(d.memoizedState=g,Ht=!0),d=d.queue,hd(Fm.bind(null,u,d,r),[r]),d.getSnapshot!==i||w||mt!==null&&mt.memoizedState.tag&1){if(u.flags|=2048,Ns(9,jm.bind(null,u,d,g,i),void 0,null),gt===null)throw Error(n(349));(xo&30)!==0||Dm(u,i,g)}return g}function Dm(r,i,u){r.flags|=16384,r={getSnapshot:i,value:u},i=et.updateQueue,i===null?(i={lastEffect:null,stores:null},et.updateQueue=i,i.stores=[r]):(u=i.stores,u===null?i.stores=[r]:u.push(r))}function jm(r,i,u,d){i.value=u,i.getSnapshot=d,$m(i)&&Vm(r)}function Fm(r,i,u){return u(function(){$m(i)&&Vm(r)})}function $m(r){var i=r.getSnapshot;r=r.value;try{var u=i();return!_n(r,u)}catch{return!0}}function Vm(r){var i=cr(r,1);i!==null&&In(i,r,1,-1)}function Um(r){var i=Kn();return typeof r=="function"&&(r=r()),i.memoizedState=i.baseState=r,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:zs,lastRenderedState:r},i.queue=r,r=r.dispatch=Lx.bind(null,et,r),[i.memoizedState,r]}function Ns(r,i,u,d){return r={tag:r,create:i,destroy:u,deps:d,next:null},i=et.updateQueue,i===null?(i={lastEffect:null,stores:null},et.updateQueue=i,i.lastEffect=r.next=r):(u=i.lastEffect,u===null?i.lastEffect=r.next=r:(d=u.next,u.next=r,r.next=d,i.lastEffect=r)),r}function Bm(){return vn().memoizedState}function pl(r,i,u,d){var g=Kn();et.flags|=r,g.memoizedState=Ns(1|i,u,void 0,d===void 0?null:d)}function fl(r,i,u,d){var g=vn();d=d===void 0?null:d;var w=void 0;if(ct!==null){var A=ct.memoizedState;if(w=A.destroy,d!==null&&ad(d,A.deps)){g.memoizedState=Ns(i,u,w,d);return}}et.flags|=r,g.memoizedState=Ns(1|i,u,w,d)}function Wm(r,i){return pl(8390656,8,r,i)}function hd(r,i){return fl(2048,8,r,i)}function qm(r,i){return fl(4,2,r,i)}function Gm(r,i){return fl(4,4,r,i)}function Hm(r,i){if(typeof i=="function")return r=r(),i(r),function(){i(null)};if(i!=null)return r=r(),i.current=r,function(){i.current=null}}function Km(r,i,u){return u=u!=null?u.concat([r]):null,fl(4,4,Hm.bind(null,i,r),u)}function pd(){}function Ym(r,i){var u=vn();i=i===void 0?null:i;var d=u.memoizedState;return d!==null&&i!==null&&ad(i,d[1])?d[0]:(u.memoizedState=[r,i],r)}function Jm(r,i){var u=vn();i=i===void 0?null:i;var d=u.memoizedState;return d!==null&&i!==null&&ad(i,d[1])?d[0]:(r=r(),u.memoizedState=[r,i],r)}function Qm(r,i,u){return(xo&21)===0?(r.baseState&&(r.baseState=!1,Ht=!0),r.memoizedState=u):(_n(u,i)||(u=Tf(),et.lanes|=u,_o|=u,r.baseState=!0),i)}function Rx(r,i){var u=Me;Me=u!==0&&4>u?u:4,r(!0);var d=sd.transition;sd.transition={};try{r(!1),i()}finally{Me=u,sd.transition=d}}function Xm(){return vn().memoizedState}function Ox(r,i,u){var d=Gr(r);if(u={lane:d,action:u,hasEagerState:!1,eagerState:null,next:null},Zm(r))eg(i,u);else if(u=Im(r,i,u,d),u!==null){var g=jt();In(u,r,d,g),tg(u,i,d)}}function Lx(r,i,u){var d=Gr(r),g={lane:d,action:u,hasEagerState:!1,eagerState:null,next:null};if(Zm(r))eg(i,g);else{var w=r.alternate;if(r.lanes===0&&(w===null||w.lanes===0)&&(w=i.lastRenderedReducer,w!==null))try{var A=i.lastRenderedState,R=w(A,u);if(g.hasEagerState=!0,g.eagerState=R,_n(R,A)){var L=i.interleaved;L===null?(g.next=g,ed(i)):(g.next=L.next,L.next=g),i.interleaved=g;return}}catch{}u=Im(r,i,g,d),u!==null&&(g=jt(),In(u,r,d,g),tg(u,i,d))}}function Zm(r){var i=r.alternate;return r===et||i!==null&&i===et}function eg(r,i){Os=hl=!0;var u=r.pending;u===null?i.next=i:(i.next=u.next,u.next=i),r.pending=i}function tg(r,i,u){if((u&4194240)!==0){var d=i.lanes;d&=r.pendingLanes,u|=d,i.lanes=u,mc(r,u)}}var ml={readContext:gn,useCallback:Ct,useContext:Ct,useEffect:Ct,useImperativeHandle:Ct,useInsertionEffect:Ct,useLayoutEffect:Ct,useMemo:Ct,useReducer:Ct,useRef:Ct,useState:Ct,useDebugValue:Ct,useDeferredValue:Ct,useTransition:Ct,useMutableSource:Ct,useSyncExternalStore:Ct,useId:Ct,unstable_isNewReconciler:!1},zx={readContext:gn,useCallback:function(r,i){return Kn().memoizedState=[r,i===void 0?null:i],r},useContext:gn,useEffect:Wm,useImperativeHandle:function(r,i,u){return u=u!=null?u.concat([r]):null,pl(4194308,4,Hm.bind(null,i,r),u)},useLayoutEffect:function(r,i){return pl(4194308,4,r,i)},useInsertionEffect:function(r,i){return pl(4,2,r,i)},useMemo:function(r,i){var u=Kn();return i=i===void 0?null:i,r=r(),u.memoizedState=[r,i],r},useReducer:function(r,i,u){var d=Kn();return i=u!==void 0?u(i):i,d.memoizedState=d.baseState=i,r={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:r,lastRenderedState:i},d.queue=r,r=r.dispatch=Ox.bind(null,et,r),[d.memoizedState,r]},useRef:function(r){var i=Kn();return r={current:r},i.memoizedState=r},useState:Um,useDebugValue:pd,useDeferredValue:function(r){return Kn().memoizedState=r},useTransition:function(){var r=Um(!1),i=r[0];return r=Rx.bind(null,r[1]),Kn().memoizedState=r,[i,r]},useMutableSource:function(){},useSyncExternalStore:function(r,i,u){var d=et,g=Kn();if(Ke){if(u===void 0)throw Error(n(407));u=u()}else{if(u=i(),gt===null)throw Error(n(349));(xo&30)!==0||Dm(d,i,u)}g.memoizedState=u;var w={value:u,getSnapshot:i};return g.queue=w,Wm(Fm.bind(null,d,w,r),[r]),d.flags|=2048,Ns(9,jm.bind(null,d,w,u,i),void 0,null),u},useId:function(){var r=Kn(),i=gt.identifierPrefix;if(Ke){var u=ur,d=lr;u=(d&~(1<<32-xn(d)-1)).toString(32)+u,i=":"+i+"R"+u,u=Ls++,0<u&&(i+="H"+u.toString(32)),i+=":"}else u=Ix++,i=":"+i+"r"+u.toString(32)+":";return r.memoizedState=i},unstable_isNewReconciler:!1},Nx={readContext:gn,useCallback:Ym,useContext:gn,useEffect:hd,useImperativeHandle:Km,useInsertionEffect:qm,useLayoutEffect:Gm,useMemo:Jm,useReducer:cd,useRef:Bm,useState:function(){return cd(zs)},useDebugValue:pd,useDeferredValue:function(r){var i=vn();return Qm(i,ct.memoizedState,r)},useTransition:function(){var r=cd(zs)[0],i=vn().memoizedState;return[r,i]},useMutableSource:Nm,useSyncExternalStore:Mm,useId:Xm,unstable_isNewReconciler:!1},Mx={readContext:gn,useCallback:Ym,useContext:gn,useEffect:hd,useImperativeHandle:Km,useInsertionEffect:qm,useLayoutEffect:Gm,useMemo:Jm,useReducer:dd,useRef:Bm,useState:function(){return dd(zs)},useDebugValue:pd,useDeferredValue:function(r){var i=vn();return ct===null?i.memoizedState=r:Qm(i,ct.memoizedState,r)},useTransition:function(){var r=dd(zs)[0],i=vn().memoizedState;return[r,i]},useMutableSource:Nm,useSyncExternalStore:Mm,useId:Xm,unstable_isNewReconciler:!1};function Tn(r,i){if(r&&r.defaultProps){i=Y({},i),r=r.defaultProps;for(var u in r)i[u]===void 0&&(i[u]=r[u]);return i}return i}function fd(r,i,u,d){i=r.memoizedState,u=u(d,i),u=u==null?i:Y({},i,u),r.memoizedState=u,r.lanes===0&&(r.updateQueue.baseState=u)}var gl={isMounted:function(r){return(r=r._reactInternals)?vo(r)===r:!1},enqueueSetState:function(r,i,u){r=r._reactInternals;var d=jt(),g=Gr(r),w=dr(d,g);w.payload=i,u!=null&&(w.callback=u),i=Ur(r,w,g),i!==null&&(In(i,r,g,d),ll(i,r,g))},enqueueReplaceState:function(r,i,u){r=r._reactInternals;var d=jt(),g=Gr(r),w=dr(d,g);w.tag=1,w.payload=i,u!=null&&(w.callback=u),i=Ur(r,w,g),i!==null&&(In(i,r,g,d),ll(i,r,g))},enqueueForceUpdate:function(r,i){r=r._reactInternals;var u=jt(),d=Gr(r),g=dr(u,d);g.tag=2,i!=null&&(g.callback=i),i=Ur(r,g,d),i!==null&&(In(i,r,d,u),ll(i,r,d))}};function ng(r,i,u,d,g,w,A){return r=r.stateNode,typeof r.shouldComponentUpdate=="function"?r.shouldComponentUpdate(d,w,A):i.prototype&&i.prototype.isPureReactComponent?!Ss(u,d)||!Ss(g,w):!0}function rg(r,i,u){var d=!1,g=Fr,w=i.contextType;return typeof w=="object"&&w!==null?w=gn(w):(g=Gt(i)?wo:Pt.current,d=i.contextTypes,w=(d=d!=null)?di(r,g):Fr),i=new i(u,w),r.memoizedState=i.state!==null&&i.state!==void 0?i.state:null,i.updater=gl,r.stateNode=i,i._reactInternals=r,d&&(r=r.stateNode,r.__reactInternalMemoizedUnmaskedChildContext=g,r.__reactInternalMemoizedMaskedChildContext=w),i}function og(r,i,u,d){r=i.state,typeof i.componentWillReceiveProps=="function"&&i.componentWillReceiveProps(u,d),typeof i.UNSAFE_componentWillReceiveProps=="function"&&i.UNSAFE_componentWillReceiveProps(u,d),i.state!==r&&gl.enqueueReplaceState(i,i.state,null)}function md(r,i,u,d){var g=r.stateNode;g.props=u,g.state=r.memoizedState,g.refs={},td(r);var w=i.contextType;typeof w=="object"&&w!==null?g.context=gn(w):(w=Gt(i)?wo:Pt.current,g.context=di(r,w)),g.state=r.memoizedState,w=i.getDerivedStateFromProps,typeof w=="function"&&(fd(r,i,w,u),g.state=r.memoizedState),typeof i.getDerivedStateFromProps=="function"||typeof g.getSnapshotBeforeUpdate=="function"||typeof g.UNSAFE_componentWillMount!="function"&&typeof g.componentWillMount!="function"||(i=g.state,typeof g.componentWillMount=="function"&&g.componentWillMount(),typeof g.UNSAFE_componentWillMount=="function"&&g.UNSAFE_componentWillMount(),i!==g.state&&gl.enqueueReplaceState(g,g.state,null),ul(r,u,g,d),g.state=r.memoizedState),typeof g.componentDidMount=="function"&&(r.flags|=4194308)}function wi(r,i){try{var u="",d=i;do u+=ce(d),d=d.return;while(d);var g=u}catch(w){g=` 8Error generating stack: `+w.message+` 9`+w.stack}return{value:r,source:i,stack:g,digest:null}}function gd(r,i,u){return{value:r,source:null,stack:u??null,digest:i??null}}function vd(r,i){try{console.error(i.value)}catch(u){setTimeout(function(){throw u})}}var Dx=typeof WeakMap=="function"?WeakMap:Map;function ig(r,i,u){u=dr(-1,u),u.tag=3,u.payload={element:null};var d=i.value;return u.callback=function(){Al||(Al=!0,Od=d),vd(r,i)},u}function sg(r,i,u){u=dr(-1,u),u.tag=3;var d=r.type.getDerivedStateFromError;if(typeof d=="function"){var g=i.value;u.payload=function(){return d(g)},u.callback=function(){vd(r,i)}}var w=r.stateNode;return w!==null&&typeof w.componentDidCatch=="function"&&(u.callback=function(){vd(r,i),typeof d!="function"&&(Wr===null?Wr=new Set([this]):Wr.add(this));var A=i.stack;this.componentDidCatch(i.value,{componentStack:A!==null?A:""})}),u}function ag(r,i,u){var d=r.pingCache;
vendor: 6,735 bytes, line 9
9if(d===null){d=r.pingCache=new Dx;var g=new Set;d.set(i,g)}else g=d.get(i),g===void 0&&(g=new Set,d.set(i,g));g.has(u)||(g.add(u),r=Qx.bind(null,r,i,u),i.then(r,r))}function lg(r){do{var i;if((i=r.tag===13)&&(i=r.memoizedState,i=i!==null?i.dehydrated!==null:!0),i)return r;r=r.return}while(r!==null);return null}function ug(r,i,u,d,g){return(r.mode&1)===0?(r===i?r.flags|=65536:(r.flags|=128,u.flags|=131072,u.flags&=-52805,u.tag===1&&(u.alternate===null?u.tag=17:(i=dr(-1,1),i.tag=2,Ur(u,i,1))),u.lanes|=1),r):(r.flags|=65536,r.lanes=g,r)}var jx=I.ReactCurrentOwner,Ht=!1;function Dt(r,i,u,d){i.child=r===null?Cm(i,null,u,d):mi(i,r.child,u,d)}function cg(r,i,u,d,g){u=u.render;var w=i.ref;return vi(i,g),d=ld(r,i,u,d,w,g),u=ud(),r!==null&&!Ht?(i.updateQueue=r.updateQueue,i.flags&=-2053,r.lanes&=~g,hr(r,i,g)):(Ke&&u&&qc(i),i.flags|=1,Dt(r,i,d,g),i.child)}function dg(r,i,u,d,g){if(r===null){var w=u.type;return typeof w=="function"&&!Fd(w)&&w.defaultProps===void 0&&u.compare===null&&u.defaultProps===void 0?(i.tag=15,i.type=w,hg(r,i,w,d,g)):(r=Cl(u.type,null,d,i,i.mode,g),r.ref=i.ref,r.return=i,i.child=r)}if(w=r.child,(r.lanes&g)===0){var A=w.memoizedProps;if(u=u.compare,u=u!==null?u:Ss,u(A,d)&&r.ref===i.ref)return hr(r,i,g)}return i.flags|=1,r=Kr(w,d),r.ref=i.ref,r.return=i,i.child=r}function hg(r,i,u,d,g){if(r!==null){var w=r.memoizedProps;if(Ss(w,d)&&r.ref===i.ref)if(Ht=!1,i.pendingProps=d=w,(r.lanes&g)!==0)(r.flags&131072)!==0&&(Ht=!0);else return i.lanes=r.lanes,hr(r,i,g)}return yd(r,i,u,d,g)}function pg(r,i,u){var d=i.pendingProps,g=d.children,w=r!==null?r.memoizedState:null;if(d.mode==="hidden")if((i.mode&1)===0)i.memoizedState={baseLanes:0,cachePool:null,transitions:null},$e(Si,an),an|=u;else{if((u&1073741824)===0)return r=w!==null?w.baseLanes|u:u,i.lanes=i.childLanes=1073741824,i.memoizedState={baseLanes:r,cachePool:null,transitions:null},i.updateQueue=null,$e(Si,an),an|=r,null;i.memoizedState={baseLanes:0,cachePool:null,transitions:null},d=w!==null?w.baseLanes:u,$e(Si,an),an|=d}else w!==null?(d=w.baseLanes|u,i.memoizedState=null):d=u,$e(Si,an),an|=d;return Dt(r,i,g,u),i.child}function fg(r,i){var u=i.ref;(r===null&&u!==null||r!==null&&r.ref!==u)&&(i.flags|=512,i.flags|=2097152)}function yd(r,i,u,d,g){var w=Gt(u)?wo:Pt.current;return w=di(i,w),vi(i,g),u=ld(r,i,u,d,w,g),d=ud(),r!==null&&!Ht?(i.updateQueue=r.updateQueue,i.flags&=-2053,r.lanes&=~g,hr(r,i,g)):(Ke&&d&&qc(i),i.flags|=1,Dt(r,i,u,g),i.child)}function mg(r,i,u,d,g){if(Gt(u)){var w=!0;el(i)}else w=!1;if(vi(i,g),i.stateNode===null)yl(r,i),rg(i,u,d),md(i,u,d,g),d=!0;else if(r===null){var A=i.stateNode,R=i.memoizedProps;A.props=R;var L=A.context,V=u.contextType;typeof V=="object"&&V!==null?V=gn(V):(V=Gt(u)?wo:Pt.current,V=di(i,V));var K=u.getDerivedStateFromProps,J=typeof K=="function"||typeof A.getSnapshotBeforeUpdate=="function";J||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(R!==d||L!==V)&&og(i,A,d,V),Vr=!1;var H=i.memoizedState;A.state=H,ul(i,d,A,g),L=i.memoizedState,R!==d||H!==L||qt.current||Vr?(typeof K=="function"&&(fd(i,u,K,d),L=i.memoizedState),(R=Vr||ng(i,u,R,d,H,L,V))?(J||typeof A.UNSAFE_componentWillMount!="function"&&typeof A.componentWillMount!="function"||(typeof A.componentWillMount=="function"&&A.componentWillMount(),typeof A.UNSAFE_componentWillMount=="function"&&A.UNSAFE_componentWillMount()),typeof A.componentDidMount=="function"&&(i.flags|=4194308)):(typeof A.componentDidMount=="function"&&(i.flags|=4194308),i.memoizedProps=d,i.memoizedState=L),A.props=d,A.state=L,A.context=V,d=R):(typeof A.componentDidMount=="function"&&(i.flags|=4194308),d=!1)}else{A=i.stateNode,Rm(r,i),R=i.memoizedProps,V=i.type===i.elementType?R:Tn(i.type,R),A.props=V,J=i.pendingProps,H=A.context,L=u.contextType,typeof L=="object"&&L!==null?L=gn(L):(L=Gt(u)?wo:Pt.current,L=di(i,L));var ae=u.getDerivedStateFromProps;(K=typeof ae=="function"||typeof A.getSnapshotBeforeUpdate=="function")||typeof A.UNSAFE_componentWillReceiveProps!="function"&&typeof A.componentWillReceiveProps!="function"||(R!==J||H!==L)&&og(i,A,d,L),Vr=!1,H=i.memoizedState,A.state=H,ul(i,d,A,g);var de=i.memoizedState;R!==J||H!==de||qt.current||Vr?(typeof ae=="function"&&(fd(i,u,ae,d),de=i.memoizedState),(V=Vr||ng(i,u,V,d,H,de,L)||!1)?(K||typeof A.UNSAFE_componentWillUpdate!="function"&&typeof A.componentWillUpdate!="function"||(typeof A.componentWillUpdate=="function"&&A.componentWillUpdate(d,de,L),typeof A.UNSAFE_componentWillUpdate=="function"&&A.UNSAFE_componentWillUpdate(d,de,L)),typeof A.componentDidUpdate=="function"&&(i.flags|=4),typeof A.getSnapshotBeforeUpdate=="function"&&(i.flags|=1024)):(typeof A.componentDidUpdate!="function"||R===r.memoizedProps&&H===r.memoizedState||(i.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||R===r.memoizedProps&&H===r.memoizedState||(i.flags|=1024),i.memoizedProps=d,i.memoizedState=de),A.props=d,A.state=de,A.context=L,d=V):(typeof A.componentDidUpdate!="function"||R===r.memoizedProps&&H===r.memoizedState||(i.flags|=4),typeof A.getSnapshotBeforeUpdate!="function"||R===r.memoizedProps&&H===r.memoizedState||(i.flags|=1024),d=!1)}return wd(r,i,u,d,w,g)}function wd(r,i,u,d,g,w){fg(r,i);var A=(i.flags&128)!==0;if(!d&&!A)return g&&bm(i,u,!1),hr(r,i,w);d=i.stateNode,jx.current=i;var R=A&&typeof u.getDerivedStateFromError!="function"?null:d.render();return i.flags|=1,r!==null&&A?(i.child=mi(i,r.child,null,w),i.child=mi(i,null,R,w)):Dt(r,i,R,w),i.memoizedState=d.state,g&&bm(i,u,!0),i.child}function gg(r){var i=r.stateNode;i.pendingContext?ym(r,i.pendingContext,i.pendingContext!==i.context):i.context&&ym(r,i.context,!1),nd(r,i.containerInfo)}function vg(r,i,u,d,g){return fi(),Yc(g),i.flags|=256,Dt(r,i,u,d),i.child}var bd={dehydrated:null,treeContext:null,retryLane:0};function Sd(r){return{baseLanes:r,cachePool:null,transitions:null}}function yg(r,i,u){var d=i.pendingProps,g=Ze.current,w=!1,A=(i.flags&128)!==0,R;if((R=A)||(R=r!==null&&r.memoizedState===null?!1:(g&2)!==0),R?(w=!0,i.flags&=-129):(r===null||r.memoizedState!==null)&&(g|=1),$e(Ze,g&1),r===null)return Kc(i),r=i.memoizedState,r!==null&&(r=r.dehydrated,r!==null)?((i.mode&1)===0?i.lanes=1:r.data==="$!"?i.lanes=8:i.lanes=1073741824,null):(A=d.children,r=d.fallback,w?(d=i.mode,w=i.child,A={mode:"hidden",children:A},(d&1)===0&&w!==null?(w.childLanes=0,w.pendingProps=A):w=Il(A,d,0,null),r=Co(r,d,u,null),w.return=i,r.return=i,w.sibling=r,i.child=w,i.child.memoizedState=Sd(u),i.memoizedState=bd,r):kd(i,A));if(g=r.memoizedState,g!==null&&(R=g.dehydrated,R!==null))return Fx(r,i,A,d,R,g,u);if(w){w=d.fallback,A=i.mode,g=r.child,R=g.sibling;var L={mode:"hidden",children:d.children};return(A&1)===0&&i.child!==g?(d=i.child,d.childLanes=0,d.pendingProps=L,i.deleti
vendor: 6,112 bytes, line 9
9ons=null):(d=Kr(g,L),d.subtreeFlags=g.subtreeFlags&14680064),R!==null?w=Kr(R,w):(w=Co(w,A,u,null),w.flags|=2),w.return=i,d.return=i,d.sibling=w,i.child=d,d=w,w=i.child,A=r.child.memoizedState,A=A===null?Sd(u):{baseLanes:A.baseLanes|u,cachePool:null,transitions:A.transitions},w.memoizedState=A,w.childLanes=r.childLanes&~u,i.memoizedState=bd,d}return w=r.child,r=w.sibling,d=Kr(w,{mode:"visible",children:d.children}),(i.mode&1)===0&&(d.lanes=u),d.return=i,d.sibling=null,r!==null&&(u=i.deletions,u===null?(i.deletions=[r],i.flags|=16):u.push(r)),i.child=d,i.memoizedState=null,d}function kd(r,i){return i=Il({mode:"visible",children:i},r.mode,0,null),i.return=r,r.child=i}function vl(r,i,u,d){return d!==null&&Yc(d),mi(i,r.child,null,u),r=kd(i,i.pendingProps.children),r.flags|=2,i.memoizedState=null,r}function Fx(r,i,u,d,g,w,A){if(u)return i.flags&256?(i.flags&=-257,d=gd(Error(n(422))),vl(r,i,A,d)):i.memoizedState!==null?(i.child=r.child,i.flags|=128,null):(w=d.fallback,g=i.mode,d=Il({mode:"visible",children:d.children},g,0,null),w=Co(w,g,A,null),w.flags|=2,d.return=i,w.return=i,d.sibling=w,i.child=d,(i.mode&1)!==0&&mi(i,r.child,null,A),i.child.memoizedState=Sd(A),i.memoizedState=bd,w);if((i.mode&1)===0)return vl(r,i,A,null);if(g.data==="$!"){if(d=g.nextSibling&&g.nextSibling.dataset,d)var R=d.dgst;return d=R,w=Error(n(419)),d=gd(w,d,void 0),vl(r,i,A,d)}if(R=(A&r.childLanes)!==0,Ht||R){if(d=gt,d!==null){switch(A&-A){case 4:g=2;break;case 16:g=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:g=32;break;case 536870912:g=268435456;break;default:g=0}g=(g&(d.suspendedLanes|A))!==0?0:g,g!==0&&g!==w.retryLane&&(w.retryLane=g,cr(r,g),In(d,r,g,-1))}return jd(),d=gd(Error(n(421))),vl(r,i,A,d)}return g.data==="$?"?(i.flags|=128,i.child=r.child,i=Xx.bind(null,r),g._reactRetry=i,null):(r=w.treeContext,sn=Dr(g.nextSibling),on=i,Ke=!0,En=null,r!==null&&(fn[mn++]=lr,fn[mn++]=ur,fn[mn++]=bo,lr=r.id,ur=r.overflow,bo=i),i=kd(i,d.children),i.flags|=4096,i)}function wg(r,i,u){r.lanes|=i;var d=r.alternate;d!==null&&(d.lanes|=i),Zc(r.return,i,u)}function Ad(r,i,u,d,g){var w=r.memoizedState;w===null?r.memoizedState={isBackwards:i,rendering:null,renderingStartTime:0,last:d,tail:u,tailMode:g}:(w.isBackwards=i,w.rendering=null,w.renderingStartTime=0,w.last=d,w.tail=u,w.tailMode=g)}function bg(r,i,u){var d=i.pendingProps,g=d.revealOrder,w=d.tail;if(Dt(r,i,d.children,u),d=Ze.current,(d&2)!==0)d=d&1|2,i.flags|=128;else{if(r!==null&&(r.flags&128)!==0)e:for(r=i.child;r!==null;){if(r.tag===13)r.memoizedState!==null&&wg(r,u,i);else if(r.tag===19)wg(r,u,i);else if(r.child!==null){r.child.return=r,r=r.child;continue}if(r===i)break e;for(;r.sibling===null;){if(r.return===null||r.return===i)break e;r=r.return}r.sibling.return=r.return,r=r.sibling}d&=1}if($e(Ze,d),(i.mode&1)===0)i.memoizedState=null;else switch(g){case"forwards":for(u=i.child,g=null;u!==null;)r=u.alternate,r!==null&&cl(r)===null&&(g=u),u=u.sibling;u=g,u===null?(g=i.child,i.child=null):(g=u.sibling,u.sibling=null),Ad(i,!1,g,u,w);break;case"backwards":for(u=null,g=i.child,i.child=null;g!==null;){if(r=g.alternate,r!==null&&cl(r)===null){i.child=g;break}r=g.sibling,g.sibling=u,u=g,g=r}Ad(i,!0,u,null,w);break;case"together":Ad(i,!1,null,null,void 0);break;default:i.memoizedState=null}return i.child}function yl(r,i){(i.mode&1)===0&&r!==null&&(r.alternate=null,i.alternate=null,i.flags|=2)}function hr(r,i,u){if(r!==null&&(i.dependencies=r.dependencies),_o|=i.lanes,(u&i.childLanes)===0)return null;if(r!==null&&i.child!==r.child)throw Error(n(153));if(i.child!==null){for(r=i.child,u=Kr(r,r.pendingProps),i.child=u,u.return=i;r.sibling!==null;)r=r.sibling,u=u.sibling=Kr(r,r.pendingProps),u.return=i;u.sibling=null}return i.child}function $x(r,i,u){switch(i.tag){case 3:gg(i),fi();break;case 5:zm(i);break;case 1:Gt(i.type)&&el(i);break;case 4:nd(i,i.stateNode.containerInfo);break;case 10:var d=i.type._context,g=i.memoizedProps.value;$e(sl,d._currentValue),d._currentValue=g;break;case 13:if(d=i.memoizedState,d!==null)return d.dehydrated!==null?($e(Ze,Ze.current&1),i.flags|=128,null):(u&i.child.childLanes)!==0?yg(r,i,u):($e(Ze,Ze.current&1),r=hr(r,i,u),r!==null?r.sibling:null);$e(Ze,Ze.current&1);break;case 19:if(d=(u&i.childLanes)!==0,(r.flags&128)!==0){if(d)return bg(r,i,u);i.flags|=128}if(g=i.memoizedState,g!==null&&(g.rendering=null,g.tail=null,g.lastEffect=null),$e(Ze,Ze.current),d)break;return null;case 22:case 23:return i.lanes=0,pg(r,i,u)}return hr(r,i,u)}var Sg,xd,kg,Ag;Sg=function(r,i){for(var u=i.child;u!==null;){if(u.tag===5||u.tag===6)r.appendChild(u.stateNode);else if(u.tag!==4&&u.child!==null){u.child.return=u,u=u.child;continue}if(u===i)break;for(;u.sibling===null;){if(u.return===null||u.return===i)return;u=u.return}u.sibling.return=u.return,u=u.sibling}},xd=function(){},kg=function(r,i,u,d){var g=r.memoizedProps;if(g!==d){r=i.stateNode,Ao(Hn.current);var w=null;switch(u){case"input":g=Er(r,g),d=Er(r,d),w=[];break;case"select":g=Y({},g,{value:void 0}),d=Y({},d,{value:void 0}),w=[];break;case"textarea":g=or(r,g),d=or(r,d),w=[];break;default:typeof g.onClick!="function"&&typeof d.onClick=="function"&&(r.onclick=Qa)}Un(u,d);var A;u=null;for(V in g)if(!d.hasOwnProperty(V)&&g.hasOwnProperty(V)&&g[V]!=null)if(V==="style"){var R=g[V];for(A in R)R.hasOwnProperty(A)&&(u||(u={}),u[A]="")}else V!=="dangerouslySetInnerHTML"&&V!=="children"&&V!=="suppressContentEditableWarning"&&V!=="suppressHydrationWarning"&&V!=="autoFocus"&&(s.hasOwnProperty(V)?w||(w=[]):(w=w||[]).push(V,null));for(V in d){var L=d[V];if(R=g?.[V],d.hasOwnProperty(V)&&L!==R&&(L!=null||R!=null))if(V==="style")if(R){for(A in R)!R.hasOwnProperty(A)||L&&L.hasOwnProperty(A)||(u||(u={}),u[A]="");for(A in L)L.hasOwnProperty(A)&&R[A]!==L[A]&&(u||(u={}),u[A]=L[A])}else u||(w||(w=[]),w.push(V,u)),u=L;else V==="dangerouslySetInnerHTML"?(L=L?L.__html:void 0,R=R?R.__html:void 0,L!=null&&R!==L&&(w=w||[]).push(V,L)):V==="children"?typeof L!="str
9ing"&&typeof L!="number"||(w=w||[]).push(V,""+L):V!=="suppressContentEditableWarning"&&V!=="suppressHydrationWarning"&&(s.hasOwnProperty(V)?(L!=null&&V==="onScroll"&&Be("scroll",r),w||R===L||(w=[])):(w=w||[]).push(V,L))}u&&(w=w||[]).push("style",u);var V=w;(i.updateQueue=V)&&(i.flags|=4)}},Ag=function(r,i,u,d){u!==d&&(i.flags|=4)};function Ms(r,i){if(!Ke)switch(r.tailMode){case"hidden":i=r.tail;for(var u=null;i!==null;)i.alternate!==null&&(u=i),i=i.sibling;u===null?r.tail=null:u.sibling=null;break;case"collapsed":u=r.tail;for(var d=null;u!==null;)u.alternate!==null&&(d=u),u=u.sibling;d===null?i||r.tail===null?r.tail=null:r.tail.sibling=null:d.sibling=null}}function It(r){var i=r.alternate!==null&&r.alternate.child===r.child,u=0,d=0;if(i)for(var g=r.child;g!==null;)u|=g.lanes|g.childLanes,d|=g.subtreeFlags&14680064,d|=g.flags&14680064,g.return=r,g=g.sibling;else for(g=r.child;g!==null;)u|=g.lanes|g.childLanes,d|=g.subtreeFlags,d|=g.flags,g.return=r,g=g.sibling;return r.subtreeFlags|=d,r.childLanes=u,i}function Vx(r,i,u){var d=i.pendingProps;switch(Gc(i),i.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return It(i),null;case 1:return Gt(i.type)&&Za(),It(i),null;case 3:return d=i.stateNode,yi(),We(qt),We(Pt),id(),d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null),(r===null||r.child===null)&&(ol(i)?i.flags|=4:r===null||r.memoizedState.isDehydrated&&(i.flags&256)===0||(i.flags|=1024,En!==null&&(Nd(En),En=null))),xd(r,i),It(i),null;case 5:rd(i);var g=Ao(Rs.current);if(u=i.type,r!==null&&i.stateNode!=null)kg(r,i,u,d,g),r.ref!==i.ref&&(i.flags|=512,i.flags|=2097152);else{if(!d){if(i.stateNode===null)throw Error(n(166));return It(i),null}if(r=Ao(Hn.current),ol(i)){d=i.stateNode,u=i.type;var w=i.memoizedProps;switch(d[Gn]=i,d[Es]=w,r=(i.mode&1)!==0,u){case"dialog":Be("cancel",d),Be("close",d);break;case"iframe":case"object":case"embed":Be("load",d);break;case"video":case"audio":for(g=0;g<As.length;g++)Be(As[g],d);break;case"source":Be("error",d);break;case"img":case"image":case"link":Be("error",d),Be("load",d);break;case"details":Be("toggle",d);break;case"input":Xo(d,w),Be("invalid",d);break;case"select":d._wrapperState={wasMultiple:!!w.multiple},Be("invalid",d);break;case"textarea":pn(d,w),Be("invalid",d)}Un(u,w),g=null;for(var A in w)if(w.hasOwnProperty(A)){var R=w[A];A==="children"?typeof R=="string"?d.textContent!==R&&(w.suppressHydrationWarning!==!0&&Ja(d.textContent,R,r),g=["children",R]):typeof R=="number"&&d.textContent!==""+R&&(w.suppressHydrationWarning!==!0&&Ja(d.textContent,R,r),g=["children",""+R]):s.hasOwnProperty(A)&&R!=null&&A==="onScroll"&&Be("scroll",d)}switch(u){case"input":bt(d),nn(d,w,!0);break;case"textarea":bt(d),Ne(d);break;case"select":case"option":break;default:typeof w.onClick=="function"&&(d.onclick=Qa)}d=g,i.updateQueue=d,d!==null&&(i.flags|=4)}else{A=g.nodeType===9?g:g.ownerDocument,r==="http://www.w3.org/1999/xhtml"&&(r=ze(u)),r==="http://www.w3.org/1999/xhtml"?u==="script"?(r=A.createElement("div"),r.innerHTML="<script><\/script>",r=r.removeChild(r.firstChild)):typeof d.is=="string"?r=A.createElement(u,{is:d.is}):(r=A.createElement(u),u==="select"&&(A=r,d.multiple?A.multiple=!0:d.size&&(A.size=d.size))):r=A.createElementNS(r,u),r[Gn]=i,r[Es]=d,Sg(r,i,!1,!1),i.stateNode=r;e:{switch(A=ss(u,d),u){case"dialog":Be("cancel",r),Be("close",r),g=d;break;case"iframe":case"object":case"embed":Be("load",r),g=d;break;case"video":case"audio":for(g=0;g<As.length;g++)Be(As[g],r);g=d;break;case"source":Be("error",r),g=d;break;case"img":case"image":case"link":Be("error",r),Be("load",r),g=d;break;case"details":Be("toggle",r),g=d;break;case"input":Xo(r,d),g=Er(r,d),Be("invalid",r);break;case"option":g=d;break;case"select":r._wrapperState={wasMultiple:!!d.multiple},g=Y({},d,{value:void 0}),Be("invalid",r);break;case"textarea":pn(r,d),g=or(r,d),Be("invalid",r);break;default:g=d}Un(u,g),R=g;for(w in R)if(R.hasOwnProperty(w)){var L=R[w];w==="style"?ir(r,L):w==="dangerouslySetInnerHTML"?(L=L?L.__html:void 0,L!=null&&Ea(r,L)):w==="children"?typeof L=="string"?(u!=="textarea"||L!=="")&&Vn(r,L):typeof L=="number"&&Vn(r,""+L):w!=="suppressContentEditableWarning"&&w!=="suppressHydrationWarning"&&w!=="autoFocus"&&(s.hasOwnProperty(w)?L!=null&&w==="onScroll"&&Be("scroll",r):L!=null&&P(r,w,L,A))}switch(u){case"input":bt(r),nn(r,d,!1);break;case"textarea":bt(r),Ne(r);break;case"option":d.value!=null&&r.setAttribute("value",""+Ee(d.value));break;case"select":r.multiple=!!d.multiple,w=d.value,w!=null?Ut(r,!!d.multiple,w,!1):d.defaultValue!=null&&Ut(r,!!d.multiple,d.defaultValue,!0);break;default:typeof g.onClick=="function"&&(r.onclick=Qa)}switch(u){case"button":case"input":case"select":case"textarea":d=!!d.autoFocus;break e;case"img":d=!0;break e;default:d=!1}}d&&(i.flags|=4)}i.ref!==null&&(i.flags|=512,i.flags|=2097152)}
vendor: 5,353 bytes, line 9
9return It(i),null;case 6:if(r&&i.stateNode!=null)Ag(r,i,r.memoizedProps,d);else{if(typeof d!="string"&&i.stateNode===null)throw Error(n(166));if(u=Ao(Rs.current),Ao(Hn.current),ol(i)){if(d=i.stateNode,u=i.memoizedProps,d[Gn]=i,(w=d.nodeValue!==u)&&(r=on,r!==null))switch(r.tag){case 3:Ja(d.nodeValue,u,(r.mode&1)!==0);break;case 5:r.memoizedProps.suppressHydrationWarning!==!0&&Ja(d.nodeValue,u,(r.mode&1)!==0)}w&&(i.flags|=4)}else d=(u.nodeType===9?u:u.ownerDocument).createTextNode(d),d[Gn]=i,i.stateNode=d}return It(i),null;case 13:if(We(Ze),d=i.memoizedState,r===null||r.memoizedState!==null&&r.memoizedState.dehydrated!==null){if(Ke&&sn!==null&&(i.mode&1)!==0&&(i.flags&128)===0)Em(),fi(),i.flags|=98560,w=!1;else if(w=ol(i),d!==null&&d.dehydrated!==null){if(r===null){if(!w)throw Error(n(318));if(w=i.memoizedState,w=w!==null?w.dehydrated:null,!w)throw Error(n(317));w[Gn]=i}else fi(),(i.flags&128)===0&&(i.memoizedState=null),i.flags|=4;It(i),w=!1}else En!==null&&(Nd(En),En=null),w=!0;if(!w)return i.flags&65536?i:null}return(i.flags&128)!==0?(i.lanes=u,i):(d=d!==null,d!==(r!==null&&r.memoizedState!==null)&&d&&(i.child.flags|=8192,(i.mode&1)!==0&&(r===null||(Ze.current&1)!==0?dt===0&&(dt=3):jd())),i.updateQueue!==null&&(i.flags|=4),It(i),null);case 4:return yi(),xd(r,i),r===null&&xs(i.stateNode.containerInfo),It(i),null;case 10:return Xc(i.type._context),It(i),null;case 17:return Gt(i.type)&&Za(),It(i),null;case 19:if(We(Ze),w=i.memoizedState,w===null)return It(i),null;if(d=(i.flags&128)!==0,A=w.rendering,A===null)if(d)Ms(w,!1);else{if(dt!==0||r!==null&&(r.flags&128)!==0)for(r=i.child;r!==null;){if(A=cl(r),A!==null){for(i.flags|=128,Ms(w,!1),d=A.updateQueue,d!==null&&(i.updateQueue=d,i.flags|=4),i.subtreeFlags=0,d=u,u=i.child;u!==null;)w=u,r=d,w.flags&=14680066,A=w.alternate,A===null?(w.childLanes=0,w.lanes=r,w.child=null,w.subtreeFlags=0,w.memoizedProps=null,w.memoizedState=null,w.updateQueue=null,w.dependencies=null,w.stateNode=null):(w.childLanes=A.childLanes,w.lanes=A.lanes,w.child=A.child,w.subtreeFlags=0,w.deletions=null,w.memoizedProps=A.memoizedProps,w.memoizedState=A.memoizedState,w.updateQueue=A.updateQueue,w.type=A.type,r=A.dependencies,w.dependencies=r===null?null:{lanes:r.lanes,firstContext:r.firstContext}),u=u.sibling;return $e(Ze,Ze.current&1|2),i.child}r=r.sibling}w.tail!==null&&ot()>ki&&(i.flags|=128,d=!0,Ms(w,!1),i.lanes=4194304)}else{if(!d)if(r=cl(A),r!==null){if(i.flags|=128,d=!0,u=r.updateQueue,u!==null&&(i.updateQueue=u,i.flags|=4),Ms(w,!0),w.tail===null&&w.tailMode==="hidden"&&!A.alternate&&!Ke)return It(i),null}else 2*ot()-w.renderingStartTime>ki&&u!==1073741824&&(i.flags|=128,d=!0,Ms(w,!1),i.lanes=4194304);w.isBackwards?(A.sibling=i.child,i.child=A):(u=w.last,u!==null?u.sibling=A:i.child=A,w.last=A)}return w.tail!==null?(i=w.tail,w.rendering=i,w.tail=i.sibling,w.renderingStartTime=ot(),i.sibling=null,u=Ze.current,$e(Ze,d?u&1|2:u&1),i):(It(i),null);case 22:case 23:return Dd(),d=i.memoizedState!==null,r!==null&&r.memoizedState!==null!==d&&(i.flags|=8192),d&&(i.mode&1)!==0?(an&1073741824)!==0&&(It(i),i.subtreeFlags&6&&(i.flags|=8192)):It(i),null;case 24:return null;case 25:return null}throw Error(n(156,i.tag))}function Ux(r,i){switch(Gc(i),i.tag){case 1:return Gt(i.type)&&Za(),r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 3:return yi(),We(qt),We(Pt),id(),r=i.flags,(r&65536)!==0&&(r&128)===0?(i.flags=r&-65537|128,i):null;case 5:return rd(i),null;case 13:if(We(Ze),r=i.memoizedState,r!==null&&r.dehydrated!==null){if(i.alternate===null)throw Error(n(340));fi()}return r=i.flags,r&65536?(i.flags=r&-65537|128,i):null;case 19:return We(Ze),null;case 4:return yi(),null;case 10:return Xc(i.type._context),null;case 22:case 23:return Dd(),null;case 24:return null;default:return null}}var wl=!1,Rt=!1,Bx=typeof WeakSet=="function"?WeakSet:Set,le=null;function bi(r,i){var u=r.ref;if(u!==null)if(typeof u=="function")try{u(null)}catch(d){rt(r,i,d)}else u.current=null}function _d(r,i,u){try{u()}catch(d){rt(r,i,d)}}var xg=!1;function Wx(r,i){if(Dc=Fa,r=nm(),Cc(r)){if("selectionStart"in r)var u={start:r.selectionStart,end:r.selectionEnd};else e:{u=(u=r.ownerDocument)&&u.defaultView||window;var d=u.getSelection&&u.getSelection();if(d&&d.rangeCount!==0){u=d.anchorNode;var g=d.anchorOffset,w=d.focusNode;d=d.focusOffset;try{u.nodeType,w.nodeType}catch{u=null;break e}var A=0,R=-1,L=-1,V=0,K=0,J=r,H=null;t:for(;;){for(var ae;J!==u||g!==0&&J.nodeType!==3||(R=A+g),J!==w||d!==0&&J.nodeType!==3||(L=A+d),J.nodeType===3&&(A+=J.nodeValue.length),(ae=J.firstChild)!==null;)H=J,J=ae;for(;;){if(J===r)break t;if(H===u&&++V===g&&(R=A),H===w&&++K===d&&(L=A),(ae=J.nextSibling)!==null)break;J=H,H=J.parentNode}J=ae}u=R===-1||L===-1?null:{start:R,end:L}}else u=null}u=u||{start:0,end:0}}else u=null;for(jc={focusedElem:r,selectionRange:u},Fa=!1,le=i;le!==null;)if(i=le,r=i.child,(i.subtreeFlags&1028)!==0&&r!==null)r.return=i,le=r;else for(;le!==null;){i=le;try{var de=i.alternate;if((i.flags&1024)!==0)switch(i.tag){case 0:case 11:case 15:break;case 1:if(de!==null){var he=de.memoizedProps,it=de.memoizedState,j=i.stateNode,N=j.getSnapshotBeforeUpdate(i.elementType===i.type?he:Tn(i.type,he),it);j.__reactInternalSnapshotBeforeUpdate=N}break;case 3:var F=i.stateNode.containerInfo;F.nodeType===1?F.textContent="":F.nodeType===9&&F.documentElement&&F.removeChild(F.documentElement);break;
vendor: 3,162 bytes, line 9
9case 5:case 6:case 4:case 17:break;default:throw Error(n(163))}}catch(X){rt(i,i.return,X)}if(r=i.sibling,r!==null){r.return=i.return,le=r;break}le=i.return}return de=xg,xg=!1,de}function Ds(r,i,u){var d=i.updateQueue;if(d=d!==null?d.lastEffect:null,d!==null){var g=d=d.next;do{if((g.tag&r)===r){var w=g.destroy;g.destroy=void 0,w!==void 0&&_d(i,u,w)}g=g.next}while(g!==d)}}function bl(r,i){if(i=i.updateQueue,i=i!==null?i.lastEffect:null,i!==null){var u=i=i.next;do{if((u.tag&r)===r){var d=u.create;u.destroy=d()}u=u.next}while(u!==i)}}function Ed(r){var i=r.ref;if(i!==null){var u=r.stateNode;r.tag,r=u,typeof i=="function"?i(r):i.current=r}}function _g(r){var i=r.alternate;i!==null&&(r.alternate=null,_g(i)),r.child=null,r.deletions=null,r.sibling=null,r.tag===5&&(i=r.stateNode,i!==null&&(delete i[Gn],delete i[Es],delete i[Uc],delete i[Ex],delete i[Tx])),r.stateNode=null,r.return=null,r.dependencies=null,r.memoizedProps=null,r.memoizedState=null,r.pendingProps=null,r.stateNode=null,r.updateQueue=null}function Eg(r){return r.tag===5||r.tag===3||r.tag===4}function Tg(r){e:for(;;){for(;r.sibling===null;){if(r.return===null||Eg(r.return))return null;r=r.return}for(r.sibling.return=r.return,r=r.sibling;r.tag!==5&&r.tag!==6&&r.tag!==18;){if(r.flags&2||r.child===null||r.tag===4)continue e;r.child.return=r,r=r.child}if(!(r.flags&2))return r.stateNode}}function Td(r,i,u){var d=r.tag;if(d===5||d===6)r=r.stateNode,i?u.nodeType===8?u.parentNode.insertBefore(r,i):u.insertBefore(r,i):(u.nodeType===8?(i=u.parentNode,i.insertBefore(r,u)):(i=u,i.appendChild(r)),u=u._reactRootContainer,u!=null||i.onclick!==null||(i.onclick=Qa));else if(d!==4&&(r=r.child,r!==null))for(Td(r,i,u),r=r.sibling;r!==null;)Td(r,i,u),r=r.sibling}function Pd(r,i,u){var d=r.tag;if(d===5||d===6)r=r.stateNode,i?u.insertBefore(r,i):u.appendChild(r);else if(d!==4&&(r=r.child,r!==null))for(Pd(r,i,u),r=r.sibling;r!==null;)Pd(r,i,u),r=r.sibling}var kt=null,Pn=!1;function Br(r,i,u){for(u=u.child;u!==null;)Pg(r,i,u),u=u.sibling}function Pg(r,i,u){if(qn&&typeof qn.onCommitFiberUnmount=="function")try{qn.onCommitFiberUnmount(La,u)}catch{}switch(u.tag){case 5:Rt||bi(u,i);case 6:var d=kt,g=Pn;kt=null,Br(r,i,u),kt=d,Pn=g,kt!==null&&(Pn?(r=kt,u=u.stateNode,r.nodeType===8?r.parentNode.removeChild(u):r.removeChild(u)):kt.removeChild(u.stateNode));break;case 18:kt!==null&&(Pn?(r=kt,u=u.stateNode,r.nodeType===8?Vc(r.parentNode,u):r.nodeType===1&&Vc(r,u),ms(r)):Vc(kt,u.stateNode));break;case 4:d=kt,g=Pn,kt=u.stateNode.containerInfo,Pn=!0,Br(r,i,u),kt=d,Pn=g;break;case 0:case 11:case 14:case 15:if(!Rt&&(d=u.updateQueue,d!==null&&(d=d.lastEffect,d!==null))){g=d=d.next;do{var w=g,A=w.destroy;w=w.tag,A!==void 0&&((w&2)!==0||(w&4)!==0)&&_d(u,i,A),g=g.next}while(g!==d)}Br(r,i,u);break;case 1:if(!Rt&&(bi(u,i),d=u.stateNode,typeof d.componentWillUnmount=="function"))try{d.props=u.memoizedProps,d.state=u.memoizedState,d.componentWillUnmount()}catch(R){rt(u,i,R)}Br(r,i,u);break;case 21:Br(r,i,u);break;case 22:u.mode&1?(Rt=(d=Rt)||u.memoizedState!==null,Br(r,i,u),Rt=d):Br(r,i,u);break;default:Br(r,i,u)}}function Cg(r){var i=r.updateQueue;if(i!==null){r.updateQueue=null;var u=r.stateNode;
vendor: 14,630 bytes, line 9
9u===null&&(u=r.stateNode=new Bx),i.forEach(function(d){var g=Zx.bind(null,r,d);u.has(d)||(u.add(d),d.then(g,g))})}}function Cn(r,i){var u=i.deletions;if(u!==null)for(var d=0;d<u.length;d++){var g=u[d];try{var w=r,A=i,R=A;e:for(;R!==null;){switch(R.tag){case 5:kt=R.stateNode,Pn=!1;break e;case 3:kt=R.stateNode.containerInfo,Pn=!0;break e;case 4:kt=R.stateNode.containerInfo,Pn=!0;break e}R=R.return}if(kt===null)throw Error(n(160));Pg(w,A,g),kt=null,Pn=!1;var L=g.alternate;L!==null&&(L.return=null),g.return=null}catch(V){rt(g,i,V)}}if(i.subtreeFlags&12854)for(i=i.child;i!==null;)Ig(i,r),i=i.sibling}function Ig(r,i){var u=r.alternate,d=r.flags;switch(r.tag){case 0:case 11:case 14:case 15:if(Cn(i,r),Yn(r),d&4){try{Ds(3,r,r.return),bl(3,r)}catch(he){rt(r,r.return,he)}try{Ds(5,r,r.return)}catch(he){rt(r,r.return,he)}}break;case 1:Cn(i,r),Yn(r),d&512&&u!==null&&bi(u,u.return);break;case 5:if(Cn(i,r),Yn(r),d&512&&u!==null&&bi(u,u.return),r.flags&32){var g=r.stateNode;try{Vn(g,"")}catch(he){rt(r,r.return,he)}}if(d&4&&(g=r.stateNode,g!=null)){var w=r.memoizedProps,A=u!==null?u.memoizedProps:w,R=r.type,L=r.updateQueue;if(r.updateQueue=null,L!==null)try{R==="input"&&w.type==="radio"&&w.name!=null&&Tr(g,w),ss(R,A);var V=ss(R,w);for(A=0;A<L.length;A+=2){var K=L[A],J=L[A+1];K==="style"?ir(g,J):K==="dangerouslySetInnerHTML"?Ea(g,J):K==="children"?Vn(g,J):P(g,K,J,V)}switch(R){case"input":Pr(g,w);break;case"textarea":mo(g,w);break;case"select":var H=g._wrapperState.wasMultiple;g._wrapperState.wasMultiple=!!w.multiple;var ae=w.value;ae!=null?Ut(g,!!w.multiple,ae,!1):H!==!!w.multiple&&(w.defaultValue!=null?Ut(g,!!w.multiple,w.defaultValue,!0):Ut(g,!!w.multiple,w.multiple?[]:"",!1))}g[Es]=w}catch(he){rt(r,r.return,he)}}break;case 6:if(Cn(i,r),Yn(r),d&4){if(r.stateNode===null)throw Error(n(162));g=r.stateNode,w=r.memoizedProps;try{g.nodeValue=w}catch(he){rt(r,r.return,he)}}break;case 3:if(Cn(i,r),Yn(r),d&4&&u!==null&&u.memoizedState.isDehydrated)try{ms(i.containerInfo)}catch(he){rt(r,r.return,he)}break;case 4:Cn(i,r),Yn(r);break;case 13:Cn(i,r),Yn(r),g=r.child,g.flags&8192&&(w=g.memoizedState!==null,g.stateNode.isHidden=w,!w||g.alternate!==null&&g.alternate.memoizedState!==null||(Rd=ot())),d&4&&Cg(r);break;case 22:if(K=u!==null&&u.memoizedState!==null,r.mode&1?(Rt=(V=Rt)||K,Cn(i,r),Rt=V):Cn(i,r),Yn(r),d&8192){if(V=r.memoizedState!==null,(r.stateNode.isHidden=V)&&!K&&(r.mode&1)!==0)for(le=r,K=r.child;K!==null;){for(J=le=K;le!==null;){switch(H=le,ae=H.child,H.tag){case 0:case 11:case 14:case 15:Ds(4,H,H.return);break;case 1:bi(H,H.return);var de=H.stateNode;if(typeof de.componentWillUnmount=="function"){d=H,u=H.return;try{i=d,de.props=i.memoizedProps,de.state=i.memoizedState,de.componentWillUnmount()}catch(he){rt(d,u,he)}}break;case 5:bi(H,H.return);break;case 22:if(H.memoizedState!==null){Lg(J);continue}}ae!==null?(ae.return=H,le=ae):Lg(J)}K=K.sibling}e:for(K=null,J=r;;){if(J.tag===5){if(K===null){K=J;try{g=J.stateNode,V?(w=g.style,typeof w.setProperty=="function"?w.setProperty("display","none","important"):w.display="none"):(R=J.stateNode,L=J.memoizedProps.style,A=L!=null&&L.hasOwnProperty("display")?L.display:null,R.style.display=Zo("display",A))}catch(he){rt(r,r.return,he)}}}else if(J.tag===6){if(K===null)try{J.stateNode.nodeValue=V?"":J.memoizedProps}catch(he){rt(r,r.return,he)}}else if((J.tag!==22&&J.tag!==23||J.memoizedState===null||J===r)&&J.child!==null){J.child.return=J,J=J.child;continue}if(J===r)break e;for(;J.sibling===null;){if(J.return===null||J.return===r)break e;K===J&&(K=null),J=J.return}K===J&&(K=null),J.sibling.return=J.return,J=J.sibling}}break;case 19:Cn(i,r),Yn(r),d&4&&Cg(r);break;case 21:break;default:Cn(i,r),Yn(r)}}function Yn(r){var i=r.flags;if(i&2){try{e:{for(var u=r.return;u!==null;){if(Eg(u)){var d=u;break e}u=u.return}throw Error(n(160))}switch(d.tag){case 5:var g=d.stateNode;d.flags&32&&(Vn(g,""),d.flags&=-33);var w=Tg(r);Pd(r,w,g);break;case 3:case 4:var A=d.stateNode.containerInfo,R=Tg(r);Td(r,R,A);break;default:throw Error(n(161))}}catch(L){rt(r,r.return,L)}r.flags&=-3}i&4096&&(r.flags&=-4097)}function qx(r,i,u){le=r,Rg(r)}function Rg(r,i,u){for(var d=(r.mode&1)!==0;le!==null;){var g=le,w=g.child;if(g.tag===22&&d){var A=g.memoizedState!==null||wl;if(!A){var R=g.alternate,L=R!==null&&R.memoizedState!==null||Rt;R=wl;var V=Rt;if(wl=A,(Rt=L)&&!V)for(le=g;le!==null;)A=le,L=A.child,A.tag===22&&A.memoizedState!==null?zg(g):L!==null?(L.return=A,le=L):zg(g);for(;w!==null;)le=w,Rg(w),w=w.sibling;le=g,wl=R,Rt=V}Og(r)}else(g.subtreeFlags&8772)!==0&&w!==null?(w.return=g,le=w):Og(r)}}function Og(r){for(;le!==null;){var i=le;if((i.flags&8772)!==0){var u=i.alternate;try{if((i.flags&8772)!==0)switch(i.tag){case 0:case 11:case 15:Rt||bl(5,i);break;case 1:var d=i.stateNode;if(i.flags&4&&!Rt)if(u===null)d.componentDidMount();else{var g=i.elementType===i.type?u.memoizedProps:Tn(i.type,u.memoizedProps);d.componentDidUpdate(g,u.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var w=i.updateQueue;w!==null&&Lm(i,w,d);break;case 3:var A=i.updateQueue;if(A!==null){if(u=null,i.child!==null)switch(i.child.tag){case 5:u=i.child.stateNode;break;case 1:u=i.child.stateNode}Lm(i,A,u)}break;case 5:var R=i.stateNode;if(u===null&&i.flags&4){u=R;var L=i.memoizedProps;switch(i.type){case"button":case"input":case"select":case"textarea":L.autoFocus&&u.focus();break;case"img":L.src&&(u.src=L.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(i.memoizedState===null){var V=i.alternate;if(V!==null){var K=V.memoizedState;if(K!==null){var J=K.dehydrated;J!==null&&ms(J)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(n(163))}Rt||i.flags&512&&Ed(i)}catch(H){rt(i,i.return,H)}}if(i===r){le=null;break}if(u=i.sibling,u!==null){u.return=i.return,le=u;break}le=i.return}}function Lg(r){for(;le!==null;){var i=le;if(i===r){le=null;break}var u=i.sibling;if(u!==null){u.return=i.return,le=u;break}le=i.return}}function zg(r){for(;le!==null;){var i=le;try{switch(i.tag){case 0:case 11:case 15:var u=i.return;try{bl(4,i)}catch(L){rt(i,u,L)}break;case 1:var d=i.stateNode;if(typeof d.componentDidMount=="function"){var g=i.return;try{d.componentDidMount()}catch(L){rt(i,g,L)}}var w=i.return;try{Ed(i)}catch(L){rt(i,w,L)}break;case 5:var A=i.return;try{Ed(i)}catch(L){rt(i,A,L)}}}catch(L){rt(i,i.return,L)}if(i===r){le=null;break}var R=i.sibling;if(R!==null){R.return=i.return,le=R;break}le=i.return}}var Gx=Math.ceil,Sl=I.ReactCurrentDispatcher,Cd=I.ReactCurrentOwner,yn=I.ReactCurrentBatchConfig,Ie=0,gt=null,at=null,At=0,an=0,Si=jr(0),dt=0,js=null,_o=0,kl=0,Id=0,Fs=null,Kt=null,Rd=0,ki=1/0,pr=null,Al=!1,Od=null,Wr=null,xl=!1,qr=null,_l=0,$s=0,Ld=null,El=-1,Tl=0;function jt(){return(Ie&6)!==0?ot():El!==-1?El:El=ot()}function Gr(r){return(r.mode&1)===0?1:(Ie&2)!==0&&At!==0?At&-At:Cx.transition!==null?(Tl===0&&(Tl=Tf()),Tl):(r=Me,r!==0||(r=window.event,r=r===void 0?16:Mf(r.type)),r)}function In(r,i,u,d){if(50<$s)throw $s=0,Ld=null,Error(n(185));cs(r,u,d),((Ie&2)===0||r!==gt)&&(r===gt&&((Ie&2)===0&&(kl|=u),dt===4&&Hr(r,At)),Yt(r,d),u===1&&Ie===0&&(i.mode&1)===0&&(ki=ot()+500,tl&&$r()))}function Yt(r,i){var u=r.callbackNode;CA(r,i);var d=Ma(r,r===gt?At:0);if(d===0)u!==null&&xf(u),r.callbackNode=null,r.callbackPriority=0;else if(i=d&-d,r.callbackPriority!==i){if(u!=null&&xf(u),i===1)r.tag===0?Px(Mg.bind(null,r)):Sm(Mg.bind(null,r)),xx(function(){(Ie&6)===0&&$r()}),u=null;else{switch(Pf(d)){case 1:u=hc;break;case 4:u=_f;break;case 16:u=Oa;break;case 536870912:u=Ef;break;default:u=Oa}u=Wg(u,Ng.bind(null,r))}r.callbackPriority=i,r.callbackNode=u}}function Ng(r,i){if(El=-1,Tl=0,(Ie&6)!==0)throw Error(n(327));var u=r.callbackNode;if(Ai()&&r.callbackNode!==u)return null;var d=Ma(r,r===gt?At:0);if(d===0)return null;if((d&30)!==0||(d&r.expiredLanes)!==0||i)i=Pl(r,d);else{i=d;var g=Ie;Ie|=2;var w=jg();(gt!==r||At!==i)&&(pr=null,ki=ot()+500,To(r,i));do try{Yx();break}catch(R){Dg(r,R)}while(!0);Qc(),Sl.current=w,Ie=g,at!==null?i=0:(gt=null,At=0,i=dt)}if(i!==0){if(i===2&&(g=pc(r),g!==0&&(d=g,i=zd(r,g))),i===1)throw u=js,To(r,0),Hr(r,d),Yt(r,ot()),u;if(i===6)Hr(r,d);else{if(g=r.current.alternate,(d&30)===0&&!Hx(g)&&(i=Pl(r,d),i===2&&(w=pc(r),w!==0&&(d=w,i=zd(r,w))),i===1))throw u=js,To(r,0),Hr(r,d),Yt(r,ot()),u;switch(r.finishedWork=g,r.finishedLanes=d,i){case 0:case 1:throw Error(n(345));case 2:Po(r,Kt,pr);break;case 3:if(Hr(r,d),(d&130023424)===d&&(i=Rd+500-ot(),10<i)){if(Ma(r,0)!==0)break;if(g=r.suspendedLanes,(g&d)!==d){jt(),r.pingedLanes|=r.suspendedLanes&g;break}r.timeoutHandle=$c(Po.bind(null,r,Kt,pr),i);break}Po(r,Kt,pr);break;case 4:if(Hr(r,d),(d&4194240)===d)break;for(i=r.eventTimes,g=-1;0<d;){var A=31-xn(d);w=1<<A,A=i[A],A>g&&(g=A),d&=~w}if(d=g,d=ot()-d,d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3e3>d?3e3:4320>d?4320:1960*Gx(d/1960))-d,10<d){r.timeoutHandle=$c(Po.bind(null,r,Kt,pr),d);break}Po(r,Kt,pr);break;case 5:Po(r,Kt,pr);break;default:throw Error(n(329))}}}return Yt(r,ot()),r.callbackNode===u?Ng.bind(null,r):null}function zd(r,i){var u=Fs;return r.current.memoizedState.isDehydrated&&(To(r,i).flags|=256),r=Pl(r,i),r!==2&&(i=Kt,Kt=u,i!==null&&Nd(i)),r}function Nd(r){Kt===null?Kt=r:Kt.push.apply(Kt,r)}function Hx(r){for(var i=r;;){if(i.flags&16384){var u=i.updateQueue;if(u!==null&&(u=u.stores,u!==null))for(var d=0;d<u.length;d++){var g=u[d],w=g.getSnapshot;g=g.value;try{if(!_n(w(),g))return!1}catch{return!1}}}if(u=i.child,i.subtreeFlags&16384&&u!==null)u.return=i,i=u;else{if(i===r)break;for(;i.sibling===null;){if(i.return===null||i.return===r)return!0;i=i.return}i.sibling.return=i.return,i=i.sibling}}return!0}function Hr(r,i){for(i&=~Id,i&=~kl,r.suspendedLanes|=i,r.pingedLanes&=~i,r=r.expirationTimes;0<i;){var u=31-xn(i),d=1<<u;r[u]=-1,i&=~d}}function Mg(r){if((Ie&6)!==0)throw Error(n(327));Ai();var i=Ma(r,0);if((i&1)===0)return Yt(r,ot()),null;var u=Pl(r,i);if(r.tag!==0&&u===2){var d=pc(r);d!==0&&(i=d,u=zd(r,d))}if(u===1)throw u=js,To(r,0),Hr(r,i),Yt(r,ot()),u;if(u===6)throw Error(n(345));return r.finishedWork=r.current.alternate,r.finishedLanes=i,Po(r,Kt,pr),Yt(r,ot()),null}function Md(r,i){var u=Ie;Ie|=1;try{return r(i)}finally{Ie=u,Ie===0&&(ki=ot()+500,tl&&$r())}}function Eo(r){qr!==null&&qr.tag===0&&(Ie&6)===0&&Ai();var i=Ie;Ie|=1;var u=yn.transition,d=Me;try{if(yn.transition=null,Me=1,r)return r()}finally{Me=d,yn.transition=u,Ie=i,(Ie&6)===0&&$r()}}function Dd(){an=Si.current,We(Si)}function To(r,i){r.finishedWork=null,r.finishedLanes=0;var u=r.timeoutHandle;if(u!==-1&&(r.timeoutHandle=-1,Ax(u)),at!==null)for(u=at.return;u!==null;){var d=u;switch(Gc(d),d.tag){case 1:d=d.type.childContextTypes,d!=null&&Za();break;case 3:yi(),We(qt),We(Pt),id();break;case 5:rd(d);break;case 4:yi();break;case 13:We(Ze);break;case 19:We(Ze);break;case 10:Xc(d.type._context);break;case 22:case 23:Dd()}u=u.return}if(gt=r,at=r=Kr(r.current,null),At=an=i,dt=0,js=null,Id=kl=_o=0,Kt=Fs=null,ko!==null){for(i=0;i<ko.length;i++)if(u=ko[i],d=u.interleaved,d!==null){u.interleaved=null;var g=d.next,w=u.pending;if(w!==null){var A=w.next;w.next=g,d.next=A}u.pending=d}ko=null}return r}function Dg(r,i){do{var u=at;try{if(Qc(),dl.current=ml,hl){for(var d=et.memoizedState;d!==null;){var g=d.queue;g!==null&&(g.pending=null),d=d.next}hl=!1}if(xo=0,mt=ct=et=null,Os=!1,Ls=0,Cd.current=null,u===null||u.return===null){dt=1,js=i,at=null;break}e:{var w=r,A=u.return,R=u,L=i;if(i=At,R.flags|=32768,L!==null&&typeof L=="object"&&typeof L.then=="function"){var V=L,K=R,J=K.tag;if((K.mode&1)===0&&(J===0||J===11||J===15)){var H=K.alternate;H?(K.updateQueue=H.updateQueue,K.memoizedState=H.memoizedState,K.lanes=H.lanes):(K.updateQueue=null,K.memoizedState=null)}var ae=lg(A);if(ae!==null){ae.flags&=-257,ug(ae,A,R,w,i),ae.mode&1&&ag(w,V,i),i=ae,L=V;var de=i.updateQueue;if(de===null){var he=new Set;he.add(L),i.updateQueue=he}else de.add(L);break e}else{if((i&1)===0){ag(w,V,i),jd();break e}L=Error(n(426))}}else if(Ke&&R.mode&1){var it=lg(A);if(it!==null){(it.flags&65536)===0&&(it.flags|=256),ug(it,A,R,w,i),Yc(wi(L,R));break e}}w=L=wi(L,R),dt!==4&&(dt=2),Fs===null?Fs=[w]:Fs.push(w),w=A;do{switch(w.tag){case 3:w.flags|=65536,i&=-i,w.lanes|=i;var j=ig(w,L,i);Om(w,j);break e;case 1:R=L;var N=w.type,F=w.stateNode;if((w.flags&128)===0&&(typeof N.getDerivedStateFromError=="function"||F!==null&&typeof F.componentDidCatch=="function"&&(Wr===null||!Wr.has(F)))){w.flags|=65536,i&=-i,w.lanes|=i;var X=sg(w,R,i);Om(w,X);break e}}w=w.return}while(w!==null)}$g(u)}catch(fe){i=fe,at===u&&u!==null&&(at=u=u.return);continue}break}while(!0)}function jg(){var r=Sl.current;return Sl.current=ml,r===null?ml:r}function jd(){(dt===0||dt===3||dt===2)&&(dt=4),gt===null||(_o&268435455)===0&&(kl&268435455)===0||Hr(gt,At)}function Pl(r,i){var u=Ie;Ie|=2;var d=jg();(gt!==r||At!==i)&&(pr=null,To(r,i));do try{Kx();break}catch(g){Dg(r,g)}while(!0);if(Qc(),Ie=u,Sl.current=d,at!==null)throw Error(n(261));return gt=null,At=0,dt}function Kx(){for(;at!==null;)Fg(at)}function Yx(){for(;at!==null&&!bA();)Fg(at)}function Fg(r){var i=Bg(r.alternate,r,an);r.memoizedProps=r.pendingProps,i===null?$g(r):at=i,Cd.current=null}function $g(r){var i=r;do{var u=i.alternate;if(r=i.return,(i.flags&32768)===0){if(u=Vx(u,i,an),u!==null){at=u;return}}else{if(u=Ux(u,i),u!==null){u.flags&=32767,at=u;return}if(r!==null)r.flags|=32768,r.subtreeFlags=0,r.deletions=null;else{dt=6,at=null;return}}if(i=i.sibling,i!==null){at=i;return}at=i=r}while(i!==null);dt===0&&(dt=5)}function Po(r,i,u){var d=Me,g=yn.transition;try{yn.transition=null,Me=1,Jx(r,i,u,d)}finally{yn.transition=g,Me=d}return null}function Jx(r,i,u,d){do Ai();while(qr!==null);if((Ie&6)!==0)throw Error(n(327));u=r.finishedWork;var g=r.finishedLanes;if(u===null)return null;if(r.finishedWork=null,r.finishedLanes=0,u===r.current)throw Error(n(177));r.callbackNode=null,r.callbackPriority=0;var w=u.lanes|u.childLanes;if(IA(r,w),r===gt&&(at=gt=null,At=0),(u.subtreeFlags&2064)===0&&(u.flags&2064)===0||xl||(xl=!0,Wg(Oa,function(){return Ai(),null})),w=(u.flags&15990)!==0,(u.subtreeFlags&15990)!==0||w){w=yn.transition,yn.transition=null;var A=Me;Me=1;var R=Ie;Ie|=4,Cd.current=null,Wx(r,u),Ig(u,r),gx(jc),Fa=!!Dc,jc=Dc=null,r.current=u,qx(u),SA(),Ie=R,Me=A,yn.transition=w}else r.current=u;if(xl&&(xl=!1,qr=r,_l=g),w=r.pendingLanes,w===0&&(Wr=null),xA(u.stateNode),Yt(r,ot()),i!==null)for(d=r.onRecoverableError,u=0;u<i.length;u++)g=i[u],d(g.value,{componentStack:g.stack,digest:g.digest});if(Al)throw Al=!1,r=Od,Od=null,r;return(_l&1)!==0&&r.tag!==0&&Ai(),w=r.pendingLanes,(w&1)!==0?r===Ld?$s++:($s=0,Ld=r):$s=0,$r(),null}function Ai(){if(qr!==null){var r=Pf(_l),i=yn.transition,u=Me;try{if(yn.transition=null,Me=16>r?16:r,qr===null)var d=!1;
vendor: 4,258 bytes, line 9
9else{if(r=qr,qr=null,_l=0,(Ie&6)!==0)throw Error(n(331));var g=Ie;for(Ie|=4,le=r.current;le!==null;){var w=le,A=w.child;if((le.flags&16)!==0){var R=w.deletions;if(R!==null){for(var L=0;L<R.length;L++){var V=R[L];for(le=V;le!==null;){var K=le;switch(K.tag){case 0:case 11:case 15:Ds(8,K,w)}var J=K.child;if(J!==null)J.return=K,le=J;else for(;le!==null;){K=le;var H=K.sibling,ae=K.return;if(_g(K),K===V){le=null;break}if(H!==null){H.return=ae,le=H;break}le=ae}}}var de=w.alternate;if(de!==null){var he=de.child;if(he!==null){de.child=null;do{var it=he.sibling;he.sibling=null,he=it}while(he!==null)}}le=w}}if((w.subtreeFlags&2064)!==0&&A!==null)A.return=w,le=A;else e:for(;le!==null;){if(w=le,(w.flags&2048)!==0)switch(w.tag){case 0:case 11:case 15:Ds(9,w,w.return)}var j=w.sibling;if(j!==null){j.return=w.return,le=j;break e}le=w.return}}var N=r.current;for(le=N;le!==null;){A=le;var F=A.child;if((A.subtreeFlags&2064)!==0&&F!==null)F.return=A,le=F;else e:for(A=N;le!==null;){if(R=le,(R.flags&2048)!==0)try{switch(R.tag){case 0:case 11:case 15:bl(9,R)}}catch(fe){rt(R,R.return,fe)}if(R===A){le=null;break e}var X=R.sibling;if(X!==null){X.return=R.return,le=X;break e}le=R.return}}if(Ie=g,$r(),qn&&typeof qn.onPostCommitFiberRoot=="function")try{qn.onPostCommitFiberRoot(La,r)}catch{}d=!0}return d}finally{Me=u,yn.transition=i}}return!1}function Vg(r,i,u){i=wi(u,i),i=ig(r,i,1),r=Ur(r,i,1),i=jt(),r!==null&&(cs(r,1,i),Yt(r,i))}function rt(r,i,u){if(r.tag===3)Vg(r,r,u);else for(;i!==null;){if(i.tag===3){Vg(i,r,u);break}else if(i.tag===1){var d=i.stateNode;if(typeof i.type.getDerivedStateFromError=="function"||typeof d.componentDidCatch=="function"&&(Wr===null||!Wr.has(d))){r=wi(u,r),r=sg(i,r,1),i=Ur(i,r,1),r=jt(),i!==null&&(cs(i,1,r),Yt(i,r));break}}i=i.return}}function Qx(r,i,u){var d=r.pingCache;d!==null&&d.delete(i),i=jt(),r.pingedLanes|=r.suspendedLanes&u,gt===r&&(At&u)===u&&(dt===4||dt===3&&(At&130023424)===At&&500>ot()-Rd?To(r,0):Id|=u),Yt(r,i)}function Ug(r,i){i===0&&((r.mode&1)===0?i=1:(i=Na,Na<<=1,(Na&130023424)===0&&(Na=4194304)));var u=jt();r=cr(r,i),r!==null&&(cs(r,i,u),Yt(r,u))}function Xx(r){var i=r.memoizedState,u=0;i!==null&&(u=i.retryLane),Ug(r,u)}function Zx(r,i){var u=0;switch(r.tag){case 13:var d=r.stateNode,g=r.memoizedState;g!==null&&(u=g.retryLane);break;case 19:d=r.stateNode;break;default:throw Error(n(314))}d!==null&&d.delete(i),Ug(r,u)}var Bg;Bg=function(r,i,u){if(r!==null)if(r.memoizedProps!==i.pendingProps||qt.current)Ht=!0;else{if((r.lanes&u)===0&&(i.flags&128)===0)return Ht=!1,$x(r,i,u);Ht=(r.flags&131072)!==0}else Ht=!1,Ke&&(i.flags&1048576)!==0&&km(i,rl,i.index);switch(i.lanes=0,i.tag){case 2:var d=i.type;yl(r,i),r=i.pendingProps;var g=di(i,Pt.current);vi(i,u),g=ld(null,i,d,r,g,u);var w=ud();return i.flags|=1,typeof g=="object"&&g!==null&&typeof g.render=="function"&&g.$$typeof===void 0?(i.tag=1,i.memoizedState=null,i.updateQueue=null,Gt(d)?(w=!0,el(i)):w=!1,i.memoizedState=g.state!==null&&g.state!==void 0?g.state:null,td(i),g.updater=gl,i.stateNode=g,g._reactInternals=i,md(i,d,r,u),i=wd(null,i,d,!0,w,u)):(i.tag=0,Ke&&w&&qc(i),Dt(null,i,g,u),i=i.child),i;case 16:d=i.elementType;e:{switch(yl(r,i),r=i.pendingProps,g=d._init,d=g(d._payload),i.type=d,g=i.tag=t_(d),r=Tn(d,r),g){case 0:i=yd(null,i,d,r,u);break e;case 1:i=mg(null,i,d,r,u);break e;case 11:i=cg(null,i,d,r,u);break e;case 14:i=dg(null,i,d,Tn(d.type,r),u);break e}throw Error(n(306,d,""))}return i;case 0:return d=i.type,g=i.pendingProps,g=i.elementType===d?g:Tn(d,g),yd(r,i,d,g,u);case 1:return d=i.type,g=i.pendingProps,g=i.elementType===d?g:Tn(d,g),mg(r,i,d,g,u);case 3:e:{if(gg(i),r===null)throw Error(n(387));d=i.pendingProps,w=i.memoizedState,g=w.element,Rm(r,i),ul(i,d,null,u);var A=i.memoizedState;if(d=A.element,w.isDehydrated)if(w={element:d,isDehydrated:!1,cache:A.cache,pendingSuspenseBoundaries:A.pendingSuspenseBoundaries,transitions:A.transitions},i.updateQueue.baseState=w,i.memoizedState=w,i.flags&256){g=wi(Error(n(423)),i),i=vg(r,i,d,u,g);break e}else if(d!==g){g=wi(Error(n(424)),i),i=vg(r,i,d,u,g);break e}else for(sn=Dr(i.stateNode.containerInfo.firstChild),on=i,Ke=!0,En=null,u=Cm(i,null,d,u),i.child=u;u;)u.flags=u.flags&-3|4096,u=u.sibling;else{if(fi(),d===g){i=hr(r,i,u);break e}Dt(r,i,d,u)}i=i.child}return i;
vendor: 4,994 bytes, line 9
9case 5:return zm(i),r===null&&Kc(i),d=i.type,g=i.pendingProps,w=r!==null?r.memoizedProps:null,A=g.children,Fc(d,g)?A=null:w!==null&&Fc(d,w)&&(i.flags|=32),fg(r,i),Dt(r,i,A,u),i.child;case 6:return r===null&&Kc(i),null;case 13:return yg(r,i,u);case 4:return nd(i,i.stateNode.containerInfo),d=i.pendingProps,r===null?i.child=mi(i,null,d,u):Dt(r,i,d,u),i.child;case 11:return d=i.type,g=i.pendingProps,g=i.elementType===d?g:Tn(d,g),cg(r,i,d,g,u);case 7:return Dt(r,i,i.pendingProps,u),i.child;case 8:return Dt(r,i,i.pendingProps.children,u),i.child;case 12:return Dt(r,i,i.pendingProps.children,u),i.child;case 10:e:{if(d=i.type._context,g=i.pendingProps,w=i.memoizedProps,A=g.value,$e(sl,d._currentValue),d._currentValue=A,w!==null)if(_n(w.value,A)){if(w.children===g.children&&!qt.current){i=hr(r,i,u);break e}}else for(w=i.child,w!==null&&(w.return=i);w!==null;){var R=w.dependencies;if(R!==null){A=w.child;for(var L=R.firstContext;L!==null;){if(L.context===d){if(w.tag===1){L=dr(-1,u&-u),L.tag=2;var V=w.updateQueue;if(V!==null){V=V.shared;var K=V.pending;K===null?L.next=L:(L.next=K.next,K.next=L),V.pending=L}}w.lanes|=u,L=w.alternate,L!==null&&(L.lanes|=u),Zc(w.return,u,i),R.lanes|=u;break}L=L.next}}else if(w.tag===10)A=w.type===i.type?null:w.child;else if(w.tag===18){if(A=w.return,A===null)throw Error(n(341));A.lanes|=u,R=A.alternate,R!==null&&(R.lanes|=u),Zc(A,u,i),A=w.sibling}else A=w.child;if(A!==null)A.return=w;else for(A=w;A!==null;){if(A===i){A=null;break}if(w=A.sibling,w!==null){w.return=A.return,A=w;break}A=A.return}w=A}Dt(r,i,g.children,u),i=i.child}return i;case 9:return g=i.type,d=i.pendingProps.children,vi(i,u),g=gn(g),d=d(g),i.flags|=1,Dt(r,i,d,u),i.child;case 14:return d=i.type,g=Tn(d,i.pendingProps),g=Tn(d.type,g),dg(r,i,d,g,u);case 15:return hg(r,i,i.type,i.pendingProps,u);case 17:return d=i.type,g=i.pendingProps,g=i.elementType===d?g:Tn(d,g),yl(r,i),i.tag=1,Gt(d)?(r=!0,el(i)):r=!1,vi(i,u),rg(i,d,g),md(i,d,g,u),wd(null,i,d,!0,r,u);case 19:return bg(r,i,u);case 22:return pg(r,i,u)}throw Error(n(156,i.tag))};function Wg(r,i){return Af(r,i)}function e_(r,i,u,d){this.tag=r,this.key=u,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=i,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=d,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function wn(r,i,u,d){return new e_(r,i,u,d)}function Fd(r){return r=r.prototype,!(!r||!r.isReactComponent)}function t_(r){if(typeof r=="function")return Fd(r)?1:0;if(r!=null){if(r=r.$$typeof,r===G)return 11;if(r===we)return 14}return 2}function Kr(r,i){var u=r.alternate;return u===null?(u=wn(r.tag,i,r.key,r.mode),u.elementType=r.elementType,u.type=r.type,u.stateNode=r.stateNode,u.alternate=r,r.alternate=u):(u.pendingProps=i,u.type=r.type,u.flags=0,u.subtreeFlags=0,u.deletions=null),u.flags=r.flags&14680064,u.childLanes=r.childLanes,u.lanes=r.lanes,u.child=r.child,u.memoizedProps=r.memoizedProps,u.memoizedState=r.memoizedState,u.updateQueue=r.updateQueue,i=r.dependencies,u.dependencies=i===null?null:{lanes:i.lanes,firstContext:i.firstContext},u.sibling=r.sibling,u.index=r.index,u.ref=r.ref,u}function Cl(r,i,u,d,g,w){var A=2;if(d=r,typeof r=="function")Fd(r)&&(A=1);else if(typeof r=="string")A=5;else e:switch(r){case M:return Co(u.children,g,w,i);case $:A=8,g|=8;break;case W:return r=wn(12,u,i,g|2),r.elementType=W,r.lanes=w,r;case ye:return r=wn(13,u,i,g),r.elementType=ye,r.lanes=w,r;case Q:return r=wn(19,u,i,g),r.elementType=Q,r.lanes=w,r;case ie:return Il(u,g,w,i);default:if(typeof r=="object"&&r!==null)switch(r.$$typeof){case ee:A=10;break e;case te:A=9;break e;case G:A=11;break e;case we:A=14;break e;case pe:A=16,d=null;break e}throw Error(n(130,r==null?r:typeof r,""))}return i=wn(A,u,i,g),i.elementType=r,i.type=d,i.lanes=w,i}function Co(r,i,u,d){return r=wn(7,r,d,i),r.lanes=u,r}function Il(r,i,u,d){return r=wn(22,r,d,i),r.elementType=ie,r.lanes=u,r.stateNode={isHidden:!1},r}function $d(r,i,u){return r=wn(6,r,null,i),r.lanes=u,r}function Vd(r,i,u){return i=wn(4,r.children!==null?r.children:[],r.key,i),i.lanes=u,i.stateNode={containerInfo:r.containerInfo,pendingChildren:null,implementation:r.implementation},i}function n_(r,i,u,d,g){this.tag=i,this.containerInfo=r,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=fc(0),this.expirationTimes=fc(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=fc(0),this.identifierPrefix=d,this.onRecoverableError=g,this.mutableSourceEagerHydrationData=null}function Ud(r,i,u,d,g,w,A,R,L){return r=new n_(r,i,u,R,L),i===1?(i=1,w===!0&&(i|=8)):i=0,w=wn(3,null,null,i),r.current=w,w.stateNode=r,w.memoizedState={element:d,isDehydrated:u,cac
vendor: 4,688 bytes, line 9
9he:null,transitions:null,pendingSuspenseBoundaries:null},td(w),r}function r_(r,i,u){var d=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:D,key:d==null?null:""+d,children:r,containerInfo:i,implementation:u}}function qg(r){if(!r)return Fr;r=r._reactInternals;e:{if(vo(r)!==r||r.tag!==1)throw Error(n(170));var i=r;do{switch(i.tag){case 3:i=i.stateNode.context;break e;case 1:if(Gt(i.type)){i=i.stateNode.__reactInternalMemoizedMergedChildContext;break e}}i=i.return}while(i!==null);throw Error(n(171))}if(r.tag===1){var u=r.type;if(Gt(u))return wm(r,u,i)}return i}function Gg(r,i,u,d,g,w,A,R,L){return r=Ud(u,d,!0,r,g,w,A,R,L),r.context=qg(null),u=r.current,d=jt(),g=Gr(u),w=dr(d,g),w.callback=i??null,Ur(u,w,g),r.current.lanes=g,cs(r,g,d),Yt(r,d),r}function Rl(r,i,u,d){var g=i.current,w=jt(),A=Gr(g);return u=qg(u),i.context===null?i.context=u:i.pendingContext=u,i=dr(w,A),i.payload={element:r},d=d===void 0?null:d,d!==null&&(i.callback=d),r=Ur(g,i,A),r!==null&&(In(r,g,A,w),ll(r,g,A)),A}function Ol(r){return r=r.current,r.child?(r.child.tag===5,r.child.stateNode):null}function Hg(r,i){if(r=r.memoizedState,r!==null&&r.dehydrated!==null){var u=r.retryLane;r.retryLane=u!==0&&u<i?u:i}}function Bd(r,i){Hg(r,i),(r=r.alternate)&&Hg(r,i)}function o_(){return null}var Kg=typeof reportError=="function"?reportError:function(r){console.error(r)};function Wd(r){this._internalRoot=r}Ll.prototype.render=Wd.prototype.render=function(r){var i=this._internalRoot;if(i===null)throw Error(n(409));Rl(r,i,null,null)},Ll.prototype.unmount=Wd.prototype.unmount=function(){var r=this._internalRoot;if(r!==null){this._internalRoot=null;var i=r.containerInfo;Eo(function(){Rl(null,r,null,null)}),i[sr]=null}};function Ll(r){this._internalRoot=r}Ll.prototype.unstable_scheduleHydration=function(r){if(r){var i=Rf();r={blockedOn:null,target:r,priority:i};for(var u=0;u<zr.length&&i!==0&&i<zr[u].priority;u++);zr.splice(u,0,r),u===0&&zf(r)}};function qd(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11)}function zl(r){return!(!r||r.nodeType!==1&&r.nodeType!==9&&r.nodeType!==11&&(r.nodeType!==8||r.nodeValue!==" react-mount-point-unstable "))}function Yg(){}function i_(r,i,u,d,g){if(g){if(typeof d=="function"){var w=d;d=function(){var V=Ol(A);w.call(V)}}var A=Gg(i,d,r,0,null,!1,!1,"",Yg);return r._reactRootContainer=A,r[sr]=A.current,xs(r.nodeType===8?r.parentNode:r),Eo(),A}for(;g=r.lastChild;)r.removeChild(g);if(typeof d=="function"){var R=d;d=function(){var V=Ol(L);R.call(V)}}var L=Ud(r,0,!1,null,null,!1,!1,"",Yg);return r._reactRootContainer=L,r[sr]=L.current,xs(r.nodeType===8?r.parentNode:r),Eo(function(){Rl(i,L,u,d)}),L}function Nl(r,i,u,d,g){var w=u._reactRootContainer;if(w){var A=w;if(typeof g=="function"){var R=g;g=function(){var L=Ol(A);R.call(L)}}Rl(i,A,r,g)}else A=i_(u,i,r,g,d);return Ol(A)}Cf=function(r){switch(r.tag){case 3:var i=r.stateNode;if(i.current.memoizedState.isDehydrated){var u=us(i.pendingLanes);u!==0&&(mc(i,u|1),Yt(i,ot()),(Ie&6)===0&&(ki=ot()+500,$r()))}break;case 13:Eo(function(){var d=cr(r,1);if(d!==null){var g=jt();In(d,r,1,g)}}),Bd(r,1)}},gc=function(r){if(r.tag===13){var i=cr(r,134217728);if(i!==null){var u=jt();In(i,r,134217728,u)}Bd(r,134217728)}},If=function(r){if(r.tag===13){var i=Gr(r),u=cr(r,i);if(u!==null){var d=jt();In(u,r,i,d)}Bd(r,i)}},Rf=function(){return Me},Of=function(r,i){var u=Me;try{return Me=r,i()}finally{Me=u}},ti=function(r,i,u){switch(i){case"input":if(Pr(r,u),i=u.name,u.type==="radio"&&i!=null){for(u=r;u.parentNode;)u=u.parentNode;for(u=u.querySelectorAll("input[name="+JSON.stringify(""+i)+'][type="radio"]'),i=0;i<u.length;i++){var d=u[i];if(d!==r&&d.form===r.form){var g=Xa(d);if(!g)throw Error(n(90));tn(d),Pr(d,g)}}}break;case"textarea":mo(r,u);break;case"select":i=u.value,i!=null&&Ut(r,!!u.multiple,i,!1)}},Le=Md,Fe=Eo;var s_={usingClientEntryPoint:!1,Events:[Ts,ui,Xa,Ca,xe,Md]},Vs={findFiberByHostInstance:yo,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},a_={bundleType:Vs.bundleType,version:Vs.version,rendererPackageName:Vs.rendererPackageName,rendererConfig:Vs.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:I.ReactCurrentDispatcher,findHostInstanceByFiber:function(r){return r=Sf(r),r===null?null:r.stateNode},findFiberByHostInstance:Vs.findFiberByHostInstance||o_,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};
9if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var Ml=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!Ml.isDisabled&&Ml.supportsFiber)try{La=Ml.inject(a_),qn=Ml}catch{}}return Jt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=s_,Jt.createPortal=function(r,i){var u=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!qd(i))throw Error(n(200));return r_(r,i,null,u)},Jt.createRoot=function(r,i){if(!qd(r))throw Error(n(299));var u=!1,d="",g=Kg;return i!=null&&(i.unstable_strictMode===!0&&(u=!0),i.identifierPrefix!==void 0&&(d=i.identifierPrefix),i.onRecoverableError!==void 0&&(g=i.onRecoverableError)),i=Ud(r,1,!1,null,null,u,!1,d,g),r[sr]=i.current,xs(r.nodeType===8?r.parentNode:r),new Wd(i)},Jt.findDOMNode=function(r){if(r==null)return null;if(r.nodeType===1)return r;var i=r._reactInternals;if(i===void 0)throw typeof r.render=="function"?Error(n(188)):(r=Object.keys(r).join(","),Error(n(268,r)));return r=Sf(i),r=r===null?null:r.stateNode,r},Jt.flushSync=function(r){return Eo(r)},Jt.hydrate=function(r,i,u){if(!zl(i))throw Error(n(200));return Nl(null,r,i,!0,u)},Jt.hydrateRoot=function(r,i,u){if(!qd(r))throw Error(n(405));var d=u!=null&&u.hydratedSources||null,g=!1,w="",A=Kg;if(u!=null&&(u.unstable_strictMode===!0&&(g=!0),u.identifierPrefix!==void 0&&(w=u.identifierPrefix),u.onRecoverableError!==void 0&&(A=u.onRecoverableError)),i=Gg(i,null,r,1,u??null,g,!1,w,A),r[sr]=i.current,xs(r),d)for(r=0;r<d.length;r++)u=d[r],g=u._getVersion,g=g(u._source),i.mutableSourceEagerHydrationData==null?i.mutableSourceEagerHydrationData=[u,g]:i.mutableSourceEagerHydrationData.push(u,g);return new Ll(i)},Jt.render=function(r,i,u){if(!zl(i))throw Error(n(200));return Nl(null,r,i,!1,u)},Jt.unmountComponentAtNode=function(r){if(!zl(r))throw Error(n(40));return r._reactRootContainer?(Eo(function(){Nl(null,null,r,!1,function(){r._reactRootContainer=null,r[sr]=null})}),!0):!1},Jt.unstable_batchedUpdates=Md,Jt.unstable_renderSubtreeIntoContainer=function(r,i,u,d){if(!zl(u))throw Error(n(200));if(r==null||r._reactInternals===void 0)throw Error(n(38));return Nl(r,i,u,!1,d)},Jt.version="18.3.1-next-f1338f8080-20240426",Jt}var rv;function fw(){if(rv)return Kd.exports;rv=1;function e(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(t){console.error(t)}}return e(),Kd.exports=m_(),Kd.exports}var ov;function g_(){if(ov)return Dl;ov=1;var e=fw();return Dl.createRoot=e.createRoot,Dl.hydrateRoot=e.hydrateRoot,Dl}var v_=g_(),y_="__TSS_CONTEXT",Dh=Symbol.for("TSS_SERVER_FUNCTION"),iv=Symbol.for("TSS_SERVER_FUNCTION_FACTORY"),w_="application/x-tss-framed",fr={JSON:0,CHUNK:1,END:2,ERROR:3},b_=/;\s*v=(\d+)/;function S_(e){const t=e.match(b_);return t?parseInt(t[1],10):void 0}function k_(e){const t=S_(e);if(t!==void 0&&t!==1)throw new Error(`Incompatible framed protocol version: server=${t}, client=1. Please ensure client and server are using compatible versions.`)}var Ap=()=>window.__TSS_START_OPTIONS__;const mw=!1;function sa(e){return e[e.length-1]}function A_(e){return typeof e=="function"}function Do(e,t){return A_(e)?e(t):e}const gw=Object.prototype.hasOwnProperty,sv=Object.prototype.propertyIsEnumerable;function vw(e){for(const t in e)if(gw.call(e,t))return!0;return!1}const x_=()=>Object.create(null),Io=(e,t)=>jo(e,t,x_);function jo(e,t,n=()=>({}),o=0){if(e===t)return e;if(o>500)return t;const s=t,a=uv(e)&&uv(s);if(!a&&!(ku(e)&&ku(s)))return s;const l=a?e:av(e);if(!l)return s;const c=a?s:av(s);if(!c)return s;const h=l.length,p=c.length,f=a?new Array(p):n();let m=0;for(let y=0;y<p;y++){const v=a?y:c[y],k=e[v],S=s[v];if(k===S){f[v]=k,(a?y<h:gw.call(e,v))&&m++;continue}if(k===null||S===null||typeof k!="object"||typeof S!="object"){f[v]=S;continue}const b=jo(k,S,n,o+1);f[v]=b,b===k&&m++}return h===p&&m===h?e:f}function av(e){const t=Object.getOwnPropertyNames(e);for(const s of t)if(!sv.call(e,s))return!1;const n=Object.getOwnPropertySymbols(e);if(n.length===0)return t;const o=t;for(const s of n){if(!sv.call(e,s))return!1;o.push(s)}return o}function ku(e){if(!lv(e))return!1;const t=e.constructor;if(typeof t>"u")return!0;const n=t.prototype;return!(!lv(n)||!n.hasOwnProperty("isPrototypeOf"))}function lv(e){return Object.prototype.toString.call(e)==="[object Object]"}function uv(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function Ft(e,t,n){if(e===t)return!0;
9if(typeof e!=typeof t)return!1;if(Array.isArray(e)&&Array.isArray(t)){if(e.length!==t.length)return!1;for(let o=0,s=e.length;o<s;o++)if(!Ft(e[o],t[o],n))return!1;return!0}if(ku(e)&&ku(t)){const o=n?.ignoreUndefined??!0;if(n?.partial){for(const l in t)if((!o||t[l]!==void 0)&&!Ft(e[l],t[l],n))return!1;return!0}let s=0;if(!o)s=Object.keys(e).length;else for(const l in e)e[l]!==void 0&&s++;let a=0;for(const l in t)if((!o||t[l]!==void 0)&&(a++,a>s||!Ft(e[l],t[l],n)))return!1;return s===a}return!1}function Go(e){let t,n;const o=new Promise((s,a)=>{t=s,n=a});return o.status="pending",o.resolve=s=>{o.status="resolved",o.value=s,t(s),e?.(s)},o.reject=s=>{o.status="rejected",n(s)},o}function __(e){return typeof e?.message!="string"?!1:e.message.startsWith("Failed to fetch dynamically imported module")||e.message.startsWith("error loading dynamically imported module")||e.message.startsWith("Importing a module script failed")}function aa(e){return!!(e&&typeof e=="object"&&typeof e.then=="function")}const E_=/[\x00-\x1f\x7f"<>`{}]/g;function T_(e){return e.replace(E_,t=>"%"+t.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0"))}function cv(e){let t;try{t=decodeURI(e)}catch{t=e.replaceAll(/%[0-9A-F]{2}/gi,n=>{try{return decodeURI(n)}catch{return n}})}return T_(t)}const P_=["http:","https:","mailto:","tel:"];function Au(e,t){if(!e)return!1;try{const n=new URL(e);return!t.has(n.protocol)}catch{return!1}}const C_={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},I_=/[&><\u2028\u2029]/g;function R_(e){return e.replace(I_,t=>C_[t])}function Bs(e){if(!e)return{path:e,handledProtocolRelativeURL:!1};if(!/[%\\\x00-\x1f\x7f]/.test(e)&&!e.startsWith("//"))return{path:e,handledProtocolRelativeURL:!1};const t=/%25|%5C/gi;let n=0,o="",s;for(;(s=t.exec(e))!==null;)o+=cv(e.slice(n,s.index))+s[0],n=t.lastIndex;o=o+cv(n?e.slice(n):e);let a=!1;return o.startsWith("//")&&(a=!0,o="/"+o.replace(/^\/+/,"")),{path:o,handledProtocolRelativeURL:a}}function O_(e){return/\s|[^\u0000-\u007F]/.test(e)?e.replace(/\s|[^\u0000-\u007F]/gu,encodeURIComponent):e}function L_(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==t[n])return!1;return!0}function Xt(){throw new Error("Invariant failed")}function la(e){const t=new Map;let n,o;const s=a=>{a.next&&(a.prev?(a.prev.next=a.next,a.next.prev=a.prev,a.next=void 0,o&&(o.next=a,a.prev=o)):(a.next.prev=void 0,n=a.next,a.next=void 0,o&&(a.prev=o,o.next=a)),o=a)};return{get(a){const l=t.get(a);if(l)return s(l),l.value},set(a,l){if(t.size>=e&&n){const h=n;t.delete(h.key),h.next&&(n=h.next,h.next.prev=void 0),h===o&&(o=void 0)}const c=t.get(a);if(c)c.value=l,s(c);else{const h={key:a,value:l,prev:o};o&&(o.next=h),o=h,n||(n=h),t.set(a,h)}},clear(){t.clear(),n=void 0,o=void 0}}}const oo=4,yw=5;function z_(e){const t=e.indexOf("{");if(t===-1)return null;const n=e.indexOf("}",t);return n===-1||t+1>=e.length?null:[t,n]}function ww(e,t,n=new Uint16Array(6)){const o=e.indexOf("/",t),s=o===-1?e.length:o,a=e.substring(t,s);if(!a||!a.includes("$"))return n[0]=0,n[1]=t,n[2]=t,n[3]=s,n[4]=s,n[5]=s,n;if(a==="$"){const c=e.length;return n[0]=2,n[1]=t,n[2]=t,n[3]=c,n[4]=c,n[5]=c,n}if(a.charCodeAt(0)===36)return n[0]=1,n[1]=t,n[2]=t+1,n[3]=s,n[4]=s,n[5]=s,n;const l=z_(a);if(l){const[c,h]=l,p=a.charCodeAt(c+1);if(p===45){if(c+2<a.length&&a.charCodeAt(c+2)===36){const f=c+3,m=h;if(f<m)return n[0]=3,n[1]=t+c,n[2]=t+f,n[3]=t+m,n[4]=t+h+1,n[5]=s,n}}else if(p===36){const f=c+1,m=c+2;return m===h?(n[0]=2,n[1]=t+c,n[2]=t+f,n[3]=t+m,n[4]=t+h+1,n[5]=e.length,n):(n[0]=1,n[1]=t+c,n[2]=t+m,n[3]=t+h,n[4]=t+h+1,n[5]=s,n)}}return n[0]=0,n[1]=t,n[2]=t,n[3]=s,n[4]=s,n[5]=s,n}function $u(e,t,n,o,s,a,l){l?.(n);let c=o;{const h=n.fullPath??n.from,p=h.length,f=n.options?.caseSensitive??e,m=n.options?.params?.parse??n.options?.parseParams;for(;c<p;){const v=ww(h,c,t);let k;const S=c,b=v[5];switch(c=b+1,a++,v[0]){case 0:{const x=h.substring(v[2],v[3]);if(f){const E=s.static?.get(x);if(E)k=E;else{s.static??=new Map;const P=Fo(n.fullPath??n.from);P.parent=s,P.depth=a,k=P,s.static.set(x,P)}}else{const E=x.toLowerCase(),P=s.staticInsensitive?.get(E);if(P)k=P;else{s.staticInsensitive??=new Map;const I=Fo(n.fullPath??n.from);I.parent=s,I.depth=a,k=I,s.staticInsensitive.set(E,I)}}break}case 1:{const x=h.substring(S,v[1]),E=h.substring(v[4],b),P=f&&!!(x||E),I=x?P?x:x.toLowerCase():void 0,O=E?P?E:E.toLowerCase():void 0,D=!m&&s.dynamic?.find(M=>!M.parse&&M.caseSensitive===P&&M.prefix===I&&M.suffix===O);if(D)k=D;else{const M=Xd(1,n.fullPath??n.from,P,I,O);k=M,M.depth=a,M.parent=s,s.dynamic??=[],s.dynamic.push(M)}break}case 3:{const x=h.substring(S,v[1]),E=h.substring(v[4],b),P=f&&!!(x||E),I=x?P?x:x.toLowerCase():void 0,O=E?P?E:E.toLowerCase():void 0,D=!m&&s.optional?.find(M=>!M.parse&&M.caseSensitive===P&&M.prefix===I&&M.suffix===O);if(D)k=D;else{const M=Xd(3,n.fullPath??n.from,P,I,O);
9k=M,M.parent=s,M.depth=a,s.optional??=[],s.optional.push(M)}break}case 2:{const x=h.substring(S,v[1]),E=h.substring(v[4],b),P=f&&!!(x||E),I=x?P?x:x.toLowerCase():void 0,O=E?P?E:E.toLowerCase():void 0,D=Xd(2,n.fullPath??n.from,P,I,O);k=D,D.parent=s,D.depth=a,s.wildcard??=[],s.wildcard.push(D)}}s=k}if(m&&n.children&&!n.isRoot&&n.id&&n.id.charCodeAt(n.id.lastIndexOf("/")+1)===95){const v=Fo(n.fullPath??n.from);v.kind=yw,v.parent=s,a++,v.depth=a,s.pathless??=[],s.pathless.push(v),s=v}const y=(n.path||!n.children)&&!n.isRoot;if(y&&h.endsWith("/")){const v=Fo(n.fullPath??n.from);v.kind=oo,v.parent=s,a++,v.depth=a,s.index=v,s=v}s.parse=m??null,s.priority=n.options?.params?.priority??0,y&&!s.route&&(s.route=n,s.fullPath=n.fullPath??n.from)}if(n.children)for(const h of n.children)$u(e,t,h,c,s,a,l)}function Qd(e,t){if(e.parse&&!t.parse)return-1;if(!e.parse&&t.parse)return 1;if(e.parse&&t.parse&&(e.priority||t.priority))return t.priority-e.priority;if(e.prefix&&t.prefix&&e.prefix!==t.prefix){if(e.prefix.startsWith(t.prefix))return-1;if(t.prefix.startsWith(e.prefix))return 1}if(e.suffix&&t.suffix&&e.suffix!==t.suffix){if(e.suffix.endsWith(t.suffix))return-1;if(t.suffix.endsWith(e.suffix))return 1}return e.prefix&&!t.prefix?-1:!e.prefix&&t.prefix?1:e.suffix&&!t.suffix?-1:!e.suffix&&t.suffix?1:e.caseSensitive&&!t.caseSensitive?-1:!e.caseSensitive&&t.caseSensitive?1:0}function to(e){if(e.pathless)for(const t of e.pathless)to(t);if(e.static)for(const t of e.static.values())to(t);if(e.staticInsensitive)for(const t of e.staticInsensitive.values())to(t);if(e.dynamic?.length){e.dynamic.sort(Qd);for(const t of e.dynamic)to(t)}if(e.optional?.length){e.optional.sort(Qd);for(const t of e.optional)to(t)}if(e.wildcard?.length){e.wildcard.sort(Qd);for(const t of e.wildcard)to(t)}}function Fo(e){return{kind:0,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:e,parent:null,parse:null,priority:0}}function Xd(e,t,n,o,s){return{kind:e,depth:0,pathless:null,index:null,static:null,staticInsensitive:null,dynamic:null,optional:null,wildcard:null,route:null,fullPath:t,parent:null,parse:null,priority:0,caseSensitive:n,prefix:o,suffix:s}}function N_(e,t){const n=Fo("/"),o=new Uint16Array(6);for(const s of e)$u(!1,o,s,1,n,0);to(n),t.masksTree=n,t.flatCache=la(1e3)}function M_(e,t){e||="/";const n=t.flatCache.get(e);if(n)return n;const o=xp(e,t.masksTree);return t.flatCache.set(e,o),o}function D_(e,t,n,o,s){e||="/",o||="/";const a=t?`case\0${e}`:e;let l=s.singleCache.get(a);return l||(l=Fo("/"),$u(t,new Uint16Array(6),{from:e},1,l,0),s.singleCache.set(a,l)),xp(o,l,n)}function j_(e,t,n=!1){const o=n?e:`nofuzz\0${e}`,s=t.matchCache.get(o);if(s!==void 0)return s;e||="/";let a;try{a=xp(e,t.segmentTree,n)}catch(l){if(l instanceof URIError)a=null;else throw l}return a&&(a.branch=Sw(a.route)),t.matchCache.set(o,a),a}function F_(e){return e==="/"?e:e.replace(/\/{1,}$/,"")}function $_(e,t=!1,n){const o=Fo(e.fullPath),s=new Uint16Array(6),a={},l={};let c=0;return $u(t,s,e,1,o,0,h=>{if(n?.(h,c),h.id in a&&Xt(),a[h.id]=h,c!==0&&h.path){const p=F_(h.fullPath);(!l[p]||h.fullPath.endsWith("/"))&&(l[p]=h)}c++}),to(o),{processedTree:{segmentTree:o,singleCache:la(1e3),matchCache:la(1e3),flatCache:null,masksTree:null},routesById:a,routesByPath:l}}function xp(e,t,n=!1){const o=e.split("/"),s=U_(e,o,t,n);if(!s)return null;const[a]=bw(e,o,s);return{route:s.node.route,rawParams:a}}function bw(e,t,n){const o=V_(n.node);let s=null;const a=Object.create(null);let l=n.extract?.part??0,c=n.extract?.node??0,h=n.extract?.path??0,p=n.extract?.segment??0;for(;c<o.length;l++,c++,h++,p++){const f=o[c];if(f.kind===oo)break;if(f.kind===yw){p--,l--,h--;continue}const m=t[l],y=h;if(m&&(h+=m.length),f.kind===1){s??=n.node.fullPath.split("/");const v=s[p],k=f.prefix?.length??0;if(v.charCodeAt(k)===123){const S=f.suffix?.length??0,b=v.substring(k+2,v.length-S-1),x=m.substring(k,m.length-S);a[b]=decodeURIComponent(x)}else{const S=v.substring(1);a[S]=decodeURIComponent(m)}}else if(f.kind===3){if(n.skipped&1<<c){l--,h=y-1;continue}s??=n.node.fullPath.split("/");const v=s[p],k=f.prefix?.length??0,S=f.suffix?.length??0,b=v.substring(k+3,v.length-S-1),x=f.suffix||f.prefix?m.substring(k,m.length-S):m;x&&(a[b]=decodeURIComponent(x))}else if(f.kind===2){const v=f,k=e.substring(y+(v.prefix?.length??0),e.length-(v.suffix?.length??0)),S=decodeURIComponent(k);a["*"]=S,a._splat=S;break}}return n.rawParams&&Object.assign(a,n.rawParams),[a,{part:l,node:c,path:h,segment:p}]}function Sw(e){const t=[e];for(;e.parentRoute;)e=e.parentRoute,t.push(e);return t.reverse(),t}function V_(e){const t=Array(e.depth+1);do t[e.depth]=e,e=e.parent;while(e);return t}function U_(e,t,n,o){if(e==="/"&&n.index)return{node:n.index,skipped:0};const s=!sa(t),a=s&&e!=="/",l=t.length-(s?1:0),c=[{node:n,index:1,skipped:0,depth:1,statics:0,dynamics:0,optionals:0}];let h=null,p=null;for(;c.length;){const f=c.pop(),{node:m,index:y,skipped:v,depth:k,statics:S,dynamics:b,optionals:x}=f;let{extract:E,rawParams:P}=f;if(m.kind===2&&m.route&&!Fl(p,f))continue;if(m.parse){if(!dv(e,t,f))continue;P=f.rawParams,E=f.extract}o&&m.route&&m.kind!==oo&&Fl(h,f)&&(h=f);const I=y===l;if(I&&(m.route&&(!a||m.kind===oo||m.kind===2)&&Fl(p,f)&&(p=f),!m.optional&&!m.wildcard&&!m.index&&!m.pathless))continue;const O=I?void 0:t[y];let D;if(I&&m.index){const M={node:m.index,index:y,skipped:v,depth:k+1,statics:S,dynamics:b,optionals:x,extract:E,rawParams:P};let $=!0;if(m.index.parse&&(dv(e,t,M)||($=!1)),$){if(!b&&!x&&!v&&B_(S,l))return M;Fl(p,M)&&(p=M)}}if(m.wildcard)for(let M=m.wildcard.length-1;M>=0;M--){const $=m.wildcard[M],{prefix:W,suffix:ee}=$;if(!(W&&(I||!($.caseSensitive?O:D??=O.toLowerCase()).startsWith(W)))){if(ee){if(I)continue;const te=t.slice(y).join("/").slice(-ee.length);if(($.caseSensitive?te:te.toLowerCase())!==ee)continue}c.push({node:$,index:l,skipped:v,depth:k+1,statics:S,dynamics:b,optionals:x,extract:E,rawParams:P})}}if(m.optional){const M=v|1<<k,$=k+1;for(let W=m.optional.length-1;W>=0;W--){const ee=m.optional[W];c.push({node:ee,index:y,skipped:M,depth:$,statics:S,dynamics:b,optionals:x,extract:E,rawParams:P})}if(!I)for(let W=m.optional.length-1;W>=0;W--){const ee=m.optional[W],{prefix:te,suffix:G}=ee;if(te||G){const ye=ee.caseSensitive?O:D??=O.toLowerCase();if(te&&!ye.startsWith(te)||G&&!ye.endsWith(G))continue}c.push({node:ee,index:y+1,skipped:v,depth:$,statics:S,dynamics:b,optionals:x+jl(l,y),extract:E,rawParams:P})}}if(!I&&m.dynamic&&O)for(let M=m.dynamic.length-1;M>=0;M--){const $=m.dynamic[M],{prefix:W,suffix:ee}=$;if(W||ee){const te=$.caseSensitive?O:D??=O.toLowerCase();if(W&&!te.startsWith(W)||ee&&!te.endsWith(ee))continue}c.push({node:$,index:y+1,skipped:v,depth:k+1,statics:S,dynamics:b+jl(l,y),optionals:x,extract:E,rawParams:P})}if(!I&&m.staticInsensitive){const M=m.staticInsensitive.get(D??=O.toLowerCase());M&&c.push({node:M,index:y+1,skipped:v,depth:k+1,statics:S+jl(l,y),dynamics:b,optionals:x,extract:E,rawParams:P})}if(!I&&m.static){const M=m.static.get(O);M&&c.push({node:M,index:y+1,skipped:v,depth:k+1,statics:S+jl(l,y),dynamics:b,optionals:x,extract:E,rawParams:P})}if(m.pathless){const M=k+1;for(let $=m.pathless.length-1;$>=0;$--){const W=m.pathless[$];c.push({node:W,index:y,skipped:v,depth:M,statics:S,dynamics:b,optionals:x,extract:E,rawParams:P})}}}if(p)return p;if(o&&h){let f=h.index;for(let y=0;y<h.index;y++)f+=t[y].length;const m=f===e.length?"/":e.slice(f);return h.rawParams??=Object.create(null),h.rawParams["**"]=decodeURIComponent(m),h}return null}function jl(e,t){return 2**(e-t-1)}function B_(e,t){return e===2**(t-1)-1}function dv(e,t,n){let o,s;
9try{[o,s]=bw(e,t,n)}catch{return null}if(n.rawParams=o,n.extract=s,!n.node.parse)return!0;try{if(n.node.parse(o)===!1)return null}catch{}return!0}function Fl(e,t){return e?t.statics>e.statics||t.statics===e.statics&&(t.dynamics>e.dynamics||t.dynamics===e.dynamics&&(t.optionals>e.optionals||t.optionals===e.optionals&&((t.node.kind===oo)>(e.node.kind===oo)||t.node.kind===oo==(e.node.kind===oo)&&t.depth>e.depth))):!0}function cu(e){return _p(e.filter(t=>t!==void 0).join("/"))}function _p(e){return e.replace(/\/{2,}/g,"/")}function kw(e){return e==="/"?e:e.replace(/^\/{1,}/,"")}function wr(e){const t=e.length;return t>1&&e[t-1]==="/"?e.replace(/\/{1,}$/,""):e}function Aw(e){return wr(kw(e))}function xu(e,t){return e?.endsWith("/")&&e!=="/"&&e!==`${t}/`?e.slice(0,-1):e}function W_(e,t,n){return xu(e,n)===xu(t,n)}function q_({base:e,to:t,trailingSlash:n="never",cache:o}){const s=t.startsWith("/"),a=!s&&t===".";let l;if(o){l=s?t:a?e:e+"\0"+t;const p=o.get(l);if(p)return p}let c;if(a)c=e.split("/");else if(s)c=t.split("/");else{for(c=e.split("/");c.length>1&&sa(c)==="";)c.pop();const p=t.split("/");for(let f=0,m=p.length;f<m;f++){const y=p[f];y===""?f?f===m-1&&c.push(y):c=[y]:y===".."?c.pop():y==="."||c.push(y)}}c.length>1&&(sa(c)===""?n==="never"&&c.pop():n==="always"&&c.push(""));const h=_p(c.join("/"))||"/";return l&&o&&o.set(l,h),h}function G_(e){const t=new Map(e.map(s=>[encodeURIComponent(s),s])),n=Array.from(t.keys()).map(s=>s.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join("|"),o=new RegExp(n,"g");return s=>s.replace(o,a=>t.get(a)??a)}function Zd(e,t,n){const o=t[e];return typeof o!="string"?o:e==="_splat"?/^[a-zA-Z0-9\-._~!/]*$/.test(o)?o:o.split("/").map(s=>pv(s,n)).join("/"):pv(o,n)}function hv({path:e,params:t,decoder:n,...o}){let s=!1;const a=Object.create(null);if(!e||e==="/")return{interpolatedPath:"/",usedParams:a,isMissingParams:s};if(!e.includes("$"))return{interpolatedPath:e,usedParams:a,isMissingParams:s};const l=e.length;let c=0,h,p="";for(;c<l;){const f=c;h=ww(e,f,h);const m=h[5];if(c=m+1,f===m)continue;const y=h[0];if(y===0){p+="/"+e.substring(f,m);continue}if(y===2){const v=t._splat;a._splat=v,a["*"]=v;const k=e.substring(f,h[1]),S=e.substring(h[4],m);if(!v){s=!0,(k||S)&&(p+="/"+k+S);continue}const b=Zd("_splat",t,n);p+="/"+k+b+S;continue}if(y===1){const v=e.substring(h[2],h[3]);!s&&!(v in t)&&(s=!0),a[v]=t[v];const k=e.substring(f,h[1]),S=e.substring(h[4],m),b=Zd(v,t,n)??"undefined";p+="/"+k+b+S;continue}if(y===3){const v=e.substring(h[2],h[3]),k=t[v];if(k==null)continue;a[v]=k;const S=e.substring(f,h[1]),b=e.substring(h[4],m),x=Zd(v,t,n)??"";p+="/"+S+x+b;continue}}return e.endsWith("/")&&(p+="/"),{usedParams:a,interpolatedPath:p||"/",isMissingParams:s}}function pv(e,t){const n=encodeURIComponent(e);return t?.(n)??n}function ba(e={}){if(e.isNotFound=!0,e.throw)throw e;return e}function yt(e){return e?.isNotFound===!0}function xw(e,t=String){const n=new URLSearchParams;for(const o in e){const s=e[o];s!==void 0&&n.set(o,t(s))}return n.toString()}function eh(e){return e?e==="false"?!1:e==="true"?!0:+e*0===0&&+e+""===e?+e:e:""}function H_(e){const t=new URLSearchParams(e),n=Object.create(null);for(const[o,s]of t.entries()){const a=n[o];a==null?n[o]=eh(s):Array.isArray(a)?a.push(eh(s)):n[o]=[a,eh(s)]}return n}const K_=J_(JSON.parse),Y_=Q_(JSON.stringify,JSON.parse);function J_(e){return t=>{t[0]==="?"&&(t=t.substring(1));const n=H_(t);for(const o in n){const s=n[o];if(typeof s=="string")try{n[o]=e(s)}catch{}}return n}}function Q_(e,t){const n=typeof t=="function";function o(s){if(typeof s=="object"&&s!==null)try{return e(s)}catch{}else if(n&&typeof s=="string")try{return t(s),e(s)}catch{}return s}return s=>{const a=xw(s,o);return a?`?${a}`:""}}const Bo="__root__";function _w(e){if(e.statusCode=e.statusCode||e.code||307,!e._builtLocation&&!e.reloadDocument&&typeof e.href=="string")try{new URL(e.href),e.reloadDocument=!0}catch{}const t=new Headers(e.headers);e.href&&t.get("Location")===null&&t.set("Location",e.href);const n=new Response(null,{status:e.statusCode,headers:t});if(n.options=e,e.throw)throw n;return n}function Vt(e){return e instanceof Response&&!!e.options}function Ew(e){if(e!==null&&typeof e=="object"&&e.isSerializedRedirect)return _w(e)}const jh=e=>{if(!e.rendered)return e.rendered=!0,e.onReady?.()},X_=e=>e.stores.matchesId.get().some(t=>e.stores.matchStores.get(t)?.get()._forcePending),Vu=(e,t)=>!!(e.preload&&!e.router.stores.matchStores.has(t)),Wo=(e,t,n=!0)=>{const o={...e.router.options.context??{}},s=n?t:t-1;for(let a=0;a<=s;a++){const l=e.matches[a];if(!l)continue;const c=e.router.getMatch(l.id);
9c&&Object.assign(o,c.__routeContext,c.__beforeLoadContext)}return o},fv=(e,t)=>{if(!e.matches.length)return;const n=t.routeId,o=e.matches.findIndex(l=>l.routeId===e.router.routeTree.id),s=o>=0?o:0;let a=n?e.matches.findIndex(l=>l.routeId===n):e.firstBadMatchIndex??e.matches.length-1;a<0&&(a=s);for(let l=a;l>=0;l--){const c=e.matches[l];if(e.router.looseRoutesById[c.routeId].options.notFoundComponent)return l}return n?a:s},io=(e,t,n)=>{if(!(!Vt(n)&&!yt(n)))throw Vt(n)&&n.redirectHandled&&!n.options.reloadDocument||(t&&(t._nonReactive.beforeLoadPromise?.resolve(),t._nonReactive.loaderPromise?.resolve(),t._nonReactive.beforeLoadPromise=void 0,t._nonReactive.loaderPromise=void 0,t._nonReactive.error=n,e.updateMatch(t.id,o=>({...o,status:Vt(n)?"redirected":yt(n)?"notFound":o.status==="pending"?"success":o.status,context:Wo(e,t.index),isFetching:!1,error:n})),yt(n)&&!n.routeId&&(n.routeId=t.routeId),t._nonReactive.loadPromise?.resolve()),Vt(n)&&(e.rendered=!0,n.options._fromLocation=e.location,n.redirectHandled=!0,n=e.router.resolveRedirect(n))),n},Tw=(e,t)=>{const n=e.router.getMatch(t);return!!(!n||n._nonReactive.dehydrated)},mv=(e,t,n)=>{const o=Wo(e,n);e.updateMatch(t,s=>({...s,context:o}))},Ws=(e,t,n)=>{const{id:o,routeId:s}=e.matches[t],a=e.router.looseRoutesById[s];if(n instanceof Promise)throw n;e.firstBadMatchIndex??=t,io(e,e.router.getMatch(o),n);try{a.options.onError?.(n)}catch(l){n=l,io(e,e.router.getMatch(o),n)}e.updateMatch(o,l=>(l._nonReactive.beforeLoadPromise?.resolve(),l._nonReactive.beforeLoadPromise=void 0,l._nonReactive.loadPromise?.resolve(),{...l,error:n,status:"error",isFetching:!1,updatedAt:Date.now(),abortController:new AbortController})),!e.preload&&!Vt(n)&&!yt(n)&&(e.serialError??=n)},Pw=(e,t,n,o)=>{if(o._nonReactive.pendingTimeout!==void 0)return;const s=n.options.pendingMs??e.router.options.defaultPendingMs;if(e.onReady&&!Vu(e,t)&&(n.options.loader||n.options.beforeLoad||Iw(n))&&typeof s=="number"&&s!==1/0&&(n.options.pendingComponent??e.router.options?.defaultPendingComponent)){const a=setTimeout(()=>{jh(e)},s);o._nonReactive.pendingTimeout=a}},Z_=(e,t,n)=>{const o=e.router.getMatch(t);if(!o._nonReactive.beforeLoadPromise&&!o._nonReactive.loaderPromise)return;Pw(e,t,n,o);const s=()=>{const a=e.router.getMatch(t);a.preload&&(a.status==="redirected"||a.status==="notFound")&&io(e,a,a.error)};return o._nonReactive.beforeLoadPromise?o._nonReactive.beforeLoadPromise.then(s):s()},eE=(e,t,n,o)=>{const s=e.router.getMatch(t);let a=s._nonReactive.loadPromise;s._nonReactive.loadPromise=Go(()=>{a?.resolve(),a=void 0});const{paramsError:l,searchError:c}=s;l&&Ws(e,n,l),c&&Ws(e,n,c),Pw(e,t,o,s);const h=new AbortController;let p=!1;const f=()=>{p||(p=!0,e.updateMatch(t,I=>({...I,isFetching:"beforeLoad",fetchCount:I.fetchCount+1,abortController:h})))},m=()=>{s._nonReactive.beforeLoadPromise?.resolve(),s._nonReactive.beforeLoadPromise=void 0,e.updateMatch(t,I=>({...I,isFetching:!1}))};if(!o.options.beforeLoad){e.router.batch(()=>{f(),m()});return}s._nonReactive.beforeLoadPromise=Go();const y={...Wo(e,n,!1),...s.__routeContext},{search:v,params:k,cause:S}=s,b=Vu(e,t),x={search:v,abortController:h,params:k,preload:b,context:y,location:e.location,navigate:I=>e.router.navigate({...I,_fromLocation:e.location}),buildLocation:e.router.buildLocation,cause:b?"preload":S,matches:e.matches,routeId:o.id,...e.router.options.additionalContext},E=I=>{if(I===void 0){e.router.batch(()=>{f(),m()});return}(Vt(I)||yt(I))&&(f(),Ws(e,n,I)),e.router.batch(()=>{f(),e.updateMatch(t,O=>({...O,__beforeLoadContext:I})),m()})};let P;try{if(P=o.options.beforeLoad(x),aa(P))return f(),P.catch(I=>{Ws(e,n,I)}).then(E)}catch(I){f(),Ws(e,n,I)}E(P)},tE=(e,t)=>{const{id:n,routeId:o}=e.matches[t],s=e.router.looseRoutesById[o],a=()=>c(),l=()=>eE(e,n,t,s),c=()=>{if(Tw(e,n))return;const h=Z_(e,n,s);return aa(h)?h.then(l):l()};return a()},nE=(e,t,n)=>{const o=e.router.getMatch(t);if(!o||!n.options.head&&!n.options.scripts&&!n.options.headers)return;const s={ssr:e.router.options.ssr,matches:e.matches,match:o,params:o.params,loaderData:o.loaderData};return Promise.all([n.options.head?.(s),n.options.scripts?.(s),n.options.headers?.(s)]).then(([a,l,c])=>({meta:a?.meta,links:a?.links,headScripts:a?.scripts,headers:c,scripts:l,styles:a?.styles}))},Cw=(e,t,n,o,s)=>{const a=t[o-1],{params:l,loaderDeps:c,abortController:h,cause:p}=e.router.getMatch(n),f=Wo(e,o),m=Vu(e,n);return{params:l,deps:c,preload:!!m,parentMatchPromise:a,abortController:h,context:f,location:e.location,navigate:y=>e.router.navigate({...y,_fromLocation:e.location}),cause:m?"preload":p,route:s,...e.router.options.additionalContext}},gv=async(e,t,n,o,s)=>{try{const a=e.router.getMatch(n);try{(!(mw??e.router.isServer)||a.ssr===!0)&&ua(s);const l=s.options.loader,c=typeof l=="function"?l:l?.handler,h=c?.(Cw(e,t,n,o,s)),p=!!c&&aa(h);
9if((p||s._lazyPromise||s._componentsPromise||s.options.head||s.options.scripts||s.options.headers||a._nonReactive.minPendingPromise)&&e.updateMatch(n,m=>({...m,isFetching:"loader"})),c){const m=p?await h:h;io(e,e.router.getMatch(n),m),m!==void 0&&e.updateMatch(n,y=>({...y,loaderData:m}))}s._lazyPromise&&await s._lazyPromise;const f=a._nonReactive.minPendingPromise;f&&await f,s._componentsPromise&&await s._componentsPromise,e.updateMatch(n,m=>({...m,error:void 0,context:Wo(e,o),status:"success",isFetching:!1,updatedAt:Date.now()}))}catch(l){let c=l;if(c?.name==="AbortError"){if(a.abortController.signal.aborted){a._nonReactive.loaderPromise?.resolve(),a._nonReactive.loaderPromise=void 0;return}e.updateMatch(n,p=>({...p,status:p.status==="pending"?"success":p.status,isFetching:!1,context:Wo(e,o)}));return}const h=a._nonReactive.minPendingPromise;h&&await h,yt(l)&&await s.options.notFoundComponent?.preload?.(),io(e,e.router.getMatch(n),l);try{s.options.onError?.(l)}catch(p){c=p,io(e,e.router.getMatch(n),p)}!Vt(c)&&!yt(c)&&await ua(s,["errorComponent"]),e.updateMatch(n,p=>({...p,error:c,context:Wo(e,o),status:"error",isFetching:!1}))}}catch(a){const l=e.router.getMatch(n);l&&(l._nonReactive.loaderPromise=void 0),io(e,l,a)}},rE=async(e,t,n)=>{async function o(v,k,S,b,x){const E=Date.now()-k.updatedAt,P=v?x.options.preloadStaleTime??e.router.options.defaultPreloadStaleTime??3e4:x.options.staleTime??e.router.options.defaultStaleTime??0,I=x.options.shouldReload,O=typeof I=="function"?I(Cw(e,t,s,n,x)):I,{status:D,invalid:M}=b,$=E>=P&&(!!e.forceStaleReload||b.cause==="enter"||S!==void 0&&S!==b.id);l=D==="success"&&(M||(O??$)),v&&x.options.preload===!1||(l&&!e.sync&&f?(c=!0,(async()=>{try{await gv(e,t,s,n,x);const W=e.router.getMatch(s);W._nonReactive.loaderPromise?.resolve(),W._nonReactive.loadPromise?.resolve(),W._nonReactive.loaderPromise=void 0,W._nonReactive.loadPromise=void 0}catch(W){Vt(W)&&await e.router.navigate(W.options)}})()):D!=="success"||l?await gv(e,t,s,n,x):mv(e,s,n))}const{id:s,routeId:a}=e.matches[n];let l=!1,c=!1;const h=e.router.looseRoutesById[a],p=h.options.loader,f=((typeof p=="function"?void 0:p?.staleReloadMode)??e.router.options.defaultStaleReloadMode)!=="blocking";if(Tw(e,s)){if(!e.router.getMatch(s))return e.matches[n];mv(e,s,n)}else{const v=e.router.getMatch(s),k=e.router.stores.matchesId.get()[n],S=(k&&e.router.stores.matchStores.get(k)||null)?.routeId===a?k:e.router.stores.matches.get().find(x=>x.routeId===a)?.id,b=Vu(e,s);if(v._nonReactive.loaderPromise){if(v.status==="success"&&!e.sync&&!v.preload&&f)return v;await v._nonReactive.loaderPromise;const x=e.router.getMatch(s),E=x._nonReactive.error||x.error;E&&io(e,x,E),x.status==="pending"&&await o(b,v,S,x,h)}else{const x=b&&!e.router.stores.matchStores.has(s),E=e.router.getMatch(s);E._nonReactive.loaderPromise=Go(),x!==E.preload&&e.updateMatch(s,P=>({...P,preload:x})),await o(b,v,S,E,h)}}const m=e.router.getMatch(s);c||(m._nonReactive.loaderPromise?.resolve(),m._nonReactive.loadPromise?.resolve(),m._nonReactive.loadPromise=void 0),clearTimeout(m._nonReactive.pendingTimeout),m._nonReactive.pendingTimeout=void 0,c||(m._nonReactive.loaderPromise=void 0),m._nonReactive.dehydrated=void 0;const y=c?m.isFetching:!1;return y!==m.isFetching||m.invalid!==!1?(e.updateMatch(s,v=>({...v,isFetching:y,invalid:!1})),e.router.getMatch(s)):m};async function vv(e){const t=e,n=[];X_(t.router)&&jh(t);let o;for(let y=0;y<t.matches.length;y++){try{const v=tE(t,y);aa(v)&&await v}catch(v){if(Vt(v))throw v;if(yt(v))o=v;else if(!t.preload)throw v;break}if(t.serialError||t.firstBadMatchIndex!=null)break}const s=t.firstBadMatchIndex??t.matches.length,a=o&&!t.preload?fv(t,o):void 0,l=o&&t.preload?0:a!==void 0?Math.min(a+1,s):s;let c,h;for(let y=0;y<l;y++)n.push(rE(t,n,y));try{await Promise.all(n)}catch{const y=await Promise.allSettled(n);for(const v of y){if(v.status!=="rejected")continue;const k=v.reason;if(Vt(k))throw k;yt(k)?c??=k:h??=k}if(h!==void 0)throw h}const p=c??(o&&!t.preload?o:void 0);let f=t.firstBadMatchIndex!==void 0?t.firstBadMatchIndex:t.matches.length-1;if(!p&&o&&t.preload)return t.matches;if(p){const y=fv(t,p);y===void 0&&Xt();const v=t.matches[y],k=t.router.looseRoutesById[v.routeId],S=t.router.options?.defaultNotFoundComponent;!k.options.notFoundComponent&&S&&(k.options.notFoundComponent=S),p.routeId=v.routeId;const b=v.routeId===t.router.routeTree.id;t.updateMatch(v.id,x=>({...x,...b?{status:"success",globalNotFound:!0,error:void 0}:{status:"notFound",error:p},isFetching:!1})),f=y,await ua(k,["notFoundComponent"])}else if(!t.preload){const y=t.matches[0];y.globalNotFound||t.router.getMatch(y.id)?.globalNotFound&&t.updateMatch(y.id,v=>({...v,globalNotFound:!1,error:void 0}))}if(t.serialError&&t.firstBadMatchIndex!==void 0){const y=t.router.looseRoutesById[t.matches[t.firstBadMatchIndex].routeId];await ua(y,["errorComponent"])}for(let y=0;y<=f;y++){const{id:v,routeId:k}=t.matches[y],S=t.router.looseRoutesById[k];try{const b=nE(t,v,S);if(b){const x=await b;t.updateMatch(v,E=>({...E,...x}))}}catch(b){console.error(`Error executing head for route ${k}:`,b)}}const m=jh(t);if(aa(m)&&await m,p)throw p;if(t.serialError&&!t.preload&&!t.onReady)throw t.serialError;return t.matches}function yv(e,t){const n=t.map(o=>
9e.options[o]?.preload?.()).filter(Boolean);if(n.length!==0)return Promise.all(n)}function ua(e,t=du){!e._lazyLoaded&&e._lazyPromise===void 0&&(e.lazyFn?e._lazyPromise=e.lazyFn().then(o=>{const{id:s,...a}=o.options;Object.assign(e.options,a),e._lazyLoaded=!0,e._lazyPromise=void 0}):e._lazyLoaded=!0);const n=()=>e._componentsLoaded?void 0:t===du?(()=>{if(e._componentsPromise===void 0){const o=yv(e,du);o?e._componentsPromise=o.then(()=>{e._componentsLoaded=!0,e._componentsPromise=void 0}):e._componentsLoaded=!0}return e._componentsPromise})():yv(e,t);return e._lazyPromise?e._lazyPromise.then(n):n()}function Iw(e){for(const t of du)if(e.options[t]?.preload)return!0;return!1}const du=["component","errorComponent","pendingComponent","notFoundComponent"];function oE(e){return{input:({url:t})=>{for(const n of e)t=Fh(n,t);return t},output:({url:t})=>{for(let n=e.length-1;n>=0;n--)t=Rw(e[n],t);return t}}}function iE(e){const t=Aw(e.basepath),n=`/${t}`,o=e.caseSensitive?n:n.toLowerCase(),s=`${o}/`;return{input:({url:a})=>{const l=e.caseSensitive?a.pathname:a.pathname.toLowerCase();return l===o?a.pathname="/":l.startsWith(s)&&(a.pathname=a.pathname.slice(n.length)),a},output:({url:a})=>(a.pathname=cu(["/",t,a.pathname]),a)}}function Fh(e,t){const n=e?.input?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function Rw(e,t){const n=e?.output?.({url:t});if(n){if(typeof n=="string")return new URL(n);if(n instanceof URL)return n}return t}function sE(e,t){const{createMutableStore:n,createReadonlyStore:o,batch:s,init:a}=t,l=new Map,c=new Map,h=new Map,p=n(e.status),f=n(e.loadedAt),m=n(e.isLoading),y=n(e.isTransitioning),v=n(e.location),k=n(e.resolvedLocation),S=n(e.statusCode),b=n(e.redirect),x=n([]),E=n([]),P=n([]),I=o(()=>th(l,x.get())),O=o(()=>th(c,E.get())),D=o(()=>th(h,P.get())),M=o(()=>x.get()[0]),$=o(()=>x.get().some(ie=>l.get(ie)?.get().status==="pending")),W=o(()=>({locationHref:v.get().href,resolvedLocationHref:k.get()?.href,status:p.get()})),ee=o(()=>({status:p.get(),loadedAt:f.get(),isLoading:m.get(),isTransitioning:y.get(),matches:I.get(),location:v.get(),resolvedLocation:k.get(),statusCode:S.get(),redirect:b.get()})),te=la(64);function G(ie){let B=te.get(ie);return B||(B=o(()=>{const q=x.get();for(const Y of q){const z=l.get(Y);if(z&&z.routeId===ie)return z.get()}}),te.set(ie,B)),B}const ye={status:p,loadedAt:f,isLoading:m,isTransitioning:y,location:v,resolvedLocation:k,statusCode:S,redirect:b,matchesId:x,pendingIds:E,cachedIds:P,matches:I,pendingMatches:O,cachedMatches:D,firstId:M,hasPending:$,matchRouteDeps:W,matchStores:l,pendingMatchStores:c,cachedMatchStores:h,__store:ee,getRouteMatchStore:G,setMatches:Q,setPending:we,setCached:pe};Q(e.matches),a?.(ye);function Q(ie){nh(ie,l,x,n,s)}function we(ie){nh(ie,c,E,n,s)}function pe(ie){nh(ie,h,P,n,s)}return ye}function th(e,t){const n=[];for(const o of t){const s=e.get(o);s&&n.push(s.get())}return n}function nh(e,t,n,o,s){const a=e.map(c=>c.id),l=new Set(a);s(()=>{for(const c of t.keys())l.has(c)||t.delete(c);for(const c of e){const h=t.get(c.id);if(!h){const p=o(c);p.routeId=c.routeId,t.set(c.id,p);continue}h.routeId=c.routeId,h.get()!==c&&h.set(c)}L_(n.get(),a)||n.set(a)})}var so="__TSR_index",wv="popstate",bv="beforeunload";function aE(e){let t=e.getLocation();const n=new Set,o=l=>{t=e.getLocation(),n.forEach(c=>c({location:t,action:l}))},s=l=>{e.notifyOnIndexChange??!0?o(l):t=e.getLocation()},a=async({task:l,navigateOpts:c,...h})=>{if(c?.ignoreBlocker??!1){l();return}const p=e.getBlockers?.()??[],f=h.type==="PUSH"||h.type==="REPLACE";if(typeof document<"u"&&p.length&&f)for(const m of p){const y=_u(h.path,h.state);if(await m.blockerFn({currentLocation:t,nextLocation:y,action:h.type})){e.onBlocked?.();return}}l()};return{get location(){return t},get length(){return e.getLength()},subscribers:n,subscribe:l=>(n.add(l),()=>{n.delete(l)}),push:(l,c,h)=>{const p=t.state[so];c=Sv(p+1,c),a({task:()=>{e.pushState(l,c),o({type:"PUSH"})},navigateOpts:h,type:"PUSH",path:l,state:c})},replace:(l,c,h)=>{const p=t.state[so];c=Sv(p,c),a({task:()=>{e.replaceState(l,c),o({type:"REPLACE"})},navigateOpts:h,type:"REPLACE",path:l,state:c})},go:(l,c)=>{a({task:()=>{e.go(l),s({type:"GO",index:l})},navigateOpts:c,type:"GO"})},back:l=>{a({task:()=>{e.back(l?.ignoreBlocker??!1),s({type:"BACK"})},navigateOpts:l,type:"BACK"})},forward:l=>{a({task:()=>{e.forward(l?.ignoreBlocker??!1),s({type:"FORWARD"})},navigateOpts:l,type:"FORWARD"})},canGoBack:()=>t.state[so]!==0,createHref:l=>e.createHref(l),block:l=>{if(!e.setBlockers)return()=>{};const c=e.getBlockers?.()??[];return e.setBlockers([...c,l]),()=>{const h=e.getBlockers?.()??[];e.setBlockers?.(h.filter(p=>p!==l))}},flush:()=>e.flush?.(),destroy:()=>e.destroy?.(),notify:o}}function Sv(e,t){t||(t={});const n=Ep();return{...t,key:n,__TSR_key:n,[so]:e}}function lE(e){const t=typeof document<"u"?window:void 0,n=t.history.pushState,o=t.history.replaceState;let s=[];const a=()=>s,l=$=>s=$,c=($=>$),h=(()=>_u(`${t.location.pathname}${t.location.search}${t.location.hash}`,t.history.state));if(!t.history.state?.__TSR_key&&!t.history.state?.key){const $=Ep();t.history.replaceState({[so]:0,key:$,__TSR_key:$},"")}let p=h(),f,m=!1,y=!1,v=!1,k=!1;const S=()=>p;let b,x;const E=()=>{b&&(M._ignoreSubscribers=!0,(b.isPush?t.history.pushState:t.history.replaceState)(b.state,"",b.href),M._ignoreSubscribers=!1,b=void 0,x=void 0,f=void 0)},P=($,W,ee)=>{const te=c(W);x||(f=p),p=_u(W,ee),b={href:te,state:ee,isPush:b?.isPush||$==="push"},x||(x=Promise.resolve().then(()=>E()))},I=$=>{p=h(),M.notify({type:$})},O=async()=>
9{if(y){y=!1;return}const $=h(),W=$.state[so]-p.state[so],ee=W===1,te=W===-1,G=!ee&&!te||m;m=!1;const ye=G?"GO":te?"BACK":"FORWARD",Q=G?{type:"GO",index:W}:{type:te?"BACK":"FORWARD"};if(v)v=!1;else{const we=a();if(typeof document<"u"&&we.length){for(const pe of we)if(await pe.blockerFn({currentLocation:p,nextLocation:$,action:ye})){y=!0,t.history.go(1),M.notify(Q);return}}}p=h(),M.notify(Q)},D=$=>{if(k){k=!1;return}let W=!1;const ee=a();if(typeof document<"u"&&ee.length)for(const te of ee){const G=te.enableBeforeUnload??!0;if(G===!0){W=!0;break}if(typeof G=="function"&&G()===!0){W=!0;break}}if(W)return $.preventDefault(),$.returnValue=""},M=aE({getLocation:S,getLength:()=>t.history.length,pushState:($,W)=>P("push",$,W),replaceState:($,W)=>P("replace",$,W),back:$=>($&&(v=!0),k=!0,t.history.back()),forward:$=>{$&&(v=!0),k=!0,t.history.forward()},go:$=>{m=!0,t.history.go($)},createHref:$=>c($),flush:E,destroy:()=>{t.history.pushState=n,t.history.replaceState=o,t.removeEventListener(bv,D,{capture:!0}),t.removeEventListener(wv,O)},onBlocked:()=>{f&&p!==f&&(p=f)},getBlockers:a,setBlockers:l,notifyOnIndexChange:!1});return t.addEventListener(bv,D,{capture:!0}),t.addEventListener(wv,O),t.history.pushState=function(...$){const W=n.apply(t.history,$);return M._ignoreSubscribers||I("PUSH"),W},t.history.replaceState=function(...$){const W=o.apply(t.history,$);return M._ignoreSubscribers||I("REPLACE"),W},M}function uE(e){let t=e.replace(/[\x00-\x1f\x7f]/g,"");return t.startsWith("//")&&(t="/"+t.replace(/^\/+/,"")),t}function _u(e,t){const n=uE(e),o=n.indexOf("#"),s=n.indexOf("?"),a=Ep();return{href:n,pathname:n.substring(0,o>0?s>0?Math.min(o,s):o:s>0?s:n.length),hash:o>-1?n.substring(o):"",search:s>-1?n.slice(s,o===-1?void 0:o):"",state:t||{[so]:0,key:a,__TSR_key:a}}}function Ep(){return(Math.random()+1).toString(36).substring(7)}function cE(e){return e instanceof Error?{name:e.name,message:e.message}:{data:e}}function Ui(e,t){const n=t,o=e;return{fromLocation:n,toLocation:o,pathChanged:n?.pathname!==o.pathname,hrefChanged:n?.href!==o.href,hashChanged:n?.hash!==o.hash}}const $h=new WeakMap;var dE=class{constructor(e,t){this.tempLocationKey=`${Math.round(Math.random()*1e7)}`,this._scroll={next:!0},this.shouldViewTransition=void 0,this.isViewTransitionTypesSupported=void 0,this.subscribers=new Set,this.routeBranchCache=new WeakMap,this.lightweightCache=new WeakMap,this.startTransition=n=>
9n(),this.update=n=>{const o=this.options,s=this.basepath??o?.basepath??"/",a=this.basepath===void 0,l=o?.rewrite;if(this.options={...o,...n},this.isServer=this.options.isServer??typeof document>"u",this.protocolAllowlist=new Set(this.options.protocolAllowlist),this.options.pathParamsAllowedCharacters&&(this.pathParamsDecoder=G_(this.options.pathParamsAllowedCharacters)),(!this.history||this.options.history&&this.options.history!==this.history)&&(this.options.history?this.history=this.options.history:this.history=lE()),this.origin=this.options.origin,this.origin||(window?.origin&&window.origin!=="null"?this.origin=window.origin:this.origin="http://localhost"),this.history&&this.updateLatestLocation(),this.options.routeTree!==this.routeTree){this.routeTree=this.options.routeTree;let f;this.resolvePathCache=la(1e3),f=this.buildRouteTree(),this.setRoutes(f)}if(!this.stores&&this.latestLocation){const f=this.getStoreConfig(this);this.batch=f.batch,this.stores=sE(pE(this.latestLocation),f),xE(this)}let c=!1;const h=this.options.basepath??"/",p=this.options.rewrite;if(a||s!==h||l!==p){this.basepath=h;const f=[],m=Aw(h);
9m&&m!=="/"&&f.push(iE({basepath:h})),p&&f.push(p),this.rewrite=f.length===0?void 0:f.length===1?f[0]:oE(f),this.history&&this.updateLatestLocation(),c=!0}c&&this.stores&&this.stores.location.set(this.latestLocation),typeof window<"u"&&"CSS"in window&&typeof window.CSS?.supports=="function"&&(this.isViewTransitionTypesSupported=window.CSS.supports("selector(:active-view-transition-type(a))"))},this.updateLatestLocation=()=>{this.latestLocation=this.parseLocation(this.history.location,this.latestLocation)},this.buildRouteTree=()=>{const n=$_(this.routeTree,this.options.caseSensitive,(o,s)=>{o.init({originalIndex:s})});return this.options.routeMasks&&N_(this.options.routeMasks,n.processedTree),n},this.subscribe=(n,o)=>{const s={eventType:n,fn:o};return this.subscribers.add(s),()=>{this.subscribers.delete(s)}},this.emit=n=>{this.subscribers.forEach(o=>{o.eventType===n.type&&o.fn(n)})},this.parseLocation=(n,o)=>{const s=({pathname:h,search:p,hash:f,href:m,state:y})=>{if(!this.rewrite&&!/[ \x00-\x1f\x7f\u0080-\uffff]/.test(h)){const x=this.options.parseSearch(p),E=this.options.stringifySearch(x);return{href:h+E+f,publicHref:h+E+f,pathname:Bs(h).path,external:!1,searchStr:E,search:Io(o?.search,x),hash:Bs(f.slice(1)).path,state:jo(o?.state,y)}}const v=new URL(m,this.origin),k=Fh(this.rewrite,v),S=this.options.parseSearch(k.search),b=this.options.stringifySearch(S);return k.search=b,{href:k.href.replace(k.origin,""),publicHref:m,pathname:Bs(k.pathname).path,external:!!this.rewrite&&k.origin!==this.origin,searchStr:b,search:Io(o?.search,S),hash:Bs(k.hash.slice(1)).path,state:jo(o?.state,y)}},a=s(n),{__tempLocation:l,__tempKey:c}=a.state;if(l&&(!c||c===this.tempLocationKey)){const h=s(l);return h.state.key=a.state.key,h.state.__TSR_key=a.state.__TSR_key,delete h.state.__tempLocation,{...h,maskedLocation:a}}return a},this.resolvePathWithBase=(n,o)=>q_({base:n,to:o.includes("//")?_p(o):o,trailingSlash:this.options.trailingSlash,cache:this.resolvePathCache}),this.matchRoutes=(n,o,s)=>typeof n=="string"?this.matchRoutesInternal({pathname:n,search:o},s):this.matchRoutesInternal(n,o),this.getMatchedRoutes=n=>fE({pathname:n,routesById:this.routesById,processedTree:this.processedTree}),this.cancelMatch=n=>{const o=this.getMatch(n);o&&(o.abortController.abort(),clearTimeout(o._nonReactive.pendingTimeout),o._nonReactive.pendingTimeout=void 0)},this.cancelMatches=()=>{this.stores.pendingIds.get().forEach(n=>{this.cancelMatch(n)}),this.stores.matchesId.get().forEach(n=>{if(this.stores.pendingMatchStores.has(n))return;const o=this.stores.matchStores.get(n)?.get();o&&(o.status==="pending"||o.isFetching==="loader")&&this.cancelMatch(n)})},this.buildLocation=n=>{const o=(a={})=>{const l=a._fromLocation||this.pendingBuiltLocation||this.latestLocation,c=this.matchRoutesLightweight(l);a.from;const h=a.unsafeRelative==="path"?l.pathname:a.from??c.fullPath,p=a.to?`${a.to}`:void 0,f=c.search,m=Object.assign(Object.create(null),c.params),y=p?.charCodeAt(0)===47?"/":this.resolvePathWithBase(h,"."),v=p?this.resolvePathWithBase(y,p):y,k=a.params===!1||a.params===null?Object.create(null):(a.params??!0)===!0?m:Object.assign(m,Do(a.params,m)),S=this.routesByPath[wr(v)];let b;if(S)b=this.getRouteBranch(S);else if(v.includes("$"))b=[];else{const te=this.getMatchedRoutes(v);b=te.matchedRoutes,this.options.notFoundRoute&&(!te.foundRoute||te.foundRoute.path!=="/"&&te.routeParams["**"])&&(b=[...b,this.options.notFoundRoute])}if(b.length&&vw(k))for(const te of b){const G=te.options.params?.stringify??te.options.stringifyParams;if(G)try{Object.assign(k,G(k))}catch{}}const x=n.leaveParams?v:Bs(hv({path:v,params:k,decoder:this.pathParamsDecoder,server:this.isServer}).interpolatedPath).path;let E=f;if(n._includeValidateSearch&&this.options.search?.strict){const te={};b.forEach(G=>{if(G.options.validateSearch)try{Object.assign(te,hu(G.options.validateSearch,{...te,...E}))}catch{}}),E=te}E=mE({search:E,dest:a,destRoutes:b,_includeValidateSearch:n._includeValidateSearch}),E=Io(f,E);const P=this.options.stringifySearch(E),I=a.hash===!0?l.hash:a.hash?Do(a.hash,l.hash):void 0,O=I?`#${I}`:"";let D=a.state===!0?l.state:a.state?Do(a.state,l.state):{};D=jo(l.state,D);const M=`${x}${P}${O}`;let $,W,ee=!1;if(this.rewrite){const te=new URL(M,this.origin),G=Rw(this.rewrite,te);$=te.href.replace(te.origin,""),G.origin!==this.origin?(W=G.href,ee=!0):W=G.pathname+G.search+G.hash}else $=O_(M),W=$;return{publicHref:W,href:$,pathname:x,search:E,searchStr:P,state:D,hash:I??"",external:ee,unmaskOnReload:a.unmaskOnReload}},s=(a={},l)=>{const c=o(a);let h=l?o(l):void 0;if(!h){const p=Object.create(null);if(this.options.routeMasks){const f=M_(c.pathname,this.processedTree);if(f){Object.assign(p,f.rawParams);const{from:m,params:y,...v}
9=f.route,k=y===!1||y===null?Object.create(null):(y??!0)===!0?p:Object.assign(p,Do(y,p));l={from:n.from,...v,params:k},h=o(l)}}}return h&&(c.maskedLocation=h),c};return n.mask?s(n,{from:n.from,...n.mask}):s(n)},this.commitLocation=async({viewTransition:n,ignoreBlocker:o,...s})=>{let a;const l=()=>{const p=["key","__TSR_key","__TSR_index","__hashScrollIntoViewOptions"];p.forEach(m=>{s.state[m]=this.latestLocation.state[m]});const f=Ft(s.state,this.latestLocation.state);return p.forEach(m=>{delete s.state[m]}),f},c=wr(this.latestLocation.href)===wr(s.href);let h=this.commitLocationPromise;if(this.commitLocationPromise=Go(()=>{h?.resolve(),h=void 0}),c&&l())this.load();else{let{maskedLocation:p,hashScrollIntoView:f,...m}=s;p&&(m={...p,state:{...p.state,__tempKey:void 0,__tempLocation:{...m,search:m.searchStr,state:{...m.state,__tempKey:void 0,__tempLocation:void 0,__TSR_key:void 0,key:void 0}}}},(m.unmaskOnReload??this.options.unmaskOnReload??!1)&&(m.state.__tempKey=this.tempLocationKey)),m.state.__hashScrollIntoViewOptions=f??this.options.defaultHashScrollIntoView??!0,this.shouldViewTransition=n,a=s.replace?"REPLACE":"PUSH",this.history[a==="REPLACE"?"replace":"push"](m.publicHref,m.state,{ignoreBlocker:o})}return this._scroll.next=s.resetScroll??!0,this.history.subscribers.size||this.load(a?{action:{type:a}}:void 0),this.commitLocationPromise},this.buildAndCommitLocation=({replace:n,resetScroll:o,hashScrollIntoView:s,viewTransition:a,ignoreBlocker:l,href:c,...h}={})=>{if(c){const m=this.history.location.state.__TSR_index,y=_u(c,{__TSR_index:n?m:m+1}),v=new URL(y.pathname,this.origin);h.to=Fh(this.rewrite,v).pathname,h.search=this.options.parseSearch(y.search),h.hash=y.hash.slice(1)}const p=this.buildLocation({...h,_includeValidateSearch:!0});this.pendingBuiltLocation=p;const f=this.commitLocation({...p,viewTransition:a,replace:n,resetScroll:o,hashScrollIntoView:s,ignoreBlocker:l});return queueMicrotask(()=>{this.pendingBuiltLocation===p&&(this.pendingBuiltLocation=void 0)}),f},this.navigate=async({to:n,reloadDocument:o,href:s,publicHref:a,...l})=>{let c=!1;if(s)try{new URL(`${s}`),c=!0}catch{}if(c&&!o&&(o=!0),o){if(n!==void 0||!s){const p=this.buildLocation({to:n,...l});s=s??p.publicHref,a=a??p.publicHref}const h=!c&&a?a:s;if(Au(h,this.protocolAllowlist))return;if(!l.ignoreBlocker){const p=this.history.getBlockers?.()??[];for(const f of p)if(f?.blockerFn&&await f.blockerFn({currentLocation:this.latestLocation,nextLocation:this.latestLocation,action:"PUSH"}))return}l.replace?window.location.replace(h):window.location.href=h;return}return this.buildAndCommitLocation({...l,href:s,to:n,_isNavigate:!0})},this.beforeLoad=()=>{this.cancelMatches(),this.updateLatestLocation();const n=this.matchRoutes(this.latestLocation),o=this.stores.cachedMatches.get().filter(s=>!n.some(a=>a.id===s.id));this.batch(()=>{this.stores.status.set("pending"),this.stores.statusCode.set(200),this.stores.isLoading.set(!0),this.stores.location.set(this.latestLocation),this.stores.setPending(n),this.stores.setCached(o)})},this.load=async n=>{const o=n?.action?.type;let s,a,l;const c=this.stores.resolvedLocation.get()??this.stores.location.get();for(l=new Promise(p=>{this.startTransition(async()=>{try{this.beforeLoad(),o?$h.set(this.latestLocation,o):$h.delete(this.latestLocation);const f=this.latestLocation,m=Ui(f,this.stores.resolvedLocation.get());this.stores.redirect.get()||this.emit({type:"onBeforeNavigate",...m}),this.emit({type:"onBeforeLoad",...m}),await vv({router:this,sync:n?.sync,forceStaleReload:c.href===f.href,matches:this.stores.pendingMatches.get(),location:f,updateMatch:this.updateMatch,onReady:async()=>{this.startTransition(()=>{this.startViewTransition(async()=>{let y=null,v=null,k=null,S=null;this.batch(()=>{const b=this.stores.pendingMatches.get(),x=b.length,E=this.stores.matches.get();y=x?E.filter(O=>!this.stores.pendingMatchStores.has(O.id)):null;const P=new Set;for(const O of this.stores.pendingMatchStores.values())O.routeId&&P.add(O.routeId);const I=new Set;for(const O of this.stores.matchStores.values())O.routeId&&I.add(O.routeId);v=x?E.filter(O=>!P.has(O.routeId)):null,k=x?b.filter(O=>!I.has(O.routeId)):null,S=x?b.filter(O=>I.has(O.routeId)):E,this.stores.isLoading.set(!1),this.stores.loadedAt.set(Date.now()),x&&(this.stores.setMatches(b),this.stores.setPending([]),this.stores.setCached([...this.stores.cachedMatches.get(),...y.filter(O=>O.status!=="error"&&O.status!=="notFound"&&O.status!=="redirected")]),this.clearExpiredCache())});for(const[b,x]of[[v,"onLeave"],[k,"onEnter"],[S,"onStay"]])if(b)for(const E of b)this.looseRoutesById[E.routeId].options[x]?.(E)})})}})}catch(f){Vt(f)?(s=f,this.navigate({...s.options,replace:!0,ignoreBlocker:!0})):yt(f)&&(a=f);const m=s?s.status:a?404:this.stores.matches.get().some(y=>y.status==="error")?500:200;this.batch(()=>{this.stores.statusCode.set(m),this.stores.redirect.set(s)})}this.latestLoadPromise===l&&(this.commitLocationPromise?.resolve(),this.latestLoadPromise=void 0,this.commitLocationPromise=void 0),p()})}),this.latestLoadPromise=l,await l;this.latestLoadPromise&&l!==this.latestLoadPromise;)await this.latestLoadPromise;let h;this.hasNotFoundMatch()?h=404:this.stores.matches.get().some(p=>p.status==="error")&&(h=500),h!==void 0&&this.stores.statusCode.set(h)},this.startViewTransition=n=>
9{const o=this.shouldViewTransition??this.options.defaultViewTransition;if(this.shouldViewTransition=void 0,o&&typeof document<"u"&&"startViewTransition"in document&&typeof document.startViewTransition=="function"){let s;if(typeof o=="object"&&this.isViewTransitionTypesSupported){const a=this.latestLocation,l=this.stores.resolvedLocation.get(),c=typeof o.types=="function"?o.types(Ui(a,l)):o.types;if(c===!1){n();return}s={update:n,types:c}}else s=n;document.startViewTransition(s)}else n()},this.updateMatch=(n,o)=>{this.startTransition(()=>{const s=this.stores.pendingMatchStores.get(n);if(s){s.set(o);return}const a=this.stores.matchStores.get(n);if(a){a.set(o);return}const l=this.stores.cachedMatchStores.get(n);if(l){const c=o(l.get());c.status==="redirected"?this.stores.cachedMatchStores.delete(n)&&this.stores.cachedIds.set(h=>h.filter(p=>p!==n)):l.set(c)}})},this.getMatch=n=>this.stores.cachedMatchStores.get(n)?.get()??this.stores.pendingMatchStores.get(n)?.get()??this.stores.matchStores.get(n)?.get(),this.invalidate=n=>{const o=s=>n?.filter?.(s)??!0?{...s,invalid:!0,...n?.forcePending||s.status==="error"||s.status==="notFound"?{status:"pending",error:void 0}:void 0}:s;return this.batch(()=>{this.stores.setMatches(this.stores.matches.get().map(o)),this.stores.setCached(this.stores.cachedMatches.get().map(o)),this.stores.setPending(this.stores.pendingMatches.get().map(o))}),this.shouldViewTransition=!1,this.load({sync:n?.sync})},this.getParsedLocationHref=n=>n.publicHref||"/",this.resolveRedirect=n=>{const o=n.headers.get("Location");if(!n.options.href||n.options._builtLocation){const s=n.options._builtLocation??this.buildLocation(n.options),a=this.getParsedLocationHref(s);n.options.href=a,n.headers.set("Location",a)}else if(o)try{const s=new URL(o);if(this.origin&&s.origin===this.origin){const a=s.pathname+s.search+s.hash;n.options.href=a,n.headers.set("Location",a)}}catch{}if(n.options.href&&!n.options._builtLocation&&Au(n.options.href,this.protocolAllowlist))throw new Error("Redirect blocked: unsafe protocol");return n.headers.get("Location")||n.headers.set("Location",n.options.href),n},this.clearCache=n=>{const o=n?.filter;o!==void 0?this.stores.setCached(this.stores.cachedMatches.get().filter(s=>!o(s))):this.stores.setCached([])},this.clearExpiredCache=()=>{const n=Date.now(),o=s=>{const a=this.looseRoutesById[s.routeId];if(!a.options.loader)return!0;const l=(s.preload?a.options.preloadGcTime??this.options.defaultPreloadGcTime:a.options.gcTime??this.options.defaultGcTime)??300*1e3;return s.status==="error"?!0:n-s.updatedAt>=l};this.clearCache({filter:o})},this.loadRouteChunk=ua,this.preloadRoute=async n=>{const o=n._builtLocation??this.buildLocation(n);let s=this.matchRoutes(o,{throwOnError:!0,preload:!0,dest:n});const a=new Set([...this.stores.matchesId.get(),...this.stores.pendingIds.get()]),l=new Set([...a,...this.stores.cachedIds.get()]),c=s.filter(h=>!l.has(h.id));if(c.length){const h=this.stores.cachedMatches.get();this.stores.setCached([...h,...c])}try{return s=await vv({router:this,matches:s,location:o,preload:!0,updateMatch:(h,p)=>{a.has(h)?s=s.map(f=>f.id===h?p(f):f):this.updateMatch(h,p)}}),s}catch(h){if(Vt(h))return h.options.reloadDocument?void 0:await this.preloadRoute({...h.options,_fromLocation:o});yt(h)||console.error(h);return}},this.matchRoute=(n,o)=>{const s={...n,to:n.to?this.resolvePathWithBase(n.from||"",n.to):void 0,params:n.params||{},leaveParams:!0},a=this.buildLocation(s);if(o?.pending&&this.stores.status.get()!=="pending")return!1;const l=(o?.pending===void 0?!this.stores.isLoading.get():o.pending)?this.latestLocation:this.stores.resolvedLocation.get()||this.stores.location.get(),c=D_(a.pathname,o?.caseSensitive??!1,o?.fuzzy??!1,l.pathname,this.processedTree);return!c||n.params&&!Ft(c.rawParams,n.params,{partial:!0})?!1:o?.includeSearch??!0?Ft(l.search,a.search,{partial:!0})?c.rawParams:!1:c.rawParams},this.hasNotFoundMatch=()=>this.stores.matches.get().some(n=>n.status==="notFound"||n.globalNotFound),this.getStoreConfig=t,this.update({defaultPreloadDelay:50,defaultPendingMs:1e3,defaultPendingMinMs:500,context:void 0,...e,caseSensitive:e.caseSensitive??!1,notFoundMode:e.notFoundMode??"fuzzy",stringifySearch:e.stringifySearch??Y_,parseSearch:e.parseSearch??K_,protocolAllowlist:e.protocolAllowlist??P_}),typeof document<"u"&&(self.__TSR_ROUTER__=this)}
9isShell(){return!!this.options.isShell}isPrerendering(){return!!this.options.isPrerendering}get state(){return this.stores.__store.get()}setRoutes({routesById:e,routesByPath:t,processedTree:n}){this.routesById=e,this.routesByPath=t,this.processedTree=n;const o=this.options.notFoundRoute;o&&(o.init({originalIndex:99999999999}),this.routesById[o.id]=o)}getRouteBranch(e){let t=this.routeBranchCache.get(e);return t||(t=Sw(e),this.routeBranchCache.set(e,t)),t}get looseRoutesById(){return this.routesById}getParentContext(e){return e?.id?e.context??this.options.context??void 0:this.options.context??void 0}matchRoutesInternal(e,t){const n=this.getMatchedRoutes(e.pathname),{foundRoute:o,routeParams:s}=n;let{matchedRoutes:a}=n,l=!1;(o?o.path!=="/"&&s["**"]:wr(e.pathname))&&(this.options.notFoundRoute?a=[...a,this.options.notFoundRoute]:l=!0);const c=l?vE(this.options.notFoundMode,a):void 0,h=new Array(a.length),p=new Map;for(const f of this.stores.matchStores.values())f.routeId&&p.set(f.routeId,f.get());for(let f=0;f<a.length;f++){const m=a[f],y=h[f-1];let v,k,S;{const G=y?.search??e.search,ye=y?._strictSearch??void 0;try{const Q=hu(m.options.validateSearch,{...G})??void 0;v={...G,...Q},k={...ye,...Q},S=void 0}catch(Q){let we=Q;if(Q instanceof Eu||(we=new Eu(Q.message,{cause:Q})),t?.throwOnError)throw we;v=G,k={},S=we}}const b=m.options.loaderDeps?.({search:v})??"",x=b?JSON.stringify(b):"",{interpolatedPath:E,usedParams:P}=hv({path:m.fullPath,params:s,decoder:this.pathParamsDecoder,server:this.isServer}),I=m.id+E+x,O=this.getMatch(I),D=p.get(m.id),M=O?._strictParams??P;let $;if(!O)try{kv(m,M)}catch(G){if(yt(G)||Vt(G)?$=G:$=new hE(G.message,{cause:G}),t?.throwOnError)throw $}Object.assign(s,M);const W=D?"stay":"enter";let ee;if(O)ee={...O,cause:W,params:D?.params??s,_strictParams:M,search:Io(D?D.search:O.search,v),_strictSearch:k};else{const G=m.options.loader||m.options.beforeLoad||m.lazyFn||Iw(m)?"pending":"success";ee={id:I,ssr:m.options.ssr,index:f,routeId:m.id,params:D?.params??s,_strictParams:M,pathname:E,updatedAt:Date.now(),search:D?Io(D.search,v):v,_strictSearch:k,searchError:void 0,status:G,isFetching:!1,error:void 0,paramsError:$,__routeContext:void 0,_nonReactive:{loadPromise:Go()},__beforeLoadContext:void 0,context:{},abortController:new AbortController,fetchCount:0,cause:W,loaderDeps:D?jo(D.loaderDeps,b):b,invalid:!1,preload:!1,links:void 0,scripts:void 0,headScripts:void 0,meta:void 0,staticData:m.options.staticData||{},fullPath:m.fullPath}}t?.preload||(ee.globalNotFound=c===m.id),ee.searchError=S;const te=this.getParentContext(y);ee.context={...te,...ee.__routeContext,...ee.__beforeLoadContext},h[f]=ee}for(let f=0;f<h.length;f++){const m=h[f],y=this.looseRoutesById[m.routeId],v=this.getMatch(m.id),k=p.get(m.routeId);if(m.params=k?Io(k.params,s):s,!v){const S=h[f-1],b=this.getParentContext(S);if(y.options.context){const x={deps:m.loaderDeps,params:m.params,context:b??{},location:e,navigate:E=>this.navigate({...E,_fromLocation:e}),buildLocation:this.buildLocation,cause:m.cause,abortController:m.abortController,preload:!!m.preload,matches:h,routeId:y.id};m.__routeContext=y.options.context(x)??void 0}m.context={...b,...m.__routeContext,...m.__beforeLoadContext}}}return h}matchRoutesLightweight(e){const t=sa(this.stores.matchesId.get()),n=this.lightweightCache.get(e);if(n&&n[0]===t)return n[1];const{matchedRoutes:o,routeParams:s}=this.getMatchedRoutes(e.pathname),a=sa(o),l={...e.search};for(const m of o)try{Object.assign(l,hu(m.options.validateSearch,l))}catch{}const c=t&&this.stores.matchStores.get(t)?.get(),h=c&&c.routeId===a.id&&c.pathname===e.pathname;let p;if(h)p=c.params;else{const m=Object.assign(Object.create(null),s);for(const y of o)try{kv(y,m)}catch{}p=m}const f={matchedRoutes:o,fullPath:a.fullPath,search:l,params:p};return this.lightweightCache.set(e,[t,f]),f}},Eu=class extends Error{},hE=class extends Error{};function pE(e){return{loadedAt:0,isLoading:!1,isTransitioning:!1,status:"idle",resolvedLocation:void 0,location:e,matches:[],statusCode:200}}function hu(e,t){if(e==null)return{};if("~standard"in e){const n=e["~standard"].validate(t);if(n instanceof Promise)throw new Eu("Async validation not supported");if(n.issues)throw new Eu(JSON.stringify(n.issues,void 0,2),{cause:n});return n.value}return"parse"in e?e.parse(t):typeof e=="function"?e(t):{}}function fE({pathname:e,routesById:t,processedTree:n}){const o=Object.create(null),s=wr(e);let a;const l=j_(s,n,!0);return l&&(a=l.route,Object.assign(o,l.rawParams)),{matchedRoutes:l?.branch||[t.__root__],routeParam
9s:o,foundRoute:a}}function mE({search:e,dest:t,destRoutes:n,_includeValidateSearch:o}){return gE(n)(e,t,o??!1)}function gE(e){let t,n;const o=[];for(const a of e){const l=a.options;if("search"in l)l.search?.middlewares&&o.push(...l.search.middlewares);else if(l.preSearchFilters||l.postSearchFilters){const h=({search:p,next:f})=>{const m=f(l.preSearchFilters?l.preSearchFilters.reduce((y,v)=>v(y),p):p);return l.postSearchFilters?l.postSearchFilters.reduce((y,v)=>v(y),m):m};o.push(h)}const c=l.validateSearch;if(c){const h=({search:p,next:f,meta:m})=>{const y=f(p);if(n)try{const v=hu(c,y);if(m&&v)for(const k in v)k in y||(m.defaulted||=new Map).set(k,v[k]);return{...y,...v}}catch{}return y};o.push(h)}}const s=(a,l,c)=>{if(a>=o.length){if(!t.search)return{};if(t.search===!0)return l;const p=Do(t.search,l);return c&&(c.explicit=p),p}const h=(p,f)=>{if(f){const m=c||{};return{search:s(a+1,p,m),meta:m}}return s(a+1,p,c)};return o[a]({search:l,next:h,meta:c})};return function(l,c,h){return t=c,n=h,s(0,l)}}function vE(e,t){if(e!=="root")for(let n=t.length-1;n>=0;n--){const o=t[n];if(o.children)return o.id}return Bo}function kv(e,t){const n=e.options.params?.parse??e.options.parseParams;if(n){const o=n(t);if(o===!1)throw new Error("Route params.parse returned false for a matched route");Object.assign(t,o)}}function yE(){try{return sessionStorage}catch{return}}const wE="tsr-scroll-restoration-v1_3",Ow=yE();function bE(){try{return JSON.parse(Ow?.getItem("tsr-scroll-restoration-v1_3")||"{}")}catch{return{}}}function SE(){try{Ow?.setItem(wE,JSON.stringify(zi))}catch{}}const zi=bE(),Av="data-scroll-restoration-id",kE=e=>e.state.__TSR_key||e.href;function AE(e){const t=e.getAttribute(Av);if(t)return`[${Av}="${t}"]`;let n="",o=e,s;for(;s=o.parentNode;){let a=1,l=o;for(;l=l.previousElementSibling;)a++;const c=`${o.localName}:nth-child(${a})`;n=n?`${c} > ${n}`:c,o=s}return n}let $l=!1;const Ni="window";function Vh(e){try{return typeof e=="function"?e():document.querySelector(e)}catch{}}function xv(e){const t=[];for(const n of e){if(n===Ni)continue;const o=Vh(n);o&&t.push(o)}return t}function xE(e,t){const n=e.options.scrollRestoration,o=e._scroll;n&&(o.restoring=!0);const s=e.options.getScrollRestorationKey||kE,a=new Map,l=(p,f,m)=>{const y=a.get(p)||{};y.scrollX=f,y.scrollY=m,a.set(p,y)},c=p=>{if(!($l||!o.restoring))if(p.target===document)l(Ni,scrollX,scrollY);else{const f=p.target;l(f,f.scrollLeft,f.scrollTop)}},h=p=>{if(!o.restoring)return;const f=zi[p]||={};for(const[m,y]of a)m===Ni?f[Ni]=y:m.isConnected&&(f[AE(m)]=y)};n&&!o.restoration&&(o.restoration=!0,$l=!1,history.scrollRestoration="manual",document.addEventListener("scroll",c,!0),e.subscribe("onBeforeLoad",p=>{p.fromLocation&&h(s(p.fromLocation)),a.clear()}),addEventListener("pagehide",()=>{h(s(e.stores.resolvedLocation.get()??e.stores.location.get())),SE()})),!o.reset&&(o.reset=!0,e.subscribe("onRendered",p=>{const f=e.options.scrollRestorationBehavior,m=e.options.scrollToTopSelectors,y=o.next;let v;if(a.clear(),y||(o.next=!0),typeof e.options.scrollRestoration=="function"&&!e.options.scrollRestoration({location:e.latestLocation}))return;const k=s(p.toLocation),S=p.fromLocation&&s(p.fromLocation);if(o.restoring&&S&&S!==k){const b=zi[S];if(b){let x=zi[k];for(const E in b){if(E===Ni){if(y)continue}else{const P=Vh(E);if(!P||y&&m&&(v??=xv(m),v.includes(P)))continue}x||(x=zi[k]={}),x[E]??=b[E]}}}$l=!0;try{const b=p.toLocation.hash,x=p.toLocation.state.__hashScrollIntoViewOptions??!0;let E=!1;if(y){const P=$h.get(p.toLocation),I=b&&x&&(P==="PUSH"||P==="REPLACE"),O=o.restoring?zi[k]:void 0;if(O)for(const D in O){const{scrollX:M,scrollY:$}=O[D];if(D===Ni){if(I)continue;scrollTo({top:$,left:M,behavior:f}),E=!0}else{const W=Vh(D);W&&(W.scrollLeft=M,W.scrollTop=$)}}if(!E&&!b){const D={top:0,left:0,behavior:f};if(scrollTo(D),m){v??=xv(m);for(const M of v)M.scrollTo(D)}}}!E&&b&&x&&document.getElementById(b)?.scrollIntoView(x)}finally{$l=!1}}))}const Qn=Symbol.for("TSR_DEFERRED_PROMISE");function _E(e,t){const n=e;return n[Qn]||(n[Qn]={status:"pending"},n.then(o=>{n[Qn].status="success",n[Qn].data=o}).catch(o=>{n[Qn].status="error",n[Qn].error={data:cE(o),__isServerError:!0}})),n}const EE="Error preloading route! âï¸";function Lw(e,t){if(e)return typeof e=="string"?e:e[t]}function TE(e){return e?.scriptFormat??"module"}function PE(e,t,n){const o=CE(t),s=Lw(n,"script")??o.crossOrigin;return{...TE(e)==="iife"?{rel:"preload",as:"script"}:{rel:"modulepreload"},href:o.href,...s?{crossOrigin:s}:{}}}function CE(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}function Vl(e,t){if(t.length===0)return;if(t.length===1){e.push(t[0]);return}const n=new Set;for(const o of t){const s=JSON.stringify(o);n.has(s)||(n.add(s),e.push(o))}}function IE(e){return typeof e=="string"?{href:e,crossOrigin:void 0}:e}var zw=class{get to(){return this._to}get id(){return this._id}get path(){return this._path}get fullPath(){return this._fullPath}constructor(e){if(this.init=t=>{this.originalIndex=t.originalIndex;const n=this.options,o=!n?.path&&!n?.id;this.parentRoute=this.options.getParentRoute?.(),o?this._path=Bo:this.parentRoute||Xt();let s=o?Bo:n?.path;s&&s!=="/"&&(s=kw(s));const a=n?.id||s;let l=o?Bo:cu([this.parentRoute.id==="__root__"?"":this.parentRoute.id,a]);s==="__root__"&&(s="/"),l!=="__root__"&&(l=cu(["/",l]));const c=l==="__root__"?"/":cu([this.parentRoute.fullPath,s]);this._path=s,this._id=l,this._fullPath=c,this._to=wr(c)},this.addChildren=t=>this._addFileChildren(t),this._addFileChildren=t=>(Array.isArray(t)&&(this.children=t),typeof t=="object"&&t!==null&&(this.children=Object.values(t)),this),this._addFileTypes=()=>this,this.updateLoader=t=>(Object.assign(this.options,t),this),this.update=t=>(Object.assign(this.options,t),this),this.lazy=t=>(this.lazyFn=t,this),this.redirect=t=>_w({from:this.fullPath,...t}),this.options=e||{},this.isRoot=!e?.getParentRoute,e?.id&&e?.path)throw new Error("Route cannot have both an 'id' and a 'path' option.")}},RE=class extends zw{constructor(e){super(e)}},OE=(e=>(e[e.AggregateError=1]="AggregateError",e[e.ArrowFunction=2]="ArrowFunction",e[e.ErrorPrototypeStack=4]="ErrorPrototypeStack",e[e.ObjectAssign=8]="Ob
9jectAssign",e[e.BigIntTypedArray=16]="BigIntTypedArray",e[e.RegExp=32]="RegExp",e))(OE||{}),Ul="__SEROVAL_REFS__",Bl=new Map;typeof globalThis<"u"?Object.defineProperty(globalThis,Ul,{value:Bl,configurable:!0,writable:!1,enumerable:!1}):typeof window<"u"?Object.defineProperty(window,Ul,{value:Bl,configurable:!0,writable:!1,enumerable:!1}):typeof self<"u"?Object.defineProperty(self,Ul,{value:Bl,configurable:!0,writable:!1,enumerable:!1}):typeof global<"u"&&Object.defineProperty(global,Ul,{value:Bl,configurable:!0,writable:!1,enumerable:!1});var LE=()=>{let e={p:0,s:0,f:0};return e.p=new Promise((t,n)=>{e.s=t,e.f=n}),e},zE=(e,t)=>{e.s(t),e.p.s=1,e.p.v=t},NE=(e,t)=>{e.f(t),e.p.s=2,e.p.v=t};LE.toString();zE.toString();NE.toString();var ME=()=>{let e=[],t=[],n=!0,o=!1,s=0,a=(h,p,f)=>{for(f=0;f<s;f++)t[f]&&t[f][p](h)},l=(h,p,f,m)=>{for(p=0,f=e.length;p<f;p++)m=e[p],!n&&p===f-1?h[o?"return":"throw"](m):h.next(m)},c=(h,p)=>(n&&(p=s++,t[p]=h),l(h),()=>{n&&(t[p]=t[s],t[s--]=void 0)});return{__SEROVAL_STREAM__:!0,on:h=>c(h),next:h=>{n&&(e.push(h),a(h,"next"))},throw:h=>{n&&(e.push(h),a(h,"throw"),n=!1,o=!1,t.length=0)},return:h=>{n&&(e.push(h),a(h,"return"),n=!1,o=!0,t.length=0)}}},DE=e=>{let t=atob(e),n=t.length,o=new Uint8Array(n);for(let s=0;s<n;s++)o[s]=t.charCodeAt(s);return o.buffer};DE.toString();function Sa(){return ME()}var jE=(e=>(e[e.Vanilla=1]="Vanilla",e[e.Cross=2]="Cross",e))(jE||{});var FE=()=>T;FE.toString();function $E(e){return{tag:"$TSR/t/"+e.key,test:e.test,parse:{sync(t,n,o){return{v:n.parse(e.toSerializable(t))}},async async(t,n,o){return{v:await n.parse(e.toSerializable(t))}},stream(t,n,o){return{v:n.parse(e.toSerializable(t))}}},serialize:void 0,deserialize(t,n,o){return e.fromSerializable(n.deserialize(t.v))}}}var VE=class{constructor(e,t){this.stream=e,this.hint=t?.hint??"binary"}};const Tu=globalThis.Buffer,Nw=!!Tu&&typeof Tu.from=="function";function Mw(e){if(e.length===0)return"";if(Nw)return Tu.from(e).toString("base64");const t=32768,n=[];for(let o=0;o<e.length;o+=t){const s=e.subarray(o,o+t);n.push(String.fromCharCode.apply(null,s))}return btoa(n.join(""))}function Dw(e){if(e.length===0)return new Uint8Array(0);if(Nw){const o=Tu.from(e,"base64");return new Uint8Array(o.buffer,o.byteOffset,o.byteLength)}const t=atob(e),n=new Uint8Array(t.length);for(let o=0;o<t.length;o++)n[o]=t.charCodeAt(o);return n}const qs=Object.create(null),Gs=Object.create(null),UE=e=>new ReadableStream({start(t){e.on({next(n){try{t.enqueue(Dw(n))}catch{}},throw(n){t.error(n)},return(){try{t.close()}catch{}}})}}),BE=new TextEncoder,WE=e=>new ReadableStream({start(t){e.on({next(n){try{typeof n=="string"?t.enqueue(BE.encode(n)):t.enqueue(Dw(n.$b64))}catch{}},throw(n){t.error(n)},return(){try{t.close()}catch{}}})}}),qE="(s=>new ReadableStream({start(c){s.on({next(b){try{const d=atob(b),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}catch(_){}},throw(e){c.error(e)},return(){try{c.close()}catch(_){}}})}}))",GE="(s=>{const e=new TextEncoder();return new ReadableStream({start(c){s.on({next(v){try{if(typeof v==='string'){c.enqueue(e.encode(v))}else{const d=atob(v.$b64),a=new Uint8Array(d.length);for(let i=0;i<d.length;i++)a[i]=d.charCodeAt(i);c.enqueue(a)}}catch(_){}},throw(x){c.error(x)},return(){try{c.close()}catch(_){}}})}})})";function _v(e){const t=Sa(),n=e.getReader();return(async()=>{try{for(;;){const{done:o,value:s}=await n.read();if(o){t.return(void 0);break}t.next(Mw(s))}}catch(o){t.throw(o)}finally{n.releaseLock()}})(),t}function Ev(e){const t=Sa(),n=e.getReader(),o=new TextDecoder("utf-8",{fatal:!0});return(async()=>{try{for(;;){const{done:s,value:a}=await n.read();if(s){try{const l=o.decode();l.length>0&&t.next(l)}catch{}t.return(void 0);break}try{const l=o.decode(a,{stream:!0});l.length>0&&t.next(l)}catch{t.next({$b64:Mw(a)})}}}catch(s){t.throw(s)}finally{n.releaseLock()}})(),t}const HE={tag:"tss/RawStream",extends:[{tag:"tss/RawStreamFactory",test(e){return e===qs},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return qE},deserialize(e,t,n){return qs}},{tag:"tss/RawStreamFactoryText",test(e){return e===Gs},parse:{sync(e,t,n){return{}},async async(e,t,n){return{}},stream(e,t,n){return{}}},serialize(e,t,n){return GE},deserialize(e,t,n){return Gs}}],test(e){return e instanceof VE},parse:{sync(e,t,n){const o=e.hint==="text"?Gs:qs;return{hint:t.parse(e.hint),factory:t.parse(o),stream:t.parse(Sa())}},async async(e,t,n){const o=e.hint==="text"?Gs:qs,s=e.hint==="text"?Ev(e.stream):_v(e.stream);return{hint:await t.parse(e.hint),factory:await t.parse(o),stream:await t.parse(s)}},stream(e,t,n){const o=e.hint==="text"?Gs:qs,s=e.hint==="text"?Ev(e.stream):_v(e.stream);return{hint:t.parse(e.hint),factory:t.parse(o),stream:t.parse(s)}}},serialize(e,t,n){return"("+t.serialize(e.factory)+")("+t.serialize(e.stream)+")"},deserialize(e,t,n){const o=t.deserialize(e.stream);return t.deserialize(e.hint)==="text"?WE(o):UE(o)}};function KE(e){return{tag:"tss/RawStream",test:()=>!1,parse:{}
9,serialize(){throw new Error("RawStreamDeserializePlugin.serialize should not be called. Client only deserializes.")},deserialize(t,n,o){return e(typeof n?.deserialize=="function"?n.deserialize(t.streamId):t.streamId)}}}const YE={tag:"$TSR/Error",test(e){return e instanceof Error},parse:{sync(e,t){return{message:t.parse(e.message)}},async async(e,t){return{message:await t.parse(e.message)}},stream(e,t){return{message:t.parse(e.message)}}},serialize(e,t){return"new Error("+t.serialize(e.message)+")"},deserialize(e,t){return new Error(t.deserialize(e.message))}};var no={},jw=e=>new ReadableStream({start:t=>{e.on({next:n=>{try{t.enqueue(n)}catch{}},throw:n=>{t.error(n)},return:()=>{try{t.close()}catch{}}})}}),JE={tag:"seroval-plugins/web/ReadableStreamFactory",test(e){return e===no},parse:{sync(){return no},async async(){return await Promise.resolve(no)},stream(){return no}},serialize(){return jw.toString()},deserialize(){return no}};function Tv(e){let t=Sa(),n=e.getReader();async function o(){try{let s=await n.read();s.done?t.return(s.value):(t.next(s.value),await o())}catch(s){t.throw(s)}}return o().catch(()=>{}),t}var QE={tag:"seroval/plugins/web/ReadableStream",extends:[JE],test(e){return typeof ReadableStream>"u"?!1:e instanceof ReadableStream},parse:{sync(e,t){return{factory:t.parse(no),stream:t.parse(Sa())}},async async(e,t){return{factory:await t.parse(no),stream:await t.parse(Tv(e))}},stream(e,t){return{factory:t.parse(no),stream:t.parse(Tv(e))}}},serialize(e,t){return"("+t.serialize(e.factory)+")("+t.serialize(e.stream)+")"},deserialize(e,t){let n=t.deserialize(e.stream);return jw(n)}},XE=QE;const ZE=[YE,HE,XE];function eT(){return[...Ap()?.serializationAdapters?.map($E)??[],...ZE]}var Pv=new TextDecoder,tT=new Uint8Array(0),Cv=16*1024*1024,Iv=32*1024*1024,Rv=1024,Ov=1e5;function nT(e){const t=new Map,n=new Map,o=new Set;let s=!1,a=null,l=0,c;const h=new ReadableStream({start(m){c=m},cancel(){s=!0;try{a?.cancel()}catch{}t.forEach(m=>{try{m.error(new Error("Framed response cancelled"))}catch{}}),t.clear(),n.clear(),o.clear()}});function p(m){const y=n.get(m);if(y)return y;if(o.has(m))return new ReadableStream({start(k){k.close()}});if(n.size>=Rv)throw new Error(`Too many raw streams in framed response (max ${Rv})`);const v=new ReadableStream({start(k){t.set(m,k)},cancel(){o.add(m),t.delete(m),n.delete(m)}});return n.set(m,v),v}function f(m){return p(m),t.get(m)}return(async()=>{const m=e.getReader();a=m;const y=[];let v=0;function k(){if(v<9)return null;const b=y[0];if(b.length>=9)return{type:b[0],streamId:(b[1]<<24|b[2]<<16|b[3]<<8|b[4])>>>0,length:(b[5]<<24|b[6]<<16|b[7]<<8|b[8])>>>0};const x=new Uint8Array(9);let E=0,P=9;for(let I=0;I<y.length&&P>0;I++){const O=y[I],D=Math.min(O.length,P);x.set(O.subarray(0,D),E),E+=D,P-=D}return{type:x[0],streamId:(x[1]<<24|x[2]<<16|x[3]<<8|x[4])>>>0,length:(x[5]<<24|x[6]<<16|x[7]<<8|x[8])>>>0}}function S(b){if(b===0)return tT;const x=y[0];if(x&&x.length>=b){const O=x.subarray(0,b);return x.length===b?y.shift():y[0]=x.subarray(b),v-=b,O}const E=new Uint8Array(b);let P=0,I=b;for(;I>0&&y.length>0;){const O=y[0];if(!O)break;const D=Math.min(O.length,I);E.set(O.subarray(0,D),P),P+=D,I-=D,D===O.length?y.shift():y[0]=O.subarray(D)}return v-=b,E}try{for(;;){const{done:b,value:x}=await m.read();if(s||b)break;if(x){if(v+x.length>Iv)throw new Error(`Framed response buffer exceeded ${Iv} bytes`);for(y.push(x),v+=x.length;;){const E=k();if(!E)break;const{type:P,streamId:I,length:O}=E;if(P!==fr.JSON&&P!==fr.CHUNK&&P!==fr.END&&P!==fr.ERROR)throw new Error(`Unknown frame type: ${P}`);if(P===fr.JSON){if(I!==0)throw new Error("Invalid JSON frame streamId (expected 0)")}else if(I===0)throw new Error("Invalid raw frame streamId (expected non-zero)");if(O>Cv)throw new Error(`Frame payload too large: ${O} bytes (max ${Cv})`);const D=9+O;if(v<D)break;if(++l>Ov)throw new Error(`Too many frames in framed response (max ${Ov})`);S(9);const M=S(O);switch(P){case fr.JSON:try{c.enqueue(Pv.decode(M))}catch{}break;case fr.CHUNK:{const $=f(I);$&&$.enqueue(M);break}case fr.END:{const $=f(I);if(o.add(I),$){try{$.close()}catch{}t.delete(I)}break}case fr.ERROR:{const $=f(I);if(o.add(I),$){const W=Pv.decode(M);$.error(new Error(W)),t.delete(I)}break}}}}}if(v!==0)throw new Error("Incomplete frame at end of framed response");try{c.close()}catch{}t.forEach(b=>{try{b.close()}catch{}}),t.clear()}catch(b){try{c.error(b)}catch{}t.forEach(x=>{try{x.error(b)}catch{}}),t.clear()}finally{try{m.releaseLock()}catch{}a=null}})(),{getOrCreateStream:p,jsonChunks:h}}const br=Symbol.asyncIterator,Fw=Symbol.hasInstance,Bi=Symbol.isConcatSpreadable,Sr=Symbol.iterator,$w=Symbol.match,Vw=Symbol.matchAll,Uw=Symbol.replace,Bw=Symbol.search,Ww=Symbol.species,qw=Symbol.split,Gw=Symbol.toPrimitive,Wi=Symbol.toStringTag,Hw=Symbol.unscopables,Kw={[br]:0,[Fw]:1,[Bi]:2,[Sr]:3,[$w]:4,[Vw]:5,[Uw]:6,[Bw]:7,[Ww]:8,[qw]:9,[Gw]:10,[Wi]:11,[Hw]:12},rT={0:br,1:Fw,2:Bi,3:Sr,4:$w,5:Vw,6:Uw,7:Bw,8:Ww,9:qw,10:Gw,11:Wi,12:Hw},oT={2:!0,3:!1,1:void 0,0:null,4:-0,5:Number.POSITIVE_INFINITY,6:Number.NEGATIVE_INFINITY,7:NaN},iT={0:"Error",1:"EvalError",2:"RangeError",3:"ReferenceError",4:"SyntaxError",5:"TypeError",6:"URIError"},sT={0:Error,1:EvalError,2:RangeError,3:ReferenceError,4:SyntaxError,5:TypeError,6:URIError};function Re(e,t,n,o,s,a,l,c,h,p,f,m){return{t:e,i:t,s:n,c:o,m:s,p:a,e:l,a:c,f:h,b:p,o:f,l:m}}function co(e){return Re(2,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}const Yw=co(2),Jw=co(3),aT=co(1),lT=co(0),uT=co(4),cT=co(5),dT=co(6),hT=co(7),pT=64,fT=/[\x00-\x07\x0b\x0e-\x1f<\u2028\u2029\ud800-\udfff]/;function mT(e){switch(e){case'"':return'\\"';case"\\":return"\\\\";case` 10`:return"\\n";case"\r":return"\\r";case"\b":return"\\b";case" ":return"\\t";case"\f":return"\\f";case"<":return"\\x3C";case"\u2028":return"\\u2028";case"\u2029":return"\\u2029";default:return}}function Yo(e){if(e.length>=pT&&!fT.test(e))return JSON.stringify(e).slice(1,-1);let t="",n=0,o;for(let s=0,a=e.length;s<a;s++)o=mT(e[s]),o&&(t+=e.slice(n,s)+o,n=s+1);return n===0?t=e:t+=e.slice(n),t}function gT(e){switch(e){case"\\\\":return"\\";case'\\"':return'"';case"\\n":return` 11`;case"\\r":return"\r";case"\\b":return"\b";case"\\t":return" ";case"\\f":return"\f";case"\\x3C":return"<";case"\\u2028":return"\u2028";case"\\u2029":return"\u2029";default:return e}}function ho(e){return typeof e=="string"&&!e.includes("\\")?e:e.replace(/(\\\\|\\"|\\n|\\r|\\b|\\t|\\f|\\u2028|\\u2029|\\x3C)/g,gT)}
11const vT={parsing:1,serialization:2,deserialization:3};function yT(e){return`Seroval Error (step: ${vT[e]})`}const wT=(e,t)=>yT(e);var Qw=class extends Error{constructor(e,t){super(wT(e)),this.cause=t}},Lv=class extends Qw{constructor(e){super("parsing",e)}},bT=class extends Qw{constructor(e){super("deserialization",e)}};function _r(e){return`Seroval Error (specific: ${e})`}var Jo=class extends Error{constructor(e){super(_r(1)),this.value=e}},Tp=class extends Error{constructor(e){super(_r(2))}},ST=class extends Error{constructor(e){super(_r(3))}},Uu=class extends Error{constructor(e){super(_r(4))}},kT=class extends Error{constructor(e){super(_r(5)),this.value=e}},AT=class extends Error{constructor(e){super(_r(6))}},xT=class extends Error{constructor(e){super(_r(7))}},wt=class extends Error{constructor(e){super(_r(8))}},Xw=class extends Error{constructor(e){super(_r(9))}};const Wl="__SEROVAL_REFS__",Zw=new Map,Fi=new Map;function eb(e){return Zw.has(e)}function _T(e){return Fi.has(e)}function ET(e){if(eb(e))return Zw.get(e);throw new kT(e)}function TT(e){if(_T(e))return Fi.get(e);throw new AT(e)}typeof globalThis<"u"?Object.defineProperty(globalThis,Wl,{value:Fi,configurable:!0,writable:!1,enumerable:!1}):typeof window<"u"?Object.defineProperty(window,Wl,{value:Fi,configurable:!0,writable:!1,enumerable:!1}):typeof self<"u"?Object.defineProperty(self,Wl,{value:Fi,configurable:!0,writable:!1,enumerable:!1}):typeof global<"u"&&Object.defineProperty(global,Wl,{value:Fi,configurable:!0,writable:!1,enumerable:!1});function Pp(e){return e instanceof EvalError?1:e instanceof RangeError?2:e instanceof ReferenceError?3:e instanceof SyntaxError?4:e instanceof TypeError?5:e instanceof URIError?6:0}function PT(e){const t=iT[Pp(e)];return e.name!==t?{name:e.name}:e.constructor.name!==t?{name:e.constructor.name}:{}}function tb(e,t){let n=PT(e);const o=Object.getOwnPropertyNames(e);for(let s=0,a=o.length,l;s<a;s++)l=o[s],l!=="name"&&l!=="message"&&(l==="stack"?t&4&&(n=n||{},n[l]=e[l]):(n=n||{},n[l]=e[l]));return n}function nb(e){return Object.isFrozen(e)?3:Object.isSealed(e)?2:Object.isExtensible(e)?0:1}function CT(e){switch(e){case Number.POSITIVE_INFINITY:return cT;case Number.NEGATIVE_INFINITY:return dT}return e!==e?hT:Object.is(e,-0)?uT:Re(0,void 0,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function rb(e){return Re(1,void 0,Yo(e),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function IT(e){return Re(3,void 0,""+e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function RT(e){return Re(4,e,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function OT(e,t){const n=t.valueOf();return Re(5,e,n!==n?"":t.toISOString(),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function Jr(e,t,n){return Re(36,e,n.toString(),t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function LT(e,t){return Re(6,e,void 0,Yo(t.source),t.flags,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function zT(e,t){return Re(17,e,Kw[t],void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function NT(e,t){return Re(18,e,Yo(ET(t)),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function MT(e,t,n){return Re(25,e,n,Yo(t),void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function DT(e,t,n){return Re(9,e,void 0,void 0,void 0,void 0,void 0,n,void 0,void 0,nb(t),void 0)}function jT(e,t){return Re(21,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}const Cp=1e6;function FT(e,t,n){if(t.length>Cp)throw new Jo(t);return Re(15,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.length)}function $T(e,t,n){if(t.length>Cp)throw new Jo(t);return Re(16,e,void 0,t.constructor.name,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.length)}function VT(e,t,n){if(t.byteLength>Cp)throw new Jo(t);return Re(20,e,void 0,void 0,void 0,void 0,void 0,void 0,n,t.byteOffset,void 0,t.byteLength)}function UT(e,t,n){return Re(13,e,Pp(t),void 0,Yo(t.message),n,void 0,void 0,void 0,void 0,void 0,void 0)}function BT(e,t,n){return Re(14,e,Pp(t),void 0,Yo(t.message),n,void 0,void 0,void 0,void 0,void 0,void 0)}function WT(e,t){return Re(7,e,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,void 0)}function qT(e,t){return Re(28,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function GT(e,t){return Re(30,void 0,void 0,void 0,void 0,void 0,void 0,[e,t],void 0,void 0,void 0,void 0)}function HT(e,t,n){return Re(31,e,void 0,void 0,void 0,void 0,void 0,n,t,void 0,void 0,void 0)}function KT(e,t){return Re(32,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function YT(e,t){return Re(33,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function JT(e,t){return Re(34,e,void 0,void 0,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0)}function QT(e,t,n,o){return Re(35,e,n,void 0,void 0,void 0,void 0,t,void 0,void 0,void 0,o)}var XT=class{constructor(e,t){this.value=e,this.replacement=t}};const Ip=()=>{const e={p:0,s:0,f:0};return e.p=new Promise((t,n)=>{e.s=t,e.f=n}),e},ZT=e=>t=>()=>{let n=0;const o={[e](){return o},next(){if(n>t.d)return{done:!0,value:void 0};const s=n++,a=t.v[s];if(s===t.t)throw a;return{done:s===t.d,value:a}}};return o},eP=(e,t)=>n=>()=>{let o=0,s=-1,a=!1;const l=[],c=[],h={finalize(f=0,m=c.length){for(;f<m;f++)c[f].s({done:!0,value:void 0})}};n.on({next(f){const m=c.shift();m&&m.s({done:!1,value:f}),l.push(f)},throw(f){const m=c.shift();m&&m.f(f),h.finalize(),s=l.length,a=!0,l.push(f)},return(f){const m=c.shift();m&&m.s({done:!0,value:f}),h.finalize(),s=l.length,l.push(f)}});const p={[e](){return p},next(){if(s===-1){const y=o++;if(y>=l.length){const v=t();return c.push(v),v.p}return{done:!1,value:l[y]}}if(o>s)return{done:!0,value:void 0};const f=o++,m=l[f];if(f!==s)return{done:!1,value:m};if(a)throw m;return{done:!0,value:m}}};return p},tP=e=>{const t=atob(e),n=t.length,o=new Uint8Array(n);for(let s=0;s<n;s++)o[s]=t.charCodeAt(s);return o.buffer};var ob=class{constructor(e,t,n){this.v=e,this.t=t,this.d=n}};function ib(e){return e instanceof ob}
11function sb(e,t,n){return new ob(e,t,n)}function nP(e){const t=[];let n=-1,o=-1;const s=e[Sr]();for(;;)try{const a=s.next();if(t.push(a.value),a.done){o=t.length-1;break}}catch(a){n=t.length,o=n,t.push(a);break}return sb(t,n,o)}const rP=ZT(Sr);function oP(e){return rP(e)}const iP={},sP={},aP={0:{},1:{},2:{},3:{},4:{},5:{}};function ab(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function lP(e,t){ab(e,t),t.add(e)}function Hs(e,t,n){ab(e,t),t.set(e,n)}function $i(e,t,n){if(typeof e=="function"?e===t:e.has(t))return arguments.length<3?t:n;throw new TypeError("Private element is not present on this object")}function De(e,t){return e.get($i(e,t))}function xi(e,t,n){return e.set($i(e,t),n),n}var Vi=new WeakMap,gr=new WeakMap,vr=new WeakMap,pu=new WeakMap,On=new WeakMap,Ks=new WeakSet,lb=class{constructor(){lP(this,Ks),Hs(this,Vi,[]),Hs(this,gr,[]),Hs(this,vr,!0),Hs(this,pu,!1),Hs(this,On,0)}on(e){let t=De(vr,this),n=0;if(t){for(;n<De(On,this)&&De(gr,this)[n];n++);if(n===De(On,this)){var o;xi(On,this,(o=De(On,this),o++,o))}De(gr,this)[n]=e}return $i(Ks,this,uP).call(this,e),()=>{if(De(vr,this)&&t){for(t=!1,De(gr,this)[n]=void 0;De(On,this)>0&&!De(gr,this)[De(On,this)-1];){var s;xi(On,this,(s=De(On,this),s--,s))}De(gr,this).length=De(On,this)}}}next(e){De(vr,this)&&(De(Vi,this).push(e),$i(Ks,this,rh).call(this,e,"next"))}throw(e){De(vr,this)&&(De(Vi,this).push(e),$i(Ks,this,rh).call(this,e,"throw"),xi(vr,this,!1),xi(pu,this,!1),De(gr,this).length=0)}return(e){De(vr,this)&&(De(Vi,this).push(e),$i(Ks,this,rh).call(this,e,"return"),xi(vr,this,!1),xi(pu,this,!0),De(gr,this).length=0)}};function rh(e,t){for(let o=0;o<De(On,this);o++){var n;(n=De(gr,this)[o])===null||n===void 0||n[t](e)}}function uP(e){for(let t=0,n=De(Vi,this).length;t<n;t++){const o=De(Vi,this)[t];!De(vr,this)&&t===n-1?e[De(pu,this)?"return":"throw"](o):e.next(o)}}function ub(e){return e instanceof lb}function cb(){return new lb}function cP(e,t){const n=cb(),o=e[br]();let s=!1,a=!1;async function l(){try{for(;!s;){const c=await o.next();if(c.done){a=!0,n.return(c.value);break}n.next(c.value)}}catch(c){a=!0,n.throw(c)}}return l().catch(()=>{}),n}const dP=eP(br,Ip);function hP(e){return dP(e)}async function pP(e){try{return[1,await e]}catch(t){return[0,t]}}function fP(e,t){var n;return{plugins:t.plugins,mode:e,marked:new Set,features:127^(t.disabledFeatures||0),refs:t.refs||new Map,depthLimit:t.depthLimit||1e3,compactArrayBufferViews:(n=t.compactArrayBufferViews)!==null&&n!==void 0?n:!1}}function fu(e,t){e.marked.add(t)}function mP(e,t){const n=e.refs.size;return e.refs.set(t,n),n}function Bu(e,t){const n=e.refs.get(t);return n!=null?(fu(e,n),{type:1,value:RT(n)}):{type:0,value:mP(e,t)}}function Rp(e,t){const n=Bu(e,t);return n.type===1?n:eb(t)?{type:2,value:NT(n.value,t)}:n}function $o(e,t){const n=Rp(e,t);if(n.type!==0)return n.value;if(t in Kw)return zT(n.value,t);throw new Jo(t)}function Wu(e,t){const n=Bu(e,aP[t]);return n.type===1?n.value:Re(26,n.value,t,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0,void 0)}function gP(e){const t=Bu(e,iP);return t.type===1?t.value:Re(27,t.value,void 0,void 0,void 0,void 0,void 0,void 0,$o(e,Sr),void 0,void 0,void 0)}function vP(e){const t=Bu(e,sP);return t.type===1?t.value:Re(29,t.value,void 0,void 0,void 0,void 0,void 0,[Wu(e,1),$o(e,br)],void 0,void 0,void 0,void 0)}function yP(e,t,n,o){return Re(n?11:10,e,void 0,void 0,void 0,o,void 0,void 0,void 0,void 0,nb(t),void 0)}function wP(e,t,n,o){return Re(8,t,void 0,void 0,void 0,void 0,{k:n,v:o},void 0,Wu(e,0),void 0,void 0,void 0)}function Op(e,t){if(!e.compactArrayBufferViews)return t;const n=new Uint8Array(t.buffer,t.byteOffset,t.byteLength).slice().buffer,o=t.constructor;return new o(n)}function bP(e){if(typeof Buffer<"u")return Buffer.from(e).toString("base64");const t=new Uint8Array(e);if(typeof t.toBase64=="function")return t.toBase64();let n="";for(let o=0,s=t.length;o<s;o++)n+=String.fromCharCode(t[o]);return btoa(n)}function SP(e,t,n){return Re(19,t,bP(n),void 0,void 0,void 0,void 0,void 0,Wu(e,5),void 0,void 0,void 0)}function kP(e,t){return{base:fP(e,t),child:void 0}}var AP=class{constructor(e,t){this._p=e,this.depth=t}parse(e){return pt(this._p,this.depth,e)}};async function xP(e,t,n){const o=[];for(let s=0,a=n.length;s<a;s++)s in n?o[s]=await pt(e,t,n[s]):o[s]=0;return o}async function _P(e,t,n,o){return DT(n,o,await xP(e,t,o))}
11async function Lp(e,t,n){const o=Object.entries(n),s=[],a=[];for(let l=0,c=o.length;l<c;l++)s.push(Yo(o[l][0])),a.push(await pt(e,t,o[l][1]));return Sr in n&&(s.push($o(e.base,Sr)),a.push(qT(gP(e.base),await pt(e,t,nP(n))))),br in n&&(s.push($o(e.base,br)),a.push(GT(vP(e.base),await pt(e,t,cP(n))))),Wi in n&&(s.push($o(e.base,Wi)),a.push(rb(n[Wi]))),Bi in n&&(s.push($o(e.base,Bi)),a.push(n[Bi]?Yw:Jw)),{k:s,v:a}}async function oh(e,t,n,o,s){return yP(n,o,s,await Lp(e,t,o))}async function EP(e,t,n,o){return jT(n,await pt(e,t,o.valueOf()))}async function TP(e,t,n,o){return o=Op(e.base,o),FT(n,o,await pt(e,t,o.buffer))}async function PP(e,t,n,o){return o=Op(e.base,o),$T(n,o,await pt(e,t,o.buffer))}async function CP(e,t,n,o){return o=Op(e.base,o),VT(n,o,await pt(e,t,o.buffer))}async function zv(e,t,n,o){const s=tb(o,e.base.features);return UT(n,o,s?await Lp(e,t,s):void 0)}async function IP(e,t,n,o){const s=tb(o,e.base.features);return BT(n,o,s?await Lp(e,t,s):void 0)}async function RP(e,t,n,o){const s=[],a=[];for(const[l,c]of o.entries())s.push(await pt(e,t,l)),a.push(await pt(e,t,c));return wP(e.base,n,s,a)}async function OP(e,t,n,o){const s=[];for(const a of o.keys())s.push(await pt(e,t,a));return WT(n,s)}async function db(e,t,n,o){const s=e.base.plugins;if(s)for(let a=0,l=s.length;a<l;a++){const c=s[a];if(c.parse.async&&c.test(o))return MT(n,c.tag,await c.parse.async(o,new AP(e,t),{id:n}))}}async function LP(e,t,n,o){const[s,a]=await pP(o);return Re(12,n,s,void 0,void 0,void 0,void 0,void 0,await pt(e,t,a),void 0,void 0,void 0)}function zP(e,t,n,o,s){const a=[],l=n.on({next:c=>{fu(this.base,t),pt(this,e,c).then(h=>{a.push(KT(t,h))},h=>{s(h),l()})},throw:c=>{fu(this.base,t),pt(this,e,c).then(h=>{a.push(YT(t,h)),o(a),l()},h=>{s(h),l()})},return:c=>{fu(this.base,t),pt(this,e,c).then(h=>{a.push(JT(t,h)),o(a),l()},h=>{s(h),l()})}})}async function NP(e,t,n,o){return HT(n,Wu(e.base,4),await new Promise(zP.bind(e,t,n,o)))}async function MP(e,t,n,o){const s=[];for(let a=0,l=o.v.length;a<l;a++)s[a]=await pt(e,t,o.v[a]);return QT(n,s,o.t,o.d)}async function DP(e,t,n,o){if(Array.isArray(o))return _P(e,t,n,o);if(ub(o))return NP(e,t,n,o);if(ib(o))return MP(e,t,n,o);let s=o.constructor;if(s!==void 0&&typeof s!="function"){const c=Object.getPrototypeOf(o);s=c===null?void 0:c.constructor}if(s===XT)return pt(e,t,o.replacement);const a=await db(e,t,n,o);if(a)return a;switch(s){case Object:return oh(e,t,n,o,!1);case void 0:return oh(e,t,n,o,!0);case Date:return OT(n,o);case Error:case EvalError:case RangeError:case ReferenceError:case SyntaxError:case TypeError:case URIError:return zv(e,t,n,o);case Number:case Boolean:case String:case BigInt:return EP(e,t,n,o);case ArrayBuffer:return SP(e.base,n,o);case Int8Array:case Int16Array:case Int32Array:case Uint8Array:case Uint16Array:case Uint32Array:case Uint8ClampedArray:case Float32Array:case Float64Array:return TP(e,t,n,o);case DataView:return CP(e,t,n,o);case Map:return RP(e,t,n,o);case Set:return OP(e,t,n,o)}if(s===Promise||o instanceof Promise)return LP(e,t,n,o);const l=e.base.features;if(l&32&&s===RegExp)return LT(n,o);if(l&16)switch(s){case BigInt64Array:case BigUint64Array:return PP(e,t,n,o)}if(l&1&&typeof AggregateError<"u"&&(s===AggregateError||o instanceof AggregateError))return IP(e,t,n,o);if(l&64&&typeof Temporal<"u")switch(s){case Temporal.Instant:return Jr(n,0,o);case Temporal.Duration:return Jr(n,1,o);case Temporal.PlainDate:return Jr(n,2,o);case Temporal.PlainDateTime:return Jr(n,3,o);case Temporal.PlainMonthDay:return Jr(n,4,o);case Temporal.PlainTime:return Jr(n,5,o);case Temporal.PlainYearMonth:return Jr(n,6,o);case Temporal.ZonedDateTime:return Jr(n,7,o)}if(o instanceof Error)return zv(e,t,n,o);if(Sr in o||br in o)return oh(e,t,n,o,!!s);throw new Jo(o)}async function jP(e,t,n){const o=Rp(e.base,n);if(o.type!==0)return o.value;const s=await db(e,t,o.value,n);if(s)return s;throw new Jo(n)}async function pt(e,t,n){if(t>=e.base.depthLimit)throw new Xw(e.base.depthLimit);switch(typeof n){case"boolean":return n?Yw:Jw;case"undefined":return aT;case"string":return rb(n);case"number":return CT(n);case"bigint":return IT(n);case"object":if(n){const o=Rp(e.base,n);
11return o.type===0?await DP(e,t+1,o.value,n):o.value}return lT;case"symbol":return $o(e.base,n);case"function":return jP(e,t,n);default:throw new Jo(n)}}async function FP(e,t){try{return await pt(e,0,t)}catch(n){throw n instanceof Lv?n:new Lv(n)}}function hb(e,t){for(let n=0,o=t.length;n<o;n++){const s=t[n];e.has(s)||(e.add(s),s.extends&&hb(e,s.extends))}}function pb(e){if(e){const t=new Set;return hb(t,e),[...t]}}function $P(e){switch(e){case"Int8Array":return Int8Array;case"Int16Array":return Int16Array;case"Int32Array":return Int32Array;case"Uint8Array":return Uint8Array;case"Uint16Array":return Uint16Array;case"Uint32Array":return Uint32Array;case"Uint8ClampedArray":return Uint8ClampedArray;case"Float32Array":return Float32Array;case"Float64Array":return Float64Array;case"BigInt64Array":return BigInt64Array;case"BigUint64Array":return BigUint64Array;default:throw new xT(e)}}function VP(e){switch(e){case"constructor":case"__proto__":case"prototype":case"__defineGetter__":case"__defineSetter__":case"__lookupGetter__":case"__lookupSetter__":return!1;default:return!0}}function UP(e){switch(e){case br:case Bi:case Wi:case Sr:return!0;default:return!1}}const BP=1e6,WP=512,qP=1e4,GP=2e4;function fb(e,t){switch(t){case 3:return Object.freeze(e);case 1:return Object.preventExtensions(e);case 2:return Object.seal(e);default:return e}}const HP=1e3;function KP(e,t){var n,o;const s=(n=t.maxBase64Length)!==null&&n!==void 0?n:BP;if(!Number.isSafeInteger(s)||s<0)throw new RangeError("maxBase64Length must be a non-negative safe integer");const a=t.refs||new Map;return"types"in a||Object.assign(a,{types:new Map}),{mode:e,plugins:t.plugins,refs:a,features:(o=t.features)!==null&&o!==void 0?o:127^(t.disabledFeatures||0),depthLimit:t.depthLimit||HP,maxBase64Length:s}}function YP(e){return{mode:2,base:KP(2,e),child:void 0}}var JP=class{constructor(e,t){this._p=e,this.depth=t}deserialize(e){return Ue(this._p,this.depth,e)}};function mb(e,t){if(t<0||!Number.isFinite(t)||!Number.isInteger(t))throw new wt({t:4,i:t});if(e.refs.has(t))throw new Error("Conflicted ref id: "+t)}function gb(e){return!!e&&(typeof e=="object"||typeof e=="function")&&"then"in e&&typeof e.then=="function"}function QP(e,t,n){return mb(e.base,t),e.state.marked.has(t)&&e.base.refs.set(t,n),n}function XP(e,t,n){return mb(e.base,t),e.base.refs.set(t,n),n}function ut(e,t,n){return e.mode===1?QP(e,t,n):XP(e,t,n)}function Uh(e,t,n){if(Object.hasOwn(t,n))return t[n];throw new wt(e)}function ZP(e,t){return ut(e,t.i,TT(ho(t.s)))}function ao(e,t){if(!Array.isArray(t))throw new wt(e)}function eC(e,t,n){const o=n.a;ao(n,o);const s=o.length,a=ut(e,n.i,new Array(s));for(let l=0,c;l<s;l++)c=o[l],c&&(a[l]=Ue(e,t,c));return fb(a,n.o),a}function Nv(e,t,n){VP(t)?e[t]=n:Object.defineProperty(e,t,{value:n,configurable:!0,enumerable:!0,writable:!0})}function tC(e,t,n,o,s){if(typeof o=="string")Nv(n,ho(o),Ue(e,t,s));else{const a=Ue(e,t,o);switch(typeof a){case"string":Nv(n,a,Ue(e,t,s));break;case"symbol":UP(a)&&(n[a]=Ue(e,t,s));break;default:throw new wt(o)}}}function vb(e,t,n){e.base.refs.types.set(t,n)}function qu(e,t,n,o){if(e.base.refs.types.get(n)!==o)throw new wt(t)}function yb(e,t,n,o){const s=n.k;if(ao(n,s),ao(n,n.v),s.length>0)for(let a=0,l=n.v,c=s.length;a<c;a++)tC(e,t,o,s[a],l[a]);return o}function nC(e,t,n){const o=ut(e,n.i,n.t===10?{}:Object.create(null));return yb(e,t,n.p,o),fb(o,n.o),o}function rC(e,t){return ut(e,t.i,new Date(t.s))}function oC(e,t){if(!(e.base.features&64))throw new Tp(t);let n;switch(t.c){case 0:n=Temporal.Instant.from(t.s);break;case 1:n=Temporal.Duration.from(t.s);break;case 2:n=Temporal.PlainDate.from(t.s);break;case 3:n=Temporal.PlainDateTime.from(t.s);break;case 4:n=Temporal.PlainMonthDay.from(t.s);break;case 5:n=Temporal.PlainTime.from(t.s);break;case 6:n=Temporal.PlainYearMonth.from(t.s);break;case 7:n=Temporal.ZonedDateTime.from(t.s);break;default:throw new wt(t)}return ut(e,t.i,n)}function iC(e,t){if(e.base.features&32){const n=ho(t.c);if(n.length>GP)throw new wt(t);return ut(e,t.i,new RegExp(n,t.m))}throw new Tp(t)}function sC(e,t,n){const o=ut(e,n.i,new Set);ao(n,n.a);for(let s=0,a=n.a,l=a.length;s<l;s++)o.add(Ue(e,t,a[s]));return o}function aC(e,t,n){const o=ut(e,n.i,new Map);ao(n,n.e.k),ao(n,n.e.v);for(let s=0,a=n.e.k,l=n.e.v,c=a.length;s<c;s++)o.set(Ue(e,t,a[s]),Ue(e,t,l[s]));return o}function lC(e,t){if(typeof t.s!="string")throw new wt(t);if(t.s.length>e.base.maxBase64Length)throw new RangeError("ArrayBuffer exceeds maxBase64Length ("+e.base.maxBase64Length+")");const n=ho(t.s);let o;if(n.length<WP||typeof Buffer>"u")o=tP(n);else{const s=atob(n);o=new ArrayBuffer(s.length),Buffer.from(o).write(s,"latin1")}return ut(e,t.i,o)}function uC(e,t,n){var o;const s=$P(n.c),a=Ue(e,t,n.f);if(!(a instanceof ArrayBuffer))throw new wt(n);const l=(o=n.b)!==null&&o!==void 0?o:0;if(l<0||l>a.byteLength)throw new wt(n);return ut(e,n.i,new s(a,l,n.l))}function cC(e,t,n){var o;const s=Ue(e,t,n.f);if(!(s instanceof ArrayBuffer))throw new wt(n);const a=(o=n.b)!==null&&o!==void 0?o:0;if(a<0||a>s.byteLength)throw new wt(n);return ut(e,n.i,new DataView(s,a,n.l))}function wb(e,t,n,o){if(n.p){const s=yb(e,t,n.p,{});
11Object.defineProperties(o,Object.getOwnPropertyDescriptors(s))}return o}function dC(e,t,n){return wb(e,t,n,ut(e,n.i,new AggregateError([],ho(n.m))))}function hC(e,t,n){const o=Uh(n,sT,n.s);return wb(e,t,n,ut(e,n.i,new o(ho(n.m))))}function pC(e,t,n){const o=Ip(),s=ut(e,n.i,o.p),a=Ue(e,t,n.f);if(gb(a))throw new wt(n.f);return n.s?o.s(a):o.f(a),s}function fC(e,t,n){return ut(e,n.i,Object(Ue(e,t,n.f)))}function mC(e,t,n){const o=e.base.plugins;if(o){const s=ho(n.c);for(let a=0,l=o.length;a<l;a++){const c=o[a];if(c.tag===s)return ut(e,n.i,c.deserialize(n.s,new JP(e,t),{id:n.i}))}}throw new ST(n.c)}function gC(e,t){const n=ut(e,t.i,ut(e,t.s,Ip()).p);return vb(e,t.s,22),n}function vC(e,t,n){const o=e.base.refs.get(n.i);if(o){qu(e,n,n.i,22);const s=Ue(e,t,n.a[1]);if(gb(s))throw new wt(n.a[1]);n.t===23?o.s(s):o.f(s);return}throw new Uu("Promise")}function yC(e,t,n){Ue(e,t,n.a[0]);const o=Ue(e,t,n.a[1]);if(!ib(o))throw new wt(n.a[1]);return oP(o)}function wC(e,t,n){Ue(e,t,n.a[0]);const o=Ue(e,t,n.a[1]);if(!ub(o))throw new wt(n.a[1]);return hP(o)}function bC(e,t,n){const o=ut(e,n.i,cb());vb(e,n.i,31);const s=n.a;ao(n,s);const a=s.length;if(a)for(let l=0;l<a;l++)Ue(e,t,s[l]);return o}function SC(e,t,n){const o=e.base.refs.get(n.i);if(o){qu(e,n,n.i,31),o.next(Ue(e,t,n.f));return}throw new Uu("Stream")}function kC(e,t,n){const o=e.base.refs.get(n.i);if(o){qu(e,n,n.i,31),o.throw(Ue(e,t,n.f));return}throw new Uu("Stream")}function AC(e,t,n){const o=e.base.refs.get(n.i);if(o){qu(e,n,n.i,31),o.return(Ue(e,t,n.f));return}throw new Uu("Stream")}function xC(e,t,n){Ue(e,t,n.f)}function _C(e,t,n){Ue(e,t,n.a[1])}function Mv(e,t){return Number.isInteger(e)&&e>=-1&&e<t}function EC(e,t,n){ao(n,n.a);const o=n.a.length;if(!(Mv(n.s,o)&&Mv(n.l,o)))throw new wt(n);const s=ut(e,n.i,sb([],n.s,n.l));for(let a=0;a<o;a++)s.v[a]=Ue(e,t,n.a[a]);return s}function Ue(e,t,n){if(t>e.base.depthLimit)throw new Xw(e.base.depthLimit);switch(t+=1,n.t){case 2:return Uh(n,oT,n.s);case 0:return Number(n.s);case 1:return ho(String(n.s));case 3:if(String(n.s).length>qP)throw new wt(n);return BigInt(n.s);case 4:return e.base.refs.get(n.i);case 18:return ZP(e,n);case 9:return eC(e,t,n);case 10:case 11:return nC(e,t,n);case 5:return rC(e,n);case 6:return iC(e,n);case 7:return sC(e,t,n);case 8:return aC(e,t,n);case 19:return lC(e,n);case 16:case 15:return uC(e,t,n);case 20:return cC(e,t,n);case 14:return dC(e,t,n);case 13:return hC(e,t,n);case 12:return pC(e,t,n);case 17:return Uh(n,rT,n.s);
11case 21:return fC(e,t,n);case 25:return mC(e,t,n);case 22:return gC(e,n);case 23:case 24:return vC(e,t,n);case 28:return yC(e,t,n);case 30:return wC(e,t,n);case 31:return bC(e,t,n);case 32:return SC(e,t,n);case 33:return kC(e,t,n);case 34:return AC(e,t,n);case 27:return xC(e,t,n);case 29:return _C(e,t,n);case 35:return EC(e,t,n);case 36:return oC(e,n);default:throw new Tp(n)}}function TC(e,t){try{return Ue(e,0,t)}catch(n){throw new bT(n)}}function Dv(e,t){const n=pb(t.plugins);return TC(YP({maxBase64Length:t.maxBase64Length,plugins:n,refs:t.refs,features:t.features,disabledFeatures:t.disabledFeatures,depthLimit:t.depthLimit}),e)}async function PC(e,t={}){const n=pb(t.plugins),o=kP(1,{compactArrayBufferViews:t.compactArrayBufferViews,plugins:n,disabledFeatures:t.disabledFeatures});return{t:await FP(o,e),f:o.base.features,m:Array.from(o.base.marked)}}var ca=null;async function Bh(e){e.length>0&&await Promise.allSettled(e)}var CC=Object.prototype.hasOwnProperty;function bb(e){for(const t in e)if(CC.call(e,t))return!0;return!1}async function IC(e,t,n){ca||(ca=eT());const o=t[0],s=o.fetch??n,a=o.data instanceof FormData?"formData":"payload",l=o.headers?new Headers(o.headers):new Headers;if(l.set("x-tsr-serverFn","true"),a==="payload"&&l.set("accept",`${w_}, application/x-ndjson, application/json`),o.method==="GET"){if(a==="formData")throw new Error("FormData is not supported with GET requests");const h=await Sb(o);if(h!==void 0){const p=xw({payload:h});e.includes("?")?e+=`&${p}`:e+=`?${p}`}}let c;if(o.method==="POST"){const h=await RC(o);h?.contentType&&l.set("content-type",h.contentType),c=h?.body}return await OC(async()=>s(e,{method:o.method,headers:l,signal:o.signal,body:c}))}async function Sb(e){let t=!1;const n={};if(e.data!==void 0&&(t=!0,n.data=e.data),e.context&&bb(e.context)&&(t=!0,n.context=e.context),t)return kb(n)}async function kb(e){return JSON.stringify(await Promise.resolve(PC(e,{plugins:ca})))}async function RC(e){if(e.data instanceof FormData){let n;return e.context&&bb(e.context)&&(n=await kb(e.context)),n!==void 0&&e.data.set(y_,n),{body:e.data}}const t=await Sb(e);if(t)return{body:t,contentType:"application/json"}}async function OC(e){let t;try{t=await e()}catch(o){if(o instanceof Response)t=o;else throw console.log(o),o}if(t.headers.get("x-tss-raw")==="true")return t;const n=t.headers.get("content-type");if(n||Xt(),t.headers.get("x-tss-serialized")){let o;if(n.includes("application/x-tss-framed")){if(k_(n),!t.body)throw new Error("No response body for framed response");const{getOrCreateStream:s,jsonChunks:a}=nT(t.body),l=[KE(s),...ca||[]],c=new Map;o=await LC({jsonStream:a,onMessage:h=>Dv(h,{refs:c,plugins:l}),onError(h,p){console.error(h,p)}})}else if(n.includes("application/json")){const s=await t.json(),a=[];o=Dv(s,{plugins:ca}),await Bh(a)}if(o||Xt(),o instanceof Error)throw o;return o}if(n.includes("application/json")){const o=await t.json(),s=Ew(o);if(s)throw s;if(yt(o))throw o;return o}if(!t.ok)throw new Error(await t.text());return t}async function LC({jsonStream:e,onMessage:t,onError:n}){const o=e.getReader(),{value:s,done:a}=await o.read();if(a||!s)throw new Error("Stream ended before first object");const l=JSON.parse(s);let c=!1;const h=(async()=>{try{for(;;){const{value:m,done:y}=await o.read();if(y)break;if(m)try{const v=[];try{t(JSON.parse(m))}finally{}await Bh(v)}catch(v){n?.(`Invalid JSON: ${m}`,v)}}}catch(m){c||n?.("Stream processing error:",m)}})();let p;const f=[];try{p=t(l)}catch(m){throw c=!0,o.cancel().catch(()=>{}),m}return await Bh(f),Promise.resolve(p).catch(()=>{c=!0,o.cancel().catch(()=>{})}),h.finally(()=>{try{o.releaseLock()}catch{}}),p}function zp(e){const t="/_serverFn/"+e;return Object.assign((...s)=>{const a=Ap()?.serverFns?.fetch;return IC(t,s,a??fetch)},{url:t,serverFnMeta:{id:e},[Dh]:!0})}var zC={key:"$TSS/serverfn",test:e=>typeof e!="function"||!(Dh in e)?!1:!!e[Dh],toSerializable:({serverFnMeta:e})=>({functionId:e.id}),fromSerializable:({functionId:e})=>zp(e)};function Ab(e){if(Array.isArray(e))return e.flatMap(f=>Ab(f));if(typeof e!="string")return[];const t=[];let n=0,o,s,a,l,c;const h=()=>{for(;n<e.length&&/\s/.test(e.charAt(n));)n+=1;return n<e.length},p=()=>(s=e.charAt(n),s!=="="&&s!==";"&&s!==",");for(;n<e.length;){for(o=n,c=!1;h();)if(s=e.charAt(n),s===","){for(a=n,n+=1,h(),l=n;n<e.length&&p();)n+=1;n<e.length&&e.charAt(n)==="="?(c=!0,n=l,t.push(e.slice(o,a)),o=n):n=a+1}else n+=1;(!c||n>=e.length)&&t.push(e.slice(o))}return t}function NC(e){return e instanceof Headers?e:Array.isArray(e)?new Headers(e):typeof e=="object"?new Headers(e):null}function MC(...e){return e.reduce((t,n)=>{const o=NC(n);if(!o)return t;
11for(const[s,a]of o.entries())s==="set-cookie"?Ab(a).forEach(l=>t.append("set-cookie",l)):t.set(s,a);return t},new Headers)}function jv(e){return e.replaceAll("\0","/").replaceAll("�","/")}function DC(e,t){e.id=t.i,e.__beforeLoadContext=t.b,e.loaderData=t.l,e.status=t.s,e.ssr=t.ssr,e.updatedAt=t.u,e.error=t.e,t.g!==void 0&&(e.globalNotFound=t.g)}async function jC(e){window.$_TSR||Xt();const t=e.options.serializationAdapters;if(t?.length){const b=new Map;t.forEach(x=>{b.set(x.key,x.fromSerializable)}),window.$_TSR.t=b,window.$_TSR.buffer.forEach(x=>x())}window.$_TSR.initialized=!0,window.$_TSR.router||Xt();const n=window.$_TSR.router;n.matches.forEach(b=>{b.i=jv(b.i)}),n.lastMatchId&&(n.lastMatchId=jv(n.lastMatchId));const{manifest:o,dehydratedData:s,lastMatchId:a}=n;e.ssr={manifest:o};const l=document.querySelector('meta[property="csp-nonce"]')?.content;e.options.ssr={nonce:l},await e.options.hydrate?.(s);const c=e.matchRoutes(e.stores.location.get()),h=Promise.all(c.map(b=>e.loadRouteChunk(e.looseRoutesById[b.routeId])));function p(b){const x=e.looseRoutesById[b.routeId].options.pendingMinMs??e.options.defaultPendingMinMs;if(x){const E=Go();b._nonReactive.minPendingPromise=E,b._forcePending=!0,setTimeout(()=>{E.resolve(),e.updateMatch(b.id,P=>(P._nonReactive.minPendingPromise=void 0,{...P,_forcePending:void 0}))},x)}}function f(b){const x=e.looseRoutesById[b.routeId];x&&(x.options.ssr=b.ssr)}let m;c.forEach(b=>{const x=n.matches.find(E=>E.i===b.id);if(!x){b._nonReactive.dehydrated=!1,b.ssr=!1,f(b);return}DC(b,x),f(b),b._nonReactive.dehydrated=b.ssr!==!1,(b.ssr==="data-only"||b.ssr===!1)&&m===void 0&&(m=b.index,p(b))}),e.stores.setMatches(c);const y=e.stores.matches.get(),v=e.stores.location.get();await Promise.all(y.map(async b=>{try{const x=e.looseRoutesById[b.routeId],E=y[b.index-1]?.context??e.options.context;if(x.options.context){const D={deps:b.loaderDeps,params:b.params,context:E??{},location:v,navigate:M=>e.navigate({...M,_fromLocation:v}),buildLocation:e.buildLocation,cause:b.cause,abortController:b.abortController,preload:!1,matches:c,routeId:x.id};b.__routeContext=x.options.context(D)??void 0}b.context={...E,...b.__routeContext,...b.__beforeLoadContext};const P={ssr:e.options.ssr,matches:y,match:b,params:b.params,loaderData:b.loaderData},I=await x.options.head?.(P),O=await x.options.scripts?.(P);b.meta=I?.meta,b.links=I?.links,b.headScripts=I?.scripts,b.styles=I?.styles,b.scripts=O}catch(x){if(yt(x))b.error={isNotFound:!0},console.error(`NotFound error during hydration for routeId: ${b.routeId}`,x);else throw b.error=x,console.error(`Error during hydration for route ${b.routeId}:`,x),x}}));const k=c[c.length-1].id!==a;if(!c.some(b=>b.ssr===!1)&&!k)return c.forEach(b=>{b._nonReactive.dehydrated=void 0}),e.stores.resolvedLocation.set(e.stores.location.get()),h;const S=Promise.resolve().then(()=>e.load()).catch(b=>{console.error("Error during router hydration:",b)});if(k){const b=c[1];b||Xt(),p(b),b._displayPending=!0,b._nonReactive.displayPendingPromise=S,S.then(()=>{e.batch(()=>{e.stores.status.get()==="pending"&&(e.stores.status.set("idle"),e.stores.resolvedLocation.set(e.stores.location.get())),e.updateMatch(b.id,x=>({...x,_displayPending:void 0,displayPendingPromise:void 0}))})})}return h}var Pu=_.use,Xs=typeof window<"u"?_.useLayoutEffect:_.useEffect;function ih(e){const t=_.useRef({value:e,prev:null}),n=t.current.value;return e!==n&&(t.current={value:e,prev:n}),t.current.prev}function FC(e,t,n={},o={}){_.useEffect(()=>{if(!e.current||o.disabled||typeof IntersectionObserver!="function")return;const s=new IntersectionObserver(([a])=>{t(a)},n);return s.observe(e.current),()=>{s.disconnect()}},[t,n,o.disabled,e])}function $C(e){const t=_.useRef(null);return _.useImperativeHandle(e,()=>t.current,[]),t}function VC({promise:e}){if(Pu)return Pu(e);const t=_E(e);if(t[Qn].status==="pending")throw t;if(t[Qn].status==="error")throw t[Qn].error;return t[Qn].data}function UC(e){const t=C.jsx(BC,{...e});return e.fallback?C.jsx(_.Suspense,{fallback:e.fallback,children:t}):t}function BC(e){const t=VC(e);return e.children(t)}function Np(e){const t=e.errorComponent??Mp;return C.jsx(WC,{getResetKey:e.getResetKey,onCatch:e.onCatch,children:({error:n,reset:o})=>n?_.createElement(t,{error:n,reset:o}):e.children})}var WC=class extends _.Component{constructor(...e){super(...e),this.state={error:null}}static getDerivedStateFromProps(e,t){const n=e.getResetKey();return t.error&&t.resetKey!==n?{resetKey:n,error:null}:{resetKey:n}}static getDerivedStateFromError(e){return{error:e}}reset(){this.setState({error:null})}componentDidCatch(e,t){this.props.onCatch&&this.props.onCatch(e,t)}render(){return this.props.children({error:this.state.error,reset:()=>{this.reset()}})}};function Mp({error:e}){const[t,n]=_.useState(!1);return C.jsxs("div",{style:{padding:".5rem",maxWidth:"100%"},children:[C.jsxs("div",{style:{display:"flex",alignItems:"center",gap:".5rem"},children:[C.jsx("strong",{style:{fontSize:"1rem"},children:"Something went wrong!"}),C.jsx("button",{style:{appearance:"none",fontSize:".6em",border:"1px solid currentColor",padding:".1rem .2rem",fontWeight:"bold",borderRadius:".25rem"},onClick:()=>n(o=>!o),children:t?"Hide Error":"Show Error"})]}),C.jsx("div",{style:{height:".25rem"}}),t?C.jsx("div",{children:C.jsx("pre",{style:{fontSize:".7em",border:"1px solid red",borderRadius:".25rem",padding:".3rem",color:"red",overflow:"auto"},children:e.message?C.jsx("code",{children:e.message}):null})}):null]})}function qC({children:e,fallback:t=null}){return Dp()?C.jsx(Z.Fragment,{children:e}):C.jsx(Z.Fragment,{children:t})}function Dp(){return Z.useSyncExternalStore(GC,()=>!0,()=>!1)}function GC(){return()=>{}}var xb=_.createContext(null);function Et(e){return _.useContext(xb)}var Gu=_.createContext(void 0),HC=_.createContext(void 0),Ye=(e=>(e[e.None=0]="None",e[e.Mutable=1]="Mutable",e[e.Watching=2]="Watching",e[e.RecursedCheck=4]="RecursedCheck",e[e.Recursed=8]="Recursed",e[e.Dirty=16]="Dirty",e[e.Pending=32]="Pending",e))(Ye||{});function KC({update:e,notify:t,unwatched:n}){return{link:o,unlink:s,propagate:a,checkDirty:l,shallowPropagate:c};function o(p,f,m){const y=f.depsTail;if(y!==void 0&&y.dep===p)return;const v=y!==void 0?y.nextDep:f.deps;if(v!==void 0&&v.dep===p){v.version=m,f.depsTail=v;return}const k=p.subsTail;if(k!==void 0&&k.version===m&&k.sub===f)return;const S=f.depsTail=p.subsTail={version:m,dep:p,sub:f,prevDep:y,nextDep:v,prevSub:k,nextSub:void 0};v!==void 0&&(v.prevDep=S),y!==void 0?y.nextDep=S:f.deps=S,k!==void 0?k.nextSub=S:p.subs=S}function s(p,f=p.sub){const m=p.dep,y=p.prevDep,v=p.nextDep,k=p.nextSub,S=p.prevSub;return v!==void 0?v.prevDep=y:f.depsTail=y,y!==void 0?y.nextDep=v:f.deps=v,k!==void 0?k.prevSub=S:m.subsTail=S,S!==void 0?S.nextSub=k:(m.subs=k)===void 0&&n(m),v}function a(p){let f=p.nextSub,m;e:do{const y=p.sub;let v=y.flags;if(v&60?v&12?v&4?!(v&48)&&h(p,y)?(y.flags=v|40,v&=1):v=0:y.flags=v&-9|32:v=0:y.flags=v|32,v&2&&t(y),v&1){const k=y.subs;if(k!==void 0){const S=(p=k).nextSub;S!==void 0&&(m={value:f,prev:m},f=S);continue}}if((p=f)!==void 0){f=p.nextSub;continue}for(;m!==void 0;)if(p=m.value,m=m.prev,p!==void 0){f=p.nextSub;continue e}break}while(!0)}function l(p,f){let m,y=0,v=!1;e:do{const k=p.dep,S=k.flags;if(f.flags&16)v=!0;else if((S&17)===17){if(e(k)){const b=k.subs;b.nextSub!==void 0&&c(b),v=!0}}else if((S&33)===33){(p.nextSub!==void 0||p.prevSub!==void 0)&&(m={value:p,prev:m}),p=k.deps,f=k,++y;continue}if(!v){const b=p.nextDep;if(b!==void 0){p=b;continue}}for(;y--;){const b=f.subs,x=b.nextSub!==void 0;if(x?(p=m.value,m=m.prev):p=b,v){if(e(f)){x&&c(b),f=p.sub;continue}v=!1}else f.flags&=-33;f=p.sub;const E=p.nextDep;if(E!==void 0){p=E;continue e}}return v}while(!0)}function c(p){do{const f=p.sub,m=f.flags;(m&48)===32&&(f.flags=m|16,(m&6)===2&&t(f))}while((p=p.nextSub)!==void 0)}function h(p,f){let m=f.depsTail;for(;m!==void 0;){if(m===p)return!0;m=m.prevDep}return!1}}function YC(e,t,n){const o=typeof e=="object",s=o?e:void 0;return{next:(o?e.next:e)?.bind(s),error:(o?e.error:t)?.bind(s),complete:(o?e.complete:n)?.bind(s)}}const Wh=[];let mu=0;const{link:Fv,unlink:JC,propagate:QC,checkDirty:_b,shallowPropagate:$v}=KC({update(e){return e._update()},notify(e){Wh[qh++]=e,e.flags&=~Ye.Watching},unwatched(e){e.depsTail!==void 0&&(e.depsTail=void 0,e.flags=Ye.Mutable|Ye.Dirty,Cu(e))}});let ql=0,qh=0,Jn,Gh=0;function Eb(e){try{++Gh,e()}finally{--Gh||Tb()}}function Cu(e){const t=e.depsTail;let n=t!==void 0?t.nextDep:e.deps;for(;n!==void 0;)n=JC(n,e)}function Tb(){if(!(Gh>0)){for(;ql<qh;){const e=Wh[ql];Wh[ql++]=void 0,e.notify()}ql=0,qh=0}}function Vv(e,t){const n=typeof e=="function",o=e,s={_snapshot:n?void 0:e,subs:void 0,subsTail:void 0,deps:void 0,depsTail:void 0,flags:n?Ye.None:Ye.Mutable,get(){return Jn!==void 0&&Fv(s,Jn,mu),s._snapshot},subscribe(a){const l=YC(a),c={current:!1},h=XC(()=>{s.get(),c.current?l.next?.(s._snapshot):c.current=!0});return{unsubscribe:()=>{h.stop()}}},_update(a){const l=Jn,c=t?.compare??Object.is;if(n)Jn=s,++mu,s.depsTail=void 0;else if(a===void 0)return!1;
11n&&(s.flags=Ye.Mutable|Ye.RecursedCheck);try{const h=s._snapshot,p=typeof a=="function"?a(h):a===void 0&&n?o(h):a;return h===void 0||!c(h,p)?(s._snapshot=p,!0):!1}finally{Jn=l,n&&(s.flags&=~Ye.RecursedCheck),Cu(s)}}};return n?(s.flags=Ye.Mutable|Ye.Dirty,s.get=function(){const a=s.flags;if(a&Ye.Dirty||a&Ye.Pending&&_b(s.deps,s)){if(s._update()){const l=s.subs;l!==void 0&&$v(l)}}else a&Ye.Pending&&(s.flags=a&~Ye.Pending);return Jn!==void 0&&Fv(s,Jn,mu),s._snapshot}):s.set=function(a){if(s._update(a)){const l=s.subs;l!==void 0&&(QC(l),$v(l),Tb())}},s}function XC(e){const t=()=>{const o=Jn;Jn=n,++mu,n.depsTail=void 0,n.flags=Ye.Watching|Ye.RecursedCheck;try{return e()}finally{Jn=o,n.flags&=~Ye.RecursedCheck,Cu(n)}},n={deps:void 0,depsTail:void 0,subs:void 0,subsTail:void 0,flags:Ye.Watching|Ye.RecursedCheck,notify(){const o=this.flags;o&Ye.Dirty||o&Ye.Pending&&_b(this.deps,this)?t():this.flags=Ye.Watching},stop(){this.flags=Ye.None,this.depsTail=void 0,Cu(this)}};return t(),n}var sh={exports:{}},ah={},lh={exports:{}},uh={};var Uv;function ZC(){if(Uv)return uh;Uv=1;var e=wa();function t(m,y){return m===y&&(m!==0||1/m===1/y)||m!==m&&y!==y}var n=typeof Object.is=="function"?Object.is:t,o=e.useState,s=e.useEffect,a=e.useLayoutEffect,l=e.useDebugValue;function c(m,y){var v=y(),k=o({inst:{value:v,getSnapshot:y}}),S=k[0].inst,b=k[1];return a(function(){S.value=v,S.getSnapshot=y,h(S)&&b({inst:S})},[m,v,y]),s(function(){return h(S)&&b({inst:S}),m(function(){h(S)&&b({inst:S})})},[m]),l(v),v}function h(m){var y=m.getSnapshot;m=m.value;try{var v=y();return!n(m,v)}catch{return!0}}function p(m,y){return y()}var f=typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"?p:c;return uh.useSyncExternalStore=e.useSyncExternalStore!==void 0?e.useSyncExternalStore:f,uh}var Bv;function eI(){return Bv||(Bv=1,lh.exports=ZC()),lh.exports}var Wv;function tI(){if(Wv)return ah;Wv=1;var e=wa(),t=eI();function n(p,f){return p===f&&(p!==0||1/p===1/f)||p!==p&&f!==f}var o=typeof Object.is=="function"?Object.is:n,s=t.useSyncExternalStore,a=e.useRef,l=e.useEffect,c=e.useMemo,h=e.useDebugValue;return ah.useSyncExternalStoreWithSelector=function(p,f,m,y,v){var k=a(null);if(k.current===null){var S={hasValue:!1,value:null};k.current=S}else S=k.current;k=c(function(){function x(D){if(!E){if(E=!0,P=D,D=y(D),v!==void 0&&S.hasValue){var M=S.value;if(v(M,D))return I=M}return I=D}if(M=I,o(P,D))return M;var $=y(D);return v!==void 0&&v(M,$)?(P=D,M):(P=D,I=$)}var E=!1,P,I,O=m===void 0?null:m;return[function(){return x(f())},O===null?void 0:function(){return x(O())}]},[f,m,y,v]);var b=s(p,k[0],k[1]);return l(function(){S.hasValue=!0,S.value=b},[b]),h(b),b},ah}var qv;function nI(){return qv||(qv=1,sh.exports=tI()),sh.exports}var rI=nI();function oI(e,t){return e===t}function nt(e,t,n=oI){const o=_.useCallback(l=>{if(!e)return()=>{};const{unsubscribe:c}=e.subscribe(l);return c},[e]),s=_.useCallback(()=>e?.get(),[e]);return rI.useSyncExternalStoreWithSelector(o,s,s,t,n)}var ch={get(){},subscribe(){return{unsubscribe(){}}}};function Pb(e,t){const n=_.useRef();return o=>{const s=e?.select?e.select(o):o;return e?.structuralSharing??t.options.defaultStructuralSharing?n.current=jo(n.current,s):s}}function Qo(e){const t=Et(),n=_.useContext(e.from?HC:Gu),o=e.from?t.stores.getRouteMatchStore(e.from):t.stores.matchStores.get(n),s=Pb(e,t),a=nt(o??ch,l=>l?s(l):ch);if(a!==ch)return a;(e.shouldThrow??!0)&&Xt()}function Cb(e){return Qo({from:e.from,strict:e.strict,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.loaderData):t.loaderData})}function Ib(e){const{select:t,...n}=e;return Qo({...n,select:o=>t?t(o.loaderDeps):o.loaderDeps})}function Rb(e){return Qo({from:e.from,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,strict:e.strict,select:t=>{const n=e.strict===!1?t.params:t._strictParams;return e.select?e.select(n):n}})}function Ob(e){return Qo({from:e.from,strict:e.strict,shouldThrow:e.shouldThrow,structuralSharing:e.structuralSharing,select:t=>e.select?e.select(t.search):t.search})}function Lb(e){const t=Et();return _.useCallback(n=>t.navigate({...n,from:n.from??e?.from}),[e?.from,t])}function zb(e){return Qo({...e,select:t=>e.select?e.select(t.context):t.context})}var ka=fw();const Nb=kp(ka);function iI(e,t){const n=Et(),o=$C(t),{activeProps:s,inactiveProps:a,activeOptions:l,to:c,preload:h,preloadDelay:p,preloadIntentProximity:f,hashScrollIntoView:m,replace:y,startTransition:v,resetScroll:k,viewTransition:S,children:b,target:x,disabled:E,style:P,className:I,onClick:O,onBlur:D,onFocus:M,onMouseEnter:$,onMouseLeave:W,onTouchStart:ee,ignoreBlocker:te,params:G,search:ye,hash:Q,state:we,mask:pe,reloadDocument:ie,unsafeRelative:B,from:q,_fromLocation:Y,...z}=e,U=Dp(),oe=_.useMemo(()=>e,[n,e.from,e._fromLocation,e.hash,e.to,e.search,e.params,e.state,e.mask,e.unsafeRelative]),se=nt(n.stores.location,Ne=>Ne,(Ne,ze)=>Ne.href===ze.href),ce=_.useMemo(()=>{const Ne={_fromLocation:se,...oe};return n.buildLocation(Ne)},[n,se,oe]),_e=ce.maskedLocation?ce.maskedLocation.publicHref:ce.publicHref,ge=ce.maskedLocation?ce.maskedLocation.external:ce.external,Ee=_.useMemo(()=>dI(_e,ge,n.history,E),[E,ge,_e,n.history]),Pe=_.useMemo(()=>
11{if(Ee?.external)return Au(Ee.href,n.protocolAllowlist)?void 0:Ee.href;if(!hI(c)&&!(typeof c!="string"||c.indexOf(":")===-1))try{return new URL(c),Au(c,n.protocolAllowlist)?void 0:c}catch{}},[c,Ee,n.protocolAllowlist]),He=_.useMemo(()=>{if(Pe)return!1;if(l?.exact){if(!W_(se.pathname,ce.pathname,n.basepath))return!1}else{const Ne=xu(se.pathname,n.basepath),ze=xu(ce.pathname,n.basepath);if(!(Ne.startsWith(ze)&&(Ne.length===ze.length||Ne[ze.length]==="/")))return!1}return(l?.includeSearch??!0)&&!Ft(se.search,ce.search,{partial:!l?.exact,ignoreUndefined:!l?.explicitUndefined})?!1:l?.includeHash?U&&se.hash===ce.hash:!0},[l?.exact,l?.explicitUndefined,l?.includeHash,l?.includeSearch,se,Pe,U,ce.hash,ce.pathname,ce.search,n.basepath]),bt=He?Do(s,{})??sI:dh,tn=He?dh:Do(a,{})??dh,Nt=[I,bt.className,tn.className].filter(Boolean).join(" "),Er=(P||bt.style||tn.style)&&{...P,...bt.style,...tn.style},[Xo,Tr]=_.useState(!1),Pr=_.useRef(!1),nn=e.reloadDocument||Pe?!1:h??n.options.defaultPreload,rr=p??n.options.defaultPreloadDelay??0,Tt=_.useCallback(()=>{n.preloadRoute({...oe,_builtLocation:ce}).catch(Ne=>{console.warn(Ne),console.warn(EE)})},[n,oe,ce]);FC(o,_.useCallback(Ne=>{Ne?.isIntersecting&&Tt()},[Tt]),cI,{disabled:!!E||nn!=="viewport"}),_.useEffect(()=>{Pr.current||!E&&nn==="render"&&(Tt(),Pr.current=!0)},[E,Tt,nn]);const Ut=Ne=>{const ze=Ne.currentTarget.getAttribute("target"),ft=x!==void 0?x:ze;if(!E&&!pI(Ne)&&!Ne.defaultPrevented&&(!ft||ft==="_self")&&Ne.button===0){Ne.preventDefault(),ka.flushSync(()=>{Tr(!0)});const Cr=n.subscribe("onResolved",()=>{Cr(),Tr(!1)});n.navigate({...oe,replace:y,resetScroll:k,hashScrollIntoView:m,startTransition:v,viewTransition:S,ignoreBlocker:te})}};if(Pe)return{...z,ref:o,href:Pe,...b&&{children:b},...x&&{target:x},...E&&{disabled:E},...P&&{style:P},...I&&{className:I},...O&&{onClick:O},...D&&{onBlur:D},...M&&{onFocus:M},...$&&{onMouseEnter:$},...W&&{onMouseLeave:W},...ee&&{onTouchStart:ee}};const or=Ne=>{if(E||nn!=="intent")return;if(!rr){Tt();return}const ze=Ne.currentTarget;if(Ys.has(ze))return;const ft=setTimeout(()=>{Ys.delete(ze),Tt()},rr);Ys.set(ze,ft)},pn=Ne=>{E||nn!=="intent"||Tt()},mo=Ne=>{if(E||!nn||!rr)return;const ze=Ne.currentTarget,ft=Ys.get(ze);ft&&(clearTimeout(ft),Ys.delete(ze))};return{...z,...bt,...tn,href:Ee?.href,ref:o,onClick:_i([O,Ut]),onBlur:_i([D,mo]),onFocus:_i([M,or]),onMouseEnter:_i([$,or]),onMouseLeave:_i([W,mo]),onTouchStart:_i([ee,pn]),disabled:!!E,target:x,...Er&&{style:Er},...Nt&&{className:Nt},...E&&aI,...He&&lI,...U&&Xo&&uI}}var dh={},sI={className:"active"},aI={role:"link","aria-disabled":!0},lI={"data-status":"active","aria-current":"page"},uI={"data-transitioning":"transitioning"},Ys=new WeakMap,cI={rootMargin:"100px"},_i=e=>t=>{for(const n of e)if(n){if(t.defaultPrevented)return;n(t)}};function dI(e,t,n,o){if(!o)return t?{href:e,external:!0}:{href:n.createHref(e)||"/",external:!1}}function hI(e){if(typeof e!="string")return!1;const t=e.charCodeAt(0);return t===47?e.charCodeAt(1)!==47:t===46}var Mb=_.forwardRef((e,t)=>{const{_asChild:n,...o}=e,{type:s,...a}=iI(o,t),l=typeof o.children=="function"?o.children({isActive:a["data-status"]==="active"}):o.children;if(!n){const{disabled:c,...h}=a;return _.createElement("a",h,l)}return _.createElement(n,a,l)});function pI(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}var fI=class extends zw{constructor(t){super(t),this.useMatch=n=>Qo({select:n?.select,from:this.id,structuralSharing:n?.structuralSharing}),this.useRouteContext=n=>zb({...n,from:this.id}),this.useSearch=n=>Ob({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useParams=n=>Rb({select:n?.select,structuralSharing:n?.structuralSharing,from:this.id}),this.useLoaderDeps=n=>Ib({...n,from:this.id}),this.useLoaderData=n=>Cb({...n,from:this.id}),this.useNavigate=()=>Lb({from:this.fullPath}),this.Link=Z.forwardRef((n,o)=>C.jsx(Mb,{ref:o,from:this.fullPath,...n}))}};function mI(e){return new fI(e)}var gI=class extends RE{constructor(e){super(e),this.useMatch=t=>Qo({select:t?.select,from:this.id,structuralSharing:t?.structuralSharing}),this.useRouteContext=t=>zb({...t,from:this.id}),this.useSearch=t=>Ob({select:t?.select,structuralSharing:t?.structuralSharing,from:this.id}),this.useParams=t=>Rb({select:t?.select,structuralSharing:t?.structuralSharing,from:this.id}),this.useLoaderDeps=t=>Ib({...t,from:this.id}),this.useLoaderData=t=>Cb({...t,from:this.id}),this.useNavigate=()=>Lb({from:this.fullPath}
11),this.Link=Z.forwardRef((t,n)=>C.jsx(Mb,{ref:n,from:this.fullPath,...t}))}};function vI(e){return new gI(e)}function ue(e){return new yI(e,{silent:!0}).createRoute}var yI=class{constructor(e,t){this.path=e,this.createRoute=n=>{const o=mI(n);return o.isRoot=!1,o},this.silent=t?.silent}};function ne(e,t){let n,o,s,a;const l=()=>(n||(n=e().then(h=>{n=void 0,o=h[t??"default"]}).catch(h=>{if(s=h,__(s)&&s instanceof Error&&typeof window<"u"&&typeof sessionStorage<"u"){const p=`tanstack_router_reload:${s.message}`;sessionStorage.getItem(p)||(sessionStorage.setItem(p,"1"),a=!0)}})),n),c=function(p){if(a)throw window.location.reload(),new Promise(()=>{});if(s)throw s;if(!o)if(Pu)Pu(l());else throw l();return _.createElement(o,p)};return c.preload=l,c}function wI(e){const t=Et(),n=`not-found-${nt(t.stores.location,o=>o.pathname)}-${nt(t.stores.status,o=>o)}`;return C.jsx(Np,{getResetKey:()=>n,onCatch:(o,s)=>{if(yt(o))e.onCatch?.(o,s);else throw o},errorComponent:({error:o})=>{if(yt(o))return e.fallback?.(o);throw o},children:e.children})}function bI(){return C.jsx("p",{children:"Not Found"})}function Mi(e){return C.jsx(C.Fragment,{children:e.children})}function Db(e,t,n){return t.options.notFoundComponent?C.jsx(t.options.notFoundComponent,{...n}):e.options.defaultNotFoundComponent?C.jsx(e.options.defaultNotFoundComponent,{...n}):C.jsx(bI,{})}function SI(e){return null}function kI(){return SI(Et()),null}var AI=(e,t)=>e.routeId===t.routeId&&e._displayPending===t._displayPending,xI=(e,t)=>e[0]===t[0]&&e[1]===t[1],jb=_.memo(function({matchId:t}){const n=Et(),o=n.stores.matchStores.get(t);o||Xt();const s=nt(n.stores.loadedAt,l=>l),a=nt(o,l=>l,AI);return C.jsx(_I,{router:n,matchId:t,resetKey:s,matchState:_.useMemo(()=>{const l=a.routeId,c=n.routesById[l].parentRoute?.id;return{routeId:l,ssr:a.ssr,_displayPending:a._displayPending,parentRouteId:c}},[a._displayPending,a.routeId,a.ssr,n.routesById])})});function _I({router:e,matchId:t,resetKey:n,matchState:o}){const s=e.routesById[o.routeId],a=s.options.pendingComponent??e.options.defaultPendingComponent,l=a?C.jsx(a,{}):null,c=s.options.errorComponent??e.options.defaultErrorComponent,h=s.options.onCatch??e.options.defaultOnCatch,p=s.isRoot?s.options.notFoundComponent??e.options.notFoundRoute?.options.component:s.options.notFoundComponent,f=o.ssr===!1||o.ssr==="data-only",m=(!s.isRoot||s.options.wrapInSuspense||f)&&(s.options.wrapInSuspense??a??(s.options.errorComponent?.preload||f))?_.Suspense:Mi,y=c?Np:Mi,v=p?wI:Mi;return C.jsxs(s.isRoot?s.options.shellComponent??Mi:Mi,{children:[C.jsx(Gu.Provider,{value:t,children:C.jsx(m,{fallback:l,children:C.jsx(y,{getResetKey:()=>n,errorComponent:c||Mp,onCatch:(k,S)=>{if(yt(k))throw k.routeId??=o.routeId,k;h?.(k,S)},children:C.jsx(v,{fallback:k=>{if(k.routeId??=o.routeId,!p||k.routeId&&k.routeId!==o.routeId||!k.routeId&&!s.isRoot)throw k;return _.createElement(p,k)},children:f||o._displayPending?C.jsx(qC,{fallback:l,children:C.jsx(Gv,{matchId:t})}):C.jsx(Gv,{matchId:t})})})})}),o.parentRouteId===Bo?C.jsxs(C.Fragment,{children:[C.jsx(EI,{}),e.options.scrollRestoration&&mw?C.jsx(kI,{}):null]}):null]})}function EI(){const e=Et(),t=_.useRef();return Xs(()=>{const n=e.stores.resolvedLocation.get(),o=t.current;n&&(!o||o.href!==n.href)&&e.emit({type:"onRendered",...Ui(e.stores.location.get(),o??n)}),t.current=n},[nt(e.stores.resolvedLocation,n=>n?.state.__TSR_key),e]),null}var Gv=_.memo(function({matchId:t}){const n=Et(),o=(f,m)=>n.getMatch(f.id)?._nonReactive[m]??f._nonReactive[m],s=n.stores.matchStores.get(t);s||Xt();const a=nt(s,f=>f),l=a.routeId,c=n.routesById[l],h=_.useMemo(()=>{const f=(n.routesById[l].options.remountDeps??n.options.defaultRemountDeps)?.({routeId:l,loaderDeps:a.loaderDeps,params:a._strictParams,search:a._strictSearch});return f?JSON.stringify(f):void 0},[l,a.loaderDeps,a._strictParams,a._strictSearch,n.options.defaultRemountDeps,n.routesById]),p=_.useMemo(()=>{const f=c.options.component??n.options.defaultComponent;return f?C.jsx(f,{},h):C.jsx(Fb,{})},[h,c.options.component,n.options.defaultComponent]);if(a._displayPending)throw o(a,"displayPendingPromise");if(a._forcePending)throw o(a,"minPendingPromise");if(a.status==="pending"){const f=c.options.pendingMinMs??n.options.defaultPendingMinMs;if(f){const m=n.getMatch(a.id);if(m&&!m._nonReactive.minPendingPromise){const y=Go();m._nonReactive.minPendingPromise=y,setTimeout(()=>{y.resolve(),m._nonReactive.minPendingPromise=void 0},f)}}throw o(a,"loadPromise")}if(a.status==="notFound")return yt(a.error)||Xt(),Db(n,c,a.error);if(a.status==="redirected")throw Vt(a.error)||Xt(),o(a,"loadPromise");if(a.status==="error")throw a.error;return p}),Fb=_.memo(function(){const t=Et(),n=_.useContext(Gu);let o,s=!1,a;{const p=n?t.stores.matchStores.get(n):void 0;[o,s]=nt(p,f=>[f?.routeId,f?.globalNotFound??!1],xI),a=nt(t.stores.matchesId,f=>f[f.findIndex(m=>
11m===n)+1])}const l=o?t.routesById[o]:void 0,c=t.options.defaultPendingComponent?C.jsx(t.options.defaultPendingComponent,{}):null;if(s)return l||Xt(),Db(t,l,void 0);if(!a)return null;const h=C.jsx(jb,{matchId:a});return o===Bo?C.jsx(_.Suspense,{fallback:c,children:h}):h});function TI(){const e=Et(),t=_.useRef({router:e,mounted:!1}),[n,o]=_.useState(!1),s=nt(e.stores.isLoading,m=>m),a=nt(e.stores.hasPending,m=>m),l=ih(s),c=s||n||a,h=ih(c),p=s||a,f=ih(p);return e.startTransition=m=>{o(!0),_.startTransition(()=>{m(),o(!1)})},_.useEffect(()=>{const m=e.history.subscribe(e.load),y=e.buildLocation({to:e.latestLocation.pathname,search:!0,params:!0,hash:!0,state:!0,_includeValidateSearch:!0});return wr(e.latestLocation.publicHref)!==wr(y.publicHref)&&e.commitLocation({...y,replace:!0}),()=>{m()}},[e,e.history]),Xs(()=>{if(typeof window<"u"&&e.ssr||t.current.router===e&&t.current.mounted)return;t.current={router:e,mounted:!0},(async()=>{try{await e.load()}catch(y){console.error(y)}})()},[e]),Xs(()=>{l&&!s&&e.emit({type:"onLoad",...Ui(e.stores.location.get(),e.stores.resolvedLocation.get())})},[l,e,s]),Xs(()=>{f&&!p&&e.emit({type:"onBeforeRouteMount",...Ui(e.stores.location.get(),e.stores.resolvedLocation.get())})},[p,f,e]),Xs(()=>{if(h&&!c){const m=Ui(e.stores.location.get(),e.stores.resolvedLocation.get());e.emit({type:"onResolved",...m}),Eb(()=>{e.stores.status.set("idle"),e.stores.resolvedLocation.set(e.stores.location.get())})}},[c,h,e]),null}function PI(){const e=Et(),t=e.routesById[Bo].options.pendingComponent??e.options.defaultPendingComponent,n=t?C.jsx(t,{}):null,o=C.jsxs(typeof document<"u"&&e.ssr?Mi:_.Suspense,{fallback:n,children:[C.jsx(TI,{}),C.jsx(CI,{})]});return e.options.InnerWrap?C.jsx(e.options.InnerWrap,{children:o}):o}function CI(){const e=Et(),t=nt(e.stores.firstId,s=>s),n=nt(e.stores.loadedAt,s=>s),o=t?C.jsx(jb,{matchId:t}):null;return C.jsx(Gu.Provider,{value:t,children:e.options.disableGlobalCatchBoundary?o:C.jsx(Np,{getResetKey:()=>n,errorComponent:Mp,onCatch:void 0,children:o})})}var II=e=>({createMutableStore:Vv,createReadonlyStore:Vv,batch:Eb}),RI=e=>new OI(e),OI=class extends dE{constructor(e){super(e,II)}};function LI({router:e,children:t,...n}
11){vw(n)&&e.update({...e.options,...n,context:{...e.options.context,...n.context}});const o=C.jsx(xb.Provider,{value:e,children:t});return e.options.Wrap?C.jsx(e.options.Wrap,{children:o}):o}function zI({router:e,...t}){return C.jsx(LI,{router:e,...t,children:C.jsx(PI,{})})}function NI(e){const t=Et({warn:e?.router===void 0}),n=e?.router||t;return nt(n.stores.__store,Pb(e,n))}function Hv(e,t){if(t)for(const[n,o]of Object.entries(t))n!=="suppressHydrationWarning"&&o!==void 0&&o!==!1&&e.setAttribute(n,typeof o=="boolean"?"":String(o))}function $b(e){const{attrs:t,children:n,nonce:o,preventScriptHoist:s}=e;switch(e.tag){case"title":return C.jsx("title",{...t,suppressHydrationWarning:!0,children:n});case"meta":return C.jsx("meta",{...t,suppressHydrationWarning:!0});case"link":return C.jsx("link",{...t,precedence:t?.precedence??(t?.rel==="stylesheet"?"default":void 0),nonce:o,suppressHydrationWarning:!0});case"style":return e.inlineCss,C.jsx("style",{...t,dangerouslySetInnerHTML:{__html:n},nonce:o});case"script":return C.jsx(MI,{attrs:t,preventScriptHoist:s,children:n});default:return null}}function MI({attrs:e,children:t,preventScriptHoist:n}){Et();const o=Dp(),s=typeof e?.type=="string"&&e.type!==""&&e.type!=="text/javascript"&&e.type!=="module";if(_.useEffect(()=>{if(!s){if(e?.src){const a=(()=>{try{const c=document.baseURI||window.location.href;return new URL(e.src,c).href}catch{return e.src}})();for(const c of document.querySelectorAll("script[src]"))if(c.src===a)return;const l=document.createElement("script");return Hv(l,e),document.head.appendChild(l),()=>l.remove()}if(typeof t=="string"){const a=typeof e?.type=="string"?e.type:"text/javascript",l=typeof e?.nonce=="string"?e.nonce:void 0;for(const h of document.querySelectorAll("script:not([src])")){if(!(h instanceof HTMLScriptElement))continue;const p=h.getAttribute("type")??"text/javascript",f=h.getAttribute("nonce")??void 0;if(h.textContent===t&&p===a&&f===l)return}const c=document.createElement("script");return c.textContent=t,Hv(c,e),document.head.appendChild(c),()=>c.remove()}}},[e,t,s]),s&&typeof t=="string")return C.jsx("script",{...e,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}});if(!o){if(e?.src)return C.jsx("script",{...e,suppressHydrationWarning:!0});if(typeof t=="string")return C.jsx("script",{...e,dangerouslySetInnerHTML:{__html:t},suppressHydrationWarning:!0})}return null}var DI=e=>{const t=Et(),n=t.options.ssr?.nonce,o=nt(t.stores.matches,m=>m.map(y=>y.meta).filter(y=>y!==void 0),Ft),s=_.useMemo(()=>{const m=[],y={};let v;for(let k=o.length-1;k>=0;k--){const S=o[k];for(let b=S.length-1;b>=0;b--){const x=S[b];if(x)if(x.title)v||(v={tag:"title",children:x.title});else if("script:ld+json"in x)try{const E=JSON.stringify(x["script:ld+json"]);m.push({tag:"script",attrs:{type:"application/ld+json"},children:R_(E)})}catch{}else{const E=x.name??x.property;if(E){if(y[E])continue;y[E]=!0}m.push({tag:"meta",attrs:{...x,nonce:n}})}}}return v&&m.push(v),n&&m.push({tag:"meta",attrs:{property:"csp-nonce",content:n}}),m.reverse(),m},[o,n]),a=nt(t.stores.matches,m=>m.flatMap(y=>y.links??[]).filter(y=>y!==void 0).map(y=>({tag:"link",attrs:{...y,nonce:n}})),Ft),l=nt(t.stores.matches,m=>{const y=t.ssr?.manifest,v=[];return y&&(m.forEach(k=>{y.routes[k.routeId]?.css?.forEach(S=>{const b=IE(S);v.push({tag:"link",attrs:{rel:"stylesheet",...b,crossOrigin:Lw(e,"stylesheet")??b.crossOrigin,suppressHydrationWarning:!0,nonce:n}})})}),y.inlineStyle&&v.push({tag:"style",attrs:{...y.inlineStyle.attrs,nonce:n},children:y.inlineStyle.children,inlineCss:!0})),v},Ft),c=nt(t.stores.matches,m=>{const y=[],v=t.ssr?.manifest;return v&&m.forEach(k=>{v.routes[k.routeId]?.preloads?.forEach(S=>{y.push({tag:"link",attrs:{...PE(v,S,e),nonce:n}})})}),y},Ft),h=nt(t.stores.matches,m=>m.flatMap(y=>y.styles??[]).filter(y=>y!==void 0).map(({children:y,...v})=>({tag:"style",attrs:{...v,nonce:n},children:y})),Ft),p=nt(t.stores.matches,m=>m.flatMap(y=>y.headScripts??[]).filter(y=>y!==void 0).map(({children:y,...v})=>({tag:"script",attrs:{...v,nonce:n},children:y})),Ft),f=[];
11return Vl(f,s),f.push(...c),Vl(f,a),f.push(...l),Vl(f,h),Vl(f,p),f};function jI(e){const t=DI(e.assetCrossOrigin),n=Et().options.ssr?.nonce;return C.jsx(C.Fragment,{children:t.map(o=>_.createElement($b,{...o,key:`tsr-meta-${JSON.stringify(o)}`,nonce:n}))})}var FI=()=>{const e=Et(),t=e.options.ssr?.nonce,n=a=>{const l=[],c=e.ssr?.manifest;if(!c)return[];for(const h of a){const p=c.routes[h.routeId]?.scripts;if(p)for(const f of p)l.push({tag:"script",attrs:{...f.attrs,nonce:t},children:f.children,...typeof f.attrs?.src=="string"?{preventScriptHoist:!0}:{}})}return l},o=a=>a.map(l=>l.scripts).flat(1).filter(Boolean).map(({children:l,...c})=>({tag:"script",attrs:{...c,suppressHydrationWarning:!0,nonce:t},children:l})),s=nt(e.stores.matches,n,Ft);return $I(e,nt(e.stores.matches,o,Ft),s)};function $I(e,t,n){const o=[...t,...n];return C.jsx(C.Fragment,{children:o.map((s,a)=>_.createElement($b,{...s,key:`tsr-scripts-${s.tag}-${a}`}))})}function Kv(e){return e!=="__proto__"&&e!=="constructor"&&e!=="prototype"}function Hh(e,t){const n=Object.create(null);if(e)for(const o of Object.keys(e))Kv(o)&&(n[o]=e[o]);if(t&&typeof t=="object")for(const o of Object.keys(t))Kv(o)&&(n[o]=t[o]);return n}function Vb(e){return Object.create(null)}var Ub=()=>{throw new Error("createServerOnlyFn() functions can only be called on the server!")},na=(e,t)=>{const n=t||e||{};typeof n.method>"u"&&(n.method="GET");const o=l=>na(void 0,{...n,validator:l,inputValidator:l});return Object.assign(l=>na(void 0,{...n,...l}),{options:n,middleware:l=>{const c=[...n.middleware||[]];l.map(p=>{iv in p?p.options.middleware&&c.push(...p.options.middleware):c.push(p)});const h=na(void 0,{...n,middleware:c});return h[iv]=!0,h},validator:o,inputValidator:o,handler:(...l)=>{const[c,h]=l,p={...n,extractedFn:c,serverFn:h},f=[...p.middleware||[],BI(p)];return c.method=n.method,Object.assign(async m=>{const y=await Yv(f,"client",{...c,...p,data:m?.data,headers:m?.headers,signal:m?.signal,fetch:m?.fetch,context:Vb()}),v=Ew(y.error);if(v)throw v;if(y.error)throw y.error;return y.result},{...c,method:n.method,__executeServer:async m=>{const y=Ub(),v=y.contextAfterGlobalMiddlewares;return await Yv(f,"server",{...c,...m,serverFnMeta:c.serverFnMeta,context:Hh(m.context,v),request:y.request}).then(k=>({result:k.result,error:k.error,context:k.sendContext}))}})}})};async function Yv(e,t,n){let o=VI([...Ap()?.functionMiddleware||[],...e]);if(t==="server"){const a=Ub();a?.executedRequestMiddlewares&&(o=o.filter(l=>!a.executedRequestMiddlewares.has(l)))}const s=async a=>{const l=o.shift();if(!l)return a;try{let c="validator"in l.options?l.options.validator:void 0;!c&&"inputValidator"in l.options&&(c=l.options.inputValidator),c&&t==="server"&&(a.data=await UI(c,a.data));let h;if(t==="client"?"client"in l.options&&(h=l.options.client):"server"in l.options&&(h=l.options.server),h){const f=await h({...a,next:async(m={})=>{const y=await s({...a,...m,context:Hh(a.context,m.context),sendContext:Hh(a.sendContext,m.sendContext),headers:MC(a.headers,m.headers),_callSiteFetch:a._callSiteFetch,fetch:a._callSiteFetch??m.fetch??a.fetch,result:m.result!==void 0?m.result:m instanceof Response?m:a.result,error:m.error??a.error});if(y.error)throw y.error;return y}});if(Vt(f))return{...a,error:f};if(f instanceof Response)return{...a,result:f};if(!f)throw new Error("User middleware returned undefined. You must call next() or return a result in your middlewares.");return f}return s(a)}catch(c){return{...a,error:c}}};return s({...n,headers:n.headers||{},sendContext:n.sendContext||{},context:n.context||Vb(),_callSiteFetch:n.fetch})}function VI(e,t=100){const n=new Set,o=[],s=(a,l)=>{if(l>t)throw new Error(`Middleware nesting depth exceeded maximum of ${t}. Check for circular references.`);a.forEach(c=>{c.options.middleware&&s(c.options.middleware,l+1),n.has(c)||(n.add(c),o.push(c))})};return s(e,0),o}async function UI(e,t){if(e==null)return{};if("~standard"in e){const n=await e["~standard"].validate(t);if(n.issues)throw new Error(JSON.stringify(n.issues,void 0,2));return n.value}if("parse"in e)return e.parse(t);if(typeof e=="function")return e(t);throw new Error("Invalid validator type!")}function BI(e){return{"~types":void 0,options:{inputValidator:e.validator??e.inputValidator,client:async({next:t,sendContext:n,fetch:o,...s})=>{const a={...s,context:n,fetch:o};return t(await e.extractedFn?.(a))},server:async({next:t,...n})=>{const o=await e.serverFn?.(n);return t({...n,result:o})}}}}var Vo=(e,t)=>{const n={type:"request",...t||e},o=s=>Vo({},Object.assign(n,{validator:s,inputValidator:s}));return{options:n,middleware:s=>Vo({},Object.assign(n,{middleware:s})),validator:o,inputValidator:o,client:s=>Vo({},Object.assign(n,{client:s})),server:s=>Vo({},Object.assign(n,{server:s}))}};function Bb(e,t){for(let n=0,o=t.length;n<o;n++){const s=t[n];e.has(s)||(e.add(s),s.extends&&Bb(e,s.extends))}}var WI=e=>({getOptions:async()=>{const t=await e();if(t.serializationAdapters){const n=new Set;Bb(n,t.serializationAdapters),t.serializationAdapters=Array.from(n)}return t},createMiddleware:Vo}
vendor: 4,104 bytes, line 11
11),Kh=function(e,t){return Kh=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var s in o)Object.prototype.hasOwnProperty.call(o,s)&&(n[s]=o[s])},Kh(e,t)};function Wb(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Kh(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Sn=function(){return Sn=Object.assign||function(t){for(var n,o=1,s=arguments.length;o<s;o++){n=arguments[o];for(var a in n)Object.prototype.hasOwnProperty.call(n,a)&&(t[a]=n[a])}return t},Sn.apply(this,arguments)};function po(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var s=0,o=Object.getOwnPropertySymbols(e);s<o.length;s++)t.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(e,o[s])&&(n[o[s]]=e[o[s]]);return n}function qb(e,t,n,o){var s=arguments.length,a=s<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,n):o,l;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")a=Reflect.decorate(e,t,n,o);else for(var c=e.length-1;c>=0;c--)(l=e[c])&&(a=(s<3?l(a):s>3?l(t,n,a):l(t,n))||a);return s>3&&a&&Object.defineProperty(t,n,a),a}function Gb(e,t){return function(n,o){t(n,o,e)}}function Hb(e,t,n,o,s,a){function l(x){if(x!==void 0&&typeof x!="function")throw new TypeError("Function expected");return x}for(var c=o.kind,h=c==="getter"?"get":c==="setter"?"set":"value",p=!t&&e?o.static?e:e.prototype:null,f=t||(p?Object.getOwnPropertyDescriptor(p,o.name):{}),m,y=!1,v=n.length-1;v>=0;v--){var k={};for(var S in o)k[S]=S==="access"?{}:o[S];for(var S in o.access)k.access[S]=o.access[S];k.addInitializer=function(x){if(y)throw new TypeError("Cannot add initializers after decoration has completed");a.push(l(x||null))};var b=(0,n[v])(c==="accessor"?{get:f.get,set:f.set}:f[h],k);if(c==="accessor"){if(b===void 0)continue;if(b===null||typeof b!="object")throw new TypeError("Object expected");(m=l(b.get))&&(f.get=m),(m=l(b.set))&&(f.set=m),(m=l(b.init))&&s.unshift(m)}else(m=l(b))&&(c==="field"?s.unshift(m):f[h]=m)}p&&Object.defineProperty(p,o.name,f),y=!0}function Kb(e,t,n){for(var o=arguments.length>2,s=0;s<t.length;s++)n=o?t[s].call(e,n):t[s].call(e);return o?n:void 0}function Yb(e){return typeof e=="symbol"?e:"".concat(e)}function Jb(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function Qb(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function me(e,t,n,o){function s(a){return a instanceof n?a:new n(function(l){l(a)})}return new(n||(n=Promise))(function(a,l){function c(f){try{p(o.next(f))}catch(m){l(m)}}function h(f){try{p(o.throw(f))}catch(m){l(m)}}function p(f){f.done?a(f.value):s(f.value).then(c,h)}p((o=o.apply(e,t||[])).next())})}function Xb(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},o,s,a,l=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return l.next=c(0),l.throw=c(1),l.return=c(2),typeof Symbol=="function"&&(l[Symbol.iterator]=function(){return this}),l;function c(p){return function(f){return h([p,f])}}function h(p){if(o)throw new TypeError("Generator is already executing.");for(;l&&(l=0,p[0]&&(n=0)),n;)try{if(o=1,s&&(a=p[0]&2?s.return:p[0]?s.throw||((a=s.return)&&a.call(s),0):s.next)&&!(a=a.call(s,p[1])).done)return a;switch(s=0,a&&(p=[p[0]&2,a.value]),p[0]){case 0:case 1:a=p;break;case 4:return n.label++,{value:p[1],done:!1};case 5:n.label++,s=p[1],p=[0];continue;case 7:p=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(p[0]===6||p[0]===2)){n=0;continue}if(p[0]===3&&(!a||p[1]>a[0]&&p[1]<a[3])){n.label=p[1];break}if(p[0]===6&&n.label<a[1]){n.label=a[1],a=p;break}if(a&&n.label<a[2]){n.label=a[2],n.ops.push(p);break}a[2]&&n.ops.pop(),n.trys.pop();continue}p=t.call(e,n)}catch(f){p=[6,f],s=0}
vendor: 4,894 bytes, line 11
11finally{o=a=0}if(p[0]&5)throw p[1];return{value:p[0]?p[1]:void 0,done:!0}}}var Hu=Object.create?(function(e,t,n,o){o===void 0&&(o=n);var s=Object.getOwnPropertyDescriptor(t,n);(!s||("get"in s?!t.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,o,s)}):(function(e,t,n,o){o===void 0&&(o=n),e[o]=t[n]});function Zb(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&Hu(t,e,n)}function Iu(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],o=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&o>=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function jp(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var o=n.call(e),s,a=[],l;try{for(;(t===void 0||t-- >0)&&!(s=o.next()).done;)a.push(s.value)}catch(c){l={error:c}}finally{try{s&&!s.done&&(n=o.return)&&n.call(o)}finally{if(l)throw l.error}}return a}function e0(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(jp(arguments[t]));return e}function t0(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var o=Array(e),s=0,t=0;t<n;t++)for(var a=arguments[t],l=0,c=a.length;l<c;l++,s++)o[s]=a[l];return o}function Fp(e,t,n){if(n||arguments.length===2)for(var o=0,s=t.length,a;o<s;o++)(a||!(o in t))&&(a||(a=Array.prototype.slice.call(t,0,o)),a[o]=t[o]);return e.concat(a||Array.prototype.slice.call(t))}function Ji(e){return this instanceof Ji?(this.v=e,this):new Ji(e)}function n0(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var o=n.apply(e,t||[]),s,a=[];return s=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),c("next"),c("throw"),c("return",l),s[Symbol.asyncIterator]=function(){return this},s;function l(v){return function(k){return Promise.resolve(k).then(v,m)}}function c(v,k){o[v]&&(s[v]=function(S){return new Promise(function(b,x){a.push([v,S,b,x])>1||h(v,S)})},k&&(s[v]=k(s[v])))}function h(v,k){try{p(o[v](k))}catch(S){y(a[0][3],S)}}function p(v){v.value instanceof Ji?Promise.resolve(v.value.v).then(f,m):y(a[0][2],v)}function f(v){h("next",v)}function m(v){h("throw",v)}function y(v,k){v(k),a.shift(),a.length&&h(a[0][0],a[0][1])}}function r0(e){var t,n;return t={},o("next"),o("throw",function(s){throw s}),o("return"),t[Symbol.iterator]=function(){return this},t;function o(s,a){t[s]=e[s]?function(l){return(n=!n)?{value:Ji(e[s](l)),done:!1}:a?a(l):l}:a}}function o0(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Iu=="function"?Iu(e):e[Symbol.iterator](),n={},o("next"),o("throw"),o("return"),n[Symbol.asyncIterator]=function(){return this},n);function o(a){n[a]=e[a]&&function(l){return new Promise(function(c,h){l=e[a](l),s(c,h,l.done,l.value)})}}function s(a,l,c,h){Promise.resolve(h).then(function(p){a({value:p,done:c})},l)}}function i0(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}var qI=Object.create?(function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}):function(e,t){e.default=t},Yh=function(e){return Yh=Object.getOwnPropertyNames||function(t){var n=[];for(var o in t)Object.prototype.hasOwnProperty.call(t,o)&&(n[n.length]=o);return n},Yh(e)};function s0(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=Yh(e),o=0;o<n.length;o++)n[o]!=="default"&&Hu(t,e,n[o]);return qI(t,e),t}function a0(e){return e&&e.__esModule?e:{default:e}}function l0(e,t,n,o){if(n==="a"&&!o)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?o:n==="a"?o.call(e):o?o.value:t.get(e)}function u0(e,t,n,o,s){if(o==="m")throw new TypeError("Private method is not writable");if(o==="a"&&!s)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!s:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return o==="a"?s.call(e,n):s?s.value=n:t.set(e,n),n}function c0(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function d0(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var o,s;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");o=t[Symbol.asyncDispose]}if(o===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");o=t[Symbol.dispose],n&&(s=o)}if(typeof o!="function")throw new TypeError("Object not disposable.");
11s&&(o=function(){try{s.call(this)}catch(a){return Promise.reject(a)}}),e.stack.push({value:t,dispose:o,async:n})}else n&&e.stack.push({async:!0});return t}var GI=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var o=new Error(n);return o.name="SuppressedError",o.error=e,o.suppressed=t,o};function h0(e){function t(a){e.error=e.hasError?new GI(a,e.error,"An error was suppressed during disposal."):a,e.hasError=!0}var n,o=0;function s(){for(;n=e.stack.pop();)try{if(!n.async&&o===1)return o=0,e.stack.push(n),Promise.resolve().then(s);if(n.dispose){var a=n.dispose.call(n.value);if(n.async)return o|=2,Promise.resolve(a).then(s,function(l){return t(l),s()})}else o|=1}catch(l){t(l)}if(o===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return s()}function p0(e,t){return typeof e=="string"&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(n,o,s,a,l){return o?t?".jsx":".js":s&&(!a||!l)?n:s+a+"."+l.toLowerCase()+"js"}):e}const HI={__extends:Wb,__assign:Sn,__rest:po,__decorate:qb,__param:Gb,__esDecorate:Hb,__runInitializers:Kb,__propKey:Yb,__setFunctionName:Jb,__metadata:Qb,__awaiter:me,__generator:Xb,__createBinding:Hu,__exportStar:Zb,__values:Iu,__read:jp,__spread:e0,__spreadArrays:t0,__spreadArray:Fp,__await:Ji,__asyncGenerator:n0,__asyncDelegator:r0,__asyncValues:o0,__makeTemplateOb
11ject:i0,__importStar:s0,__importDefault:a0,__classPrivateFieldGet:l0,__classPrivateFieldSet:u0,__classPrivateFieldIn:c0,__addDisposableResource:d0,__disposeResources:h0,__rewriteRelativeImportExtension:p0},KI=Object.freeze(Object.defineProperty({__proto__:null,__addDisposableResource:d0,get __assign(){return Sn},__asyncDelegator:r0,__asyncGenerator:n0,__asyncValues:o0,__await:Ji,__awaiter:me,__classPrivateFieldGet:l0,__classPrivateFieldIn:c0,__classPrivateFieldSet:u0,__createBinding:Hu,__decorate:qb,__disposeResources:h0,__esDecorate:Hb,__exportStar:Zb,__extends:Wb,__generator:Xb,__importDefault:a0,__importStar:s0,__makeTemplateObject:i0,__metadata:Qb,__param:Gb,__propKey:Yb,__read:jp,__rest:po,__rewriteRelativeImportExtension:p0,__runInitializers:Kb,__setFunctionName:Jb,__spread:e0,__spreadArray:Fp,__spreadArrays:t0,__values:Iu,default:HI},Symbol.toStringTag,{value:"Module"})),YI=e=>e?(...t)=>e(...t):(...t)=>fetch(...t);class $p extends Error{constructor(t,n="FunctionsError",o){super(t),this.name=n,this.context=o}}class JI extends $p{constructor(t){super("Failed to send a request to the Edge Function","FunctionsFetchError",t)}}class Jv extends $p{constructor(t){super("Relay Error invoking the Edge Function","FunctionsRelayError",t)}}class Qv extends $p{constructor(t){super("Edge Function returned a non-2xx status code","FunctionsHttpError",t)}}var Jh;(function(e){e.Any="any",e.ApNortheast1="ap-northeast-1",e.ApNortheast2="ap-northeast-2",e.ApSouth1="ap-south-1",e.ApSoutheast1="ap-southeast-1",e.ApSoutheast2="ap-southeast-2",e.CaCentral1="ca-central-1",e.EuCentral1="eu-central-1",e.EuWest1="eu-west-1",e.EuWest2="eu-west-2",e.EuWest3="eu-west-3",e.SaEast1="sa-east-1",e.UsEast1="us-east-1",e.UsWest1="us-west-1",e.UsWest2="us-west-2"})(Jh||(Jh={}));class QI{constructor(t,{headers:n={},customFetch:o,region:s=Jh.Any}={}){this.url=t,this.headers=n,this.region=s,this.fetch=YI(o)}setAuth(t){this.headers.Authorization=`Bearer ${t}`}invoke(t){return me(this,arguments,void 0,function*(n,o={}){var s;let a,l;try{const{headers:c,method:h,body:p,signal:f,timeout:m}=o;let y={},{region:v}=o;v||(v=this.region);const k=new URL(`${this.url}/${n}`);v&&v!=="any"&&(y["x-region"]=v,k.searchParams.set("forceFunctionRegion",v));let S;p&&(c&&!Object.prototype.hasOwnProperty.call(c,"Content-Type")||!c)?typeof Blob<"u"&&p instanceof Blob||p instanceof ArrayBuffer?(y["Content-Type"]="application/octet-stream",S=p):typeof p=="string"?(y["Content-Type"]="text/plain",S=p):typeof FormData<"u"&&p instanceof FormData?S=p:(y["Content-Type"]="application/json",S=JSON.stringify(p)):S=p;let b=f;m&&(l=new AbortController,a=setTimeout(()=>l.abort(),m),f?(b=l.signal,f.addEventListener("abort",()=>l.abort())):b=l.signal);const x=yield this.fetch(k.toString(),{method:h||"POST",headers:Object.assign(Object.assign(Object.assign({},y),this.headers),c),body:S,signal:b}).catch(O=>{throw new JI(O)}),E=x.headers.get("x-relay-error");if(E&&E==="true")throw new Jv(x);if(!x.ok)throw new Qv(x);let P=((s=x.headers.get("Content-Type"))!==null&&s!==void 0?s:"text/plain").split(";")[0].trim(),I;return P==="application/json"?I=yield x.json():P==="application/octet-stream"||P==="application/pdf"?I=yield x.blob():P==="text/event-stream"?I=x:P==="multipart/form-data"?I=yield x.formData():I=yield x.text(),{data:I,error:null,response:x}}catch(c){return{data:null,error:c,response:c instanceof Qv||c instanceof Jv?c.context:void 0}}finally{a&&clearTimeout(a)}})}}var Ot={};const Zi=u_(KI);var Gl={},Hl={},Kl={},Yl={},Jl={},Ql={},Xv;function f0(){if(Xv)return Ql;Xv=1,Object.defineProperty(Ql,"__esModule",{value:!0});class e extends Error{constructor(n){super(n.message),this.name="PostgrestError",this.details=n.details,this.hint=n.hint,this.co
11de=n.code}}return Ql.default=e,Ql}var Zv;function m0(){if(Zv)return Jl;Zv=1,Object.defineProperty(Jl,"__esModule",{value:!0});const t=Zi.__importDefault(f0());class n{constructor(s){var a,l;this.shouldThrowOnError=!1,this.method=s.method,this.url=s.url,this.headers=new Headers(s.headers),this.schema=s.schema,this.body=s.body,this.shouldThrowOnError=(a=s.shouldThrowOnError)!==null&&a!==void 0?a:!1,this.signal=s.signal,this.isMaybeSingle=(l=s.isMaybeSingle)!==null&&l!==void 0?l:!1,s.fetch?this.fetch=s.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(s,a){return this.headers=new Headers(this.headers),this.headers.set(s,a),this}then(s,a){this.schema===void 0||(["GET","HEAD"].includes(this.method)?this.headers.set("Accept-Profile",this.schema):this.headers.set("Content-Profile",this.schema)),this.method!=="GET"&&this.method!=="HEAD"&&this.headers.set("Content-Type","application/json");const l=this.fetch;let c=l(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async h=>{var p,f,m,y;let v=null,k=null,S=null,b=h.status,x=h.statusText;if(h.ok){if(this.method!=="HEAD"){const O=await h.text();O===""||(this.headers.get("Accept")==="text/csv"||this.headers.get("Accept")&&(!((p=this.headers.get("Accept"))===null||p===void 0)&&p.includes("application/vnd.pgrst.plan+text"))?k=O:k=JSON.parse(O))}const P=(f=this.headers.get("Prefer"))===null||f===void 0?void 0:f.match(/count=(exact|planned|estimated)/),I=(m=h.headers.get("content-range"))===null||m===void 0?void 0:m.split("/");P&&I&&I.length>1&&(S=parseInt(I[1])),this.isMaybeSingle&&this.method==="GET"&&Array.isArray(k)&&(k.length>1?(v={code:"PGRST116",details:`Results contain ${k.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},k=null,S=null,b=406,x="Not Acceptable"):k.length===1?k=k[0]:k=null)}else{const P=await h.text();try{v=JSON.parse(P),Array.isArray(v)&&h.status===404&&(k=[],v=null,b=200,x="OK")}catch{h.status===404&&P===""?(b=204,x="No Content"):v={message:P}}if(v&&this.isMaybeSingle&&(!((y=v?.details)===null||y===void 0)&&y.includes("0 rows"))&&(v=null,b=200,x="OK"),v&&this.shouldThrowOnError)throw new t.default(v)}return{error:v,data:k,count:S,status:b,statusText:x}});return this.shouldThrowOnError||(c=c.catch(h=>{var p,f,m;return{error:{message:`${(p=h?.name)!==null&&p!==void 0?p:"FetchError"}: ${h?.message}`,details:`${(f=h?.stack)!==null&&f!==void 0?f:""}`,hint:"",code:`${(m=h?.code)!==null&&m!==void 0?m:""}`},data:null,count:null,status:0,statusText:""}})),c.then(s,a)}returns(){return this}overrideTypes(){return this}}return Jl.default=n,Jl}var ey;function g0(){if(ey)return Yl;ey=1,Object.defineProperty(Yl,"__esModule",{value:!0});const t=Zi.__importDefault(m0());
11class n extends t.default{select(s){let a=!1;const l=(s??"*").split("").map(c=>/\s/.test(c)&&!a?"":(c==='"'&&(a=!a),c)).join("");return this.url.searchParams.set("select",l),this.headers.append("Prefer","return=representation"),this}order(s,{ascending:a=!0,nullsFirst:l,foreignTable:c,referencedTable:h=c}={}){const p=h?`${h}.order`:"order",f=this.url.searchParams.get(p);return this.url.searchParams.set(p,`${f?`${f},`:""}${s}.${a?"asc":"desc"}${l===void 0?"":l?".nullsfirst":".nullslast"}`),this}limit(s,{foreignTable:a,referencedTable:l=a}={}){const c=typeof l>"u"?"limit":`${l}.limit`;return this.url.searchParams.set(c,`${s}`),this}range(s,a,{foreignTable:l,referencedTable:c=l}={}){const h=typeof c>"u"?"offset":`${c}.offset`,p=typeof c>"u"?"limit":`${c}.limit`;return this.url.searchParams.set(h,`${s}`),this.url.searchParams.set(p,`${a-s+1}`),this}abortSignal(s){return this.signal=s,this}single(){return this.headers.set("Accept","application/vnd.pgrst.object+json"),this}maybeSingle(){return this.method==="GET"?this.headers.set("Accept","application/json"):this.headers.set("Accept","application/vnd.pgrst.object+json"),this.isMaybeSingle=!0,this}csv(){return this.headers.set("Accept","text/csv"),this}geojson(){return this.headers.set("Accept","application/geo+json"),this}explain({analyze:s=!1,verbose:a=!1,settings:l=!1,buffers:c=!1,wal:h=!1,format:p="text"}={}){var f;const m=[s?"analyze":null,a?"verbose":null,l?"settings":null,c?"buffers":null,h?"wal":null].filter(Boolean).join("|"),y=(f=this.headers.get("Accept"))!==null&&f!==void 0?f:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${p}; for="${y}"; options=${m};`),p==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(s){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${s}`),this}}return Yl.default=n,Yl}var ty;function Vp(){if(ty)return Kl;ty=1,Object.defineProperty(Kl,"__esModule",{value:!0});const t=Zi.__importDefault(g0()),n=new RegExp("[,()]");class o extends t.default{eq(a,l){return this.url.searchParams.append(a,`eq.${l}`),this}neq(a,l){return this.url.searchParams.append(a,`neq.${l}`),this}gt(a,l){return this.url.searchParams.append(a,`gt.${l}`),this}gte(a,l){return this.url.searchParams.append(a,`gte.${l}`),this}lt(a,l){return this.url.searchParams.append(a,`lt.${l}`),this}lte(a,l){return this.url.searchParams.append(a,`lte.${l}`),this}like(a,l){return this.url.searchParams.append(a,`like.${l}`),this}likeAllOf(a,l){return this.url.searchParams.append(a,`like(all).{${l.join(",")}}`),this}likeAnyOf(a,l){return this.url.searchParams.append(a,`like(any).{${l.join(",")}}`),this}ilike(a,l){return this.url.searchParams.append(a,`ilike.${l}`),this}ilikeAllOf(a,l){return this.url.searchParams.append(a,`ilike(all).{${l.join(",")}}`),this}ilikeAnyOf(a,l){return this.url.searchParams.append(a,`ilike(any).{${l.join(",")}}`),this}is(a,l){return this.url.searchParams.append(a,`is.${l}`),this}in(a,l){const c=Array.from(new Set(l)).map(h=>typeof h=="string"&&n.test(h)?`"${h}"`:`${h}`).join(",");return this.url.searchParams.append(a,`in.(${c})`),this}contains(a,l){return typeof l=="string"?this.url.searchParams.append(a,`cs.${l}`):Array.isArray(l)?this.url.searchParams.append(a,`cs.{${l.join(",")}}`):this.url.searchParams.append(a,`cs.${JSON.stringify(l)}`),this}containedBy(a,l){return typeof l=="string"?this.url.searchParams.append(a,`cd.${l}`):Array.isArray(l)?this.url.searchParams.append(a,`cd.{${l.join(",")}}`):this.url.searchParams.append(a,`cd.${JSON.stringify(l)}`),this}rangeGt(a,l){return this.url.searchParams.append(a,`sr.${l}`),this}rangeGte(a,l){return this.url.searchParams.append(a,`nxl.${l}`),this}rangeLt(a,l){return this.url.searchParams.append(a,`sl.${l}`),this}rangeLte(a,l){return this.url.searchParams.append(a,`nxr.${l}`),this}rangeAdjacent(a,l){return this.url.searchParams.append(a,`adj.${l}`),this}overlaps(a,l){return typeof l=="string"?this.url.searchParams.append(a,`ov.${l}`):this.url.searchParams.append(a,`ov.{${l.join(",")}}`),this}textSearch(a,l,{config:c,type:h}={}){let p="";
11h==="plain"?p="pl":h==="phrase"?p="ph":h==="websearch"&&(p="w");const f=c===void 0?"":`(${c})`;return this.url.searchParams.append(a,`${p}fts${f}.${l}`),this}match(a){return Object.entries(a).forEach(([l,c])=>{this.url.searchParams.append(l,`eq.${c}`)}),this}not(a,l,c){return this.url.searchParams.append(a,`not.${l}.${c}`),this}or(a,{foreignTable:l,referencedTable:c=l}={}){const h=c?`${c}.or`:"or";return this.url.searchParams.append(h,`(${a})`),this}filter(a,l,c){return this.url.searchParams.append(a,`${l}.${c}`),this}}return Kl.default=o,Kl}var ny;function v0(){if(ny)return Hl;ny=1,Object.defineProperty(Hl,"__esModule",{value:!0});const t=Zi.__importDefault(Vp());class n{constructor(s,{headers:a={},schema:l,fetch:c}){this.url=s,this.headers=new Headers(a),this.schema=l,this.fetch=c}select(s,a){const{head:l=!1,count:c}=a??{},h=l?"HEAD":"GET";let p=!1;const f=(s??"*").split("").map(m=>/\s/.test(m)&&!p?"":(m==='"'&&(p=!p),m)).join("");return this.url.searchParams.set("select",f),c&&this.headers.append("Prefer",`count=${c}`),new t.default({method:h,url:this.url,headers:this.headers,schema:this.schema,fetch:this.fetch})}insert(s,{count:a,defaultToNull:l=!0}={}){var c;const h="POST";if(a&&this.headers.append("Prefer",`count=${a}`),l||this.headers.append("Prefer","missing=default"),Array.isArray(s)){const p=s.reduce((f,m)=>f.concat(Object.keys(m)),[]);if(p.length>0){const f=[...new Set(p)].map(m=>`"${m}"`);this.url.searchParams.set("columns",f.join(","))}}return new t.default({method:h,url:this.url,headers:this.headers,schema:this.schema,body:s,fetch:(c=this.fetch)!==null&&c!==void 0?c:fetch})}upsert(s,{onConflict:a,ignoreDuplicates:l=!1,count:c,defaultToNull:h=!0}={}){var p;const f="POST";if(this.headers.append("Prefer",`resolution=${l?"ignore":"merge"}-duplicates`),a!==void 0&&this.url.searchParams.set("on_conflict",a),c&&this.headers.append("Prefer",`count=${c}`),h||this.headers.append("Prefer","missing=default"),Array.isArray(s)){const m=s.reduce((y,v)=>y.concat(Object.keys(v)),[]);if(m.length>0){const y=[...new Set(m)].map(v=>`"${v}"`);this.url.searchParams.set("columns",y.join(","))}}return new t.default({method:f,url:this.url,headers:this.headers,schema:this.schema,body:s,fetch:(p=this.fetch)!==null&&p!==void 0?p:fetch})}update(s,{count:a}={}){var l;const c="PATCH";return a&&this.headers.append("Prefer",`count=${a}`),new t.default({method:c,url:this.url,headers:this.headers,schema:this.schema,body:s,fetch:(l=this.fetch)!==null&&l!==void 0?l:fetch})}delete({count:s}={}){var a;const l="DELETE";return s&&this.headers.append("Prefer",`count=${s}`),new t.default({method:l,url:this.url,headers:this.headers,schema:this.schema,fetch:(a=this.fetch)!==null&&a!==void 0?a:fetch})}}return Hl.default=n,Hl}var ry;function XI(){if(ry)return Gl;ry=1,Object.defineProperty(Gl,"__esModule",{value:!0});const e=Zi,t=e.__importDefault(v0()),n=e.__importDefault(Vp());class o{constructor(a,{headers:l={},schema:c,fetch:h}={}){this.url=a,this.headers=new Headers(l),this.schemaName=c,this.fetch=h}from(a){const l=new URL(`${this.url}/${a}`);return new t.default(l,{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch})}schema(a){return new o(this.url,{headers:this.headers,schema:a,fetch:this.fetch})}rpc(a,l={},{head:c=!1,get:h=!1,count:p}={}){var f;let m;const y=new URL(`${this.url}/rpc/${a}`);let v;c||h?(m=c?"HEAD":"GET",Object.entries(l).filter(([S,b])=>b!==void 0).map(([S,b])=>[S,Array.isArray(b)?`{${b.join(",")}}`:`${b}`]).forEach(([S,b])=>{y.searchParams.append(S,b)})):(m="POST",v=l);const k=new Headers(this.headers);return p&&k.set("Prefer",`count=${p}`),new n.default({method:m,url:y,headers:k,schema:this.schemaName,body:v,fetch:(f=this.fetch)!==null&&f!==void 0?f:fetch})}}return Gl.default=o,Gl}var oy;function ZI(){if(oy)return Ot;oy=1,Object.defineProperty(Ot,"__esModule",{value:!0}),Ot.PostgrestError=Ot.PostgrestBuilder=Ot.PostgrestTransformBuilder=Ot.PostgrestFilterBuilder=Ot.PostgrestQueryBuilder=Ot.PostgrestClient=void 0;const e=Zi,t=e.__importDefault(XI());Ot.PostgrestClient=t.default;const n=e.__importDefault(v0());Ot.PostgrestQueryBuilder=n.default;const o=e.__importDefault(Vp());Ot.PostgrestFilterBuilder=o.default;const s=e.__importDefault(g0());Ot.PostgrestTransformBuilder=s.default;const a=e.__importDefault(m0());Ot.PostgrestBuilder=a.default;const l=e.__importDefault(f0());return Ot.PostgrestError=l.default,Ot.default={PostgrestClient:t.default,PostgrestQueryBuilder:n.default,PostgrestFilterBuilder:o.default,PostgrestTransformBuilder:s.default,PostgrestBuilder:
11a.default,PostgrestError:l.default},Ot}var y0=ZI();const w0=kp(y0),eR=hw({__proto__:null,default:w0},[y0]),{PostgrestClient:tR,PostgrestQueryBuilder:XV,PostgrestFilterBuilder:ZV,PostgrestTransformBuilder:eU,PostgrestBuilder:tU,PostgrestError:nU}=w0||eR;class nR{static detectEnvironment(){var t;if(typeof WebSocket<"u")return{type:"native",constructor:WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocket<"u")return{type:"native",constructor:globalThis.WebSocket};if(typeof global<"u"&&typeof global.WebSocket<"u")return{type:"native",constructor:global.WebSocket};if(typeof globalThis<"u"&&typeof globalThis.WebSocketPair<"u"&&typeof globalThis.WebSocket>"u")return{type:"cloudflare",error:"Cloudflare Workers detected. WebSocket clients are not supported in Cloudflare Workers.",workaround:"Use Cloudflare Workers WebSocket API for server-side WebSocket handling, or deploy to a different runtime."};if(typeof globalThis<"u"&&globalThis.EdgeRuntime||typeof navigator<"u"&&(!((t=navigator.userAgent)===null||t===void 0)&&t.includes("Vercel-Edge")))return{type:"unsupported",error:"Edge runtime detected (Vercel Edge/Netlify Edge). WebSockets are not supported in edge functions.",workaround:"Use serverless functions or a different deployment target for WebSocket functionality."};if(typeof process<"u"){const n=process.versions;if(n&&n.node){const o=n.node,s=parseInt(o.replace(/^v/,"").split(".")[0]);return s>=22?typeof globalThis.WebSocket<"u"?{type:"native",constructor:globalThis.WebSocket}:{type:"unsupported",error:`Node.js ${s} detected but native WebSocket not found.`,workaround:"Provide a WebSocket implementation via the transport option."}:{type:"unsupported",error:`Node.js ${s} detected without native WebSocket support.`,workaround:`For Node.js < 22, install "ws" package and provide it via the transport option: 12import ws from "ws" 13new RealtimeClient(url, { transport: ws })`}}}return{type:"unsupported",error:"Unknown JavaScript runtime without WebSocket support.",workaround:"Ensure you're running in a supported environment (browser, Node.js, Deno) or provide a custom WebSocket implementation."}}static getWebSocketConstructor(){const t=this.detectEnvironment();if(t.constructor)return t.constructor;let n=t.error||"WebSocket not supported in this environment.";throw t.workaround&&(n+=` 14 15Suggested solution: ${t.workaround}`),new Error(n)}static createWebSocket(t,n){const o=this.getWebSocketConstructor();return new o(t,n)}static isWebSocketSupported(){try{const t=this.detectEnvironment();return t.type==="native"||t.type==="ws"}catch{return!1}}}const rR="2.81.1",oR=`realtime-js/${rR}`,b0="1.0.0",iR="2.0.0",iy=b0,Qh=1e4,sR=1e3,aR=100;var zo;(function(e){e[e.connecting=0]="connecting",e[e.open=1]="open",e[e.closing=2]="closing",e[e.closed=3]="closed"})(zo||(zo={}));var ht;(function(e){e.closed="closed",e.errored="errored",e.joined="joined",e.joining="joining",e.leaving="leaving"})(ht||(ht={}));var bn;(function(e){e.close="phx_close",e.error="phx_error",e.join="phx_join",e.reply="phx_reply",e.leave="phx_leave",e.access_token="access_token"})(bn||(bn={}));var Xh;(function(e){e.websocket="websocket"})(Xh||(Xh={}));var No;(function(e){e.Connecting="connecting",e.Open="open",e.Closing="closing",e.Closed="closed"})(No||(No={}));class lR{constructor(){this.HEADER_LENGTH=1,this.META_LENGTH=4,this.USER_BROADCAST_PUSH_META_LENGTH=5,this.KINDS={push:0,reply:1,broadcast:2,userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST="broadcast"}encode(t,n){if(this._isArrayBuffer(t.payload))return n(this._binaryEncodePush(t));if(t.event===this.BROADCAST&&!(t.payload instanceof ArrayBuffer)&&typeof t.payload.event=="string")return n(this._binaryEncodeUserBroadcastPush(t));let o=[t.join_ref,t.ref,t.topic,t.event,t.payload];return n(JSON.stringify(o))}_binaryEncodePush(t){const{join_ref:n,ref:o,event:s,topic:a,payload:l}=t,c=this.META_LENGTH+n.length+o.length+a.length+s.length,h=new ArrayBuffer(this.HEADER_LENGTH+c);let p=new DataView(h),f=0;p.setUint8(f++,this.KINDS.push),p.setUint8(f++,n.length),p.setUint8(f++,o.length),p.setUint8(f++,a.length),p.setUint8(f++,s.length),Array.from(n,y=>
15p.setUint8(f++,y.charCodeAt(0))),Array.from(o,y=>p.setUint8(f++,y.charCodeAt(0))),Array.from(a,y=>p.setUint8(f++,y.charCodeAt(0))),Array.from(s,y=>p.setUint8(f++,y.charCodeAt(0)));var m=new Uint8Array(h.byteLength+l.byteLength);return m.set(new Uint8Array(h),0),m.set(new Uint8Array(l),h.byteLength),m.buffer}_binaryEncodeUserBroadcastPush(t){var n;return this._isArrayBuffer((n=t.payload)===null||n===void 0?void 0:n.payload)?this._encodeBinaryUserBroadcastPush(t):this._encodeJsonUserBroadcastPush(t)}_encodeBinaryUserBroadcastPush(t){var n,o;const{join_ref:s,ref:a,topic:l}=t,c=t.payload.event,h=(o=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&o!==void 0?o:new ArrayBuffer(0),p=this.USER_BROADCAST_PUSH_META_LENGTH+s.length+a.length+l.length+c.length,f=new ArrayBuffer(this.HEADER_LENGTH+p);let m=new DataView(f),y=0;m.setUint8(y++,this.KINDS.userBroadcastPush),m.setUint8(y++,s.length),m.setUint8(y++,a.length),m.setUint8(y++,l.length),m.setUint8(y++,c.length),m.setUint8(y++,this.BINARY_ENCODING),Array.from(s,k=>m.setUint8(y++,k.charCodeAt(0))),Array.from(a,k=>m.setUint8(y++,k.charCodeAt(0))),Array.from(l,k=>m.setUint8(y++,k.charCodeAt(0))),Array.from(c,k=>m.setUint8(y++,k.charCodeAt(0)));var v=new Uint8Array(f.byteLength+h.byteLength);return v.set(new Uint8Array(f),0),v.set(new Uint8Array(h),f.byteLength),v.buffer}_encodeJsonUserBroadcastPush(t){var n,o;const{join_ref:s,ref:a,topic:l}=t,c=t.payload.event,h=(o=(n=t.payload)===null||n===void 0?void 0:n.payload)!==null&&o!==void 0?o:{},f=new TextEncoder().encode(JSON.stringify(h)).buffer,m=this.USER_BROADCAST_PUSH_META_LENGTH+s.length+a.length+l.length+c.length,y=new ArrayBuffer(this.HEADER_LENGTH+m);let v=new DataView(y),k=0;v.setUint8(k++,this.KINDS.userBroadcastPush),v.setUint8(k++,s.length),v.setUint8(k++,a.length),v.setUint8(k++,l.length),v.setUint8(k++,c.length),v.setUint8(k++,this.JSON_ENCODING),Array.from(s,b=>v.setUint8(k++,b.charCodeAt(0))),Array.from(a,b=>v.setUint8(k++,b.charCodeAt(0))),Array.from(l,b=>v.setUint8(k++,b.charCodeAt(0))),Array.from(c,b=>v.setUint8(k++,b.charCodeAt(0)));var S=new Uint8Array(y.byteLength+f.byteLength);return S.set(new Uint8Array(y),0),S.set(new Uint8Array(f),y.byteLength),S.buffer}decode(t,n){if(this._isArrayBuffer(t)){let o=this._binaryDecode(t);return n(o)}if(typeof t=="string"){const o=JSON.parse(t),[s,a,l,c,h]=o;return n({join_ref:s,ref:a,topic:l,event:c,payload:h})}return n({})}_binaryDecode(t){const n=new DataView(t),o=n.getUint8(0),s=new TextDecoder;switch(o){case this.KINDS.push:return this._decodePush(t,n,s);case this.KINDS.reply:return this._decodeReply(t,n,s);case this.KINDS.broadcast:return this._decodeBroadcast(t,n,s);case this.KINDS.userBroadcast:return this._decodeUserBroadcast(t,n,s)}}_decodePush(t,n,o){const s=n.getUint8(1),a=n.getUint8(2),l=n.getUint8(3);let c=this.HEADER_LENGTH+this.META_LENGTH-1;const h=o.decode(t.slice(c,c+s));c=c+s;const p=o.decode(t.slice(c,c+a));c=c+a;const f=o.decode(t.slice(c,c+l));c=c+l;const m=JSON.parse(o.decode(t.slice(c,t.byteLength)));return{join_ref:h,ref:null,topic:p,event:f,payload:m}}_decodeReply(t,n,o){const s=n.getUint8(1),a=n.getUint8(2),l=n.getUint8(3),c=n.getUint8(4);let h=this.HEADER_LENGTH+this.META_LENGTH;const p=o.decode(t.slice(h,h+s));h=h+s;const f=o.decode(t.slice(h,h+a));h=h+a;const m=o.decode(t.slice(h,h+l));h=h+l;const y=o.decode(t.slice(h,h+c));h=h+c;const v=JSON.parse(o.decode(t.slice(h,t.byteLength))),k={status:y,response:v};return{join_ref:p,ref:f,topic:m,event:bn.reply,payload:k}}_decodeBroadcast(t,n,o){const s=n.getUint8(1),a=n.getUint8(2);let l=this.HEADER_LENGTH+2;const c=o.decode(t.slice(l,l+s));l=l+s;const h=o.decode(t.slice(l,l+a));l=l+a;const p=JSON.parse(o.decode(t.slice(l,t.byteLength)));return{join_ref:null,ref:null,topic:c,event:h,payload:p}}_decodeUserBroadcast(t,n,o){const s=n.getUint8(1),a=n.getUint8(2),l=n.getUint8(3),c=n.getUint8(4);let h=this.HEADER_LENGTH+4;const p=o.decode(t.slice(h,h+s));h=h+s;const f=o.decode(t.slice(h,h+a));h=h+a;const m=o.decode(t.slice(h,h+l));h=h+l;const y=t.slice(h,t.byteLength),v=c===this.JSON_ENCODING?JSON.parse(o.decode(y)):y,k={type:this.BROADCAST,event:f,payload:v};return l>0&&(k.meta=JSON.parse(m)),{join_ref:null,ref:null,topic:p,event:this.BROADCAST,payload:k}}_isArrayBuffer(t){var n;return t instanceof ArrayBuffer||((n=t?.constructor)===null||n===void 0?void 0:n.name)==="ArrayBuffer"}}class S0{constructor(t,n){this.callback=t,this.timerCalc=n,this.timer=void 0,this.tries=0,this.callback=t,this.timerCalc=n}reset(){this.tries=0,clearTimeout(this.timer),this.timer=void 0}scheduleTimeout(){clearTimeout(this.timer),this.timer=setTimeout(()=>{this.tries=this.tries+1,this.callback()},this.timerCalc(this.tries+1))}}var Ve;(function(e){e.abstime="abstime",e.bool="bool",e.date="date",e.daterange="daterange",e.float4="float4",e.float8="float8",e.int2="int2",e.int4="int4",e.int4range="int4range",e.int8="int8",e.int8range="int8range",e.json="json",e.jsonb="jsonb",e.money="money",e.numeric="numeric",e.oid="oid",e.reltime="reltime",e.text="text",e.time="time",e.timestamp="timestamp",e.timestamptz="timestamptz",e.timetz="timetz",e.tsrange="tsrange",e.tstzrange="tstzrange"})(Ve||(Ve={}));const sy=(e,t,n={})=>{var o;const s=(o=n.skipTypes)!==null&&o!==void 0?o:[];return t?Object.keys(t).reduce((a,l)=>(a[l]=uR(l,e,t,s),a),{}):{}},uR=(e,t,n,o)=>{const s=t.find(c=>c.name===e),a=s?.type,l=n[e];return a&&!o.includes(a)?k0(a,l):Zh(l)},k0=(e,t)=>{if(e.charAt(0)==="_"){const n=e.slice(1,e.length);return pR(t,n)}switch(e){case Ve.bool:return cR(t);case Ve.float4:case Ve.float8:case Ve.int2:case Ve.int4:case Ve.int8:case Ve.numeric:case Ve.oid:return dR(t);case Ve.json:case Ve.jsonb:return hR(t);case Ve.timestamp:return fR(t);case Ve.abstime:case Ve.date:case Ve.daterange:case Ve.int4range:case Ve.int8range:case Ve.money:case Ve.reltime:case Ve.text:case Ve.time:case Ve.timestamptz:case Ve.timetz:case Ve.tsrange:case Ve.tstzrange:return Zh(t);default:return Zh(t)}},Zh=e=>e,cR=e=>{switch(e){case"t":return!0;case"f":return!1;default:return e}},dR=e=>{if(typeof e=="string"){const t=parseFloat(e);
15if(!Number.isNaN(t))return t}return e},hR=e=>{if(typeof e=="string")try{return JSON.parse(e)}catch(t){return console.log(`JSON parse error: ${t}`),e}return e},pR=(e,t)=>{if(typeof e!="string")return e;const n=e.length-1,o=e[n];if(e[0]==="{"&&o==="}"){let a;const l=e.slice(1,n);try{a=JSON.parse("["+l+"]")}catch{a=l?l.split(","):[]}return a.map(c=>k0(t,c))}return e},fR=e=>typeof e=="string"?e.replace(" ","T"):e,A0=e=>{const t=new URL(e);return t.protocol=t.protocol.replace(/^ws/i,"http"),t.pathname=t.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),t.pathname===""||t.pathname==="/"?t.pathname="/api/broadcast":t.pathname=t.pathname+"/api/broadcast",t.href};class hh{constructor(t,n,o={},s=Qh){this.channel=t,this.event=n,this.payload=o,this.timeout=s,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(t){this.timeout=t,this._cancelRefEvent(),this.ref="",this.refEvent=null,this.receivedResp=null,this.sent=!1,this.send()}send(){this._hasReceived("timeout")||(this.startTimeout(),this.sent=!0,this.channel.socket.push({topic:this.channel.topic,event:this.event,payload:this.payload,ref:this.ref,join_ref:this.channel._joinRef()}))}updatePayload(t){this.payload=Object.assign(Object.assign({},this.payload),t)}receive(t,n){var o;return this._hasReceived(t)&&n((o=this.receivedResp)===null||o===void 0?void 0:o.response),this.recHooks.push({status:t,callback:n}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const t=n=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=n,this._matchReceive(n)};this.channel._on(this.refEvent,{},t),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(t,n){this.refEvent&&this.channel._trigger(this.refEvent,{status:t,response:n})}destroy(){this._cancelRefEvent(),this._cancelTimeout()}_cancelRefEvent(){this.refEvent&&this.channel._off(this.refEvent,{})}_cancelTimeout(){clearTimeout(this.timeoutTimer),this.timeoutTimer=void 0}_matchReceive({status:t,response:n}){this.recHooks.filter(o=>o.status===t).forEach(o=>o.callback(n))}_hasReceived(t){return this.receivedResp&&this.receivedResp.status===t}}var ay;(function(e){e.SYNC="sync",e.JOIN="join",e.LEAVE="leave"})(ay||(ay={}));class ra{constructor(t,n){this.channel=t,this.state={},this.pendingDiffs=[],this.joinRef=null,this.enabled=!1,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const o=n?.events||{state:"presence_state",diff:"presence_diff"};this.channel._on(o.state,{},s=>{const{onJoin:a,onLeave:l,onSync:c}=this.caller;this.joinRef=this.channel._joinRef(),this.state=ra.syncState(this.state,s,a,l),this.pendingDiffs.forEach(h=>{this.state=ra.syncDiff(this.state,h,a,l)}),this.pendingDiffs=[],c()}),this.channel._on(o.diff,{},s=>{const{onJoin:a,onLeave:l,onSync:c}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(s):(this.state=ra.syncDiff(this.state,s,a,l),c())}),this.onJoin((s,a,l)=>{this.channel._trigger("presence",{event:"join",key:s,currentPresences:a,newPresences:l})}),this.onLeave((s,a,l)=>{this.channel._trigger("presence",{event:"leave",key:s,currentPresences:a,leftPresences:l})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(t,n,o,s){const a=this.cloneDeep(t),l=this.transformState(n),c={},h={};return this.map(a,(p,f)=>{l[p]||(h[p]=f)}),this.map(l,(p,f)=>{const m=a[p];if(m){const y=f.map(b=>b.presence_ref),v=m.map(b=>b.presence_ref),k=f.filter(b=>v.indexOf(b.presence_ref)<0),S=m.filter(b=>y.indexOf(b.presence_ref)<0);k.length>0&&(c[p]=k),S.length>0&&(h[p]=S)}else c[p]=f}),this.syncDiff(a,{joins:c,leaves:h},o,s)}static syncDiff(t,n,o,s){const{joins:a,leaves:l}={joins:this.transformState(n.joins),leaves:this.transformState(n.leaves)};return o||(o=()=>{}),s||(s=()=>{}),this.map(a,(c,h)=>{var p;const f=(p=t[c])!==null&&p!==void 0?p:[];if(t[c]=this.cloneDeep(h),f.length>0){const m=t[c].map(v=>v.presence_ref),y=f.filter(v=>m.indexOf(v.presence_ref)<0);t[c].unshift(...y)}o(c,f,h)}),this.map(l,(c,h)=>{let p=t[c];if(!p)return;const f=h.map(m=>m.presence_ref);p=p.filter(m=>f.indexOf(m.presence_ref)<0),t[c]=p,s(c,p,h),p.length===0&&delete t[c]}),t}static map(t,n){return Object.getOwnPropertyNames(t).map(o=>n(o,t[o]))}static transformState(t){return t=this.cloneDeep(t),Object.getOwnPropertyNames(t).reduce((n,o)=>{const s=t[o];return"metas"in s?n[o]=s.metas.map(a=>(a.presence_ref=a.phx_ref,delete a.phx_ref,delete a.phx_ref_prev,a)):n[o]=s,n},{})}static cloneDeep(t){return JSON.parse(JSON.stringify(t))}onJoin(t){this.caller.onJoin=t}onLeave(t){this.caller.onLeave=t}onSync(t){this.caller.onSync=t}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var ly;(function(e){e.ALL="*",e.INSERT="INSERT",e.UPDATE="UPDATE",e.DELETE="DELETE"})(ly||(ly={}));var oa;(function(e){e.BROADCAST="broadcast",e.PRESENCE="presence",e.POSTGRES_CHANGES="postgres_changes",e.SYSTEM="system"})(oa||(oa={}));var yr;(function(e){e.SUBSCRIBED="SUBSCRIBED",e.TIMED_OUT="TIMED_OUT",e.CLOSED="CLOSED",e.CHANNEL_ERROR="CHANNEL_ERROR"})(yr||(yr={}));class Up{constructor(t,n={config:{}},o){var s,a;if(this.topic=t,this.params=n,this.socket=o,this.bindings={},this.state=ht.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=t.replace(/^realtime:/i,""),this.params.config=Object.assign({broadcast:{ack:!1,self:!1},presence:{key:"",enabled:!1},private:!1},n.config),this.timeout=this.socket.timeout,this.joinPush=new hh(this,bn.join,this.params,this.timeout),this.rejoinTimer=new S0(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=ht.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(l=>l.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=ht.closed,this.socket._remove(this)}),this._onError(l=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,l),this.state=ht.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=ht.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("error",l=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,l),this.state=ht.errored,this.rejoinTimer.scheduleTimeout())}),this._on(bn.reply,{},(l,c)=>{this._trigger(this._replyEventName(c),l)}),this.presence=new ra(this),this.broadcastEndpointURL=A0(this.socket.endPoint),this.private=this.params.config.private||!1,!this.private&&(!((a=(s=this.params.config)===null||s===void 0?void 0:s.broadcast)===null||a===void 0)&&a.replay))throw`tried to use replay on public channel '${this.topic}'. It must be a private channel.`}subscribe(t,n=this.timeout){var o,s,a;if(this.socket.isConnected()||this.socket.connect(),this.state==ht.closed){const{config:{broadcast:l,presence:c,private:h}}=this.params,p=(s=(o=this.bindings.postgres_changes)===null||o===void 0?void 0:o.map(v=>v.filter))!==null&&s!==void 0?s:[],f=!!this.bindings[oa.PRESENCE]&&this.bindings[oa.PRESENCE].length>0||((a=this.params.config.presence)===null||a===void 0?void 0:a.enabled)===!0,m={},y={broadcast:l,presence:Object.assign(Object.assign({},c),{enabled:f}),postgres_changes:p,private:h};this.socket.accessTokenValue&&(m.access_token=this.socket.accessTokenValue),this._onError(v=>t?.(yr.CHANNEL_ERROR,v)),this._onClose(()=>t?.(yr.CLOSED)),this.updateJoinPayload(Object.assign({config:y},m)),this.joinedOnce=!0,this._rejoin(n),this.joinPush.receive("ok",async({postgres_changes:v})=>{var k;if(this.socket.setAuth(),v===void 0){t?.(yr.SUBSCRIBED);return}else{const S=this.bindings.postgres_changes,b=(k=S?.length)!==null&&k!==void 0?k:0,x=[];for(let E=0;E<b;E++){const P=S[E],{filter:{event:I,schema:O,table:D,filter:M}}=P,$=v&&v[E];if($&&$.event===I&&$.schema===O&&$.table===D&&$.filter===M)x.push(Object.assign(Object.assign({},P),{id:$.id}));else{this.unsubscribe(),this.state=ht.errored,t?.(yr.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=x,t&&t(yr.SUBSCRIBED);return}}).receive("error",v=>{this.state=ht.errored,t?.(yr.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(v).join(", ")||"error")))}).receive("timeout",()=>{t?.(yr.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(t,n={}){return await this.send({type:"presence",event:"track",payload:t},n.timeout||this.timeout)}async untrack(t={}){return await this.send({type:"presence",event:"untrack"},t)}on(t,n,o){return this.state===ht.joined&&t===oa.PRESENCE&&(this.socket.log("channel",`resubscribe to ${this.topic} due to change in presence callbacks on joined channel`),this.unsubscribe().then(()=>this.subscribe())),this._on(t,n,o)}async httpSend(t,n,o={}){var s;const a=this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:"";if(n==null)return Promise.reject("Payload is required for httpSend()");const l={method:"POST",headers:{Authorization:a,apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:t,payload:n,private:this.private}]})},c=await this._fetchWithTimeout(this.broadcastEndpointURL,l,(s=o.timeout)!==null&&s!==void 0?s:this.timeout);if(c.status===202)return{success:!0};let h=c.statusText;
15try{const p=await c.json();h=p.error||p.message||h}catch{}return Promise.reject(new Error(h))}async send(t,n={}){var o,s;if(!this._canPush()&&t.type==="broadcast"){console.warn("Realtime send() is automatically falling back to REST API. This behavior will be deprecated in the future. Please use httpSend() explicitly for REST delivery.");const{event:a,payload:l}=t,h={method:"POST",headers:{Authorization:this.socket.accessTokenValue?`Bearer ${this.socket.accessTokenValue}`:"",apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"},body:JSON.stringify({messages:[{topic:this.subTopic,event:a,payload:l,private:this.private}]})};try{const p=await this._fetchWithTimeout(this.broadcastEndpointURL,h,(o=n.timeout)!==null&&o!==void 0?o:this.timeout);return await((s=p.body)===null||s===void 0?void 0:s.cancel()),p.ok?"ok":"error"}catch(p){return p.name==="AbortError"?"timed out":"error"}}else return new Promise(a=>{var l,c,h;const p=this._push(t.type,t,n.timeout||this.timeout);t.type==="broadcast"&&!(!((h=(c=(l=this.params)===null||l===void 0?void 0:l.config)===null||c===void 0?void 0:c.broadcast)===null||h===void 0)&&h.ack)&&a("ok"),p.receive("ok",()=>a("ok")),p.receive("error",()=>a("error")),p.receive("timeout",()=>a("timed out"))})}updateJoinPayload(t){this.joinPush.updatePayload(t)}unsubscribe(t=this.timeout){this.state=ht.leaving;const n=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(bn.close,"leave",this._joinRef())};this.joinPush.destroy();let o=null;return new Promise(s=>{o=new hh(this,bn.leave,{},t),o.receive("ok",()=>{n(),s("ok")}).receive("timeout",()=>{n(),s("timed out")}).receive("error",()=>{s("error")}),o.send(),this._canPush()||o.trigger("ok",{})}).finally(()=>{o?.destroy()})}teardown(){this.pushBuffer.forEach(t=>t.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=ht.closed,this.bindings={}}async _fetchWithTimeout(t,n,o){const s=new AbortController,a=setTimeout(()=>s.abort(),o),l=await this.socket.fetch(t,Object.assign(Object.assign({},n),{signal:s.signal}));return clearTimeout(a),l}_push(t,n,o=this.timeout){if(!this.joinedOnce)throw`tried to push '${t}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let s=new hh(this,t,n,o);return this._canPush()?s.send():this._addToPushBuffer(s),s}_addToPushBuffer(t){if(t.startTimeout(),this.pushBuffer.push(t),this.pushBuffer.length>aR){const n=this.pushBuffer.shift();n&&(n.destroy(),this.socket.log("channel",`discarded push due to buffer overflow: ${n.event}`,n.payload))}}_onMessage(t,n,o){return n}_isMember(t){return this.topic===t}_joinRef(){return this.joinPush.ref}_trigger(t,n,o){var s,a;const l=t.toLocaleLowerCase(),{close:c,error:h,leave:p,join:f}=bn;if(o&&[c,h,p,f].indexOf(l)>=0&&o!==this._joinRef())return;let y=this._onMessage(l,n,o);if(n&&!y)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(l)?(s=this.bindings.postgres_changes)===null||s===void 0||s.filter(v=>{var k,S,b;return((k=v.filter)===null||k===void 0?void 0:k.event)==="*"||((b=(S=v.filter)===null||S===void 0?void 0:S.event)===null||b===void 0?void 0:b.toLocaleLowerCase())===l}).map(v=>v.callback(y,o)):(a=this.bindings[l])===null||a===void 0||a.filter(v=>{var k,S,b,x,E,P;if(["broadcast","presence","postgres_changes"].includes(l))if("id"in v){const I=v.id,O=(k=v.filter)===null||k===void 0?void 0:k.event;return I&&((S=n.ids)===null||S===void 0?void 0:S.includes(I))&&(O==="*"||O?.toLocaleLowerCase()===((b=n.data)===null||b===void 0?void 0:b.type.toLocaleLowerCase()))}else{const I=(E=(x=v?.filter)===null||x===void 0?void 0:x.event)===null||E===void 0?void 0:E.toLocaleLowerCase();return I==="*"||I===((P=n?.event)===null||P===void 0?void 0:P.toLocaleLowerCase())}else return v.type.toLocaleLowerCase()===l}).map(v=>{if(typeof y=="object"&&"ids"in y){const k=y.data,{schema:S,table:b,commit_timestamp:x,type:E,errors:P}=k;y=Object.assign(Object.assign({},{schema:S,table:b,commit_timestamp:x,eventType:E,new:{},old:{},errors:P}),this._getPayloadRecords(k))}v.callback(y,o)})}_isClosed(){return this.state===ht.closed}_isJoined(){return this.state===ht.joined}_isJoining(){return this.state===ht.joining}_isLeaving(){return this.state===ht.leaving}_replyEventName(t){return`chan_reply_${t}`}_on(t,n,o){const s=t.toLocaleLowerCase(),a={type:s,filter:n,callback:o};return this.bindings[s]?this.bindings[s].push(a):this.bindings[s]=[a],this}_off(t,n){const o=t.toLocaleLowerCase();return this.bindings[o]&&(this.bindings[o]=this.bindings[o].filter(s=>{var a;return!(((a=s.type)===null||a===void 0?void 0:a.toLocaleLowerCase())===o&&Up.isEqual(s.filter,n))})),this}static isEqual(t,n){if(Object.keys(t).length!==Object.keys(n).length)return!1;for(const o in t)if(t[o]!==n[o])return!1;return!0}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(t){this._on(bn.close,{},t)}_onError(t){this._on(bn.error,{},n=>t(n))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(t=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=ht.joining,this.joinPush.resend(t))}_getPayloadRecords(t){const n={new:{},old:{}};return(t.type==="INSERT"||t.type==="UPDATE")&&(n.new=sy(t.columns,t.record)),(t.type==="UPDATE"||t.type==="DELETE")&&(n.old=sy(t.columns,t.old_record)),n}}const ph=()=>{},Xl={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},mR=[1e3,2e3,5e3,1e4],gR=1e4,vR=` 16 addEventListener("message", (e) => { 17 if (e.data.event === "start") { 18 setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval); 19 } 20 });`;class yR{constructor(t,n){var o;if(this.accessTokenValue=null,this.apiKey=null,this.channels=new Array,this.endPoint="",this.httpEndpoint="",this.headers={},this.params={},this.timeout=Qh,this.transport=null,this.heartbeatIntervalMs=Xl.HEARTBEAT_INTERVAL,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.heartbeatCallback=ph,this.ref=0,this.reconnectTimer=null,this.vsn=iy,this.logger=ph,this.conn=null,this.sendBuffer=[],this.serializer
20=new lR,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._connectionState="disconnected",this._wasManualDisconnect=!1,this._authPromise=null,this._resolveFetch=s=>s?(...a)=>s(...a):(...a)=>fetch(...a),!(!((o=n?.params)===null||o===void 0)&&o.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=n.params.apikey,this.endPoint=`${t}/${Xh.websocket}`,this.httpEndpoint=A0(t),this._initializeOptions(n),this._setupReconnectionTimer(),this.fetch=this._resolveFetch(n?.fetch)}connect(){if(!(this.isConnecting()||this.isDisconnecting()||this.conn!==null&&this.isConnected())){if(this._setConnectionState("connecting"),this.accessToken&&!this._authPromise&&this._setAuthSafely("connect"),this.transport)this.conn=new this.transport(this.endpointURL());else try{this.conn=nR.createWebSocket(this.endpointURL())}catch(t){this._setConnectionState("disconnected");const n=t.message;throw n.includes("Node.js")?new Error(`${n} 21 22To use Realtime in Node.js, you need to provide a WebSocket implementation: 23 24Option 1: Use Node.js 22+ which has native WebSocket support 25Option 2: Install and provide the "ws" package: 26 27 npm install ws 28 29 import ws from "ws" 30 const client = new RealtimeClient(url, { 31 ...options, 32 transport: ws 33 })`):new Error(`WebSocket not available: ${n}`)}this._setupConnectionHandlers()}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:this.vsn}))}disconnect(t,n){if(!this.isDisconnecting())if(this._setConnectionState("disconnecting",!0),this.conn){const o=setTimeout(()=>{this._setConnectionState("disconnected")},100);this.conn.onclose=()=>{clearTimeout(o),this._setConnectionState("disconnected")},typeof this.conn.close=="function"&&(t?this.conn.close(t,n??""):this.conn.close()),this._teardownConnection()}else this._setConnectionState("disconnected")}getChannels(){return this.channels}async removeChannel(t){const n=await t.unsubscribe();return this.channels.length===0&&this.disconnect(),n}async removeAllChannels(){const t=await Promise.all(this.channels.map(n=>n.unsubscribe()));return this.channels=[],this.disconnect(),t}log(t,n,o){this.logger(t,n,o)}connectionState(){switch(this.conn&&this.conn.readyState){case zo.connecting:return No.Connecting;case zo.open:return No.Open;case zo.closing:return No.Closing;default:return No.Closed}}isConnected(){return this.connectionState()===No.Open}isConnecting(){return this._connectionState==="connecting"}isDisconnecting(){return this._connectionState==="disconnecting"}channel(t,n={config:{}}){const o=`realtime:${t}`,s=this.getChannels().find(a=>a.topic===o);if(s)return s;{const a=new Up(`realtime:${t}`,n,this);return this.channels.push(a),a}}push(t){const{topic:n,event:o,payload:s,ref:a}=t,l=()=>{this.encode(t,c=>{var h;(h=this.conn)===null||h===void 0||h.send(c)})};this.log("push",`${n} ${o} (${a})`,s),this.isConnected()?l():this.sendBuffer.push(l)}async setAuth(t=null){this._authPromise=this._performAuth(t);try{await this._authPromise}finally{this._authPromise=null}}async sendHeartbeat(){var t;if(!this.isConnected()){try{this.heartbeatCallback("disconnected")}catch(n){this.log("error","error in heartbeat callback",n)}return}if(this.pendingHeartbeatRef){this.pendingHeartbeatRef=null,this.log("transport","heartbeat timeout. Attempting to re-establish connection");try{this.heartbeatCallback("timeout")}catch(n){this.log("error","error in heartbeat callback",n)}this._wasManualDisconnect=!1,(t=this.conn)===null||t===void 0||t.close(sR,"heartbeat timeout"),setTimeout(()=>{var n;this.isConnected()||(n=this.reconnectTimer)===null||n===void 0||n.scheduleTimeout()},Xl.HEARTBEAT_TIMEOUT_FALLBACK);return}this.pendingHeartbeatRef=this._makeRef(),this.push({topic:"phoenix",event:"heartbeat",payload:{},ref:this.pendingHeartbeatRef});try{this.heartbeatCallback("sent")}catch(n){this.log("error","error in heartbeat callback",n)}this._setAuthSafely("heartbeat")}onHeartbeat(t){this.heartbeatCallback=t}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>0&&(this.sendBuffer.forEach(t=>t()),this.sendBuffer=[])}_makeRef(){let t=this.ref+1;return t===this.ref?this.ref=0:this.ref=t,this.ref.toString()}_leaveOpenTopic(t){let n=this.channels.find(o=>o.topic===t&&(o._isJoined()||o._isJoining()));n&&(this.log("transport",`leaving duplicate topic "${t}"`),n.unsubscribe())}_remove(t){this.channels=this.channels.filter(n=>n.topic!==t.topic)}_onConnMessage(t){this.decode(t.data,n=>
33{if(n.topic==="phoenix"&&n.event==="phx_reply")try{this.heartbeatCallback(n.payload.status==="ok"?"ok":"error")}catch(p){this.log("error","error in heartbeat callback",p)}n.ref&&n.ref===this.pendingHeartbeatRef&&(this.pendingHeartbeatRef=null);const{topic:o,event:s,payload:a,ref:l}=n,c=l?`(${l})`:"",h=a.status||"";this.log("receive",`${h} ${o} ${s} ${c}`.trim(),a),this.channels.filter(p=>p._isMember(o)).forEach(p=>p._trigger(s,a,l)),this._triggerStateCallbacks("message",n)})}_clearTimer(t){var n;t==="heartbeat"&&this.heartbeatTimer?(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0):t==="reconnect"&&((n=this.reconnectTimer)===null||n===void 0||n.reset())}_clearAllTimers(){this._clearTimer("heartbeat"),this._clearTimer("reconnect")}_setupConnectionHandlers(){this.conn&&("binaryType"in this.conn&&(this.conn.binaryType="arraybuffer"),this.conn.onopen=()=>this._onConnOpen(),this.conn.onerror=t=>this._onConnError(t),this.conn.onmessage=t=>this._onConnMessage(t),this.conn.onclose=t=>this._onConnClose(t))}_teardownConnection(){if(this.conn){if(this.conn.readyState===zo.open||this.conn.readyState===zo.connecting)try{this.conn.close()}catch(t){this.log("error","Error closing connection",t)}this.conn.onopen=null,this.conn.onerror=null,this.conn.onmessage=null,this.conn.onclose=null,this.conn=null}this._clearAllTimers(),this.channels.forEach(t=>t.teardown())}_onConnOpen(){this._setConnectionState("connected"),this.log("transport",`connected to ${this.endpointURL()}`),(this._authPromise||(this.accessToken&&!this.accessTokenValue?this.setAuth():Promise.resolve())).then(()=>{this.flushSendBuffer()}).catch(n=>{this.log("error","error waiting for auth on connect",n),this.flushSendBuffer()}),this._clearTimer("reconnect"),this.worker?this.workerRef||this._startWorkerHeartbeat():this._startHeartbeat(),this._triggerStateCallbacks("open")}_startHeartbeat(){this.heartbeatTimer&&clearInterval(this.heartbeatTimer),this.heartbeatTimer=setInterval(()=>this.sendHeartbeat(),this.heartbeatIntervalMs)}_startWorkerHeartbeat(){this.workerUrl?this.log("worker",`starting worker for from ${this.workerUrl}`):this.log("worker","starting default worker");const t=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(t),this.workerRef.onerror=n=>{this.log("worker","worker error",n.message),this.workerRef.terminate()},this.workerRef.onmessage=n=>{n.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_onConnClose(t){var n;this._setConnectionState("disconnected"),this.log("transport","close",t),this._triggerChanError(),this._clearTimer("heartbeat"),this._wasManualDisconnect||(n=this.reconnectTimer)===null||n===void 0||n.scheduleTimeout(),this._triggerStateCallbacks("close",t)}_onConnError(t){this._setConnectionState("disconnected"),this.log("transport",`${t}`),this._triggerChanError(),this._triggerStateCallbacks("error",t)}_triggerChanError(){this.channels.forEach(t=>t._trigger(bn.error))}_appendParams(t,n){if(Object.keys(n).length===0)return t;const o=t.match(/\?/)?"&":"?",s=new URLSearchParams(n);return`${t}${o}${s}`}_workerObjectUrl(t){let n;if(t)n=t;else{const o=new Blob([vR],{type:"application/javascript"});n=URL.createObjectURL(o)}return n}_setConnectionState(t,n=!1){this._connectionState=t,t==="connecting"?this._wasManualDisconnect=!1:t==="disconnecting"&&(this._wasManualDisconnect=n)}async _performAuth(t=null){let n;t?n=t:this.accessToken?n=await this.accessToken():n=this.accessTokenValue,this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEach(o=>{const s={access_token:n,version:oR};n&&o.updateJoinPayload(s),o.joinedOnce&&o._isJoined()&&o._push(bn.access_token,{access_token:n})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(t="general"){this.setAuth().catch(n=>{this.log("error",`error setting auth in ${t}`,n)})}_triggerStateCallbacks(t,n){try{this.stateChangeCallbacks[t].forEach(o=>{try{o(n)}catch(s){this.log("error",`error in ${t} callback`,s)}})}catch(o){this.log("error",`error triggering ${t} callbacks`,o)}}_setupReconnectionTimer(){this.reconnectTimer=new S0(async()=>{setTimeout(async()=>{await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()},Xl.RECONNECT_DELAY)},this.reconnectAfterMs)}_initializeOptions(t){var n,o,s,a,l,c,h,p,f,m,y,v;switch(this.transport=(n=t?.transport)!==null&&n!==void 0?n:null,this.timeout=(o=t?.timeout)!==null&&o!==void 0?o:Qh,this.heartbeatIntervalMs=(s=t?.heartbeatIntervalMs)!==null&&s!==void 0?s:Xl.HEARTBEAT_INTERVAL,this.worker=(a=t?.
33worker)!==null&&a!==void 0?a:!1,this.accessToken=(l=t?.accessToken)!==null&&l!==void 0?l:null,this.heartbeatCallback=(c=t?.heartbeatCallback)!==null&&c!==void 0?c:ph,this.vsn=(h=t?.vsn)!==null&&h!==void 0?h:iy,t?.params&&(this.params=t.params),t?.logger&&(this.logger=t.logger),(t?.logLevel||t?.log_level)&&(this.logLevel=t.logLevel||t.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel})),this.reconnectAfterMs=(p=t?.reconnectAfterMs)!==null&&p!==void 0?p:(k=>mR[k-1]||gR),this.vsn){case b0:this.encode=(f=t?.encode)!==null&&f!==void 0?f:((k,S)=>S(JSON.stringify(k))),this.decode=(m=t?.decode)!==null&&m!==void 0?m:((k,S)=>S(JSON.parse(k)));break;case iR:this.encode=(y=t?.encode)!==null&&y!==void 0?y:this.serializer.encode.bind(this.serializer),this.decode=(v=t?.decode)!==null&&v!==void 0?v:this.serializer.decode.bind(this.serializer);break;default:throw new Error(`Unsupported serializer version: ${this.vsn}`)}if(this.worker){if(typeof window<"u"&&!window.Worker)throw new Error("Web Worker is not supported");this.workerUrl=t?.workerUrl}}}class Bp extends Error{constructor(t){super(t),this.__isStorageError=!0,this.name="StorageError"}}function tt(e){return typeof e=="object"&&e!==null&&"__isStorageError"in e}class wR extends Bp{constructor(t,n,o){super(t),this.name="StorageApiError",this.status=n,this.statusCode=o}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}}class ep extends Bp{constructor(t,n){super(t),this.name="StorageUnknownError",this.originalError=n}}const Wp=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),bR=()=>Response,tp=e=>{if(Array.isArray(e))return e.map(n=>tp(n));if(typeof e=="function"||e!==Object(e))return e;const t={};return Object.entries(e).forEach(([n,o])=>{const s=n.replace(/([-_][a-z])/gi,a=>a.toUpperCase().replace(/[-_]/g,""));t[s]=tp(o)}),t},SR=e=>{if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},fh=e=>{var t;return e.msg||e.message||e.error_description||(typeof e.error=="string"?e.error:(t=e.error)===null||t===void 0?void 0:t.message)||JSON.stringify(e)},kR=(e,t,n)=>me(void 0,void 0,void 0,function*(){const o=yield bR();e instanceof o&&!n?.noResolveJson?e.json().then(s=>{const a=e.status||500,l=s?.statusCode||a+"";t(new wR(fh(s),a,l))}).catch(s=>{t(new ep(fh(s),s))}):t(new ep(fh(e),e))}),AR=(e,t,n,o)=>{const s={method:e,headers:t?.headers||{}};return e==="GET"||!o?s:(SR(o)?(s.headers=Object.assign({"Content-Type":"application/json"},t?.headers),s.body=JSON.stringify(o)):s.body=o,t?.duplex&&(s.duplex=t.duplex),Object.assign(Object.assign({},s),n))};function Aa(e,t,n,o,s,a){return me(this,void 0,void 0,function*(){return new Promise((l,c)=>{e(n,AR(t,o,s,a)).then(h=>{if(!h.ok)throw h;return o?.noResolveJson?h:h.json()}).then(h=>l(h)).catch(h=>kR(h,c,o))})})}function da(e,t,n,o){return me(this,void 0,void 0,function*(){return Aa(e,"GET",t,n,o)})}function Nn(e,t,n,o,s){return me(this,void 0,void 0,function*(){return Aa(e,"POST",t,o,s,n)})}function np(e,t,n,o,s){return me(this,void 0,void 0,function*(){return Aa(e,"PUT",t,o,s,n)})}function xR(e,t,n,o){return me(this,void 0,void 0,function*(){return Aa(e,"HEAD",t,Object.assign(Object.assign({},n),{noResolveJson:!0}),o)})}function qp(e,t,n,o,s){return me(this,void 0,void 0,function*(){return Aa(e,"DELETE",t,o,s,n)})}class _R{constructor(t,n){this.downloadFn=t,this.shouldThrowOnError=n}then(t,n){return this.execute().then(t,n)}execute(){return me(this,void 0,void 0,function*(){try{return{data:(yield this.downloadFn()).body,error:null}}catch(t){if(this.shouldThrowOnError)throw t;if(tt(t))return{data:null,error:t};throw t}})}}var x0;class ER{constructor(t,n){this.downloadFn=t,this.shouldThrowOnError=n,this[x0]="BlobDownloadBuilder",this.promise=null}asStream(){return new _R(this.downloadFn,this.shouldThrowOnError)}then(t,n){return this.getPromise().then(t,n)}catch(t){return this.getPromise().catch(t)}finally(t){return this.getPromise().finally(t)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}execute(){return me(this,void 0,void 0,function*(){try{return{data:yield(yield this.downloadFn()).blob(),error:null}}catch(t){if(this.shouldThrowOnError)throw t;if(tt(t))return{data:null,error:t};throw t}})}}x0=Symbol.toStringTag;const TR={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},uy={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};class PR{constructor(t,n={},o,s){this.shouldThrowOnError=!1,this.url=t,this.headers=n,this.bucketId=o,this.fetch=Wp(s)}throwOnError(){return this.shouldThrowOnError=!0,this}uploadOrUpdate(t,n,o,s){return me(this,void 0,void 0,function*(){try{let a;const l=Object.assign(Object.assign({},uy),s);let c=Object.assign(Object.assign({},this.headers),t==="POST"&&{"x-upsert":String(l.upsert)});const h=l.metadata;typeof Blob<"u"&&o instanceof Blob?(a=new FormData,a.append("cacheControl",l.cacheControl),h&&a.append("metadata",this.encodeMetadata(h)),a.append("",o)):typeof FormData<"u"&&o instanceof FormData?(a=o,a.has("cacheControl")||a.append("cacheControl",l.cacheControl),h&&!a.has("metadata")&&a.append("metadata",this.encodeMetadata(h))):(a=o,c["cache-control"]=`max-age=${l.cacheControl}`,c["content-type"]=l.contentType,h&&(c["x-metadata"]=this.toBase64(this.encodeMetadata(h))),(typeof ReadableStream<"u"&&a
33instanceof ReadableStream||a&&typeof a=="object"&&"pipe"in a&&typeof a.pipe=="function")&&!l.duplex&&(l.duplex="half")),s?.headers&&(c=Object.assign(Object.assign({},c),s.headers));const p=this._removeEmptyFolders(n),f=this._getFinalPath(p),m=yield(t=="PUT"?np:Nn)(this.fetch,`${this.url}/object/${f}`,a,Object.assign({headers:c},l?.duplex?{duplex:l.duplex}:{}));return{data:{path:p,id:m.Id,fullPath:m.Key},error:null}}catch(a){if(this.shouldThrowOnError)throw a;if(tt(a))return{data:null,error:a};throw a}})}upload(t,n,o){return me(this,void 0,void 0,function*(){return this.uploadOrUpdate("POST",t,n,o)})}uploadToSignedUrl(t,n,o,s){return me(this,void 0,void 0,function*(){const a=this._removeEmptyFolders(t),l=this._getFinalPath(a),c=new URL(this.url+`/object/upload/sign/${l}`);c.searchParams.set("token",n);try{let h;const p=Object.assign({upsert:uy.upsert},s),f=Object.assign(Object.assign({},this.headers),{"x-upsert":String(p.upsert)});typeof Blob<"u"&&o instanceof Blob?(h=new FormData,h.append("cacheControl",p.cacheControl),h.append("",o)):typeof FormData<"u"&&o instanceof FormData?(h=o,h.append("cacheControl",p.cacheControl)):(h=o,f["cache-control"]=`max-age=${p.cacheControl}`,f["content-type"]=p.contentType);const m=yield np(this.fetch,c.toString(),h,{headers:f});return{data:{path:a,fullPath:m.Key},error:null}}catch(h){if(this.shouldThrowOnError)throw h;if(tt(h))return{data:null,error:h};throw h}})}createSignedUploadUrl(t,n){return me(this,void 0,void 0,function*(){try{let o=this._getFinalPath(t);const s=Object.assign({},this.headers);n?.upsert&&(s["x-upsert"]="true");const a=yield Nn(this.fetch,`${this.url}/object/upload/sign/${o}`,{},{headers:s}),l=new URL(this.url+a.url),c=l.searchParams.get("token");if(!c)throw new Bp("No token returned by API");return{data:{signedUrl:l.toString(),path:t,token:c},error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(tt(o))return{data:null,error:o};throw o}})}update(t,n,o){return me(this,void 0,void 0,function*(){return this.uploadOrUpdate("PUT",t,n,o)})}move(t,n,o){return me(this,void 0,void 0,function*(){try{return{data:yield Nn(this.fetch,`${this.url}/object/move`,{bucketId:this.bucketId,sourceKey:t,destinationKey:n,destinationBucket:o?.destinationBucket},{headers:this.headers}),error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}copy(t,n,o){return me(this,void 0,void 0,function*(){try{return{data:{path:(yield Nn(this.fetch,`${this.url}/object/copy`,{bucketId:this.bucketId,sourceKey:t,destinationKey:n,destinationBucket:o?.destinationBucket},{headers:this.headers})).Key},error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}createSignedUrl(t,n,o){return me(this,void 0,void 0,function*(){try{let s=this._getFinalPath(t),a=yield Nn(this.fetch,`${this.url}/object/sign/${s}`,Object.assign({expiresIn:n},o?.transform?{transform:o.transform}:{}),{headers:this.headers});const l=o?.download?`&download=${o.download===!0?"":o.download}`:"";return a={signedUrl:encodeURI(`${this.url}${a.signedURL}${l}`)},{data:a,error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}createSignedUrls(t,n,o){return me(this,void 0,void 0,function*(){try{const s=yield Nn(this.fetch,`${this.url}/object/sign/${this.bucketId}`,{expiresIn:n,paths:t},{headers:this.headers}),a=o?.download?`&download=${o.download===!0?"":o.download}`:"";return{data:s.map(l=>Object.assign(Object.assign({},l),{signedUrl:l.signedURL?encodeURI(`${this.url}${l.signedURL}${a}`):null})),error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}download(t,n){const s=typeof n?.transform<"u"?"render/image/authenticated":"object",a=this.transformOptsToQueryString(n?.transform||{}),l=a?`?${a}`:"",c=this._getFinalPath(t),h=()=>da(this.fetch,`${this.url}/${s}/${c}${l}`,{headers:this.headers,noResolveJson:!0});return new ER(h,this.shouldThrowOnError)}info(t){return me(this,void 0,void 0,function*(){const n=this._getFinalPath(t);try{const o=yield da(this.fetch,`${this.url}/object/info/${n}`,{headers:this.headers});return{data:tp(o),error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(tt(o))return{data:null,error:o};throw o}})}exists(t){return me(this,void 0,void 0,function*(){const n=this._getFinalPath(t);try{return yield xR(this.fetch,`${this.url}/object/${n}`,{headers:this.headers}),{data:!0,error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(tt(o)&&o instanceof ep){const s=o.originalError;if([400,404].includes(s?.status))return{data:!1,error:o}}throw o}})}getPublicUrl(t,n){const o=this._getFinalPath(t),s=[],a=n?.download?`download=${n.download===!0?"":n.download}`:"";a!==""&&s.push(a);const c=typeof n?.transform<"u"?"render/image":"object",h=this.transformOptsToQueryString(n?.transform||{});h!==""&&s.push(h);let p=s.join("&");return p!==""&&(p=`?${p}`),{data:{publicUrl:encodeURI(`${this.url}/${c}/public/${o}${p}`)}}}remove(t){return me(this,void 0,void 0,function*(){try{return{data:yield qp(this.fetch,`${this.url}/object/${this.bucketId}`,{prefixes:t},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}list(t,n,o){return me(this,void 0,void 0,function*(){try{const s=Object.assign(Object.assign(Object.assign({},TR),n),{prefix:t||""});return{data:yield Nn(this.fetch,`${this.url}/object/list/${this.bucketId}`,s,{headers:this.headers},o),error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}listV2(t,n){return me(this,void 0,void 0,function*(){try{const o=Object.assign({},t);return{data:yield Nn(this.fetch,`${this.url}/object/list-v2/${this.bucketId}`,o,{headers:this.headers},n),error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(tt(o))return{data:null,error:o};throw o}})}encodeMetadata(t){return JSON.stringify(t)}toBase64(t){return typeof Buffer<"u"?Buffer.from(t).toString("base64"):btoa(t)}_getFinalPath(t){return`${this.bucketId}/${t.replace(/^\/+/,"")}`}_removeEmptyFolders(t){return t.replace(/^\/|\/$/g,"").replace(/\/+/g,"/")}transformOptsToQueryString(t){const n=[];return t.width&&n.push(`width=${t.width}`),t.height&&n.push(`height=${t.height}`),t.resize&&n.push(`resize=${t.resize}`),t.format&&n.push(`format=${t.format}`),t.quality&&n.push(`quality=${t.quality}`),n.join("&")}}const _0="2.81.1",E0={"X-Client-Info":`storage-js/${_0}`};class CR{constructor(t,n={},o,s){this.shouldThrowOnError=!1;const a=new URL(t);s?.useNewHostname&&/supabase\.(co|in|red)$/.test(a.hostname)&&!a.hostname.includes("storage.supabase.")&&(a.hostname=a.hostname.replace("supabase.","storage.supabase.")),this.url=a.href.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},E0),n),this.fetch=Wp(o)}throwOnError(){return this.shouldThrowOnError=!0,this}listBuckets(t){return me(this,void 0,void 0,function*(){try{const n=this.listBucketOptionsToQueryString(t);return{data:yield da(this.fetch,`${this.url}/bucket${n}`,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}getBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield da(this.fetch,`${this.url}/bucket/${t}`,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}createBucket(t){return me(this,arguments,void 0,function*(n,o={public:!1}){try{return{data:yield Nn(this.fetch,`${this.url}/bucket`,{id:n,name:n,type:o.type,public:o.public,file_size_limit:o.fileSizeLimit,allowed_mime_types:o.allowedMimeTypes},{headers:this.headers}),error:null}}catch(s){if(this.shouldThrowOnError)throw s;if(tt(s))return{data:null,error:s};throw s}})}updateBucket(t,n){return me(this,void 0,void 0,function*(){try{return{data:yield np(this.fetch,`${this.url}/bucket/${t}`,{id:t,name:t,public:n.public,file_size_limit:n.fileSizeLimit,allowed_mime_types:n.allowedMimeTypes},{headers:this.headers}),error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(tt(o))return{data:null,error:o};throw o}})}emptyBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield Nn(this.fetch,`${this.url}/bucket/${t}/empty`,{},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}deleteBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield qp(this.fetch,`${this.url}/bucket/${t}`,{},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}listBucketOptionsToQueryString(t){const n={};return t&&("limit"in t&&(n.limit=String(t.limit)),"offset"in t&&(n.offset=String(t.offset)),t.search&&(n.search=t.search),t.sortColumn&&(n.sortColumn=t.sortColumn),t.sortOrder&&(n.sortOrder=t.sortOrder)),Object.keys(n).length>0?"?"+new URLSearchParams(n).toString():""}}class IR{constructor(t,n={},o){this.shouldThrowOnError=!1,this.url=t.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},E0),n),this.fetch=Wp(o)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield Nn(this.fetch,`${this.url}/bucket`,{name:t},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}listBuckets(t){return me(this,void 0,void 0,function*(){try{const n=new URLSearchParams;t?.limit!==void 0&&n.set("limit",t.limit.toString()),t?.offset!==void 0&&n.set("offset",t.offset.toString()),t?.sortColumn&&n.set("sortColumn",t.sortColumn),t?.sortOrder&&n.set("sortOrder",t.sortOrder),t?.search&&n.set("search",t.search);const o=n.toString(),s=o?`${this.url}/bucket?${o}`:`${this.url}/bucket`;return{data:yield da(this.fetch,s,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}deleteBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield qp(this.fetch,`${this.url}/bucket/${t}`,{},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(tt(n))return{data:null,error:n};throw n}})}}const Gp={"X-Client-Info":`storage-js/${_0}`,"Content-Type":"application/json"};
33class T0 extends Error{constructor(t){super(t),this.__isStorageVectorsError=!0,this.name="StorageVectorsError"}}function un(e){return typeof e=="object"&&e!==null&&"__isStorageVectorsError"in e}class mh extends T0{constructor(t,n,o){super(t),this.name="StorageVectorsApiError",this.status=n,this.statusCode=o}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}}class RR extends T0{constructor(t,n){super(t),this.name="StorageVectorsUnknownError",this.originalError=n}}var cy;(function(e){e.InternalError="InternalError",e.S3VectorConflictException="S3VectorConflictException",e.S3VectorNotFoundException="S3VectorNotFoundException",e.S3VectorBucketNotEmpty="S3VectorBucketNotEmpty",e.S3VectorMaxBucketsExceeded="S3VectorMaxBucketsExceeded",e.S3VectorMaxIndexesExceeded="S3VectorMaxIndexesExceeded"})(cy||(cy={}));const Hp=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),OR=e=>{if(typeof e!="object"||e===null)return!1;const t=Object.getPrototypeOf(e);return(t===null||t===Object.prototype||Object.getPrototypeOf(t)===null)&&!(Symbol.toStringTag in e)&&!(Symbol.iterator in e)},dy=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),LR=(e,t,n)=>me(void 0,void 0,void 0,function*(){if(e&&typeof e=="object"&&"status"in e&&"ok"in e&&typeof e.status=="number"&&!n?.noResolveJson){const s=e.status||500,a=e;if(typeof a.json=="function")a.json().then(l=>{const c=l?.statusCode||l?.code||s+"";t(new mh(dy(l),s,c))}).catch(()=>{const l=s+"",c=a.statusText||`HTTP ${s} error`;t(new mh(c,s,l))});else{const l=s+"",c=a.statusText||`HTTP ${s} error`;t(new mh(c,s,l))}}else t(new RR(dy(e),e))}),zR=(e,t,n,o)=>{const s={method:e,headers:t?.headers||{}};return o?(OR(o)?(s.headers=Object.assign({"Content-Type":"application/json"},t?.headers),s.body=JSON.stringify(o)):s.body=o,Object.assign(Object.assign({},s),n)):s};function NR(e,t,n,o,s,a){return me(this,void 0,void 0,function*(){return new Promise((l,c)=>{e(n,zR(t,o,s,a)).then(h=>{if(!h.ok)throw h;if(o?.noResolveJson)return h;const p=h.headers.get("content-type");return!p||!p.includes("application/json")?{}:h.json()}).then(h=>l(h)).catch(h=>LR(h,c,o))})})}function cn(e,t,n,o,s){return me(this,void 0,void 0,function*(){return NR(e,"POST",t,o,s,n)})}class MR{constructor(t,n={},o){this.shouldThrowOnError=!1,this.url=t.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},Gp),n),this.fetch=Hp(o)}throwOnError(){return this.shouldThrowOnError=!0,this}createIndex(t){return me(this,void 0,void 0,function*(){try{return{data:(yield cn(this.fetch,`${this.url}/CreateIndex`,t,{headers:this.headers}))||{},error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}getIndex(t,n){return me(this,void 0,void 0,function*(){try{return{data:yield cn(this.fetch,`${this.url}/GetIndex`,{vectorBucketName:t,indexName:n},{headers:this.headers}),error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(un(o))return{data:null,error:o};throw o}})}listIndexes(t){return me(this,void 0,void 0,function*(){try{return{data:yield cn(this.fetch,`${this.url}/ListIndexes`,t,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}deleteIndex(t,n){return me(this,void 0,void 0,function*(){try{return{data:(yield cn(this.fetch,`${this.url}/DeleteIndex`,{vectorBucketName:t,indexName:n},{headers:this.headers}))||{},error:null}}catch(o){if(this.shouldThrowOnError)throw o;if(un(o))return{data:null,error:o};throw o}})}}class DR{constructor(t,n={},o){this.shouldThrowOnError=!1,this.url=t.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},Gp),n),this.fetch=Hp(o)}throwOnError(){return this.shouldThrowOnError=!0,this}putVectors(t){return me(this,void 0,void 0,function*(){try{if(t.vectors.length<1||t.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return{data:(yield cn(this.fetch,`${this.url}/PutVectors`,t,{headers:this.headers}))||{},error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}getVectors(t){return me(this,void 0,void 0,function*(){try{return{data:yield cn(this.fetch,`${this.url}/GetVectors`,t,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}listVectors(t){return me(this,void 0,void 0,function*(){try{if(t.segmentCount!==void 0){if(t.segmentCount<1||t.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");
33if(t.segmentIndex!==void 0&&(t.segmentIndex<0||t.segmentIndex>=t.segmentCount))throw new Error(`segmentIndex must be between 0 and ${t.segmentCount-1}`)}return{data:yield cn(this.fetch,`${this.url}/ListVectors`,t,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}queryVectors(t){return me(this,void 0,void 0,function*(){try{return{data:yield cn(this.fetch,`${this.url}/QueryVectors`,t,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}deleteVectors(t){return me(this,void 0,void 0,function*(){try{if(t.keys.length<1||t.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return{data:(yield cn(this.fetch,`${this.url}/DeleteVectors`,t,{headers:this.headers}))||{},error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}}class jR{constructor(t,n={},o){this.shouldThrowOnError=!1,this.url=t.replace(/\/$/,""),this.headers=Object.assign(Object.assign({},Gp),n),this.fetch=Hp(o)}throwOnError(){return this.shouldThrowOnError=!0,this}createBucket(t){return me(this,void 0,void 0,function*(){try{return{data:(yield cn(this.fetch,`${this.url}/CreateVectorBucket`,{vectorBucketName:t},{headers:this.headers}))||{},error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}getBucket(t){return me(this,void 0,void 0,function*(){try{return{data:yield cn(this.fetch,`${this.url}/GetVectorBucket`,{vectorBucketName:t},{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}listBuckets(){return me(this,arguments,void 0,function*(t={}){try{return{data:yield cn(this.fetch,`${this.url}/ListVectorBuckets`,t,{headers:this.headers}),error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}deleteBucket(t){return me(this,void 0,void 0,function*(){try{return{data:(yield cn(this.fetch,`${this.url}/DeleteVectorBucket`,{vectorBucketName:t},{headers:this.headers}))||{},error:null}}catch(n){if(this.shouldThrowOnError)throw n;if(un(n))return{data:null,error:n};throw n}})}}class FR extends jR{constructor(t,n={}){super(t,n.headers||{},n.fetch)}from(t){return new $R(this.url,this.headers,t,this.fetch)}}class $R extends MR{constructor(t,n,o,s){super(t,n,s),this.vectorBucketName=o}createIndex(t){const n=Object.create(null,{createIndex:{get:()=>super.createIndex}});return me(this,void 0,void 0,function*(){return n.createIndex.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName}))})}listIndexes(){const t=Object.create(null,{listIndexes:{get:()=>super.listIndexes}});return me(this,arguments,void 0,function*(n={}){return t.listIndexes.call(this,Object.assign(Object.assign({},n),{vectorBucketName:this.vectorBucketName}))})}getIndex(t){const n=Object.create(null,{getIndex:{get:()=>super.getIndex}});return me(this,void 0,void 0,function*(){return n.getIndex.call(this,this.vectorBucketName,t)})}deleteIndex(t){const n=Object.create(null,{deleteIndex:{get:()=>super.deleteIndex}});return me(this,void 0,void 0,function*(){return n.deleteIndex.call(this,this.vectorBucketName,t)})}index(t){return new VR(this.url,this.headers,this.vectorBucketName,t,this.fetch)}}class VR extends DR{constructor(t,n,o,s,a){super(t,n,a),this.vectorBucketName=o,this.indexName=s}putVectors(t){const n=Object.create(null,{putVectors:{get:()=>super.putVectors}});return me(this,void 0,void 0,function*(){return n.putVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}getVectors(t){const n=Object.create(null,{getVectors:{get:()=>super.getVectors}});return me(this,void 0,void 0,function*(){return n.getVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}listVectors(){const t=Object.create(null,{listVectors:{get:()=>super.listVectors}});return me(this,arguments,void 0,function*(n={}){return t.listVectors.call(this,Object.assign(Object.assign({},n),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}queryVectors(t){const n=Object.create(null,{queryVectors:{get:()=>super.queryVectors}});return me(this,void 0,void 0,function*(){return n.queryVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}deleteVectors(t){const n=Object.create(null,{deleteVectors:{get:()=>super.deleteVectors}});return me(this,void 0,void 0,function*(){return n.deleteVectors.call(this,Object.assign(Object.assign({},t),{vectorBucketName:this.vectorBucketName,indexName:this.indexName}))})}}class UR extends CR{constructor(t,n={},o,s){super(t,n,o,s)}from(t){return new PR(this.url,this.headers,t,this.fetch)}get vectors(){return new FR(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new IR(this.url+"/iceberg",this.headers,this.fetch)}}const BR="2.81.1";let Zs="";typeof Deno<"u"?Zs="deno":typeof document<"u"?Zs="web":typeof navigator<"u"&&navigator.product==="ReactNative"?Zs="react-native":Zs="node";const WR={"X-Client-Info":`supabase-js-${Zs}/${BR}`},qR={headers:WR},GR={schema:"public"},HR={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},KR={},YR=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),JR=()=>Headers,QR=(e,t,n)=>{const o=YR(n),s=JR();return async(a,l)=>{var c;const h=(c=await t())!==null&&c!==void 0?c:e;let p=new s(l?.headers);return p.has("apikey")||p.set("apikey",e),p.has("Authorization")||p.set("Authorization",`Bearer ${h}`),o(a,Object.assign(Object.assign({},l),{headers:p}))}};function XR(e){return e.endsWith("/")?e:e+"/"}function ZR(e,t){var n,o;const{db:s,auth:a,realtime:l,global:c}=e,{db:h,auth:p,realtime:f,global:m}=t,y={db:Object.assign(Object.assign({},h),s),auth:Object.assign(Object.assign({},p),a),realtime:Object.assign(Object.assign({},f),l),storage:{},global:Object.assign(Object.assign(Object.assign({},m),c),{headers:Object.assign(Object.assign({},(n=m?.headers)!==null&&n!==void 0?n:{}
33),(o=c?.headers)!==null&&o!==void 0?o:{})}),accessToken:async()=>""};return e.accessToken?y.accessToken=e.accessToken:delete y.accessToken,y}function eO(e){const t=e?.trim();if(!t)throw new Error("supabaseUrl is required.");if(!t.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(XR(t))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}const P0="2.81.1",Di=30*1e3,rp=3,gh=rp*Di,tO="http://localhost:9999",nO="supabase.auth.token",rO={"X-Client-Info":`gotrue-js/${P0}`},op="X-Supabase-Api-Version",C0={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},oO=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,iO=600*1e3;class ha extends Error{constructor(t,n,o){super(t),this.__isAuthError=!0,this.name="AuthError",this.status=n,this.code=o}}function ve(e){return typeof e=="object"&&e!==null&&"__isAuthError"in e}class sO extends ha{constructor(t,n,o){super(t,n,o),this.name="AuthApiError",this.status=n,this.code=o}}function aO(e){return ve(e)&&e.name==="AuthApiError"}class Mo extends ha{constructor(t,n){super(t),this.name="AuthUnknownError",this.originalError=n}}class fo extends ha{constructor(t,n,o,s){super(t,o,s),this.name=n,this.status=o}}class Ln extends fo{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function lO(e){return ve(e)&&e.name==="AuthSessionMissingError"}class Ei extends fo{constructor(){super("Auth session or user missing","AuthInvalidToken
33ResponseError",500,void 0)}}class Zl extends fo{constructor(t){super(t,"AuthInvalidCredentialsError",400,void 0)}}class eu extends fo{constructor(t,n=null){super(t,"AuthImplicitGrantRedirectError",500,void 0),this.details=null,this.details=n}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}function uO(e){return ve(e)&&e.name==="AuthImplicitGrantRedirectError"}class hy extends fo{constructor(t,n=null){super(t,"AuthPKCEGrantCodeExchangeError",500,void 0),this.details=null,this.details=n}toJSON(){return{name:this.name,message:this.message,status:this.status,details:this.details}}}class ip extends fo{constructor(t,n){super(t,"AuthRetryableFetchError",n,void 0)}}function vh(e){return ve(e)&&e.name==="AuthRetryableFetchError"}class py extends fo{constructor(t,n,o){super(t,"AuthWeakPasswordError",n,"weak_password"),this.reasons=o}}class sp extends fo{constructor(t){super(t,"AuthInvalidJwtError",400,"invalid_jwt")}}const Ru="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),fy=` 34\r=`.split(""),cO=(()=>{const e=new Array(128);for(let t=0;t<e.length;t+=1)e[t]=-1;for(let t=0;t<fy.length;t+=1)e[fy[t].charCodeAt(0)]=-2;for(let t=0;t<Ru.length;t+=1)e[Ru[t].charCodeAt(0)]=t;return e})();function my(e,t,n){if(e!==null)for(t.queue=t.queue<<8|e,t.queuedBits+=8;t.queuedBits>=6;){const o=t.queue>>t.queuedBits-6&63;n(Ru[o]),t.queuedBits-=6}else if(t.queuedBits>0)for(t.queue=t.queue<<6-t.queuedBits,t.queuedBits=6;t.queuedBits>=6;){const o=t.queue>>t.queuedBits-6&63;n(Ru[o]),t.queuedBits-=6}}function I0(e,t,n){const o=cO[e];if(o>-1)for(t.queue=t.queue<<6|o,t.queuedBits+=6;t.queuedBits>=8;)n(t.queue>>t.queuedBits-8&255),t.queuedBits-=8;else{if(o===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(e)}"`)}}function gy(e){const t=[],n=l=>{t.push(String.fromCodePoint(l))},o={utf8seq:0,codepoint:0},s={queue:0,queuedBits:0},a=l=>{pO(l,o,n)};for(let l=0;l<e.length;l+=1)I0(e.charCodeAt(l),s,a);return t.join("")}function dO(e,t){if(e<=127){t(e);return}else if(e<=2047){t(192|e>>6),t(128|e&63);return}else if(e<=65535){t(224|e>>12),t(128|e>>6&63),t(128|e&63);return}else if(e<=1114111){t(240|e>>18),t(128|e>>12&63),t(128|e>>6&63),t(128|e&63);return}throw new Error(`Unrecognized Unicode codepoint: ${e.toString(16)}`)}function hO(e,t){for(let n=0;n<e.length;n+=1){let o=e.charCodeAt(n);if(o>55295&&o<=56319){const s=(o-55296)*1024&65535;o=(e.charCodeAt(n+1)-56320&65535|s)+65536,n+=1}dO(o,t)}}function pO(e,t,n){if(t.utf8seq===0){if(e<=127){n(e);return}for(let o=1;o<6;o+=1)if((e>>7-o&1)===0){t.utf8seq=o;break}if(t.utf8seq===2)t.codepoint=e&31;else if(t.utf8seq===3)t.codepoint=e&15;else if(t.utf8seq===4)t.codepoint=e&7;else throw new Error("Invalid UTF-8 sequence");t.utf8seq-=1}else if(t.utf8seq>0){if(e<=127)throw new Error("Invalid UTF-8 sequence");t.codepoint=t.codepoint<<6|e&63,t.utf8seq-=1,t.utf8seq===0&&n(t.codepoint)}}function qi(e){const t=[],n={queue:0,queuedBits:0},o=s=>{t.push(s)};for(let s=0;s<e.length;s+=1)I0(e.charCodeAt(s),n,o);return new Uint8Array(t)}function fO(e){const t=[];return hO(e,n=>t.push(n)),new Uint8Array(t)}function Uo(e){const t=[],n={queue:0,queuedBits:0},o=s=>{t.push(s)};return e.forEach(s=>my(s,n,o)),my(null,n,o),t.join("")}function mO(e){return Math.round(Date.now()/1e3)+e}function gO(){return Symbol("auth-callback")}const xt=()=>typeof window<"u"&&typeof document<"u",Ro={tested:!1,writable:!1},R0=()=>{if(!xt())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(Ro.tested)return Ro.writable;const e=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(e,e),globalThis.localStorage.removeItem(e),Ro.tested=!0,Ro.writable=!0}catch{Ro.tested=!0,Ro.writable=!1}return Ro.writable};function vO(e){const t={},n=new URL(e);if(n.hash&&n.hash[0]==="#")try{new URLSearchParams(n.hash.substring(1)).forEach((s,a)=>{t[a]=s})}catch{}return n.searchParams.forEach((o,s)=>{t[s]=o}),t}const O0=e=>e?(...t)=>e(...t):(...t)=>fetch(...t),yO=e=>typeof e=="object"&&e!==null&&"status"in e&&"ok"in e&&"json"in e&&typeof e.json=="function",ji=async(e,t,n)=>{await e.setItem(t,JSON.stringify(n))},Oo=async(e,t)=>{const n=await e.getItem(t);if(!n)return null;try{return JSON.parse(n)}catch{return n}},Qr=async(e,t)=>{await e.removeItem(t)};class Ku{constructor(){this.promise=new Ku.promiseConstructor((t,n)=>{this.resolve=t,this.reject=n})}}Ku.promiseConstructor=Promise;function yh(e){const t=e.split(".");if(t.length!==3)throw new sp("Invalid JWT structure");for(let o=0;o<t.length;o++)if(!oO.test(t[o]))throw new sp("JWT not in base64url format");return{header:JSON.parse(gy(t[0])),payload:JSON.parse(gy(t[1])),signature:qi(t[2]),raw:{header:t[0],payload:t[1]}}}async function wO(e){return await new Promise(t=>{setTimeout(()=>t(null),e)})}function bO(e,t){return new Promise((o,s)=>{(async()=>{for(let a=0;a<1/0;a++)try{const l=await e(a);if(!t(a,null,l)){o(l);return}}catch(l){if(!t(a,l)){s(l);return}}})()})}function SO(e){return("0"+e.toString(16)).substr(-2)}function kO(){const t=new Uint32Array(56);if(typeof crypto>"u"){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",o=n.length;let s="";for(let a=0;a<56;a++)s+=n.charAt(Math.floor(Math.random()*o));return s}return crypto.getRandomValues(t),Array.from(t,SO).join("")}async function AO(e){const n=new TextEncoder().encode(e),o=await crypto.subtle.digest("SHA-256",
34n),s=new Uint8Array(o);return Array.from(s).map(a=>String.fromCharCode(a)).join("")}async function xO(e){if(!(typeof crypto<"u"&&typeof crypto.subtle<"u"&&typeof TextEncoder<"u"))return console.warn("WebCrypto API is not supported. Code challenge method will default to use plain instead of sha256."),e;const n=await AO(e);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Ti(e,t,n=!1){const o=kO();let s=o;n&&(s+="/PASSWORD_RECOVERY"),await ji(e,`${t}-code-verifier`,s);const a=await xO(o);return[a,o===a?"plain":"s256"]}const _O=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function EO(e){const t=e.headers.get(op);if(!t||!t.match(_O))return null;try{return new Date(`${t}T00:00:00.0Z`)}catch{return null}}function TO(e){if(!e)throw new Error("Missing exp claim");const t=Math.floor(Date.now()/1e3);if(e<=t)throw new Error("JWT has expired")}function PO(e){switch(e){case"RS256":return{name:"RSASSA-PKCS1-v1_5",hash:{name:"SHA-256"}};case"ES256":return{name:"ECDSA",namedCurve:"P-256",hash:{name:"SHA-256"}};default:throw new Error("Invalid alg claim")}}const CO=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function Pi(e){if(!CO.test(e))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function wh(){const e={};return new Proxy(e,{get:(t,n)=>{if(n==="__isUserNotAvailableProxy")return!0;if(typeof n=="symbol"){const o=n.toString();if(o==="Symbol(Symbol.toPrimitive)"||o==="Symbol(Symbol.toStringTag)"||o==="Symbol(util.inspect.custom)")return}throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Accessing the "${n}" property of the session object is not supported. Please use getUser() instead.`)},set:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Setting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)},deleteProperty:(t,n)=>{throw new Error(`@supabase/auth-js: client was created with userStorage option and there was no user stored in the user storage. Deleting the "${n}" property of the session object is not supported. Please use getUser() to fetch a user object you can manipulate.`)}})}function IO(e,t){return new Proxy(e,{get:(n,o,s)=>{if(o==="__isInsecureUserWarningProxy")return!0;if(typeof o=="symbol"){const a=o.toString();if(a==="Symbol(Symbol.toPrimitive)"||a==="Symbol(Symbol.toStringTag)"||a==="Symbol(util.inspect.custom)"||a==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(n,o,s)}return!t.value&&typeof o=="string"&&(console.warn("Using the user object as returned from supabase.auth.getSession() or from some supabase.auth.onAuthStateChange() events could be insecure! This value comes directly from the storage medium (usually cookies on the server) and may not be authentic. Use supabase.auth.getUser() instead which authenticates the data by contacting the Supabase Auth server."),t.value=!0),Reflect.get(n,o,s)}})}function vy(e){return JSON.parse(JSON.stringify(e))}const Lo=e=>e.msg||e.message||e.error_description||e.error||JSON.stringify(e),RO=[502,503,504];async function yy(e){var t;if(!yO(e))throw new ip(Lo(e),0);if(RO.includes(e.status))throw new ip(Lo(e),e.status);let n;try{n=await e.json()}catch(a){throw new Mo(Lo(a),a)}let o;const s=EO(e);if(s&&s.getTime()>=C0["2024-01-01"].timestamp&&typeof n=="object"&&n&&typeof n.code=="string"?o=n.code:typeof n=="object"&&n&&typeof n.error_code=="string"&&(o=n.error_code),o){if(o==="weak_password")throw new py(Lo(n),e.status,((t=n.weak_password)===null||t===void 0?void 0:t.reasons)||[]);if(o==="session_not_found")throw new Ln}else if(typeof n=="object"&&n&&typeof n.weak_password=="object"&&n.weak_password&&Array.isArray(n.weak_password.reasons)&&n.weak_password.reasons.length&&n.weak_password.reasons.reduce((a,l)=>a&&typeof l=="string",!0))throw new py(Lo(n),e.status,n.weak_password.reasons);throw new sO(Lo(n),e.status||500,o)}const OO=(e,t,n,o)=>{const s={method:e,headers:t?.headers||{}};return e==="GET"?s:(s.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},t?.headers),s.body=JSON.stringify(o),Object.assign(Object.assign({},s),n))};async function ke(e,t,n,o){var s;const a=Object.assign({},o?.headers);a[op]||(a[op]=C0["2024-01-01"].name),o?.jwt&&(a.Authorization=`Bearer ${o.jwt}`);const l=(s=o?.query)!==null&&s!==void 0?s:{};o?.redirectTo&&(l.redirect_to=o.redirectTo);const c=Object.keys(l).length?"?"+new URLSearchParams(l).toString():"",h=await LO(e,t,n+c,{headers:a,noResolveJson:o?.noResolveJson},{},o?.body);return o?.xform?o?.xform(h):{data:Object.assign({},h),error:null}}async function LO(e,t,n,o,s,a){const l=OO(t,o,s,a);let c;try{c=await e(n,Object.assign({},l))}catch(h){throw console.error(h),new ip(Lo(h),0)}if(c.ok||await yy(c),o?.noResolveJson)return c;try{return await c.json()}catch(h){await yy(h)}}function zn(e){var t;let n=null;MO(e)&&(n=Object.assign({},e),e.expires_at||(n.expires_at=mO(e.expires_in)));const o=(t=e.user)!==null&&t!==void 0?t:e;return{data:{session:n,user:o},error:null}}function wy(e){const t=zn(e);return!t.error&&e.weak_password&&typeof e.weak_password=="object"&&Array.isArray(e.weak_password.reasons)&&e.weak_password.reasons.length&&e.weak_password.message&&typeof e.weak_password.message=="string"&&e.weak_password.reasons.reduce((n,o)=>
34n&&typeof o=="string",!0)&&(t.data.weak_password=e.weak_password),t}function ro(e){var t;return{data:{user:(t=e.user)!==null&&t!==void 0?t:e},error:null}}function zO(e){return{data:e,error:null}}function NO(e){const{action_link:t,email_otp:n,hashed_token:o,redirect_to:s,verification_type:a}=e,l=po(e,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),c={action_link:t,email_otp:n,hashed_token:o,redirect_to:s,verification_type:a},h=Object.assign({},l);return{data:{properties:c,user:h},error:null}}function by(e){return e}function MO(e){return e.access_token&&e.refresh_token&&e.expires_in}const bh=["global","local","others"];class DO{constructor({url:t="",headers:n={},fetch:o}){this.url=t,this.headers=n,this.fetch=O0(o),this.mfa={listFactors:this._listFactors.bind(this),deleteFactor:this._deleteFactor.bind(this)},this.oauth={listClients:this._listOAuthClients.bind(this),createClient:this._createOAuthClient.bind(this),getClient:this._getOAuthClient.bind(this),updateClient:this._updateOAuthClient.bind(this),deleteClient:this._deleteOAuthClient.bind(this),regenerateClientSecret:this._regenerateOAuthClientSecret.bind(this)}}async signOut(t,n=bh[0]){if(bh.indexOf(n)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${bh.join(", ")}`);try{return await ke(this.fetch,"POST",`${this.url}/logout?scope=${n}`,{headers:this.headers,jwt:t,noResolveJson:!0}),{data:null,error:null}}catch(o){if(ve(o))return{data:null,error:o};throw o}}async inviteUserByEmail(t,n={}){try{return await ke(this.fetch,"POST",`${this.url}/invite`,{body:{email:t,data:n.data},headers:this.headers,redirectTo:n.redirectTo,xform:ro})}catch(o){if(ve(o))return{data:{user:null},error:o};throw o}}async generateLink(t){try{const{options:n}=t,o=po(t,["options"]),s=Object.assign(Object.assign({},o),n);return"newEmail"in o&&(s.new_email=o?.newEmail,delete s.newEmail),await ke(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:s,headers:this.headers,xform:NO,redirectTo:n?.redirectTo})}catch(n){if(ve(n))return{data:{properties:null,user:null},error:n};throw n}}async createUser(t){try{return await ke(this.fetch,"POST",`${this.url}/admin/users`,{body:t,headers:this.headers,xform:ro})}catch(n){if(ve(n))return{data:{user:null},error:n};throw n}}async listUsers(t){var n,o,s,a,l,c,h;try{const p={nextPage:null,lastPage:0,total:0},f=await ke(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(o=(n=t?.page)===null||n===void 0?void 0:n.toString())!==null&&o!==void 0?o:"",per_page:(a=(s=t?.perPage)===null||s===void 0?void 0:s.toString())!==null&&a!==void 0?a:""},xform:by});if(f.error)throw f.error;const m=await f.json(),y=(l=f.headers.get("x-total-count"))!==null&&l!==void 0?l:0,v=(h=(c=f.headers.get("link"))===null||c===void 0?void 0:c.split(","))!==null&&h!==void 0?h:[];return v.length>0&&(v.forEach(k=>{const S=parseInt(k.split(";")[0].split("=")[1].substring(0,1)),b=JSON.parse(k.split(";")[1].split("=")[1]);p[`${b}Page`]=S}),p.total=parseInt(y)),{data:Object.assign(Object.assign({},m),p),error:null}}catch(p){if(ve(p))return{data:{users:[]},error:p};throw p}}async getUserById(t){Pi(t);try{return await ke(this.fetch,"GET",`${this.url}/admin/users/${t}`,{headers:this.headers,xform:ro})}catch(n){if(ve(n))return{data:{user:null},error:n};throw n}}async updateUserById(t,n){Pi(t);try{return await ke(this.fetch,"PUT",`${this.url}/admin/users/${t}`,{body:n,headers:this.headers,xform:ro})}catch(o){if(ve(o))return{data:{user:null},error:o};throw o}}async deleteUser(t,n=!1){Pi(t);try{return await ke(this.fetch,"DELETE",`${this.url}/admin/users/${t}`,{headers:this.headers,body:{should_soft_delete:n},xform:ro})}catch(o){if(ve(o))return{data:{user:null},error:o};throw o}}async _listFactors(t){Pi(t.userId);try{const{data:n,error:o}=await ke(this.fetch,"GET",`${this.url}/admin/users/${t.userId}/factors`,{headers:this.headers,xform:s=>({data:{factors:s},error:null})});return{data:n,error:o}}catch(n){if(ve(n))return{data:null,error:n};throw n}}async _deleteFactor(t){Pi(t.userId),Pi(t.id);
34try{return{data:await ke(this.fetch,"DELETE",`${this.url}/admin/users/${t.userId}/factors/${t.id}`,{headers:this.headers}),error:null}}catch(n){if(ve(n))return{data:null,error:n};throw n}}async _listOAuthClients(t){var n,o,s,a,l,c,h;try{const p={nextPage:null,lastPage:0,total:0},f=await ke(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(o=(n=t?.page)===null||n===void 0?void 0:n.toString())!==null&&o!==void 0?o:"",per_page:(a=(s=t?.perPage)===null||s===void 0?void 0:s.toString())!==null&&a!==void 0?a:""},xform:by});if(f.error)throw f.error;const m=await f.json(),y=(l=f.headers.get("x-total-count"))!==null&&l!==void 0?l:0,v=(h=(c=f.headers.get("link"))===null||c===void 0?void 0:c.split(","))!==null&&h!==void 0?h:[];return v.length>0&&(v.forEach(k=>{const S=parseInt(k.split(";")[0].split("=")[1].substring(0,1)),b=JSON.parse(k.split(";")[1].split("=")[1]);p[`${b}Page`]=S}),p.total=parseInt(y)),{data:Object.assign(Object.assign({},m),p),error:null}}catch(p){if(ve(p))return{data:{clients:[]},error:p};throw p}}async _createOAuthClient(t){try{return await ke(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:t,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(ve(n))return{data:null,error:n};throw n}}async _getOAuthClient(t){try{return await ke(this.fetch,"GET",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(ve(n))return{data:null,error:n};throw n}}async _updateOAuthClient(t,n){try{return await ke(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${t}`,{body:n,headers:this.headers,xform:o=>({data:o,error:null})})}catch(o){if(ve(o))return{data:null,error:o};throw o}}async _deleteOAuthClient(t){try{return await ke(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${t}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(ve(n))return{data:null,error:n};throw n}}async _regenerateOAuthClientSecret(t){try{return await ke(this.fetch,"POST",`${this.url}/admin/oauth/clients/${t}/regenerate_secret`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(ve(n))return{data:null,error:n};throw n}}}function Sy(e={}){return{getItem:t=>e[t]||null,setItem:(t,n)=>{e[t]=n},removeItem:t=>{delete e[t]}}}const Ci={debug:!!(globalThis&&R0()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class L0 extends Error{constructor(t){super(t),this.isAcquireTimeout=!0}}class jO extends L0{}async function FO(e,t,n){Ci.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",e,t);const o=new globalThis.AbortController;return t>0&&setTimeout(()=>{o.abort(),Ci.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",e)},t),await Promise.resolve().then(()=>globalThis.navigator.locks.request(e,t===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:o.signal},async s=>{if(s){Ci.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",e,s.name);try{return await n()}finally{Ci.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",e,s.name)}}else{if(t===0)throw Ci.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",e),new jO(`Acquiring an exclusive Navigator LockManager lock "${e}" immediately failed`);if(Ci.debug)try{const a=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(a,null," "))}catch(a){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",a)}return console.warn("@supabase/gotrue-js: Navigator LockManager returned a null lock when using #request without ifAvailable set to true, it appears this browser is not following the LockManager spec https://developer.mozilla.org/en-US/docs/Web/API/LockManager/request"),await n()}}))}function $O(){if(typeof globalThis!="object")try{Object.defineProperty(Object.prototype,"__magic__",{get:function(){return this},configurable:!0}),__magic__.globalThis=__magic__,delete Object.prototype.__magic__}catch{typeof self<"u"&&(self.globalThis=self)}}function z0(e){if(!/^0x[a-fA-F0-9]{40}$/.test(e))throw new Error(`@supabase/auth-js: Address "${e}
34" is invalid.`);return e.toLowerCase()}function VO(e){return parseInt(e,16)}function UO(e){const t=new TextEncoder().encode(e);return"0x"+Array.from(t,o=>o.toString(16).padStart(2,"0")).join("")}function BO(e){var t;const{chainId:n,domain:o,expirationTime:s,issuedAt:a=new Date,nonce:l,notBefore:c,requestId:h,resources:p,scheme:f,uri:m,version:y}=e;{if(!Number.isInteger(n))throw new Error(`@supabase/auth-js: Invalid SIWE message field "chainId". Chain ID must be a EIP-155 chain ID. Provided value: ${n}`);if(!o)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(l&&l.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${l}`);if(!m)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(y!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${y}`);if(!((t=e.statement)===null||t===void 0)&&t.includes(` 35`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${e.statement}`)}const v=z0(e.address),k=f?`${f}://${o}`:o,S=e.statement?`${e.statement} 36`:"",b=`${k} wants you to sign in with your Ethereum account: 37${v} 38 39${S}`;let x=`URI: ${m} 40Version: ${y} 41Chain ID: ${n}${l?` 42Nonce: ${l}`:""} 43Issued At: ${a.toISOString()}`;if(s&&(x+=` 44Expiration Time: ${s.toISOString()}`),c&&(x+=` 45Not Before: ${c.toISOString()}`),h&&(x+=` 46Request ID: ${h}`),p){let E=` 47Resources:`;for(const P of p){if(!P||typeof P!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${P}`);E+=` 48- ${P}`}x+=E}return`${b} 49${x}`}class lt extends Error{constructor({message:t,code:n,cause:o,name:s}){var a;super(t,{cause:o}),this.__isWebAuthnError=!0,this.name=(a=s??(o instanceof Error?o.name:void 0))!==null&&a!==void 0?a:"Unknown Error",this.code=n}}class Ou extends lt{constructor(t,n){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:n,message:t}),this.name="WebAuthnUnknownError",this.originalError=n}}function WO({error:e,options:t}){var n,o,s;const{publicKey:a}=t;if(!a)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new lt({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else if(e.name==="ConstraintError"){if(((n=a.authenticatorSelection)===null||n===void 0?void 0:n.requireResidentKey)===!0)return new lt({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:e});if(t.mediation==="conditional"&&((o=a.authenticatorSelection)===null||o===void 0?void 0:o.userVerification)==="required")return new lt({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:e});if(((s=a.authenticatorSelection)===null||s===void 0?void 0:s.userVerification)==="required")return new lt({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:e})}else{if(e.name==="InvalidStateError")return new lt({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:e});if(e.name==="NotAllowedError")return new lt({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="NotSupportedError")return a.pubKeyCredParams.filter(c=>c.type==="public-key").length===0?new lt({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:e}):new lt({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:e});if(e.name==="SecurityError"){const l=window.location.hostname;
49if(N0(l)){if(a.rp.id!==l)return new lt({message:`The RP ID "${a.rp.id}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new lt({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="TypeError"){if(a.user.id.byteLength<1||a.user.id.byteLength>64)return new lt({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:e})}else if(e.name==="UnknownError")return new lt({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new lt({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}function qO({error:e,options:t}){const{publicKey:n}=t;if(!n)throw Error("options was missing required publicKey property");if(e.name==="AbortError"){if(t.signal instanceof AbortSignal)return new lt({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:e})}else{if(e.name==="NotAllowedError")return new lt({message:e.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e});if(e.name==="SecurityError"){const o=window.location.hostname;if(N0(o)){if(n.rpId!==o)return new lt({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:e})}else return new lt({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:e})}else if(e.name==="UnknownError")return new lt({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:e})}return new lt({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:e})}class GO{createNewAbortSignal(){if(this.controller){const n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n)}const t=new AbortController;return this.controller=t,t.signal}cancelCeremony(){if(this.controller){const t=new Error("Manually cancelling existing WebAuthn API call");t.name="AbortError",this.controller.abort(t),this.controller=void 0}}}const HO=new GO;function KO(e){if(!e)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(e);const{challenge:t,user:n,excludeCredentials:o}=e,s=po(e,["challenge","user","excludeCredentials"]),a=qi(t).buffer,l=Object.assign(Object.assign({},n),{id:qi(n.id).buffer}),c=Object.assign(Object.assign({},s),{challenge:a,user:l});if(o&&o.length>0){c.excludeCredentials=new Array(o.length);for(let h=0;h<o.length;h++){const p=o[h];c.excludeCredentials[h]=Object.assign(Object.assign({},p),{id:qi(p.id).buffer,type:p.type||"public-key",transports:p.transports})}}return c}function YO(e){if(!e)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(e);const{challenge:t,allowCredentials:n}=e,o=po(e,["challenge","allowCredentials"]),s=qi(t).buffer,a=Object.assign(Object.assign({},o),{challenge:s});if(n&&n.length>0){a.allowCredentials=new Array(n.length);for(let l=0;l<n.length;l++){const c=n[l];a.allowCredentials[l]=Object.assign(Object.assign({},c),{id:qi(c.id).buffer,type:c.type||"public-key",transports:c.transports})}}return a}function JO(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e;return{id:e.id,rawId:e.id,response:{attestationObject:Uo(new Uint8Array(e.response.attestationObject)),clientDataJSON:Uo(new Uint8Array(e.response.clientDataJSON))},type:"public-key",clientExtensionResults:e.getClientExtensionResults(),authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function QO(e){var t;if("toJSON"in e&&typeof e.toJSON=="function")return e.toJSON();const n=e,o=e.getClientExtensionResults(),s=e.response;return{id:e.id,rawId:e.id,response:{authenticatorData:Uo(new Uint8Array(s.authenticatorData)),clientDataJSON:Uo(new Uint8Array(s.clientDataJSON)),signature:Uo(new Uint8Array(s.signature)),userHandle:s.userHandle?Uo(new Uint8Array(s.userHandle)):void 0},type:"public-key",clientExtensionResults:o,authenticatorAttachment:(t=n.authenticatorAttachment)!==null&&t!==void 0?t:void 0}}function N0(e){return e==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(e)}function ky(){var e,t;return!!(xt()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((e=navigator?.credentials)===null||e===void 0?void 0:e.create)=="function"&&typeof((t=navigator?.credentials)===null||t===void 0?void 0:t.get)=="function")}async function XO(e){try{const t=await navigator.credentials.create(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Ou("Browser returned unexpected credential type",t)}:{data:null,error:new Ou("Empty credential response",t)}}
49catch(t){return{data:null,error:WO({error:t,options:e})}}}async function ZO(e){try{const t=await navigator.credentials.get(e);return t?t instanceof PublicKeyCredential?{data:t,error:null}:{data:null,error:new Ou("Browser returned unexpected credential type",t)}:{data:null,error:new Ou("Empty credential response",t)}}catch(t){return{data:null,error:qO({error:t,options:e})}}}const eL={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},tL={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function Lu(...e){const t=s=>s!==null&&typeof s=="object"&&!Array.isArray(s),n=s=>s instanceof ArrayBuffer||ArrayBuffer.isView(s),o={};for(const s of e)if(s)for(const a in s){const l=s[a];if(l!==void 0)if(Array.isArray(l))o[a]=l;else if(n(l))o[a]=l;else if(t(l)){const c=o[a];t(c)?o[a]=Lu(c,l):o[a]=Lu(l)}else o[a]=l}return o}function nL(e,t){return Lu(eL,e,t||{})}function rL(e,t){return Lu(tL,e,t||{})}class oL{constructor(t){this.client=t,this.enroll=this._enroll.bind(this),this.challenge=this._challenge.bind(this),this.verify=this._verify.bind(this),this.authenticate=this._authenticate.bind(this),this.register=this._register.bind(this)}async _enroll(t){return this.client.mfa.enroll(Object.assign(Object.assign({},t),{factorType:"webauthn"}))}async _challenge({factorId:t,webauthn:n,friendlyName:o,signal:s},a){try{const{data:l,error:c}=await this.client.mfa.challenge({factorId:t,webauthn:n});if(!l)return{data:null,error:c};const h=s??HO.createNewAbortSignal();if(l.webauthn.type==="create"){const{user:p}=l.webauthn.credential_options.publicKey;p.name||(p.name=`${p.id}:${o}`),p.displayName||(p.displayName=p.name)}switch(l.webauthn.type){case"create":{const p=nL(l.webauthn.credential_options.publicKey,a?.create),{data:f,error:m}=await XO({publicKey:p,signal:h});return f?{data:{factorId:t,challengeId:l.id,webauthn:{type:l.webauthn.type,credential_response:f}},error:null}:{data:null,error:m}}case"request":{const p=rL(l.webauthn.credential_options.publicKey,a?.request),{data:f,error:m}=await ZO(Object.assign(Object.assign({},l.webauthn.credential_options),{publicKey:p,signal:h}));return f?{data:{factorId:t,challengeId:l.id,webauthn:{type:l.webauthn.type,credential_response:f}},error:null}:{data:null,error:m}}}}catch(l){return ve(l)?{data:null,error:l}:{data:null,error:new Mo("Unexpected error in challenge",l)}}}async _verify({challengeId:t,factorId:n,webauthn:o}){return this.client.mfa.verify({factorId:n,challengeId:t,webauthn:o})}async _authenticate({factorId:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:o=typeof window<"u"?[window.location.origin]:void 0,signal:s}={}},a){if(!n)return{data:null,error:new ha("rpId is required for WebAuthn authentication")};try{if(!ky())return{data:null,error:new Mo("Browser does not support WebAuthn",null)};const{data:l,error:c}=await this.challenge({factorId:t,webauthn:{rpId:n,rpOrigins:o},signal:s},{request:a});if(!l)return{data:null,error:c};const{webauthn:h}=l;return this._verify({factorId:t,challengeId:l.challengeId,webauthn:{type:h.type,rpId:n,rpOrigins:o,credential_response:h.credential_response}})}catch(l){return ve(l)?{data:null,error:l}:{data:null,error:new Mo("Unexpected error in authenticate",l)}}}async _register({friendlyName:t,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:o=typeof window<"u"?[window.location.origin]:void 0,signal:s}={}},a){if(!n)return{data:null,error:new ha("rpId is required for WebAuthn registration")};try{if(!ky())return{data:null,error:new Mo("Browser does not support WebAuthn",null)};const{data:l,error:c}=await this._enroll({friendlyName:t});if(!l)return await this.client.mfa.listFactors().then(f=>{var m;return(m=f.data)===null||m===void 0?void 0:m.all.find(y=>y.factor_type==="webauthn"&&y.friendly_name===t&&y.status!=="unverified")}).then(f=>f?this.client.mfa.unenroll({factorId:f?.id}):void 0),{data:null,error:c};const{data:h,error:p}=await this._challenge({factorId:l.id,friendlyName:l.friendly_name,webauthn:{rpId:n,rpOrigins:o},signal:s},{create:a});return h?this._verify({factorId:l.id,challengeId:h.challengeId,webauthn:{rpId:n,rpOrigins:o,type:h.webauthn.type,credential_response:h.webauthn.credential_response}}):{data:null,error:p}}catch(l){return ve(l)?{data:null,error:l}:{data:null,error:new Mo("Unexpected error in register",l)}}}}$O();const iL={url:tO,storageKey:nO,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:rO,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1};
49async function Ay(e,t,n){return await n()}const Ii={};class pa{get jwks(){var t,n;return(n=(t=Ii[this.storageKey])===null||t===void 0?void 0:t.jwks)!==null&&n!==void 0?n:{keys:[]}}set jwks(t){Ii[this.storageKey]=Object.assign(Object.assign({},Ii[this.storageKey]),{jwks:t})}get jwks_cached_at(){var t,n;return(n=(t=Ii[this.storageKey])===null||t===void 0?void 0:t.cachedAt)!==null&&n!==void 0?n:Number.MIN_SAFE_INTEGER}set jwks_cached_at(t){Ii[this.storageKey]=Object.assign(Object.assign({},Ii[this.storageKey]),{cachedAt:t})}constructor(t){var n,o,s;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.visibilityChangedCallback=null,this.refreshingDeferred=null,this.initializePromise=null,this.detectSessionInUrl=!0,this.hasCustomAuthorizationHeader=!1,this.suppressGetSessionWarning=!1,this.lockAcquired=!1,this.pendingInLock=[],this.broadcastChannel=null,this.logger=console.log;const a=Object.assign(Object.assign({},iL),t);if(this.storageKey=a.storageKey,this.instanceID=(n=pa.nextInstanceID[this.storageKey])!==null&&n!==void 0?n:0,pa.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!a.debug,typeof a.debug=="function"&&(this.logger=a.debug),this.instanceID>0&&xt()){const l=`${this._logPrefix()} Multiple GoTrueClient instances detected in the same browser context. It is not an error, but this should be avoided as it may produce undefined behavior when used concurrently under the same storage key.`;console.warn(l),this.logDebugMessages&&console.trace(l)}if(this.persistSession=a.persistSession,this.autoRefreshToken=a.autoRefreshToken,this.admin=new DO({url:a.url,headers:a.headers,fetch:a.fetch}),this.url=a.url,this.headers=a.headers,this.fetch=O0(a.fetch),this.lock=a.lock||Ay,this.detectSessionInUrl=a.detectSessionInUrl,this.flowType=a.flowType,this.hasCustomAuthorizationHeader=a.hasCustomAuthorizationHeader,this.throwOnError=a.throwOnError,a.lock?this.lock=a.lock:xt()&&(!((o=globalThis?.navigator)===null||o===void 0)&&o.locks)?this.lock=FO:this.lock=Ay,this.jwks||(this.jwks={keys:[]},this.jwks_cached_at=Number.MIN_SAFE_INTEGER),this.mfa={verify:this._verify.bind(this),enroll:this._enroll.bind(this),unenroll:this._unenroll.bind(this),challenge:this._challenge.bind(this),listFactors:this._listFactors.bind(this),challengeAndVerify:this._challengeAndVerify.bind(this),getAuthenticatorAssuranceLevel:this._getAuthenticatorAssuranceLevel.bind(this),webauthn:new oL(this)},this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this)},this.persistSession?(a.storage?this.storage=a.storage:R0()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=Sy(this.memoryStorage)),a.userStorage&&(this.userStorage=a.userStorage)):(this.memoryStorage={},this.storage=Sy(this.memoryStorage)),xt()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(l){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",l)}(s=this.broadcastChannel)===null||s===void 0||s.addEventListener("message",async l=>{this._debug("received broadcast notification from other tab or client",l),await this._notifyAllSubscribers(l.data.event,l.data.session,!1)})}this.initialize()}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(t){if(this.throwOnError&&t&&t.error)throw t.error;return t}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${P0}) ${new Date().toISOString()}`}_debug(...t){return this.logDebugMessages&&this.logger(this._logPrefix(),...t),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(-1,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var t;try{let n={},o="none";if(xt()&&(n=vO(window.location.href),this._isImplicitGrantCallback(n)?o="implicit":await this._isPKCECallback(n)&&(o="pkce")),xt()&&this.detectSessionInUrl&&o!=="none"){const{data:s,error:a}=await this._getSessionFromURL(n,o);if(a){if(this._debug("#_initialize()","error detecting session from URL",a),uO(a
49)){const h=(t=a.details)===null||t===void 0?void 0:t.code;if(h==="identity_already_exists"||h==="identity_not_found"||h==="single_identity_not_deletable")return{error:a}}return await this._removeSession(),{error:a}}const{session:l,redirectType:c}=s;return this._debug("#_initialize()","detected session in URL",l,"redirect type",c),await this._saveSession(l),setTimeout(async()=>{c==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",l):await this._notifyAllSubscribers("SIGNED_IN",l)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(n){return ve(n)?this._returnResult({error:n}):this._returnResult({error:new Mo("Unexpected error during initialization",n)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(t){var n,o,s;try{const a=await ke(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(o=(n=t?.options)===null||n===void 0?void 0:n.data)!==null&&o!==void 0?o:{},gotrue_meta_security:{captcha_token:(s=t?.options)===null||s===void 0?void 0:s.captchaToken}},xform:zn}),{data:l,error:c}=a;if(c||!l)return this._returnResult({data:{user:null,session:null},error:c});const h=l.session,p=l.user;return l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers("SIGNED_IN",h)),this._returnResult({data:{user:p,session:h},error:null})}catch(a){if(ve(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signUp(t){var n,o,s;try{let a;if("email"in t){const{email:f,password:m,options:y}=t;let v=null,k=null;this.flowType==="pkce"&&([v,k]=await Ti(this.storage,this.storageKey)),a=await ke(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:y?.emailRedirectTo,body:{email:f,password:m,data:(n=y?.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:y?.captchaToken},code_challenge:v,code_challenge_method:k},xform:zn})}else if("phone"in t){const{phone:f,password:m,options:y}=t;a=await ke(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:f,password:m,data:(o=y?.data)!==null&&o!==void 0?o:{},channel:(s=y?.channel)!==null&&s!==void 0?s:"sms",gotrue_meta_security:{captcha_token:y?.captchaToken}},xform:zn})}else throw new Zl("You must provide either an email or phone number and a password");const{data:l,error:c}=a;if(c||!l)return this._returnResult({data:{user:null,session:null},error:c});const h=l.session,p=l.user;return l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers("SIGNED_IN",h)),this._returnResult({data:{user:p,session:h},error:null})}catch(a){if(ve(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async signInWithPassword(t){try{let n;if("email"in t){const{email:a,password:l,options:c}=t;n=await ke(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:a,password:l,gotrue_meta_security:{captcha_token:c?.captchaToken}},xform:wy})}else if("phone"in t){const{phone:a,password:l,options:c}=t;n=await ke(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:a,password:l,gotrue_meta_security:{captcha_token:c?.captchaToken}},xform:wy})}else throw new Zl("You must provide either an email or phone number and a password");const{data:o,error:s}=n;if(s)return this._returnResult({data:{user:null,session:null},error:s});if(!o||!o.session||!o.user){const a=new Ei;return this._returnResult({data:{user:null,session:null},error:a})}return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",o.session)),this._returnResult({data:Object.assign({user:o.user,session:o.session},o.weak_password?{weakPassword:o.weak_password}:null),error:s})}catch(n){if(ve(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOAuth(t){var n,o,s,a;return await this._handleProviderSignIn(t.provider,{redirectTo:(n=t.options)===null||n===void 0?void 0:n.redirectTo,scopes:(o=t.options)===null||o===void 0?void 0:o.scopes,queryParams:(s=t.options)===null||s===void 0?void 0:s.queryParams,skipBrowserRedirect:(a=t.o
49ptions)===null||a===void 0?void 0:a.skipBrowserRedirect})}async exchangeCodeForSession(t){return await this.initializePromise,this._acquireLock(-1,async()=>this._exchangeCodeForSession(t))}async signInWithWeb3(t){const{chain:n}=t;switch(n){case"ethereum":return await this.signInWithEthereum(t);case"solana":return await this.signInWithSolana(t);default:throw new Error(`@supabase/auth-js: Unsupported chain "${n}"`)}}async signInWithEthereum(t){var n,o,s,a,l,c,h,p,f,m,y;let v,k;if("message"in t)v=t.message,k=t.signature;else{const{chain:S,wallet:b,statement:x,options:E}=t;let P;if(xt())if(typeof b=="object")P=b;else{const W=window;if("ethereum"in W&&typeof W.ethereum=="object"&&"request"in W.ethereum&&typeof W.ethereum.request=="function")P=W.ethereum;else throw new Error("@supabase/auth-js: No compatible Ethereum wallet interface on the window object (window.ethereum) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'ethereum', wallet: resolvedUserWallet }) instead.")}else{if(typeof b!="object"||!E?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");P=b}const I=new URL((n=E?.url)!==null&&n!==void 0?n:window.location.href),O=await P.request({method:"eth_requestAccounts"}).then(W=>W).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!O||O.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const D=z0(O[0]);let M=(o=E?.signInWithEthereum)===null||o===void 0?void 0:o.chainId;if(!M){const W=await P.request({method:"eth_chainId"});M=VO(W)}const $={domain:I.host,address:D,statement:x,uri:I.href,version:"1",chainId:M,nonce:(s=E?.signInWithEthereum)===null||s===void 0?void 0:s.nonce,issuedAt:(l=(a=E?.signInWithEthereum)===null||a===void 0?void 0:a.issuedAt)!==null&&l!==void 0?l:new Date,expirationTime:(c=E?.signInWithEthereum)===null||c===void 0?void 0:c.expirationTime,notBefore:(h=E?.signInWithEthereum)===null||h===void 0?void 0:h.notBefore,requestId:(p=E?.signInWithEthereum)===null||p===void 0?void 0:p.requestId,resources:(f=E?.signInWithEthereum)===null||f===void 0?void 0:f.resources};v=BO($),k=await P.request({method:"personal_sign",params:[UO(v),D]})}try{const{data:S,error:b}=await ke(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:v,signature:k},!((m=t.options)===null||m===void 0)&&m.captchaToken?{gotrue_meta_security:{captcha_token:(y=t.options)===null||y===void 0?void 0:y.captchaToken}}:null),xform:zn});if(b)throw b;if(!S||!S.session||!S.user){const x=new Ei;return this._returnResult({data:{user:null,session:null},error:x})}return S.session&&(await this._saveSession(S.session),await this._notifyAllSubscribers("SIGNED_IN",S.session)),this._returnResult({data:Object.assign({},S),error:b})}catch(S){if(ve(S))return this._returnResult({data:{user:null,session:null},error:S});throw S}}async signInWithSolana(t){var n,o,s,a,l,c,h,p,f,m,y,v;let k,S;if("message"in t)k=t.message,S=t.signature;else{const{chain:b,wallet:x,statement:E,options:P}=t;let I;if(xt())if(typeof x=="object")I=x;else{const D=window;if("solana"in D&&typeof D.solana=="object"&&("signIn"in D.solana&&typeof D.solana.signIn=="function"||"signMessage"in D.solana&&typeof D.solana.signMessage=="function"))I=D.solana;else throw new Error("@supabase/auth-js: No compatible Solana wallet interface on the window object (window.solana) detected. Make sure the user already has a wallet installed and connected for this app. Prefer passing the wallet interface object directly to signInWithWeb3({ chain: 'solana', wallet: resolvedUserWallet }) instead.")}else{if(typeof x!="object"||!P?.url)throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");I=x}const O=new URL((n=P?.url)!==null&&n!==void 0?n:window.location.href);if("signIn"in I&&I.signIn){const D=await I.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},P?.signInWithSolana),{version:"1",domain:O.host,uri:O.href}),E?{statement:E}:null));let M;if(Array.isArray(D)&&D[0]&&typeof D[0]=="object")M=D[0];else if(D&&typeof D=="object"&&"signedMessage"in D&&"signature"in D)M=D;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in M&&"signature"in M&&(typeof M.signedMessage=="string"||M.signedMessage instanceof Uint8Array)&&M.signature instanceof Uint8Array)k=typeof M.signedMessage=="string"?M.signedMessage:new TextDecoder().decode(M.signedMessage),S=M.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in I)||typeof I.signMessage!="function"||!("publicKey"in I)||typeof I!="object"||!I.publicKey||!("toBase58"in I.publicKey)||typeof I.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");k=[`${O.host} wants you to sign in with your Solana account:`,I.publicKey.toBase58(),...E?["",E,""]:[""],"Version: 1",`URI: ${O.href}`,`Issued At: ${(s=(o=P?.signInWithSolana)===null||o===void 0?void 0:o.issuedAt)!==null&&s!==void 0?s:new Date().toISOString()}`,...!((a=P?.signInWithSolana)===null||a===void 0)&&a.notBefore?[`Not Before: ${P.signInWithSolana.notBefore}`]:[],...!((l=P?.signInWithSolana)===null||l===void 0)&&l.expirationTime?[`Expiration Time: ${P.signInWithSolana.expirationTime}`]:[],...!((c=P?.signInWithSolana)===null||c===void 0)&&c.chainId?[`Chain ID: ${P.signInWithSolana.chainId}`]:[],...!((h=P?.signInWithSolana)===null||h===void 0)&&h.nonce?[`Nonce: ${P.signInWithSolana.nonce}`]:[],...!((p=P?.signInWithSolana)===null||p===void 0)&&p.requestId?[`Request ID: ${P.signInWithSolana.requestId}`]:[],...!((m=(f=P?.signInWithSolana)===null||f===void 0?void 0:f.resources)===null||m===void 0)&&m.length?["Resources",...P.signInWithSolana.resources.map(M=>`- ${M}`)]:[]].join(` 50`);const D=await I.signMessage(new TextEncoder().encode(k),"utf8");if(!D||!(D instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");S=D}}try{const{data:b,error:x}=await ke(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:k,signature:Uo(S)},!((y=t.options)===null||y===void 0)&&y.captchaToken?{gotrue_meta_security:{captcha_token:(v=t.options)===null||v===void 0?void 0:v.captchaToken}}:null),xform:zn});if(x)throw x;if(!b||!b.session||!b.user){const E=new Ei;return this._returnResult({data:{user:null,session:null},error:E})}return b.session&&(await this._saveSession(b.session),await this._notifyAllSubscribers("SIGNED_IN",b.session)),this._returnResult({data:Object.assign({},b),error:x})}catch(b){if(ve(b))return this._returnResult({data:{user:null,session:null},error:b});throw b}}async _exchangeCodeForSession(t){const n=await Oo(this.storage,`${this.storageKey}-code-verifier`),[o,s]=(n??"").split("/");try{const{data:a,error:l}=await ke(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:t,code_verifier:o},xform:zn});if(await Qr(this.storage,`${this.storageKey}-code-verifier`),l)throw l;if(!a||!a.session||!a.user){const c=new Ei;return this._returnResult({data:{user:null,session:null,redirectType:null},error:c})}return a.session&&(await this._saveSession(a.session),await this._notifyAllSubscribers("SIGNED_IN",a.session)),this._returnResult({data:Object.assign(Object.assign({},a),{redirectType:s??null}),error:l})}catch(a){if(ve(a))return this._returnResult({data:{user:null,session:null,redirectType:null},error:a});throw a}}async signInWithIdToken(t){try{const{options:n,provider:o,token:s,access_token:a,nonce:l}=t,c=await ke(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:o,id_token:s,access_token:a,nonce:l,gotrue_meta_security:{captcha_token:n?.captchaToken}},xform:zn}),{data:h,error:p}=c;if(p)return this._returnResult({data:{user:null,session:null},error:p});if(!h||!h.session||!h.user){const f=new Ei;return this._returnResult({data:{user:null,session:null},error:f})}return h.session&&(await this._saveSession(h.session),await this._notifyAllSubscribers("SIGNED_IN",h.session)),this._returnResult({data:h,error:p})}catch(n){if(ve(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOtp(t){var n,o,s,a,l;try{if("email"in t){const{email:c,options:h}=t;let p=null,f=null;this.flowType==="pkce"&&([p,f]=await Ti(this.storage,this.storageKey));const{error:m}=await ke(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:c,data:(n=h?.data)!==null&&n!==void 0?n:{},create_user:(o=h?.shouldCreateUser)!==null&&o!==void 0?o:!0,gotrue_meta_security:{captcha_token:h?.captchaToken},code_challenge:p,code_challenge_method:f},redirectTo:h?.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:m})}if("phone"in t){const{phone:c,options:h}=t,{data:p,error:f}=await ke(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:c,data:(s=h?.data)!==null&&s!==void 0?s:{},create_user:(a=h?.shouldCreateUser)!==null&&a!==void 0?a:!0,gotrue_meta_security:{captcha_token:h?.captchaToken},channel:(l=h?.channel)!==null&&l!==void 0?l:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:p?.message_id},error:f})}throw new Zl("You must provide either an email or phone number.")}catch(c){if(ve(c))return this._returnResult({data:{user:null,session:null},error:c});throw c}}async verifyOtp(t){var n,o;try{let s,a;"options"in t&&(s=(n=t.options)===null||n===void 0?void 0:n.redirectTo,a=(o=t.options)===null||o===void 0?void 0:o.captchaToken);const{data:l,error:c}=await ke(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},t),{gotrue_meta_security:{captcha_token:a}}),redirectTo:s,xform:zn});if(c)throw c;if(!l)throw new Error("An error occurred on token verification.");const h=l.session,p=l.user;return h?.access_token&&(await this._saveSession(h),await this._notifyAllSubscribers(t.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",h)),this._returnResult({data:{user:p,session:h},error:null})}catch(s){if(ve(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}}async signInWithSSO(t){var n,o,s,a,l;try{let c=null,h=null;this.flowType==="pkce"&&([c,h]=await Ti(this.storage,this.storageKey));const p=await ke(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in t?{provider_id:t.providerId}:null),"domain"in t?{domain:t.domain}:null),{redirect_to:(o=(n=t.options)===null||n===void 0?void 0:n.redirectTo)!==null&&o!==void 0?o:void 0}),!((s=t?.options)===null||s===void 0)&&s.captchaToken?{gotrue_meta_security:{captcha_token:t.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:c,code_challenge_method:h}),headers:this.headers,xform:zO});return!((a=p.data)===null||a===void 0)&&a.url&&xt()&&!(!((l=t.options)===null||l===void 0)&&l.skipBrowserRedirect)&&window.location.assign(p.data.url),this._returnResult(p)}catch(c){if(ve(c))return this._returnResult({data:null,error:c});throw c}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async t=>{const{data:{session:n},error:o}=t;if(o)throw o;if(!n)throw new Ln;const{error:s}=await ke(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:n.access_token});return this._returnResult({data:{user:null,session:null},error:s})})}catch(t){if(ve(t))return this._returnResult({data:{user:null,session:null},error:t});throw t}}async resend(t){try{const n=`${this.url}/resend`;if("email"in t){const{email:o,type:s,options:a}=t,{error:l}=await ke(this.fetch,"POST",n,{headers:this.headers,body:{email:o,type:s,gotrue_meta_security:{captcha_token:a?.captchaToken}},redirectTo:a?.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:l})}else if("phone"in t){const{phone:o,type:s,options:a}=t,{data:l,error:c}=await ke(this.fetch,"POST",n,{headers:this.headers,body:{phone:o,type:s,gotrue_meta_security:{captcha_token:a?.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:l?.message_id},error:c})}throw new Zl("You must provide either an email or phone number and a type")}catch(n){if(ve(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async getSession(){return await this.initializePromise,await this._acquireLock(-1,async()=>this._useSession(async n=>n))}async _acquireLock(t,n){this._debug("#_acquireLock","begin",t);try{if(this.lockAcquired){const o=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),s=(async()=>(await o,await n()))();return this.pendingInLock.push((async()=>{try{await s}catch{}})()),s}return await this.lock(`lock:${this.storageKey}`,t,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const o=n();for(this.pendingInLock.push((async()=>{try{await o}catch{}})()),await o;this.pendingInLock.length;){const s=[...this.pendingInLock];await Promise.all(s),this.pendingInLock.splice(0,s.length)}return await o}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(t){this._debug("#_useSession","begin");try{const n=await this.__loadSession();return await t(n)}finally{this._debug("#_useSession","end")}}async __loadSession(){this._debug("#__loadSession()","begin"),this.lockAcquired||this._debug("#__loadSession()","used outside of an acquired lock!",new Error().stack);try{let t=null;const n=await Oo(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",n),n!==null&&(this._isValidSession(n)?t=n:(this._debug("#getSession()","session from storage is not val
50id"),await this._removeSession())),!t)return{data:{session:null},error:null};const o=t.expires_at?t.expires_at*1e3-Date.now()<gh:!1;if(this._debug("#__loadSession()",`session has${o?"":" not"} expired`,"expires_at",t.expires_at),!o){if(this.userStorage){const l=await Oo(this.userStorage,this.storageKey+"-user");l?.user?t.user=l.user:t.user=wh()}if(this.storage.isServer&&t.user&&!t.user.__isUserNotAvailableProxy){const l={value:this.suppressGetSessionWarning};t.user=IO(t.user,l),l.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:t},error:null}}const{data:s,error:a}=await this._callRefreshToken(t.refresh_token);return a?this._returnResult({data:{session:null},error:a}):this._returnResult({data:{session:s},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(t){return t?await this._getUser(t):(await this.initializePromise,await this._acquireLock(-1,async()=>await this._getUser()))}async _getUser(t){try{return t?await ke(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:t,xform:ro}):await this._useSession(async n=>{var o,s,a;const{data:l,error:c}=n;if(c)throw c;return!(!((o=l.session)===null||o===void 0)&&o.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Ln}:await ke(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(a=(s=l.session)===null||s===void 0?void 0:s.access_token)!==null&&a!==void 0?a:void 0,xform:ro})})}catch(n){if(ve(n))return lO(n)&&(await this._removeSession(),await Qr(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:n});throw n}}async updateUser(t,n={}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._updateUser(t,n))}async _updateUser(t,n={}){try{return await this._useSession(async o=>{const{data:s,error:a}=o;if(a)throw a;if(!s.session)throw new Ln;const l=s.session;let c=null,h=null;this.flowType==="pkce"&&t.email!=null&&([c,h]=await Ti(this.storage,this.storageKey));const{data:p,error:f}=await ke(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:n?.emailRedirectTo,body:Object.assign(Object.assign({},t),{code_challenge:c,code_challenge_method:h}),jwt:l.access_token,xform:ro});if(f)throw f;return l.user=p.user,await this._saveSession(l),await this._notifyAllSubscribers("USER_UPDATED",l),this._returnResult({data:{user:l.user},error:null})})}catch(o){if(ve(o))return this._returnResult({data:{user:null},error:o});throw o}}async setSession(t){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._setSession(t))}async _setSession(t){try{if(!t.access_token||!t.refresh_token)throw new Ln;const n=Date.now()/1e3;let o=n,s=!0,a=null;const{payload:l}=yh(t.access_token);if(l.exp&&(o=l.exp,s=o<=n),s){const{data:c,error:h}=await this._callRefreshToken(t.refresh_token);if(h)return this._returnResult({data:{user:null,session:null},error:h});if(!c)return{data:{user:null,session:null},error:null};a=c}else{const{data:c,error:h}=await this._getUser(t.access_token);if(h)throw h;a={access_token:t.access_token,refresh_token:t.refresh_token,user:c.user,token_type:"bearer",expires_in:o-n,expires_at:o},await this._saveSession(a),await this._notifyAllSubscribers("SIGNED_IN",a)}return this._returnResult({data:{user:a.user,session:a},error:null})}catch(n){if(ve(n))return this._returnResult({data:{session:null,user:null},error:n});throw n}}async refreshSession(t){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._refreshSession(t))}async _refreshSession(t){try{return await this._useSession(async n=>{var o;if(!t){const{data:l,error:c}=n;if(c)throw c;t=(o=l.session)!==null&&o!==void 0?o:void 0}if(!t?.refresh_token)throw new Ln;const{data:s,error:a}=await this._callRefreshToken(t.refresh_token);return a?this._returnResult({data:{user:null,session:null},error:a}):s?this._returnResult({data:{user:s.user,session:s},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(n){if(ve(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async _getSessionFromURL(t,n){try{if(!xt())throw new eu("No browser detected.");
50if(t.error||t.error_description||t.error_code)throw new eu(t.error_description||"Error in URL with unspecified error_description",{error:t.error||"unspecified_error",code:t.error_code||"unspecified_code"});switch(n){case"implicit":if(this.flowType==="pkce")throw new hy("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new eu("Not a valid implicit grant flow url.");break;default:}if(n==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!t.code)throw new hy("No code detected.");const{data:E,error:P}=await this._exchangeCodeForSession(t.code);if(P)throw P;const I=new URL(window.location.href);return I.searchParams.delete("code"),window.history.replaceState(window.history.state,"",I.toString()),{data:{session:E.session,redirectType:null},error:null}}const{provider_token:o,provider_refresh_token:s,access_token:a,refresh_token:l,expires_in:c,expires_at:h,token_type:p}=t;if(!a||!c||!l||!p)throw new eu("No session defined in URL");const f=Math.round(Date.now()/1e3),m=parseInt(c);let y=f+m;h&&(y=parseInt(h));const v=y-f;v*1e3<=Di&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${v}s, should have been closer to ${m}s`);const k=y-m;f-k>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",k,y,f):f-k<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",k,y,f);const{data:S,error:b}=await this._getUser(a);if(b)throw b;const x={provider_token:o,provider_refresh_token:s,access_token:a,expires_in:m,expires_at:y,refresh_token:l,token_type:p,user:S.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:x,redirectType:t.type},error:null})}catch(o){if(ve(o))return this._returnResult({data:{session:null,redirectType:null},error:o});throw o}}_isImplicitGrantCallback(t){return!!(t.access_token||t.error_description)}async _isPKCECallback(t){const n=await Oo(this.storage,`${this.storageKey}-code-verifier`);return!!(t.code&&n)}async signOut(t={scope:"global"}){return await this.initializePromise,await this._acquireLock(-1,async()=>await this._signOut(t))}async _signOut({scope:t}={scope:"global"}){return await this._useSession(async n=>{var o;const{data:s,error:a}=n;if(a)return this._returnResult({error:a});const l=(o=s.session)===null||o===void 0?void 0:o.access_token;if(l){const{error:c}=await this.admin.signOut(l,t);if(c&&!(aO(c)&&(c.status===404||c.status===401||c.status===403)))return this._returnResult({error:c})}return t!=="others"&&(await this._removeSession(),await Qr(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(t){const n=gO(),o={id:n,callback:t,unsubscribe:()=>{this._debug("#unsubscribe()","state change callback with id removed",n),this.stateChangeEmitters.delete(n)}};return this._debug("#onAuthStateChange()","registered callback with id",n),this.stateChangeEmitters.set(n,o),(async()=>(await this.initializePromise,await this._acquireLock(-1,async()=>{this._emitInitialSession(n)})))(),{data:{subscription:o}}}async _emitInitialSession(t){return await this._useSession(async n=>{var o,s;try{const{data:{session:a},error:l}=n;if(l)throw l;await((o=this.stateChangeEmitters.get(t))===null||o===void 0?void 0:o.callback("INITIAL_SESSION",a)),this._debug("INITIAL_SESSION","callback id",t,"session",a)}catch(a){await((s=this.stateChangeEmitters.get(t))===null||s===void 0?void 0:s.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",t,"error",a),console.error(a)}})}async resetPasswordForEmail(t,n={}){let o=null,s=null;this.flowType==="pkce"&&([o,s]=await Ti(this.storage,this.storageKey,!0));try{return await ke(this.fetch,"POST",`${this.url}/recover`,{body:{email:t,code_challenge:o,code_challenge_method:s,gotrue_meta_security:{captcha_token:n.captchaToken}},headers:this.headers,redirectTo:n.redirectTo})}catch(a){if(ve(a))return this._returnResult({data:null,error:a});throw a}}async getUserIdentities(){var t;try{const{data:n,error:o}=await this.getUser();if(o)throw o;return this._returnResult({data:{identities:(t=n.user.identities)!==null&&t!==void 0?t:[]},error:null})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}}async linkIdentity(t){return"token"in t?this.linkIdentityIdToken(t):this.linkIdentityOAuth(t)}async linkIdentityOAuth(t){var n;try{const{data:o,error:s}=await this._useSession(async a=>{var l,c,h,p,f;const{data:m,error:y}=a;if(y)throw y;const v=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,t.provider,{redirectTo:(l=t.options)===null||l===void 0?void 0:l.redirectTo,scopes:(c=t.options)===null||c===void 0?void 0:c.scopes,queryParams:(h=t.options)===null||h===void 0?void 0:h.queryParams,skipBrowserRedirect:!0});return await ke(this.fetch,"GET",v,{headers:this.headers,jwt:(f=(p=m.session)===null||p===void 0?void 0:p.access_token)!==null&&f!==void 0?f:void 0})});if(s)throw s;return xt()&&!(!((n=t.options)===null||n===void 0)&&n.skipBrowserRedirect)&&window.location.assign(o?.url),this._returnResult({data:{provider:t.provider,url:o?.url},error:null})}catch(o){if(ve(o))return this._returnResult({data:{provider:t.provider,url:null},error:o});throw o}}async linkIdentityIdToken(t){return await this._useSession(async n=>{var o;try{const{error:s,data:{session:a}}=n;if(s)throw s;const{options:l,provider:c,token:h,access_token:p,nonce:f}=t,m=await ke(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(o=a?.access_token)!==null&&o!==void 0?o:void 0,body:{provider:c,id_token:h,access_token:p,nonce:f,link_identity:!0,gotrue_meta_security:{captcha_token:l?.captchaToken}},xform:zn}),{data:y,error:v}=m;return v?this._returnResult({data:{user:null,session:null},error:v}):!y||!y.session||!y.user?this._returnResult({data:{user:null,session:null},error:new Ei}):(y.session&&(await this._saveSession(y.session),await this._notifyAllSubscribers("USER_UPDATED",y.session)),this._returnResult({data:y,error:v}))}catch(s){if(ve(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}})}async unlinkIdentity(t){try{return await this._useSession(async n=>{var o,s;const{data:a,error:l}=n;if(l)throw l;
50return await ke(this.fetch,"DELETE",`${this.url}/user/identities/${t.identity_id}`,{headers:this.headers,jwt:(s=(o=a.session)===null||o===void 0?void 0:o.access_token)!==null&&s!==void 0?s:void 0})})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}}async _refreshAccessToken(t){const n=`#_refreshAccessToken(${t.substring(0,5)}...)`;this._debug(n,"begin");try{const o=Date.now();return await bO(async s=>(s>0&&await wO(200*Math.pow(2,s-1)),this._debug(n,"refreshing attempt",s),await ke(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:t},headers:this.headers,xform:zn})),(s,a)=>{const l=200*Math.pow(2,s);return a&&vh(a)&&Date.now()+l-o<Di})}catch(o){if(this._debug(n,"error",o),ve(o))return this._returnResult({data:{session:null,user:null},error:o});throw o}finally{this._debug(n,"end")}}_isValidSession(t){return typeof t=="object"&&t!==null&&"access_token"in t&&"refresh_token"in t&&"expires_at"in t}async _handleProviderSignIn(t,n){const o=await this._getUrlForProvider(`${this.url}/authorize`,t,{redirectTo:n.redirectTo,scopes:n.scopes,queryParams:n.queryParams});return this._debug("#_handleProviderSignIn()","provider",t,"options",n,"url",o),xt()&&!n.skipBrowserRedirect&&window.location.assign(o),{data:{provider:t,url:o},error:null}}async _recoverAndRefresh(){var t,n;const o="#_recoverAndRefresh()";this._debug(o,"begin");try{const s=await Oo(this.storage,this.storageKey);if(s&&this.userStorage){let l=await Oo(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!l&&(l={user:s.user},await ji(this.userStorage,this.storageKey+"-user",l)),s.user=(t=l?.user)!==null&&t!==void 0?t:wh()}else if(s&&!s.user&&!s.user){const l=await Oo(this.storage,this.storageKey+"-user");l&&l?.user?(s.user=l.user,await Qr(this.storage,this.storageKey+"-user"),await ji(this.storage,this.storageKey,s)):s.user=wh()}if(this._debug(o,"session from storage",s),!this._isValidSession(s)){this._debug(o,"session is not valid"),s!==null&&await this._removeSession();return}const a=((n=s.expires_at)!==null&&n!==void 0?n:1/0)*1e3-Date.now()<gh;if(this._debug(o,`session has${a?"":" not"} expired with margin of ${gh}s`),a){if(this.autoRefreshToken&&s.refresh_token){const{error:l}=await this._callRefreshToken(s.refresh_token);l&&(console.error(l),vh(l)||(this._debug(o,"refresh failed with a non-retryable error, removing the session",l),await this._removeSession()))}}else if(s.user&&s.user.__isUserNotAvailableProxy===!0)try{const{data:l,error:c}=await this._getUser(s.access_token);!c&&l?.user?(s.user=l.user,await this._saveSession(s),await this._notifyAllSubscribers("SIGNED_IN",s)):this._debug(o,"could not get user data, skipping SIGNED_IN notification")}catch(l){console.error("Error getting user data:",l),this._debug(o,"error getting user data, skipping SIGNED_IN notification",l)}else await this._notifyAllSubscribers("SIGNED_IN",s)}catch(s){this._debug(o,"error",s),console.error(s);return}finally{this._debug(o,"end")}}async _callRefreshToken(t){var n,o;if(!t)throw new Ln;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const s=`#_callRefreshToken(${t.substring(0,5)}...)`;this._debug(s,"begin");try{this.refreshingDeferred=new Ku;const{data:a,error:l}=await this._refreshAccessToken(t);if(l)throw l;if(!a.session)throw new Ln;await this._saveSession(a.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",a.session);const c={data:a.session,error:null};return this.refreshingDeferred.resolve(c),c}catch(a){if(this._debug(s,"error",a),ve(a)){const l={data:null,error:a};return vh(a)||await this._removeSession(),(n=this.refreshingDeferred)===null||n===void 0||n.resolve(l),l}throw(o=this.refreshingDeferred)===null||o===void 0||o.reject(a),a}finally{this.refreshingDeferred=null,this._debug(s,"end")}}async _notifyAllSubscribers(t,n,o=!0){const s=`#_notifyAllSubscribers(${t})`;this._debug(s,"begin",n,`broadcast = ${o}`);try{this.broadcastChannel&&o&&this.broadcastChannel.postMessage({event:t,session:n});const a=[],l=Array.from(this.stateChangeEmitters.values()).map(async c=>{try{await c.callback(t,n)}catch(h){a.push(h)}});if(await Promise.all(l),a.length>0){for(let c=0;c<a.length;c+=1)console.error(a[c]);throw a[0]}}finally{this._debug(s,"end")}}async _saveSession(t){this._debug("#_saveSession()",t),this.suppressGetSessionWarning=!0;const n=Object.assign({},t),o=n.user&&n.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!o&&n.user&&await ji(this.userStorage,this.storageKey+"-user",{user:n.user});const s=Object.assign({},n);delete s.user;const a=vy(s);await ji(this.storage,this.storageKey,a)}else{const s=vy(n);await ji(this.storage,this.storageKey,s)}}async _removeSession(){this._debug("#_removeSession()"),await Qr(this.storage,this.storageKey),await Qr(this.storage,this.storageKey+"-code-verifier"),await Qr(this.storage,this.storageKey+"-user"),this.userStorage&&await Qr(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const t=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{t&&xt()&&window?.removeEventListener&&window.removeEventListener("visibilitychange",t)}
50catch(n){console.error("removing visibilitychange callback failed",n)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const t=setInterval(()=>this._autoRefreshTokenTick(),Di);this.autoRefreshTicker=t,t&&typeof t=="object"&&typeof t.unref=="function"?t.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(t),setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const t=this.autoRefreshTicker;this.autoRefreshTicker=null,t&&clearInterval(t)}async startAutoRefresh(){this._removeVisibilityChangedCallback(),await this._startAutoRefresh()}async stopAutoRefresh(){this._removeVisibilityChangedCallback(),await this._stopAutoRefresh()}async _autoRefreshTokenTick(){this._debug("#_autoRefreshTokenTick()","begin");try{await this._acquireLock(0,async()=>{try{const t=Date.now();try{return await this._useSession(async n=>{const{data:{session:o}}=n;if(!o||!o.refresh_token||!o.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const s=Math.floor((o.expires_at*1e3-t)/Di);this._debug("#_autoRefreshTokenTick()",`access token expires in ${s} ticks, a tick lasts ${Di}ms, refresh threshold is ${rp} ticks`),s<=rp&&await this._callRefreshToken(o.refresh_token)})}catch(n){console.error("Auto refresh tick failed with error. This is likely a transient error.",n)}}finally{this._debug("#_autoRefreshTokenTick()","end")}})}catch(t){if(t.isAcquireTimeout||t instanceof L0)this._debug("auto refresh token tick lock not available");else throw t}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!xt()||!window?.addEventListener)return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>await this._onVisibilityChanged(!1),window?.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(t){console.error("_handleVisibilityChange",t)}}async _onVisibilityChanged(t){const n=`#_onVisibilityChanged(${t})`;this._debug(n,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),t||(await this.initializePromise,await this._acquireLock(-1,async()=>{if(document.visibilityState!=="visible"){this._debug(n,"acquired the lock to recover the session, but the browser visibilityState is no longer visible, aborting");return}await this._recoverAndRefresh()}))):document.visibilityState==="hidden"&&this.autoRefreshToken&&this._stopAutoRefresh()}async _getUrlForProvider(t,n,o){const s=[`provider=${encodeURIComponent(n)}`];if(o?.redirectTo&&s.push(`redirect_to=${encodeURIComponent(o.redirectTo)}`),o?.scopes&&s.push(`scopes=${encodeURIComponent(o.scopes)}`),this.flowType==="pkce"){const[a,l]=await Ti(this.storage,this.storageKey),c=new URLSearchParams({code_challenge:`${encodeURIComponent(a)}`,code_challenge_method:`${encodeURIComponent(l)}`});s.push(c.toString())}if(o?.queryParams){const a=new URLSearchParams(o.queryParams);s.push(a.toString())}return o?.skipBrowserRedirect&&s.push(`skip_http_redirect=${o.skipBrowserRedirect}`),`${t}?${s.join("&")}`}async _unenroll(t){try{return await this._useSession(async n=>{var o;const{data:s,error:a}=n;return a?this._returnResult({data:null,error:a}):await ke(this.fetch,"DELETE",`${this.url}/factors/${t.factorId}`,{headers:this.headers,jwt:(o=s?.session)===null||o===void 0?void 0:o.access_token})})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}}async _enroll(t){try{return await this._useSession(async n=>{var o,s;const{data:a,error:l}=n;if(l)return this._returnResult({data:null,error:l});const c=Object.assign({friendly_name:t.friendlyName,factor_type:t.factorType},t.factorType==="phone"?{phone:t.phone}:t.factorType==="totp"?{issuer:t.issuer}:{}),{data:h,error:p}=await ke(this.fetch,"POST",`${this.url}/factors`,{body:c,headers:this.headers,jwt:(o=a?.session)===null||o===void 0?void 0:o.access_token});return p?this._returnResult({data:null,error:p}):(t.factorType==="totp"&&h.type==="totp"&&(!((s=h?.totp)===null||s===void 0)&&s.qr_code)&&(h.totp.qr_code=`data:image/svg+xml;utf-8,${h.totp.qr_code}`),this._returnResult({data:h,error:null}))})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}}async _verify(t){return this._acquireLock(-1,async()=>{try{return await this._useSession(async n=>{var o;const{data:s,error:a}=n;
50if(a)return this._returnResult({data:null,error:a});const l=Object.assign({challenge_id:t.challengeId},"webauthn"in t?{webauthn:Object.assign(Object.assign({},t.webauthn),{credential_response:t.webauthn.type==="create"?JO(t.webauthn.credential_response):QO(t.webauthn.credential_response)})}:{code:t.code}),{data:c,error:h}=await ke(this.fetch,"POST",`${this.url}/factors/${t.factorId}/verify`,{body:l,headers:this.headers,jwt:(o=s?.session)===null||o===void 0?void 0:o.access_token});return h?this._returnResult({data:null,error:h}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+c.expires_in},c)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",c),this._returnResult({data:c,error:h}))})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}})}async _challenge(t){return this._acquireLock(-1,async()=>{try{return await this._useSession(async n=>{var o;const{data:s,error:a}=n;if(a)return this._returnResult({data:null,error:a});const l=await ke(this.fetch,"POST",`${this.url}/factors/${t.factorId}/challenge`,{body:t,headers:this.headers,jwt:(o=s?.session)===null||o===void 0?void 0:o.access_token});if(l.error)return l;const{data:c}=l;if(c.type!=="webauthn")return{data:c,error:null};switch(c.webauthn.type){case"create":return{data:Object.assign(Object.assign({},c),{webauthn:Object.assign(Object.assign({},c.webauthn),{credential_options:Object.assign(Object.assign({},c.webauthn.credential_options),{publicKey:KO(c.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},c),{webauthn:Object.assign(Object.assign({},c.webauthn),{credential_options:Object.assign(Object.assign({},c.webauthn.credential_options),{publicKey:YO(c.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}})}async _challengeAndVerify(t){const{data:n,error:o}=await this._challenge({factorId:t.factorId});return o?this._returnResult({data:null,error:o}):await this._verify({factorId:t.factorId,challengeId:n.id,code:t.code})}async _listFactors(){var t;const{data:{user:n},error:o}=await this.getUser();if(o)return{data:null,error:o};const s={all:[],phone:[],totp:[],webauthn:[]};for(const a of(t=n?.factors)!==null&&t!==void 0?t:[])s.all.push(a),a.status==="verified"&&s[a.factor_type].push(a);return{data:s,error:null}}async _getAuthenticatorAssuranceLevel(){var t,n;const{data:{session:o},error:s}
50=await this.getSession();if(s)return this._returnResult({data:null,error:s});if(!o)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:a}=yh(o.access_token);let l=null;a.aal&&(l=a.aal);let c=l;((n=(t=o.user.factors)===null||t===void 0?void 0:t.filter(f=>f.status==="verified"))!==null&&n!==void 0?n:[]).length>0&&(c="aal2");const p=a.amr||[];return{data:{currentLevel:l,nextLevel:c,currentAuthenticationMethods:p},error:null}}async _getAuthorizationDetails(t){try{return await this._useSession(async n=>{const{data:{session:o},error:s}=n;return s?this._returnResult({data:null,error:s}):o?await ke(this.fetch,"GET",`${this.url}/oauth/authorizations/${t}`,{headers:this.headers,jwt:o.access_token,xform:a=>({data:a,error:null})}):this._returnResult({data:null,error:new Ln})})}catch(n){if(ve(n))return this._returnResult({data:null,error:n});throw n}}async _approveAuthorization(t,n){try{return await this._useSession(async o=>{const{data:{session:s},error:a}=o;if(a)return this._returnResult({data:null,error:a});if(!s)return this._returnResult({data:null,error:new Ln});const l=await ke(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:s.access_token,body:{action:"approve"},xform:c=>({data:c,error:null})});return l.data&&l.data.redirect_url&&xt()&&!n?.skipBrowserRedirect&&window.location.assign(l.data.redirect_url),l})}catch(o){if(ve(o))return this._returnResult({data:null,error:o});throw o}}async _denyAuthorization(t,n){try{return await this._useSession(async o=>{const{data:{session:s},error:a}=o;if(a)return this._returnResult({data:null,error:a});if(!s)return this._returnResult({data:null,error:new Ln});const l=await ke(this.fetch,"POST",`${this.url}/oauth/authorizations/${t}/consent`,{headers:this.headers,jwt:s.access_token,body:{action:"deny"},xform:c=>({data:c,error:null})});return l.data&&l.data.redirect_url&&xt()&&!n?.skipBrowserRedirect&&window.location.assign(l.data.redirect_url),l})}catch(o){if(ve(o))return this._returnResult({data:null,error:o});throw o}}async fetchJwk(t,n={keys:[]}){let o=n.keys.find(c=>c.kid===t);if(o)return o;const s=Date.now();if(o=this.jwks.keys.find(c=>c.kid===t),o&&this.jwks_cached_at+iO>s)return o;const{data:a,error:l}=await ke(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(l)throw l;return!a.keys||a.keys.length===0||(this.jwks=a,this.jwks_cached_at=s,o=a.keys.find(c=>c.kid===t),!o)?null:o}async getClaims(t,n={}){try{let o=t;if(!o){const{data:v,error:k}
50=await this.getSession();if(k||!v.session)return this._returnResult({data:null,error:k});o=v.session.access_token}const{header:s,payload:a,signature:l,raw:{header:c,payload:h}}=yh(o);n?.allowExpired||TO(a.exp);const p=!s.alg||s.alg.startsWith("HS")||!s.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(s.kid,n?.keys?{keys:n.keys}:n?.jwks);if(!p){const{error:v}=await this.getUser(o);if(v)throw v;return{data:{claims:a,header:s,signature:l},error:null}}const f=PO(s.alg),m=await crypto.subtle.importKey("jwk",p,f,!0,["verify"]);if(!await crypto.subtle.verify(f,m,l,fO(`${c}.${h}`)))throw new sp("Invalid JWT signature");return{data:{claims:a,header:s,signature:l},error:null}}catch(o){if(ve(o))return this._returnResult({data:null,error:o});throw o}}}pa.nextInstanceID={};const sL=pa;class aL extends sL{constructor(t){super(t)}}class lL{constructor(t,n,o){var s,a,l;this.supabaseUrl=t,this.supabaseKey=n;const c=eO(t);if(!n)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",c),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",c),this.storageUrl=new URL("storage/v1",c),this.functionsUrl=new URL("functions/v1",c);const h=`sb-${c.hostname.split(".")[0]}-auth-token`,p={db:GR,realtime:KR,auth:Object.assign(Object.assign({},HR),{storageKey:h}),global:qR},f=ZR(o??{},p);this.storageKey=(s=f.auth.storageKey)!==null&&s!==void 0?s:"",this.headers=(a=f.global.headers)!==null&&a!==void 0?a:{},f.accessToken?(this.accessToken=f.accessToken,this.auth=new Proxy({},{get:(m,y)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(y)} is not possible`)}})):this.auth=this._initSupabaseAuthClient((l=f.auth)!==null&&l!==void 0?l:{},this.headers,f.global.fetch),this.fetch=QR(n,this._getAccessToken.bind(this),f.global.fetch),this.realtime=this._initRealtimeClient(Object.assign({headers:this.headers,accessToken:this._getAccessToken.bind(this)},f.realtime)),this.accessToken&&this.accessToken().then(m=>this.realtime.setAuth(m)).catch(m=>console.warn("Failed to set initial Realtime auth token:",m)),this.rest=new tR(new URL("rest/v1",c).href,{headers:this.headers,schema:f.db.schema,fetch:this.fetch}),this.storage=new UR(this.storageUrl.href,this.headers,this.fetch,o?.storage),f.accessToken||this._listenForAuthEvents()}get functions(){return new QI(this.functionsUrl.href,{headers:this.headers,customFetch:this.fetch})}from(t){return this.rest.from(t)}schema(t){return this.rest.schema(t)}rpc(t,n={},o={head:!1,get:!1,count:void 0}){return this.rest.rpc(t,n,o)}channel(t,n={config:{}}){return this.realtime.channel(t,n)}getChannels(){return this.realtime.getChannels()}removeChannel(t){return this.realtime.removeChannel(t)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var t,n;if(this.accessToken)return await this.accessToken();const{data:o}=await this.auth.getSession();return(n=(t=o.session)===null||t===void 0?void 0:t.access_token)!==null&&n!==void 0?n:this.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:t,persistSession:n,detectSessionInUrl:o,storage:s,userStorage:a,storageKey:l,flowType:c,lock:h,debug:p,throwOnError:f},m,y){const v={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new aL({url:this.authUrl.href,headers:Object.assign(Object.assign({},v),m),storageKey:l,autoRefreshToken:t,persistSession:n,detectSessionInUrl:o,storage:s,userStorage:a,flowType:c,lock:h,debug:p,throwOnError:f,fetch:y,hasCustomAuthorizationHeader:Object.keys(this.headers).some(k=>k.toLowerCase()==="authorization")})}_initRealtimeClient(t){return new yR(this.realtimeUrl.href,Object.assign(Object.assign({},t),{params:Object.assign({apikey:this.supabaseKey},t?.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((n,o)=>{this._handleTokenChanged(n,"CLIENT",o?.access_token)})}_handleTokenChanged(t,n,o){(t==="TOKEN_REFRESHED"||t==="SIGNED_IN")&&this.changedAccessToken!==o?(this.changedAccessToken=o,this.realtime.setAuth(o)):t==="SIGNED_OUT"&&(this.realtime.setAuth(),n=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}}const uL=(e,t,n)=>
50new lL(e,t,n);function cL(){if(typeof window<"u"||typeof process>"u")return!1;const e=process.version;if(e==null)return!1;const t=e.match(/^v(\d+)\./);return t?parseInt(t[1],10)<=18:!1}cL()&&console.warn("â ï¸ Node.js 18 and below are deprecated and will no longer be supported in future versions of @supabase/supabase-js. Please upgrade to Node.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");const dL="https://yjzbhflmtbergnkgzgqk.supabase.co",hL="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InlqemJoZmxtdGJlcmdua2d6Z3FrIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NjI5OTg5NDQsImV4cCI6MjA3ODU3NDk0NH0.ePQuyJw0_Qqlx9w6d0oHcjai2Gt7d3dRYqL700sFPdo",pL=uL(dL,hL,{auth:{storage:typeof window<"u"?window.localStorage:void 0,persistSession:typeof window<"u",autoRefreshToken:typeof window<"u"}}),fL=Vo({type:"function"}).client(async({next:e})=>{const{data:t}=await pL.auth.getSession(),n=t.session?.access_token;return e({headers:n?{Authorization:`Bearer ${n}`}:{}})}),mL=Vo({type:"request"}),xy=WI(()=>({functionMiddleware:[fL],requestMiddleware:[mL]}));var Yu=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(e){return this.listeners.add(e),this.onSubscribe(),()=>{this.listeners.delete(e),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},Ju=typeof window>"u"||"Deno"in globalThis;function Mn(){}function gL(e,t){return typeof e=="function"?e(t):e}function vL(e){return typeof e=="number"&&e>=0&&e!==1/0}function yL(e,t){return Math.max(e+(t||0)-Date.now(),0)}function ap(e,t){return typeof e=="function"?e(t):e}function wL(e,t){return typeof e=="function"?e(t):e}function _y(e,t){const{type:n="all",exact:o,fetchStatus:s,predicate:a,queryKey:l,stale:c}=e;if(l){if(o){if(t.queryHash!==Kp(l,t.options))return!1}else if(!ma(t.queryKey,l))return!1}if(n!=="all"){const h=t.isActive();if(n==="active"&&!h||n==="inactive"&&h)return!1}return!(typeof c=="boolean"&&t.isStale()!==c||s&&s!==t.state.fetchStatus||a&&!a(t))}function Ey(e,t){const{exact:n,status:o,predicate:s,mutationKey:a}=e;if(a){if(!t.options.mutationKey)return!1;if(n){if(fa(t.options.mutationKey)!==fa(a))return!1}else if(!ma(t.options.mutationKey,a))return!1}return!(o&&t.state.status!==o||s&&!s(t))}function Kp(e,t){return(t?.queryKeyHashFn||fa)(e)}function fa(e){return JSON.stringify(e,(t,n)=>lp(n)?Object.keys(n).sort().reduce((o,s)=>(o[s]=n[s],o),{}):n)}function ma(e,t){return e===t?!0:typeof e!=typeof t?!1:e&&t&&typeof e=="object"&&typeof t=="object"?Object.keys(t).every(n=>ma(e[n],t[n])):!1}function M0(e,t){if(e===t)return e;const n=Ty(e)&&Ty(t);if(n||lp(e)&&lp(t)){const o=n?e:Object.keys(e),s=o.length,a=n?t:Object.keys(t),l=a.length,c=n?[]:{},h=new Set(o);let p=0;for(let f=0;f<l;f++){const m=n?f:a[f];(!n&&h.has(m)||n)&&e[m]===void 0&&t[m]===void 0?(c[m]=void 0,p++):(c[m]=M0(e[m],t[m]),c[m]===e[m]&&e[m]!==void 0&&p++)}return s===l&&p===s?e:c}return t}function Ty(e){return Array.isArray(e)&&e.length===Object.keys(e).length}function lp(e){if(!Py(e))return!1;const t=e.constructor;if(t===void 0)return!0;const n=t.prototype;return!(!Py(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(e)!==Object.prototype)}function Py(e){return Object.prototype.toString.call(e)==="[object Object]"}function bL(e){return new Promise(t=>{setTimeout(t,e)})}function SL(e,t,n){return typeof n.structuralSharing=="function"?n.structuralSharing(e,t):n.structuralSharing!==!1?M0(e,t):t}function kL(e,t,n=0){const o=[...e,t];return n&&o.length>n?o.slice(1):o}function AL(e,t,n=0){const o=[t,...e];return n&&o.length>n?o.slice(0,-1):o}var Yp=Symbol();function D0(e,t){return!e.queryFn&&t?.initialPromise?()=>t.initialPromise:!e.queryFn||e.queryFn===Yp?()=>Promise.reject(new Error(`Missing queryFn: '${e.queryHash}'`)):e.queryFn}var xL=class extends Yu{#e;#t;#n;constructor(){super(),this.#n=e=>{if(!Ju&&window.addEventListener){const t=()=>e();return window.addEventListener("visibilitychange",t,!1),()=>{window.removeEventListener("visibilitychange",t)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(t=>{typeof t=="boolean"?this.setFocused(t):this.onFocus()})}setFocused(e){this.#e!==e&&(this.#e=e,this.onFocus())}onFocus(){const e=this.isFocused();
vendor: 1,860 bytes, line 50
50this.listeners.forEach(t=>{t(e)})}isFocused(){return typeof this.#e=="boolean"?this.#e:globalThis.document?.visibilityState!=="hidden"}},j0=new xL,_L=class extends Yu{#e=!0;#t;#n;constructor(){super(),this.#n=e=>{if(!Ju&&window.addEventListener){const t=()=>e(!0),n=()=>e(!1);return window.addEventListener("online",t,!1),window.addEventListener("offline",n,!1),()=>{window.removeEventListener("online",t),window.removeEventListener("offline",n)}}}}onSubscribe(){this.#t||this.setEventListener(this.#n)}onUnsubscribe(){this.hasListeners()||(this.#t?.(),this.#t=void 0)}setEventListener(e){this.#n=e,this.#t?.(),this.#t=e(this.setOnline.bind(this))}setOnline(e){this.#e!==e&&(this.#e=e,this.listeners.forEach(n=>{n(e)}))}isOnline(){return this.#e}},zu=new _L;function EL(){let e,t;const n=new Promise((s,a)=>{e=s,t=a});n.status="pending",n.catch(()=>{});function o(s){Object.assign(n,s),delete n.resolve,delete n.reject}return n.resolve=s=>{o({status:"fulfilled",value:s}),e(s)},n.reject=s=>{o({status:"rejected",reason:s}),t(s)},n}function TL(e){return Math.min(1e3*2**e,3e4)}function F0(e){return(e??"online")==="online"?zu.isOnline():!0}var $0=class extends Error{constructor(e){super("CancelledError"),this.revert=e?.revert,this.silent=e?.silent}};function Sh(e){return e instanceof $0}function V0(e){let t=!1,n=0,o=!1,s;const a=EL(),l=S=>{o||(y(new $0(S)),e.abort?.())},c=()=>{t=!0},h=()=>{t=!1},p=()=>j0.isFocused()&&(e.networkMode==="always"||zu.isOnline())&&e.canRun(),f=()=>F0(e.networkMode)&&e.canRun(),m=S=>{o||(o=!0,e.onSuccess?.(S),s?.(),a.resolve(S))},y=S=>{o||(o=!0,e.onError?.(S),s?.(),a.reject(S))},v=()=>new Promise(S=>{s=b=>{(o||p())&&S(b)},e.onPause?.()}).then(()=>{s=void 0,o||e.onContinue?.()}),k=()=>{if(o)return;let S;const b=n===0?e.initialPromise:void 0;try{S=b??e.fn()}catch(x){S=Promise.reject(x)}Promise.resolve(S).then(m).catch(x=>
50{if(o)return;const E=e.retry??(Ju?0:3),P=e.retryDelay??TL,I=typeof P=="function"?P(n,x):P,O=E===!0||typeof E=="number"&&n<E||typeof E=="function"&&E(n,x);if(t||!O){y(x);return}n++,e.onFail?.(n,x),bL(I).then(()=>p()?void 0:v()).then(()=>{t?y(x):k()})})};return{promise:a,cancel:l,continue:()=>(s?.(),a),cancelRetry:c,continueRetry:h,canStart:f,start:()=>(f()?k():v().then(k),a)}}var PL=e=>setTimeout(e,0);function CL(){let e=[],t=0,n=c=>{c()},o=c=>{c()},s=PL;const a=c=>{t?e.push(c):s(()=>{n(c)})},l=()=>{const c=e;e=[],c.length&&s(()=>{o(()=>{c.forEach(h=>{n(h)})})})};return{batch:c=>{let h;t++;try{h=c()}finally{t--,t||l()}return h},batchCalls:c=>(...h)=>{a(()=>{c(...h)})},schedule:a,setNotifyFunction:c=>{n=c},setBatchNotifyFunction:c=>{o=c},setScheduler:c=>{s=c}}}var $t=CL(),U0=class{#e;destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),vL(this.gcTime)&&(this.#e=setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(e){this.gcTime=Math.max(this.gcTime||0,e??(Ju?1/0:300*1e3))}clearGcTimeout(){this.#e&&(clearTimeout(this.#e),this.#e=void 0)}},IL=class extends U0{#e;#t;#n;#o;#r;#s;#a;constructor(e){super(),this.#a=!1,this.#s=e.defaultOptions,this.setOptions(e.options),this.observers=[],this.#o=e.client,this.#n=this.#o.getQueryCache(),this.queryKey=e.queryKey,this.queryHash=e.queryHash,this.#e=OL(this.options),this.state=e.state??this.#e,this.scheduleGc()}get meta(){return this.options.meta}get promise(){return this.#r?.promise}setOptions(e){this.options={...this.#s,...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&this.#n.remove(this)}setData(e,t){const n=SL(this.state.data,e,this.options);return this.#i({data:n,type:"success",dataUpdatedAt:t?.updatedAt,manual:t?.manual}),n}setState(e,t){this.#i({type:"setState",state:e,setStateOptions:t})}cancel(e){const t=this.#r?.promise;return this.#r?.cancel(e),t?t.then(Mn).catch(Mn):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(this.#e)}isActive(){return this.observers.some(e=>wL(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Yp||this.state.dataUpdateCount+this.state.errorUpdateCount===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>ap(e.options.staleTime,this)==="static"):!1}isStale(){return this.getObserversCount()>0?this.observers.some(e=>e.getCurrentResult().isStale):this.state.data===void 0||this.state.isInvalidated}isStaleByTime(e=0){return this.state.data===void 0?!0:e==="static"?!1:this.state.isInvalidated?!0:!yL(this.state.dataUpdatedAt,e)}onFocus(){this.observers.find(t=>t.shouldFetchOnWindowFocus())?.refetch({cancelRefetch:!1}),this.#r?.continue()}onOnline(){this.observers.find(t=>t.shouldFetchOnReconnect())?.refetch({cancelRefetch:!1}),this.#r?.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),this.#n.notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(t=>t!==e),this.observers.length||(this.#r&&(this.#a?this.#r.cancel({revert:!0}):this.#r.cancelRetry()),this.scheduleGc()),this.#n.notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||this.#i({type:"invalidate"})}fetch(e,t){if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&t?.cancelRefetch)this.cancel({silent:!0});else if(this.#r)return this.#r.continueRetry(),this.#r.promise}if(e&&this.setOptions(e),!this.options.queryFn){const h=this.observers.find(p=>p.options.queryFn);h&&this.setOptions(h.options)}const n=new AbortController,o=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(this.#a=!0,n.signal)})},s=()=>{const h=D0(this.options,t),f=(()=>{const m={client:this.#o,queryKey:this.queryKey,meta:this.meta};return o(m),m})();return this.#a=!1,this.options.persister?this.options.persister(h,f,this):h(f)},l=(()=>{const h={fetchOptions:t,options:this.options,queryKey:this.queryKey,client:this.#o,state:this.state,fetchFn:s};return o(h),h})();this.options.behavior?.onFetch(l,this),this.#t=this.state,(this.state.fetchStatus==="idle"||this.state.fetchMeta!==l.fetchOptions?.meta)&&this.#i({type:"fetch",meta:l.fetchOptions?.meta});const c=h=>{Sh(h)&&h.silent||this.#i({type:"error",error:h}),Sh(h)||(this.#n.config.onError?.(h,this),this.#n.config.onSettled?.(this.state.data,h,this)),this.scheduleGc()};return this.#r=V0({initialPromise:t?.initialPromise,fn:l.fetchFn,abort:n.abort.bind(n),onSuccess:h=>{if(h===void 0){c(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(h)}catch(p){c(p);return}this.#n.config.onSuccess?.(h,this),this.#n.config.onSettled?.(h,this.state.error,this),this.scheduleGc()},onError:c,onFail:(h,p)=>{this.#i({type:"failed",failureCount:h,error:p})},onPause:()=>{this.#i({type:"pause"})},onContinue:()=>{this.#i({type:"continue"})},retry:l.options.retry,retryDelay:l.options.retryDelay,networkMode:l.options.networkMode,canRun:()=>!0}),this.#r.start()}#i(e){const t=n=>{switch(e.type){case"failed":return{...n,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...n,fetchStatus:"paused"};case"continue":return{...n,fetchStatus:"fetching"};case"fetch":return{...n,...RL(n.data,this.options),fetchMeta:e.meta??null};case"success":return this.#t=void 0,{...n,data:e.data,dataUpdateCount:n.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const o=e.error;return Sh(o)&&o.revert&&this.#t?{...this.#t,fetchStatus:"idle"}
vendor: 4,362 bytes, line 50
50:{...n,error:o,errorUpdateCount:n.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:n.fetchFailureCount+1,fetchFailureReason:o,fetchStatus:"idle",status:"error"};case"invalidate":return{...n,isInvalidated:!0};case"setState":return{...n,...e.state}}};this.state=t(this.state),$t.batch(()=>{this.observers.forEach(n=>{n.onQueryUpdate()}),this.#n.notify({query:this,type:"updated",action:e})})}};function RL(e,t){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:F0(t.networkMode)?"fetching":"paused",...e===void 0&&{error:null,status:"pending"}}}function OL(e){const t=typeof e.initialData=="function"?e.initialData():e.initialData,n=t!==void 0,o=n?typeof e.initialDataUpdatedAt=="function"?e.initialDataUpdatedAt():e.initialDataUpdatedAt:0;return{data:t,dataUpdateCount:0,dataUpdatedAt:n?o??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var LL=class extends Yu{constructor(e={}){super(),this.config=e,this.#e=new Map}#e;build(e,t,n){const o=t.queryKey,s=t.queryHash??Kp(o,t);let a=this.get(s);return a||(a=new IL({client:e,queryKey:o,queryHash:s,options:e.defaultQueryOptions(t),state:n,defaultOptions:e.getQueryDefaults(o)}),this.add(a)),a}add(e){this.#e.has(e.queryHash)||(this.#e.set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const t=this.#e.get(e.queryHash);t&&(e.destroy(),t===e&&this.#e.delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){$t.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return this.#e.get(e)}getAll(){return[...this.#e.values()]}find(e){const t={exact:!0,...e};return this.getAll().find(n=>_y(t,n))}findAll(e={}){const t=this.getAll();return Object.keys(e).length>0?t.filter(n=>_y(e,n)):t}notify(e){$t.batch(()=>{this.listeners.forEach(t=>{t(e)})})}onFocus(){$t.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){$t.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},zL=class extends U0{#e;#t;#n;constructor(e){super(),this.mutationId=e.mutationId,this.#t=e.mutationCache,this.#e=[],this.state=e.state||NL(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#e.includes(e)||(this.#e.push(e),this.clearGcTimeout(),this.#t.notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){this.#e=this.#e.filter(t=>t!==e),this.scheduleGc(),this.#t.notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){this.#e.length||(this.state.status==="pending"?this.scheduleGc():this.#t.remove(this))}continue(){return this.#n?.continue()??this.execute(this.state.variables)}async execute(e){const t=()=>{this.#o({type:"continue"})};this.#n=V0({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(s,a)=>{this.#o({type:"failed",failureCount:s,error:a})},onPause:()=>{this.#o({type:"pause"})},onContinue:t,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#t.canRun(this)});const n=this.state.status==="pending",o=!this.#n.canStart();try{if(n)t();else{this.#o({type:"pending",variables:e,isPaused:o}),await this.#t.config.onMutate?.(e,this);const a=await this.options.onMutate?.(e);a!==this.state.context&&this.#o({type:"pending",context:a,variables:e,isPaused:o})}const s=await this.#n.start();return await this.#t.config.onSuccess?.(s,e,this.state.context,this),await this.options.onSuccess?.(s,e,this.state.context),await this.#t.config.onSettled?.(s,null,this.state.variables,this.state.context,this),await this.options.onSettled?.(s,null,e,this.state.context),this.#o({type:"success",data:s}),s}catch(s){try{throw await this.#t.config.onError?.(s,e,this.state.context,this),await this.options.onError?.(s,e,this.state.context),await this.#t.config.onSettled?.(void 0,s,this.state.variables,this.state.context,this),await this.options.onSettled?.(void 0,s,e,this.state.context),s}finally{this.#o({type:"error",error:s})}}finally{this.#t.runNext(this)}}#o(e){const t=n=>{switch(e.type){case"failed":return{...n,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...n,isPaused:!0};case"continue":return{...n,isPaused:!1};
vendor: 11,418 bytes, line 50
50case"pending":return{...n,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:"pending",variables:e.variables,submittedAt:Date.now()};case"success":return{...n,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...n,data:void 0,error:e.error,failureCount:n.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=t(this.state),$t.batch(()=>{this.#e.forEach(n=>{n.onMutationUpdate(e)}),this.#t.notify({mutation:this,type:"updated",action:e})})}};function NL(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var ML=class extends Yu{constructor(e={}){super(),this.config=e,this.#e=new Set,this.#t=new Map,this.#n=0}#e;#t;#n;build(e,t,n){const o=new zL({mutationCache:this,mutationId:++this.#n,options:e.defaultMutationOptions(t),state:n});return this.add(o),o}add(e){this.#e.add(e);const t=tu(e);if(typeof t=="string"){const n=this.#t.get(t);n?n.push(e):this.#t.set(t,[e])}this.notify({type:"added",mutation:e})}remove(e){if(this.#e.delete(e)){const t=tu(e);if(typeof t=="string"){const n=this.#t.get(t);if(n)if(n.length>1){const o=n.indexOf(e);o!==-1&&n.splice(o,1)}else n[0]===e&&this.#t.delete(t)}}this.notify({type:"removed",mutation:e})}canRun(e){const t=tu(e);if(typeof t=="string"){const o=this.#t.get(t)?.find(s=>s.state.status==="pending");return!o||o===e}else return!0}runNext(e){const t=tu(e);return typeof t=="string"?this.#t.get(t)?.find(o=>o!==e&&o.state.isPaused)?.continue()??Promise.resolve():Promise.resolve()}clear(){$t.batch(()=>{this.#e.forEach(e=>{this.notify({type:"removed",mutation:e})}),this.#e.clear(),this.#t.clear()})}getAll(){return Array.from(this.#e)}find(e){const t={exact:!0,...e};return this.getAll().find(n=>Ey(t,n))}findAll(e={}){return this.getAll().filter(t=>Ey(e,t))}notify(e){$t.batch(()=>{this.listeners.forEach(t=>{t(e)})})}resumePausedMutations(){const e=this.getAll().filter(t=>t.state.isPaused);return $t.batch(()=>Promise.all(e.map(t=>t.continue().catch(Mn))))}};function tu(e){return e.options.scope?.id}function Cy(e){return{onFetch:(t,n)=>{const o=t.options,s=t.fetchOptions?.meta?.fetchMore?.direction,a=t.state.data?.pages||[],l=t.state.data?.pageParams||[];let c={pages:[],pageParams:[]},h=0;const p=async()=>{let f=!1;const m=k=>{Object.defineProperty(k,"signal",{enumerable:!0,get:()=>(t.signal.aborted?f=!0:t.signal.addEventListener("abort",()=>{f=!0}),t.signal)})},y=D0(t.options,t.fetchOptions),v=async(k,S,b)=>{if(f)return Promise.reject();if(S==null&&k.pages.length)return Promise.resolve(k);const E=(()=>{const D={client:t.client,queryKey:t.queryKey,pageParam:S,direction:b?"backward":"forward",meta:t.options.meta};return m(D),D})(),P=await y(E),{maxPages:I}=t.options,O=b?AL:kL;return{pages:O(k.pages,P,I),pageParams:O(k.pageParams,S,I)}};if(s&&a.length){const k=s==="backward",S=k?DL:Iy,b={pages:a,pageParams:l},x=S(o,b);c=await v(b,x,k)}else{const k=e??a.length;do{const S=h===0?l[0]??o.initialPageParam:Iy(o,c);if(h>0&&S==null)break;c=await v(c,S),h++}while(h<k)}return c};t.options.persister?t.fetchFn=()=>t.options.persister?.(p,{client:t.client,queryKey:t.queryKey,meta:t.options.meta,signal:t.signal},n):t.fetchFn=p}}}function Iy(e,{pages:t,pageParams:n}){const o=t.length-1;return t.length>0?e.getNextPageParam(t[o],t,n[o],n):void 0}function DL(e,{pages:t,pageParams:n}){return t.length>0?e.getPreviousPageParam?.(t[0],t,n[0],n):void 0}var jL=class{#e;#t;#n;#o;#r;#s;#a;#i;constructor(e={}){this.#e=e.queryCache||new LL,this.#t=e.mutationCache||new ML,this.#n=e.defaultOptions||{},this.#o=new Map,this.#r=new Map,this.#s=0}mount(){this.#s++,this.#s===1&&(this.#a=j0.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onFocus())}),this.#i=zu.subscribe(async e=>{e&&(await this.resumePausedMutations(),this.#e.onOnline())}))}unmount(){this.#s--,this.#s===0&&(this.#a?.(),this.#a=void 0,this.#i?.(),this.#i=void 0)}isFetching(e){return this.#e.findAll({...e,fetchStatus:"fetching"}).length}isMutating(e){return this.#t.findAll({...e,status:"pending"}).length}getQueryData(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state.data}ensureQueryData(e){const t=this.defaultQueryOptions(e),n=this.#e.build(this,t),o=n.state.data;return o===void 0?this.fetchQuery(e):(e.revalidateIfStale&&n.isStaleByTime(ap(t.staleTime,n))&&this.prefetchQuery(t),Promise.resolve(o))}getQueriesData(e){return this.#e.findAll(e).map(({queryKey:t,state:n})=>{const o=n.data;return[t,o]})}setQueryData(e,t,n){const o=this.defaultQueryOptions({queryKey:e}),a=this.#e.get(o.queryHash)?.state.data,l=gL(t,a);if(l!==void 0)return this.#e.build(this,o).setData(l,{...n,manual:!0})}setQueriesData(e,t,n){return $t.batch(()=>this.#e.findAll(e).map(({queryKey:o})=>[o,this.setQueryData(o,t,n)]))}getQueryState(e){const t=this.defaultQueryOptions({queryKey:e});return this.#e.get(t.queryHash)?.state}removeQueries(e){const t=this.#e;$t.batch(()=>{t.findAll(e).forEach(n=>{t.remove(n)})})}resetQueries(e,t){const n=this.#e;return $t.batch(()=>(n.findAll(e).forEach(o=>{o.reset()}),this.refetchQueries({type:"active",...e},t)))}cancelQueries(e,t={}){const n={revert:!0,...t},o=$t.batch(()=>this.#e.findAll(e).map(s=>s.cancel(n)));return Promise.all(o).then(Mn).catch(Mn)}invalidateQueries(e,t={}){return $t.batch(()=>(this.#e.findAll(e).forEach(n=>{n.invalidate()}),e?.refetchType==="none"?Promise.resolve():this.refetchQueries({...e,type:e?.refetchType??e?.type??"active"},t)))}refetchQueries(e,t={}){const n={...t,cancelRefetch:t.cancelRefetch??!0},o=$t.batch(()=>this.#e.findAll(e).filter(s=>!s.isDisabled()&&!s.isStatic()).map(s=>{let a=s.fetch(void 0,n);return n.throwOnError||(a=a.catch(Mn)),s.state.fetchStatus==="paused"?Promise.resolve():a}));return Promise.all(o).then(Mn)}fetchQuery(e){const t=this.defaultQueryOptions(e);t.retry===void 0&&(t.retry=!1);const n=this.#e.build(this,t);return n.isStaleByTime(ap(t.staleTime,n))?n.fetch(t):Promise.resolve(n.state.data)}prefetchQuery(e){return this.fetchQuery(e).then(Mn).catch(Mn)}fetchInfiniteQuery(e){return e.behavior=Cy(e.pages),this.fetchQuery(e)}prefetchInfiniteQuery(e){return this.fetchInfiniteQuery(e).then(Mn).catch(Mn)}ensureInfiniteQueryData(e){return e.behavior=Cy(e.pages),this.ensureQueryData(e)}resumePausedMutations(){return zu.isOnline()?this.#t.resumePausedMutations():Promise.resolve()}getQueryCache(){return this.#e}getMutationCache(){return this.#t}getDefaultOptions(){return this.#n}setDefaultOptions(e){this.#n=e}setQueryDefaults(e,t){this.#o.set(fa(e),{queryKey:e,defaultOptions:t})}getQueryDefaults(e){const t=[...this.#o.values()],n={};return t.forEach(o=>{ma(e,o.queryKey)&&Object.assign(n,o.defaultOptions)}),n}setMutationDefaults(e,t){this.#r.set(fa(e),{mutationKey:e,defaultOptions:t})}getMutationDefaults(e){const t=[...this.#r.values()],n={};return t.forEach(o=>{ma(e,o.mutationKey)&&Object.assign(n,o.defaultOptions)}),n}defaultQueryOptions(e){if(e._defaulted)return e;const t={...this.#n.queries,...this.getQueryDefaults(e.queryKey),...e,_defaulted:!0};return t.queryHash||(t.queryHash=Kp(t.queryKey,t)),t.refetchOnReconnect===void 0&&(t.refetchOnReconnect=t.networkMode!=="always"),t.throwOnError===void 0&&(t.throwOnError=!!t.suspense),!t.networkMode&&t.persister&&(t.networkMode="offlineFirst"),t.queryFn===Yp&&(t.enabled=!1),t}defaultMutationOptions(e){return e?._defaulted?e:{...this.#n.mutations,...e?.mutationKey&&this.getMutationDefaults(e.mutationKey),...e,_defaulted:!0}}clear(){this.#e.clear(),this.#t.clear()}},FL=_.createContext(void 0),$L=({client:e,children:t})=>(_.useEffect(()=>(e.mount(),()=>{e.unmount()}),[e]),C.jsx(FL.Provider,{value:e,children:t}));function Ge(e,t,{checkForDefaultPrevented:n=!0}={}){return function(s){if(e?.(s),n===!1||!s.defaultPrevented)return t?.(s)}}function Ry(e,t){if(typeof e=="function")return e(t);e!=null&&(e.current=t)}function B0(...e){return t=>{let n=!1;const o=e.map(s=>{const a=Ry(s,t);return!n&&typeof a=="function"&&(n=!0),a});if(n)return()=>{for(let s=0;s<o.length;s++){const a=o[s];typeof a=="function"?a():Ry(e[s],null)}}}}function _t(...e){return _.useCallback(B0(...e),e)}function VL(e,t){const n=_.createContext(t),o=a=>{const{children:l,...c}=a,h=_.useMemo(()=>c,Object.values(c));return C.jsx(n.Provider,{value:h,children:l})};o.displayName=e+"Provider";function s(a){const l=_.useContext(n);if(l)return l;if(t!==void 0)return t;throw new Error(`\`${a}\` must be used within \`${e}\``)}return[o,s]}function es(e,t=[]){let n=[];function o(a,l){const c=_.createContext(l),h=n.length;n=[...n,l];const p=m=>{const{scope:y,children:v,...k}=m,S=y?.[e]?.[h]||c,b=_.useMemo(()=>k,Object.values(k));return C.jsx(S.Provider,{value:b,children:v})};p.displayName=a+"Provider";function f(m,y){const v=y?.[e]?.[h]||c,k=_.useContext(v);if(k)return k;if(l!==void 0)return l;throw new Error(`\`${m}\` must be used within \`${a}\``)}return[p,f]}const s=()=>{const a=n.map(l=>_.createContext(l));return function(c){const h=c?.[e]||a;return _.useMemo(()=>({[`__scope${e}`]:{...c,[e]:h}}),[c,h])}};return s.scopeName=e,[o,UL(s,...t)]}function UL(...e){const t=e[0];if(e.length===1)return t;const n=()=>{const o=e.map(s=>({useScope:s(),scopeName:s.scopeName}));return function(a){const l=o.reduce((c,{useScope:h,scopeName:p})=>{const m=h(a)[`__scope${p}`];return{...c,...m}},{});return _.useMemo(()=>({[`__scope${t.scopeName}`]:l}),[l])}};return n.scopeName=t.scopeName,n}function ga(e){const t=WL(e),n=_.forwardRef((o,s)=>{const{children:a,...l}=o,c=_.Children.toArray(a),h=c.find(GL);if(h){const p=h.props.children,f=c.map(m=>m===h?_.Children.count(p)>1?_.Children.only(null):_.isValidElement(p)?p.props.children:null:m);return C.jsx(t,{...l,ref:s,children:_.isValidElement(p)?_.cloneElement(p,void 0,f):null})}return C.jsx(t,{...l,ref:s,children:a})});return n.displayName=`${e}.Slot`,n}var BL=ga("Slot");function WL(e){const t=_.forwardRef((n,o)=>{const{children:s,...a}=n;if(_.isValidElement(s)){const l=KL(s),c=HL(a,s.props);return s.type!==_.Fragment&&(c.ref=o?B0(o,l):l),_.cloneElement(s,c)}return _.Children.count(s)>1?_.Children.only(null):null});return t.displayName=`${e}.SlotClone`,t}var W0=Symbol("radix.slottable");function qL(e){const t=({children:n})=>C.jsx(C.Fragment,{children:n});return t.displayName=`${e}.Slottable`,t.__radixId=W0,t}function GL(e){return _.isValidElement(e)&&typeof e.type=="function"&&"__radixId"in e.type&&e.type.__radixId===W0}function HL(e,t){const n={...t};for(const o in t){const s=e[o],a=t[o];/^on[A-Z]/.test(o)?s&&a?n[o]=(...c)=>{const h=a(...c);return s(...c),h}:s&&(n[o]=s):o==="style"?n[o]={...s,...a}:o==="className"&&(n[o]=[s,a].filter(Boolean).join(" "))}return{...e,...n}}function KL(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}var YL=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],Qe=YL.reduce((e,t)=>{const n=ga(`Primitive.${t}`),o=_.forwardRef((s,a)=>{const{asChild:l,...c}=s,h=l?n:t;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),C.jsx(h,{...c,ref:a})});return o.displayName=`Primitive.${t}`,{...e,[t]:o}},{});function q0(e,t){e&&ka.flushSync(()=>
vendor: 6,006 bytes, line 50
50e.dispatchEvent(t))}function er(e){const t=_.useRef(e);return _.useEffect(()=>{t.current=e}),_.useMemo(()=>(...n)=>t.current?.(...n),[])}function JL(e,t=globalThis?.document){const n=er(e);_.useEffect(()=>{const o=s=>{s.key==="Escape"&&n(s)};return t.addEventListener("keydown",o,{capture:!0}),()=>t.removeEventListener("keydown",o,{capture:!0})},[n,t])}var QL="DismissableLayer",up="dismissableLayer.update",XL="dismissableLayer.pointerDownOutside",ZL="dismissableLayer.focusOutside",Oy,G0=_.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),Qu=_.forwardRef((e,t)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:o,onPointerDownOutside:s,onFocusOutside:a,onInteractOutside:l,onDismiss:c,...h}=e,p=_.useContext(G0),[f,m]=_.useState(null),y=f?.ownerDocument??globalThis?.document,[,v]=_.useState({}),k=_t(t,M=>m(M)),S=Array.from(p.layers),[b]=[...p.layersWithOutsidePointerEventsDisabled].slice(-1),x=S.indexOf(b),E=f?S.indexOf(f):-1,P=p.layersWithOutsidePointerEventsDisabled.size>0,I=E>=x,O=t1(M=>{const $=M.target,W=[...p.branches].some(ee=>ee.contains($));!I||W||(s?.(M),l?.(M),M.defaultPrevented||c?.())},y),D=n1(M=>{const $=M.target;[...p.branches].some(ee=>ee.contains($))||(a?.(M),l?.(M),M.defaultPrevented||c?.())},y);return JL(M=>{E===p.layers.size-1&&(o?.(M),!M.defaultPrevented&&c&&(M.preventDefault(),c()))},y),_.useEffect(()=>{if(f)return n&&(p.layersWithOutsidePointerEventsDisabled.size===0&&(Oy=y.body.style.pointerEvents,y.body.style.pointerEvents="none"),p.layersWithOutsidePointerEventsDisabled.add(f)),p.layers.add(f),Ly(),()=>{n&&p.layersWithOutsidePointerEventsDisabled.size===1&&(y.body.style.pointerEvents=Oy)}},[f,y,n,p]),_.useEffect(()=>()=>{f&&(p.layers.delete(f),p.layersWithOutsidePointerEventsDisabled.delete(f),Ly())},[f,p]),_.useEffect(()=>{const M=()=>v({});return document.addEventListener(up,M),()=>document.removeEventListener(up,M)},[]),C.jsx(Qe.div,{...h,ref:k,style:{pointerEvents:P?I?"auto":"none":void 0,...e.style},onFocusCapture:Ge(e.onFocusCapture,D.onFocusCapture),onBlurCapture:Ge(e.onBlurCapture,D.onBlurCapture),onPointerDownCapture:Ge(e.onPointerDownCapture,O.onPointerDownCapture)})});Qu.displayName=QL;var e1="DismissableLayerBranch",H0=_.forwardRef((e,t)=>{const n=_.useContext(G0),o=_.useRef(null),s=_t(t,o);return _.useEffect(()=>{const a=o.current;if(a)return n.branches.add(a),()=>{n.branches.delete(a)}},[n.branches]),C.jsx(Qe.div,{...e,ref:s})});H0.displayName=e1;function t1(e,t=globalThis?.document){const n=er(e),o=_.useRef(!1),s=_.useRef(()=>{});return _.useEffect(()=>{const a=c=>{if(c.target&&!o.current){let h=function(){K0(XL,n,p,{discrete:!0})};const p={originalEvent:c};c.pointerType==="touch"?(t.removeEventListener("click",s.current),s.current=h,t.addEventListener("click",s.current,{once:!0})):h()}else t.removeEventListener("click",s.current);o.current=!1},l=window.setTimeout(()=>{t.addEventListener("pointerdown",a)},0);return()=>{window.clearTimeout(l),t.removeEventListener("pointerdown",a),t.removeEventListener("click",s.current)}},[t,n]),{onPointerDownCapture:()=>o.current=!0}}function n1(e,t=globalThis?.document){const n=er(e),o=_.useRef(!1);return _.useEffect(()=>{const s=a=>{a.target&&!o.current&&K0(ZL,n,{originalEvent:a},{discrete:!1})};return t.addEventListener("focusin",s),()=>t.removeEventListener("focusin",s)},[t,n]),{onFocusCapture:()=>o.current=!0,onBlurCapture:()=>o.current=!1}}function Ly(){const e=new CustomEvent(up);document.dispatchEvent(e)}function K0(e,t,n,{discrete:o}){const s=n.originalEvent.target,a=new CustomEvent(e,{bubbles:!1,cancelable:!0,detail:n});t&&s.addEventListener(e,t,{once:!0}),o?q0(s,a):s.dispatchEvent(a)}var r1=Qu,o1=H0,kr=globalThis?.document?_.useLayoutEffect:()=>{},i1=pw[" useId ".trim().toString()]||(()=>{}),s1=0;function kh(e){const[t,n]=_.useState(i1());return kr(()=>{n(o=>o??String(s1++))},[e]),e||(t?`radix-${t}`:"")}const a1=["top","right","bottom","left"],lo=Math.min,ln=Math.max,Nu=Math.round,nu=Math.floor,Zn=e=>({x:e,y:e}),l1={left:"right",right:"left",bottom:"top",top:"bottom"},u1={start:"end",end:"start"};function cp(e,t,n){return ln(e,lo(t,n))}function Ar(e,t){return typeof e=="function"?e(t):e}function xr(e){return e.split("-")[0]}function ts(e){return e.split("-")[1]}function Jp(e){return e==="x"?"y":"x"}function Qp(e){return e==="y"?"height":"width"}const c1=new Set(["top","bottom"]);function Xn(e){return c1.has(xr(e))?"y":"x"}function Xp(e){return Jp(Xn(e))}function d1(e,t,n){n===void 0&&(n=!1);const o=ts(e),s=Xp(e),a=Qp(s);let l=s==="x"?o===(n?"end":"start")?"right":"left":o==="start"?"bottom":"top";return t.reference[a]>t.floating[a]&&(l=Mu(l)),[l,Mu(l)]}function h1(e){const t=Mu(e);return[dp(e),t,dp(t)]}function dp(e){return e.replace(/start|end/g,t=>u1[t])}const zy=["left","right"],Ny=["right","left"],p1=["top","bottom"],f1=["bottom","top"];function m1(e,t,n){switch(e){case"top":case"bottom":return n?t?Ny:zy:t?zy:Ny;case"left":case"right":return t?p1:f1;default:return[]}}function g1(e,t,n,o){const s=ts(e);let a=m1(xr(e),n==="start",o);return s&&(a=a.map(l=>l+"-"+s),t&&(a=a.concat(a.map(dp)))),a}function Mu(e){return e.replace(/left|right|bottom|top/g,t=>l1[t])}function v1(e){return{top:0,right:0,bottom:0,left:0,...e}}function Y0(e){return typeof e!="number"?v1(e):{top:e,right:e,bottom:e,left:e}}function Du(e){const{x:t,y:n,width:o,height:s}=e;return{width:o,height:s,top:n,left:t,right:t+o,bottom:n+s,x:t,y:n}}function My(e,t,n){let{reference:o,floating:s}=e;const a=Xn(t),l=Xp(t),c=Qp(l),h=xr(t),p=a==="y",f=o.x+o.width/2-s.width/2,m=o.y+o.height/2-s.height/2,y=o[c]/2-s[c]/2;let v;switch(h){case"top":v={x:f,y:o.y-s.height};break;case"bottom":v={x:f,y:o.y+o.height};break;case"right":v={x:o.x+o.width,y:m};break;case"left":v={x:o.x-s.width,y:m};break;default:v={x:o.x,y:o.y}}switch(ts(t)){case"start":v[l]-=y*(n&&p?-1:1);break;case"end":v[l]+=y*(n&&p?-1:1);break}return v}const y1=async(e,t,n)=>{const{placement:o="bottom",strategy:s="absolute",middleware:a=[],platform:l}
vendor: 9,987 bytes, line 50
50=n,c=a.filter(Boolean),h=await(l.isRTL==null?void 0:l.isRTL(t));let p=await l.getElementRects({reference:e,floating:t,strategy:s}),{x:f,y:m}=My(p,o,h),y=o,v={},k=0;for(let S=0;S<c.length;S++){const{name:b,fn:x}=c[S],{x:E,y:P,data:I,reset:O}=await x({x:f,y:m,initialPlacement:o,placement:y,strategy:s,middlewareData:v,rects:p,platform:l,elements:{reference:e,floating:t}});f=E??f,m=P??m,v={...v,[b]:{...v[b],...I}},O&&k<=50&&(k++,typeof O=="object"&&(O.placement&&(y=O.placement),O.rects&&(p=O.rects===!0?await l.getElementRects({reference:e,floating:t,strategy:s}):O.rects),{x:f,y:m}=My(p,y,h)),S=-1)}return{x:f,y:m,placement:y,strategy:s,middlewareData:v}};async function va(e,t){var n;t===void 0&&(t={});const{x:o,y:s,platform:a,rects:l,elements:c,strategy:h}=e,{boundary:p="clippingAncestors",rootBoundary:f="viewport",elementContext:m="floating",altBoundary:y=!1,padding:v=0}=Ar(t,e),k=Y0(v),b=c[y?m==="floating"?"reference":"floating":m],x=Du(await a.getClippingRect({element:(n=await(a.isElement==null?void 0:a.isElement(b)))==null||n?b:b.contextElement||await(a.getDocumentElement==null?void 0:a.getDocumentElement(c.floating)),boundary:p,rootBoundary:f,strategy:h})),E=m==="floating"?{x:o,y:s,width:l.floating.width,height:l.floating.height}:l.reference,P=await(a.getOffsetParent==null?void 0:a.getOffsetParent(c.floating)),I=await(a.isElement==null?void 0:a.isElement(P))?await(a.getScale==null?void 0:a.getScale(P))||{x:1,y:1}:{x:1,y:1},O=Du(a.convertOffsetParentRelativeRectToViewportRelativeRect?await a.convertOffsetParentRelativeRectToViewportRelativeRect({elements:c,rect:E,offsetParent:P,strategy:h}):E);return{top:(x.top-O.top+k.top)/I.y,bottom:(O.bottom-x.bottom+k.bottom)/I.y,left:(x.left-O.left+k.left)/I.x,right:(O.right-x.right+k.right)/I.x}}const w1=e=>({name:"arrow",options:e,async fn(t){const{x:n,y:o,placement:s,rects:a,platform:l,elements:c,middlewareData:h}=t,{element:p,padding:f=0}=Ar(e,t)||{};if(p==null)return{};const m=Y0(f),y={x:n,y:o},v=Xp(s),k=Qp(v),S=await l.getDimensions(p),b=v==="y",x=b?"top":"left",E=b?"bottom":"right",P=b?"clientHeight":"clientWidth",I=a.reference[k]+a.reference[v]-y[v]-a.floating[k],O=y[v]-a.reference[v],D=await(l.getOffsetParent==null?void 0:l.getOffsetParent(p));let M=D?D[P]:0;(!M||!await(l.isElement==null?void 0:l.isElement(D)))&&(M=c.floating[P]||a.floating[k]);const $=I/2-O/2,W=M/2-S[k]/2-1,ee=lo(m[x],W),te=lo(m[E],W),G=ee,ye=M-S[k]-te,Q=M/2-S[k]/2+$,we=cp(G,Q,ye),pe=!h.arrow&&ts(s)!=null&&Q!==we&&a.reference[k]/2-(Q<G?ee:te)-S[k]/2<0,ie=pe?Q<G?Q-G:Q-ye:0;return{[v]:y[v]+ie,data:{[v]:we,centerOffset:Q-we-ie,...pe&&{alignmentOffset:ie}},reset:pe}}}),b1=function(e){return e===void 0&&(e={}),{name:"flip",options:e,async fn(t){var n,o;const{placement:s,middlewareData:a,rects:l,initialPlacement:c,platform:h,elements:p}=t,{mainAxis:f=!0,crossAxis:m=!0,fallbackPlacements:y,fallbackStrategy:v="bestFit",fallbackAxisSideDirection:k="none",flipAlignment:S=!0,...b}=Ar(e,t);if((n=a.arrow)!=null&&n.alignmentOffset)return{};const x=xr(s),E=Xn(c),P=xr(c)===c,I=await(h.isRTL==null?void 0:h.isRTL(p.floating)),O=y||(P||!S?[Mu(c)]:h1(c)),D=k!=="none";!y&&D&&O.push(...g1(c,S,k,I));const M=[c,...O],$=await va(t,b),W=[];let ee=((o=a.flip)==null?void 0:o.overflows)||[];if(f&&W.push($[x]),m){const Q=d1(s,l,I);W.push($[Q[0]],$[Q[1]])}if(ee=[...ee,{placement:s,overflows:W}],!W.every(Q=>Q<=0)){var te,G;const Q=(((te=a.flip)==null?void 0:te.index)||0)+1,we=M[Q];if(we&&(!(m==="alignment"?E!==Xn(we):!1)||ee.every(B=>B.overflows[0]>0&&Xn(B.placement)===E)))return{data:{index:Q,overflows:ee},reset:{placement:we}};let pe=(G=ee.filter(ie=>ie.overflows[0]<=0).sort((ie,B)=>ie.overflows[1]-B.overflows[1])[0])==null?void 0:G.placement;if(!pe)switch(v){case"bestFit":{var ye;const ie=(ye=ee.filter(B=>{if(D){const q=Xn(B.placement);return q===E||q==="y"}return!0}).map(B=>[B.placement,B.overflows.filter(q=>q>0).reduce((q,Y)=>q+Y,0)]).sort((B,q)=>B[1]-q[1])[0])==null?void 0:ye[0];ie&&(pe=ie);break}case"initialPlacement":pe=c;break}if(s!==pe)return{reset:{placement:pe}}}return{}}}};function Dy(e,t){return{top:e.top-t.height,right:e.right-t.width,bottom:e.bottom-t.height,left:e.left-t.width}}function jy(e){return a1.some(t=>e[t]>=0)}const S1=function(e){return e===void 0&&(e={}),{name:"hide",options:e,async fn(t){const{rects:n}=t,{strategy:o="referenceHidden",...s}=Ar(e,t);switch(o){case"referenceHidden":{const a=await va(t,{...s,elementContext:"reference"}),l=Dy(a,n.reference);return{data:{referenceHiddenOffsets:l,referenceHidden:jy(l)}}}case"escaped":{const a=await va(t,{...s,altBoundary:!0}),l=Dy(a,n.floating);return{data:{escapedOffsets:l,escaped:jy(l)}}}default:return{}}}}},J0=new Set(["left","top"]);async function k1(e,t){const{placement:n,platform:o,elements:s}=e,a=await(o.isRTL==null?void 0:o.isRTL(s.floating)),l=xr(n),c=ts(n),h=Xn(n)==="y",p=J0.has(l)?-1:1,f=a&&h?-1:1,m=Ar(t,e);let{mainAxis:y,crossAxis:v,alignmentAxis:k}=typeof m=="number"?{mainAxis:m,crossAxis:0,alignmentAxis:null}:{mainAxis:m.mainAxis||0,crossAxis:m.crossAxis||0,alignmentAxis:m.alignmentAxis};return c&&typeof k=="number"&&(v=c==="end"?k*-1:k),h?{x:v*f,y:y*p}:{x:y*p,y:v*f}}const A1=function(e){return e===void 0&&(e=0),{name:"offset",options:e,async fn(t){var n,o;const{x:s,y:a,placement:l,middlewareData:c}=t,h=await k1(t,e);return l===((n=c.offset)==null?void 0:n.placement)&&(o=c.arrow)!=null&&o.alignmentOffset?{}:{x:s+h.x,y:a+h.y,data:{...h,placement:l}}}}},x1=function(e){return e===void 0&&(e={}),{name:"shift",options:e,async fn(t){const{x:n,y:o,placement:s}=t,{mainAxis:a=!0,crossAxis:l=!1,limiter:c={fn:b=>{let{x,y:E}=b;return{x,y:E}}},...h}=Ar(e,t),p={x:n,y:o},f=await va(t,h),m=Xn(xr(s)),y=Jp(m);let v=p[y],k=p[m];if(a){const b=y==="y"?"top":"left",x=y==="y"?"bottom":"right",E=v+f[b],P=v-f[x];v=cp(E,v,P)}if(l){const b=m==="y"?"top":"left",x=m==="y"?"bottom":"right",E=k+f[b],P=k-f[x];k=cp(E,k,P)}const S=c.fn({...t,[y]:v,[m]:k});return{...S,data:{x:S.x-n,y:S.y-o,enabled:{[y]:a,[m]:l}}}}}},_1=function(e){return e===void 0&&(e={}),{options:e,fn(t){const{x:n,y:o,placement:s,rects:a,middlewareData:l}=t,{offset:c=0,mainAxis:h=!0,crossAxis:p=!0}=Ar(e,t),f={x:n,y:o},m=Xn(s),y=Jp(m);let v=f[y],k=f[m];const S=Ar(c,t),b=typeof S=="number"?{mainAxis:S,crossAxis:0}:{mainAxis:0,crossAxis:0,...S};if(h){const P=y==="y"?"height":"width",I=a.reference[y]-a.floating[P]+b.mainAxis,O=a.reference[y]+a.reference[P]-b.mainAxis;v<I?v=I:v>O&&(v=O)}if(p){var x,E;const P=y==="y"?"width":"height",I=J0.has(xr(s)),O=a.reference[m]-a.floating[P]+(I&&((x=l.offset)==null?void 0:x[m])||0)+(I?0:b.crossAxis),D=a.reference[m]+a.reference[P]+(I?0:((E=l.offset)==null?void 0:E[m])||0)-(I?b.crossAxis:0);k<O?k=O:k>D&&(k=D)}return{[y]:v,[m]:k}}}},E1=function(e){return e===void 0&&(e={}),{name:"size",options:e,async fn(t){var n,o;const{placement:s,rects:a,platform:l,elements:c}=t,{apply:h=()=>{},...p}=Ar(e,t),f=await va(t,p),m=xr(s),y=ts(s),v=Xn(s)==="y",{width:k,height:S}=a.floating;let b,x;m==="top"||m==="bottom"?(b=m,x=y===(await(l.isRTL==null?void 0:l.isRTL(c.floating))?"start":"end")?"left":"right"):(x=m,b=y==="end"?"top":"bottom");const E=S-f.top-f.bottom,P=k-f.left-f.right,I=lo(S-f[b],E),O=lo(k-f[x],P),D=!t.middlewareData.shift;let M=I,$=O;if((n=t.middlewareData.shift)!=null&&n.enabled.x&&($=P),(o=t.middlewareData.shift)!=null&&o.enabled.y&&(M=E),D&&!y){const ee=ln(f.left,0),te=ln(f.right,0),G=ln(f.top,0),ye=ln(f.bottom,0);v?$=k-2*(ee!==0||te!==0?ee+te:ln(f.left,f.right)):M=S-2*(G!==0||ye!==0?G+ye:ln(f.top,f.bottom))}await h({...t,availableWidth:$,availableHeight:M});const W=await l.getDimensions(c.floating);return k!==W.width||S!==W.height?{reset:{rects:!0}}:{}}}};function Xu(){return typeof window<"u"}function ns(e){return Q0(e)?(e.nodeName||"").toLowerCase():"#document"}function hn(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function nr(e){var t;return(t=(Q0(e)?e.ownerDocument:e.document)||window.document)==null?void 0:t.documentElement}function Q0(e){return Xu()?e instanceof Node||e instanceof hn(e).Node:!1}function jn(e){return Xu()?e instanceof Element||e instanceof hn(e).Element:!1}function tr(e){return Xu()?e instanceof HTMLElement||e instanceof hn(e).HTMLElement:!1}function Fy(e){return!Xu()||typeof ShadowRoot>"u"?!1:e instanceof ShadowRoot||e instanceof hn(e).ShadowRoot}const T1=new Set(["inline","contents"]);function xa(e){const{overflow:t,overflowX:n,overflowY:o,display:s}=Fn(e);return/auto|scroll|overlay|hidden|clip/.test(t+o+n)&&!T1.has(s)}const P1=new Set(["table","td","th"]);function C1(e){return P1.has(ns(e))}const I1=[":popover-open",":modal"];function Zu(e){return I1.some(t=>{try{return e.matches(t)}catch{return!1}})}const R1=["transform","translate","scale","rotate","perspective"],O1=["transform","translate","scale","rotate","perspective","filter"],L1=["paint","layout","strict","content"];function Zp(e){const t=ef(),n=jn(e)?Fn(e):e;return R1.some(o=>n[o]?n[o]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!t&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!t&&(n.filter?n.filter!=="none":!1)||O1.some(o=>(n.willChange||"").includes(o))||L1.some(o=>(n.contain||"").includes(o))}function z1(e){let t=uo(e);for(;tr(t)&&!Qi(t);){if(Zp(t))return t;if(Zu(t))return null;t=uo(t)}return null}function ef(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const N1=new Set(["html","body","#document"]);function Qi(e){return N1.has(ns(e))}function Fn(e){return hn(e).getComputedStyle(e)}function ec(e){return jn(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function uo(e){if(ns(e)==="html")return e;const t=e.assignedSlot||e.parentNode||Fy(e)&&e.host||nr(e);return Fy(t)?t.host:t}function X0(e){const t=uo(e);return Qi(t)?e.ownerDocument?e.ownerDocument.body:e.body:tr(t)&&xa(t)?t:X0(t)}function ya(e,t,n){var o;t===void 0&&(t=[]),n===void 0&&(n=!0);const s=X0(e),a=s===((o=e.ownerDocument)==null?void 0:o.body),l=hn(s);if(a){const c=hp(l);
vendor: 7,127 bytes, line 50
50return t.concat(l,l.visualViewport||[],xa(s)?s:[],c&&n?ya(c):[])}return t.concat(s,ya(s,[],n))}function hp(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}function Z0(e){const t=Fn(e);let n=parseFloat(t.width)||0,o=parseFloat(t.height)||0;const s=tr(e),a=s?e.offsetWidth:n,l=s?e.offsetHeight:o,c=Nu(n)!==a||Nu(o)!==l;return c&&(n=a,o=l),{width:n,height:o,$:c}}function tf(e){return jn(e)?e:e.contextElement}function Gi(e){const t=tf(e);if(!tr(t))return Zn(1);const n=t.getBoundingClientRect(),{width:o,height:s,$:a}=Z0(t);let l=(a?Nu(n.width):n.width)/o,c=(a?Nu(n.height):n.height)/s;return(!l||!Number.isFinite(l))&&(l=1),(!c||!Number.isFinite(c))&&(c=1),{x:l,y:c}}const M1=Zn(0);function eS(e){const t=hn(e);return!ef()||!t.visualViewport?M1:{x:t.visualViewport.offsetLeft,y:t.visualViewport.offsetTop}}function D1(e,t,n){return t===void 0&&(t=!1),!n||t&&n!==hn(e)?!1:t}function Ho(e,t,n,o){t===void 0&&(t=!1),n===void 0&&(n=!1);const s=e.getBoundingClientRect(),a=tf(e);let l=Zn(1);t&&(o?jn(o)&&(l=Gi(o)):l=Gi(e));const c=D1(a,n,o)?eS(a):Zn(0);let h=(s.left+c.x)/l.x,p=(s.top+c.y)/l.y,f=s.width/l.x,m=s.height/l.y;if(a){const y=hn(a),v=o&&jn(o)?hn(o):o;let k=y,S=hp(k);for(;S&&o&&v!==k;){const b=Gi(S),x=S.getBoundingClientRect(),E=Fn(S),P=x.left+(S.clientLeft+parseFloat(E.paddingLeft))*b.x,I=x.top+(S.clientTop+parseFloat(E.paddingTop))*b.y;h*=b.x,p*=b.y,f*=b.x,m*=b.y,h+=P,p+=I,k=hn(S),S=hp(k)}}return Du({width:f,height:m,x:h,y:p})}function nf(e,t){const n=ec(e).scrollLeft;return t?t.left+n:Ho(nr(e)).left+n}function tS(e,t,n){n===void 0&&(n=!1);const o=e.getBoundingClientRect(),s=o.left+t.scrollLeft-(n?0:nf(e,o)),a=o.top+t.scrollTop;return{x:s,y:a}}function j1(e){let{elements:t,rect:n,offsetParent:o,strategy:s}=e;const a=s==="fixed",l=nr(o),c=t?Zu(t.floating):!1;if(o===l||c&&a)return n;let h={scrollLeft:0,scrollTop:0},p=Zn(1);const f=Zn(0),m=tr(o);if((m||!m&&!a)&&((ns(o)!=="body"||xa(l))&&(h=ec(o)),tr(o))){const v=Ho(o);p=Gi(o),f.x=v.x+o.clientLeft,f.y=v.y+o.clientTop}const y=l&&!m&&!a?tS(l,h,!0):Zn(0);return{width:n.width*p.x,height:n.height*p.y,x:n.x*p.x-h.scrollLeft*p.x+f.x+y.x,y:n.y*p.y-h.scrollTop*p.y+f.y+y.y}}function F1(e){return Array.from(e.getClientRects())}function $1(e){const t=nr(e),n=ec(e),o=e.ownerDocument.body,s=ln(t.scrollWidth,t.clientWidth,o.scrollWidth,o.clientWidth),a=ln(t.scrollHeight,t.clientHeight,o.scrollHeight,o.clientHeight);let l=-n.scrollLeft+nf(e);const c=-n.scrollTop;return Fn(o).direction==="rtl"&&(l+=ln(t.clientWidth,o.clientWidth)-s),{width:s,height:a,x:l,y:c}}function V1(e,t){const n=hn(e),o=nr(e),s=n.visualViewport;let a=o.clientWidth,l=o.clientHeight,c=0,h=0;if(s){a=s.width,l=s.height;const p=ef();(!p||p&&t==="fixed")&&(c=s.offsetLeft,h=s.offsetTop)}return{width:a,height:l,x:c,y:h}}const U1=new Set(["absolute","fixed"]);function B1(e,t){const n=Ho(e,!0,t==="fixed"),o=n.top+e.clientTop,s=n.left+e.clientLeft,a=tr(e)?Gi(e):Zn(1),l=e.clientWidth*a.x,c=e.clientHeight*a.y,h=s*a.x,p=o*a.y;return{width:l,height:c,x:h,y:p}}function $y(e,t,n){let o;if(t==="viewport")o=V1(e,n);else if(t==="document")o=$1(nr(e));else if(jn(t))o=B1(t,n);else{const s=eS(e);o={x:t.x-s.x,y:t.y-s.y,width:t.width,height:t.height}}return Du(o)}function nS(e,t){const n=uo(e);return n===t||!jn(n)||Qi(n)?!1:Fn(n).position==="fixed"||nS(n,t)}function W1(e,t){const n=t.get(e);if(n)return n;let o=ya(e,[],!1).filter(c=>jn(c)&&ns(c)!=="body"),s=null;const a=Fn(e).position==="fixed";let l=a?uo(e):e;for(;jn(l)&&!Qi(l);){const c=Fn(l),h=Zp(l);!h&&c.position==="fixed"&&(s=null),(a?!h&&!s:!h&&c.position==="static"&&!!s&&U1.has(s.position)||xa(l)&&!h&&nS(e,l))?o=o.filter(f=>f!==l):s=c,l=uo(l)}return t.set(e,o),o}function q1(e){let{element:t,boundary:n,rootBoundary:o,strategy:s}=e;const l=[...n==="clippingAncestors"?Zu(t)?[]:W1(t,this._c):[].concat(n),o],c=l[0],h=l.reduce((p,f)=>{const m=$y(t,f,s);return p.top=ln(m.top,p.top),p.right=lo(m.right,p.right),p.bottom=lo(m.bottom,p.bottom),p.left=ln(m.left,p.left),p},$y(t,c,s));return{width:h.right-h.left,height:h.bottom-h.top,x:h.left,y:h.top}}function G1(e){const{width:t,height:n}=Z0(e);return{width:t,height:n}}function H1(e,t,n){const o=tr(t),s=nr(t),a=n==="fixed",l=Ho(e,!0,a,t);let c={scrollLeft:0,scrollTop:0};const h=Zn(0);function p(){h.x=nf(s)}if(o||!o&&!a)if((ns(t)!=="body"||xa(s))&&(c=ec(t)),o){const v=Ho(t,!0,a,t);h.x=v.x+t.clientLeft,h.y=v.y+t.clientTop}else s&&p();a&&!o&&s&&p();const f=s&&!o&&!a?tS(s,c):Zn(0),m=l.left+c.scrollLeft-h.x-f.x,y=l.top+c.scrollTop-h.y-f.y;return{x:m,y,width:l.width,height:l.height}}function Ah(e){return Fn(e).position==="static"}function Vy(e,t){if(!tr(e)||Fn(e).position==="fixed")return null;if(t)return t(e);let n=e.offsetParent;return nr(e)===n&&(n=n.ownerDocument.body),n}function rS(e,t){const n=hn(e);if(Zu(e))return n;if(!tr(e)){let s=uo(e);for(;s&&!Qi(s);){if(jn(s)&&!Ah(s))return s;s=uo(s)}return n}let o=Vy(e,t);for(;o&&C1(o)&&Ah(o);)o=Vy(o,t);return o&&Qi(o)&&Ah(o)&&!Zp(o)?n:o||z1(e)||n}const K1=async function(e){const t=this.getOffsetParent||rS,n=this.getDimensions,o=await n(e.floating);return{reference:H1(e.reference,await t(e.floating),e.strategy),floating:{x:0,y:0,width:o.width,height:o.height}}};function Y1(e){return Fn(e).direction==="rtl"}const J1={convertOffsetParentRelativeRectToViewportRelativeRect:j1,getDocumentElement:nr,getClippingRect:q1,getOffsetParent:rS,getElementRects:K1,getClientRects:F1,getDimensions:G1,getScale:Gi,isElement:jn,isRTL:Y1};function oS(e,t){return e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height}function Q1(e,t){let n=null,o;const s=nr(e);function a(){var c;clearTimeout(o),(c=n)==null||c.disconnect(),n=null}function l(c,h){c===void 0&&(c=!1),h===void 0&&(h=1),a();const p=e.getBoundingClientRect(),{left:f,top:m,width:y,height:v}=p;if(c||t(),!y||!v)return;const k=nu(m),S=nu(s.clientWidth-(f+y)),b=nu(s.clientHeight-(m+v)),x=nu(f),P={rootMargin:-k+"px "+-S+"px "+-b+"px "+-x+"px",threshold:ln(0,lo(1,h))||1};let I=!0;function O(D){const M=D[0].intersectionRatio;if(M!==h){if(!I)return l();M?l(!1,M):o=setTimeout(()=>{l(!1,1e-7)},1e3)}M===1&&!oS(p,e.getBoundingClientRect())&&l(),I=!1}try{n=new IntersectionObserver(O,{...P,root:s.ownerDocument})}catch{n=new IntersectionObserver(O,P)}n.observe(e)}return l(!0),a}function X1(e,t,n,o){o===void 0&&(o={});const{ancestorScroll:s=!0,ancestorResize:a=!0,elementResize:l=typeof ResizeObserver=="function",layoutShift:c=typeof IntersectionObserver=="function",animationFrame:h=!1}=o,p=tf(e),f=s||a?[...p?ya(p):[],...ya(t)]:[];f.forEach(x=>{s&&x.addEventListener("scroll",n,{passive:!0}),a&&x.addEventListener("resize",n)});const m=p&&c?Q1(p,n):null;let y=-1,v=null;l&&(v=new ResizeObserver(x=>{let[E]=x;E&&E.target===p&&v&&(v.unobserve(t),cancelAnimationFrame(y),y=requestAnimationFrame(()=>{var P;(P=v)==null||P.observe(t)})),n()}),p&&!h&&v.observe(p),v.observe(t));let k,S=h?Ho(e):null;h&&b();function b(){const x=Ho(e);S&&!oS(S,x)&&n(),S=x,k=requestAnimationFrame(b)}return n(),()=>{var x;f.forEach(E=>{s&&E.removeEventListener("scroll",n),a&&E.removeEventListener("resize",n)}),m?.(),(x=v)==null||x.disconnect(),v=null,h&&cancelAnimationFrame(k)}}
vendor: 10,028 bytes, line 50
50const Z1=A1,ez=x1,tz=b1,nz=E1,rz=S1,Uy=w1,oz=_1,iz=(e,t,n)=>{const o=new Map,s={platform:J1,...n},a={...s.platform,_c:o};return y1(e,t,{...s,platform:a})};var sz=typeof document<"u",az=function(){},gu=sz?_.useLayoutEffect:az;function ju(e,t){if(e===t)return!0;if(typeof e!=typeof t)return!1;if(typeof e=="function"&&e.toString()===t.toString())return!0;let n,o,s;if(e&&t&&typeof e=="object"){if(Array.isArray(e)){if(n=e.length,n!==t.length)return!1;for(o=n;o--!==0;)if(!ju(e[o],t[o]))return!1;return!0}if(s=Object.keys(e),n=s.length,n!==Object.keys(t).length)return!1;for(o=n;o--!==0;)if(!{}.hasOwnProperty.call(t,s[o]))return!1;for(o=n;o--!==0;){const a=s[o];if(!(a==="_owner"&&e.$$typeof)&&!ju(e[a],t[a]))return!1}return!0}return e!==e&&t!==t}function iS(e){return typeof window>"u"?1:(e.ownerDocument.defaultView||window).devicePixelRatio||1}function By(e,t){const n=iS(e);return Math.round(t*n)/n}function xh(e){const t=_.useRef(e);return gu(()=>{t.current=e}),t}function lz(e){e===void 0&&(e={});const{placement:t="bottom",strategy:n="absolute",middleware:o=[],platform:s,elements:{reference:a,floating:l}={},transform:c=!0,whileElementsMounted:h,open:p}=e,[f,m]=_.useState({x:0,y:0,strategy:n,placement:t,middlewareData:{},isPositioned:!1}),[y,v]=_.useState(o);ju(y,o)||v(o);const[k,S]=_.useState(null),[b,x]=_.useState(null),E=_.useCallback(B=>{B!==D.current&&(D.current=B,S(B))},[]),P=_.useCallback(B=>{B!==M.current&&(M.current=B,x(B))},[]),I=a||k,O=l||b,D=_.useRef(null),M=_.useRef(null),$=_.useRef(f),W=h!=null,ee=xh(h),te=xh(s),G=xh(p),ye=_.useCallback(()=>{if(!D.current||!M.current)return;const B={placement:t,strategy:n,middleware:y};te.current&&(B.platform=te.current),iz(D.current,M.current,B).then(q=>{const Y={...q,isPositioned:G.current!==!1};Q.current&&!ju($.current,Y)&&($.current=Y,ka.flushSync(()=>{m(Y)}))})},[y,t,n,te,G]);gu(()=>{p===!1&&$.current.isPositioned&&($.current.isPositioned=!1,m(B=>({...B,isPositioned:!1})))},[p]);const Q=_.useRef(!1);gu(()=>(Q.current=!0,()=>{Q.current=!1}),[]),gu(()=>{if(I&&(D.current=I),O&&(M.current=O),I&&O){if(ee.current)return ee.current(I,O,ye);ye()}},[I,O,ye,ee,W]);const we=_.useMemo(()=>({reference:D,floating:M,setReference:E,setFloating:P}),[E,P]),pe=_.useMemo(()=>({reference:I,floating:O}),[I,O]),ie=_.useMemo(()=>{const B={position:n,left:0,top:0};if(!pe.floating)return B;const q=By(pe.floating,f.x),Y=By(pe.floating,f.y);return c?{...B,transform:"translate("+q+"px, "+Y+"px)",...iS(pe.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:q,top:Y}},[n,c,pe.floating,f.x,f.y]);return _.useMemo(()=>({...f,update:ye,refs:we,elements:pe,floatingStyles:ie}),[f,ye,we,pe,ie])}const uz=e=>{function t(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:e,fn(n){const{element:o,padding:s}=typeof e=="function"?e(n):e;return o&&t(o)?o.current!=null?Uy({element:o.current,padding:s}).fn(n):{}:o?Uy({element:o,padding:s}).fn(n):{}}}},cz=(e,t)=>({...Z1(e),options:[e,t]}),dz=(e,t)=>({...ez(e),options:[e,t]}),hz=(e,t)=>({...oz(e),options:[e,t]}),pz=(e,t)=>({...tz(e),options:[e,t]}),fz=(e,t)=>({...nz(e),options:[e,t]}),mz=(e,t)=>({...rz(e),options:[e,t]}),gz=(e,t)=>({...uz(e),options:[e,t]});var vz="Arrow",sS=_.forwardRef((e,t)=>{const{children:n,width:o=10,height:s=5,...a}=e;return C.jsx(Qe.svg,{...a,ref:t,width:o,height:s,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:e.asChild?n:C.jsx("polygon",{points:"0,0 30,0 15,10"})})});sS.displayName=vz;var yz=sS;function aS(e){const[t,n]=_.useState(void 0);return kr(()=>{if(e){n({width:e.offsetWidth,height:e.offsetHeight});const o=new ResizeObserver(s=>{if(!Array.isArray(s)||!s.length)return;const a=s[0];let l,c;if("borderBoxSize"in a){const h=a.borderBoxSize,p=Array.isArray(h)?h[0]:h;l=p.inlineSize,c=p.blockSize}else l=e.offsetWidth,c=e.offsetHeight;n({width:l,height:c})});return o.observe(e,{box:"border-box"}),()=>o.unobserve(e)}else n(void 0)},[e]),t}var rf="Popper",[lS,uS]=es(rf),[wz,cS]=lS(rf),dS=e=>{const{__scopePopper:t,children:n}=e,[o,s]=_.useState(null);return C.jsx(wz,{scope:t,anchor:o,onAnchorChange:s,children:n})};dS.displayName=rf;var hS="PopperAnchor",pS=_.forwardRef((e,t)=>{const{__scopePopper:n,virtualRef:o,...s}=e,a=cS(hS,n),l=_.useRef(null),c=_t(t,l);return _.useEffect(()=>{a.onAnchorChange(o?.current||l.current)}),o?null:C.jsx(Qe.div,{...s,ref:c})});pS.displayName=hS;var of="PopperContent",[bz,Sz]=lS(of),fS=_.forwardRef((e,t)=>{const{__scopePopper:n,side:o="bottom",sideOffset:s=0,align:a="center",alignOffset:l=0,arrowPadding:c=0,avoidCollisions:h=!0,collisionBoundary:p=[],collisionPadding:f=0,sticky:m="partial",hideWhenDetached:y=!1,updatePositionStrategy:v="optimized",onPlaced:k,...S}=e,b=cS(of,n),[x,E]=_.useState(null),P=_t(t,ge=>E(ge)),[I,O]=_.useState(null),D=aS(I),M=D?.width??0,$=D?.height??0,W=o+(a!=="center"?"-"+a:""),ee=typeof f=="number"?f:{top:0,right:0,bottom:0,left:0,...f},te=Array.isArray(p)?p:[p],G=te.length>0,ye={padding:ee,boundary:te.filter(Az),altBoundary:G},{refs:Q,floatingStyles:we,placement:pe,isPositioned:ie,middlewareData:B}=lz({strategy:"fixed",placement:W,whileElementsMounted:(...ge)=>X1(...ge,{animationFrame:v==="always"}),elements:{reference:b.anchor},middleware:[cz({mainAxis:s+$,alignmentAxis:l}),h&&dz({mainAxis:!0,crossAxis:!1,limiter:m==="partial"?hz():void 0,...ye}),h&&pz({...ye}),fz({...ye,apply:({elements:ge,rects:Ee,availableWidth:Pe,availableHeight:He})=>{const{width:bt,height:tn}=Ee.reference,Nt=ge.floating.style;Nt.setProperty("--radix-popper-available-width",`${Pe}px`),Nt.setProperty("--radix-popper-available-height",`${He}px`),Nt.setProperty("--radix-popper-anchor-width",`${bt}px`),Nt.setProperty("--radix-popper-anchor-height",`${tn}px`)}}),I&&gz({element:I,padding:c}),xz({arrowWidth:M,arrowHeight:$}),y&&mz({strategy:"referenceHidden",...ye})]}),[q,Y]=vS(pe),z=er(k);kr(()=>{ie&&z?.()},[ie,z]);const U=B.arrow?.x,oe=B.arrow?.y,se=B.arrow?.centerOffset!==0,[ce,_e]=_.useState();return kr(()=>{x&&_e(window.getComputedStyle(x).zIndex)},[x]),C.jsx("div",{ref:Q.setFloating,"data-radix-popper-content-wrapper":"",style:{...we,transform:ie?we.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ce,"--radix-popper-transform-origin":[B.transformOrigin?.x,B.transformOrigin?.y].join(" "),...B.hide?.referenceHidden&&{visibility:"hidden",pointerEvents:"none"}},dir:e.dir,children:C.jsx(bz,{scope:n,placedSide:q,onArrowChange:O,arrowX:U,arrowY:oe,shouldHideArrow:se,children:C.jsx(Qe.div,{"data-side":q,"data-align":Y,...S,ref:P,style:{...S.style,animation:ie?void 0:"none"}})})})});fS.displayName=of;var mS="PopperArrow",kz={top:"bottom",right:"left",bottom:"top",left:"right"},gS=_.forwardRef(function(t,n){const{__scopePopper:o,...s}=t,a=Sz(mS,o),l=kz[a.placedSide];return C.jsx("span",{ref:a.onArrowChange,style:{position:"absolute",left:a.arrowX,top:a.arrowY,[l]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[a.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[a.placedSide],visibility:a.shouldHideArrow?"hidden":void 0},children:C.jsx(yz,{...s,ref:n,style:{...s.style,display:"block"}})})});gS.displayName=mS;function Az(e){return e!==null}var xz=e=>({name:"transformOrigin",options:e,fn(t){const{placement:n,rects:o,middlewareData:s}=t,l=s.arrow?.centerOffset!==0,c=l?0:e.arrowWidth,h=l?0:e.arrowHeight,[p,f]=vS(n),m={start:"0%",center:"50%",end:"100%"}[f],y=(s.arrow?.x??0)+c/2,v=(s.arrow?.y??0)+h/2;let k="",S="";return p==="bottom"?(k=l?m:`${y}px`,S=`${-h}px`):p==="top"?(k=l?m:`${y}px`,S=`${o.floating.height+h}px`):p==="right"?(k=`${-h}px`,S=l?m:`${v}px`):p==="left"&&(k=`${o.floating.width+h}px`,S=l?m:`${v}px`),{data:{x:k,y:S}}}});function vS(e){const[t,n="center"]=e.split("-");return[t,n]}var rU=dS,_z=pS,Ez=fS,Tz=gS,Pz="Portal",sf=_.forwardRef((e,t)=>{const{container:n,...o}=e,[s,a]=_.useState(!1);kr(()=>a(!0),[]);const l=n||s&&globalThis?.document?.body;return l?Nb.createPortal(C.jsx(Qe.div,{...o,ref:t}),l):null});sf.displayName=Pz;function Cz(e,t){return _.useReducer((n,o)=>t[n][o]??n,e)}var rs=e=>{const{present:t,children:n}=e,o=Iz(t),s=typeof n=="function"?n({present:o.isPresent}):_.Children.only(n),a=_t(o.ref,Rz(s));return typeof n=="function"||o.isPresent?_.cloneElement(s,{ref:a}):null};rs.displayName="Presence";function Iz(e){const[t,n]=_.useState(),o=_.useRef(null),s=_.useRef(e),a=_.useRef("none"),l=e?"mounted":"unmounted",[c,h]=Cz(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return _.useEffect(()=>{const p=ru(o.current);a.current=c==="mounted"?p:"none"},[c]),kr(()=>{const p=o.current,f=s.current;if(f!==e){const y=a.current,v=ru(p);e?h("MOUNT"):v==="none"||p?.display==="none"?h("UNMOUNT"):h(f&&y!==v?"ANIMATION_OUT":"UNMOUNT"),s.current=e}},[e,h]),kr(()=>{if(t){let p;const f=t.ownerDocument.defaultView??window,m=v=>{const S=ru(o.current).includes(v.animationName);if(v.target===t&&S&&(h("ANIMATION_END"),!s.current)){const b=t.style.animationFillMode;t.style.animationFillMode="forwards",p=f.setTimeout(()=>{t.style.animationFillMode==="forwards"&&(t.style.animationFillMode=b)})}},y=v=>{v.target===t&&(a.current=ru(o.current))};return t.addEventListener("animationstart",y),t.addEventListener("animationcancel",m),t.addEventListener("animationend",m),()=>{f.clearTimeout(p),t.removeEventListener("animationstart",y),t.removeEventListener("animationcancel",m),t.removeEventListener("animationend",m)}}else h("ANIMATION_END")},[t,h]),{isPresent:["mounted","unmountSuspended"].includes(c),ref:_.useCallback(p=>{o.current=p?getComputedStyle(p):null,n(p)},[])}}function ru(e){return e?.animationName||"none"}function Rz(e){let t=Object.getOwnPropertyDescriptor(e.props,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning;return n?e.ref:(t=Object.getOwnPropertyDescriptor(e,"ref")?.get,n=t&&"isReactWarning"in t&&t.isReactWarning,n?e.props.ref:e.props.ref||e.ref)}
vendor: 4,260 bytes, line 50
50var Oz=pw[" useInsertionEffect ".trim().toString()]||kr;function af({prop:e,defaultProp:t,onChange:n=()=>{},caller:o}){const[s,a,l]=Lz({defaultProp:t,onChange:n}),c=e!==void 0,h=c?e:s;{const f=_.useRef(e!==void 0);_.useEffect(()=>{const m=f.current;m!==c&&console.warn(`${o} is changing from ${m?"controlled":"uncontrolled"} to ${c?"controlled":"uncontrolled"}. Components should not switch from controlled to uncontrolled (or vice versa). Decide between using a controlled or uncontrolled value for the lifetime of the component.`),f.current=c},[c,o])}const p=_.useCallback(f=>{if(c){const m=zz(f)?f(e):f;m!==e&&l.current?.(m)}else a(f)},[c,e,a,l]);return[h,p]}function Lz({defaultProp:e,onChange:t}){const[n,o]=_.useState(e),s=_.useRef(n),a=_.useRef(t);return Oz(()=>{a.current=t},[t]),_.useEffect(()=>{s.current!==n&&(a.current?.(n),s.current=n)},[n,s]),[n,o,a]}function zz(e){return typeof e=="function"}var Nz=Object.freeze({position:"absolute",border:0,width:1,height:1,padding:0,margin:-1,overflow:"hidden",clip:"rect(0, 0, 0, 0)",whiteSpace:"nowrap",wordWrap:"normal"}),Mz="VisuallyHidden",tc=_.forwardRef((e,t)=>C.jsx(Qe.span,{...e,ref:t,style:{...Nz,...e.style}}));tc.displayName=Mz;var Dz=tc,[nc]=es("Tooltip",[uS]),lf=uS(),yS="TooltipProvider",jz=700,Wy="tooltip.open",[Fz,wS]=nc(yS),bS=e=>{const{__scopeTooltip:t,delayDuration:n=jz,skipDelayDuration:o=300,disableHoverableContent:s=!1,children:a}=e,l=_.useRef(!0),c=_.useRef(!1),h=_.useRef(0);return _.useEffect(()=>{const p=h.current;return()=>window.clearTimeout(p)},[]),C.jsx(Fz,{scope:t,isOpenDelayedRef:l,delayDuration:n,onOpen:_.useCallback(()=>{window.clearTimeout(h.current),l.current=!1},[]),onClose:_.useCallback(()=>{window.clearTimeout(h.current),h.current=window.setTimeout(()=>l.current=!0,o)},[o]),isPointerInTransitRef:c,onPointerInTransitChange:_.useCallback(p=>{c.current=p},[]),disableHoverableContent:s,children:a})};bS.displayName=yS;var SS="Tooltip",[oU,rc]=nc(SS),pp="TooltipTrigger",$z=_.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,s=rc(pp,n),a=wS(pp,n),l=lf(n),c=_.useRef(null),h=_t(t,c,s.onTriggerChange),p=_.useRef(!1),f=_.useRef(!1),m=_.useCallback(()=>p.current=!1,[]);return _.useEffect(()=>()=>document.removeEventListener("pointerup",m),[m]),C.jsx(_z,{asChild:!0,...l,children:C.jsx(Qe.button,{"aria-describedby":s.open?s.contentId:void 0,"data-state":s.stateAttribute,...o,ref:h,onPointerMove:Ge(e.onPointerMove,y=>{y.pointerType!=="touch"&&!f.current&&!a.isPointerInTransitRef.current&&(s.onTriggerEnter(),f.current=!0)}),onPointerLeave:Ge(e.onPointerLeave,()=>{s.onTriggerLeave(),f.current=!1}),onPointerDown:Ge(e.onPointerDown,()=>{s.open&&s.onClose(),p.current=!0,document.addEventListener("pointerup",m,{once:!0})}),onFocus:Ge(e.onFocus,()=>{p.current||s.onOpen()}),onBlur:Ge(e.onBlur,s.onClose),onClick:Ge(e.onClick,s.onClose)})})});$z.displayName=pp;var Vz="TooltipPortal",[iU,Uz]=nc(Vz,{forceMount:void 0}),Xi="TooltipContent",kS=_.forwardRef((e,t)=>{const n=Uz(Xi,e.__scopeTooltip),{forceMount:o=n.forceMount,side:s="top",...a}=e,l=rc(Xi,e.__scopeTooltip);return C.jsx(rs,{present:o||l.open,children:l.disableHoverableContent?C.jsx(AS,{side:s,...a,ref:t}):C.jsx(Bz,{side:s,...a,ref:t})})}),Bz=_.forwardRef((e,t)=>{const n=rc(Xi,e.__scopeTooltip),o=wS(Xi,e.__scopeTooltip),s=_.useRef(null),a=_t(t,s),[l,c]=_.useState(null),{trigger:h,onClose:p}=n,f=s.current,{onPointerInTransitChange:m}=o,y=_.useCallback(()=>{c(null),m(!1)},[m]),v=_.useCallback((k,S)=>{const b=k.currentTarget,x={x:k.clientX,y:k.clientY},E=Kz(x,b.getBoundingClientRect()),P=Yz(x,E),I=Jz(S.getBoundingClientRect()),O=Xz([...P,...I]);c(O),m(!0)},[m]);return _.useEffect(()=>()=>y(),[y]),_.useEffect(()=>{if(h&&f){const k=b=>v(b,f),S=b=>v(b,h);return h.addEventListener("pointerleave",k),f.addEventListener("pointerleave",S),()=>{h.removeEventListener("pointerleave",k),f.removeEventListener("pointerleave",S)}}},[h,f,v,y]),_.useEffect(()=>{if(l){const k=S=>{const b=S.target,x={x:S.clientX,y:S.clientY},E=h?.contains(b)||f?.contains(b),P=!Qz(x,l);E?y():P&&(y(),p())};return document.addEventListener("pointermove",k),()=>document.removeEventListener("pointermove",k)}},[h,f,l,p,y]),C.jsx(AS,{...e,ref:a})}),[Wz,qz]=nc(SS,{isInside:!1}),Gz=qL("TooltipContent"),AS=_.forwardRef((e,t)=>
vendor: 4,214 bytes, line 50
50{const{__scopeTooltip:n,children:o,"aria-label":s,onEscapeKeyDown:a,onPointerDownOutside:l,...c}=e,h=rc(Xi,n),p=lf(n),{onClose:f}=h;return _.useEffect(()=>(document.addEventListener(Wy,f),()=>document.removeEventListener(Wy,f)),[f]),_.useEffect(()=>{if(h.trigger){const m=y=>{y.target?.contains(h.trigger)&&f()};return window.addEventListener("scroll",m,{capture:!0}),()=>window.removeEventListener("scroll",m,{capture:!0})}},[h.trigger,f]),C.jsx(Qu,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:a,onPointerDownOutside:l,onFocusOutside:m=>m.preventDefault(),onDismiss:f,children:C.jsxs(Ez,{"data-state":h.stateAttribute,...p,...c,ref:t,style:{...c.style,"--radix-tooltip-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-tooltip-content-available-width":"var(--radix-popper-available-width)","--radix-tooltip-content-available-height":"var(--radix-popper-available-height)","--radix-tooltip-trigger-width":"var(--radix-popper-anchor-width)","--radix-tooltip-trigger-height":"var(--radix-popper-anchor-height)"},children:[C.jsx(Gz,{children:o}),C.jsx(Wz,{scope:n,isInside:!0,children:C.jsx(Dz,{id:h.contentId,role:"tooltip",children:s||o})})]})})});kS.displayName=Xi;var xS="TooltipArrow",Hz=_.forwardRef((e,t)=>{const{__scopeTooltip:n,...o}=e,s=lf(n);return qz(xS,n).isInside?null:C.jsx(Tz,{...s,...o,ref:t})});Hz.displayName=xS;function Kz(e,t){const n=Math.abs(t.top-e.y),o=Math.abs(t.bottom-e.y),s=Math.abs(t.right-e.x),a=Math.abs(t.left-e.x);switch(Math.min(n,o,s,a)){case a:return"left";case s:return"right";case n:return"top";case o:return"bottom";default:throw new Error("unreachable")}}function Yz(e,t,n=5){const o=[];switch(t){case"top":o.push({x:e.x-n,y:e.y+n},{x:e.x+n,y:e.y+n});break;case"bottom":o.push({x:e.x-n,y:e.y-n},{x:e.x+n,y:e.y-n});break;case"left":o.push({x:e.x+n,y:e.y-n},{x:e.x+n,y:e.y+n});break;case"right":o.push({x:e.x-n,y:e.y-n},{x:e.x-n,y:e.y+n});break}return o}function Jz(e){const{top:t,right:n,bottom:o,left:s}=e;return[{x:s,y:t},{x:n,y:t},{x:n,y:o},{x:s,y:o}]}function Qz(e,t){const{x:n,y:o}=e;let s=!1;for(let a=0,l=t.length-1;a<t.length;l=a++){const c=t[a],h=t[l],p=c.x,f=c.y,m=h.x,y=h.y;f>o!=y>o&&n<(m-p)*(o-f)/(y-f)+p&&(s=!s)}return s}function Xz(e){const t=e.slice();return t.sort((n,o)=>n.x<o.x?-1:n.x>o.x?1:n.y<o.y?-1:n.y>o.y?1:0),Zz(t)}function Zz(e){if(e.length<=1)return e.slice();const t=[];for(let o=0;o<e.length;o++){const s=e[o];for(;t.length>=2;){const a=t[t.length-1],l=t[t.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))t.pop();else break}t.push(s)}t.pop();const n=[];for(let o=e.length-1;o>=0;o--){const s=e[o];for(;n.length>=2;){const a=n[n.length-1],l=n[n.length-2];if((a.x-l.x)*(s.y-l.y)>=(a.y-l.y)*(s.x-l.x))n.pop();else break}n.push(s)}return n.pop(),t.length===1&&n.length===1&&t[0].x===n[0].x&&t[0].y===n[0].y?t:t.concat(n)}var eN=bS,_S=kS;function ES(e){var t,n,o="";if(typeof e=="string"||typeof e=="number")o+=e;else if(typeof e=="object")if(Array.isArray(e)){var s=e.length;for(t=0;t<s;t++)e[t]&&(n=ES(e[t]))&&(o&&(o+=" "),o+=n)}else for(n in e)e[n]&&(o&&(o+=" "),o+=n);return o}function TS(){for(var e,t,n=0,o="",s=arguments.length;n<s;n++)(e=arguments[n])&&(t=ES(e))&&(o&&(o+=" "),o+=t);return o}const uf="-",tN=e=>{const t=rN(e),{conflictingClassGroups:n,conflictingClassGroupModifiers:o}=e;return{getClassGroupId:l=>{const c=l.split(uf);return c[0]===""&&c.length!==1&&c.shift(),PS(c,t)||nN(l)},getConflictingClassGroupIds:(l,c)=>{const h=n[l]||[];return c&&o[l]?[...h,...o[l]]:h}}},PS=(e,t)=>{if(e.length===0)return t.classGroupId;const n=e[0],o=t.nextPart.get(n),s=o?PS(e.slice(1),o):void 0;if(s)return s;if(t.validators.length===0)return;const a=e.join(uf);return t.validators.find(({validator:l})=>l(a))?.classGroupId},qy=/^\[(.+)\]$/,nN=e=>{if(qy.test(e)){const t=qy.exec(e)[1],n=t?.substring(0,t.indexOf(":"));if(n)return"arbitrary.."+n}},rN=e=>{const{theme:t,prefix:n}=e,o={nextPart:new Map,validators:[]};return iN(Object.entries(e.classGroups),n).forEach(([a,l])=>{fp(l,o,a,t)}),o},fp=(e,t,n,o)=>{e.forEach(s=>{if(typeof s=="string"){const a=s===""?t:Gy(t,s);a.classGroupId=n;return}if(typeof s=="function"){if(oN(s)){fp(s(o),t,n,o);return}t.validators.push({validator:s,classGroupId:n});return}
vendor: 4,835 bytes, line 50
50Object.entries(s).forEach(([a,l])=>{fp(l,Gy(t,a),n,o)})})},Gy=(e,t)=>{let n=e;return t.split(uf).forEach(o=>{n.nextPart.has(o)||n.nextPart.set(o,{nextPart:new Map,validators:[]}),n=n.nextPart.get(o)}),n},oN=e=>e.isThemeGetter,iN=(e,t)=>t?e.map(([n,o])=>{const s=o.map(a=>typeof a=="string"?t+a:typeof a=="object"?Object.fromEntries(Object.entries(a).map(([l,c])=>[t+l,c])):a);return[n,s]}):e,sN=e=>{if(e<1)return{get:()=>{},set:()=>{}};let t=0,n=new Map,o=new Map;const s=(a,l)=>{n.set(a,l),t++,t>e&&(t=0,o=n,n=new Map)};return{get(a){let l=n.get(a);if(l!==void 0)return l;if((l=o.get(a))!==void 0)return s(a,l),l},set(a,l){n.has(a)?n.set(a,l):s(a,l)}}},CS="!",aN=e=>{const{separator:t,experimentalParseClassName:n}=e,o=t.length===1,s=t[0],a=t.length,l=c=>{const h=[];let p=0,f=0,m;for(let b=0;b<c.length;b++){let x=c[b];if(p===0){if(x===s&&(o||c.slice(b,b+a)===t)){h.push(c.slice(f,b)),f=b+a;continue}if(x==="/"){m=b;continue}}x==="["?p++:x==="]"&&p--}const y=h.length===0?c:c.substring(f),v=y.startsWith(CS),k=v?y.substring(1):y,S=m&&m>f?m-f:void 0;return{modifiers:h,hasImportantModifier:v,baseClassName:k,maybePostfixModifierPosition:S}};return n?c=>n({className:c,parseClassName:l}):l},lN=e=>{if(e.length<=1)return e;const t=[];let n=[];return e.forEach(o=>{o[0]==="["?(t.push(...n.sort(),o),n=[]):n.push(o)}),t.push(...n.sort()),t},uN=e=>({cache:sN(e.cacheSize),parseClassName:aN(e),...tN(e)}),cN=/\s+/,dN=(e,t)=>{const{parseClassName:n,getClassGroupId:o,getConflictingClassGroupIds:s}=t,a=[],l=e.trim().split(cN);let c="";for(let h=l.length-1;h>=0;h-=1){const p=l[h],{modifiers:f,hasImportantModifier:m,baseClassName:y,maybePostfixModifierPosition:v}=n(p);let k=!!v,S=o(k?y.substring(0,v):y);if(!S){if(!k){c=p+(c.length>0?" "+c:c);continue}if(S=o(y),!S){c=p+(c.length>0?" "+c:c);continue}k=!1}const b=lN(f).join(":"),x=m?b+CS:b,E=x+S;if(a.includes(E))continue;a.push(E);const P=s(S,k);for(let I=0;I<P.length;++I){const O=P[I];a.push(x+O)}c=p+(c.length>0?" "+c:c)}return c};function hN(){let e=0,t,n,o="";for(;e<arguments.length;)(t=arguments[e++])&&(n=IS(t))&&(o&&(o+=" "),o+=n);return o}const IS=e=>{if(typeof e=="string")return e;let t,n="";for(let o=0;o<e.length;o++)e[o]&&(t=IS(e[o]))&&(n&&(n+=" "),n+=t);return n};function pN(e,...t){let n,o,s,a=l;function l(h){const p=t.reduce((f,m)=>m(f),e());return n=uN(p),o=n.cache.get,s=n.cache.set,a=c,c(h)}function c(h){const p=o(h);if(p)return p;const f=dN(h,n);return s(h,f),f}return function(){return a(hN.apply(null,arguments))}}const qe=e=>{const t=n=>n[e]||[];return t.isThemeGetter=!0,t},RS=/^\[(?:([a-z-]+):)?(.+)\]$/i,fN=/^\d+\/\d+$/,mN=new Set(["px","full","screen"]),gN=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,vN=/\d+(%|px|r?em|[sdl]?v([hwib]|min|max)|pt|pc|in|cm|mm|cap|ch|ex|r?lh|cq(w|h|i|b|min|max))|\b(calc|min|max|clamp)\(.+\)|^0$/,yN=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,wN=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,bN=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,mr=e=>Hi(e)||mN.has(e)||fN.test(e),Xr=e=>os(e,"length",PN),Hi=e=>!!e&&!Number.isNaN(Number(e)),_h=e=>os(e,"number",Hi),Js=e=>!!e&&Number.isInteger(Number(e)),SN=e=>e.endsWith("%")&&Hi(e.slice(0,-1)),Te=e=>RS.test(e),Zr=e=>gN.test(e),kN=new Set(["length","size","percentage"]),AN=e=>os(e,kN,OS),xN=e=>os(e,"position",OS),_N=new Set(["image","url"]),EN=e=>os(e,_N,IN),TN=e=>os(e,"",CN),Qs=()=>!0,os=(e,t,n)=>{const o=RS.exec(e);return o?o[1]?typeof t=="string"?o[1]===t:t.has(o[1]):n(o[2]):!1},PN=e=>vN.test(e)&&!yN.test(e),OS=()=>!1,CN=e=>wN.test(e),IN=e=>bN.test(e),RN=()=>{const e=qe("colors"),t=qe("spacing"),n=qe("blur"),o=qe("brightness"),s=qe("borderColor"),a=qe("borderRadius"),l=qe("borderSpacing"),c=qe("borderWidth"),h=qe("contrast"),p=qe("grayscale"),f=qe("hueRotate"),m=qe("invert"),y=qe("gap"),v=qe("gradientColorStops"),k=qe("gradientColorStopPositions"),S=qe("inset"),b=qe("margin"),x=qe("opacity"),E=qe("padding"),P=qe("saturate"),I=qe("scale"),O=qe("sepia"),D=qe("skew"),M=qe("space"),$=qe("translate"),W=()=>["auto","contain","none"],ee=()=>["auto","hidden","clip","visible","scroll"],te=()=>["auto",Te,t],G=()=>[Te,t],ye=()=>["",mr,Xr],Q=()=>["auto",Hi,Te],we=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],pe=()=>["solid","dashed","dotted","double","none"],ie=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],B=()=>["start","end","center","between","around","evenly","stretch"],q=()=>["","0",Te],Y=()=>["auto","avoid","all","avoid-page","page","left","right","column"],z=()=>[Hi,Te];return{cacheSize:500,separator:":",theme:{colors:[Qs],spacing:[mr,Xr],blur:["none","",Zr,Te],brightness:z(),borderColor:[e],borderRadius:["n
50one","","full",Zr,Te],borderSpacing:G(),borderWidth:ye(),contrast:z(),grayscale:q(),hueRotate:z(),invert:q(),gap:G(),gradientColorStops:[e],gradientColorStopPositions:[SN,Xr],inset:te(),margin:te(),opacity:z(),padding:G(),saturate:z(),scale:z(),sepia:q(),skew:z(),space:G(),translate:G()},classGroups:{aspect:[{aspect:["auto","square","video",Te]}],container:["container"],columns:[{columns:[Zr]}],"break-after":[{"break-after":Y()}],"break-before":[{"break-before":Y()}],"break-inside":[{"break-inside":["auto","avoid","avoid-page","avoid-column"]}],"box-decoration":[{"box-decoration":["slice","clone"]}],box:[{box:["border","content"]}],display:["block","inline-block","inline","flex","inline-flex","table","inline-table","table-caption","table-cell","table-column","table-column-group","table-footer-group","table-header-group","table-row-group","table-row","flow-root","grid","inline-grid","contents","list-item","hidden"],float:[{float:["right","left","none","start","end"]}],clear:[{clear:["left","right","both","none","start","end"]}],isolation:["isolate","isolation-auto"],"object-fit":[{object:["contain","cover","fill","none","scale-down"]}],"object-position":[{object:[...we(),Te]}],overflow:[{overflow:ee()}],"overflow-x":[{"overflow-x":ee()}],"overflow-y":[{"overflow-y":ee()}],overscroll:[{overscroll:W()}],"overscroll-x":[{"overscroll-x":W()}],"overscroll-y":[{"overscroll-y":W()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[S]}],"inset-x":[{"inset-x":[S]}],"inset-y":[{"inset-y":[S]}],start:[{start:[S]}],end:[{end:[S]}],top:[{top:[S]}],right:[{right:[S]}],bottom:[{bottom:[S]}],left:[{left:[S]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",Js,Te]}],basis:[{basis:te()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",Te]}],grow:[{grow:q()}],shrink:[{shrink:q()}],order:[{order:["first","last","none",Js,Te]}],"grid-cols":[{"grid-cols":[Qs]}],"col-start-end":[{col:["auto",{span:["full",Js,Te]},Te]}],"col-start":[{"col-start":Q()}],"col-end":[{"col-end":Q()}],"grid-rows":[{"grid-rows":[Qs]}],"row-start-end":[{row:["auto",{span:[Js,Te]},Te]}],"row-start":[{"row-start":Q()}],"row-end":[{"row-end":Q()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",Te]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",Te]}],gap:[{gap:[y]}],"gap-x":[{"gap-x":[y]}],"gap-y":[{"gap-y":[y]}],"justify-content":[{justify:["normal",...B()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...B(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...B(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[E]}],px:[{px:[E]}],py:[{py:[E]}],ps:[{ps:[E]}],pe:[{pe:[E]}],pt:[{pt:[E]}],pr:[{pr:[E]}],pb:[{pb:[E]}],pl:[{pl:[E]}],m:[{m:[b]}],mx:[{mx:[b]}],my:[{my:[b]}],ms:[{ms:[b]}],me:[{me:[b]}],mt:[{mt:[b]}],mr:[{mr:[b]}],mb:[{mb:[b]}],ml:[{ml:[b]}],"space-x":[{"space-x":[M]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[M]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",Te,t]}],"min-w":[{"min-w":[Te,t,"min","max","fit"]}],"max-w":[{"max-w":[Te,t,"none","full","min","max","fit","prose",{screen:[Zr]},Zr]}],h:[{h:[Te,t,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[Te,t,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[Te,t,"auto","min","max","fit"]}],"font-size":[{text:["base",Zr,Xr]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",_h]}],"font-family":[{font:[Qs]}],"fvn-normal":["normal-nums"],"fvn-ordinal":["ordinal"],"fvn-slashed-zero":["slashed-zero"],"fvn-figure":["lining-nums","oldstyle-nums"],"fvn-spacing":["proportional-nums","tabular-nums"],"fvn-fraction":["diagonal-fractions","stacked-fractions"],tracking:[{tracking:["tighter","tight","normal","wide","wider","widest",Te]}],"line-clamp":[{"line-clamp":["none",Hi,_h]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",mr,Te]}],"list-image":[{"list-image":["none",Te]}],"list-style-type":[{list:["none","disc","decimal",Te]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[e]}],"placeholder-opacity":[{"placeholder-opacity":[x]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[e]}],"text-opacity":[{"text-opacity":[x]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...pe(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",mr,Xr]}],"underline-offset":[{"underline-offset":["auto",mr,Te]}],"text-decoration-color":[{decoration:[e]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:G()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",Te]}],whitespace:[{whitespace:["normal","nowrap","pre","pre-line","pre-wrap","break-spaces"]}],break:[{break:["normal","words","all","keep"]}],hyphens:[{hyphens:["none","manual","auto"]}],content:[{content:["none",Te]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[x]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...we(),xN]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",AN]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},EN]}],"bg-color":[{bg:[e]}],"gradient-from-pos":[{from:[k]}
vendor: 5,186 bytes, line 50
50],"gradient-via-pos":[{via:[k]}],"gradient-to-pos":[{to:[k]}],"gradient-from":[{from:[v]}],"gradient-via":[{via:[v]}],"gradient-to":[{to:[v]}],rounded:[{rounded:[a]}],"rounded-s":[{"rounded-s":[a]}],"rounded-e":[{"rounded-e":[a]}],"rounded-t":[{"rounded-t":[a]}],"rounded-r":[{"rounded-r":[a]}],"rounded-b":[{"rounded-b":[a]}],"rounded-l":[{"rounded-l":[a]}],"rounded-ss":[{"rounded-ss":[a]}],"rounded-se":[{"rounded-se":[a]}],"rounded-ee":[{"rounded-ee":[a]}],"rounded-es":[{"rounded-es":[a]}],"rounded-tl":[{"rounded-tl":[a]}],"rounded-tr":[{"rounded-tr":[a]}],"rounded-br":[{"rounded-br":[a]}],"rounded-bl":[{"rounded-bl":[a]}],"border-w":[{border:[c]}],"border-w-x":[{"border-x":[c]}],"border-w-y":[{"border-y":[c]}],"border-w-s":[{"border-s":[c]}],"border-w-e":[{"border-e":[c]}],"border-w-t":[{"border-t":[c]}],"border-w-r":[{"border-r":[c]}],"border-w-b":[{"border-b":[c]}],"border-w-l":[{"border-l":[c]}],"border-opacity":[{"border-opacity":[x]}],"border-style":[{border:[...pe(),"hidden"]}],"divide-x":[{"divide-x":[c]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[c]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[x]}],"divide-style":[{divide:pe()}],"border-color":[{border:[s]}],"border-color-x":[{"border-x":[s]}],"border-color-y":[{"border-y":[s]}],"border-color-s":[{"border-s":[s]}],"border-color-e":[{"border-e":[s]}],"border-color-t":[{"border-t":[s]}],"border-color-r":[{"border-r":[s]}],"border-color-b":[{"border-b":[s]}],"border-color-l":[{"border-l":[s]}],"divide-color":[{divide:[s]}],"outline-style":[{outline:["",...pe()]}],"outline-offset":[{"outline-offset":[mr,Te]}],"outline-w":[{outline:[mr,Xr]}],"outline-color":[{outline:[e]}],"ring-w":[{ring:ye()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[e]}],"ring-opacity":[{"ring-opacity":[x]}],"ring-offset-w":[{"ring-offset":[mr,Xr]}],"ring-offset-color":[{"ring-offset":[e]}],shadow:[{shadow:["","inner","none",Zr,TN]}],"shadow-color":[{shadow:[Qs]}],opacity:[{opacity:[x]}],"mix-blend":[{"mix-blend":[...ie(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":ie()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[o]}],contrast:[{contrast:[h]}],"drop-shadow":[{"drop-shadow":["","none",Zr,Te]}],grayscale:[{grayscale:[p]}],"hue-rotate":[{"hue-rotate":[f]}],invert:[{invert:[m]}],saturate:[{saturate:[P]}],sepia:[{sepia:[O]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[o]}],"backdrop-contrast":[{"backdrop-contrast":[h]}],"backdrop-grayscale":[{"backdrop-grayscale":[p]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[f]}],"backdrop-invert":[{"backdrop-invert":[m]}],"backdrop-opacity":[{"backdrop-opacity":[x]}],"backdrop-saturate":[{"backdrop-saturate":[P]}],"backdrop-sepia":[{"backdrop-sepia":[O]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[l]}],"border-spacing-x":[{"border-spacing-x":[l]}],"border-spacing-y":[{"border-spacing-y":[l]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",Te]}],duration:[{duration:z()}],ease:[{ease:["linear","in","out","in-out",Te]}],delay:[{delay:z()}],animate:[{animate:["none","spin","ping","pulse","bounce",Te]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[I]}],"scale-x":[{"scale-x":[I]}],"scale-y":[{"scale-y":[I]}],rotate:[{rotate:[Js,Te]}],"translate-x":[{"translate-x":[$]}],"translate-y":[{"translate-y":[$]}],"skew-x":[{"skew-x":[D]}],"skew-y":[{"skew-y":[D]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",Te]}],accent:[{accent:["auto",e]}],appearance:[{appearance:["none","auto"]}],cursor:[{cursor:["auto","default","pointer","wait","text","move","help","not-allowed","none","context-menu","progress","cell","crosshair","vertical-text","alias","copy","no-drop","grab","grabbing","all-scroll","col-resize","row-resize","n-resize","e-resize","s-resize","w-resize","ne-resize","nw-resize","se-resize","sw-resize","ew-resize","ns-resize","nesw-resize","nwse-resize","zoom-in","zoom-out",Te]}],"caret-color":[{caret:[e]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":G()}],"scroll-mx":[{"scroll-mx":G()}],"scroll-my":[{"scroll-my":G()}],"scroll-ms":[{"scroll-ms":G()}],"scroll-me":[{"scroll-me":G()}],"scroll-mt":[{"scroll-mt":G()}],"scroll-mr":[{"scroll-mr":G()}],"scroll-mb":[{"scroll-mb":G()}],"scroll-ml":[{"scroll-ml":G()}],"scroll-p":[{"scroll-p":G()}],"scroll-px":[{"scroll-px":G()}],"scroll-py":[{"scroll-py":G()}],"scroll-ps":[{"scroll-ps":G()}],"scroll-pe":[{"scroll-pe":G()}],"scroll-pt":[{"scroll-pt":G()}],"scroll-pr":[{"scroll-pr":G()}],"scroll-pb":[{"scroll-pb":G()}],"scroll-pl":[{"scroll-pl":G()}],"snap-align":[{snap:["start","end","center","align-none"]}],"snap-stop":[{snap:["normal","always"]}],"snap-type":[{snap:["none","x","y","both"]}],"snap-strictness":[{snap:["mandatory","proximity"]}
50],touch:[{touch:["auto","none","manipulation"]}],"touch-x":[{"touch-pan":["x","left","right"]}],"touch-y":[{"touch-pan":["y","up","down"]}],"touch-pz":["touch-pinch-zoom"],select:[{select:["none","text","all","auto"]}],"will-change":[{"will-change":["auto","scroll","contents","transform",Te]}],fill:[{fill:[e,"none"]}],"stroke-w":[{stroke:[mr,Xr,_h]}],stroke:[{stroke:[e,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","none"]}]},conflictingClassGroups:{overflow:["overflow-x","overflow-y"],overscroll:["overscroll-x","overscroll-y"],inset:["inset-x","inset-y","start","end","top","right","bottom","left"],"inset-x":["right","left"],"inset-y":["top","bottom"],flex:["basis","grow","shrink"],gap:["gap-x","gap-y"],p:["px","py","ps","pe","pt","pr","pb","pl"],px:["pr","pl"],py:["pt","pb"],m:["mx","my","ms","me","mt","mr","mb","ml"],mx:["mr","ml"],my:["mt","mb"],size:["w","h"],"font-size":["leading"],"fvn-normal":["fvn-ordinal","fvn-slashed-zero","fvn-figure","fvn-spacing","fvn-fraction"],"fvn-ordinal":["fvn-normal"],"fvn-slashed-zero":["fvn-normal"],"fvn-figure":["fvn-normal"],"fvn-spacing":["fvn-normal"],"fvn-fraction":["fvn-normal"],"line-clamp":["display","overflow"],rounded:["rounded-s","rounded-e","rounded-t","rounded-r","rounded-b","rounded-l","rounded-ss","rounded-se","rounded-ee","rounded-es","rounded-tl","rounded-tr","rounded-br","rounded-bl"],"rounded-s":["rounded-ss","rounded-es"],"rounded-e":["rounded-se","rounded-ee"],"rounded-t":["rounded-tl","rounded-tr"],"rounded-r":["rounded-tr","rounded-br"],"rounded-b":["rounded-br","rounded-bl"],"rounded-l":["rounded-tl","rounded-bl"],"border-spacing":["border-spacing-x","border-spacing-y"],"border-w":["border-w-s","border-w-e","border-w-t","border-w-r","border-w-b","border-w-l"],"border-w-x":["border-w-r","border-w-l"],"border-w-y":["border-w-t","border-w-b"],"border-color":["border-color-s","border-color-e","border-color-t","border-color-r","border-color-b","border-color-l"],"border-color-x":["border-color-r","border-color-l"],"border-color-y":["border-color-t","border-color-b"],"scroll-m":["scroll-mx","scroll-my","scroll-ms","scroll-me","scroll-mt","scroll-mr","scroll-mb","scroll-ml"],"scroll-mx":["scroll-mr","scroll-ml"],"scroll-my":["scroll-mt","scroll-mb"],"scroll-p":["scroll-px","scroll-py","scroll-ps","scroll-pe","scroll-pt","scroll-pr","scroll-pb","scroll-pl"],"scroll-px":["scroll-pr","scroll-pl"],"scroll-py":["scroll-pt","scroll-pb"],touch:["touch-x","touch-y","touch-pz"],"touch-x":["touch"],"touch-y":["touch"],"touch-pz":["touch"]},conflictingClassGroupModifiers:{"font-size":["leading"]}}},ON=pN(RN);function Je(...e){return ON(TS(e))}const LN=eN,zN=_.forwardRef(({className:e,sideOffset:t=4,...n},o)=>C.jsx(_S,{ref:o,sideOffset:t,className:Je("z-50 overflow-hidden rounded-md bg-primary px-3 py-1.5 text-sm text-primary-foreground shadow-lg animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative","before:content-[''] before:absolute before:left-0 before:top-1/2 before:-translate-x-1/2 before:-translate-y-1/2 before:rotate-45 before:w-2 before:h-2 before:bg-primary",e),style:{boxShadow:"0 10px 40px -10px rgba(147, 51, 234, 0.4)"},...n}));zN.displayName=_S.displayName;const NN=1,MN=1e6;let Eh=0;function DN(){return Eh=(Eh+1)%Number.MAX_SAFE_INTEGER,Eh.toString()}const Th=new Map,Hy=e=>{if(Th.has(e))return;const t=setTimeout(()=>{Th.delete(e),ia({type:"REMOVE_TOAST",toastId:e})},MN);Th.set(e,t)},jN=(e,t)=>{switch(t.type){case"ADD_TOAST":return{...e,toasts:[t.toast,...e.toasts].slice(0,NN)};case"UPDATE_TOAST":return{...e,toasts:e.toasts.map(n=>n.id===t.toast.id?{...n,...t.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=t;return n?Hy(n):e.toasts.forEach(o=>{Hy(o.id)}),{...e,toasts:e.toasts.map(o=>o.id===n||n===void 0?{...o,open:!1}:o)}}case"REMOVE_TOAST":return t.toastId===void 0?{...e,toasts:[]}:{...e,toasts:e.toasts.filter(n=>n.id!==t.toastId)}}},vu=[];let yu={toasts:[]};function ia(e){yu=jN(yu,e),vu.forEach(t=>{t(yu)})}function FN({...e}){const t=DN(),n=s=>ia({type:"UPDATE_TOAST",toast:{...s,id:t}}
50),o=()=>ia({type:"DISMISS_TOAST",toastId:t});return ia({type:"ADD_TOAST",toast:{...e,id:t,open:!0,onOpenChange:s=>{s||o()}}}),{id:t,dismiss:o,update:n}}function $N(){const[e,t]=_.useState(yu);return _.useEffect(()=>(vu.push(t),()=>{const n=vu.indexOf(t);n>-1&&vu.splice(n,1)}),[e]),{...e,toast:FN,dismiss:n=>ia({type:"DISMISS_TOAST",toastId:n})}}function VN(e){const t=e+"CollectionProvider",[n,o]=es(t),[s,a]=n(t,{collectionRef:{current:null},itemMap:new Map}),l=S=>{const{scope:b,children:x}=S,E=Z.useRef(null),P=Z.useRef(new Map).current;return C.jsx(s,{scope:b,itemMap:P,collectionRef:E,children:x})};l.displayName=t;const c=e+"CollectionSlot",h=ga(c),p=Z.forwardRef((S,b)=>{const{scope:x,children:E}=S,P=a(c,x),I=_t(b,P.collectionRef);return C.jsx(h,{ref:I,children:E})});p.displayName=c;const f=e+"CollectionItemSlot",m="data-radix-collection-item",y=ga(f),v=Z.forwardRef((S,b)=>{const{scope:x,children:E,...P}=S,I=Z.useRef(null),O=_t(b,I),D=a(f,x);return Z.useEffect(()=>(D.itemMap.set(I,{ref:I,...P}),()=>{D.itemMap.delete(I)})),C.jsx(y,{[m]:"",ref:O,children:E})});v.displayName=f;function k(S){const b=a(e+"CollectionConsumer",S);return Z.useCallback(()=>{const E=b.collectionRef.current;if(!E)return[];const P=Array.from(E.querySelectorAll(`[${m}]`));return Array.from(b.itemMap.values()).sort((D,M)=>P.indexOf(D.ref.current)-P.indexOf(M.ref.current))},[b.collectionRef,b.itemMap])}return[{Provider:l,Slot:p,ItemSlot:v},k,o]}var cf="ToastProvider",[df,UN,BN]=VN("Toast"),[LS]=es("Toast",[BN]),[WN,oc]=LS(cf),zS=e=>{const{__scopeToast:t,label:n="Notification",duration:o=5e3,swipeDirection:s="right",swipeThreshold:a=50,children:l}=e,[c,h]=_.useState(null),[p,f]=_.useState(0),m=_.useRef(!1),y=_.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${cf}\`. Expected non-empty \`string\`.`),C.jsx(df.Provider,{scope:t,children:C.jsx(WN,{scope:t,label:n,duration:o,swipeDirection:s,swipeThreshold:a,toastCount:p,viewport:c,onViewportChange:h,onToastAdd:_.useCallback(()=>f(v=>v+1),[]),onToastRemove:_.useCallback(()=>f(v=>v-1),[]),isFocusedToastEscapeKeyDownRef:m,isClosePausedRef:y,children:l})})};zS.displayName=cf;var NS="ToastViewport",qN=["F8"],mp="toast.viewportPause",gp="toast.viewportResume",MS=_.forwardRef((e,t)=>{const{__scopeToast:n,hotkey:o=qN,label:s="Notifications ({hotkey})",...a}=e,l=oc(NS,n),c=UN(n),h=_.useRef(null),p=_.useRef(null),f=_.useRef(null),m=_.useRef(null),y=_t(t,m,l.onViewportChange),v=o.join("+").replace(/Key/g,"").replace(/Digit/g,""),k=l.toastCount>0;_.useEffect(()=>{const b=x=>{o.length!==0&&o.every(P=>x[P]||x.code===P)&&m.current?.focus()};return document.addEventListener("keydown",b),()=>document.removeEventListener("keydown",b)},[o]),_.useEffect(()=>{const b=h.current,x=m.current;if(k&&b&&x){const E=()=>{if(!l.isClosePausedRef.current){const D=new CustomEvent(mp);x.dispatchEvent(D),l.isClosePausedRef.current=!0}},P=()=>{if(l.isClosePausedRef.current){const D=new CustomEvent(gp);x.dispatchEvent(D),l.isClosePausedRef.current=!1}},I=D=>{!b.contains(D.relatedTarget)&&P()},O=()=>{b.contains(document.activeElement)||P()};return b.addEventListener("focusin",E),b.addEventListener("focusout",I),b.addEventListener("pointermove",E),b.addEventListener("pointerleave",O),window.addEventListener("blur",E),window.addEventListener("focus",P),()=>{b.removeEventListener("focusin",E),b.removeEventListener("focusout",I),b.removeEventListener("pointermove",E),b.removeEventListener("pointerleave",O),window.removeEventListener("blur",E),window.removeEventListener("focus",P)}}},[k,l.isClosePausedRef]);const S=_.useCallback(({tabbingDirection:b})=>{const E=c().map(P=>{const I=P.ref.current,O=[I,...oM(I)];return b==="forwards"?O:O.reverse()});return(b==="forwards"?E.reverse():E).flat()},[c]);return _.useEffect(()=>{const b=m.current;if(b){const x=E=>{const P=E.altKey||E.ctrlKey||E.metaKey;if(E.key==="Tab"&&!P){const O=document.activeElement,D=E.shiftKey;if(E.target===b&&D){p.current?.focus();return}const W=S({tabbingDirection:D?"backwards":"forwards"}),ee=W.findIndex(te=>te===O);Ph(W.slice(ee+1))?E.preventDefault():D?p.current?.focus():f.current?.focus()}};return b.addEventListener("keydown",x),()=>b.removeEventListener("keydown",x)}},[c,S]),C.jsxs(o1,{ref:h,role:"region","aria-label":s.replace("{hotkey}",v),tabIndex:-1,style:{pointerEvents:k?void 0:"none"},children:[k&&C.jsx(vp,{ref:p,onFocusFromOutsideViewport:()=>{const b=S({tabbingDirection:"forwards"});Ph(b)}}),C.jsx(df.Slot,{scope:n,children:C.jsx(Qe.ol,{tabIndex:-1,...a,ref:y})}),k&&C.jsx(vp,{ref:f,onFocusFromOutsideViewport:()=>{const b=S({tabbingDirection:"backwards"});Ph(b)}})]})});MS.displayName=NS;var DS="ToastFocusProxy",vp=_.forwardRef((e,t)=>
50{const{__scopeToast:n,onFocusFromOutsideViewport:o,...s}=e,a=oc(DS,n);return C.jsx(tc,{"aria-hidden":!0,tabIndex:0,...s,ref:t,style:{position:"fixed"},onFocus:l=>{const c=l.relatedTarget;!a.viewport?.contains(c)&&o()}})});vp.displayName=DS;var _a="Toast",GN="toast.swipeStart",HN="toast.swipeMove",KN="toast.swipeCancel",YN="toast.swipeEnd",jS=_.forwardRef((e,t)=>{const{forceMount:n,open:o,defaultOpen:s,onOpenChange:a,...l}=e,[c,h]=af({prop:o,defaultProp:s??!0,onChange:a,caller:_a});return C.jsx(rs,{present:n||c,children:C.jsx(XN,{open:c,...l,ref:t,onClose:()=>h(!1),onPause:er(e.onPause),onResume:er(e.onResume),onSwipeStart:Ge(e.onSwipeStart,p=>{p.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:Ge(e.onSwipeMove,p=>{const{x:f,y:m}=p.detail.delta;p.currentTarget.setAttribute("data-swipe","move"),p.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${f}px`),p.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${m}px`)}),onSwipeCancel:Ge(e.onSwipeCancel,p=>{p.currentTarget.setAttribute("data-swipe","cancel"),p.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),p.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),p.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),p.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:Ge(e.onSwipeEnd,p=>{const{x:f,y:m}=p.detail.delta;p.currentTarget.setAttribute("data-swipe","end"),p.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),p.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),p.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${f}px`),p.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${m}px`),h(!1)})})})});jS.displayName=_a;var[JN,QN]=LS(_a,{onClose(){}}),XN=_.forwardRef((e,t)=>{const{__scopeToast:n,type:o="foreground",duration:s,open:a,onClose:l,onEscapeKeyDown:c,onPause:h,onResume:p,onSwipeStart:f,onSwipeMove:m,onSwipeCancel:y,onSwipeEnd:v,...k}=e,S=oc(_a,n),[b,x]=_.useState(null),E=_t(t,Q=>x(Q)),P=_.useRef(null),I=_.useRef(null),O=s||S.duration,D=_.useRef(0),M=_.useRef(O),$=_.useRef(0),{onToastAdd:W,onToastRemove:ee}=S,te=er(()=>{b?.contains(document.activeElement)&&S.viewport?.focus(),l()}),G=_.useCallback(Q=>{!Q||Q===1/0||(window.clearTimeout($.current),D.current=new Date().getTime(),$.current=window.setTimeout(te,Q))},[te]);_.useEffect(()=>{const Q=S.viewport;if(Q){const we=()=>{G(M.current),p?.()},pe=()=>{const ie=new Date().getTime()-D.current;M.current=M.current-ie,window.clearTimeout($.current),h?.()};return Q.addEventListener(mp,pe),Q.addEventListener(gp,we),()=>{Q.removeEventListener(mp,pe),Q.removeEventListener(gp,we)}}},[S.viewport,O,h,p,G]),_.useEffect(()=>{a&&!S.isClosePausedRef.current&&G(O)},[a,O,S.isClosePausedRef,G]),_.useEffect(()=>(W(),()=>ee()),[W,ee]);const ye=_.useMemo(()=>b?qS(b):null,[b]);return S.viewport?C.jsxs(C.Fragment,{children:[ye&&C.jsx(ZN,{__scopeToast:n,role:"status","aria-live":o==="foreground"?"assertive":"polite","aria-atomic":!0,children:ye}),C.jsx(JN,{scope:n,onClose:te,children:ka.createPortal(C.jsx(df.ItemSlot,{scope:n,children:C.jsx(r1,{asChild:!0,onEscapeKeyDown:Ge(c,()=>{S.isFocusedToastEscapeKeyDownRef.current||te(),S.isFocusedToastEscapeKeyDownRef.current=!1}),children:C.jsx(Qe.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":a?"open":"closed","data-swipe-direction":S.swipeDirection,...k,ref:E,style:{userSelect:"none",touchAction:"none",...e.style},onKeyDown:Ge(e.onKeyDown,Q=>{Q.key==="Escape"&&(c?.(Q.nativeEvent),Q.nativeEvent.defaultPrevented||(S.isFocusedToastEscapeKeyDownRef.current=!0,te()))}),onPointerDown:Ge(e.onPointerDown,Q=>{Q.button===0&&(P.current={x:Q.clientX,y:Q.clientY})}),onPointerMove:Ge(e.onPointerMove,Q=>{if(!P.current)return;const we=Q.clientX-P.current.x,pe=Q.clientY-P.current.y,ie=!!I.current,B=["left","right"].includes(S.swipeDirection),q=["left","up"].includes(S.swipeDirection)?Math.min:Math.max,Y=B?q(0,we):0,z=B?0:q(0,pe),U=Q.pointerType==="touch"?10:2,oe={x:Y,y:z},se={originalEvent:Q,delta:oe};ie?(I.current=oe,ou(HN,m,se,{discrete:!1})):Ky(oe,S.swipeDirection,U)?(I.current=oe,ou(GN,f,se,{discrete:!1}),Q.target.setPointerCapture(Q.pointerId)):(Math.abs(we)>U||Math.abs(pe)>U)&&(P.current=null)}),onPointerUp:Ge(e.onPointerUp,Q=>{const we=I.current,pe=Q.target;if(pe.hasPointerCapture(Q.pointerId)&&pe.releasePointerCapture(Q.pointerId),I.current=null,P.current=null,we){const ie=Q.currentTarget,B={originalEvent:Q,delta:we};Ky(we,S.swipeDirection,S.swipeThreshold)?ou(YN,v,B,{discrete:!0}):ou(KN,y,B,{discrete:!0}),ie.addEventListener("click",q=>q.preventDefault(),{once:!0})}})})})}),S.viewport)})]}):null}),ZN=e=>{const{__scopeToast:t,children:n,...o}=e,s=oc(_a,t),[a,l]=_.useState(!1),[c,h]=_.useState(!1);return nM(()=>l(!0)),_.useEffect(()=>{const p=window.setTimeout(()=>h(!0),1e3);return()=>window.clearTimeout(p)},[]),c?null:C.jsx(sf,{asChild:!0,children:C.jsx(tc,{...o,children:a&&C.jsxs(C.Fragment,{children:[s.label," ",n]})})})},eM="ToastTitle",FS=_.forwardRef((e,t)=>
50{const{__scopeToast:n,...o}=e;return C.jsx(Qe.div,{...o,ref:t})});FS.displayName=eM;var tM="ToastDescription",$S=_.forwardRef((e,t)=>{const{__scopeToast:n,...o}=e;return C.jsx(Qe.div,{...o,ref:t})});$S.displayName=tM;var VS="ToastAction",US=_.forwardRef((e,t)=>{const{altText:n,...o}=e;return n.trim()?C.jsx(WS,{altText:n,asChild:!0,children:C.jsx(hf,{...o,ref:t})}):(console.error(`Invalid prop \`altText\` supplied to \`${VS}\`. Expected non-empty \`string\`.`),null)});US.displayName=VS;var BS="ToastClose",hf=_.forwardRef((e,t)=>{const{__scopeToast:n,...o}=e,s=QN(BS,n);return C.jsx(WS,{asChild:!0,children:C.jsx(Qe.button,{type:"button",...o,ref:t,onClick:Ge(e.onClick,s.onClose)})})});hf.displayName=BS;var WS=_.forwardRef((e,t)=>{const{__scopeToast:n,altText:o,...s}=e;return C.jsx(Qe.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":o||void 0,...s,ref:t})});function qS(e){const t=[];return Array.from(e.childNodes).forEach(o=>{if(o.nodeType===o.TEXT_NODE&&o.textContent&&t.push(o.textContent),rM(o)){const s=o.ariaHidden||o.hidden||o.style.display==="none",a=o.dataset.radixToastAnnounceExclude==="";if(!s)if(a){const l=o.dataset.radixToastAnnounceAlt;l&&t.push(l)}else t.push(...qS(o))}}),t}function ou(e,t,n,{discrete:o}){const s=n.originalEvent.currentTarget,a=new CustomEvent(e,{bubbles:!0,cancelable:!0,detail:n});t&&s.addEventListener(e,t,{once:!0}),o?q0(s,a):s.dispatchEvent(a)}var Ky=(e,t,n=0)=>{const o=Math.abs(e.x),s=Math.abs(e.y),a=o>s;return t==="left"||t==="right"?a&&o>n:!a&&s>n};function nM(e=()=>{}){const t=er(e);kr(()=>{let n=0,o=0;return n=window.requestAnimationFrame(()=>o=window.requestAnimationFrame(t)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(o)}},[t])}function rM(e){return e.nodeType===e.ELEMENT_NODE}function oM(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const s=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||s?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function Ph(e){const t=document.activeElement;return e.some(n=>n===t?!0:(n.focus(),document.activeElement!==t))}var iM=zS,GS=MS,HS=jS,KS=FS,YS=$S,JS=US,QS=hf;const Yy=e=>typeof e=="boolean"?`${e}`:e===0?"0":e,Jy=TS,pf=(e,t)=>n=>{var o;if(t?.variants==null)return Jy(e,n?.class,n?.className);const{variants:s,defaultVariants:a}=t,l=Object.keys(s).map(p=>{const f=n?.[p],m=a?.[p];if(f===null)return null;const y=Yy(f)||Yy(m);return s[p][y]}),c=n&&Object.entries(n).reduce((p,f)=>{let[m,y]=f;return y===void 0||(p[m]=y),p},{}),h=t==null||(o=t.compoundVariants)===null||o===void 0?void 0:o.reduce((p,f)=>{let{class:m,className:y,...v}=f;return Object.entries(v).every(k=>{let[S,b]=k;return Array.isArray(b)?b.includes({...a,...c}[S]):{...a,...c}[S]===b})?[...p,m,y]:p},[]);return Jy(e,l,h,n?.class,n?.className)};const sM=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),XS=(...e)=>e.filter((t,n,o)=>!!t&&t.trim()!==""&&o.indexOf(t)===n).join(" ").trim();var aM={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const lM=_.forwardRef(({color:e="currentColor",size:t=24,strokeWidth:n=2,absoluteStrokeWidth:o,className:s="",children:a,iconNode:l,...c},h)=>_.createElement("svg",{ref:h,...aM,width:t,height:t,stroke:e,strokeWidth:o?Number(n)*24/Number(t):n,className:XS("lucide",s),...c},[...l.map(([p,f])=>_.createElement(p,f)),...Array.isArray(a)?a:[a]]));const uM=(e,t)=>{const n=_.forwardRef(({className:o,...s},a)=>_.createElement(lM,{ref:a,iconNode:t,className:XS(`lucide-${sM(e)}`,o),...s}));return n.displayName=`${e}`,n};const ff=uM("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]),cM=iM,ZS=_.forwardRef(({className:e,...t},n)=>C.jsx(GS,{ref:n,className:Je("fixed top-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-0 sm:right-0 sm:top-auto sm:flex-col md:max-w-[420px]",e),...t}));ZS.displayName=GS.displayName;const dM=pf("group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[swipe=end]:animate-out data-[state=closed]:fade-out-80 data-[state=closed]:slide-out-to-right-full data-[state=open]:slide-in-from-top-full data-[state=open]:sm:slide-in-from-bottom-full",{variants:{variant:{default:"border bg-background text-foreground",destructive:"destructive group border-destructive bg-destructive text-destructive-foreground"}},defaultVariants:{variant:"default"}}),ek=_.forwardRef(({className:e,variant:t,...n},o)=>C.jsx(HS,{ref:o,className:Je(dM({variant:t}),e),...n}));ek.displayName=HS.displayName;const hM=_.forwardRef(({className:e,...t},n)=>C.jsx(JS,{ref:n,className:Je("inline-flex h-8 shrink-0 items-center justify-center rounded-md border bg-transparent px-3 text-sm font-medium ring-offset-background transition-colors group-[.destructive]:border-muted/40 hover:bg-secondary group-[.destructive]:hover:border-destructive/30 group-[.destructive]:hover:bg-destructive group-[.destructive]:hover:text-destructive-foreground focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 group-[.destructive]:focus:ring-destructive disabled:pointer-events-none disabled:opacity-50",e),...t}));hM.displayName=JS.displayName;const tk=_.forwardRef(({className:e,...t},n)=>C.jsx(QS,{ref:n,className:Je("absolute right-2 top-2 rounded-md p-1 text-foreground
50/50 opacity-0 transition-opacity group-hover:opacity-100 group-[.destructive]:text-red-300 hover:text-foreground group-[.destructive]:hover:text-red-50 focus:opacity-100 focus:outline-none focus:ring-2 group-[.destructive]:focus:ring-red-400 group-[.destructive]:focus:ring-offset-red-600",e),"toast-close":"",...t,children:C.jsx(ff,{className:"h-4 w-4"})}));tk.displayName=QS.displayName;const nk=_.forwardRef(({className:e,...t},n)=>C.jsx(KS,{ref:n,className:Je("text-sm font-semibold",e),...t}));nk.displayName=KS.displayName;const rk=_.forwardRef(({className:e,...t},n)=>C.jsx(YS,{ref:n,className:Je("text-sm opacity-90",e),...t}));rk.displayName=YS.displayName;function pM(){const{toasts:e}=$N();return C.jsxs(cM,{children:[e.map(function({id:t,title:n,description:o,action:s,...a}){return C.jsxs(ek,{...a,children:[C.jsxs("div",{className:"grid gap-1",children:[n&&C.jsx(nk,{children:n}),o&&C.jsx(rk,{children:o})]}),s,C.jsx(tk,{})]},t)}),C.jsx(ZS,{})]})}var Qy=["light","dark"],fM="(prefers-color-scheme: dark)",mM=_.createContext(void 0),gM={setTheme:e=>{},themes:[]},vM=()=>{var e;return(e=_.useContext(mM))!=null?e:gM};_.memo(({forcedTheme:e,storageKey:t,attribute:n,enableSystem:o,enableColorScheme:s,defaultTheme:a,value:l,attrs:c,nonce:h})=>{let p=a==="system",f=n==="class"?`var d=document.documentElement,c=d.classList;${`c.remove(${c.map(k=>`'${k}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,m=s?Qy.includes(a)&&a?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${a}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",y=(k,S=!1,b=!0)=>{let x=l?l[k]:k,E=S?k+"|| ''":`'${x}'`,P="";return s&&b&&!S&&Qy.includes(k)&&(P+=`d.style.colorScheme = '${k}';`),n==="class"?S||x?P+=`c.add(${E})`:P+="null":x&&(P+=`d[s](n,${E})`),P},v=e?`!function(){${f}${y(e)}}()`:o?`!function(){try{${f}var e=localStorage.getItem('${t}');if('system'===e||(!e&&${p})){var t='${fM}',m=window.matchMedia(t);if(m.media!==t||m.matches){${y("dark")}}else{${y("light")}}}else if(e){${l?`var x=${JSON.stringify(l)};`:""}${y(l?"x[e]":"e",!0)}}${p?"":"else{"+y(a,!1,!1)+"}"}${m}}catch(e){}}()`:`!function(){try{${f}var e=localStorage.getItem('${t}');if(e){${l?`var x=${JSON.stringify(l)};`:""}${y(l?"x[e]":"e",!0)}}else{${y(a,!1,!1)};}${m}}catch(t){}}();`;return _.createElement("script",{nonce:h,dangerouslySetInnerHTML:{__html:v}})});var yM=e=>{switch(e){case"success":return SM;case"info":return AM;case"warning":return kM;case"error":return xM;default:return null}},wM=Array(12).fill(0),bM=({visible:e,className:t})=>Z.createElement("div",{className:["sonner-loading-wrapper",t].filter(Boolean).join(" "),"data-visible":e},Z.createElement("div",{className:"sonner-spinner"},wM.map((n,o)=>Z.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${o}`})))),SM=Z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Z.createElement("path",{fillRule:"evenodd",d:"M10 18a8 8 0 100-16 8 8 0 000 16zm3.857-9.809a.75.75 0 00-1.214-.882l-3.483 4.79-1.88-1.88a.75.75 0 10-1.06 1.061l2.5 2.5a.75.75 0 001.137-.089l4-5.5z",clipRule:"evenodd"})),kM=Z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},Z.createElement("path",{fillRule:"evenodd",d:"M9.401 3.003c1.155-2 4.043-2 5.197 0l7.355 12.748c1.154 2-.29 4.5-2.599 4.5H4.645c-2.309 0-3.752-2.5-2.598-4.5L9.4 3.003zM12 8.25a.75.75 0 01.75.75v3.75a.75.75 0 01-1.5 0V9a.75.75 0 01.75-.75zm0 8.25a.75.75 0 100-1.5.75.75 0 000 1.5z",clipRule:"evenodd"})),AM=Z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Z.createElement("path",{fillRule:"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 9a.75.75 0 000 1.5h.253a.25.25 0 01.244.304l-.459 2.066A1.75 1.75 0 0010.747 15H11a.75.75 0 000-1.5h-.253a.25.25 0 01-.244-.304l.459-2.066A1.75 1.75 0 009.253 9H9z",clipRule:"evenodd"})),xM=Z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},Z.createElement("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-8-5a.75.75 0 01.75.75v4.5a.75.75 0 01-1.5 0v-4.5A.75.75 0 0110 5zm0 10a1 1 0 100-2 1 1 0 000 2z",clipRule:"evenodd"})),_M=Z.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",width:"12",height:"12",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"},Z.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),Z.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),EM=()=>{let[e,t]=Z.useState(document.hidden);return Z.useEffect(()=>{let n=()=>{t(document.hidden)};
50return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),e},yp=1,TM=class{constructor(){this.subscribe=e=>(this.subscribers.push(e),()=>{let t=this.subscribers.indexOf(e);this.subscribers.splice(t,1)}),this.publish=e=>{this.subscribers.forEach(t=>t(e))},this.addToast=e=>{this.publish(e),this.toasts=[...this.toasts,e]},this.create=e=>{var t;let{message:n,...o}=e,s=typeof e?.id=="number"||((t=e.id)==null?void 0:t.length)>0?e.id:yp++,a=this.toasts.find(c=>c.id===s),l=e.dismissible===void 0?!0:e.dismissible;return this.dismissedToasts.has(s)&&this.dismissedToasts.delete(s),a?this.toasts=this.toasts.map(c=>c.id===s?(this.publish({...c,...e,id:s,title:n}),{...c,...e,id:s,dismissible:l,title:n}):c):this.addToast({title:n,...o,dismissible:l,id:s}),s},this.dismiss=e=>(this.dismissedToasts.add(e),e||this.toasts.forEach(t=>{this.subscribers.forEach(n=>n({id:t.id,dismiss:!0}))}),this.subscribers.forEach(t=>t({id:e,dismiss:!0})),e),this.message=(e,t)=>this.create({...t,message:e}),this.error=(e,t)=>this.create({...t,message:e,type:"error"}),this.success=(e,t)=>this.create({...t,type:"success",message:e}),this.info=(e,t)=>this.create({...t,type:"info",message:e}),this.warning=(e,t)=>this.create({...t,type:"warning",message:e}),this.loading=(e,t)=>
50this.create({...t,type:"loading",message:e}),this.promise=(e,t)=>{if(!t)return;let n;t.loading!==void 0&&(n=this.create({...t,promise:e,type:"loading",message:t.loading,description:typeof t.description!="function"?t.description:void 0}));let o=e instanceof Promise?e:e(),s=n!==void 0,a,l=o.then(async h=>{if(a=["resolve",h],Z.isValidElement(h))s=!1,this.create({id:n,type:"default",message:h});else if(CM(h)&&!h.ok){s=!1;let p=typeof t.error=="function"?await t.error(`HTTP error! status: ${h.status}`):t.error,f=typeof t.description=="function"?await t.description(`HTTP error! status: ${h.status}`):t.description;this.create({id:n,type:"error",message:p,description:f})}else if(t.success!==void 0){s=!1;let p=typeof t.success=="function"?await t.success(h):t.success,f=typeof t.description=="function"?await t.description(h):t.description;this.create({id:n,type:"success",message:p,description:f})}}).catch(async h=>{if(a=["reject",h],t.error!==void 0){s=!1;let p=typeof t.error=="function"?await t.error(h):t.error,f=typeof t.description=="function"?await t.description(h):t.description;this.create({id:n,type:"error",message:p,description:f})}}).finally(()=>{var h;s&&(this.dismiss(n),n=void 0),(h=t.finally)==null||h.call(t)}),c=()=>new Promise((h,p)=>l.then(()=>a[0]==="reject"?p(a[1]):h(a[1])).catch(p));return typeof n!="string"&&typeof n!="number"?{unwrap:c}:Object.assign(n,{unwrap:c})},this.custom=(e,t)=>{let n=t?.id||yp++;return this.create({jsx:e(n),id:n,...t}),n},this.getActiveToasts=()=>this.toasts.filter(e=>!this.dismissedToasts.has(e.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},Qt=new TM,PM=(e,t)=>{let n=t?.id||yp++;return Qt.addToast({title:e,...t,id:n}),n},CM=e=>e&&typeof e=="object"&&"ok"in e&&typeof e.ok=="boolean"&&"status"in e&&typeof e.status=="number",IM=PM,RM=()=>Qt.toasts,OM=()=>Qt.getActiveToasts();Object.assign(IM,{success:Qt.success,info:Qt.info,warning:Qt.warning,error:Qt.error,custom:Qt.custom,message:Qt.message,promise:Qt.promise,dismiss:Qt.dismiss,loading:Qt.loading},{getHistory:RM,getToasts:OM});function LM(e,{insertAt:t}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css",t==="top"&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=e:o.appendChild(document.createTextNode(e))}LM(`:where(html[dir="ltr"]),:where([data-sonner-toaster][dir="ltr"]){--toast-icon-margin-start: -3px;--toast-icon-margin-end: 4px;--toast-svg-margin-start: -1px;--toast-svg-margin-end: 0px;--toast-button-margin-start: auto;--toast-button-margin-end: 0;--toast-close-button-start: 0;--toast-close-button-end: unset;--toast-close-button-transform: translate(-35%, -35%)}:where(html[dir="rtl"]),:where([data-sonner-toaster][dir="rtl"]){--toast-icon-margin-start: 4px;--toast-icon-margin-end: -3px;--toast-svg-margin-start: 0px;--toast-svg-margin-end: -1px;--toast-button-margin-start: 0;--toast-button-margin-end: auto;--toast-close-button-start: unset;--toast-close-button-end: 0;--toast-close-button-transform: translate(35%, -35%)}:where([data-sonner-toaster]){position:fixed;width:var(--width);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;--gray1: hsl(0, 0%, 99%);--gray2: hsl(0, 0%, 97.3%);--gray3: hsl(0, 0%, 95.1%);--gray4: hsl(0, 0%, 93%);--gray5: hsl(0, 0%, 90.9%);--gray6: hsl(0, 0%, 88.7%);--gray7: hsl(0, 0%, 85.8%);--gray8: hsl(0, 0%, 78%);--gray9: hsl(0, 0%, 56.1%);--gray10: hsl(0, 0%, 52.3%);--gray11: hsl(0, 0%, 43.5%);--gray12: hsl(0, 0%, 9%);--border-radius: 8px;box-sizing:border-box;padding:0;margin:0;list-style:none;outline:none;z-index:999999999;transition:transform .4s ease}:where([data-sonner-toaster][data-lifted="true"]){transform:translateY(-10px)}@media (hover: none) and (pointer: coarse){:where([data-sonner-toaster][data-lifted="true"]){transform:none}}:where([data-sonner-toaster][data-x-position="right"]){right:var(--offset-right)}:where([data-sonner-toaster][data-x-position="left"]){left:var(--offset-left)}:where([data-sonner-toaster][data-x-position="center"]){left:50%;transform:translate(-50%)}:where([data-sonner-toaster][data-y-position="top"]){top:var(--offset-top)}:where([data-sonner-toaster][data-y-position="bottom"]){bottom:var(--offset-bottom)}:where([data-sonner-toast]){--y: translateY(100%);--lift-amount: calc(var(--lift) * var(--gap));z-index:var(--z-index);position:absolute;opacity:0;transform:var(--y);filter:blur(0);touch-action:none;transition:transform .4s,opacity .4s,height .4s,box-shadow .2s;box-sizing:border-box;outline:none;overflow-wrap:anywhere}:where([data-sonner-toast][data-styled="true"]){padding:16px;background:var(--normal-bg);border:1px solid var(--normal-border);color:var(--normal-text);border-radius:var(--border-radius);box-shadow:0 4px 12px #0000001a;width:var(--width);font-size:13px;display:flex;align-items:center;gap:6px}:where([data-sonner-toast]:focus-visible){box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast][data-y-position="top"]){top:0;--y: translateY(-100%);--lift: 1;--lift-amount: calc(1 * var(--gap))}:where([data-sonner-toast][data-y-position="bottom"]){bottom:0;--y: translateY(100%);--lift: -1;--lift-amount: calc(var(--lift) * var(--gap))}:where([data-sonner-toast]) :where([data-description]){font-weight:400;line-height:1.4;color:inherit}:where([data-sonner-toast]) :where([data-title]){font-weight:500;line-height:1.5;color:inherit}:where([data-sonner-toast]) :where([data-icon]){display:flex;height:16px;width:16px;position:relative;justify-content:flex-start;align-items:center;flex-shrink:0;margin-left:var(--toast-icon-margin-start);margin-right:var(--toast-icon-margin-end)}:where([data-sonner-toast][data-promise="true"]) :where([data-icon])>svg{opacity:0;transform:scale(.8);transform-origin:center;animation:sonner-fade-in .3s ease forwards}:where([data-sonner-toast]) :where([data-icon])>*{flex-shrink:0}:where([data-sonner-toast]) :where([data-icon]) svg{margin-left:var(--toast-svg-margin-start);margin-right:var(--toast-svg-margin-end)}:where([data-sonner-toast]) :where([data-content]){display:flex;flex-direction:column;gap:2px}[data-sonner-toast][data-styled=true] [data-button]{border-radius:4px;padding-left:8px;padding-right:8px;height:24px;font-size:12px;color:var(--normal-bg);background:var(--normal-text);margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end);border:none;cursor:pointer;outline:none;display:flex;align-items:center;flex-shrink:0;transition:opacity .4s,box-shadow .2s}:where([data-sonner-toast]) :where([data-button]):focus-visible{box-shadow:0 0 0 2px #0006}:where([data-sonner-toast]) :where([data-button]):first-of-type{margin-left:var(--toast-button-margin-start);margin-right:var(--toast-button-margin-end)}:where([data-sonner-toast]) :where([data-cancel]){color:var(--normal-text);background:rgba(0,0,0,.08)}:where([data-sonner-toast][data-theme="dark"]) :where([data-cancel]){background:rgba(255,255,255,.3)}:where([data-sonner-toast]) :where([data-close-button]){position:absolute;
50left:var(--toast-close-button-start);right:var(--toast-close-button-end);top:0;height:20px;width:20px;display:flex;justify-content:center;align-items:center;padding:0;color:var(--gray12);border:1px solid var(--gray4);transform:var(--toast-close-button-transform);border-radius:50%;cursor:pointer;z-index:1;transition:opacity .1s,background .2s,border-color .2s}[data-sonner-toast] [data-close-button]{background:var(--gray1)}:where([data-sonner-toast]) :where([data-close-button]):focus-visible{box-shadow:0 4px 12px #0000001a,0 0 0 2px #0003}:where([data-sonner-toast]) :where([data-disabled="true"]){cursor:not-allowed}:where([data-sonner-toast]):hover :where([data-close-button]):hover{background:var(--gray2);border-color:var(--gray5)}:where([data-sonner-toast][data-swiping="true"]):before{content:"";position:absolute;left:-50%;right:-50%;height:100%;z-index:-1}:where([data-sonner-toast][data-y-position="top"][data-swiping="true"]):before{bottom:50%;transform:scaleY(3) translateY(50%)}:where([data-sonner-toast][data-y-position="bottom"][data-swiping="true"]):before{top:50%;transform:scaleY(3) translateY(-50%)}:where([data-sonner-toast][data-swiping="false"][data-removed="true"]):before{content:"";position:absolute;inset:0;transform:scaleY(2)}:where([data-sonner-toast]):after{content:"";position:absolute;left:0;height:calc(var(--gap) + 1px);bottom:100%;width:100%}:where([data-sonner-toast][data-mounted="true"]){--y: translateY(0);opacity:1}:where([data-sonner-toast][data-expanded="false"][data-front="false"]){--scale: var(--toasts-before) * .05 + 1;--y: translateY(calc(var(--lift-amount) * var(--toasts-before))) scale(calc(-1 * var(--scale)));height:var(--front-toast-height)}:where([data-sonner-toast])>*{transition:opacity .4s}:where([data-sonner-toast][data-expanded="false"][data-front="false"][data-styled="true"])>*{opacity:0}
50:where([data-sonner-toast][data-visible="false"]){opacity:0;pointer-events:none}:where([data-sonner-toast][data-mounted="true"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset)));height:var(--initial-height)}:where([data-sonner-toast][data-removed="true"][data-front="true"][data-swipe-out="false"]){--y: translateY(calc(var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="true"]){--y: translateY(calc(var(--lift) * var(--offset) + var(--lift) * -100%));opacity:0}:where([data-sonner-toast][data-removed="true"][data-front="false"][data-swipe-out="false"][data-expanded="false"]){--y: translateY(40%);opacity:0;transition:transform .5s,opacity .2s}:where([data-sonner-toast][data-removed="true"][data-front="false"]):before{height:calc(var(--initial-height) + 20%)}[data-sonner-toast][data-swiping=true]{transform:var(--y) translateY(var(--swipe-amount-y, 0px)) translate(var(--swipe-amount-x, 0px));transition:none}[data-sonner-toast][data-swiped=true]{user-select:none}[data-sonner-toast][data-swipe-out=true][data-y-position=bottom],[data-sonner-toast][data-swipe-out=true][data-y-position=top]{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:forwards}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=left]{animation-name:swipe-out-left}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=right]{animation-name:swipe-out-right}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=up]{animation-name:swipe-out-up}[data-sonner-toast][data-swipe-out=true][data-swipe-direction=down]{animation-name:swipe-out-down}@keyframes swipe-out-left{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) - 100%));opacity:0}}@keyframes swipe-out-right{0%{transform:var(--y) translate(var(--swipe-amount-x));opacity:1}to{transform:var(--y) translate(calc(var(--swipe-amount-x) + 100%));opacity:0}}@keyframes swipe-out-up{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) - 100%));opacity:0}}@keyframes swipe-out-down{0%{transform:var(--y) translateY(var(--swipe-amount-y));opacity:1}to{transform:var(--y) translateY(calc(var(--swipe-amount-y) + 100%));opacity:0}}@media (max-width: 600px){[data-sonner-toaster]{position:fixed;right:var(--mobile-offset-right);left:var(--mobile-offset-left);width:100%}[data-sonner-toaster][dir=rtl]{left:calc(var(--mobile-offset-left) * -1)}[data-sonner-toaster] [data-sonner-toast]{left:0;right:0;width:calc(100% - var(--mobile-offset-left) * 2)}[data-sonner-toaster][data-x-position=left]{left:var(--mobile-offset-left)}[data-sonner-toaster][data-y-position=bottom]{bottom:var(--mobile-offset-bottom)}[data-sonner-toaster][data-y-position=top]{top:var(--mobile-offset-top)}[data-sonner-toaster][data-x-position=center]{left:var(--mobile-offset-left);right:var(--mobile-offset-right);transform:none}}[data-sonner-toaster][data-theme=light]{--normal-bg: #fff;--normal-border: var(--gray4);--normal-text: var(--gray12);--success-bg: hsl(143, 85%, 96%);--success-border: hsl(145, 92%, 91%);--success-text: hsl(140, 100%, 27%);--info-bg: hsl(208, 100%, 97%);--info-border: hsl(221, 91%, 91%);--info-text: hsl(210, 92%, 45%);--warning-bg: hsl(49, 100%, 97%);--warning-border: hsl(49, 91%, 91%);--warning-text: hsl(31, 92%, 45%);--error-bg: hsl(359, 100%, 97%);--error-border: hsl(359, 100%, 94%);--error-text: hsl(360, 100%, 45%)}[data-sonner-toaster][data-theme=light] [data-sonner-toast][data-invert=true]{--normal-bg: #000;--normal-border: hsl(0, 0%, 20%);--normal-text: var(--gray1)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast][data-invert=true]{--normal-bg: #fff;--normal-border: var(--gray3);--normal-text: var(--gray12)}[data-sonner-toaster][data-theme=dark]{--normal-bg: #000;--normal-bg-hover: hsl(0, 0%, 12%);--normal-border: hsl(0, 0%, 20%);--normal-border-hover: hsl(0, 0%, 25%);--normal-text: var(--gray1);--success-bg: hsl(150, 100%, 6%);--success-border: hsl(147, 100%, 12%);--success-text: hsl(150, 86%, 65%);--info-bg: hsl(215, 100%, 6%);--info-border: hsl(223, 100%, 12%);--info-text: hsl(216, 87%, 65%);--warning-bg: hsl(64, 100%, 6%);--warning-border: hsl(60, 100%, 12%);--warning-text: hsl(46, 87%, 65%);--error-bg: hsl(358, 76%, 10%);--error-border: hsl(357, 89%, 16%);
50--error-text: hsl(358, 100%, 81%)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]{background:var(--normal-bg);border-color:var(--normal-border);color:var(--normal-text)}[data-sonner-toaster][data-theme=dark] [data-sonner-toast] [data-close-button]:hover{background:var(--normal-bg-hover);border-color:var(--normal-border-hover)}[data-rich-colors=true][data-sonner-toast][data-type=success],[data-rich-colors=true][data-sonner-toast][data-type=success] [data-close-button]{background:var(--success-bg);border-color:var(--success-border);color:var(--success-text)}[data-rich-colors=true][data-sonner-toast][data-type=info],[data-rich-colors=true][data-sonner-toast][data-type=info] [data-close-button]{background:var(--info-bg);border-color:var(--info-border);color:var(--info-text)}[data-rich-colors=true][data-sonner-toast][data-type=warning],[data-rich-colors=true][data-sonner-toast][data-type=warning] [data-close-button]{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning-text)}[data-rich-colors=true][data-sonner-toast][data-type=error],[data-rich-colors=true][data-sonner-toast][data-type=error] [data-close-button]{background:var(--error-bg);border-color:var(--error-border);color:var(--error-text)}.sonner-loading-wrapper{--size: 16px;height:var(--size);width:var(--size);position:absolute;inset:0;z-index:10}.sonner-loading-wrapper[data-visible=false]{transform-origin:center;animation:sonner-fade-out .2s ease forwards}.sonner-spinner{position:relative;top:50%;left:50%;height:var(--size);width:var(--size)}.sonner-loading-bar{animation:sonner-spin 1.2s linear infinite;background:var(--gray11);border-radius:6px;height:8%;left:-10%;position:absolute;top:-3.9%;width:24%}.sonner-loading-bar:nth-child(1){animation-delay:-1.2s;transform:rotate(.0001deg) translate(146%)}.sonner-loading-bar:nth-child(2){animation-delay:-1.1s;transform:rotate(30deg) translate(146%)}.sonner-loading-bar:nth-child(3){animation-delay:-1s;transform:rotate(60deg) translate(146%)}.sonner-loading-bar:nth-child(4){animation-delay:-.9s;transform:rotate(90deg) translate(146%)}.sonner-loading-bar:nth-child(5){animation-delay:-.8s;transform:rotate(120deg) translate(146%)}.sonner-loading-bar:nth-child(6){animation-delay:-.7s;transform:rotate(150deg) translate(146%)}.sonner-loading-bar:nth-child(7){animation-delay:-.6s;transform:rotate(180deg) translate(146%)}.sonner-loading-bar:nth-child(8){animation-delay:-.5s;transform:rotate(210deg) translate(146%)}.sonner-loading-bar:nth-child(9){animation-delay:-.4s;transform:rotate(240deg) translate(146%)}.sonner-loading-bar:nth-child(10){animation-delay:-.3s;transform:rotate(270deg) translate(146%)}.sonner-loading-bar:nth-child(11){animation-delay:-.2s;transform:rotate(300deg) translate(146%)}.sonner-loading-bar:nth-child(12){animation-delay:-.1s;transform:rotate(330deg) translate(146%)}@keyframes sonner-fade-in{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes sonner-fade-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.8)}}@keyframes sonner-spin{0%{opacity:1}to{opacity:.15}}@media (prefers-reduced-motion){[data-sonner-toast],[data-sonner-toast]>*,.sonner-loading-bar{transition:none!important;animation:none!important}}.sonner-loader{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);transform-origin:center;transition:opacity .2s,transform .2s}.sonner-loader[data-visible=false]{opacity:0;transform:scale(.8) translate(-50%,-50%)} 51`);function iu(e){return e.label!==void 0}var zM=3,NM="32px",MM="16px",Xy=4e3,DM=356,jM=14,FM=20,$M=200;function Rn(...e){return e.filter(Boolean).join(" ")}function VM(e){let[t,n]=e.split("-"),o=[];return t&&o.push(t),n&&o.push(n),o}var UM=e=>{var t,n,o,s,a,l,c,h,p,f,m;let{invert:y,toast:v,unstyled:k,interacting:S,setHeights:b,visibleToasts:x,heights:E,index:P,toasts:I,expanded:O,removeToast:D,defaultRichColors:M,closeButton:$,style:W,cancelButtonStyle:ee,actionButtonStyle:te,className:G="",descriptionClassName:ye="",duration:Q,position:we,gap:pe,loadingIcon:ie,expandByDefault:B,classNames:q,icons:Y,closeButtonAriaLabel:z="Close toast",pauseWhenPageIsHidden:U}=e,[oe,se]=Z.useState(null),[ce,_e]=Z.useState(null),[ge,Ee]=Z.useState(!1),[Pe,He]=Z.useState(!1),[bt,tn]=Z.useState(!1),[Nt,Er]=Z.useState(!1),[Xo,Tr]=Z.useState(!1),[Pr,nn]=Z.useState(0),[rr,Tt]=Z.useState(0),Ut=Z.useRef(v.duration||Q||Xy),or=Z.useRef(null),pn=Z.useRef(null),mo=P===0,Ne=P+1<=x,ze=v.type,ft=v.dismissible!==!1,Cr=v.className||"",Ea=v.descriptionClassName||"",Vn=Z.useMemo(()=>E.findIndex(xe=>xe.toastId===v.id)||0,[E,v.id]),go=Z.useMemo(()=>{var xe;return(xe=v.closeButton)!=null?xe:$},[v.closeButton,$]),Ta=Z.useMemo(()=>v.duration||Q||Xy,[v.duration,Q]),Zo=Z.useRef(0),ir=Z.useRef(0),Pa=Z.useRef(0),Un=Z.useRef(null),[ss,as]=we.split("-"),ei=Z.useMemo(()=>E.reduce((xe,Le,Fe)=>Fe>=Vn?xe:xe+Le.height,0),[E,Vn]),ti=EM(),Ir=v.invert||y,Bn=ze==="loading";ir.current=Z.useMemo(()=>Vn*pe+ei,[Vn,ei]),Z.useEffect(()=>{Ut.current=Ta},[Ta]),Z.useEffect(()=>{Ee(!0)},[]),Z.useEffect(()=>{let xe=pn.current;if(xe){let Le=xe.getBoundingClientRect().height;return Tt(Le),b(Fe=>[{toastId:v.id,height:Le,position:v.position},...Fe]),()=>b(Fe=>Fe.filter(Mt=>Mt.toastId!==v.id))}},[b,v.id]),Z.useLayoutEffect(()=>{if(!ge)return;let xe=pn.current,Le=xe.style.height;xe.style.height="auto";let Fe=xe.getBoundingClientRect().height;xe.style.height=Le,Tt(Fe),b(Mt=>Mt.find(Bt=>Bt.toastId===v.id)?Mt.map(Bt=>Bt.toastId===v.id?{...Bt,height:Fe}:Bt):[{toastId:v.id,height:Fe,position:v.position},...Mt])},[ge,v.title,v.description,b,v.id]);let kn=Z.useCallback(()=>{He(!0),nn(ir.current),b(xe=>xe.filter(Le=>Le.toastId!==v.id)),setTimeout(()=>{D(v)},$M)},[v,D,b,ir]);Z.useEffect(()=>{if(v.promise&&ze==="loading"||v.duration===1/0||v.type==="loading")return;let xe;return O||S||U&&ti?(()=>{if(Pa.current<Zo.current){let Le=new Date().getTime()-Zo.current;Ut.current=Ut.current-Le}
51Pa.current=new Date().getTime()})():Ut.current!==1/0&&(Zo.current=new Date().getTime(),xe=setTimeout(()=>{var Le;(Le=v.onAutoClose)==null||Le.call(v,v),kn()},Ut.current)),()=>clearTimeout(xe)},[O,S,v,ze,U,ti,kn]),Z.useEffect(()=>{v.delete&&kn()},[kn,v.delete]);function Ca(){var xe,Le,Fe;return Y!=null&&Y.loading?Z.createElement("div",{className:Rn(q?.loader,(xe=v?.classNames)==null?void 0:xe.loader,"sonner-loader"),"data-visible":ze==="loading"},Y.loading):ie?Z.createElement("div",{className:Rn(q?.loader,(Le=v?.classNames)==null?void 0:Le.loader,"sonner-loader"),"data-visible":ze==="loading"},ie):Z.createElement(bM,{className:Rn(q?.loader,(Fe=v?.classNames)==null?void 0:Fe.loader),visible:ze==="loading"})}return Z.createElement("li",{tabIndex:0,ref:pn,className:Rn(G,Cr,q?.toast,(t=v?.classNames)==null?void 0:t.toast,q?.default,q?.[ze],(n=v?.classNames)==null?void 0:n[ze]),"data-sonner-toast":"","data-rich-colors":(o=v.richColors)!=null?o:M,"data-styled":!(v.jsx||v.unstyled||k),"data-mounted":ge,"data-promise":!!v.promise,"data-swiped":Xo,"data-removed":Pe,"data-visible":Ne,"data-y-position":ss,"data-x-position":as,"data-index":P,"data-front":mo,"data-swiping":bt,"data-dismissible":ft,"data-type":ze,"data-invert":Ir,"data-swipe-out":Nt,"data-swipe-direction":ce,"data-expanded":!!(O||B&&ge),style:{"--index":P,"--toasts-before":P,"--z-index":I.length-P,"--offset":`${Pe?Pr:ir.current}px`,"--initial-height":B?"auto":`${rr}px`,...W,...v.style},onDragEnd:()=>{tn(!1),se(null),Un.current=null},onPointerDown:xe=>{Bn||!ft||(or.current=new Date,nn(ir.current),xe.target.setPointerCapture(xe.pointerId),xe.target.tagName!=="BUTTON"&&(tn(!0),Un.current={x:xe.clientX,y:xe.clientY}))},onPointerUp:()=>{var xe,Le,Fe,Mt;if(Nt||!ft)return;Un.current=null;let Bt=Number(((xe=pn.current)==null?void 0:xe.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Wt=Number(((Le=pn.current)==null?void 0:Le.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),An=new Date().getTime()-((Fe=or.current)==null?void 0:Fe.getTime()),St=oe==="x"?Bt:Wt,Wn=Math.abs(St)/An;if(Math.abs(St)>=FM||Wn>.11){nn(ir.current),(Mt=v.onDismiss)==null||Mt.call(v,v),_e(oe==="x"?Bt>0?"right":"left":Wt>0?"down":"up"),kn(),Er(!0),Tr(!1);return}tn(!1),se(null)},onPointerMove:xe=>{var Le,Fe,Mt,Bt;if(!Un.current||!ft||((Le=window.getSelection())==null?void 0:Le.toString().length)>0)return;let Wt=xe.clientY-Un.current.y,An=xe.clientX-Un.current.x,St=(Fe=e.swipeDirections)!=null?Fe:VM(we);!oe&&(Math.abs(An)>1||Math.abs(Wt)>1)&&se(Math.abs(An)>Math.abs(Wt)?"x":"y");let Wn={x:0,y:0};oe==="y"?(St.includes("top")||St.includes("bottom"))&&(St.includes("top")&&Wt<0||St.includes("bottom")&&Wt>0)&&(Wn.y=Wt):oe==="x"&&(St.includes("left")||St.includes("right"))&&(St.includes("left")&&An<0||St.includes("right")&&An>0)&&(Wn.x=An),(Math.abs(Wn.x)>0||Math.abs(Wn.y)>0)&&Tr(!0),(Mt=pn.current)==null||Mt.style.setProperty("--swipe-amount-x",`${Wn.x}px`),(Bt=pn.current)==null||Bt.style.setProperty("--swipe-amount-y",`${Wn.y}px`)}},go&&!v.jsx?Z.createElement("button",{"aria-label":z,"data-disabled":Bn,"data-close-button":!0,onClick:Bn||!ft?()=>{}:()=>{var xe;kn(),(xe=v.onDismiss)==null||xe.call(v,v)},className:Rn(q?.closeButton,(s=v?.classNames)==null?void 0:s.closeButton)},(a=Y?.close)!=null?a:_M):null,v.jsx||_.isValidElement(v.title)?v.jsx?v.jsx:typeof v.title=="function"?v.title():v.title:Z.createElement(Z.Fragment,null,ze||v.icon||v.promise?Z.createElement("div",{"data-icon":"",className:Rn(q?.icon,(l=v?.classNames)==null?void 0:l.icon)},v.promise||v.type==="loading"&&!v.icon?v.icon||Ca():null,v.type!=="loading"?v.icon||Y?.[ze]||yM(ze):null):null,Z.createElement("div",{"data-content":"",className:Rn(q?.content,(c=v?.classNames)==null?void 0:c.content)},Z.createElement("div",{"data-title":"",className:Rn(q?.title,(h=v?.classNames)==null?void 0:h.title)},typeof v.title=="function"?v.title():v.title),v.description?Z.createElement("div",{"data-description":"",className:Rn(ye,Ea,q?.description,(p=v?.classNames)==null?void 0:p.description)},typeof v.description=="function"?v.description():v.description):null),_.isValidElement(v.cancel)?v.cancel:v.cancel&&iu(v.cancel)?Z.createElement("button",{"data-button":!0,"data-cancel":!0,style:v.cancelButtonStyle||ee,onClick:xe=>{var Le,Fe;iu(v.cancel)&&ft&&((Fe=(Le=v.cancel).onClick)==null||Fe.call(Le,xe),kn())},className:Rn(q?.cancelButton,(f=v?.classNames)==null?void 0:f.cancelButton)},v.cancel.label):null,_.isValidElement(v.action)?v.action:v.action&&iu(v.action)?Z.createElement("button",{"data-button":!0,"data-action":!0,style:v.actionButtonStyle||te,onClick:xe=>{var Le,Fe;iu(v.action)&&((Fe=(Le=v.action).onClick)==null||Fe.call(Le,xe),
51!xe.defaultPrevented&&kn())},className:Rn(q?.actionButton,(m=v?.classNames)==null?void 0:m.actionButton)},v.action.label):null))};function Zy(){if(typeof window>"u"||typeof document>"u")return"ltr";let e=document.documentElement.getAttribute("dir");return e==="auto"||!e?window.getComputedStyle(document.documentElement).direction:e}function BM(e,t){let n={};return[e,t].forEach((o,s)=>{let a=s===1,l=a?"--mobile-offset":"--offset",c=a?MM:NM;function h(p){["top","right","bottom","left"].forEach(f=>{n[`${l}-${f}`]=typeof p=="number"?`${p}px`:p})}typeof o=="number"||typeof o=="string"?h(o):typeof o=="object"?["top","right","bottom","left"].forEach(p=>{o[p]===void 0?n[`${l}-${p}`]=c:n[`${l}-${p}`]=typeof o[p]=="number"?`${o[p]}px`:o[p]}):h(c)}),n}var WM=_.forwardRef(function(e,t){let{invert:n,position:o="bottom-right",hotkey:s=["altKey","KeyT"],expand:a,closeButton:l,className:c,offset:h,mobileOffset:p,theme:f="light",richColors:m,duration:y,style:v,visibleToasts:k=zM,toastOptions:S,dir:b=Zy(),gap:x=jM,loadingIcon:E,icons:P,containerAriaLabel:I="Notifications",pauseWhenPageIsHidden:O}=e,[D,M]=Z.useState([]),$=Z.useMemo(()=>Array.from(new Set([o].concat(D.filter(U=>U.position).map(U=>U.position)))),[D,o]),[W,ee]=Z.useState([]),[te,G]=Z.useState(!1),[ye,Q]=Z.useState(!1),[we,pe]=Z.useState(f!=="system"?f:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),ie=Z.useRef(null),B=s.join("+").replace(/Key/g,"").replace(/Digit/g,""),q=Z.useRef(null),Y=Z.useRef(!1),z=Z.useCallback(U=>{M(oe=>{var se;return(se=oe.find(ce=>ce.id===U.id))!=null&&se.delete||Qt.dismiss(U.id),oe.filter(({id:ce})=>ce!==U.id)})},[]);return Z.useEffect(()=>Qt.subscribe(U=>{if(U.dismiss){M(oe=>oe.map(se=>se.id===U.id?{...se,delete:!0}:se));return}setTimeout(()=>{Nb.flushSync(()=>{M(oe=>{let se=oe.findIndex(ce=>ce.id===U.id);return se!==-1?[...oe.slice(0,se),{...oe[se],...U},...oe.slice(se+1)]:[U,...oe]})})})}),[]),Z.useEffect(()=>{if(f!=="system"){pe(f);return}if(f==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?pe("dark"):pe("light")),typeof window>"u")return;let U=window.matchMedia("(prefers-color-scheme: dark)");try{U.addEventListener("change",({matches:oe})=>{pe(oe?"dark":"light")})}catch{U.addListener(({matches:se})=>{try{pe(se?"dark":"light")}catch(ce){console.error(ce)}})}},[f]),Z.useEffect(()=>{D.length<=1&&G(!1)},[D]),Z.useEffect(()=>{let U=oe=>{var se,ce;s.every(_e=>oe[_e]||oe.code===_e)&&(G(!0),(se=ie.current)==null||se.focus()),oe.code==="Escape"&&(document.activeElement===ie.current||(ce=ie.current)!=null&&ce.contains(document.activeElement))&&G(!1)};return document.addEventListener("keydown",U),()=>document.removeEventListener("keydown",U)},[s]),Z.useEffect(()=>{if(ie.current)return()=>{q.current&&(q.current.focus({preventScroll:!0}),q.current=null,Y.current=!1)}},[ie.current]),Z.createElement("section",{ref:t,"aria-label":`${I} ${B}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},$.map((U,oe)=>{var se;let[ce,_e]=U.split("-");return D.length?Z.createElement("ol",{key:U,dir:b==="auto"?Zy():b,tabIndex:-1,ref:ie,className:c,"data-sonner-toaster":!0,"data-theme":we,"data-y-position":ce,"data-lifted":te&&D.length>1&&!a,"data-x-position":_e,style:{"--front-toast-height":`${((se=W[0])==null?void 0:se.height)||0}px`,"--width":`${DM}px`,"--gap":`${x}px`,...v,...BM(h,p)},onBlur:ge=>{Y.current&&!ge.currentTarget.contains(ge.relatedTarget)&&(Y.current=!1,q.current&&(q.current.focus({preventScroll:!0}),q.current=null))},onFocus:ge=>{ge.target instanceof HTMLElement&&ge.target.dataset.dismissible==="false"||Y.current||(Y.current=!0,q.current=ge.relatedTarget)},onMouseEnter:()=>G(!0),onMouseMove:()=>G(!0),onMouseLeave:()=>{ye||G(!1)},onDragEnd:()=>G(!1),onPointerDown:ge=>{ge.target instanceof HTMLElement&&ge.target.dataset.dismissible==="false"||Q(!0)},onPointerUp:()=>Q(!1)},D.filter(ge=>!ge.position&&oe===0||ge.position===U).map((ge,Ee)=>{var Pe,He;return Z.createElement(UM,{key:ge.id,icons:P,index:Ee,toast:ge,defaultRichColors:m,duration:(Pe=S?.duration)!=null?Pe:y,className:S?.className,descriptionClassName:S?.descriptionClassName,invert:n,visibleToasts:k,closeButton:(He=S?.closeButton)!=null?He:l,interacting:ye,position:U,style:S?.style,unstyled:S?.unstyled,classNames:S?.classNames,cancelButtonStyle:S?.cancelButtonStyle,actionButtonStyle:S?.actionButtonStyle,removeToast:z,toasts:D.filter(bt=>bt.position==ge.position),heights:W.filter(bt=>bt.position==ge.position),setHeights:ee,expandByDefault:a,gap:x,loadingIcon:E,exp
vendor: 11,186 bytes, lines 51-66
51anded:te,pauseWhenPageIsHidden:O,swipeDirections:e.swipeDirections})})):null}))});const qM=({...e})=>{const{theme:t="system"}=vM();return C.jsx(WM,{theme:t,className:"toaster group",toastOptions:{classNames:{toast:"group toast group-[.toaster]:bg-background group-[.toaster]:text-foreground group-[.toaster]:border-border group-[.toaster]:shadow-lg",description:"group-[.toast]:text-muted-foreground",actionButton:"group-[.toast]:bg-primary group-[.toast]:text-primary-foreground",cancelButton:"group-[.toast]:bg-muted group-[.toast]:text-muted-foreground"}},...e})},GM=pf("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),qo=_.forwardRef(({className:e,variant:t,size:n,asChild:o=!1,...s},a)=>{const l=o?BL:"button";return C.jsx(l,{className:Je(GM({variant:t,size:n,className:e})),ref:a,...s})});qo.displayName="Button";const ok=_.forwardRef(({className:e,...t},n)=>C.jsx("div",{ref:n,className:Je("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));ok.displayName="Card";const HM=_.forwardRef(({className:e,...t},n)=>C.jsx("div",{ref:n,className:Je("flex flex-col space-y-2 p-6",e),...t}));HM.displayName="CardHeader";const KM=_.forwardRef(({className:e,...t},n)=>C.jsx("h3",{ref:n,className:Je("text-2xl font-semibold leading-none tracking-tight",e),...t}));KM.displayName="CardTitle";const YM=_.forwardRef(({className:e,...t},n)=>C.jsx("p",{ref:n,className:Je("text-sm text-muted-foreground",e),...t}));YM.displayName="CardDescription";const ik=_.forwardRef(({className:e,...t},n)=>C.jsx("div",{ref:n,className:Je("p-6 pt-0",e),...t}));ik.displayName="CardContent";const JM=_.forwardRef(({className:e,...t},n)=>C.jsx("div",{ref:n,className:Je("flex items-center p-6 pt-0",e),...t}));JM.displayName="CardFooter";var Ch="focusScope.autoFocusOnMount",Ih="focusScope.autoFocusOnUnmount",ew={bubbles:!1,cancelable:!0},QM="FocusScope",sk=_.forwardRef((e,t)=>{const{loop:n=!1,trapped:o=!1,onMountAutoFocus:s,onUnmountAutoFocus:a,...l}=e,[c,h]=_.useState(null),p=er(s),f=er(a),m=_.useRef(null),y=_t(t,S=>h(S)),v=_.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;_.useEffect(()=>{if(o){let S=function(P){if(v.paused||!c)return;const I=P.target;c.contains(I)?m.current=I:eo(m.current,{select:!0})},b=function(P){if(v.paused||!c)return;const I=P.relatedTarget;I!==null&&(c.contains(I)||eo(m.current,{select:!0}))},x=function(P){if(document.activeElement===document.body)for(const O of P)O.removedNodes.length>0&&eo(c)};document.addEventListener("focusin",S),document.addEventListener("focusout",b);const E=new MutationObserver(x);return c&&E.observe(c,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",S),document.removeEventListener("focusout",b),E.disconnect()}}},[o,c,v.paused]),_.useEffect(()=>{if(c){nw.add(v);const S=document.activeElement;if(!c.contains(S)){const x=new CustomEvent(Ch,ew);c.addEventListener(Ch,p),c.dispatchEvent(x),x.defaultPrevented||(XM(rD(ak(c)),{select:!0}),document.activeElement===S&&eo(c))}return()=>{c.removeEventListener(Ch,p),setTimeout(()=>{const x=new CustomEvent(Ih,ew);c.addEventListener(Ih,f),c.dispatchEvent(x),x.defaultPrevented||eo(S??document.body,{select:!0}),c.removeEventListener(Ih,f),nw.remove(v)},0)}}},[c,p,f,v]);const k=_.useCallback(S=>{if(!n&&!o||v.paused)return;const b=S.key==="Tab"&&!S.altKey&&!S.ctrlKey&&!S.metaKey,x=document.activeElement;if(b&&x){const E=S.currentTarget,[P,I]=ZM(E);P&&I?!S.shiftKey&&x===I?(S.preventDefault(),n&&eo(P,{select:!0})):S.shiftKey&&x===P&&(S.preventDefault(),n&&eo(I,{select:!0})):x===E&&S.preventDefault()}},[n,o,v.paused]);return C.jsx(Qe.div,{tabIndex:-1,...l,ref:y,onKeyDown:k})});sk.displayName=QM;function XM(e,{select:t=!1}={}){const n=document.activeElement;for(const o of e)if(eo(o,{select:t}),document.activeElement!==n)return}function ZM(e){const t=ak(e),n=tw(t,e),o=tw(t.reverse(),e);return[n,o]}function ak(e){const t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:o=>{const s=o.tagName==="INPUT"&&o.type==="hidden";return o.disabled||o.hidden||s?NodeFilter.FILTER_SKIP:o.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function tw(e,t){for(const n of e)if(!eD(n,{upTo:t}))return n}function eD(e,{upTo:t}){if(getComputedStyle(e).visibility==="hidden")return!0;for(;e;){if(t!==void 0&&e===t)return!1;if(getComputedStyle(e).display==="none")return!0;e=e.parentElement}return!1}function tD(e){return e instanceof HTMLInputElement&&"select"in e}function eo(e,{select:t=!1}={}){if(e&&e.focus){const n=document.activeElement;e.focus({preventScroll:!0}),e!==n&&tD(e)&&t&&e.select()}}var nw=nD();function nD(){let e=[];return{add(t){const n=e[0];t!==n&&n?.pause(),e=rw(e,t),e.unshift(t)},remove(t){e=rw(e,t),e[0]?.resume()}}}function rw(e,t){const n=[...e],o=n.indexOf(t);return o!==-1&&n.splice(o,1),n}function rD(e){return e.filter(t=>t.tagName!=="A")}var Rh=0;function oD(){_.useEffect(()=>{const e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??ow()),document.body.insertAdjacentElement("beforeend",e[1]??ow()),Rh++,()=>{Rh===1&&document.querySelectorAll("[data-radix-focus-guard]").forEach(t=>t.remove()),Rh--}},[])}function ow(){const e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}var wu="right-scroll-bar-position",bu="width-before-scroll-bar",iD="with-scroll-bars-hidden",sD="--removed-body-scroll-bar-size";function Oh(e,t){return typeof e=="function"?e(t):e&&(e.current=t),e}function aD(e,t){var n=_.useState(function(){return{value:e,callback:t,facade:{get current(){return n.value},set current(o){var s=n.value;s!==o&&(n.value=o,n.callback(o,s))}}}})[0];return n.callback=t,n.facade}var lD=typeof window<"u"?_.useLayoutEffect:_.useEffect,iw=new WeakMap;function uD(e,t){var n=aD(null,function(o){return e.forEach(function(s){return Oh(s,o)})});return lD(function(){var o=iw.get(n);if(o){var s=new Set(o),a=new Set(e),l=n.current;s.forEach(function(c){a.has(c)||Oh(c,null)}),a.forEach(function(c){s.has(c)||Oh(c,l)})}iw.set(n,e)},[e]),n}function cD(e){return e}function dD(e,t){t===void 0&&(t=cD);var n=[],o=!1,s={read:function(){if(o)throw new Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return n.length?n[n.length-1]:e},useMedium:function(a){var l=t(a,o);return n.push(l),function(){n=n.filter(function(c){return c!==l})}},assignSyncMedium:function(a){for(o=!0;n.length;){var l=n;n=[],l.forEach(a)}n={push:function(c){return a(c)},filter:function(){return n}}},assignMedium:function(a){o=!0;var l=[];if(n.length){var c=n;n=[],c.forEach(a),l=n}var h=function(){var f=l;l=[],f.forEach(a)},p=function(){return Promise.resolve().then(h)};p(),n={push:function(f){l.push(f),p()},filter:function(f){return l=l.filter(f),n}}}};return s}function hD(e){e===void 0&&(e={});var t=dD(null);return t.options=Sn({async:!0,ssr:!1},e),t}var lk=function(e){var t=e.sideCar,n=po(e,["sideCar"]);if(!t)throw new Error("Sidecar: please provide `sideCar` property to import the right car");var o=t.read();if(!o)throw new Error("Sidecar medium not found");return _.createElement(o,Sn({},n))};lk.isSideCarExport=!0;function pD(e,t){return e.useMedium(t),lk}var uk=hD(),Lh=function(){},ic=_.forwardRef(function(e,t){var n=_.useRef(null),o=_.useState({onScrollCapture:Lh,onWheelCapture:Lh,onTouchMoveCapture:Lh}),s=o[0],a=o[1],l=e.forwardProps,c=e.children,h=e.className,p=e.removeScrollBar,f=e.enabled,m=e.shards,y=e.sideCar,v=e.noRelative,k=e.noIsolation,S=e.inert,b=e.allowPinchZoom,x=e.as,E=x===void 0?"div":x,P=e.gapMode,I=po(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),O=y,D=uD([n,t]),M=Sn(Sn({},I),s);return _.createElement(_.Fragment,null,f&&_.createElement(O,{sideCar:uk,removeScrollBar:p,shards:m,noRelative:v,noIsolation:k,inert:S,setCallbacks:a,allowPinchZoom:!!b,lockRef:n,gapMode:P}),l?_.cloneElement(_.Children.only(c),Sn(Sn({},M),{ref:D})):_.createElement(E,Sn({},M,{className:h,ref:D}),c))});ic.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1};ic.classNames={fullWidth:bu,zeroRight:wu};var fD=function(){if(typeof __webpack_nonce__<"u")return __webpack_nonce__};function mD(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=fD();return t&&e.setAttribute("nonce",t),e}function gD(e,t){e.styleSheet?e.styleSheet.cssText=t:e.appendChild(document.createTextNode(t))}function vD(e){var t=document.head||document.getElementsByTagName("head")[0];t.appendChild(e)}var yD=function(){var e=0,t=null;return{add:function(n){e==0&&(t=mD())&&(gD(t,n),vD(t)),e++},remove:function(){e--,!e&&t&&(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},wD=function(){var e=yD();return function(t,n){_.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},ck=function(){var e=wD(),t=function(n){var o=n.styles,s=n.dynamic;return e(o,s),null};return t},bD={left:0,top:0,right:0,gap:0},zh=function(e){return parseInt(e||"",10)||0},SD=function(e){var t=window.getComputedStyle(document.body),n=t[e==="padding"?"paddingLeft":"marginLeft"],o=t[e==="padding"?"paddingTop":"marginTop"],s=t[e==="padding"?"paddingRight":"marginRight"];return[zh(n),zh(o),zh(s)]},kD=function(e){if(e===void 0&&(e="margin"),typeof window>"u")return bD;var t=SD(e),n=document.documentElement.clientWidth,o=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,o-n+t[2]-t[0])}},AD=ck(),Ki="data-scroll-locked",xD=function(e,t,n,o){var s=e.left,a=e.top,l=e.right,c=e.gap;return n===void 0&&(n="margin"),` 52 .`.concat(iD,` { 53 overflow: hidden `).concat(o,`; 54 padding-right: `).concat(c,"px ").concat(o,`; 55 } 56 body[`).concat(Ki,`] { 57 overflow: hidden `).concat(o,`; 58 overscroll-behavior: contain; 59 `).concat([t&&"position: relative ".concat(o,";"),n==="margin"&&` 60 padding-left: `.concat(s,`px; 61 padding-top: `).concat(a,`px; 62 padding-right: `).concat(l,`px; 63 margin-left:0; 64 margin-top:0; 65 margin-right: `).concat(c,"px ").concat(o,`; 66 `),n==="padding"&&"padding-right: ".concat(c,"px ").concat(o,";
66")].filter(Boolean).join(""),` 67 } 68 69 .`).concat(wu,` { 70 right: `).concat(c,"px ").concat(o,`; 71 } 72 73 .`).concat(bu,` { 74 margin-right: `).concat(c,"px ").concat(o,`; 75 } 76 77 .`).concat(wu," .").concat(wu,` { 78 right: 0 `).concat(o,`; 79 } 80 81 .`).concat(bu," .").concat(bu,` { 82 margin-right: 0 `).concat(o,`; 83 } 84 85 body[`).concat(Ki,`] { 86 `).concat(sD,": ").concat(c,`px; 87 } 88`)},sw=function(){var e=parseInt(document.body.getAttribute(Ki)||"0",10);return isFinite(e)?e:0},_D=function(){_.useEffect(function(){return document.body.setAttribute(Ki,(sw()+1).toString()),function(){var e=sw()-1;e<=0?document.body.removeAttribute(Ki):document.body.setAttribute(Ki,e.toString())}},[])},ED=function(e){var t=e.noRelative,n=e.noImportant,o=e.gapMode,s=o===void 0?"margin":o;_D();var a=_.useMemo(function(){return kD(s)},[s]);return _.createElement(AD,{styles:xD(a,!t,s,n?"":"!important")})},wp=!1;if(typeof window<"u")try{var su=Object.defineProperty({},"passive",{get:function(){return wp=!0,!0}});window.addEventListener("test",su,su),window.removeEventListener("test",su,su)}catch{wp=!1}var Ri=wp?{passive:!1}:!1,TD=function(e){return e.tagName==="TEXTAREA"},dk=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return n[t]!=="hidden"&&!(n.overflowY===n.overflowX&&!TD(e)&&n[t]==="visible")},PD=function(e){return dk(e,"overflowY")},CD=function(e){return dk(e,"overflowX")},aw=function(e,t){var n=t.ownerDocument,o=t;do{typeof ShadowRoot<"u"&&o instanceof ShadowRoot&&(o=o.host);var s=hk(e,o);if(s){var a=pk(e,o),l=a[1],c=a[2];
vendor: 11,448 bytes, lines 88-95
88if(l>c)return!0}o=o.parentNode}while(o&&o!==n.body);return!1},ID=function(e){var t=e.scrollTop,n=e.scrollHeight,o=e.clientHeight;return[t,n,o]},RD=function(e){var t=e.scrollLeft,n=e.scrollWidth,o=e.clientWidth;return[t,n,o]},hk=function(e,t){return e==="v"?PD(t):CD(t)},pk=function(e,t){return e==="v"?ID(t):RD(t)},OD=function(e,t){return e==="h"&&t==="rtl"?-1:1},LD=function(e,t,n,o,s){var a=OD(e,window.getComputedStyle(t).direction),l=a*o,c=n.target,h=t.contains(c),p=!1,f=l>0,m=0,y=0;do{if(!c)break;var v=pk(e,c),k=v[0],S=v[1],b=v[2],x=S-b-a*k;(k||x)&&hk(e,c)&&(m+=x,y+=k);var E=c.parentNode;c=E&&E.nodeType===Node.DOCUMENT_FRAGMENT_NODE?E.host:E}while(!h&&c!==document.body||h&&(t.contains(c)||t===c));return(f&&Math.abs(m)<1||!f&&Math.abs(y)<1)&&(p=!0),p},au=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},lw=function(e){return[e.deltaX,e.deltaY]},uw=function(e){return e&&"current"in e?e.current:e},zD=function(e,t){return e[0]===t[0]&&e[1]===t[1]},ND=function(e){return` 89 .block-interactivity-`.concat(e,` {pointer-events: none;} 90 .allow-interactivity-`).concat(e,` {pointer-events: all;} 91`)},MD=0,Oi=[];function DD(e){var t=_.useRef([]),n=_.useRef([0,0]),o=_.useRef(),s=_.useState(MD++)[0],a=_.useState(ck)[0],l=_.useRef(e);_.useEffect(function(){l.current=e},[e]),_.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(s));var S=Fp([e.lockRef.current],(e.shards||[]).map(uw),!0).filter(Boolean);return S.forEach(function(b){return b.classList.add("allow-interactivity-".concat(s))}),function(){document.body.classList.remove("block-interactivity-".concat(s)),S.forEach(function(b){return b.classList.remove("allow-interactivity-".concat(s))})}}},[e.inert,e.lockRef.current,e.shards]);var c=_.useCallback(function(S,b){if("touches"in S&&S.touches.length===2||S.type==="wheel"&&S.ctrlKey)return!l.current.allowPinchZoom;var x=au(S),E=n.current,P="deltaX"in S?S.deltaX:E[0]-x[0],I="deltaY"in S?S.deltaY:E[1]-x[1],O,D=S.target,M=Math.abs(P)>Math.abs(I)?"h":"v";if("touches"in S&&M==="h"&&D.type==="range")return!1;var $=aw(M,D);if(!$)return!0;if($?O=M:(O=M==="v"?"h":"v",$=aw(M,D)),!$)return!1;if(!o.current&&"changedTouches"in S&&(P||I)&&(o.current=O),!O)return!0;var W=o.current||O;return LD(W,b,S,W==="h"?P:I)},[]),h=_.useCallback(function(S){var b=S;if(!(!Oi.length||Oi[Oi.length-1]!==a)){var x="deltaY"in b?lw(b):au(b),E=t.current.filter(function(O){return O.name===b.type&&(O.target===b.target||b.target===O.shadowParent)&&zD(O.delta,x)})[0];if(E&&E.should){b.cancelable&&b.preventDefault();return}if(!E){var P=(l.current.shards||[]).map(uw).filter(Boolean).filter(function(O){return O.contains(b.target)}),I=P.length>0?c(b,P[0]):!l.current.noIsolation;I&&b.cancelable&&b.preventDefault()}}},[]),p=_.useCallback(function(S,b,x,E){var P={name:S,delta:b,target:x,should:E,shadowParent:jD(x)};t.current.push(P),setTimeout(function(){t.current=t.current.filter(function(I){return I!==P})},1)},[]),f=_.useCallback(function(S){n.current=au(S),o.current=void 0},[]),m=_.useCallback(function(S){p(S.type,lw(S),S.target,c(S,e.lockRef.current))},[]),y=_.useCallback(function(S){p(S.type,au(S),S.target,c(S,e.lockRef.current))},[]);_.useEffect(function(){return Oi.push(a),e.setCallbacks({onScrollCapture:m,onWheelCapture:m,onTouchMoveCapture:y}),document.addEventListener("wheel",h,Ri),document.addEventListener("touchmove",h,Ri),document.addEventListener("touchstart",f,Ri),function(){Oi=Oi.filter(function(S){return S!==a}),document.removeEventListener("wheel",h,Ri),document.removeEventListener("touchmove",h,Ri),document.removeEventListener("touchstart",f,Ri)}},[]);var v=e.removeScrollBar,k=e.inert;return _.createElement(_.Fragment,null,k?_.createElement(a,{styles:ND(s)}):null,v?_.createElement(ED,{noRelative:e.noRelative,gapMode:e.gapMode}):null)}function jD(e){for(var t=null;e!==null;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}const FD=pD(uk,DD);var fk=_.forwardRef(function(e,t){return _.createElement(ic,Sn({},e,{ref:t,sideCar:FD}))});fk.classNames=ic.classNames;var $D=function(e){if(typeof document>"u")return null;var t=Array.isArray(e)?e[0]:e;return t.ownerDocument.body},Li=new WeakMap,lu=new WeakMap,uu={},Nh=0,mk=function(e){return e&&(e.host||mk(e.parentNode))},VD=function(e,t){return t.map(function(n){if(e.contains(n))return n;var o=mk(n);return o&&e.contains(o)?o:(console.error("aria-hidden",n,"in not contained inside",e,". Doing nothing"),null)}).filter(function(n){return!!n})},UD=function(e,t,n,o){var s=VD(t,Array.isArray(e)?e:[e]);uu[n]||(uu[n]=new WeakMap);var a=uu[n],l=[],c=new Set,h=new Set(s),p=function(m){!m||c.has(m)||(c.add(m),p(m.parentNode))};s.forEach(p);var f=function(m){!m||h.has(m)||Array.prototype.forEach.call(m.children,function(y){if(c.has(y))f(y);else try{var v=y.getAttribute(o),k=v!==null&&v!=="false",S=(Li.get(y)||0)+1,b=(a.get(y)||0)+1;Li.set(y,S),a.set(y,b),l.push(y),S===1&&k&&lu.set(y,!0),b===1&&y.setAttribute(n,"true"),k||y.setAttribute(o,"true")}catch(x){console.error("aria-hidden: cannot operate on ",y,x)}})};return f(t),c.clear(),Nh++,function(){l.forEach(function(m){var y=Li.get(m)-1,v=a.get(m)-1;Li.set(m,y),a.set(m,v),y||(lu.has(m)||m.removeAttribute(o),lu.delete(m)),v||m.removeAttribute(n)}),Nh--,Nh||(Li=new WeakMap,Li=new WeakMap,lu=new WeakMap,uu={})}},BD=function(e,t,n){n===void 0&&(n="data-aria-hidden");var o=Array.from(Array.isArray(e)?e:[e]),s=$D(e);return s?(o.push.apply(o,Array.from(s.querySelectorAll("[aria-live]"))),UD(o,s,n,"aria-hidden")):function(){return null}},sc="Dialog",[gk,sU]=es(sc),[WD,$n]=gk(sc),vk=e=>{const{__scopeDialog:t,children:n,open:o,defaultOpen:s,onOpenChange:a,modal:l=!0}=e,c=_.useRef(null),h=_.useRef(null),[p,f]=af({prop:o,defaultProp:s??!1,onChange:a,caller:sc});return C.jsx(WD,{scope:t,triggerRef:c,contentRef:h,contentId:kh(),titleId:kh(),descriptionId:kh(),open:p,onOpenChange:f,onOpenToggle:_.useCallback(()=>f(m=>!m),[f]),modal:l,children:n})};vk.displayName=sc;var yk="DialogTrigger",wk=_.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,s=$n(yk,n),a=_t(t,s.triggerRef);return C.jsx(Qe.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":vf(s.open),...o,ref:a,onClick:Ge(e.onClick,s.onOpenToggle)})});wk.displayName=yk;var mf="DialogPortal",[qD,bk]=gk(mf,{forceMount:void 0}),Sk=e=>{const{__scopeDialog:t,forceMount:n,children:o,container:s}=e,a=$n(mf,t);return C.jsx(qD,{scope:t,forceMount:n,children:_.Children.map(o,l=>C.jsx(rs,{present:n||a.open,children:C.jsx(sf,{asChild:!0,container:s,children:l})}))})};Sk.displayName=mf;var Fu="DialogOverlay",kk=_.forwardRef((e,t)=>{const n=bk(Fu,e.__scopeDialog),{forceMount:o=n.forceMount,...s}=e,a=$n(Fu,e.__scopeDialog);return a.modal?C.jsx(rs,{present:o||a.open,children:C.jsx(HD,{...s,ref:t})}):null});kk.displayName=Fu;var GD=ga("DialogOverlay.RemoveScroll"),HD=_.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,s=$n(Fu,n);return C.jsx(fk,{as:GD,allowPinchZoom:!0,shards:[s.contentRef],children:C.jsx(Qe.div,{"data-state":vf(s.open),...o,ref:t,style:{pointerEvents:"auto",...o.style}})})}),Ko="DialogContent",Ak=_.forwardRef((e,t)=>{const n=bk(Ko,e.__scopeDialog),{forceMount:o=n.forceMount,...s}=e,a=$n(Ko,e.__scopeDialog);return C.jsx(rs,{present:o||a.open,children:a.modal?C.jsx(KD,{...s,ref:t}):C.jsx(YD,{...s,ref:t})})});Ak.displayName=Ko;var KD=_.forwardRef((e,t)=>{const n=$n(Ko,e.__scopeDialog),o=_.useRef(null),s=_t(t,n.contentRef,o);return _.useEffect(()=>{const a=o.current;if(a)return BD(a)},[]),C.jsx(xk,{...e,ref:s,trapFocus:n.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:Ge(e.onCloseAutoFocus,a=>{a.preventDefault(),n.triggerRef.current?.focus()}),onPointerDownOutside:Ge(e.onPointerDownOutside,a=>{const l=a.detail.originalEvent,c=l.button===0&&l.ctrlKey===!0;(l.button===2||c)&&a.preventDefault()}),onFocusOutside:Ge(e.onFocusOutside,a=>a.preventDefault())})}),YD=_.forwardRef((e,t)=>{const n=$n(Ko,e.__scopeDialog),o=_.useRef(!1),s=_.useRef(!1);return C.jsx(xk,{...e,ref:t,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:a=>{e.onCloseAutoFocus?.(a),a.defaultPrevented||(o.current||n.triggerRef.current?.focus(),a.preventDefault()),o.current=!1,s.current=!1},onInteractOutside:a=>{e.onInteractOutside?.(a),a.defaultPrevented||(o.current=!0,a.detail.originalEvent.type==="pointerdown"&&(s.current=!0));const l=a.target;n.triggerRef.current?.contains(l)&&a.preventDefault(),a.detail.originalEvent.type==="focusin"&&s.current&&a.preventDefault()}})}),xk=_.forwardRef((e,t)=>{const{__scopeDialog:n,trapFocus:o,onOpenAutoFocus:s,onCloseAutoFocus:a,...l}=e,c=$n(Ko,n),h=_.useRef(null),p=_t(t,h);return oD(),C.jsxs(C.Fragment,{children:[C.jsx(sk,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:s,onUnmountAutoFocus:a,children:C.jsx(Qu,{role:"dialog",id:c.contentId,"aria-describedby":c.descriptionId,"aria-labelledby":c.titleId,"data-state":vf(c.open),...l,ref:p,onDismiss:()=>c.onOpenChange(!1)})}),C.jsxs(C.Fragment,{children:[C.jsx(JD,{titleId:c.titleId}),C.jsx(XD,{contentRef:h,descriptionId:c.descriptionId})]})]})}),gf="DialogTitle",_k=_.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,s=$n(gf,n);return C.jsx(Qe.h2,{id:s.titleId,...o,ref:t})});_k.displayName=gf;var Ek="DialogDescription",Tk=_.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,s=$n(Ek,n);return C.jsx(Qe.p,{id:s.descriptionId,...o,ref:t})});Tk.displayName=Ek;var Pk="DialogClose",Ck=_.forwardRef((e,t)=>{const{__scopeDialog:n,...o}=e,s=$n(Pk,n);return C.jsx(Qe.button,{type:"button",...o,ref:t,onClick:Ge(e.onClick,()=>s.onOpenChange(!1))})});Ck.displayName=Pk;function vf(e){return e?"open":"closed"}var Ik="DialogTitleWarning",[aU,Rk]=VL(Ik,{contentName:Ko,titleName:gf,docsSlug:"dialog"}),JD=({titleId:e})=>{const t=Rk(Ik),n=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users. 92 93If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component. 94 95For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return _.useEffect(()=>{e&&(document.getElementById(e)||console.error(n))},[n,e]),null},QD="DialogDescriptionWarning",XD=({contentRef:e,descriptionId:t})=>{const o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${Rk(QD).contentName}}.`;return _.useEffect(()=>{const s=e.current?.getAttribute("aria-describedby");t&&s&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null},ZD=vk,lU=wk,ej=Sk,Ok=kk,Lk=Ak,zk=_k,Nk=Tk,tj=Ck;const nj=ZD,rj=ej,Mk=_.forwardRef(({className:e,...t},n)=>C.jsx(Ok,{ref:n,className:Je("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",e),...t}));Mk.displayName=Ok.displayName;const Dk=_.forwardRef(({className:e,children:t,...n},o)=>C.jsxs(rj,{children:[C.jsx(Mk,{}),C.jsxs(Lk,{ref:o,className:Je("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rou
95nded-lg",e),...n,children:[t,C.jsxs(tj,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity data-[state=open]:bg-accent data-[state=open]:text-muted-foreground hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",children:[C.jsx(ff,{className:"h-4 w-4"}),C.jsx("span",{className:"sr-only",children:"Close"})]})]})]}));Dk.displayName=Lk.displayName;const jk=({className:e,...t})=>C.jsx("div",{className:Je("flex flex-col space-y-1.5 text-center sm:text-left",e),...t});jk.displayName="DialogHeader";const Fk=({className:e,...t})=>C.jsx("div",{className:Je("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",e),...t});Fk.displayName="DialogFooter";const $k=_.forwardRef(({className:e,...t},n)=>C.jsx(zk,{ref:n,className:Je("text-lg font-semibold leading-none tracking-tight",e),...t}));$k.displayName=zk.displayName;const Vk=_.forwardRef(({className:e,...t},n)=>C.jsx(Nk,{ref:n,className:Je("text-sm text-muted-foreground",e),...t}));Vk.displayName=Nk.displayName;function oj(e){const t=_.useRef({value:e,previous:e});return _.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}var ac="Switch",[ij]=es(ac),[sj,aj]=ij(ac),Uk=_.forwardRef((e,t)=>{const{__scopeSwitch:n,name:o,checked:s,defaultChecked:a,required:l,disabled:c,value:h="on",onCheckedChange:p,form:f,...m}=e,[y,v]=_.useState(null),k=_t(t,P=>v(P)),S=_.useRef(!1),b=y?f||!!y.closest("form"):!0,[x,E]=af({prop:s,defaultProp:a??!1,onChange:p,caller:ac});return C.jsxs(sj,{scope:n,checked:x,disabled:c,children:[C.jsx(Qe.button,{type:"button",role:"switch","aria-checked":x,"aria-required":l,"data-state":Gk(x),"data-disabled":c?"":void 0,disabled:c,value:h,...m,ref:k,onClick:Ge(e.onClick,P=>{E(I=>!I),b&&(S.current=P.isPropagationStopped(),S.current||P.stopPropagation())})}),b&&C.jsx(qk,{control:y,bubbles:!S.current,name:o,value:h,checked:x,required:l,disabled:c,form:f,style:{transform:"translateX(-100%)"}})]})});Uk.displayName=ac;var Bk="SwitchThumb",Wk=_.forwardRef((e,t)=>{const{__scopeSwitch:n,...o}=e,s=aj(Bk,n);return C.jsx(Qe.span,{"data-state":Gk(s.checked),"data-disabled":s.disabled?"":void 0,...o,ref:t})});Wk.displayName=Bk;var lj="SwitchBubbleInput",qk=_.forwardRef(({__scopeSwitch:e,control:t,checked:n,bubbles:o=!0,...s},a)=>{const l=_.useRef(null),c=_t(l,a),h=oj(n),p=aS(t);return _.useEffect(()=>{const f=l.current;if(!f)return;const m=window.HTMLInputElement.prototype,v=Object.getOwnPropertyDescriptor(m,"checked").set;if(h!==n&&v){const k=new Event("click",{bubbles:o});v.call(f,n),f.dispatchEvent(k)}},[h,n,o]),C.jsx("input",{type:"checkbox","aria-hidden":!0,defaultChecked:n,...s,tabIndex:-1,ref:c,style:{...s.style,...p,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});qk.displayName=lj;function Gk(e){return e?"checked":"unchecked"}var Hk=Uk,uj=Wk;const ea=_.forwardRef(({className:e,...t},n)=>C.jsx(Hk,{className:Je("peer inline-flex h-6 w-11 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent transition-colors data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:cursor-not-allowed disabled:opacity-50",e),...t,ref:n,children:C.jsx(uj,{className:Je("pointer-events-none block h-5 w-5 rounded-full bg-background shadow-lg ring-0 transition-transform data-[state=checked]:translate-x-5 data-[state=unchecked]:translate-x-0")})}));ea.displayName=Hk.displayName;var cj="Label",Kk=_.forwardRef((e,t)=>C.jsx(Qe.label,{...e,ref:t,onMouseDown:n=>{n.target.closest("button, input, select, textarea")||(e.onMouseDown?.(n),!n.defaultPrevented&&n.detail>1&&n.preventDefault())}}));Kk.displayName=cj;var Yk=Kk;const dj=pf("text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),ta=_.forwardRef(({className:e,...t},n)=>C.jsx(Yk,{ref:n,className:Je(dj(),e),...t}));ta.displayName=Yk.displayName;var hj="Separator",cw="horizontal",pj=["horizontal","vertical"],Jk=_.forwardRef((e,t)=>
95{const{decorative:n,orientation:o=cw,...s}=e,a=fj(o)?o:cw,c=n?{role:"none"}:{"aria-orientation":a==="vertical"?a:void 0,role:"separator"};return C.jsx(Qe.div,{"data-orientation":a,...c,...s,ref:t})});Jk.displayName=hj;function fj(e){return pj.includes(e)}var Qk=Jk;const Su=_.forwardRef(({className:e,orientation:t="horizontal",decorative:n=!0,...o},s)=>C.jsx(Qk,{ref:s,decorative:n,orientation:t,className:Je("shrink-0 bg-border",t==="horizontal"?"h-[1px] w-full":"h-full w-[1px]",e),...o}));Su.displayName=Qk.displayName;const Xk=_.createContext(void 0),mj=["en","fr","de","it"];function gj(e){return e.match(/^\/(en|fr|de|it)(\/|$)/)?.[1]||void 0}const vj=({children:e})=>{const t=NI({select:p=>p.location.pathname}),n=gj(t),[o,s]=_.useState(n??"en"),[a,l]=_.useState("EUR");_.useEffect(()=>{n&&n!==o&&s(n)},[n]),_.useEffect(()=>{if(typeof window>"u")return;if(!n){const f=window.localStorage.getItem("smartiz_language");f&&mj.includes(f)&&f!==o&&s(f)}const p=window.localStorage.getItem("smartiz_currency");p&&l(p)},[]),_.useEffect(()=>{typeof document<"u"&&(document.documentElement.lang=o)},[o]);const c=p=>{s(p),typeof window<"u"&&window.localStorage.setItem("smartiz_language",p)},h=p=>{l(p),typeof window<"u"&&window.localStorage.setItem("smartiz_currency",p)};return C.jsx(Xk.Provider,{value:{language:o,currency:a,setLanguage:c,setCurrency:h},children:e})},Zk=()=>{const e=_.useContext(Xk);if(!e)throw new Error("useLocale must be used within LocaleProvider");return e},eA={nav:{features:"Features",pricing:"Pricing",testimonials:"Testimonials",resources:"Resources",getStarted:"Get Started",talkToUs:"Book a demo"},hero:{badge:"Agentic AI for Hospitality",title:"The only WhatsApp-first",titleHighlight:"Agentic AI platform for hospitality pros",subtitle:"Built for short-term rental professionals and hotels, smartiz's hospitality solution detects guest sentiment, create and manage tasks for you, and autonomously manages guest communications - all on WhatsApp, already installed on 4 billion devices.",ctaPrimary:"Start Free Trial",ctaSecondary:"Watch smartiz!",stat1Label:"Active Users Worldwide",stat2Label:"Tasks Auto-Detected",stat3Label:"Response Time",stat4Label:"WhatsApp Interactions Handled"},trustedBy:{title:"Trusted by leading brands",award:"ð Grand Prix Jeune Pousse 2026 â Rendez-vous des Pros de la Location Saisonnière"},stats:{title:"Why WhatsApp? Because It's Already Everywhere",subtitle:"One Platform. Infinite Possibilities.",conversations:"4B+",conversationsLabel:"WhatsApp Users Worldwide",responseTime:"99%",responseTimeLabel:"Read Messages",satisfaction:"+80%",satisfactionLabel:"Engagement vs Emails",automation:"Rich Media",automationLabel:"Maximum Flexibility",cta:"Book a demo"},features:{title:"Agentic AI Features That Actually Work",subtitle:"From autonomous sentiment detection to intelligent task management - agentic AI hospital
95ity solutions designed for modern property managers",sectionTitle:"Everything You Need to Delight Your Guests",sectionSubtitle:"Powerful features designed specifically for short-term rental professionals",whatsappAutomation:{title:"Intelligent WhatsApp Automation",description:"Automated messaging workflows handling 80% of communications through one simple channel guests already use."},sentiment:{title:"Real-Time Guest Sentiment",description:"Curated polls and nudges to gather feedback at the right moment, preventing bad reviews before they happen."},mobileFirst:{title:"Mobile-First Operations",description:"One platform, one channel for your guests, owners, cleaning and technical teams. Manage everything on the go."},fastSetup:{title:"Lightning Fast Setup",description:"Get started in minutes, not weeks. No complex integrations or technical knowledge required."},gdpr:{title:"GDPR Compliant",description:"Enterprise-grade security and data protection. Your guests' information is always safe."},support:{title:"24/7 Automated Support",description:"Never miss a guest message. Automated responses handle common questions instantly, any time of day."}},aiFeatures:{badge:"AI-First Features",title:"AI-First Features That Actually Work",subtitle:"From sentiment detection to world-premiere guest books - everything designed for hospitality professionals",copilot:{title:"AI Copilot & Autopilot",description:"Choose your level of automation. Let smartiz AI suggest responses (Copilot) or handle conversations automatically (Autopilot)."},sentimentAnalysis:{title:"Real-Time Sentiment Analysis",description:"Our AI monitors every conversation and flags guests with degrading sentiment, so management can intervene before issues escalate."},taskDetection:{title:"Automatic Task Detection",description:"AI finds tasks hidden in conversations - guest requests, staff discussions - and surfaces them in real-time dashboards."},whatsappFirst:{title:"WhatsApp-First Platform",description:"Why build another app? WhatsApp is already on 4 billion devices. We make it your operations command center."},staffIntegration:{title:"Staff WhatsApp Integration",description:"Connect your existing operational WhatsApp groups and elevate discussions into tangible, actionable dashboards."},guestBook:{title:"World-Premiere Guest Book",description:"Generate personalized, interactive guest books in under 3 minutes. Drive better experiences and create upsell opportunities."},automatedComms:{title:"Automated Guest Communications",description:"From check-in instructions to upsell offers, smartiz AI handles 80% of guest communications intelligently."}
95,experiencePlatform:{title:"Experience Platform, Not Just Software",description:"We don't just manage operations - we transform the entire guest experience through intelligent automation."}},showcase:{badge:"Product Features",title:"See smartiz in Action",subtitle:"AI-first features designed specifically for hotels and STR professionals",whatsappBadge:"Automated",whatsappTitle:"Fully Automated WhatsApp Guest Messaging",whatsappDescription:"Automate and streamline your guest communications with your personalised WhatsApp messaging workflow.",copilotBadge:"Autopilot",copilotTitle:"AI Copilot & Autopilot Modes",copilotDescription:"Let AI suggest responses or handle 80% of conversations automatically while you focus on what matters.",tasksBadge:"Smart Detection",tasksTitle:"Automatic Task Extraction",tasksDescription:"AI surfaces hidden tasks from conversations and staff discussions into actionable dashboards.",sentimentBadge:"AI-Powered",sentimentTitle:"Real-Time Sentiment Analysis",sentimentDescription:"Detect guest sentiment changes instantly and intervene before issues escalate into negative reviews.",workflowBadge:"Advanced",workflowTitle:"Advanced Workflow Capabilities",workflowDescription:"Design a messaging workflow that aligns to your strategy and brand.",guestbookBadge:"World Premiere",guestbookTitle:"Guest Books in Under 3 Minutes",guestbookDescription:"Generate personalized, interactive guest books that drive exceptional experiences and upsell opportunities.",pricingCta:"See our pricing"},integrations:{badge:"Integrations",title:"Works With Your Existing Tools",subtitle:"smartiz integrates seamlessly with your favorite property management, smart lock, and payment platforms",pms:{title:"PMS Integration",description:"Seamlessly connect with your existing property management system"},smartLock:{title:"Smart Lock Integration",description:"Integrate with leading smart lock providers"},payments:{title:"Payment Solutions",description:"Accept payments through multiple providers"},comingSoon:"Coming Soon",andMore:"and many more"},testimonials:{title:"Loved by Guests, Rental Professionals & Hotels",subtitle:"See what our users are saying about smartiz",testimonial1:{name:"Co-founder",role:"Swiss Chalet Services",company:"Switzerland",content:"With smartiz, I save time & money. I was able to deal with the high season with great reviews and one less FTE in my team."},testimonial2:{name:"Ed",role:"Guest",company:"Swiss Chalet Services",content:"The concierge service via WhatsApp was spot on. Super helpful and kind."},testimonial3:{name:"Large Hotel & Serviced Apartment Operator",role:"Bulle",company:"Switzerland",content:"Collaborating with smartiz means working with a team with a strong human-centric approach and an obsession over customer satisfaction."}},faq:{badge:"FAQ",title:"Frequently Asked Questions",subtitle:"Everything you need to know about smartiz",q1:{question:"How long does onboarding take, and what support do you provide?",answer:"We'll have you up and running in no time. We always suggest a gradual increase of your operations with smartiz, starting with our inbox and task management modules, to get you and your team acquainted with what we do. Within a few days after that, we set up your first workflow. In the meantime, our team works with you to evaluate further changes to your ways of working which might result in implementing our advanced workflow engine. You have a dedicated onboarding team with you at all times."},q2:{question:"How secure is my data and is Smartiz GDPR / privacy compliant?",answer:"Yes. smartiz is fully GDPR-compliant. Guest data is encrypted and never used for third-party purposes. Privacy and data protection are built into our system."},q3:{question:"Does Smartiz support multi-language messaging and localising guest communications?",answer:"Yes. Smartiz supports multiple languages and we keep adding more. You can customise the contents of your messages as and when required."},q4:{question:"Can I customise messages in the smartiz workflow?",answer:"Absolutely. You can add or remove certain steps, change the timing of certain messages, as well as adapt your workflow to the duration of the stay and many more possibilities. Your imagination is the limit, most likely."},q5:{question:"What happens if WhatsApp or OTAs change their rules and policies?",answer:"smartiz stays fully compliant with WhatsApp and OTAs and adapts to policy changes. You'll always have reliable, uninterrupted service."},q6:{question:"What if my guests don't have WhatsApp?",answer:"No problem. smartiz automatically falls back to email when WhatsApp isn't available, ensuring every guest stays informed."},q7:{question:"I don't have a PMS or channel manager, how does it work?",answer:"You can still use smartiz by adding the guest details manually. We'll help you get started even without any integrations."}},comparison:{title:"Why smartiz Is Different",subtitle:"We're not another guest management tool - we're an agentic AI hospital
95ity platform that works autonomously",without:"Traditional Tools",with:"smartiz Agentic AI",withoutList:{item1:"Multiple platforms and apps to manage",item2:"Manual message responses draining your time",item3:"No insight into guest sentiment until it's too late",item4:"Hidden tasks and requests get lost in chats",item5:"Staff using disconnected WhatsApp groups",item6:"Generic, time-consuming guest information"},withList:{item1:"One platform - WhatsApp, already on 4B devices",item2:"AI Copilot & Autopilot handling 80% of messages",item3:"Real-time sentiment analysis flags issues early",item4:"AI extracts tasks from conversations automatically",item5:"Operational WhatsApp groups elevated to dashboards",item6:"World-premiere guest books in under 3 minutes"}},footer:{description:"The WhatsApp-first guest management platform for short-term rental professionals",followUs:"Follow us",product:"Product",company:"Company",legal:"Legal",whySmartiz:"Why smartiz?",benefits:"Benefits",pricing:"Pricing",faq:"FAQ",support:"Support",aboutUs:"About us",news:"News",resources:"Resources",privacyPolicy:"Privacy & Cookie Policy",termsOfService:"Terms of Services",cookiePreferences:"Cookie Preferences",copyright:"© 2021-2026 smartiz.ai · All rights reserved · Made with â¤ï¸ in Switzerland ð¨ð"},resources:{sectionTitle:"Latest Resources",sectionSubtitle:"Insights and guides for hospitality professionals",viewAll:"View all"},resourcesPage:{title:"Resources",subtitle:"Articles, guides, and insights for hospitality professionals.",searchPlaceholder:"Search articles...",all:"All",minRead:"min read",noArticles:"No articles found.",notFound:"Article not found",backToResources:"Back to resources",relatedArticles:"Related Articles",seoTitle:"Resources - smartiz | Articles & Insights for Hospitality",seoDescription:"Explore articles, guides, and insights about short-term rental management, property operations, AI in hospitality, and more."},order:{loading:"Loading order...",notFound:"Order not found",alreadySigned:"This order has already been signed",pageTitle:"Your Personalised Smartiz Offer",pageSubtitle:"Please review and confirm your personalised offer",step1Title:"Order Summary",step2Title:"Review & Sign",termsCardTitle:"Terms & Conditions",basePrice:"Base",addOnModules:"Add-on Modules",subtotal:"Subtotal",monthlyTotal:"Monthly Total",annualTotal:"Annual Total",discount:"Total Discount",applied:"Applied",property:"property",properties:"properties",room:"room",rooms:"rooms",perMonth:"/month",monthlyAddOns:"Recurring monthly add-ons",freeTrial:"Free Trial Months",nextButton:"Next",backButton:"Back",signatureName:"Full Name",signatureEmail:"Email Address",termsAccept:"I accept the",termsLink:"Terms and Conditions",submitButton:"Sign & Submit Order",submitting:"Submitting...",thankYou:"Thank you!",orderSigned:"Your order has been signed successfully",completeFields:"Please complete all fields and accept terms",errorLoading:"Failed to load order",errorSubmitting:"Failed to submit order",offerValidUntil:"This offer is valid until",expired:{title:"Offer Expired",message:"This offer has expired and is no longer available for signing.",extendButton:"Extend for 24 Hours",requestExtensionButton:"Request Extension",extending:"Extending...",extendedSuccess:"Offer extended! You now have 24 hours to sign.",requestSent:"Extension request sent! Our team will review it shortly.",requestAlreadySent:"An extension request has already been submitted for this offer.",contactSales:"Please contact our sales team for assistance."}},pricing:{badge:"Simple, Transparent Pricing",title:"Choose Your Perfect Plan",subtitle:"Pay per reservation. Scale as you grow. No hidden fees.",perReservation:"/reservation",freeReservations:"free reservations",mostPopular:"Most Popular",getStarted:"Get Started",contactSales:"Contact Sales",billingNote:"Monthly billing based on the number of reservations completed in the past month.",cancelledNote:"Cancelled bookings after 72h = 20% of the rate.",minimumNote:"Minimum of {amount} reservations deducted per month.",vatExcluded:"VAT excluded.",needCustom:"Need a custom solution for your enterprise?",trialInfo:"All plans include a free trial ⢠No credit card required ⢠Cancel anytime",connectionFees:"* Connection fees may apply.",tiers:{essential:{name:"Essential",tagline:"Guest communications"},advanced:{name:"Advanced",tagline:"Essential + SmartizAI Agent Basic"},expert:{name:"Expert",tagline:"Advanced + Operations Orchestration + SmartizAI Agent Pro"}},essentialFeatures:["Unified Inbox & WhatsApp Integration","Digital guest book","Manual task creation & operations: housekeeping, welcome agent, maintenance","Integrations: PMS, Smart Keylocks*, Payment Providers"],advancedFeatures:["Everything in Essential, plus:","Guest sentiment analysis","Automatic sequencing of communications","Automatic responses via AI","AI-powered task creation","KYC analysis via AI"],expertFeatures:["Everything in Advanced, plus:","Complete orchestration of your operations via AI","Client Relationship Management","Reporting & Analytics","Dedicated account manager","Custom integrations"],expertModulesLabel:"Cho
95ose up to 2 additional modules from the library:",expertModules:["Deposit Management (Stripe or Swikly)","Upselling","Owner Management"]},cta:{title:"Ready to Experience smartiz?",subtitle:"Join forward-thinking hotels and STR professionals using smartiz's agentic AI to autonomously deliver exceptional guest experiences on WhatsApp.",ctaPrimary:"Start Free Trial",ctaSecondary:"Book a Demo",feature1:"No credit card required",feature2:"14-day free trial",feature3:"Agentic AI Copilot & Autopilot",buttonText:"Book a demo"},signup:{backToPricing:"Back to Pricing",title:"Get Started with smartiz",subtitle:"Complete your details to start your journey with smartiz",yourSelection:"Your Selection:",shortTermRental:"Short-term Rental",hotel:"Hotel",units:"units",contactInfo:"Contact Information",fullName:"Full Name",email:"Email Address",phone:"Phone Number",companyInfo:"Company Information",companyName:"Company Name or Brand (optional)",billingAddress:"Billing Address",streetAddress:"Street Address",city:"City",postalCode:"Postal Code",country:"Country",processing:"Processing...",completeDetails:"Complete Basic Details",required:"*",errorFillFields:"Please fill in all required fields",errorInvalidEmail:"Please enter a valid email address",errorSaveFailed:"Failed to save your information. Please try again.",errorGeneral:"Something went wrong. Please try again."},cookies:{title:"Privacy & Cookie Policy",lastUpdated:"Last updated: September 22, 2026",whatAreCookies:"What Are Cookies",whatAreCookiesText:"Cookies are small text files that are placed on your device when you visit our website. They help us provide you with a better experience by remembering your preferences and understanding how you use our site.",howWeUse:"How We Use Cookies",howWeUseText:"Smartiz uses cookies for the following purposes:",essential:"Essential Cookies",essentialText:"These cookies are necessary for the website to function properly. They enable basic functions like page navigation and access to secure areas.",analytics:"Analytics Cookies",analyticsText:"We use these cookies to understand how visitors interact with our website, helping us improve functionality and content.",preference:"Preference Cookies",preferenceText:"These cookies allow our website to remember choices you make (such as language preferences) to provide enhanced features.",marketing:"Marketing Cookies",marketingText:"These cookies track your online activity to help us deliver more relevant advertising and measure campaign effectiveness.",typesTitle:"Types of Cookies We Use",sessionCookies:"Session Cookies",sessionCookiesText:"Temporary cookies that are deleted when you close your browser. They help us maintain your session as you navigate through our website.",persistentCookies:"Persistent Cookies",persistentCookiesText:"These cookies remain on your device for a set period or until you delete them. They help us remember your preferences for future visits.",thirdParty:"Third-Party Cookies",thirdPartyText:"Some cookies are placed by third-party services that appear on our pages, such as analytics providers and social media platforms.",managing:"Managing Cookies",managingText1:"You have the right to accept or decline cookies. Most web browsers automatically accept cookies, but you can modify your browser settings to decline cookies if you prefer.",managingText2:"Here's how to manage cookies in popular browsers:",chrome:"Chrome: Settings â Privacy and security â Cookies and other site data",firefox:"Firefox: Settings â Privacy & Security â Cookies and Site Data",safari:"Safari: Preferences â Privacy â Manage Website Data",edge:"Edge: Settings â Cookies and site permissions â Cookies and site data",managingNote:"Please note that disabling cookies may affect the functionality of our website and limit your access to certain features.",consent:"Your Consent",consentText:"Optional storage is used only when you choose it. You can withdraw or change your choice at any time through the cookie preferences link in our footer.",changes:"Changes to This Policy",changesText:"We may update this Cookie Policy from time to time to reflect changes in our practices or for operational, legal, or regulatory reasons. We encourage you to review this page periodically for the latest information.",contact:"Contact Us",contactText:"If you have any questions about our use of cookies, please contact us at:"},cookiePreferences:{title:"Cookie Preferences",description:"Choose which optional browser-storage c
95ategories smartiz may use. Necessary storage is always active.",necessary:"Necessary storage",necessaryDesc:"Required for consent records, security, authentication, and requested site flows. It cannot be disabled here.",functional:"Functional storage",functionalDesc:"Remembers choices such as your language and currency.",analyticsTitle:"Analytics storage",analyticsDesc:"Permits analytics storage if an analytics service is present. No analytics tracker is currently installed in the public site code.",marketingTitle:"Marketing storage",marketingDesc:"Permits marketing storage if a marketing service is present. No advertising tracker is currently installed in the public site code.",declineAll:"Decline All",acceptAll:"Accept All",savePreferences:"Save Preferences"},about:{heroTitle:"Transforming Hospitality with AI",heroSubtitle:"We're a team of innovators, engineers, and hospitality experts on a mission to create seamless guest experiences through intelligent technology.",teamTitle:"Our Team",advisorsTitle:"Board of Advisors & Mentors",valuesTitle:"Our Values",careersTitle:"Become a Smartizian",careersSubtitle:"Join a team of passionate innovators who are shaping the future of hospitality. At Smartiz, you'll work on challenging problems, grow your skills, and make a real impact on how millions of guests experience hospitality worldwide.",applyNow:"Apply Now",firstName:"First Name",lastName:"Last Name",email:"Email",phone:"Phone",linkedin:"LinkedIn URL",uploadCV:"Upload CV/Resume",submitting:"Submitting...",submitApplication:"Submit Application",uploadCVError:"Please upload your CV",applicationError:"Failed to submit application",coFounderCEO:"Co-Founder & CEO",coFounderCTO:"C
95o-Founder & CTO",backendDev:"Backend Developer",laurentDesc:"Reimagining the hospitality guest experience. Bringing together passion for technology and hospitality to create seamless solutions.",olivierDesc:"Technology leader with deep expertise in engineering and digital solutions, driving technical innovation in hospitality.",aurelienDesc:"Expert backend engineer building robust and scalable systems to power modern hospitality solutions.",madhurDesc:"Robotics engineer, Advisory Board Member, and Fractional CSO at Innosuisse. Expert in Lean Product Development and SME innovation. TiE50 Global Winner with publications on metanational dynamics.",matteoDesc:"AI expert at Dell Technologies, specializing in computer vision and embedded deep learning. Holds patents in image-based behavioral profiling and medical intubation prediction. Contributed to H2020 Eyes of Things and FANCI projects.",egbertDesc:"Multilingual hospitality professional with expertise in inspiring leadership and hotel performance improvement. Long-time volunteer in fundraising for UNICEF Belgium and Oxfam.",arthurDesc:"Administrator at Valfor, overseeing luxury hospitality businesses in the Swiss Alps. Seasoned executive with deep expertise in alpine tourism management, strategic operations, and sustainable luxury property development.",philippeDesc:"Seasoned board member and advisor with roles as BoA for Mobilis and Chair of the International School Basel. Expertise in governance, international education, and corporate strategy across non-profits and enterprises.",value1Title:"Innovation First",value1Desc:"We push boundaries and embrace cutting-edge technology to solve real problems.",value2Title:"Guest-Centric",value2Desc:"Every decision we make is guided by improving the guest experience.",value3Title:"Trans
95parency",value3Desc:"We build trust through open communication and honest relationships.",value4Title:"Continuous Growth",value4Desc:"We invest in our team's development and celebrate learning from failures."},applicationThankYou:{thankYouTitle:"Thank You",receivedApplication:"We've received your application and our AI has already started reviewing your profile.",whatWeLearnedTitle:"What we learned about you:",currentRole:"Current role:",experience:"Experience:",year:"year",years:"years",keySkills:"Key skills:",excitedToLearn:"We're excited to learn more about your experience in",teamReview:"Our team will review your application in detail and reach out to you at",within:"within the next 3-5 business days.",whatHappensTitle:"What happens next?",step1:"Our hiring team will thoroughly review your CV and profile",step2:"If your profile matches our needs, we'll schedule a call to discuss opportunities",step3:"We'll keep you updated throughout the process",backToAbout:"Back to About",goToHome:"Go to Home"},terms:{title:"Terms & Conditions and Data Processing",subtitle:"Please review our general terms and conditions and data processing agreement",termsTitle:"General Terms & Conditions",dpaTitle:"Data Processing Agreement",download:"Download",downloadPDF:"Download PDF",clickToDownload:"Click the button below to download the document."},modules:{whatsapp:{name:"WhatsApp Integration",description:"Foundational"},ai_copilot:{name:"Smartiz Agentic AI: Co-pilot & Autopilot",description:"Foundational"},workflow_editor:{name:"Smartiz Workflow Editor",description:"Foundational"},sentiment:{name:"Guest Sentiment Tracking",description:"Foundational"},inbox:{name:"Unified Inbox (WhatsApp + Emails - more coming soon)",description:"Foundational"},auto_tasks:{name:"Auto-generation and Tracking of Tasks",description:"Foundational"},tasks:{name:"Task Management Module",description:"Foundational"},task_distribution:{name:"Tasks Distribution to Staff WhatsApp Groups",description:"Foundational"},knowledge_base:{name:"Tailored Knowledge Base",description:"Foundational"},deposits:{name:"Deposit Management Module",description:"Premium add-on"},housekeeping:{name:"Housekeeping Module",description:"Premium add-on"},maintenance:{name:"Maintenance Module",description:"Premium add-on"},marketing:{name:"Marketing Module",description:"Premium add-on"},payouts:{name:"Payouts & Owners Module",description:"Premium add-on"},upsells:{name:"Upsells Module",description:"Premium add-on"},igloohome_keybox:{name:"igloohome Keybox Integration",description:"Smart keybox access managed via smartiz"}},pricingModules:{whatsapp:{name:"WhatsApp Integration",description:"Foundational"},ai_copilot:{name:"Smartiz Agentic AI: Co-pilot & Autopilot",description:"Foundational"},workflow_editor:{name:"Standard Messaging Workflow",description:"Foundational"},sentiment:{name:"Guest Sentiment Tracking",description:"Foundational"},inbox:{name:"Unified Inbox (WhatsApp + Emails - more coming soon)",description:"Foundational"},auto_tasks:{name:"Auto-generation and Tracking of Tasks",description:"Foundational"},tasks:{name:"Task Management Module",description:"Foundational"},task_distribution:{name:"Tasks Distribution to Staff WhatsApp Groups",description:"Foundational"},knowledge_base:{name:"Tailored Knowledge Base",description:"Foundational"},deposits:{name:"Deposit Management Module",description:"Premium add-on"},housekeeping:{name:"Housekeeping Module",description:"Premium add-on"},maintenance:{name:"Maintenance Module",description:"Premium add-on"},marketing:{name:"Marketing Module",description:"Premium add-on"},payouts:{name:"Payouts & Owners Module",description:"Premium add-on"},upsells:{name:"Upsells Module",description:"Premium add-on"},igloohome_keybox:{name:"igloohome Keybox Integration",description:"Smart keybox access managed via smartiz"},customIntegrations:{name:"Custom integrations",description:"Tailored integration solutions"},tailoredOnboarding:{name:"Tailored onboarding",description:"Personalized setup process"},premiumOnboarding:{name:"Premium onboarding",description:"White-glove setup experience"},dedicatedSupport:{name:"Dedicated support & training",description:"Priority assistance and training"}},newsPage:{title:"News",subtitle:"Press releases, industry articles, and events from the smartiz team.",noArticles:"No news articles yet. Check back soon!",
95seoTitle:"News - smartiz | Press, Articles & Events",seoDescription:"Stay up to date with smartiz news, press releases, industry articles, and events in hospitality technology.",minRead:"min read",backToNews:"Back to news",notFound:"Article not found"},v2:{home:{hero:{kicker:"For concierge services, hotels and gîtes · Official WhatsApp Business platform",title:"Take back control of your guests and your teams. Without being glued to the phone.",subtitle:"Smartiz is the all-in-one WhatsApp platform for concierge services, hotels and gîtes. Smartiz AI answers your guests, detects and assigns tasks to your teams, and sells your additional services. It executes, you stay in control.",cta:"Book a demo",visualPlaceholder:"[VISUAL] Visual to be produced: product photos and a phone with WhatsApp, in the spirit of the current site (smartiz.ai)",stats:[{value:"95%",label:"of automation, messages and tasks"},{value:"< 10 min",label:"of intervention per stay"},{value:"4M+",label:"WhatsApp interactions handled"},{value:"4.9â
",label:"guest satisfaction"}]},trust:{titleBefore:"Already more than ",titleHighlight:"20,000",titleAfter:" stays managed by Smartiz",eyebrow:"They trust us",logosAriaLabel:"Smartiz client logos",logoPlaceholder:"Client logo",quotePlaceholder:"Client quote to insert",authorPlaceholder:"Placeholder: name, company, segment",backersLabel:"They support us",backers:"Grand Prix Jeune Pousse 2026 · EHL Innovation Hub · Prix Innovation Canton de Vaud (FIT)",ctaDemo:"Book a demo",ctaClients:"Discover our clients"},segments:{title:"For hospitality professionals",discover:"Discover",items:[{title:"Concierge services",text:"Your guests and your teams are already all on WhatsApp.",imagePlaceholder:"Image: property management company",imageAlt:"Property management breakfast tray by a window"},{title:"Hotels and aparthotels",text:"No extra tool for your teams.",imagePlaceholder:"Image: hotel",imageAlt:"Contemporary hotel"},{title:"Estates and gîte parks",text:"Automate everything while keeping the human touch.",imagePlaceholder:"Image: gîte estate",imageAlt:"Gîte estate with blue shutters and hydrangeas"}]},outcomes:{title:"Everything goes through you. Even on Sunday at 10 pm.",subtitle:"Guests, teams, services: today, you coordinate everything. Smartiz does it for you, on WhatsApp, fast and well.",livedLabel:"What you live with",withLabel:"With Smartiz",cards:[{title:"Guests",lived:"Messages go out by hand, at fixed times, when you have time. Questions come in at 11 pm, and the 6 out of 10 on Booking arrives without warning.",with:["AI answers guests on WhatsApp, at any hour.","Predefined messages go out on their own, right through to the review request.","An unhappy guest? You get an alert so you can step in."]},{title:"Teams",lived:"Ten WhatsApp groups, 300 cleaning photos on the phone, âwhat time are you coming by?â sent by hand. Information gets lost, you chase people.",with:["A guest request becomes a task, in the right group, for the right person.","Cleaning schedules follow bookings and reschedule themselves.","Check-out photos arrive timestamped, with no app to install."]},{title:"What's never sold",lived:"Late check-out, breakfast, next year's stay: nobody offers them, because nobody has time. And if the guest comes back, they go through the platform again, commission included.",with:["Upsells and services are offered at the right moment, and easy to pay for.","Your WhatsApp or email campaigns bring the right clients back directly.","Google reviews are tracked and answered from the same place."]}],ctaDemo:"Book a demo",ctaFeatures:"See all features"},onboarding:{title:"A simple start, in three steps.",subtitle:"Switching tools also means changing habits, for you and your teams. We lived it in our own concierge business. That's why onboarding is led by operators, at your pace: we don't digitise everything at once, we move forward in the order that matters to you.",steps:[{title:"1 · Connect",text:"Your WhatsApp number linked to Meta via the official sign-up. Your PMS, payments and connected locks integrated directly. No PMS? No problem, Smartiz manages your bookings directly."},{title:"2 · Set up with you",text:"We start from the way you work: your messages, your arrival instructions, your teams, your services. From booking to check-out, guest communication that sounds like you."},{title:"3 · Let the AI work",text:"It answers guests, creates tasks and sends them to teams, offers and collects payment for your services. You set the rules at the start, and adjust as you go."}],afterTitle:"And then?",afterText:"Dedicated follow-up, and support that answers on WhatsApp. Just like for your guests.",testimonialPlaceholder:"[TESTIMONIAL] client testimonial slot",cta:"Book a demo"},integrations:{title:"Connected to the tools you already use",subtitle:"PMS, channel managers, connected locks, payments: Smartiz integrates with your stack, without replacing it.",logosAriaLabel:"Smartiz integrations",cta:"See all our integrations"},pricing:{title:"Per-reservation pricing. Suited to your cash flow.",subtitle:"Billing at check-in, when the money is already collected. No hidden fees in low season. Three plans, from â¬1.50 to â¬5 per reservation, your first reservations free.",plans:[{name:"Essential",price:"â¬1.50 / reservation",description:"Get started with WhatsApp"},{name:"Advanced",price:"â¬3 / reservation",description:"Everything you need for the guest experience"},{name:"Expert",price:"â¬5 / reservation",description:"Full operational management",badge:"Most popular"}],cta:"See our detailed pricing"},story:{kicker:"By operators, for operators",text:"Smartiz was born in the field. We run our own concierge business, 25 properties in the Swiss Alps, and we needed a tool suited to that daily reality.",cta:"Discover our story"},finalCta:{title:"Ready to take back control?",subtitle:"Start the adventure now by booking a meeting.",ctaDemo:"Book a demo",ctaWhatsapp:"Or ask your question on WhatsApp"},faq:{title:"Frequently asked questions",items:[{question:"Will my guests accept WhatsApp?",answer:"With our clients, every guest replies on WhatsApp from the first message. Those who don't have it receive the same messages by email."},{question:"Does it work with my PMS? And without a PMS?",answer:"Smartiz integrates with your PMS (see the dedicated page). Without a PMS, you manage your bookings directly in Smartiz."},{question:"How does the AI work?",answer:"It answers guests, creates and sends tasks, offers and collects payment for services. You set the rules: what it can promise, when it must ask you, when a human takes over. Everything it does is visible."},{question:"How long does setup take?",answer:"On average, between one and four weeks, depending on the integrations needed and the number of properties. Onboarding is led by operators."},{question:"Could my WhatsApp number get banned?",answer:"No. Smartiz uses Meta's official API, with your verified number."}
95,{question:"How much does it cost?",answer:"From â¬1.50 to â¬5 per reservation depending on the plan, billed at check-in. Your first reservations are free. Details on the Pricing page."},{question:"When do you see the first results?",answer:"From day one: the first stay handled by the AI is time you no longer spend on the phone. Reviews and upsells follow with the season."}]}},navigation:{ariaLabel:"V2 navigation",openMenu:"Open menu",home:"Home",product:"Product",solutions:"Solutions",pricing:"Pricing",clients:"Clients",resources:"Resources",about:"About",demo:"Book a demo",productItems:{whatsapp:"WhatsApp",guestExperience:"Guest experience",operations:"Operations management",revenue:"Increase your revenue",ai:"Smartiz AI",integrations:"Integrations",security:"Security"},productDescriptions:{whatsapp:"The channel your guests and teams already open",guestExperience:"Automated messages, AI answers, alerts, reviews",operations:"Tasks, schedules, reports, owner portal",revenue:"Upsells, loyalty and direct bookings",ai:"It handles daily work and advises you",integrations:"PMS, locks, payments, reviews",security:"Accounts, data, AI, funds"},solutionItems:{conciergeries:"Property managers",hotels:"Hotels and aparthotels",estates:"Estates and gîte parks"},solutionDescriptions:{conciergeries:"From 10 to 500+ properties",hotels:"No extra tool for your teams",estates:"Automate everything while keeping the human touch"}},footer:{description:"The WhatsApp platform for property managers, hotels and gîte parks. Built by operators.",company:"Company",about:"About",clients:"Clients",resources:"Resources",careers:"Become a smartizian",contact:"Contact",support:"Support",legal:"Legal",privacy:"Privacy policy",terms:"Terms of use",cookies:"Cookie preferences",followUs:"Follow us",copyright:"© 2021-2026 smartiz.ai · All rights reserved · Made with â¤ï¸ in Switzerland ð¨ð",disclaimer:"WhatsApp is a trademark of Meta Platforms, Inc. Smartiz is neither affiliated with nor sponsored by WhatsApp or Meta."},product:{whatsapp:{kicker:"Official Meta WhatsApp Business platform",title:"WhatsApp, the channel your guests and teams already open.",intro:"Everyone has a WhatsApp button. Running your entire operation through it, including guests and teams, while following Meta's rules is another profession. That is what Smartiz has built.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: phone with WhatsApp and product screenshot",stats:[{value:"4B",label:"users worldwide"},{value:"98%",label:"of messages read"},{value:"< 3 min",label:"to read a received message, on average"}],blocks:[{title:"An official number, not a workaround",text:"Your number, your verified business and the green tick. Registered through Meta's official sign-up, so it is never banned.",visual:"[VISUAL] Visual: Meta sign-up screen and green tick"},{title:"One number, the whole team",text:"Several people answer on the same number, each with their role. The full history is there and AI is on the front line. You leave for a week; the number keeps running.",visual:"[VISUAL] Visual: shared inbox"},{title:"A frictionless guest experience",text:"Photos, videos, voice notes, maps, PDFs and payment links all flow through the thread. No imposed format or blocked links, unlike booking platform messaging.",visual:"[VISUAL] Visual: rich WhatsApp thread (video, map, link)"},{title:"Your teams already have WhatsApp",text:"Cleaning, maintenance and reception each have their group. Tasks go in and photos come back. Ask a question in the group and AI answers.",visual:"[VISUAL] Visual: team WhatsApp group with an AI response"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},guestExperience:{kicker:"Guest experience",title:"A clear stay for the guest. No message for you to send.",intro:"From booking to the review request, every guest receives the right information at the right time, in your words and with a tailored welcome guide. AI answers the rest. You read; you no longer write.",cta:"Say goodbye to bad reviews",blocks:[{title:"Messages that send themselves",text:"Confirmation, arrival, mid-stay, departure and review request: your messages go at the right time with the access video, code and map. Written once, sent for every stay.",visual:"[VISUAL] Visual: stay message sequence"},{title:"AI that answers like you",text:"It knows your properties, rules and best local addresses. Parking, late departure or broken heating: it answers at any hour. It learns from your replies and adopts your tone.",visual:"[VISUAL] Visual: guest and AI conversation"},{title:"An unhappy guest? You receive an alert",text:"AI reads the tone of every conversation. A complaint or reported issue alerts you during the stay, not after the review.",visual:"[VISUAL] Visual: sentiment alert"},{title:"Reviews requested at the right time from the right guest",text:"Smartiz requests a review when the stay went well, and only then. Your Google and platform ratings rise. Our clients have seen +0.4â
.",visual:"[VISUAL] Visual: rising Google rating"},{title:"A welcome guide they actually read",text:"Created in three minutes, in your colours, translated and updated without reprinting. Sent on WhatsApp at the right time and available throughout the stay.",visual:"[VISUAL] Visual: mobile welcome guide"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},operations:{kicker:"Take back control of your operations",title:"Smartiz coordinates your teams. You get your time back.",intro:"Cleaning, maintenance, arrivals: some clients manage dozens of turnovers a day in high season. Smartiz creates tasks, sends them to the right people on WhatsApp and tracks progress. Owners have their portal. You no longer need to monitor or chase.",cta:"Take back control",blocks:[{title:"AI listens and creates tasks",text:"A guest reports a heating problem at 9 pm: a task is created and sent to maintenance in its group. Cleaning tasks come from bookings and reschedule when dates move.",visual:"[VISUAL] Visual: task created from a conversation"},{title:"A thumbs-up to take it, a tick to finish",text:"Your teams track tasks with simple emojis in WhatsApp. Nothing to install or learn. Each morning, everyone receives their schedule.",visual:"[VISUAL] Visual: WhatsApp group with ð and â
"},{title:"Reports with proof",text:"Check-out photos, inspections and timer: the portal opens from the message without login. Photos arrive timestamped and linked to the booking. No more 300 photos in a group.",visual:"[VISUAL] Visual: cleaning report with photos"},{title:"Teams hand work over",text:"Cleaning reports a broken bulb and the task goes to maintenance. The property is ready and the guest receives their code. Information flows both ways between teams.",visual:"[VISUAL] Visual: property status overview"},{title:"A portal for your owners",text:"Revenue, calendar, statements and annual summary. Owners book their own stay, you approve in one gesture and cleaning reschedules.",visual:"[VISUAL] Visual: owner portal"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},revenue:{kicker:"More revenue per stay",title:"Sell more on every stay, without thinking about it.",intro:"Late check-out, breakfast, an extra night: AI offers them at the right time in the guest's WhatsApp thread and collects payment. Smartiz then keeps in touch like a CRM, with loyalty campaigns, return offers and the next direct booking. You do nothing.",cta:"More revenue, starting now",blocks:[{title:"Services sold in the thread",text:"Your catalogue, your rules. AI offers the right service to the right guest and collects through a link. The related task creates itself: mid-stay cleaning planned, access code extended, basket prepared."},{title:"Guests who return direct",text:"A guest file builds itself, WhatsApp or email campaigns target each segment, and the next booking comes without commission. Our clients have seen +10% direct revenue."},{title:"Reviews that lift your listing",text:"Google reviews are synchronised, replies prepared and your rating rises. A better rating means more direct bookings."}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},ai:{kicker:"AI that manages and advises",title:"AI that does the work. And helps you decide.",intro:"Smartiz AI knows your properties, teams and rules. It handles everyday work securely without you. It also prepares what comes next: what sells, what gets stuck and what needs to change.",cta:"Book a demo",blocks:[{title:"It knows your business",text:"Your properties, rules, teams, services and real-time bookings. It learns from your corrections and, after a few weeks, writes like you.",visual:"[VISUAL] Visual: property information seen by AI"},{title:"It handles everyday work",text:"It answers guests, creates and sends tasks, offers and collects payment for services, and manages codes and cleaning. 95% of messages and tasks without intervention.",visual:"[VISUAL] Visual: a day managed by AI"},{title:"You stay in control",text:"You decide what it can promise, when it must ask you and when someone takes over. Everything it does is visible.",visual:"[VISUAL] Visual: rules and approval queue"},{title:"It advises you",text:"[Block to define with Olivier: AI that analyses your activity, spots what sells and what gets stuck, and proposes decisions.]",visual:"[VISUAL] Visual: to be defined",placeholder:!0},{title:"It works securely",text:"Everything it does follows our data processing agreements: your data is neither sold nor used to train other models.",visual:"[VISUAL] Visual: lock and data"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},integrations:{kicker:"Integrations",title:"Connected to the tools you already use.",intro:"Our integrations connect Smartiz to your PMS, channel manager, smart locks, payments and reviews. Your bookings come in; Smartiz does the rest. Everything listed here is in production.",cta:"Request an integration",testimonial:"[TESTIMONIAL] client testimonial placeholder",categories:[{title:"PMS and channel managers",logos:["Mews","Guesty","Cloudbeds","Smily","Rental Ready","Avantio","Smoobu","Lodgify","ICNEA","Protel","SuperHote"]},{title:"Locks and key boxes",logos:["igloohome","Nuki","KeyNest"]},{title:"Payments and deposits",logos:["Stripe","Swikly"]},{title:"Reviews, email and more",logos:["Google Business Profile","SendGrid","OneDrive","
95iCal feeds"]}]}},solutions:{conciergeries:{kicker:"For property management companies with 10 to 500+ properties",title:"Your guests and teams are already on WhatsApp. So are you, all day long.",intro:"Your guests write on WhatsApp, your teams work there, and everything still goes through you. Smartiz AI answers guests, coordinates your teams and sells your services on that same WhatsApp. You stay in control, without being tied to your phone.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["Arrival messages are sent manually at a fixed time.","Only you can reply from the WhatsApp number.","A problem at 9 pm gets retyped into the maintenance group.","300 housekeeping photos, no usable proof.","Late checkout and baskets are never offered.","Ten more properties? You need to hire."],smartizTitle:"With Smartiz",blocks:[{title:"For guests",text:"Scheduled messages go out automatically, right through to the review request. AI answers everything else, at any time. An unhappy guest? You receive an alert.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"For teams",text:"A guest request becomes a task in the right WhatsApp group. Your teams claim it with a thumbs-up and complete it with a check mark. Checkout photos arrive timestamped. Nothing to install.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"For revenue",text:"Late checkout, breakfast, an extra night: AI offers them at the right time and collects payment. Then Smartiz stays in touch and brings your guests back to book direct.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],aiBand:{title:"And what about AI?",text:"It knows your properties, rules and team
95s. It handles daily work; you set the rules.",linkLabel:"Smartiz AI"},testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."},hotels:{kicker:"For hotels and aparthotels",title:"Coordinate your teams where they already are. Let AI run the rest.",intro:"Your guests write at all hours, and your teams already coordinate on WhatsApp. Smartiz brings order to both sides: AI answers, passes requests to the right department, sells the restaurant, spa and extra night, and brings guests back. Designed for hospitality: room categories, groups, dining and loyalty.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A guest writes at 11 pm. Who answers?","One request: a call, a note, a group. Sometimes it gets lost.","The bad review arrives after checkout.","A suite guest leaves without a massage or table booking. Nobody offered.","Room service is written on paper that goes to the kitchen."],smartizTitle:"With Smartiz",blocks:[{title:"A front desk that answers at night",text:"AI answers common questions, sends arrival information and passes requests to the right department. Your team reads a summary in the morning.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Teams coordinated without meetings",text:"A guest request becomes a task in the housekeeping, maintenance or restaurant WhatsApp group. Everyone receives their schedule, and ready rooms are flagged. Nobody installs an app.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Guests who return",text:"An unhappy guest? You receive an alert during the stay. Reviews are requested at the right time, from the right guest. Then Smartiz stays in touch with loyalty campaigns, return offers and the next direct booking, commission-free.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"},{title:"The stay sells the table, spa and extra night",text:"A table the day before, a treatment on arrival, late checkout or breakfast: offered at the right time in the conversation and paid by link. Room service is ordered on WhatsApp, with a ticket sent to the kitchen.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",finalTitle:"Book a demo",finalText:"Your first bookings are free."},estates:{kicker:"For estates and multi-cottage parks",title:"Groups welcomed and cottages prepared, without everything going through you.",intro:"Families, weddings, seminars: several properties fill on the same day. Everything is prepared beforehand: group information, payments, linen, codes and rooms. Smartiz automates this preparation, coordinates your teams and answers guests.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A group of fifty on Saturday: who sleeps where, who has paid, who ordered linen?","Codes go out one by one on Friday afternoon.","Six cottages to prepare the same morning, with a team waiting for instructions.","On Saturday, the phone rings throughout arrivals.","The preparation sheet changes three times before the stay."],smartizTitle:"With Smartiz",blocks:[{title:"Group bookings tracked end to end",text:"One main contact, one conversation, and Smartiz follows the entire stay: information collected, balance and deposit requested at the right time, options offered and paid. Exchanges happen individually with the group lead. Once you know who sleeps in which property, every guest receives their own sequence: codes, guide and instructions for their cottage.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"A preparation sheet that stays up to date",text:"A stay takes shape over time. Beds, linen, meals, rooms and reserved equipment: the sheet is completed online, and your teams receive the latest version for each cottage in their WhatsApp group.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Everything settled before arrival",text:"Confirmation, group questionnaire, directions, codes generated for every stay and a guide for each property: the journey runs automatically. On Saturday, only arrivals remain.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Extras sold without thinking about it",text:"Linen, baskets, bikes, late checkout and meals: offered in the conversation at the right time and easy to pay for online.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."}},pricingPage:{kicker:"Pricing that fits your activity",title:"You pay at the pace of your business.",intro:"Your success is our success: you pay per booking, at check-in, once the money has already been collected. No per-user licence. In low season, only a very low monthly minimum applies.",plans:[{name:"Essential",subtitle:"Get started with WhatsApp",price:"â¬1.50 / booking",features:[{text:"Unified inbox",included:!0},{text:"WhatsApp and email connection",included:!0},{text:"Digital welcome book",included:!0},{text:"No integrations or automations",included:!1}],cta:"Book a demo"},{name:"Advanced",subtitle:"Guest experience",price:"â¬3 / booking",features:[{text:"Automated guest messages",included:!0},{text:"Automatic AI responses",included:!0},{text:"Operational task detection and management",included:!0},{text:"Guest sentiment analysis",included:!0},{text:"Guest identity verification",included:!0},{text:"Custom integrations",included:!0}],cta:"Book a demo"},{name:"Expert",subtitle:"Complete operations management",price:"â¬5 / booking",badge:"Most popular",features:[{text:"Everything for the guest experience",included:!0},{text:"Complete operations orchestration by Smartiz AI",included:!0},{text:"Dynamic team schedules",included:!0},{text:"Reporting and analytics",included:!0},{text:"Additional modules: owners, upselling, marketing and loyalty",included:!0}],cta:"Book a demo"}],note:"Excluding VAT. Setup fees apply. Monthly billing based on completed bookings, with a monthly minimum when there are no bookings. Reduced fees on cancellations. Fees may apply to connected devices.",custom:{title:"Need a tailored solution?",text:"Groups, multiple companies, high volumes: we build the offer with you.",cta:"Email us"},model:{title:"A unique pricing model",intro:"You pay for what you use, and you can see what you are paying for.",cards:[{title:"To get started",text:"Your first bookings are free while we connect your tools and you see AI working on your real stays."},{title:"Billed at check-in",text:"You pay once the guest has arrived, after payment has been collected. No extra cost during quiet periods."},{title:"Automatic and transparent",text:"Billing happens automatically, and you track your monthly projection from your account. No surprises at month end."}],cta:"Book a demo"}},clientsPage:{title:"Already more than 20,000 stays managed by Smartiz.",titleBefore:"Already more than",titleAfter:"stays managed by Smartiz.",recognitionTitle:"Recognition",recognitionText:"Supported by: Grand Prix Jeune Pousse 2026, RDV de
95s Pros de la Location Saisonnière · Canton of Vaud Innovation Award (FIT) · EHL Innovation Hub",usersTitle:"They use Smartiz",segments:[{title:"Property managers",logos:["[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]"]},{title:"Hotels and aparthotels",logos:["[LOGO: Logo]","[LOGO: Logo]"]},{title:"Estates and holiday parks",logos:["[LOGO: Logo]","[LOGO: Logo]"]}],testimonialsTitle:"What our clients say",testimonial:"[TESTIMONIAL] client testimonial placeholder",testimonialsCta:"Book a demo",casesTitle:"Client stories",cases:[{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"},{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"}],videosTitle:"On video",video:"[VISUAL] Video testimonial",finalTitle:"Start your journey now",finalText:"",finalCta:"Book a demo"},resourcesV2Page:{title:"Resources",subtitle:"Articles, guides and insights for hospitality professionals.",search:"Search articlesâ¦",filters:["All","Short-term rentals","Integrations","Property management","Real estate","Operations","Human resources","Artificial intelligence","Podcasts"],podcastsTitle:"Podcasts",podcastLabel:"Podcast",podcastSource:"Conciergerie de Rêve",podcasts:[{image:"https://i.ytimg.com/vi/phWMighnwBM/hqdefault.jpg",title:"How can AI help optimise your time in short-term rentals?",summary:"Smartiz co-founders Laurent and Olivier explain how AI frees up time for short-term rental operators.",href:"https://www.youtube.com/watch?v=phWMighnwBM"},{image:"https://i.ytimg.com/vi/04G0GjUxogs/hqdefault.jpg",title:"Three visions of property management: who is right?",summary:"Industry professionals discuss property management models and how they are evolving.",href:"https://www.youtube.com/watch?v=04G0GjUxogs"}],listen:"Listen",newsTitle:"Latest news",newsFollow:"Follow Smartiz on LinkedIn",newsPosts:[{text:"[POST LINKEDIN] Smartiz news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Customer story coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Product update coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Team news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"}],articlesTitle:"Articles",minRead:"min read",emptyTitle:"[Article title]",emptySummary:"[Article summary]",emptyCategory:"[Category]"},aboutPage:{kicker:"Built by operators, for operators",storyTitle:"Our story",story:["It all began in London, when the two co-founders, Olivier and Laurent, met. A shared passion for customer experience and digital transformation led them to work together on large-scale transformations, then reconnect later around the impact of Covid and AI on how we work.","In the meantime, Olivier bought a property in the Swiss Alps and entered the short-term rental business. One thing led to another: owners asked for his help and the activity grew. The same passion for customer experience found its place in personalised WhatsApp communication and thoughtful guest management.","Smartiz began as a tablet in a handful of properties. But guests still preferred WhatsApp.","That was when Laurent joined the journey. The conclusion was clear: WhatsApp was the channel that worked best, and both guest and internal workflows needed automation to keep growing and put AI to work in day-to-day management. No solution on the market did this. Smartiz was born."],storyVisual:"[VISUAL] Visual: founders / Alps photo",storyImageAlt:"Laurent Dumoulin and Olivier Dubuisson at EHL, Lausanne",whyTitle:"Why now",why:[{title:"WhatsApp has become THE channel in tourism",text:"For guests and teams alike, everything already happens there. The question is no longer which channel to choose, but how to make it work at scale."},{title:"AI acts rather than merely providing support",text:"It responds, plans, sells and coordinates securely. Operators who entrust execution to it grow without hiring; the others plateau."},{title:"Operators do not want another tool",text:"Teams will not open another app. The only platform that works is the one living inside what they already use."}],foundersTitle:"The co-founders",founders:[{visual:"[VISUAL] Photo",name:"Olivier Dubuisson",role:"Co-founder and CTO",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/olivierdubuisson/"},{visual:"[VISUAL] Photo",name:"Laurent Dumoulin",role:"Co-founder and business development",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/laurent-dumoulin-smartiz/"}],advisorsTitle:"Our board of advisors",advisors:[{visual:"[VISUAL] Photo",name:"Bernard Jaccard",role:"Business Developer at Swisscom Ventures, board member and startup advisor",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/bjaccard/"},{visual:"[VISUAL] Photo",name:"Yannick Hofmeister",role:"COO at OWT (a Swisscom company), AI, strategy and technology",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/yannickhofmeister/"}],careers:"Join Smartiz",workTitle:"How we work",values:[{title:"Operators first",text:"Every feature runs in our own property management business before release."},{title:"Curiosity",text:"We take the time to understand each client's operations and the sector they work in."},{title:"Experimentation",text:"We build and test quickly, securely and alongside our clients."},{title:"Humility",text:"We always have something to learn from our clients and our own field teams."},{title:"The guest at the centre",text:"We put ourselves in the operator's and guest's shoes so the experience works for both."}],supportersTitle:"They support us",demo:"Book a demo",clients:"Meet our clients"},securityPage:{title:"An autonomous environment that remains under control",intro:"Smartiz acts on your behalf. To keep you in control, we have built a stable and secure infrastru
95cture.",reviewNote:"To be reviewed and completed by Olivier",cards:[{title:"Access and account security",text:"MFA, passkeys, organisation-wide enforcement, session monitoring, and administrator-approved resets."},{title:"Data management and protection",text:"GDPR, encrypted data, never sold, never used to train third-party models; complete export and deletion on request."},{title:"Privacy",text:"Code-locked conversations, role-based access, and token-limited owner and team portals."},{title:"Platform and stability",text:"Signed webhooks, rate limiting, logging, and incident-window review."},{title:"AI",text:"Rules, approval queue, and traceability for every action."}]},live:{refreshIn:"Real time, refresh in {s}s"},visuals:{dashboardAlt:"Smartiz dashboard for managing guests, teams and operations",welcomeAlt:"Phone showing a WhatsApp conversation and a Smartiz satisfaction survey",sentimentAlt:"Guest sentiment analysis in Smartiz detecting dissatisfaction",autopilotAlt:"Guest conversations managed by Smartiz AI",tasksAlt:"Operational task management and sentiment tracking in Smartiz",workflowAlt:"Smartiz workflow editor for defining rules and approvals",experiencesAlt:"Smartiz mobile welcome guide presenting experiences and upsells",solutionHeroAlt:{conciergeries:"Property management professional inside a guest accommodation",hotels:"Hotel professional inside the property",estates:"Holiday park professional outdoors"}},supportersAward:"Grand Prix Jeune Pousse 2026"}},tA={nav:{features:"Fonctionnalités",pricing:"Tarifs",testimonials:"Témoignages",resources:"Ressources",getStarted:"Commencer",talkToUs:"Booker une démo"},hero:{badge:"IA Agentique pour l'Hôtellerie",title:"La seule plateforme",titleHighlight:"WhatsApp boostée par l'IA agentique",subtitle:"Conçu pour les professionnels de la location courte durée et les hôtels, smartiz détecte le sentiment des voyageurs, crée et gère les tâches opérationnelles pour vous, et automatise vos communications - tout sur WhatsApp, déjà installé sur 4 milliards d'appareils.",ctaPrimary:"Essai Gratuit",ctaSecondary:"Regardez notre démo!",stat1Label:"Utilisateurs WhatsApp",stat2Label:"IA Agentique",stat3Label:"Temps de Réponse Moyen",stat4Label:"Interactions WhatsApp Traitées"},trustedBy:{title:"Ils nous font confiance",award:"ð Grand Prix Jeune Pousse 2026 â Rendez-vous des Pros de la Location Saisonnière"},stats:{title:"Pourquoi WhatsApp ? Parce qu'il est déjà partout",subtitle:"Une plateforme. Des possibilités infinies.",conversations:"4M+",conversationsLabel:"Utilisateurs WhatsApp dans le monde",responseTime:"99%",responseTimeLabel:"Messages lus",satisfaction:"+80%",satisfactionLabel:"Engagement vs emails",automation:"Médias riches",automationLabel:"Flexibilité maximale",cta:"Booker une démo"},features:{title:"Fonctionnalités IA Agentique qui Fonctionnent",subtitle:"De la détection autonome des sentiments à la gestion intelligente des tâches - solutions IA agentique pour l'hôtellerie moderne",sectionTitle:"Tout Ce Dont Vous Avez Besoin pour Ravir Vos Clients",sectionSubtitle:"Fonctionnalités puissantes conçues spécifiquement pour les professionnels de la location courte durée",whatsappAutomation:{title:"Automatisation Intelligente WhatsApp",description:"Flux de messagerie automatisés gérant 80% des communications via un seul canal simple que vos clients utilisent déjà ."},sentiment:{title:"Sentiment Client en Temps Réel",description:"Sondages ciblés et relances pour recueillir les avis au bon moment, prévenant les mauvais commentaires avant qu'ils n'arrivent."},mobileFirst:{title:"Opérations Mobile-First",description:"Une plateforme, un canal pour vos clients, propriétaires, équipes de nettoyage et techniques. Gérez tout en déplacement."},fastSetup:{title:"Configuration Ultra-Rapide",description:"Démarrez en quelques minutes, pas en semaines. Aucune intégration complexe ou connaissances techniques requises."},gdpr:{title:"Conforme RGPD",description:"Sécurité et protection des données de niveau entreprise. Les informations de vos clients sont toujours en sécurité."},support:{title:"Support Automatisé 24/7",description:"Ne manquez jamais un message client. Les réponses automatisées gèrent les questions courantes instantanément, à tout moment."}},aiFeatures:{badge:"Fonctionnalités IA",title:"Fonctionnalités IA qui Fonctionnent Vraiment",subtitle:"De la détection des sentiments aux livres d'accueil révolutionnaires - tout est conçu pour les professionnels de l'hôtellerie",copilot:{title:"IA Co-pilote & Autopilote",description:"Choisissez votre niveau d'automatisation. Laissez l'IA smartiz suggérer des réponses (Co-pilote) ou gérer les conversations automatiquement (Autopilote)."},sentimentAnalysis:{title:"Analyse des Sentiments en Temps Réel",description:"Notre IA surveille chaque conversation et signale les clients dont le sentiment se dégrade, permettant à la direction d'intervenir avant l'escalade."},taskDetection:{title:"Détection Automatique des Tâches",description:"L'IA trouve les tâches cachées dans les conversations - demandes clients, discussions du personnel - et les affiche dans de
95s tableaux de bord temps réel."},whatsappFirst:{title:"Plateforme WhatsApp-First",description:"Pourquoi créer une autre app? WhatsApp est déjà sur 4 milliards d'appareils. Nous en faisons votre centre de commandement opérationnel."},staffIntegration:{title:"Intégration WhatsApp du Personnel",description:"Connectez vos groupes WhatsApp opérationnels existants et transformez les discussions en tableaux de bord tangibles et actionnables."},guestBook:{title:"Livre d'Accueil Révolutionnaire",description:"Générez des livres d'accueil personnalisés et interactifs en moins de 3 minutes. Offrez de meilleures expériences et créez des opportunités de vente additionnelle."},automatedComms:{title:"Communications Client Automatisées",description:"Des instructions d'arrivée aux offres de vente additionnelle, l'IA smartiz gère intelligemment 80% des communications clients."},experiencePlatform:{title:"Plateforme d'Expérience, Pas Seulement un Logiciel",description:"Nous ne gérons pas seulement les opérations - nous transformons toute l'expérience client grâce à l'automatisation intelligente."}},showcase:{badge:"Fonctionnalités produit",title:"Découvrez nos fonctionnalités",subtitle:"Fonctionnalités IA conçues spécifiquement pour les hôtels et professionnels de la location courte durée",whatsappBadge:"Automatisé",whatsappTitle:"Messagerie WhatsApp automatisée pour les voyageurs",whatsappDescription:"Automatisez et optimisez vos communications grâce à votre workflow de messagerie WhatsApp personnalisé.",copilotBadge:"Autopilote",copilotTitle:"Modes IA Co-pilote & Autopilote",copilotDescription:"Laissez l'IA suggérer des réponses et gérer 80% des conversations automatiquement pendant que vous vous concentrez sur l'essentiel.",tasksBadge:"Détection intelligente",tasksTitle:"Extraction automatique des tâches",tasksDescription:"L'IA détecte les tâches en analysant les conversations et les affiche dans des tableaux de bord actionnables.",sentimentBadge:"Propulsé par l'IA",sentimentTitle:"Analyse du sentiment voyageur en temps réel",sentimentDescription:"Détectez instantanément les changements de sentiment des voyageurs et intervenez avant qu'ils ne se transforment en avis négatifs.",workflowBadge:"Personnalisé",workflowTitle:"Une flexibilité totale pour vos messages",workflowDescription:"Développez un workflow de communication personnalisé et pertinent pour vos voyageurs.",guestbookBadge:"Première mondiale",guestbookTitle:"Un livret d'accueil en moins de 3 minutes",guestbookDescription:"Générez des livrets d'accueil personnalisés et interactifs qui offrent des expériences exceptionnelles et créent des opportunités de vente.",pricingCta:"Voir nos tarifs"},integrations:{badge:"Intégrations",title:"Fonctionne avec vos outils existants",subtitle:"smartiz s'intègre parfaitement avec vos plateformes de gestion immobilière, serrures intelligentes et paiements préférées",pms:{title:"Intégration PMS",description:"Connexion transparente avec votre système de gestion immobilière existant"},smartLock:{title:"Intégration serrures intelligentes",description:"Intégration avec les principaux fournisseurs de serrures intelligentes"},payments:{title:"Solutions de paiement",description:"Acceptez les paiements via plusieurs fournisseurs"},comingSoon:"Bientôt disponible",andMore:"et bien d'autres"},testimonials:{title:"Aimé par les voyageurs et les professionnels",subtitle:"Découvrez ce que nos utilisateurs disent de smartiz",testimonial1:{name:"Mafalda P.",role:"Swiss Chalet Services",company:"Suisse",content:"Avec smartiz, j'économise du temps et de l'argent. J'ai pu gérer la haute saison avec d'excellents avis et un ETP en moins dans mon équipe."},testimonial2:{name:"Ed",role:"Client",company:"Swiss Chalet Services",content:"Le service de conciergerie via WhatsApp était parfait. Super utile et aimable."},testimonial3:{name:"Grand Opérateur Hôtelier & Résidences",role:"Bulle",company:"Suisse",content:"Collaborer avec smartiz signifie travailler avec une équipe ayant une approche fortement centrée sur l'humain et une obsession pour la satisfaction client."}},faq:{badge:"FAQ",title:"Questions et réponses",subtitle:"Tout ce que vous devez savoir sur smartiz",q1:{question:"Combien de temps prend l'intégration et quel support fournissez-vous?",answer:"Nous vous ferons démarrer en un rien de temps. Nous suggérons toujours une augmentation graduelle de vos opérations avec smartiz, en commençant par nos modules de boîte de réception et de gestion des tâches, pour que vous et votre équipe vous familiarisiez avec ce que nous faisons. Quelques jours après, nous configurons votre premier workflow. Entre-temps, notre équipe travaille avec vous pour évaluer d'autres changements dans vos méthodes de travail pouvant aboutir à l'implémentation de notre moteur de workflow avancé. Vous avez une équipe d'intégration dédiée avec vous en permanence."},q2:{question:"Mes données sont-elles sécurisées et Smartiz est-il conforme au RGPD / à la confidentialité?",answer:"Oui. smartiz est entièrement conforme au RGPD. Les données des clients sont cryptées et ne sont jamais utilisées à des fins tierces. La confidentialité et la protection des données sont intégrées dans notre système."},q3:{question:"Smartiz prend-il en charge la messagerie multilingue et la localisation des communications clients?",answer:"Oui. Smartiz prend en charge plusieurs langues et nous en ajoutons constamment. Vous pouvez personnaliser le contenu de vos messages selon vos besoins."},q4:{question:"Puis-je personnaliser les messages dans le workflow smartiz?",answer:"Absolument. Vous pouvez ajouter ou supprimer certaines étapes, modifier le timing de certains messages, ainsi qu'adapter votre workflow à la durée du séjour et bien d'autres possibilités. V
95otre imagination est la seule limite, probablement."},q5:{question:"Que se passe-t-il si WhatsApp ou les OTA modifient leurs règles et politiques?",answer:"smartiz reste entièrement conforme à WhatsApp et aux OTA et s'adapte aux changements de politique. Vous aurez toujours un service fiable et ininterrompu."},q6:{question:"Et si mes clients n'ont pas WhatsApp?",answer:"Pas de problème. smartiz bascule automatiquement sur l'email lorsque WhatsApp n'est pas disponible, garantissant que chaque client reste informé."},q7:{question:"Je n'ai pas de PMS ou de gestionnaire de canaux, comment ça marche?",answer:"Vous pouvez toujours utiliser smartiz en ajoutant les détails des clients manuellement. Nous vous aiderons à démarrer même sans intégrations."}},comparison:{title:"Pourquoi smartiz est différent",subtitle:"Nous ne sommes pas un simple outil de gestion - nous sommes une plateforme IA agentique qui fonctionne de manière autonome avec WhatsApp",without:"Outils traditionnels",with:"smartiz",withoutList:{item1:"Plusieurs plateformes et applications à gérer",item2:"Réponses manuelles aux messages qui vous font perdre votre temps",item3:"Aucune information sur le sentiment voyageur avant qu'il ne soit trop tard",item4:"Tâches et demandes perdues dans vos conversations",item5:"Votre personnel utilisant des groupes WhatsApp déconnectés",item6:"Communications voyageurs génériques et chronophages"},withList:{item1:"Une plateforme - WhatsApp, déjà sur 4 milliards d'appareils",item2:"IA Co-pilote & Autopilote gérant 80% des messages",item3:"Analyse du sentiment voyageur en temps réel",item4:"L'IA extrait les tâches des conversations automatiquement",item5:"Groupes WhatsApp opérationnels transformés en tableaux de bord actionnables",item6:"Livrets d'accueil simplifiés - créés en moins de 3 minutes"}},footer:{description:"La plateforme de gestion client WhatsApp pour les professionnels de la location courte durée",followUs:"Suivez-nous",product:"Produit",company:"Entreprise",legal:"Légal",whySmartiz:"Pourquoi smartiz?",benefits:"Avantages",pricing:"Tarifs",faq:"FAQ",support:"Support",aboutUs:"à propos",news:"Actualités",resources:"Ressources",privacyPolicy:"Confidentialité et cookies",termsOfService:"Conditions d'Utilisation",cookiePreferences:"Préférences de Cookies",copyright:"© 2021-2026 smartiz.ai · Tous droits réservés · Fait avec â¤ï¸ en Suisse ð¨ð"},resources:{sectionTitle:"Dernières Ressources",sectionSubtitle:"Guides et analyses pour les professionnels de l'hôtellerie",viewAll:"Tout voir"},resourcesPage:{title:"Ressources",subtitle:"Articles, guides et analyses pour les professionnels de l'hôtellerie.",searchPlaceholder:"Rechercher des articles...",all:"Tous",minRead:"min de lecture",noArticles:"Aucun article trouvé.",notFound:"Article introuvable",backToResources:"Retour aux ressources",relatedArticles:"Articles Similaires",seoTitle:"Ressources - smartiz | Articles & Insights pour l'Hôtellerie",seoDescription:"Explorez des articles, guides et analyses sur la gestion locative courte durée, les opérations immobilières, l'IA dans l'hôtellerie et plus encore."},order:{loading:"Chargement de la commande...",notFound:"Commande introuvable",alreadySigned:"Cette commande a déjà été signée",pageTitle:"Votre Offre Smartiz Personnalisée",pageSubtitle:"Veuillez revoir et confirmer votre offre personnalisée",step1Title:"Récapitulatif de la Commande",step2Title:"Révision & Signature",termsCardTitle:"Conditions Générales de Services",basePrice:"Base",addOnModules:"Modules additionnels",subtotal:"Sous-total",monthlyTotal:"Total Mensuel",annualTotal:"Total Annuel",discount:"Remise Totale",applied:"Appliquée",property:"propriété",properties:"propriétés",room:"chambre",rooms:"chambres",perMonth:"/mois",monthlyAddOns:"Options mensuelles récurrentes",freeTrial:"Mois d'Essai Gratuit",nextButton:"Suivant",backButton:"Retour",signatureName:"Nom Complet",signatureEmail:"Adresse Email",termsAccept:"J'accepte les",termsLink:"Conditions Générales",submitButton:"Signer & Soumettre la Commande",submitting:"Envoi en cours...",thankYou:"Merci !",orderSigned:"Votre commande a été signée avec succès",completeFields:"Veuillez remplir tous les champs et accepter les conditions",errorLoading:"Ãchec du chargement de la commande",errorSubmitting:"Ãchec de l'envoi de la commande",offerValidUntil:"Cette offre est valide jusqu'au",expired:{title:"Offre Expirée",message:"Cette offre a expiré et n'est plus disponible pour signature.",extendButton:"Prolonger de 24 heures",requestExtensionButton:"Demander une prolongation",extending:"Prolongation en cours...",extendedSuccess:"Offre prolongée ! Vous avez maintenant 24 heures pour signer.",requestSent:"Demande de prolongation envoyée ! Notre équipe l'examinera sous peu.",requestAlreadySe
95nt:"Une demande de prolongation a déjà été soumise pour cette offre.",contactSales:"Veuillez contacter notre équipe commerciale pour assistance."}},pricing:{badge:"Tarification simple et transparente",title:"Choisissez votre forfait idéal",subtitle:"Payez par réservation. Ãvoluez à votre rythme. Pas de frais cachés.",perReservation:"/réservation",freeReservations:"réservations offertes",mostPopular:"Plus populaire",getStarted:"Commencer",contactSales:"Contacter les Ventes",billingNote:"Facturation mensuelle au nombre de réservations complétées dans le mois écoulé.",cancelledNote:"Réservations annulées après 72h = 20% du tarif.",minimumNote:"Minimum de {amount} réservations déduites par mois.",vatExcluded:"TVA exclue.",needCustom:"Besoin d'une solution sur mesure pour votre entreprise ?",trialInfo:"Tous les forfaits incluent un essai gratuit ⢠Sans carte bancaire ⢠Annulation à tout moment",connectionFees:"* Des frais de connexion peuvent s'appliquer.",tiers:{essential:{name:"Essentiel",tagline:"Communication voyageurs"},advanced:{name:"Avancé",tagline:"Essentiel + SmartizAI Agent Basic"},expert:{name:"Expert",tagline:"Avancé + Orchestration Opérations + SmartizAI Agent Pro"}},essentialFeatures:["Boîte de réception unifiée & Intégration WhatsApp","Livret d'accueil digital","Création manuelle des tâches & opérations : ménage, agent d'accueil, maintenance","Intégrations : PMS, Serrures connectées*, Fournisseurs de paiement"],advancedFeatures:["Tout l'Essentiel, plus :","Analyse du sentiment voyageur","Séquençage automatique des communications","Réponses automatiques via IA","Création des tâches via IA","Analyse KYC via IA"],expertFeatures:["Tout l'Avancé, plus :","Orchestration complète de vos opérations par IA","Gestion de la relation client","Reporting et analyses","Gestionnaire de compte dédié","Intégrations personnalisées"],expertModulesLabel:"Choisissez jusqu'à 2 modules supplémentaires de la bibliothèque :",expertModules:["Gestion des cautions (Stripe ou Swikly)","Upselling","Gestion des propriétaires"]},cta:{title:"Prêt à découvrir smartiz?",subtitle:"Rejoignez les hôtels et professionnels de la location courte durée avant-gardistes qui utilisent l'IA agentique de smartiz pour offrir automatiquement des expériences voyageurs exceptionnelles sur WhatsApp.",ctaPrimary:"Essai Gratuit",ctaSecondary:"Réserver une Démo",feature1:"Sans carte bancaire",feature2:"14 jours d'essai gratuit",feature3:"IA Agentique Co-pilote & Autopilote",buttonText:"Booker une démo"},signup:{backToPricing:"Retour aux tarifs",title:"Commencez avec smartiz",subtitle:"Complétez vos informations pour commencer votre aventure avec smartiz",yourSelection:"Votre sélection:",shortTermRental:"Location Courte Durée",hotel:"Hôtel",units:"unités",contactInfo:"Informations de contact",fullName:"Nom complet",email:"Adresse email",phone:"Numéro de téléphone",companyInfo:"Informations de l'entreprise",companyName:"Nom de l'entreprise ou marque (optionnel)",billingAddress:"Adresse de facturation",streetAddress:"Adresse",city:"Ville",postalCode:"Code postal",country:"Pays",processing:"Traitement en cours...",completeDetails:"Compléter les informations de base",required:"*",errorFillFields:"Veuillez remplir tous les champs obligatoires",errorInvalidEmail:"Veuillez entrer une adresse email valide",errorSaveFailed:"Ãchec de l'enregistrement de vos informations. Veuillez réessayer.",errorGeneral:"Une erreur s'est produite. Veuillez réessayer."},cookies:{title:"Politique de confidentialité et de cookies",lastUpdated:"Dernière mise à jour : 22 septembre 2026",whatAreCookies:"Que Sont les Cookies",whatAreCookiesText:"Les cookies sont de petits fichiers texte placés sur votre appareil lorsque vous visitez notre site web. Ils nous aident à vous offrir une meilleure expérience en mémorisant vos préférences et en comprenant comment vous utilisez notre site.",howWeUse:"Comment Nous Utilisons les Cookies",howWeUseText:"Smartiz utilise des cookies aux fins suivantes :",essential:"Cookies Essentiels",essentialText:"Ces cookies sont nécessaires au bon fonctionnement du site web. Ils permettent des fonctions de base comme la navigation et l'accès aux zones sécurisées.",analytics:"Cookies Analytiques",analyticsText:"Nous utilisons ces co
95okies pour comprendre comment les visiteurs interagissent avec notre site web, nous aidant à améliorer les fonctionnalités et le contenu.",preference:"Cookies de Préférence",preferenceText:"Ces cookies permettent à notre site web de mémoriser les choix que vous faites (comme les préférences linguistiques) pour fournir des fonctionnalités améliorées.",marketing:"Cookies Marketing",marketingText:"Ces cookies suivent votre activité en ligne pour nous aider à diffuser des publicités plus pertinentes et mesurer l'efficacité des campagnes.",typesTitle:"Types de Cookies Que Nous Utilisons",sessionCookies:"Cookies de Session",sessionCookiesText:"Cookies temporaires supprimés lorsque vous fermez votre navigateur. Ils nous aident à maintenir votre session pendant que vous naviguez sur notre site.",persistentCookies:"Cookies Persistants",persistentCookiesText:"Ces cookies restent sur votre appareil pendant une période définie ou jusqu'à ce que vous les supprimiez. Ils nous aident à mémoriser vos préférences pour vos futures visites.",thirdParty:"Cookies Tiers",thirdPartyText:"Certains cookies sont placés par des services tiers qui apparaissent sur nos pages, tels que les fournisseurs d'analyses et les plateformes de médias sociaux.",managing:"Gestion des Cookies",managingText1:"Vous avez le droit d'accepter ou de refuser les cookies. La plupart des navigateurs web acceptent automatiquement les cookies, mais vous pouvez modifier les paramètres de votre navigateur pour les refuser si vous préférez.",managingText2:"Voici comment gérer les cookies dans les navigateurs populaires :",chrome:"Chrome : Paramètres â Confidentialité et sécurité â Cookies et autres données de site",firefox:"Firefox : Paramètres â Vie privée et sécurité â Cookies et données de sites",safari:"Safari : Préférences â Confidentialité â Gérer les données de sites web",edge:"Edge : Paramètres â Autorisations de cookies et de site â Cookies et données de site",managingNote:"Veuillez noter que la désactivation des cookies peut affecter les fonctionnalités de notre site web et limiter votre accès à certaines fonctionnalités.",consent:"Votre Consentement",consentText:"Le stockage facultatif nâest utilisé que si vous le choisissez. Vous pouvez retirer ou modifier ce choix à tout moment via le lien des préférences de cookies dans notre pied de page.",changes:"Modifications de Cette Politique",changesText:"Nous pouvons mettre à jour cette Politique de Cookies de temps à autre pour refléter les changements dans nos pratiques ou pour des raisons opérationnelles, légales ou réglementaires. Nous vous encourageons à consulter cette page périodiquement pour obtenir les dernières informations.",contact:"Nous Contacter",contactText:"Si vous avez des questions concernant notre utilisation des cookies, veuillez nous contacter à :"},cookiePreferences:{title:"Préférences de Cookies",description:"Choisissez les catégories facultatives de stockage navigateur que smartiz peut utiliser. Le stockage nécessaire reste toujours actif.",necessary:"Stockage nécessaire",necessaryDesc:"Nécessaire aux choix de confidentialité, à la sécurité, à lâauthentification et aux parcours demandés. Il ne peut pas être désactivé ici.",functional:"Stockage fonctionnel",functionalDesc:"Mémorise des choix tels que votre langue et votre devise.",analyticsTitle:"Stockage analytique",analyticsDesc:"Autorise le stockage analytique si un service correspondant est présent. Aucun traceur analytique nâest actuellement installé dans le code du site public.",marketingTitle:"Stockage marketing",marketingDesc:"Autorise le stockage marketing si un service correspondant est présent. Aucun traceur publicitaire nâest actuellement installé dans le code du site public.",declineAll:"Tout Refuser",acceptAll:"Tout Accepter",savePreferences:"Enregistrer les Préférences"},about:{heroTitle:"Transformer l'expérience des voyageurs avec l'IA",heroSubtitle:"Nous sommes une équipe d'innovateurs, d'ingénieurs et d'experts en hôtellerie en mission pour créer des expérience
95s client fluides grâce à la technologie intelligente.",teamTitle:"Notre équipe",advisorsTitle:"Board of Advisors & Coaches",valuesTitle:"Nos valeurs",careersTitle:"Devenez un smartizien",careersSubtitle:"Rejoignez une équipe d'innovateurs passionnés qui façonnent l'avenir de l'hôtellerie. Chez Smartiz, vous travaillerez sur des problèmes stimulants, développerez vos compétences et aurez un réel impact sur la façon dont des millions de clients vivent l'hôtellerie dans le monde entier.",applyNow:"Postuler maintenant",firstName:"Prénom",lastName:"Nom",email:"Email",phone:"Téléphone",linkedin:"URL LinkedIn",uploadCV:"Télécharger CV/CV",submitting:"Envoi en cours...",submitApplication:"Soumettre la candidature",uploadCVError:"Veuillez télécharger votre CV",applicationError:"Ãchec de la soumission de la candidature",coFounderCEO:"Co-Fondateur & CEO",coFounderCTO:"Co-Fondateur & CTO",backendDev:"Développeur Backend",laurentDesc:"Réimaginer l'expérience client en hôtellerie. Allier passion pour la technologie et l'hôtellerie pour créer des solutions fluides.",olivierDesc:"Leader technologique avec une expertise approfondie en ingénierie et solutions digitales, pilotant l'innovation technique en hôtellerie.",aurelienDesc:"Ingénieur backend expert construisant des systèmes robustes et évolutifs pour alimenter les solutions d'hôtellerie modernes.",madhurDesc:"Ingénieur en robotique, membre du conseil consultatif et CSO fractionné chez Innosuisse. Expert en développement de produits Lean et innovation PME. Lauréat mondial TiE50 avec des publications sur la dynamique métanationale.",matteoDesc:"Expert en IA chez Dell Technologies, spécialisé dans la vision par ordinateur et l'apprentissage profond embarqué. Détient des brevets dans le profilage comportemental basé sur l'image et la prédiction d'intubation médicale. A contribué aux projets H2020 Eyes of Things et FANCI.",egbertDesc:"Professionnel multilingue de l'hôtellerie avec une expertise en leadership inspirant et amélioration des performances hôtelières. Bénévole de longue date pour la collecte de fonds pour UNICEF Belgique et Oxfam.",arthurDesc:"Administrateur chez Valfor, supervisant les entreprises hôtelières de luxe dans les Alpes suisses. Cadre expérimenté avec une expertise approfondie dans la gestion du tourisme alpin, les opérations stratégiques et le développement immobilier de luxe durable.",philippeDesc:"Membre du conseil d'administration et conseiller expérimenté avec des rôles de BoA pour Mobilis et président de l'International School Basel. Expertise en gouvernance, éducation internationale et stratégie d'entreprise dans les organisations à but non lucratif et les entreprises.",value1Title:"Innovation Avant Tout",value1Desc:"Nous repoussons les limites et adoptons une technologie de pointe pour résoudre de vrais problèmes.",value2Title:"Centré sur le Client",value2Desc:"Chaque décision que nous prenons est guidée par l'amélioration de l'expérience client.",value3Title:"Trans
95parence",value3Desc:"Nous construisons la confiance par une communication ouverte et des relations honnêtes.",value4Title:"Croissance Continue",value4Desc:"Nous investissons dans le développement de notre équipe et célébrons l'apprentissage par l'échec."},applicationThankYou:{thankYouTitle:"Merci",receivedApplication:"Nous avons reçu votre candidature et notre IA a déjà commencé à examiner votre profil.",whatWeLearnedTitle:"Ce que nous avons appris sur vous :",currentRole:"Poste actuel :",experience:"Expérience :",year:"an",years:"ans",keySkills:"Compétences clés :",excitedToLearn:"Nous sommes ravis d'en apprendre plus sur votre expérience en",teamReview:"Notre équipe examinera votre candidature en détail et vous contactera à ",within:"dans les 3 à 5 jours ouvrables.",whatHappensTitle:"Quelle est la suite ?",step1:"Notre équipe de recrutement examinera minutieusement votre CV et votre profil",step2:"Si votre profil correspond à nos besoins, nous planifierons un appel pour discuter des opportunités",step3:"Nous vous tiendrons informé tout au long du processus",backToAbout:"Retour à à propos",goToHome:"Retour à l'accueil"},terms:{title:"Conditions Générales et Traitement des Données",subtitle:"Veuillez consulter nos conditions générales et notre accord de traitement des données",termsTitle:"Conditions Générales",dpaTitle:"Accord de Traitement des Données",download:"Télécharger",downloadPDF:"Télécharger le PDF",clickToDownload:"Cliquez sur le bouton ci-dessous pour télécharger le document."},modules:{whatsapp:{name:"Intégration WhatsApp",description:"Fondamental"},ai_copilot:{name:"Smartiz AI : Co-pilote & Autopilote",description:"Fondamental"},workflow_editor:{name:"Ãditeur de Workflows Smartiz",description:"Fondamental"},sentiment:{name:"Suivi du Sentiment Client",description:"Fondamental"},inbox:{name:"Boîte de Réception Unifiée (WhatsApp + Emails - plus à venir)",description:"Fondamental"},auto_tasks:{name:"Génération et Suivi Automatique des Tâches",description:"Fondamental"},tasks:{name:"Module de Gestion des Tâches",description:"Fondamental"},task_distribution:{name:"Distribution des Tâches aux Groupes WhatsApp du Personnel",description:"Fondamental"},knowledge_base:{name:"Base de Connaissances Personnalisée",description:"Fondamental"},deposits:{name:"Module de Gestion des Cautions",description:"Module premium"},housekeeping:{name:"Module Ménage",description:"Module premium"},maintenance:{name:"Module Maintenance",description:"Module premium"},marketing:{name:"Module Marketing",description:"Module premium"},payouts:{name:"Module Paiements & Propriétaires",description:"Module premium"},upsells:{name:"Module Ventes Additionnelles",description:"Module premium"},igloohome_keybox:{name:"Intégration boîte à clés igloohome",description:"Accès par boîte à clés connectée, géré via smartiz"}},pricingModules:{whatsapp:{name:"Intégration WhatsApp",description:"Fondamental"},ai_copilot:{name:"Smartiz AI : Co-pilote & Autopilote",description:"Fondamental"},workflow_editor:{name:"Workflow de Messagerie Standard",description:"Fondamental"},sentiment:{name:"Suivi du Sentiment Client",description:"Fondamental"},inbox:{name:"Boîte de Réception Unifiée (WhatsApp + Emails - plus à venir)",description:"Fondamental"},auto_tasks:{name:"Génération et Suivi Automatique des Tâches",description:"Fondamental"},tasks:{name:"Module de Gestion des Tâches",description:"Fondamental"},task_distribution:{name:"Distribution des Tâches aux Groupes WhatsApp du Personnel",description:"Fondamental"},knowledge_base:{name:"Base de Connaissances Personnalisée",description:"Fondamental"},deposits:{name:"Module de Gestion des Cautions",description:"Module premium"},housekeeping:{name:"Module Ménage",description:"Module premium"},maintenance:{name:"Module Maintenance",description:"Module premium"},marketing:{name:"Module Marketing",description:"Module premium"},payouts:{name:"Module Paiements & Propriétaires",description:"Module premium"},upsells:{name:"Module Ventes Additionnelles",description:"Module premium"},igloohome_keybox:{name:"Intégration boîte à clés igloohome",description:"Accès par boîte à clés connectée, géré via smartiz"},customIntegrations:{name:"Intégrations personnalisées",description:"Solutions d'intégration sur mesure"},tailoredOnboarding:{name:"Onboarding personnalisé",description:"Processus de configuration personnalisé"},premiumOnboarding:{name:"Onboarding premium",description:"Expérience de configuration VIP"},dedicatedSupport:{name:"Support et formation dédiés",description:"Assistance prioritaire et formation"}},newsPage:{title:"Actualités",subtitle:"Communiqués de presse, articles sectoriels et événements de l'équipe smartiz.",noArticles:"Aucun article pour le moment. Revenez bientôt !",seoTitle:"Actualités - smartiz | Presse, Articles & Ãvénements",seoDescription:"Restez informé des actualités smartiz, communiqués de presse, articles sectoriels et événements dans la technologie hôtelière.",minRead:"min de lecture",backToNews:"Retour aux actualités",notFound:"Article introuvable"},v2:{home:{hero:{kicker:"Pour les conciergeries, hôtels et gîtes · Plateforme WhatsApp Business officielle",title:"Reprenez le contrôle de vos voyageurs et de vos équipes. Sans rester scotché au téléphone.",subtitle:"Smartiz est la plateforme WhatsApp tout-en-un des conciergeries, hôtels et gîtes. L'IA Smartiz répond à vos voyageurs, détecte et assigne les tâches de vos équipes, et vend vos prestations additionnelles. Elle exécute, vous gardez le contrôle.",cta:"Réserver une démo",visualPlaceholder:"[VISUEL] Visuel à produire : photos du produit et d'un téléphone avec WhatsApp, dans l'esprit du site actuel (smartiz.ai)",stats:[{value:"95 %",label:"d'automatisation, messages et tâches"},{value:"< 10 min",label:"d'intervention par séjour"},{value:"4 M+",label:"interactions WhatsApp traitées"},{value:"4,9â
",label:"satisfaction voyageur"}]},trust:{titleBefore:"Déjà plus de ",titleHighlight:"20 000",titleAfter:" séjours gérés par Smartiz",eyebrow:"Ils nous font confiance",logosAriaLabel:"Logos des clients Smartiz",logoPlaceholder:"Logo client",quotePlaceholder:"Citation client à insérer",authorPlaceholder:"Placeholder : nom, société, segment",backersLabel:"Ils nous soutiennent",backers:"Grand Prix Jeune Pousse 2026 · EHL Innovation Hub · Prix Innovation Canton de
95Vaud (FIT)",ctaDemo:"Réserver une démo",ctaClients:"Découvrez nos clients"},segments:{title:"Pour les professionnels de l'hébergement",discover:"Découvrir",items:[{title:"Conciergeries",text:"Vos voyageurs et vos équipes sont déjà tous sur WhatsApp.",imagePlaceholder:"Image : conciergerie",imageAlt:"Conciergerie avec plateau de petit-déjeuner devant une fenêtre"},{title:"Hôtels et aparthôtels",text:"Pas d'outil en plus pour vos équipes.",imagePlaceholder:"Image : hôtel",imageAlt:"Hôtel contemporain"},{title:"Domaines et parcs de gîtes",text:"Automatisez tout en gardant la touche humaine.",imagePlaceholder:"Image : domaine de gîtes",imageAlt:"Domaine de gîtes aux volets bleus et hortensias"}]},outcomes:{title:"Tout passe par vous. Même le dimanche à 22 h.",subtitle:"Voyageurs, équipes, prestations : aujourd'hui, c'est vous qui coordonnez tout. Smartiz le fait à votre place, sur WhatsApp, vite et bien.",livedLabel:"Ce que vous vivez",withLabel:"Avec Smartiz",cards:[{title:"Les voyageurs",lived:"Les messages partent à la main, à heure fixe, quand vous avez le temps. Les questions arrivent à 23 h, et le 6 sur 10 sur Booking arrive sans prévenir.",with:["L'IA répond aux voyageurs sur WhatsApp, à toute heure.","Les messages prédéfinis partent tout seuls, jusqu'à la demande d'avis.","Un voyageur mécontent ? Vous recevez une alerte pour intervenir."]},{title:"Les équipes",lived:"Dix groupes WhatsApp, 300 photos de ménage dans le téléphone, « tu passes à quelle heure ? » envoyé à la main. L'information se perd, vous relancez.",with:["La demande d'un voyageur devient une tâche, dans le bon groupe, pour la bonne personne.","Les plannings de ménage suivent les réservations et se replanifient seuls.","Les photos de sortie arrivent horodatées, sans application à installer."]},{title:"Ce qui n'est jamais vendu",lived:"Le départ tardif, le petit-déjeuner, le séjour de l'année prochaine : personne ne les propose, parce que personne n'a le temps. Et si le voyageur revient, il passe de nouveau par la plateforme, commission comprise.",with:["Les ventes additionnelles et prestations sont proposées au bon moment, et faciles à payer.","Vos campagnes WhatsApp ou e-mail font revenir les bons clients en direct.","Les avis Google sont suivis et répondus depuis le même endroit."]}],ctaDemo:"Réserver une démo",ctaFeatures:"Voir toutes les fonctionnalités"},onboarding:{title:"Une mise en route simple, en trois étapes.",subtitle:"Changer d'outil, c'est aussi changer des habitudes, pour vous et pour vos équipes. On l'a vécu dans notre propre conciergerie. C'est pour ça que l'onboarding est mené par des opérateurs, à votre rythme : on ne digitalise pas tout d'un coup, on avance dans l'ordre qui compte pour vous.",steps:[{title:"1 · Connecter",text:"Votre numéro WhatsApp relié à Meta via l'inscription officielle. Votre PMS, vos paiements et vos serrures connectées intégrés directement. Pas de PMS ? Aucun souci, Smartiz gère vos réservations directement."},{title:"2 · Configurer avec vous",text:"On part de votre façon de travailler : vos messages, vos consignes d'arrivée, vos équipes, vos prestations. De la réservation au départ, une communication voyageurs qui vous ressemble."},{title:"3 · Laisser l'IA travailler",text:"Elle répond aux voyageurs, crée les tâches et les envoie aux équipes, propose et encaisse vos prestations. Vous fixez les règles au départ, et vous ajustez au fur et à mesure."}],afterTitle:"Et après ?",afterText:"Un suivi dédié, et un support qui répond sur WhatsApp. Comme pour vos voyageurs.",testimonialPlaceholder:"[TÃMOIGNAGE] emplacement témoignage client",cta:"Réserver une démo"},integrations:{title:"Connecté aux outils que vous utilisez déjà ",subtitle:"PMS, channel managers, serrures connectées, paiements : Smartiz s'intègre à votre stack, sans le remplacer.",logosAriaLabel:"Intégrations Smartiz",cta:"Voir toutes nos intégrations"},pricing:{title:"Des tarifs à la réservation. Adaptés à votre trésorerie.",subtitle:"Facturation au check-in, quand l'argent est déjà encaissé. Aucun frais caché en basse saison. Trois formules, de 1,50 ⬠à 5 ⬠par réservation, vos premières réservations offertes.",plans:[{name:"Essentiel",price:"1,50 ⬠/ réservation",description:"Pour commencer avec WhatsApp"},{name:"Avancé",price:"3 ⬠/ réservation",description:"Tout ce qu'il vous faut pour l'expérience voyageur"},{name:"Expert",price:"5 ⬠/ réservation",description:"Gestion opérationnelle complète",badge:"La plus demandée"}],cta:"Voir nos tarifs détaillés"},story:{kicker:"Par des opérateurs, pour des opérateurs",text:"Smartiz est né sur le terrain. Nous gérons notre propre conciergerie, 25 logements dans les Alpes suisses, et nous avions besoin d'un outil adapté à ce quotidien.",cta:"Découvrez notre histoire"}
95,finalCta:{title:"Prêt à reprendre le contrôle ?",subtitle:"Commencez l'aventure dès maintenant en prenant rendez-vous.",ctaDemo:"Réserver une démo",ctaWhatsapp:"Ou posez votre question sur WhatsApp"},faq:{title:"Questions fréquentes",items:[{question:"Mes voyageurs accepteront-ils WhatsApp ?",answer:"Chez nos clients, tous les voyageurs répondent sur WhatsApp dès le premier message. Ceux qui ne l'ont pas reçoivent les mêmes messages par e-mail."},{question:"Ãa marche avec mon PMS ? Et sans PMS ?",answer:"Smartiz s'intègre à votre PMS (voir la page dédiée). Sans PMS, vous gérez vos réservations directement sur Smartiz."},{question:"Comment l'IA fonctionne ?",answer:"Elle répond aux voyageurs, crée et envoie les tâches, propose et encaisse les prestations. Vous fixez les règles : ce qu'elle peut promettre, quand elle doit vous demander, quand un humain reprend la main. Tout ce qu'elle fait est visible."},{question:"Combien de temps prend la mise en route ?",answer:"En moyenne, entre une et quatre semaines, selon les intégrations à faire et le nombre de logements. L'onboarding est mené par des opérateurs."},{question:"Mon numéro WhatsApp risque-t-il d'être banni ?",answer:"Non. Smartiz passe par l'API officielle de Meta, avec votre numéro vérifié."},{question:"Combien ça coûte ?",answer:"De 1,50 ⬠à 5 ⬠par réservation selon la formule, facturé au check-in. Vos premières réservations sont offertes. Détail sur la page Tarifs."},{question:"Quand voit-on les premiers résultats ?",answer:"Dès la mise en service : le premier séjour géré par l'IA est du temps que vous ne passez plus au téléphone. Les avis et les ventes additionnelles suivent avec la saison."}]}},navigation:{ariaLabel:"Navigation V2",openMenu:"Ouvrir le menu",home:"Accueil",product:"Produit",solutions:"Solutions",pricing:"Tarifs",clients:"Clients",resources:"Ressources",about:"à propos",demo:"Réserver une démo",productItems:{whatsapp:"WhatsApp",guestExperience:"Expérience voyageur",operations:"Gestion des opérations",revenue:"Augmentez vos revenus",ai:"L'IA Smartiz",integrations:"Intégrations",security:"Sécurité"},productDescriptions:{whatsapp:"Le canal que vos voyageurs et vos équipes ouvrent déjà ",guestExperience:"Messages automatiques, IA qui répond, alertes, avis",operations:"Tâches, plannings, rapports, portail propriétaires",revenue:"Ventes additionnelles, fidélisation, réservations directes",ai:"Elle gère le quotidien et vous conseille",integrations:"PMS, serrures, paiements, avis",security:"Comptes, données, IA, fonds"},solutionItems:{conciergeries:"Conciergeries",hotels:"Hôtels et aparthôtels",estates:"Domaines et parcs de gîtes"},solutionDescriptions:{conciergeries:"De 10 à 500+ logements",hotels:"Pas d'outil en plus pour vos équipes",estates:"Automatisez tout en gardant la touche humaine"}},footer:{description:"La plateforme WhatsApp des conciergeries, hôtels et parcs de gîtes. Conçue par des opérateurs.",company:"Entreprise",about:"à propos",clients:"Clients",resources:"Ressources",careers:"Devenez smartizian",contact:"Contact",support:"Support",legal:"Légal",privacy:"Politique de confidentialité",terms:"Conditions d'utilisation",cookies:"Préférences de cookies",followUs:"Suivez-nous",copyright:"© 2021-2026 smartiz.ai · Tous droits réservés · Fait avec â¤ï¸ en Suisse ð¨ð",disclaimer:"WhatsApp est une marque de Meta Platforms, Inc. Smartiz n'est ni affilié à , ni sponsorisé par WhatsApp ou Meta."},product:{whatsapp:{kicker:"Plateforme WhatsApp Business officielle de Meta",title:"WhatsApp, le canal que vos voyageurs et vos équipes ouvrent déjà .",intro:"Un bouton WhatsApp, tout le monde en a un. Faire tourner toute votre activité dessus, voyageurs et équipes compris, dans les règles de Meta, c'est un autre métier. C'est ce que Smartiz a construit.",cta:"Réserver une démo",heroVisual:"[VISUEL] Visuel à produire : téléphone avec WhatsApp et capture du produit",stats:[{value:"4 Mds",label:"d'utilisateurs dans le monde"},{value:"98 %",label:"de messages lus"},{value:"< 3 min",label:"pour lire un message reçu, en moyenne"}],blocks:[{title:"Un numéro officiel, pas une passerelle",text:"Votre numéro, votre entreprise vérifiée, la coche verte. Enregistré via l'inscription officielle Meta, donc jamais banni.",visual:"[VISUEL] Visuel : écran d'inscription Meta, coche verte"},{title:"Un numéro, toute l'équipe",text:"Plusieurs personnes répondent sur le même numéro, chacune avec son rôle. L'historique est complet, l'IA est en première ligne. Vous partez une semaine, le numéro continue.",visual:"[VISUEL] Visuel : boîte de réception partagée"},{title:"Une expérience voyageur sans contrainte",text:"Photos, vidéos, vocaux, plans, PDF, liens de paiement : tout passe dans le fil. Aucun format imposé, aucun lien bloqué, contrairement aux messageries des plateformes de réservation.",visual:"[VISUEL] Visuel : fil WhatsApp riche (vidéo, plan, lien)"},{title:"Vos équipes ont déjà WhatsApp",text:"Ménage, maintenance, accueil : chaque équipe a son groupe. Les tâches y entrent, les photos en reviennent. Une question dans le groupe, l'IA répond.",visual:"[VISUEL] Visuel : groupe WhatsApp équipe avec réponse de l'IA"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client"},guestExperience:{kicker:"Expérience voyageur",title:"Un séjour clair pour le voyageur. Aucun message à envoyer pour vous.",intro:"De la réservation à la demande d'avis, chaque voyageur reçoit la bonne information au bon moment, avec vos mots et un livret d'accueil sur mesure. L'IA répond au reste. Vous lisez, vous n'écrivez plus.",cta:"Dites adieu aux mauvais avis",blocks:[{title:"Des messages qui partent tout seuls",text:"Confirmation, arrivée, milieu de séjour, départ, demande d'avis : vos messages partent au bon moment, avec la vidéo d'accès, le code, le plan. Ãcrits une fois, envoyés à chaque séjour.",visual:"[VISUEL] Visuel : séquence de messages d'un séjour"},{title:"Une IA qui répond comme vous",text:"Elle connaît vos logements, vos règles, vos bonne
95s adresses. Le parking, le départ tardif, le chauffage en panne : elle répond, à toute heure. Elle apprend de vos réponses et prend votre ton.",visual:"[VISUEL] Visuel : conversation voyageur / IA"},{title:"Un voyageur mécontent ? Vous recevez une alerte",text:"L'IA lit le ton de chaque conversation. Une plainte, un problème signalé : vous êtes prévenu pendant le séjour, pas après l'avis.",visual:"[VISUEL] Visuel : alerte sentiment"},{title:"Des avis demandés au bon moment, au bon voyageur",text:"Smartiz demande l'avis quand le séjour s'est bien passé, et seulement à ceux-là . Vos notes Google et plateformes montent. +0,4â
constaté chez nos clients.",visual:"[VISUEL] Visuel : note Google qui monte"},{title:"Un livret d'accueil qu'ils lisent vraiment",text:"Créé en trois minutes, à vos couleurs, traduit, mis à jour sans rien réimprimer. Envoyé sur WhatsApp au bon moment, consultable pendant tout le séjour.",visual:"[VISUEL] Visuel : livret d'accueil sur mobile"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client"},operations:{kicker:"Reprenez le contrôle de vos opérations",title:"Smartiz coordonne vos équipes. Vous récupérez votre temps.",intro:"Ménages, maintenance, arrivées : certains de nos clients gèrent des dizaines de rotations par jour en haute saison. Smartiz crée les tâches, les envoie aux bonnes personnes sur WhatsApp et suit leur avancement. Vos propriétaires ont leur portail. Vous n'avez plus rien à surveiller ni à relancer.",cta:"Reprenez le contrôle",blocks:[{title:"L'IA écoute et crée les tâches",text:"Un voyageur signale un problème de chauffage à 21 h : la tâche est créée et envoyée à la maintenance dans son groupe. Les ménages se génèrent depuis les réservations et se replanifient quand les dates bougent.",visual:"[VISUEL] Visuel : tâche créée depuis une conversation"},{title:"Un pouce pour prendre, une coche pour terminer",text:"Vos équipes suivent leurs tâches avec de simples emojis, dans WhatsApp. Rien à installer, rien à apprendre. Chaque matin, chacun reçoit son planning du jour.",visual:"[VISUEL] Visuel : groupe WhatsApp avec ð et â
"},{title:"Des rapports avec preuve",text:"Photos de sortie, inspection, minuteur : le portail s'ouvre depuis le message, sans identifiant. Les photos arrivent horodatées, rattachées à la réservation. Fini les 300 photos dans un groupe.",visual:"[VISUEL] Visuel : rapport de ménage avec photos"},{title:"Les équipes se passent le relais",text:"Le ménage signale une ampoule cassée : la tâche part en maintenance. Le logement est prêt : le voyageur reçoit son code. L'information circule entre les équipes, dans les deux sens.",visual:"[VISUEL] Visuel : état des logements"},{title:"Un portail pour vos propriétaires",text:"Revenus, calendrier, relevés, récapitulatif annuel. Le propriétaire réserve son propre séjour, vous approuvez d'un geste, le ménage se replanifie.",visual:"[VISUEL] Visuel : portail propriétaire"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client"},revenue:{kicker:"Plus de revenus par séjour",title:"Vendez plus à chaque séjour, sans y penser.",intro:"Départ tardif, petit-déjeuner, nuit de plus : l'IA les propose au bon moment, dans le fil WhatsApp du voyageur, et encaisse. Ensuite, Smartiz garde le contact comme un CRM : campagnes de fidélisation, offres de retour, réservation suivante en direct. Vous n'avez rien à faire.",cta:"Plus de revenus dès maintenant",blocks:[{title:"Des prestations vendues dans le fil",text:"Votre catalogue, vos règles. L'IA propose la bonne offre au bon voyageur et encaisse par lien. La tâche liée se crée toute seule : ménage de milieu de séjour planifié, code d'accès prolongé, panier préparé."},{title:"Des voyageurs qui reviennent en direct",text:"Un fichier voyageurs qui se construit seul, des campagnes WhatsApp ou e-mail par segment, et la réservation suivante sans commission. +10 % de revenus directs constatés chez nos clients."},{title:"Des avis qui font monter votre fiche",text:"Avis Google synchronisés, réponses préparées, votre note qui remonte. Une meilleure note, c'est plus de réservations directes."}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client"},ai:{kicker:"Une IA qui gère, et qui vous conseille",title:"Une IA qui fait le travail. Et qui vous aide à décider.",intro:"L'IA Smartiz connaît vos logements, vos équipes et vos règles. Elle traite le quotidien sans vous, en toute sécurité. Et elle prépare la suite : ce qui se vend, ce qui coince, ce qu'il faut changer.",cta:"Réserver une démo",blocks:[{title:"Elle connaît votre activité",text:"Vos logements, vos règles, vos équipes, vos prestations, vos réservations en temps réel. Elle apprend de vos corrections et, après quelques semaines, elle écrit comme vous.",visual:"[VISUEL] Visuel : fiche logement vue par l'IA"},{title:"Elle traite le quotidien",text:"Elle répond aux voyageurs, crée et envoie les tâches, propose et encaisse les prestations, gère les codes et les ménages. 95 % des messages et des tâches, sans intervention.",visual:"[VISUEL] Visuel : une journée gérée par l'IA"},{title:"Vous gardez la main",text:"Vous décidez ce qu'elle peut promettre, quand elle doit vous demander, quand quelqu'un reprend. Tout ce qu'elle fait est visible.",visual:"[VISUEL] Visuel : règles et file d'approbations"},{title:"Elle vous conseille",text:"[Bloc à définir avec Olivier : l'IA qui analyse votre activité, repère ce qui se vend et ce qui coince, et propose des décisions.]",visual:"[VISUEL] Visuel : à définir",placeholder:!0},{title:"Elle travaille en toute sécurité",text:"Tout ce qu'elle fait respecte nos accords de traitement des données : vos données ne sont ni vendues, ni utilisées pour entraîner d'autres modèles.",visual:"[VISUEL] Visuel : cadenas / données"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client"}
95,integrations:{kicker:"Intégrations",title:"Connecté aux outils que vous utilisez déjà .",intro:"Nos intégrations relient Smartiz à votre PMS, votre channel manager, vos serrures connectées, vos paiements et vos avis. Vos réservations arrivent, Smartiz fait le reste. Tout ce qui figure ici est en production.",cta:"Demander une intégration",testimonial:"[TÃMOIGNAGE] emplacement témoignage client",categories:[{title:"PMS et channel managers",logos:["Mews","Guesty","Cloudbeds","Smily","Rental Ready","Avantio","Smoobu","Lodgify","ICNEA","Protel","SuperHote"]},{title:"Serrures et boîtes à clés",logos:["igloohome","Nuki","KeyNest"]},{title:"Paiements et cautions",logos:["Stripe","Swikly"]},{title:"Avis, e-mail et le reste",logos:["Google Business Profile","SendGrid","OneDrive","Flux iCal"]}]}},solutions:{conciergeries:{kicker:"Pour les conciergeries de 10 à 500+ logements",title:"Vos voyageurs et vos équipes sont déjà sur WhatsApp. Vous aussi, toute la journée.",intro:"Vos voyageurs écrivent sur WhatsApp, vos équipes y travaillent, et tout passe encore par vous. L'IA Smartiz répond aux voyageurs, coordonne vos équipes et vend vos prestations, sur ce même WhatsApp. Vous gardez le contrôle, sans le téléphone.",cta:"Réserver une démo",heroVisual:"[VISUEL] Visuel à produire : photo de logements / établissement",sectionTitle:"VOTRE QUOTIDIEN",withoutTitle:"Sans Smartiz",dailyTitle:"Votre quotidien aujourd'hui",daily:["Les messages d'arrivée partent à la main, à heure fixe.","Vous seul pouvez répondre sur le numéro WhatsApp.","Un problème à 21 h, retapé dans le groupe maintenance.","300 photos de ménage, aucune preuve utilisable.","Le départ tardif, le panier : jamais proposés.","Dix logements de plus ? Il faut embaucher."],smartizTitle:"Avec Smartiz",blocks:[{title:"Côté voyageurs",text:"Les messages prédéfinis partent tout seuls, jusqu'à la demande d'avis. L'IA répond au reste, à toute heure. Un voyageur mécontent ? Vous recevez une alerte.",visual:"[VISUEL] Visuel",linkLabel:"Expérience voyageur",linkTarget:"experience"},{title:"Côté équipes",text:"La demande d'un voyageur devient une tâche dans le bon groupe WhatsApp. Vos équipes prennent avec un pouce, terminent avec une coche. Les photos de sortie arrivent horodatées. Rien à installer.",visual:"[VISUEL] Visuel",linkLabel:"Gestion des opérations",linkTarget:"operations"},{title:"Côté revenus",text:"Départ tardif, petit-déjeuner, nuit de plus : l'IA les propose au bon moment et encaisse. Ensuite, Smartiz garde le contact et fait revenir vos voyageurs en direct.",visual:"[VISUEL] Visuel",linkLabel:"Augmentez vos revenus",linkTarget:"revenue"}],aiBand:{title:"Et l'IA dans tout ça ?",text:"Elle connaît vos logements, vos règles et vos équipes. Elle traite le quotidien, vous fixez les règles.",linkLabel:"L'IA Smartiz"},testimonial:"[TÃMOIGNAGE] emplacement témoignage client",clientsLink:"Découvrez nos clients",finalTitle:"Réserver une démo",finalText:"Vos premières réservations sont offertes."},hotels:{kicker:"Pour les hôtels et aparthôtels",title:"Coordonnez vos équipes là où elles sont déjà . Laissez l'IA piloter le reste.",intro:"Vos clients écrivent à toute heure, vos équipes se coordonnent déjà sur WhatsApp. Smartiz met de l'ordre des deux côtés : l'IA répond, transmet au bon service, vend le restaurant, le spa et la nuit de plus, et fait revenir vos clients. Pensé pour l'hôtellerie : catégories de chambres, groupes, restauration, fidélisation.",cta:"Réserver une démo",heroVisual:"[VISUEL] Visuel à produire : photo de logements / établissement",sectionTitle:"VOTRE QUOTIDIEN",withoutTitle:"Sans Smartiz",dailyTitle:"Votre quotidien aujourd'hui",daily:["Un client écrit à 23 h. Qui répond ?","Une demande : un appel, un post-it, un groupe. Parfois elle se perd.","Le mauvais avis arrive après le départ.","Un client en suite repart sans massage ni table. Personne n'a proposé.","Le room service se note sur un papier qui va en cuisine."],smartizTitle:"Avec Smartiz",blocks:[{title:"Une réception qui répond la nuit",text:"L'IA répond aux questions courantes, envoie les informations d'arrivée, transmet les demandes au bon service. Votre équipe lit un résumé le matin.",visual:"[VISUEL] Visuel",linkLabel:"Expérience voyageur",linkTarget:"experience"}
95,{title:"Des équipes coordonnées sans réunion",text:"La demande d'un client devient une tâche dans le groupe WhatsApp du housekeeping, de la maintenance ou du restaurant. Chacun reçoit son planning, les chambres prêtes sont signalées. Personne n'installe d'application.",visual:"[VISUEL] Visuel",linkLabel:"Gestion des opérations",linkTarget:"operations"},{title:"Des clients qui reviennent",text:"Un client mécontent ? Vous recevez une alerte pendant le séjour. Les avis sont demandés au bon moment, au bon client. Ensuite, Smartiz garde le contact : campagnes de fidélisation, offres de retour, réservation suivante en direct, sans commission.",visual:"[VISUEL] Visuel",linkLabel:"Augmentez vos revenus",linkTarget:"revenue"},{title:"Le séjour vend la table, le spa et la nuit de plus",text:"Table proposée la veille, soin proposé à l'arrivée, départ tardif, petit-déjeuner : au bon moment, dans la conversation, payés par lien. Room service commandé sur WhatsApp, ticket en cuisine.",visual:"[VISUEL] Visuel",linkLabel:"Augmentez vos revenus",linkTarget:"revenue"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client",finalTitle:"Réserver une démo",finalText:"Vos premières réservations sont offertes."},estates:{kicker:"Pour les domaines et les parcs de plusieurs gîtes",title:"Les groupes accueillis, les gîtes préparés, sans que tout passe par vous.",intro:"Familles, mariages, séminaires : plusieurs hébergements se remplissent le même jour. Tout se prépare en amont, les informations du groupe, les paiements, le linge, les codes, les salles. Smartiz automatise cette préparation, coordonne vos équipes et répond aux vacanciers.",cta:"Réserver une démo",heroVisual:"[VISUEL] Visuel à produire : photo de logements / établissement",sectionTitle:"VOTRE QUOTIDIEN",withoutTitle:"Sans Smartiz",dailyTitle:"Votre quotidien aujourd'hui",daily:["Un groupe de cinquante samedi : qui dort où, qui a payé, qui a commandé le linge ?","Les codes partent le vendredi après-midi, un par un.","Six gîtes à préparer le même matin, une équipe qui attend ses consignes.","Le samedi, le téléphone sonne pendant les arrivées.","La fiche de préparation change trois fois avant le séjour."],smartizTitle:"Avec Smartiz",blocks:[{title:"Les réservations de groupe, suivies de bout en bout",text:"Un contact principal, une conversation, et Smartiz suit tout le séjour : informations collectées, solde et caution demandés au bon moment, options proposées et payées. Les échanges se font en conversation individuelle avec le responsable du groupe. Et dès que vous savez qui dort dans quel logement, chaque occupant reçoit sa propre séquence : codes, livret, consignes de son gîte.",visual:"[VISUEL] Visuel",linkLabel:"Expérience voyageur",linkTarget:"experience"},{title:"La fiche de préparation, à jour en continu",text:"Un séjour se prépare au fur et à mesure. Couchages, linge, repas, salles, équipements réservés : la fiche se remplit en ligne et vos équipes reçoivent la version à jour, gîte par gîte, dans leur groupe WhatsApp.",visual:"[VISUEL] Visuel",linkLabel:"Gestion des opérations",linkTarget:"operations"},{title:"Tout se règle avant l'arrivée",text:"Confirmation, questionnaire du groupe, itinéraire, codes générés pour chaque séjour, livret par hébergement : le parcours part tout seul. Le samedi, il ne reste que les arrivées.",visual:"[VISUEL] Visuel",linkLabel:"Expérience voyageur",linkTarget:"experience"},{title:"Des extras vendus sans y penser",text:"Linge, paniers, vélos, départ tardif, repas : proposés dans la conversation au bon moment, et faciles à payer en ligne.",visual:"[VISUEL] Visuel",linkLabel:"Augmentez vos revenus",linkTarget:"revenue"}],testimonial:"[TÃMOIGNAGE] emplacement témoignage client",clientsLink:"Découvrez nos clients",finalTitle:"Réserver une démo",finalText:"Vos premières réservations sont offertes."}},pricingPage:{kicker:"Des tarifs adaptés à votre activité",title:"Vous payez au rythme de votre activité.",intro:"Votre succès est notre succès : vous payez par réservation, au check-in, quand l'argent est déjà encaissé. Pas de licence par utilisateur. En basse saison, seul un minimum mensuel très bas s'applique.",plans:[{name:"Essentiel",subtitle:"Pour commencer avec WhatsApp",price:"1,50 ⬠/ réservation",features:[{text:"Boîte de réception unifiée",included:!0},{text:"Connexion WhatsApp et e-mail",included:!0},{text:"Livret d'accueil digital",included:!0},{text:"Sans intégrations ni automatisations",included:!1}],cta:"Réserver une démo"},{name:"Avancé",subtitle:"Expérience voyageur",price:"3 ⬠/ réservation",features:[{text:"Automatisation des messages voyageurs",included:!0},{text:"Réponses automatiques de l'IA",included:!0},{text:"Détection et gestion des tâches opérationnelles",included:!0},{text:"Analyse du sentiment voyageur",included:!0},{text:"Vérification d'identité voyageur",included:!0},{text:"Intégrations personnalisées",included:!0}],cta:"Réserver une démo"},{name:"Expert",subtitle:"Gestion opérationnelle complète",price:"5 ⬠/ réservation",badge:"La plus demandée",features:[{text:"Tout pour l'expérience voyageur",included:!0},{text:"Orchestration complète des opérations par l'IA Smartiz",included:!0},{text:"Plannings dynamiques pour les équipes",included:!0},{text:"Reporting et analytics",included:!0},{text:"Modules supplémentaires : propriétaires, ventes additionnelles, marketing et fidélisation",included:!0}],cta:"Réserver une démo"}],note:"HT. Frais de mise en place applicables. Facturation mensuelle sur les réservations effectives, avec un minimum mensuel en l'absence de réservation. Frais rédu
95its sur les annulations. Frais possibles sur les appareils connectés.",custom:{title:"Besoin d'une solution sur mesure ?",text:"Groupes, multi-sociétés, volumes importants : on construit l'offre avec vous.",cta:"Nous écrire"},model:{title:"Un modèle de tarification unique",intro:"Vous payez à l'usage, et vous voyez ce que vous payez.",cards:[{title:"Pour démarrer",text:"Vos premières réservations sont offertes, le temps de connecter vos outils et de voir l'IA travailler sur vos vrais séjours."},{title:"Facturé au check-in",text:"Vous payez une fois le voyageur arrivé, donc après l'encaissement. Aucun surcoût en période creuse."},{title:"Automatique et transparent",text:"La facturation se fait toute seule, et vous suivez votre projection mois par mois depuis votre espace. Pas de surprise en fin de mois."}],cta:"Réserver une démo"}},clientsPage:{title:"Déjà plus de 20 000 séjours gérés par Smartiz.",titleBefore:"Déjà plus de",titleAfter:"séjours gérés par Smartiz.",recognitionTitle:"Reconnaissances",recognitionText:"Soutenus par : Grand Prix Jeune Pousse 2026, RDV des Pros de la Location Saisonnière · Prix Innovation Canton de Vaud (FIT) · EHL Innovation Hub",usersTitle:"Ils utilisent Smartiz",segments:[{title:"Conciergeries",logos:["[LOGO : Logo]","[LOGO : Logo]","[LOGO : Logo]","[LOGO : Logo]"]},{title:"Hôtels et aparthôtels",logos:["[LOGO : Logo]","[LOGO : Logo]"]},{title:"Domaines et parcs de gîtes",logos:["[LOGO : Logo]","[LOGO : Logo]"]}],testimonialsTitle:"Ce que nos clients disent",testimonial:"[TÃMOIGNAGE] emplacement témoignage client",testimonialsCta:"Réserver une démo",casesTitle:"Cas clients",cases:[{visual:"[VISUEL] Visuel",title:"Cas client",text:"Placeholder : le avant, le déclencheur, le résultat.",link:"Lire"},{visual:"[VISUEL] Visuel",title:"Cas client",text:"Placeholder : le avant, le déclencheur, le résultat.",link:"Lire"}],videosTitle:"En vidéo",video:"[VISUEL] Vidéo témoignage",finalTitle:"Commencez l'aventure dès maintenant",finalText:"",finalCta:"Réserver une démo"},resourcesV2Page:{title:"Ressources",subtitle:"Articles, guides et analyses pour les professionnels de l'hébergement.",search:"Rechercher des articlesâ¦",filters:["Tous","Location courte durée","Intégrations","Gestion locative","Immobilier","Opérations","Ressources humaines","Intelligence artificielle","Podcasts"],podcastsTitle:"Podcasts",podcastLabel:"Podcast",podcastSource:"Conciergerie de Rêve",podcasts:[{image:"https://i.ytimg.com/vi/phWMighnwBM/hqdefault.jpg",title:"Comment optimiser son temps en location courte durée avec l'IA ?",summary:"Laurent et Olivier, cofondateurs de Smartiz, expliquent comment l'IA libère du temps aux opérateurs de location courte durée.",href:"https://www.youtube.com/watch?v=phWMighnwBM"},{image:"https://i.ytimg.com/vi/04G0GjUxogs/hqdefault.jpg",title:"3 visions de la conciergerie : qui a raison ?",summary:"Débat entre professionnels sur les modèles de conciergerie et leur évolution.",href:"https://www.youtube.com/watch?v=04G0GjUxogs"}],listen:"Ãcouter",newsTitle:"Nos dernières actualités",newsFollow:"Suivre Smartiz sur LinkedIn",newsPosts:[{text:"[POST LINKEDIN] Actualité Smartiz à venir",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Retour d'expérience à venir",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Nouveauté produit à venir",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Vie de l'équipe à venir",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"}],articlesTitle:"Articles",minRead:"min de lecture",emptyTitle:"[Titre de l'article]",emptySummary:"[Résumé de l'article]",emptyCategory:"[Catégorie]"},aboutPage:{kicker:"Conçu par des opérateurs, pour des opérateurs",storyTitle:"Notre histoire",story:["Tout a commencé à Londres, par une rencontre entre les deux cofondateurs, Olivier et Laurent. Une passion commune pour l'expérience client et la transformation digitale les amène à travailler ensemble sur des transformations à grande échelle, puis à se retrouver, plus tard, sur l'impact du Covid et de l'IA sur nos façons de travailler.","Entre-temps, Olivier acquiert un logement dans les Alpes suisses et se lance dans la location courte durée. De fil en aiguille, des propriétaires lui demandent de l'aide et l'activité grandit. La passion pour l'expérience client reste la même et trouve sa place dans une communication personnalisée sur WhatsApp et une gestion des voyageurs soignée et attentive.","Smartiz, c'était d'abord une tablette dans quelques logements. Mais les voyageurs préféraient toujours WhatsApp.","C'est à ce moment-là que Laurent rejoint l'aventure. Le constat est clair : le canal WhatsApp est celui qui fonctionne le mieux, et il faut automatiser les flux voyageurs comme les flux internes pour continuer à grandir et mettre l'IA au service de la gestion quotidienne. Aucune solution sur le marché ne le fait. Smartiz voit le jour."],storyVisual:"[VISUEL] Visuel : photo des fondateurs / des Alpes",storyImageAlt:"Laurent Dumoulin et Olivier Dubuisson à l'EHL, Lausanne",whyTitle:"Pourquoi maintenant",why:[{title:"WhatsApp est devenu LE canal dans le tourisme",text:"Pour les voyageurs comme pour les équipes, c'est là que tout se passe déjà . Le sujet n'est plus de choisir le canal, mais de le faire tourner à l'échelle."},{title:"L'IA agit, elle ne se contente plus d'assister",text:"Elle répond, planifie, vend et coordonne, en toute sécurité. Ceux qui lui confient l'exécution grandissent sans embaucher ; les autres plafonnent."},{title:"Les opérateurs ne veulent plus d'un outil de plus",text:"Les équipes n'ouvr
95iront pas une nouvelle application. La seule plateforme qui marche est celle qui vit dans ce qu'elles utilisent déjà ."}],foundersTitle:"Les cofondateurs",founders:[{visual:"[VISUEL] Photo",name:"Olivier Dubuisson",role:"Cofondateur et CTO",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/olivierdubuisson/"},{visual:"[VISUEL] Photo",name:"Laurent Dumoulin",role:"Cofondateur et développement commercial",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/laurent-dumoulin-smartiz/"}],advisorsTitle:"Notre board of advisors",advisors:[{visual:"[VISUEL] Photo",name:"Bernard Jaccard",role:"Business Developer chez Swisscom Ventures, administrateur et conseiller de startups",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/bjaccard/"},{visual:"[VISUEL] Photo",name:"Yannick Hofmeister",role:"COO d'OWT (groupe Swisscom), IA, stratégie et technologie",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/yannickhofmeister/"}],careers:"Devenez smartizian",workTitle:"Comment nous travaillons",values:[{title:"Opérateurs d'abord",text:"Chaque fonctionnalité tourne dans notre propre conciergerie avant de sortir."},{title:"Curiosité",text:"Nous prenons le temps de comprendre les opérations de chaque client, et le secteur dans lequel il travaille."},{title:"Expérimentation",text:"Nous développons et testons vite, avec nos clients, de façon sécurisée."},{title:"Humilité",text:"Nous avons toujours quelque chose à apprendre de nos clients et de nos propres équipes de terrain."},{title:"Le voyageur au centre",text:"Nous nous mettons à la place du gérant et du voyageur, pour que l'expérience soit bonne des deux côtés."}],supportersTitle:"Ils nous soutiennent",demo:"Réserver une démo",clients:"Découvrir nos clients"},securityPage:{title:"Un environnement autonome mais sous contrôle",intro:"Smartiz agit en votre nom. Pour garder le contrôle, nous avons mis en place une infrastructure stable et sécurisée.",reviewNote:"à vérifier et compléter par Olivier",cards:[{title:"Sécurité des accès et des comptes",text:"MFA, clés d'accès, application à toute l'organisation, surveillance des sessions, réinitialisation validée par un administrateur."},{title:"Gestion et protection des données",text:"RGPD, données chiffrées, jamais vendues, jamais utilisées pour entraîner des modèles tiers ; export et effacement complets sur demande."},{title:"Confidentialité",text:"Conversations verrouillées par code, accès par rôle, portails propriétaire et équipier limités par jeton."},{title:"Plateforme et stabilité",text:"Webhooks signés, limitation de débit, journalisation, relecture des fenêtres d'incident."},{title:"IA",text:"Règles, file d'approbations, traçabilité de chaque action."}]},live:{refreshIn:"En temps réel, actualisation dans {s}s"},visuals:{dashboardAlt:"Tableau de bord Smartiz pour piloter les voyageurs, les équipes et les opérations",welcomeAlt:"Téléphone affichant une conversation WhatsApp et un sondage de satisfaction Smartiz",sentimentAlt:"Analyse du sentiment voyageur dans Smartiz avec détection d'une insatisfaction",autopilotAlt:"Conversations voyageurs gérées par l'IA Smartiz",tasksAlt:"Gestion des tâches opérationnelles et suivi du sentiment dans Smartiz",workflowAlt:"Ãditeur de workflows Smartiz pour définir les règles et les approbations",experiencesAlt:"Livret d'accueil mobile Smartiz présentant les expériences et les ventes additionnelles",solutionHeroAlt:{conciergeries:"Professionnelle d'une conciergerie dans un hébergement",hotels:"Professionnel d'un hôtel dans son établissement",estates:"Professionnelle d'un domaine de gîtes en extérieur"}},supportersAward:"Grand Prix Jeune Pousse 2026"}},yj={nav:{features:"Funktionen",pricing:"Preise",testimonials:"Referenzen",resources:"Ressourcen",getStarted:"Jetzt Starten",talkToUs:"Kontaktieren Sie uns"},hero:{badge:"Agentic AI für Hospitality",title:"Die einzige WhatsApp-first",titleHighlight:"Agentic AI-Plattform für Hospitality-Profis",subtitle:"Entwickelt für Kurzzeitvermietungs-Profis und Hotels, smartiz erkennt Gästestimmungen, erstellt und verwaltet Aufgaben für Sie und verwaltet Gästekommunikation autonom - alles auf WhatsApp, bereits auf 4 Milliarden Geräten installiert.",ctaPrimary:"Kostenlos Starten",ctaSecondary:"smartiz Ansehen!",stat1Label:"Nachrichten Automatisiert",stat2Label:"Gästezufriedenheit",stat3Label:"Zeit Gespart/Tag",stat4Label:"WhatsApp-Interaktionen Bearbeitet"},trustedBy:{title:"Vertraut von führenden Marken",award:"ð Ausgezeichnet: Grand Prix Jeune Pousse 2026 â Rendez-vous des Pros de la Location Saisonnière"},stats:{title:"Vertraut von Immobilienverwaltern und Hotels Weltweit",subtitle:"Eine Plattform. Unendliche Möglichkeiten.",conversations:"4M+",conversationsLabel:"WhatsApp-Nutzer Weltweit",responseTime:"99%",responseTimeLabel:"Gelesene Nachrichten",satisfaction:"+80%",satisfactionLabel:"Engagement vs E-Mails",automation:"Rich Media",automationLabel:"Maximale Flexibilität",cta:"Sprechen Sie mit uns"}
95,features:{title:"Agentic AI Funktionen, die Wirklich Funktionieren",subtitle:"Von autonomer Stimmungserkennung bis zu intelligentem Aufgabenmanagement - agentic AI Hospitality-Lösungen für moderne Hotels",sectionTitle:"Alles Was Sie Brauchen, um Ihre Gäste zu Begeistern",sectionSubtitle:"Leistungsstarke Funktionen speziell für Kurzzeitvermietungsprofis entwickelt",whatsappAutomation:{title:"Intelligente WhatsApp-Automatisierung",description:"Automatisierte Messaging-Workflows, die 80% der Kommunikation über einen einfachen Kanal abwickeln, den Gäste bereits verwenden."},sentiment:{title:"Echtzeit-Gästestimmung",description:"Gezielte Umfragen und Erinnerungen, um Feedback zum richtigen Zeitpunkt zu sammeln und schlechte Bewertungen zu vermeiden."},mobileFirst:{title:"Mobile-First-Operationen",description:"Eine Plattform, ein Kanal für Ihre Gäste, Eigentümer, Reinigungs- und Technikteams. Verwalten Sie alles unterwegs."},fastSetup:{title:"Blitzschnelle Einrichtung",description:"In Minuten starten, nicht in Wochen. Keine komplexen Integrationen oder technisches Wissen erforderlich."},gdpr:{title:"DSGVO-Konform",description:"Sicherheit und Datenschutz auf Unternehmensniveau. Die Informationen Ihrer Gäste sind immer sicher."},support:{title:"24/7 Automatisierter Support",description:"Verpassen Sie keine Gästenachricht. Automatische Antworten bearbeiten häufige Fragen sofort, zu jeder Tageszeit."}},aiFeatures:{badge:"KI-First-Funktionen",title:"KI-First-Funktionen, die Wirklich Funktionieren",subtitle:"Von Stimmungserkennung bis zu revolutionären Gästebüchern - alles für Hospitality-Profis entwickelt",copilot:{title:"KI-Co-Pilot & Autopilot",description:"Wählen Sie Ihr Automatisierungsniveau. Lassen Sie smartiz KI Antworten vorschlagen (Co-Pilot) oder Gespräche automatisch verwalten (Autopilot)."},sentimentAnalysis:{title:"Echtzeit-Stimmungsanalyse",description:"Unsere KI überwacht jedes Gespräch und meldet Gäste mit sich verschlechternder Stimmung, damit das Management eingreifen kann, bevor Probleme eskalieren."},taskDetection:{title:"Automatische Aufgabenerkennung",description:"KI findet versteckte Aufgaben in Gesprächen - Gästeanfragen, Personalgespräche - und zeigt sie in Echtzeit-Dashboards an."},whatsappFirst:{title:"WhatsApp-First-Plattform",description:"Warum eine weitere App erstellen? WhatsApp ist bereits auf 4 Milliarden Geräten. Wir machen es zu Ihrer Betriebszentrale."},staffIntegration:{title:"Personal-WhatsApp-Integration",description:"Verbinden Sie Ihre bestehenden operativen WhatsApp-Gruppen und verwandeln Sie Diskussionen in greifbare, umsetzbare Dashboards."},guestBook:{title:"Revolutionäres Gästebuch",description:"Erstellen Sie personalisierte, interaktive Gästebücher in unter 3 Minuten. Schaffen Sie bessere Erlebnisse und Upsell-Möglichkeiten."},automatedComms:{title:"Automatisierte Gästekommunikation",description:"Von Check-in-Anweisungen bis zu Upsell-Angeboten - smartiz KI verwaltet 80% der Gästekommunikation intelligent."}
95,experiencePlatform:{title:"Erlebnisplattform, Nicht Nur Software",description:"Wir verwalten nicht nur Operationen - wir transformieren das gesamte Gästeerlebnis durch intelligente Automatisierung."}},showcase:{badge:"Produktfunktionen",title:"Sehen Sie smartiz in Aktion",subtitle:"KI-first-Funktionen speziell für Hotels und STR-Profis entwickelt",whatsappBadge:"Automatisiert",whatsappTitle:"Vollautomatische WhatsApp-Gästekommunikation",whatsappDescription:"Automatisieren und optimieren Sie Ihre Gästekommunikation mit Ihrem personalisierten WhatsApp-Messaging-Workflow.",copilotBadge:"Autopilot",copilotTitle:"KI-Co-Pilot & Autopilot-Modi",copilotDescription:"Lassen Sie KI Antworten vorschlagen oder 80% der Gespräche automatisch verwalten, während Sie sich auf das Wesentliche konzentrieren.",tasksBadge:"Intelligente Erkennung",tasksTitle:"Automatische Aufgabenextraktion",tasksDescription:"KI findet versteckte Aufgaben aus Gesprächen und Personaldiskussionen und zeigt sie in umsetzbaren Dashboards an.",sentimentBadge:"KI-gestützt",sentimentTitle:"Echtzeit-Stimmungsanalyse",sentimentDescription:"Erkennen Sie Stimmungsveränderungen von Gästen sofort und greifen Sie ein, bevor sie zu negativen Bewertungen eskalieren.",workflowBadge:"Erweitert",workflowTitle:"Erweiterte Workflow-Funktionen",workflowDescription:"Gestalten Sie einen Messaging-Workflow, der Ihre Strategie und Marke widerspiegelt.",guestbookBadge:"Weltpremiere",guestbookTitle:"Gästebücher in Unter 3 Minuten",guestbookDescription:"Erstellen Sie personalisierte, interaktive Gästebücher, die auÃergewöhnliche Erlebnisse schaffen und Verkaufschancen bieten.",pricingCta:"Siehe unsere Preise"},integrations:{badge:"Integrationen",title:"Funktioniert mit Ihren Vorhandenen Tools",subtitle:"smartiz integriert sich nahtlos mit Ihren bevorzugten Immobilienverwaltungs-, Smart-Lock- und Zahlungsplattformen",pms:{title:"PMS-Integration",description:"Nahtlose Verbindung mit Ihrem bestehenden Property-Management-System"},smartLock:{title:"Smart-Lock-Integration",description:"Integration mit führenden Smart-Lock-Anbietern"},payments:{title:"Zahlungslösungen",description:"Akzeptieren Sie Zahlungen über mehrere Anbieter"},comingSoon:"Bald verfügbar",andMore:"und viele mehr"},testimonials:{title:"Geliebt von Gästen, Vermietungsprofis & Hotels",subtitle:"Sehen Sie, was unsere Nutzer über smartiz sagen",testimonial1:{name:"Mitgründer",role:"Swiss Chalet Services",company:"Schweiz",content:"Mit smartiz spare ich Zeit & Geld. Ich konnte die Hochsaison mit tollen Bewertungen und einem Vollzeitäquivalent weniger in meinem Team bewältigen."},testimonial2:{name:"Ed",role:"Gast",company:"Swiss Chalet Services",content:"Der Concierge-Service via WhatsApp war perfekt. Super hilfreich und freundlich."},testimonial3:{name:"GroÃer Hotel- & Serviced Apartment-Betreiber",role:"Bulle",company:"Schweiz",content:"Mit smartiz zusammenzuarbeiten bedeutet, mit einem Team zu arbeiten, das einen stark menschenzentrierten Ansatz und eine Besessenheit für Kundenzufriedenheit hat."}},faq:{badge:"FAQ",title:"Häufig Gestellte Fragen",subtitle:"Alles, was Sie über smartiz wissen müssen",q1:{question:"Wie lange dauert das Onboarding und welchen Support bieten Sie?",answer:"Wir bringen Sie im Handumdrehen zum Laufen. Wir empfehlen immer eine schrittweise Erhöhung Ihrer Operationen mit smartiz, beginnend mit unseren Posteingangs- und Aufgabenverwaltungsmodulen, damit Sie und Ihr Team sich mit dem vertraut machen, was wir tun. Innerhalb weniger Tage danach richten wir Ihren ersten Workflow ein. In der Zwischenzeit arbeitet unser Team mit Ihnen zusammen, um weitere Ãnderungen Ihrer Arbeitsweise zu bewerten, die zur Implementierung unserer erweiterten Workflow-Engine führen können. Sie haben jederzeit ein engagiertes Onboarding-Team an Ihrer Seite."},q2:{question:"Wie sicher sind meine Daten und ist Smartiz DSGVO / Datenschutz-konform?",answer:"Ja. smartiz ist vollständig DSGVO-konform. Gästedaten werden verschlüsselt und niemals für Drittanbieter-Zwecke verwendet. Datenschutz und Datensicherheit sind in unser System integriert."},q3:{question:"Unterstützt Smartiz mehrsprachige Nachrichten und die Lokalisierung der Gästekommunikation?",answer:"Ja. Smartiz unterstützt mehrere Sprachen und wir fügen ständig weitere hinzu. Sie können den Inhalt Ihrer Nachrichten nach Bedarf anpassen."},q4:{question:"Kann ich Nachrichten im smartiz-Workflow anpassen?",answer:"Absolut. Sie können bestimmte Schritte hinzufügen oder entfernen, das Timing bestimmter Nachrichten ändern sowie Ihren Workflow an die Aufenthaltsdauer und viele weitere Möglichkeiten anpassen. Ihre Vorstellungskraft ist wahrscheinlich die einzige Grenze."},q5:{question:"Was passiert, wenn WhatsApp oder OTAs ihre Regeln und Richtlinien ändern?",answer:"smartiz bleibt vollständig konform mit WhatsApp und OTAs und passt sich Richtlinienänderungen an. Sie haben immer einen zuverlässigen, unterbrechungsfreien Service."},q6:{question:"Was ist, wenn meine Gäste kein WhatsApp haben?",answer:"Kein Problem. smartiz wechselt automatisch zu E-Mail, wenn WhatsApp nicht verfügbar ist, und stellt sicher, dass jeder Gast informiert bleibt."},q7:{question:"Ich habe kein PMS oder Channel Manager, wie funktioniert das?",answer:"Sie können smartiz trotzdem nutzen, indem Sie die Gästedetails manuell hinzufügen. Wir helfen Ihnen beim Einstieg, auch ohne Integrationen."}}
95,comparison:{title:"Warum smartiz Anders Ist",subtitle:"Wir sind kein weiteres Gästemanagement-Tool - wir sind eine agentic AI Hospitality-Plattform, die autonom arbeitet",without:"Traditionelle Tools",with:"smartiz Agentic AI",withoutList:{item1:"Mehrere Plattformen und Apps zu verwalten",item2:"Manuelle Nachrichtenantworten, die Ihre Zeit verbrauchen",item3:"Keine Einblicke in die Gästestimmung, bis es zu spät ist",item4:"Versteckte Aufgaben und Anfragen gehen in Chats verloren",item5:"Personal nutzt unverbundene WhatsApp-Gruppen",item6:"Generische, zeitaufwändige Gästeinformationen"},withList:{item1:"Eine Plattform - WhatsApp, bereits auf 4 Mrd. Geräten",item2:"KI Co-Pilot & Autopilot verwalten 80% der Nachrichten",item3:"Echtzeit-Stimmungsanalyse meldet Probleme frühzeitig",item4:"KI extrahiert Aufgaben aus Gesprächen automatisch",item5:"Operative WhatsApp-Gruppen werden zu Dashboards aufgewertet",item6:"Revolutionäre Gästebücher in unter 3 Minuten"}},footer:{description:"Die WhatsApp-first Gästemanagement-Plattform für Kurzzeitvermietungsprofis",followUs:"Folgen Sie uns",product:"Produkt",company:"Unternehmen",legal:"Rechtliches",whySmartiz:"Warum smartiz?",benefits:"Vorteile",pricing:"Preise",faq:"FAQ",support:"Support",aboutUs:"Ãber uns",news:"Neuigkeiten",resources:"Ressourcen",privacyPolicy:"Datenschutzerklärung",termsOfService:"Nutzungsbedingungen",cookiePreferences:"Cookie-Einstellungen",copyright:"© 2021-2026 smartiz.ai · Alle Rechte vorbehalten · Mit â¤ï¸ in der Schweiz gemacht ð¨ð"},resources:{sectionTitle:"Neueste Ressourcen",sectionSubtitle:"Einblicke und Leitfäden für Gastgewerbe-Profis",viewAll:"Alle anzeigen"},resourcesPage:{title:"Ressourcen",subtitle:"Artikel, Leitfäden und Einblicke für Gastgewerbe-Profis.",searchPlaceholder:"Artikel suchen...",all:"Alle",minRead:"Min. Lesezeit",noArticles:"Keine Artikel gefunden.",notFound:"Artikel nicht gefunden",backToResources:"Zurück zu den Ressourcen",relatedArticles:"Verwandte Artikel",seoTitle:"Ressourcen - smartiz | Artikel & Einblicke für Gastgewerbe",seoDescription:"Entdecken Sie Artikel, Leitfäden und Einblicke über Kurzzeitvermietung, Immobilienbetrieb, KI im Gastgewerbe und mehr."},order:{loading:"Bestellung wird geladen...",notFound:"Bestellung nicht gefunden",alreadySigned:"Diese Bestellung wurde bereits unterzeichnet",pageTitle:"Ihr Personalisiertes Smartiz-Angebot",pageSubtitle:"Bitte überprüfen und bestätigen Sie Ihr personalisiertes Angebot",step1Title:"Bestellübersicht",step2Title:"Ãberprüfung & Unterzeichnung",termsCardTitle:"Allgemeine Geschäftsbedingungen",basePrice:"Basis",addOnModules:"Zusatzmodule",subtotal:"Zwischensumme",monthlyTotal:"Monatliche Gesamtsumme",annualTotal:"Jährliche Gesamtsumme",discount:"Gesamtrabatt",applied:"Angewendet",property:"Immobilie",properties:"Immobilien",room:"Zimmer",rooms:"Zimmer",perMonth:"/Monat",monthlyAddOns:"Wiederkehrende monatliche Add-ons",freeTrial:"Kostenlose Testmonate",nextButton:"Weiter",backButton:"Zurück",signatureName:"Vollständiger Name",signatureEmail:"E-Mail-Adresse",termsAccept:"Ich akzeptiere die",termsLink:"Allgemeinen Geschäftsbedingungen",submitButton:"Unterzeichnen & Bestellung Abschicken",submitting:"Wird übermittelt...",thankYou:"Vielen Dank!",orderSigned:"Ihre Bestellung wurde erfolgreich unterzeichnet",completeFields:"Bitte füllen Sie alle Felder aus und akzeptieren Sie die Bedingungen",errorLoading:"Bestellung konnte nicht geladen werden",errorSubmitting:"Bestellung konnte nicht übermittelt werden",offerValidUntil:"Dieses Angebot ist gültig bis",expired:{title:"Angebot Abgelaufen",message:"Dieses Angebot ist abgelaufen und nicht mehr zur Unterzeichnung verfügbar.",extendButton:"Um 24 Stunden verlängern",requestExtensionButton:"Verlängerung anfordern",extending:"Verlängerung...",extendedSuccess:"Angebot verlängert! Sie haben jetzt 24 Stunden zum Unterzeichnen.",requestSent:"Verlängerungsanfrage gesendet! Unser Team wird sie in Kürze prüfen.",requestAlreadySent:"Für dieses Angebot wurde bereits eine Verlängerungsanfrage eingereicht.",contactSales:"Bitte kontaktieren Sie unser Vertriebsteam für Unterstützung."}}
95,pricing:{badge:"Einfache, Transparente Preise",title:"Wählen Sie Ihren Perfekten Plan",subtitle:"Zahlen Sie pro Reservierung. Wachsen Sie flexibel. Keine versteckten Gebühren.",perReservation:"/Reservierung",freeReservations:"kostenlose Reservierungen",mostPopular:"Am Beliebtesten",getStarted:"Jetzt Starten",contactSales:"Vertrieb Kontaktieren",billingNote:"Monatliche Abrechnung basierend auf der Anzahl der im vergangenen Monat abgeschlossenen Reservierungen.",cancelledNote:"Stornierte Buchungen nach 72 Std. = 20% des Tarifs.",minimumNote:"Minimum {amount} Reservierungen pro Monat abgezogen.",vatExcluded:"MwSt. ausgeschlossen.",needCustom:"Brauchen Sie eine maÃgeschneiderte Lösung für Ihr Unternehmen?",trialInfo:"Alle Pläne beinhalten eine kostenlose Testversion ⢠Keine Kreditkarte erforderlich ⢠Jederzeit kündbar",connectionFees:"* Verbindungsgebühren können anfallen.",tiers:{essential:{name:"Essential",tagline:"Gästekommunikation"},advanced:{name:"Advanced",tagline:"Essential + SmartizAI Agent Basic"},expert:{name:"Expert",tagline:"Advanced + Betriebsorchestrierung + SmartizAI Agent Pro"}},essentialFeatures:["Einheitlicher Posteingang & WhatsApp-Integration","Digitales Gästebuch","Manuelle Aufgabenerstellung & Betrieb: Housekeeping, Empfang, Wartung","Integrationen: PMS, Smart Keylocks*, Zahlungsanbieter"],advancedFeatures:["Alles aus Essential, plus:","Gästestimmungsanalyse","Automatische Kommunikationssequenzierung","Automatische Antworten via KI","KI-gestützte Aufgabenerstellung","KYC-Analyse via KI"],expertFeatures:["Alles aus Advanced, plus:","Vollständige Orchestrierung Ihres Betriebs durch KI","Kundenbeziehungsmanagement","Reporting & Analysen","Dedizierter Account Manager","Individuelle Integrationen"],expertModulesLabel:"Wählen Sie bis zu 2 zusätzliche Module aus der Bibliothek:",expertModules:["Kautionsverwaltung (Stripe oder Swikly)","Upselling","Eigentümerverwaltung"]},cta:{title:"Bereit, Ihr Gästemanagement zu Transformieren?",subtitle:"SchlieÃen Sie sich Hunderten von Immobilienverwaltern und Hotelbetreibern an, die smartiz vertrauen, um ihre Gästekommunikation zu automatisieren und die Zufriedenheit zu steigern.",ctaPrimary:"Kostenlos Testen",ctaSecondary:"Demo Buchen",feature1:"Keine Kreditkarte erforderlich",feature2:"14 Tage kostenlose Testversion",feature3:"Jederzeit kündbar",buttonText:"Gespräch mit unseren Gründern vereinbaren"},signup:{backToPricing:"Zurück zur Preisgestaltung",title:"Starten Sie mit smartiz",subtitle:"Vervollständigen Sie Ihre Angaben, um Ihre Reise mit smartiz zu beginnen",yourSelection:"Ihre Auswahl:",shortTermRental:"Kurzzeitvermietung",hotel:"Hotel",units:"Einheiten",contactInfo:"Kontaktinformationen",fullName:"Vollständiger Name",email:"E-Mail-Adresse",phone:"Telefonnummer",companyInfo:"Unternehmensinformationen",companyName:"Firmenname oder Marke (optional)",billingAddress:"Rechnungsadresse",streetAddress:"StraÃe und Hausnummer",city:"Stadt",postalCode:"Postleitzahl",country:"Land",processing:"Wird verarbeitet...",completeDetails:"Grundlegende Details vervollständigen",required:"*",errorFillFields:"Bitte füllen Sie alle erforderlichen Felder aus",errorInvalidEmail:"Bitte geben Sie eine gültige E-Mail-Adresse ein",errorSaveFailed:"Fehler beim Speichern Ihrer Informationen. Bitte versuchen Sie es erneut.",errorGeneral:"Etwas ist schief gelaufen. Bitte versuchen Sie es erneut."},cookies:{title:"Cookie-Richtlinie",lastUpdated:"Letzte Aktualisierung: Januar 2025",whatAreCookies:"Was Sind Cookies",whatAreCookiesText:"Cookies sind kleine Textdateien, die auf Ihrem Gerät abgelegt werden, wenn Sie unsere Website besuchen. Sie helfen uns, Ihnen ein besseres Erlebnis zu bieten, indem sie Ihre Präferenzen speichern und verstehen, wie Sie unsere Website nutzen.",howWeUse:"Wie Wir Cookies Verwenden",howWeUseText:"Smartiz verwendet Cookies für folgende Zwecke:",essential:"Essentielle Cookies",essentialText:"Diese Cookies sind notwendig, damit die Website ordnungsgemäà funktioniert. Sie ermöglichen grundlegende Funktionen wie Seitennavigation und Zugriff auf sichere Bereiche.",analytics:"Analyse-Cookies",analyticsText:"Wir verwenden diese Cookies, um zu verstehe
95n, wie Besucher mit unserer Website interagieren, und helfen uns, Funktionalität und Inhalte zu verbessern.",preference:"Präferenz-Cookies",preferenceText:"Diese Cookies ermöglichen es unserer Website, sich an Ihre Entscheidungen zu erinnern (wie Spracheinstellungen), um erweiterte Funktionen bereitzustellen.",marketing:"Marketing-Cookies",marketingText:"Diese Cookies verfolgen Ihre Online-Aktivitäten, um uns zu helfen, relevantere Werbung zu liefern und die Kampagneneffektivität zu messen.",typesTitle:"Arten von Cookies, Die Wir Verwenden",sessionCookies:"Sitzungs-Cookies",sessionCookiesText:"Temporäre Cookies, die gelöscht werden, wenn Sie Ihren Browser schlieÃen. Sie helfen uns, Ihre Sitzung aufrechtzuerhalten, während Sie durch unsere Website navigieren.",persistentCookies:"Persistente Cookies",persistentCookiesText:"Diese Cookies verbleiben für einen festgelegten Zeitraum auf Ihrem Gerät oder bis Sie sie löschen. Sie helfen uns, Ihre Präferenzen für zukünftige Besuche zu speichern.",thirdParty:"Drittanbieter-Cookies",thirdPartyText:"Einige Cookies werden von Drittanbieterdiensten platziert, die auf unseren Seiten erscheinen, wie z.B. Analyseanbieter und Social-Media-Plattformen.",managing:"Cookies Verwalten",managingText1:"Sie haben das Recht, Cookies zu akzeptieren oder abzulehnen. Die meisten Webbrowser akzeptieren Cookies automatisch, aber Sie können Ihre Browsereinstellungen ändern, um Cookies abzulehnen, wenn Sie dies bevorzugen.",managingText2:"So verwalten Sie Cookies in gängigen Browsern:",chrome:"Chrome: Einstellungen â Datenschutz und Sicherheit â Cookies und andere Websitedaten",firefox:"Firefox: Einstellungen â Datenschutz & Sicherheit â Cookies und Website-Daten",safari:"Safari: Einstellungen â Datenschutz â Website-Daten verwalten",edge:"Edge: Einstellungen â Cookies und Websiteberechtigungen â Cookies und Websitedaten",managingNote:"Bitte beachten Sie, dass das Deaktivieren von Cookies die Funktionalität unserer Website beeinträchtigen und Ihren Zugriff auf bestimmte Funktionen einschränken kann.",consent:"Ihre Zustimmung",consentText:"Optionaler Speicher wird nur verwendet, wenn Sie ihn auswählen. Sie können Ihre Auswahl jederzeit über den Link für Cookie-Einstellungen in unserer FuÃzeile ändern oder widerrufen.",changes:"Ãnderungen an Dieser Richtlinie",changesText:"Wir können diese Cookie-Richtlinie von Zeit zu Zeit aktualisieren, um Ãnderungen in unseren Praktiken oder aus betrieblichen, rechtlichen oder regulatorischen Gründen widerzuspiegeln. Wir ermutigen Sie, diese Seite regelmäÃig zu überprüfen, um die neuesten Informationen zu erhalten.",contact:"Kontaktieren Sie Uns",contactText:"Wenn Sie Fragen zur Verwendung von Cookies haben, kontaktieren Sie uns bitte unter:"},cookiePreferences:{title:"Cookie-Einstellungen",description:"Wählen Sie, welche optionalen Browser-Speicherkategorien smartiz verwenden darf. Notwendiger Speicher ist immer aktiv.",necessary:"Notwendige Cookies",necessaryDesc:"Erforderlich, damit die Website ordnungsgemäà funktioniert. Diese können nicht deaktiviert werden.",functional:"Funktionale Cookies",functionalDesc:"Ermöglichen erweiterte Funktionalität und Personalisierung, wie z.B. Spracheinstellungen.",analyticsTitle:"Analyse-Cookies",analyticsDesc:"Erlaubt Analysespeicher, wenn ein entsprechender Dienst vorhanden ist. Derzeit ist kein Analyse-Tracker im öffentlichen Website-Code installiert.",marketingTitle:"Marketing-Cookies",marketingDesc:"Erlaubt Marketingspeicher, wenn ein entsprechender Dienst vorhanden ist. Derzeit ist kein Werbe-Tracker im öffentlichen Website-Code installiert.",declineAll:"Alle Ablehnen",acceptAll:"Alle Akzeptieren",savePreferences:"Einstellungen Speichern"},about:{heroTitle:"Transformation der Hotellerie mit KI",heroSubtitle:"Wir sind ein Team von Innovatoren, Ingenieuren und Hospitality-Experten mit der Mission, durch intelligente Technologie nahtlose Gästeerlebnisse zu schaffen.",teamTitle:"Unser Team",advisorsTitle:"Beirat",valuesTitle:"Unsere Werte",careersTitle:"Werden Sie ein Smartizianer",careersSubtitle:"SchlieÃen Sie sich einem Team leidenschaftlicher Innovatoren an, die die Zukunft der Hotellerie gestalten. Bei Smartiz arbeiten Sie an herausfordernden Problemen, entwickeln Ihre Fähigkeiten weiter und haben einen echten Einfluss darauf, wie Millionen von Gästen weltweit Gastfreundschaft erleben.",applyNow:"Jetzt Bewerben",firstName:"Vorname",lastName:"Nachname",email:"E-Mail",phone:"Telefon",linkedin:"LinkedIn-URL",uploadCV:"Lebenslauf Hochladen",submitting:"Wird gesendet...",submitApplication:"Bewerbung Einreichen",uploadCVError:"Bitte laden Sie Ihren Lebenslauf hoch",applicationError:"Fehler beim Senden der Bewerbung",coFounderCEO:"Mitgründer & CEO",coFounderCTO:"Mitgründer & CTO",backendDev:"Backend-Entwickler",laurentDesc:"Neugestaltung des Gästeerlebnisses in der Hotellerie. Verbindet Leidenschaft für Technologie und Gastfreundschaft, um nahtlose Lösungen zu schaffen.",olivierDesc:"Technologieführer mit tiefgreifender Expertise in Engineering und digitalen Lösungen, treibt technische Innovation in der Hotellerie voran.",aurelienDesc:"Experte Backend-Ingenieur, der robuste und skalierbare Systeme für moderne Hospital
95ity-Lösungen entwickelt.",madhurDesc:"Robotik-Ingenieur, Beiratsmitglied und Fractional CSO bei Innosuisse. Experte für Lean Product Development und KMU-Innovation. TiE50 Global Winner mit Veröffentlichungen zur metanationalen Dynamik.",matteoDesc:"KI-Experte bei Dell Technologies, spezialisiert auf Computer Vision und eingebettetes Deep Learning. Hält Patente für bildbasierte Verhaltensprofilerstellung und medizinische Intubationsvorhersage. Hat zu H2020 Eyes of Things und FANCI-Projekten beigetragen.",egbertDesc:"Mehrsprachiger Hospitality-Profi mit Expertise in inspirierender Führung und Hotelleistungsverbesserung. Langjähriger Freiwilliger in der Mittelbeschaffung für UNICEF Belgien und Oxfam.",arthurDesc:"Administrator bei Valfor, verantwortlich für Luxus-Hospitality-Unternehmen in den Schweizer Alpen. Erfahrener Manager mit fundierter Expertise im alpinen Tourismusmanagement, strategischen Operationen und nachhaltiger Luxusimmobilienentwicklung.",philippeDesc:"Erfahrenes Vorstandsmitglied und Berater mit Rollen als BoA für Mobilis und Vorsitzender der International School Basel. Expertise in Governance, internationaler Bildung und Unternehmensstrategie in gemeinnützigen Organisationen und Unternehmen.",value1Title:"Innovation Zuerst",value1Desc:"Wir überschreiten Grenzen und nutzen Spitzentechnologie, um echte Probleme zu lösen.",value2Title:"Gästezentriert",value2Desc:"Jede Entscheidung, die wir treffen, wird durch die Verbesserung des Gästeerlebnisses geleitet.",value3Title:"Trans
95parenz",value3Desc:"Wir bauen Vertrauen durch offene Kommunikation und ehrliche Beziehungen auf.",value4Title:"Kontinuierliches Wachstum",value4Desc:"Wir investieren in die Entwicklung unseres Teams und feiern das Lernen aus Fehlern."},applicationThankYou:{thankYouTitle:"Vielen Dank",receivedApplication:"Wir haben Ihre Bewerbung erhalten und unsere KI hat bereits begonnen, Ihr Profil zu prüfen.",whatWeLearnedTitle:"Was wir über Sie gelernt haben:",currentRole:"Aktuelle Position:",experience:"Erfahrung:",year:"Jahr",years:"Jahre",keySkills:"Schlüsselkompetenzen:",excitedToLearn:"Wir freuen uns darauf, mehr über Ihre Erfahrung in",teamReview:"Unser Team wird Ihre Bewerbung im Detail prüfen und sich bei Ihnen melden unter",within:"innerhalb der nächsten 3-5 Werktage.",whatHappensTitle:"Was passiert als Nächstes?",step1:"Unser Recruiting-Team wird Ihren Lebenslauf und Ihr Profil gründlich prüfen",step2:"Wenn Ihr Profil unseren Anforderungen entspricht, vereinbaren wir ein Gespräch, um Möglichkeiten zu besprechen",step3:"Wir halten Sie während des gesamten Prozesses auf dem Laufenden",backToAbout:"Zurück zu Ãber uns",goToHome:"Zur Startseite"},terms:{title:"Allgemeine Geschäftsbedingungen und Datenverarbeitung",subtitle:"Bitte lesen Sie unsere Allgemeinen Geschäftsbedingungen und Datenverarbeitungsvereinbarung",termsTitle:"Allgemeine Geschäftsbedingungen",dpaTitle:"Datenverarbeitungsvereinbarung",download:"Herunterladen",downloadPDF:"PDF Herunterladen",clickToDownload:"Klicken Sie auf die Schaltfläche unten, um das Dokument herunterzuladen."},modules:{whatsapp:{name:"WhatsApp Integration",description:"Grundlegend"},ai_copilot:{name:"Smartiz AI: Co-pilot & Autopilot",description:"Grundlegend"},workflow_editor:{name:"Smartiz Workflow-Editor",description:"Grundlegend"},sentiment:{name:"Gästestimmung Tracking",description:"Grundlegend"},inbox:{name:"Einheitlicher Posteingang (WhatsApp + E-Mails - mehr folgt)",description:"Grundlegend"},auto_tasks:{name:"Automatische Generierung und Verfolgung von Aufgaben",description:"Grundlegend"},tasks:{name:"Aufgabenverwaltungsmodul",description:"Grundlegend"},task_distribution:{name:"Aufgabenverteilung an Personal-WhatsApp-Gruppen",description:"Grundlegend"},knowledge_base:{name:"MaÃgeschneiderte Wissensdatenbank",description:"Grundlegend"},deposits:{name:"Kautionsverwaltungsmodul",description:"Premium Add-on"},housekeeping:{name:"Housekeeping-Modul",description:"Premium Add-on"},maintenance:{name:"Wartungsmodul",description:"Premium Add-on"},marketing:{name:"Marketing-Modul",description:"Premium Add-on"},payouts:{name:"Auszahlungs- & Eigentümermodul",description:"Premium Add-on"},upsells:{name:"Upsells-Modul",description:"Premium Add-on"},igloohome_keybox:{name:"igloohome Schlüsselbox-Integration",description:"Smarter Schlüsselbox-Zugang, verwaltet über smartiz"}},pricingModules:{whatsapp:{name:"WhatsApp Integration",description:"Grundlegend"},ai_copilot:{name:"Smartiz AI: Co-pilot & Autopilot",description:"Grundlegend"},workflow_editor:{name:"Standard-Messaging-Workflow",description:"Grundlegend"},sentiment:{name:"Gästestimmung Tracking",description:"Grundlegend"},inbox:{name:"Einheitlicher Posteingang (WhatsApp + E-Mails - mehr folgt)",description:"Grundlegend"},auto_tasks:{name:"Automatische Generierung und Verfolgung von Aufgaben",description:"Grundlegend"},tasks:{name:"Aufgabenverwaltungsmodul",description:"Grundlegend"},task_distribution:{name:"Aufgabenverteilung an Personal-WhatsApp-Gruppen",description:"Grundlegend"},knowledge_base:{name:"MaÃgeschneiderte Wissensdatenbank",description:"Grundlegend"},deposits:{name:"Kautionsverwaltungsmodul",description:"Premium Add-on"},housekeeping:{name:"Housekeeping-Modul",description:"Premium Add-on"},maintenance:{name:"Wartungsmodul",description:"Premium Add-on"},marketing:{name:"Marketing-Modul",description:"Premium Add-on"},payouts:{name:"Auszahlungs- & Eigentümermodul",description:"Premium Add-on"},upsells:{name:"Upsells-Modul",description:"Premium Add-on"},igloohome_keybox:{name:"igloohome Schlüsselbox-Integration",description:"Smarter Schlüsselbox-Zugang, verwaltet über smartiz"},customIntegrations:{name:"Benutzerdefinierte Integrationen",description:"MaÃgeschneiderte Integrationslösungen"},tailoredOnboarding:{name:"MaÃgeschneidertes Onboarding",description:"Personalisierter Einrichtungsprozess"},premiumOnboarding:{name:"Premium-Onboarding",description:"Erstklassige Einrichtungserfahrung"},dedicatedSupport:{name:"Dedizierter Support & Schulung",description:"Prioritärer Support und Schulung"}},newsPage:{title:"Neuigkeiten",subtitle:"Pressemitteilungen, Branchenartikel und Events vom smartiz-Team.",noArticles:"Noc
95h keine Artikel. Schauen Sie bald wieder vorbei!",seoTitle:"Neuigkeiten - smartiz | Presse, Artikel & Events",seoDescription:"Bleiben Sie auf dem Laufenden mit smartiz-Neuigkeiten, Pressemitteilungen und Events in der Hoteltechnologie.",minRead:"Min. Lesezeit",backToNews:"Zurück zu den Neuigkeiten",notFound:"Artikel nicht gefunden"},v2:{home:{hero:{kicker:"For concierge services, hotels and gîtes · Official WhatsApp Business platform",title:"Take back control of your guests and your teams. Without being glued to the phone.",subtitle:"Smartiz is the all-in-one WhatsApp platform for concierge services, hotels and gîtes. Smartiz AI answers your guests, detects and assigns tasks to your teams, and sells your additional services. It executes, you stay in control.",cta:"Book a demo",visualPlaceholder:"[VISUAL] Visual to be produced: product photos and a phone with WhatsApp, in the spirit of the current site (smartiz.ai)",stats:[{value:"95%",label:"of automation, messages and tasks"},{value:"< 10 min",label:"of intervention per stay"},{value:"4M+",label:"WhatsApp interactions handled"},{value:"4.9â
",label:"guest satisfaction"}]},trust:{titleBefore:"Already more than ",titleHighlight:"20,000",titleAfter:" stays managed by Smartiz",eyebrow:"They trust us",logosAriaLabel:"Smartiz client logos",logoPlaceholder:"Client logo",quotePlaceholder:"Client quote to insert",authorPlaceholder:"Placeholder: name, company, segment",backersLabel:"They support us",backers:"Grand Prix Jeune Pousse 2026 · EHL Innovation Hub · Prix Innovation Canton de Vaud (FIT)",ctaDemo:"Book a demo",ctaClients:"Discover our clients"},segments:{title:"For hospitality professionals",discover:"Discover",items:[{title:"Concierge services",text:"Your guests and your teams are already all on WhatsApp.",imagePlaceholder:"Image: property management company",imageAlt:"Property management breakfast tray by a window"},{title:"Hotels and aparthotels",text:"No extra tool for your teams.",imagePlaceholder:"Image: hotel",imageAlt:"Contemporary hotel"},{title:"Estates and gîte parks",text:"Automate everything while keeping the human touch.",imagePlaceholder:"Image: gîte estate",imageAlt:"Gîte estate with blue shutters and hydrangeas"}]},outcomes:{title:"Everything goes through you. Even on Sunday at 10 pm.",subtitle:"Guests, teams, services: today, you coordinate everything. Smartiz does it for you, on WhatsApp, fast and well.",livedLabel:"What you live with",withLabel:"With Smartiz",cards:[{title:"Guests",lived:"Messages go out by hand, at fixed times, when you have time. Questions come in at 11 pm, and the 6 out of 10 on Booking arrives without warning.",with:["AI answers guests on WhatsApp, at any hour.","Predefined messages go out on their own, right through to the review request.","An unhappy guest? You get an alert so you can step in."]},{title:"Teams",lived:"Ten WhatsApp groups, 300 cleaning photos on the phone, âwhat time are you coming by?â sent by hand. Information gets lost, you chase people.",with:["A guest request becomes a task, in the right group, for the right person.","Cleaning schedules follow bookings and reschedule themselves.","Check-out photos arrive timestamped, with no app to install."]},{title:"What's never sold",lived:"Late check-out, breakfast, next year's stay: nobody offers them, because nobody has time. And if the guest comes back, they go through the platform again, commission included.",with:["Upsells and services are offered at the right moment, and easy to pay for.","Your WhatsApp or email campaigns bring the right clients back directly.","Google reviews are tracked and answered from the same place."]}],ctaDemo:"Book a demo",ctaFeatures:"See all features"},onboarding:{title:"A simple start, in three steps.",subtitle:"Switching tools also means changing habits, for you and your teams. We lived it in our own concierge business. That's why onboarding is led by operators, at your pace: we don't digitise everything at once, we move forward in the order that matters to you.",steps:[{title:"1 · Connect",text:"Your WhatsApp number linked to Meta via the official sign-up. Your PMS, payments and connected locks integrated directly. No PMS? No problem, Smartiz manages your bookings directly."},{title:"2 · Set up with you",text:"We start from the way you work: your messages, your arrival instructions, your teams, your services. From booking to check-out, guest communication that sounds like you."},{title:"3 · Let the AI work",text:"It answers guests, creates tasks and sends them to teams, offers and collects payment for your services. You set the rules at the start, and adjust as you go."}],afterTitle:"And then?",afterText:"Dedicated follow-up, and support that answers on WhatsApp. Just like for your guests.",testimonialPlaceholder:"[TESTIMONIAL] client testimonial slot",cta:"Book a demo"},integrations:{title:"Connected to the tools you already use",subtitle:"PMS, channel managers, connected locks, payments: Smartiz integrates with your stack, without replacing it.",logosAriaLabel:"Smartiz integrations",cta:"See all our integrations"},pricing:{title:"Per-reservation pricing. Suited to your cash flow.",subtitle:"Billing at check-in, when the money is already collected. No hidden fees in low season. Three plans, from â¬1.50 to â¬5 per reservation, your first reservations free.",plans:[{name:"Essential",price:"â¬1.50 / reservation",description:"Get started with WhatsApp"},{name:"Advanced",price:"â¬3 / reservation",description:"Everything you need for the guest experience"},{name:"Expert",price:"â¬5 / reservation",description:"Full operational management",badge:"Most popular"}],cta:"See our detailed pricing"},story:{kicker:"By operators, for operators",text:"Smartiz was born in the field. We run our own concierge business, 25 properties in the Swiss Alps, and we needed a tool suited to that daily reality.",cta:"Discover our story"},finalCta:{title:"Ready to take back control?",subtitle:"Start the adventure now by booking a meeting.",ctaDemo:"Book a demo",ctaWhatsapp:"Or ask your question on WhatsApp"},faq:{title:"Frequently asked questions",items:[{question:"Will my guests accept WhatsApp?",answer:"With our clients, every guest replies on WhatsApp from the first message. Those who don't have it receive the same messages by email."},{question:"Does it work with my PMS? And without a PMS?",answer:"Smartiz integrates with your PMS (see the dedicated page). Without a PMS, you manage your bookings directly in Smartiz."},{question:"How does the AI work?",answer:"It answers guests, creates and sends tasks, offers and collects payment for services. You set the rules: what it can promise, when it must ask you, when a human takes over. Everything it does is visible."},{question:"How long does setup take?",answer:"On average, between one and four weeks, depending on the integrations needed and the number of properties. Onboarding is led by operators."},{question:"Could my WhatsApp number get banned?",answer:"No. Smartiz uses Meta's official API, with your verified number."}
95,{question:"How much does it cost?",answer:"From â¬1.50 to â¬5 per reservation depending on the plan, billed at check-in. Your first reservations are free. Details on the Pricing page."},{question:"When do you see the first results?",answer:"From day one: the first stay handled by the AI is time you no longer spend on the phone. Reviews and upsells follow with the season."}]}},navigation:{ariaLabel:"V2 navigation",openMenu:"Open menu",home:"Home",product:"Product",solutions:"Solutions",pricing:"Pricing",clients:"Clients",resources:"Resources",about:"About",demo:"Book a demo",productItems:{whatsapp:"WhatsApp",guestExperience:"Guest experience",operations:"Operations management",revenue:"Increase your revenue",ai:"Smartiz AI",integrations:"Integrations",security:"Security"},productDescriptions:{whatsapp:"The channel your guests and teams already open",guestExperience:"Automated messages, AI answers, alerts, reviews",operations:"Tasks, schedules, reports, owner portal",revenue:"Upsells, loyalty and direct bookings",ai:"It handles daily work and advises you",integrations:"PMS, locks, payments, reviews",security:"Accounts, data, AI, funds"},solutionItems:{conciergeries:"Property managers",hotels:"Hotels and aparthotels",estates:"Estates and gîte parks"},solutionDescriptions:{conciergeries:"From 10 to 500+ properties",hotels:"No extra tool for your teams",estates:"Automate everything while keeping the human touch"}},footer:{description:"The WhatsApp platform for property managers, hotels and gîte parks. Built by operators.",company:"Company",about:"About",clients:"Clients",resources:"Resources",careers:"Become a smartizian",contact:"Contact",support:"Support",legal:"Legal",privacy:"Privacy policy",terms:"Terms of use",cookies:"Cookie preferences",followUs:"Follow us",copyright:"© 2021-2026 smartiz.ai · All rights reserved · Made with â¤ï¸ in Switzerland ð¨ð",disclaimer:"WhatsApp is a trademark of Meta Platforms, Inc. Smartiz is neither affiliated with nor sponsored by WhatsApp or Meta."},product:{whatsapp:{kicker:"Official Meta WhatsApp Business platform",title:"WhatsApp, the channel your guests and teams already open.",intro:"Everyone has a WhatsApp button. Running your entire operation through it, including guests and teams, while following Meta's rules is another profession. That is what Smartiz has built.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: phone with WhatsApp and product screenshot",stats:[{value:"4B",label:"users worldwide"},{value:"98%",label:"of messages read"},{value:"< 3 min",label:"to read a received message, on average"}],blocks:[{title:"An official number, not a workaround",text:"Your number, your verified business and the green tick. Registered through Meta's official sign-up, so it is never banned.",visual:"[VISUAL] Visual: Meta sign-up screen and green tick"},{title:"One number, the whole team",text:"Several people answer on the same number, each with their role. The full history is there and AI is on the front line. You leave for a week; the number keeps running.",visual:"[VISUAL] Visual: shared inbox"},{title:"A frictionless guest experience",text:"Photos, videos, voice notes, maps, PDFs and payment links all flow through the thread. No imposed format or blocked links, unlike booking platform messaging.",visual:"[VISUAL] Visual: rich WhatsApp thread (video, map, link)"},{title:"Your teams already have WhatsApp",text:"Cleaning, maintenance and reception each have their group. Tasks go in and photos come back. Ask a question in the group and AI answers.",visual:"[VISUAL] Visual: team WhatsApp group with an AI response"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},guestExperience:{kicker:"Guest experience",title:"A clear stay for the guest. No message for you to send.",intro:"From booking to the review request, every guest receives the right information at the right time, in your words and with a tailored welcome guide. AI answers the rest. You read; you no longer write.",cta:"Say goodbye to bad reviews",blocks:[{title:"Messages that send themselves",text:"Confirmation, arrival, mid-stay, departure and review request: your messages go at the right time with the access video, code and map. Written once, sent for every stay.",visual:"[VISUAL] Visual: stay message sequence"},{title:"AI that answers like you",text:"It knows your properties, rules and best local addresses. Parking, late departure or broken heating: it answers at any hour. It learns from your replies and adopts your tone.",visual:"[VISUAL] Visual: guest and AI conversation"},{title:"An unhappy guest? You receive an alert",text:"AI reads the tone of every conversation. A complaint or reported issue alerts you during the stay, not after the review.",visual:"[VISUAL] Visual: sentiment alert"},{title:"Reviews requested at the right time from the right guest",text:"Smartiz requests a review when the stay went well, and only then. Your Google and platform ratings rise. Our clients have seen +0.4â
.",visual:"[VISUAL] Visual: rising Google rating"},{title:"A welcome guide they actually read",text:"Created in three minutes, in your colours, translated and updated without reprinting. Sent on WhatsApp at the right time and available throughout the stay.",visual:"[VISUAL] Visual: mobile welcome guide"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},operations:{kicker:"Take back control of your operations",title:"Smartiz coordinates your teams. You get your time back.",intro:"Cleaning, maintenance, arrivals: some clients manage dozens of turnovers a day in high season. Smartiz creates tasks, sends them to the right people on WhatsApp and tracks progress. Owners have their portal. You no longer need to monitor or chase.",cta:"Take back control",blocks:[{title:"AI listens and creates tasks",text:"A guest reports a heating problem at 9 pm: a task is created and sent to maintenance in its group. Cleaning tasks come from bookings and reschedule when dates move.",visual:"[VISUAL] Visual: task created from a conversation"},{title:"A thumbs-up to take it, a tick to finish",text:"Your teams track tasks with simple emojis in WhatsApp. Nothing to install or learn. Each morning, everyone receives their schedule.",visual:"[VISUAL] Visual: WhatsApp group with ð and â
"},{title:"Reports with proof",text:"Check-out photos, inspections and timer: the portal opens from the message without login. Photos arrive timestamped and linked to the booking. No more 300 photos in a group.",visual:"[VISUAL] Visual: cleaning report with photos"},{title:"Teams hand work over",text:"Cleaning reports a broken bulb and the task goes to maintenance. The property is ready and the guest receives their code. Information flows both ways between teams.",visual:"[VISUAL] Visual: property status overview"},{title:"A portal for your owners",text:"Revenue, calendar, statements and annual summary. Owners book their own stay, you approve in one gesture and cleaning reschedules.",visual:"[VISUAL] Visual: owner portal"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},revenue:{kicker:"More revenue per stay",title:"Sell more on every stay, without thinking about it.",intro:"Late check-out, breakfast, an extra night: AI offers them at the right time in the guest's WhatsApp thread and collects payment. Smartiz then keeps in touch like a CRM, with loyalty campaigns, return offers and the next direct booking. You do nothing.",cta:"More revenue, starting now",blocks:[{title:"Services sold in the thread",text:"Your catalogue, your rules. AI offers the right service to the right guest and collects through a link. The related task creates itself: mid-stay cleaning planned, access code extended, basket prepared."},{title:"Guests who return direct",text:"A guest file builds itself, WhatsApp or email campaigns target each segment, and the next booking comes without commission. Our clients have seen +10% direct revenue."},{title:"Reviews that lift your listing",text:"Google reviews are synchronised, replies prepared and your rating rises. A better rating means more direct bookings."}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},ai:{kicker:"AI that manages and advises",title:"AI that does the work. And helps you decide.",intro:"Smartiz AI knows your properties, teams and rules. It handles everyday work securely without you. It also prepares what comes next: what sells, what gets stuck and what needs to change.",cta:"Book a demo",blocks:[{title:"It knows your business",text:"Your properties, rules, teams, services and real-time bookings. It learns from your corrections and, after a few weeks, writes like you.",visual:"[VISUAL] Visual: property information seen by AI"},{title:"It handles everyday work",text:"It answers guests, creates and sends tasks, offers and collects payment for services, and manages codes and cleaning. 95% of messages and tasks without intervention.",visual:"[VISUAL] Visual: a day managed by AI"},{title:"You stay in control",text:"You decide what it can promise, when it must ask you and when someone takes over. Everything it does is visible.",visual:"[VISUAL] Visual: rules and approval queue"},{title:"It advises you",text:"[Block to define with Olivier: AI that analyses your activity, spots what sells and what gets stuck, and proposes decisions.]",visual:"[VISUAL] Visual: to be defined",placeholder:!0},{title:"It works securely",text:"Everything it does follows our data processing agreements: your data is neither sold nor used to train other models.",visual:"[VISUAL] Visual: lock and data"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},integrations:{kicker:"Integrations",title:"Connected to the tools you already use.",intro:"Our integrations connect Smartiz to your PMS, channel manager, smart locks, payments and reviews. Your bookings come in; Smartiz does the rest. Everything listed here is in production.",cta:"Request an integration",testimonial:"[TESTIMONIAL] client testimonial placeholder",categories:[{title:"PMS and channel managers",logos:["Mews","Guesty","Cloudbeds","Smily","Rental Ready","Avantio","Smoobu","Lodgify","ICNEA","Protel","SuperHote"]},{title:"Locks and key boxes",logos:["igloohome","Nuki","KeyNest"]},{title:"Payments and deposits",logos:["Stripe","Swikly"]},{title:"Reviews, email and more",logos:["Google Business Profile","SendGrid","OneDrive","
95iCal feeds"]}]}},solutions:{conciergeries:{kicker:"For property management companies with 10 to 500+ properties",title:"Your guests and teams are already on WhatsApp. So are you, all day long.",intro:"Your guests write on WhatsApp, your teams work there, and everything still goes through you. Smartiz AI answers guests, coordinates your teams and sells your services on that same WhatsApp. You stay in control, without being tied to your phone.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["Arrival messages are sent manually at a fixed time.","Only you can reply from the WhatsApp number.","A problem at 9 pm gets retyped into the maintenance group.","300 housekeeping photos, no usable proof.","Late checkout and baskets are never offered.","Ten more properties? You need to hire."],smartizTitle:"With Smartiz",blocks:[{title:"For guests",text:"Scheduled messages go out automatically, right through to the review request. AI answers everything else, at any time. An unhappy guest? You receive an alert.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"For teams",text:"A guest request becomes a task in the right WhatsApp group. Your teams claim it with a thumbs-up and complete it with a check mark. Checkout photos arrive timestamped. Nothing to install.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"For revenue",text:"Late checkout, breakfast, an extra night: AI offers them at the right time and collects payment. Then Smartiz stays in touch and brings your guests back to book direct.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],aiBand:{title:"And what about AI?",text:"It knows your properties, rules and team
95s. It handles daily work; you set the rules.",linkLabel:"Smartiz AI"},testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."},hotels:{kicker:"For hotels and aparthotels",title:"Coordinate your teams where they already are. Let AI run the rest.",intro:"Your guests write at all hours, and your teams already coordinate on WhatsApp. Smartiz brings order to both sides: AI answers, passes requests to the right department, sells the restaurant, spa and extra night, and brings guests back. Designed for hospitality: room categories, groups, dining and loyalty.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A guest writes at 11 pm. Who answers?","One request: a call, a note, a group. Sometimes it gets lost.","The bad review arrives after checkout.","A suite guest leaves without a massage or table booking. Nobody offered.","Room service is written on paper that goes to the kitchen."],smartizTitle:"With Smartiz",blocks:[{title:"A front desk that answers at night",text:"AI answers common questions, sends arrival information and passes requests to the right department. Your team reads a summary in the morning.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Teams coordinated without meetings",text:"A guest request becomes a task in the housekeeping, maintenance or restaurant WhatsApp group. Everyone receives their schedule, and ready rooms are flagged. Nobody installs an app.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Guests who return",text:"An unhappy guest? You receive an alert during the stay. Reviews are requested at the right time, from the right guest. Then Smartiz stays in touch with loyalty campaigns, return offers and the next direct booking, commission-free.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"},{title:"The stay sells the table, spa and extra night",text:"A table the day before, a treatment on arrival, late checkout or breakfast: offered at the right time in the conversation and paid by link. Room service is ordered on WhatsApp, with a ticket sent to the kitchen.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",finalTitle:"Book a demo",finalText:"Your first bookings are free."},estates:{kicker:"For estates and multi-cottage parks",title:"Groups welcomed and cottages prepared, without everything going through you.",intro:"Families, weddings, seminars: several properties fill on the same day. Everything is prepared beforehand: group information, payments, linen, codes and rooms. Smartiz automates this preparation, coordinates your teams and answers guests.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A group of fifty on Saturday: who sleeps where, who has paid, who ordered linen?","Codes go out one by one on Friday afternoon.","Six cottages to prepare the same morning, with a team waiting for instructions.","On Saturday, the phone rings throughout arrivals.","The preparation sheet changes three times before the stay."],smartizTitle:"With Smartiz",blocks:[{title:"Group bookings tracked end to end",text:"One main contact, one conversation, and Smartiz follows the entire stay: information collected, balance and deposit requested at the right time, options offered and paid. Exchanges happen individually with the group lead. Once you know who sleeps in which property, every guest receives their own sequence: codes, guide and instructions for their cottage.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"A preparation sheet that stays up to date",text:"A stay takes shape over time. Beds, linen, meals, rooms and reserved equipment: the sheet is completed online, and your teams receive the latest version for each cottage in their WhatsApp group.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Everything settled before arrival",text:"Confirmation, group questionnaire, directions, codes generated for every stay and a guide for each property: the journey runs automatically. On Saturday, only arrivals remain.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Extras sold without thinking about it",text:"Linen, baskets, bikes, late checkout and meals: offered in the conversation at the right time and easy to pay for online.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."}},pricingPage:{kicker:"Pricing that fits your activity",title:"You pay at the pace of your business.",intro:"Your success is our success: you pay per booking, at check-in, once the money has already been collected. No per-user licence. In low season, only a very low monthly minimum applies.",plans:[{name:"Essential",subtitle:"Get started with WhatsApp",price:"â¬1.50 / booking",features:[{text:"Unified inbox",included:!0},{text:"WhatsApp and email connection",included:!0},{text:"Digital welcome book",included:!0},{text:"No integrations or automations",included:!1}],cta:"Book a demo"},{name:"Advanced",subtitle:"Guest experience",price:"â¬3 / booking",features:[{text:"Automated guest messages",included:!0},{text:"Automatic AI responses",included:!0},{text:"Operational task detection and management",included:!0},{text:"Guest sentiment analysis",included:!0},{text:"Guest identity verification",included:!0},{text:"Custom integrations",included:!0}],cta:"Book a demo"},{name:"Expert",subtitle:"Complete operations management",price:"â¬5 / booking",badge:"Most popular",features:[{text:"Everything for the guest experience",included:!0},{text:"Complete operations orchestration by Smartiz AI",included:!0},{text:"Dynamic team schedules",included:!0},{text:"Reporting and analytics",included:!0},{text:"Additional modules: owners, upselling, marketing and loyalty",included:!0}],cta:"Book a demo"}],note:"Excluding VAT. Setup fees apply. Monthly billing based on completed bookings, with a monthly minimum when there are no bookings. Reduced fees on cancellations. Fees may apply to connected devices.",custom:{title:"Need a tailored solution?",text:"Groups, multiple companies, high volumes: we build the offer with you.",cta:"Email us"},model:{title:"A unique pricing model",intro:"You pay for what you use, and you can see what you are paying for.",cards:[{title:"To get started",text:"Your first bookings are free while we connect your tools and you see AI working on your real stays."},{title:"Billed at check-in",text:"You pay once the guest has arrived, after payment has been collected. No extra cost during quiet periods."},{title:"Automatic and transparent",text:"Billing happens automatically, and you track your monthly projection from your account. No surprises at month end."}],cta:"Book a demo"}},clientsPage:{title:"Already more than 20,000 stays managed by Smartiz.",titleBefore:"Already more than",titleAfter:"stays managed by Smartiz.",recognitionTitle:"Recognition",recognitionText:"Supported by: Grand Prix Jeune Pousse 2026, RDV de
95s Pros de la Location Saisonnière · Canton of Vaud Innovation Award (FIT) · EHL Innovation Hub",usersTitle:"They use Smartiz",segments:[{title:"Property managers",logos:["[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]"]},{title:"Hotels and aparthotels",logos:["[LOGO: Logo]","[LOGO: Logo]"]},{title:"Estates and holiday parks",logos:["[LOGO: Logo]","[LOGO: Logo]"]}],testimonialsTitle:"What our clients say",testimonial:"[TESTIMONIAL] client testimonial placeholder",testimonialsCta:"Book a demo",casesTitle:"Client stories",cases:[{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"},{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"}],videosTitle:"On video",video:"[VISUAL] Video testimonial",finalTitle:"Start your journey now",finalText:"",finalCta:"Book a demo"},resourcesV2Page:{title:"Resources",subtitle:"Articles, guides and insights for hospitality professionals.",search:"Search articlesâ¦",filters:["All","Short-term rentals","Integrations","Property management","Real estate","Operations","Human resources","Artificial intelligence","Podcasts"],podcastsTitle:"Podcasts",podcastLabel:"Podcast",podcastSource:"Conciergerie de Rêve",podcasts:[{image:"https://i.ytimg.com/vi/phWMighnwBM/hqdefault.jpg",title:"How can AI help optimise your time in short-term rentals?",summary:"Smartiz co-founders Laurent and Olivier explain how AI frees up time for short-term rental operators.",href:"https://www.youtube.com/watch?v=phWMighnwBM"},{image:"https://i.ytimg.com/vi/04G0GjUxogs/hqdefault.jpg",title:"Three visions of property management: who is right?",summary:"Industry professionals discuss property management models and how they are evolving.",href:"https://www.youtube.com/watch?v=04G0GjUxogs"}],listen:"Listen",newsTitle:"Latest news",newsFollow:"Follow Smartiz on LinkedIn",newsPosts:[{text:"[POST LINKEDIN] Smartiz news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Customer story coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Product update coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Team news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"}],articlesTitle:"Articles",minRead:"min read",emptyTitle:"[Article title]",emptySummary:"[Article summary]",emptyCategory:"[Category]"},aboutPage:{kicker:"Built by operators, for operators",storyTitle:"Our story",story:["It all began in London, when the two co-founders, Olivier and Laurent, met. A shared passion for customer experience and digital transformation led them to work together on large-scale transformations, then reconnect later around the impact of Covid and AI on how we work.","In the meantime, Olivier bought a property in the Swiss Alps and entered the short-term rental business. One thing led to another: owners asked for his help and the activity grew. The same passion for customer experience found its place in personalised WhatsApp communication and thoughtful guest management.","Smartiz began as a tablet in a handful of properties. But guests still preferred WhatsApp.","That was when Laurent joined the journey. The conclusion was clear: WhatsApp was the channel that worked best, and both guest and internal workflows needed automation to keep growing and put AI to work in day-to-day management. No solution on the market did this. Smartiz was born."],storyVisual:"[VISUAL] Visual: founders / Alps photo",storyImageAlt:"Laurent Dumoulin and Olivier Dubuisson at EHL, Lausanne",whyTitle:"Why now",why:[{title:"WhatsApp has become THE channel in tourism",text:"For guests and teams alike, everything already happens there. The question is no longer which channel to choose, but how to make it work at scale."},{title:"AI acts rather than merely providing support",text:"It responds, plans, sells and coordinates securely. Operators who entrust execution to it grow without hiring; the others plateau."},{title:"Operators do not want another tool",text:"Teams will not open another app. The only platform that works is the one living inside what they already use."}],foundersTitle:"The co-founders",founders:[{visual:"[VISUAL] Photo",name:"Olivier Dubuisson",role:"Co-founder and CTO",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/olivierdubuisson/"},{visual:"[VISUAL] Photo",name:"Laurent Dumoulin",role:"Co-founder and business development",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/laurent-dumoulin-smartiz/"}],advisorsTitle:"Our board of advisors",advisors:[{visual:"[VISUAL] Photo",name:"Bernard Jaccard",role:"Business Developer at Swisscom Ventures, board member and startup advisor",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/bjaccard/"},{visual:"[VISUAL] Photo",name:"Yannick Hofmeister",role:"COO at OWT (a Swisscom company), AI, strategy and technology",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/yannickhofmeister/"}],careers:"Join Smartiz",workTitle:"How we work",values:[{title:"Operators first",text:"Every feature runs in our own property management business before release."},{title:"Curiosity",text:"We take the time to understand each client's operations and the sector they work in."},{title:"Experimentation",text:"We build and test quickly, securely and alongside our clients."},{title:"Humility",text:"We always have something to learn from our clients and our own field teams."},{title:"The guest at the centre",text:"We put ourselves in the operator's and guest's shoes so the experience works for both."}],supportersTitle:"They support us",demo:"Book a demo",clients:"Meet our clients"},securityPage:{title:"An autonomous environment that remains under control",intro:"Smartiz acts on your behalf. To keep you in control, we have built a stable and secure infrastru
95cture.",reviewNote:"To be reviewed and completed by Olivier",cards:[{title:"Access and account security",text:"MFA, passkeys, organisation-wide enforcement, session monitoring, and administrator-approved resets."},{title:"Data management and protection",text:"GDPR, encrypted data, never sold, never used to train third-party models; complete export and deletion on request."},{title:"Privacy",text:"Code-locked conversations, role-based access, and token-limited owner and team portals."},{title:"Platform and stability",text:"Signed webhooks, rate limiting, logging, and incident-window review."},{title:"AI",text:"Rules, approval queue, and traceability for every action."}]},live:{refreshIn:"Real time, refresh in {s}s"},visuals:{dashboardAlt:"Smartiz dashboard for managing guests, teams and operations",welcomeAlt:"Phone showing a WhatsApp conversation and a Smartiz satisfaction survey",sentimentAlt:"Guest sentiment analysis in Smartiz detecting dissatisfaction",autopilotAlt:"Guest conversations managed by Smartiz AI",tasksAlt:"Operational task management and sentiment tracking in Smartiz",workflowAlt:"Smartiz workflow editor for defining rules and approvals",experiencesAlt:"Smartiz mobile welcome guide presenting experiences and upsells",solutionHeroAlt:{conciergeries:"Property management professional inside a guest accommodation",hotels:"Hotel professional inside the property",estates:"Holiday park professional outdoors"}},supportersAward:"Grand Prix Jeune Pousse 2026"}},wj={nav:{features:"Funzionalità ",pricing:"Prezzi",testimonials:"Testimonianze",resources:"Risorse",getStarted:"Inizia Ora",talkToUs:"Parliamo"},hero:{badge:"IA Agente per l'Ospitalità ",title:"L'unica piattaforma WhatsApp-first",titleHighlight:"IA Agente per professionisti dell'ospitalità ",subtitle:"Progettato per professionisti degli affitti brevi e hotel, smartiz rileva i sentimenti degli ospiti, crea e gestisce attività per te e gestisce autonomamente le comunicazioni con gli ospiti - tutto su WhatsApp, già installato su 4 miliardi di dispositivi.",ctaPrimary:"Prova Gratuita",ctaSecondary:"Guarda smartiz!",stat1Label:"Messaggi Automatizzati",stat2Label:"Soddisfazione Ospiti",stat3Label:"Tempo Risparmiato/Giorno",stat4Label:"Interazioni WhatsApp Gestite"},trustedBy:{title:"La fiducia dei grandi marchi",award:"ð Vincitore: Grand Prix Jeune Pousse 2026 â Rendez-vous des Pros de la Location Saisonnière"},stats:{title:"La Fiducia di Property Manager e Hotel in Tutto il Mondo",subtitle:"Una Piattaforma. Infinite Possibilità .",conversations:"4M+",conversationsLabel:"Utenti WhatsApp Nel Mondo",responseTime:"99%",responseTimeLabel:"Messaggi Letti",satisfaction:"+80%",satisfactionLabel:"Coinvolgimento vs Email",automation:"Media Ricchi",automationLabel:"Massima Flessibilità ",cta:"Parlaci"},features:{title:"Funzionalità IA Agente che Funzionano Davvero",subtitle:"Dal rilevamento autonomo del sentiment alla gestione intelligente delle attività - soluzioni IA agente per l'ospitalità moderna",sectionTitle:"Tutto Ciò di Cui Hai Bisogno per Deliziare i Tuoi Ospiti",sectionSubtitle:"Funzionalità potenti progettate specificamente per i professionisti degli affitti brevi",whatsappAutomation:{title:"Automazione Intelligente WhatsApp",description:"Flussi di messaggistica automatizzati che gestiscono l'80% delle comunicazioni attraverso un canale semplice che gli ospiti già utilizzano."},sentiment:{title:"Sentiment Ospiti in Tempo Reale",description:"Sondaggi mirati e promemoria per raccogliere feedback al momento giusto, prevenendo recensioni negative prima che accadano."},mobileFirst:{title:"Operazioni Mobile-First",description:"Una piattaforma, un canale per i tuoi ospiti, proprietari, team di pulizia e tecnici. Gestisci tutto in movimento."},fastSetup:{title:"Configurazione Ultraveloce",description:"Inizia in minuti, non settimane. Nessuna integrazione complessa o conoscenza tecnica richiesta."},gdpr:{title:"Conforme GDPR",description:"Sicurezza e protezione dei dati di livello aziendale. Le informazioni dei tuoi ospiti sono sempre al sicuro."},support:{title:"Supporto Automatizzato 24/7",description:"Non perdere mai un messaggio ospite. Le risposte automatiche gestiscono le domande comuni istantaneamente, in qualsiasi momento."}},aiFeatures:{badge:"Funzionalità IA-First",title:"Funzionalità IA-First che Funzionano Davvero",subtitle:"Dal rilevamento del sentiment ai rivoluzionari guest book - tutto progettato per i professionisti dell'ospitalità ",copilot:{title:"IA Co-pilota & Autopilota",description:"Scegli il tuo livello di automazione. Lascia che l'IA smartiz suggerisca risposte (Co-pilota) o gestisca le conversazioni automaticamente (Autopilota)."},sentimentAnalysis:{title:"Analisi del Sentiment in Tempo Reale",description:"La nostra IA monitora ogni conversazione e segnala gli ospiti con sentiment in peggioramento, così la direzione può intervenire prima che i problemi escalino."},taskDetection:{title:"Rilevamento Automatico delle Attività ",description:"L'IA trova attività nascoste nelle conversazioni - richieste ospiti, discussioni staff - e le mostra in dashboard in tempo reale."},whatsappFirst:{title:"Piattaforma WhatsApp-First",description:"Perché creare un'altra app? WhatsApp è già su 4 miliardi di dispositivi. Ne facciamo il tuo centro operativo."},staffIntegration:{title:"Integrazione WhatsApp Staff",description:"Collega i tuoi gruppi WhatsApp operativi esistenti e trasforma le discussioni in dashboard tangibili e azionabili."},guestBook:{title:"Guest Book Rivoluzionario",description:"Genera guest book personalizzati e interattivi in meno di 3 minuti. Crea esperienze migliori e opportunità di upselling."},automatedComms:{title:"Comunicazioni Ospiti Automatizzate",description:"Dalle istruzioni di check-in alle offerte di upselling, l'IA smartiz gestisce intelligentemente l'80% delle comunicazioni ospiti."}
95,experiencePlatform:{title:"Piattaforma di Esperienza, Non Solo Software",description:"Non gestiamo solo le operazioni - trasformiamo l'intera esperienza ospite attraverso l'automazione intelligente."}},showcase:{badge:"Funzionalità Prodotto",title:"Vedi smartiz in Azione",subtitle:"Funzionalità IA-first progettate specificamente per hotel e professionisti STR",whatsappBadge:"Automatizzato",whatsappTitle:"Messaggistica WhatsApp ospiti completamente automatizzata",whatsappDescription:"Automatizza e ottimizza le comunicazioni con gli ospiti con il tuo flusso di messaggistica WhatsApp personalizzato.",copilotBadge:"Autopilota",copilotTitle:"Modalità IA Co-pilota & Autopilota",copilotDescription:"Lascia che l'IA suggerisca risposte o gestisca l'80% delle conversazioni automaticamente mentre ti concentri su ciò che conta.",tasksBadge:"Rilevamento Intelligente",tasksTitle:"Estrazione Automatica delle Attività ",tasksDescription:"L'IA rileva attività nascoste da conversazioni e discussioni staff e le mostra in dashboard azionabili.",sentimentBadge:"Alimentato da IA",sentimentTitle:"Analisi del Sentiment in Tempo Reale",sentimentDescription:"Rileva istantaneamente i cambiamenti di sentiment degli ospiti e intervieni prima che si trasformino in recensioni negative.",workflowBadge:"Avanzato",workflowTitle:"Capacità di Workflow Avanzate",workflowDescription:"Progetta un flusso di messaggistica che si allinea alla tua strategia e al tuo brand.",guestbookBadge:"Prima Mondiale",guestbookTitle:"Guest Book in Meno di 3 Minuti",guestbookDescription:"Genera guest book personalizzati e interattivi che creano esperienze eccezionali e opportunità di vendita.",pricingCta:"Vedi i nostri prezzi"},integrations:{badge:"Integrazioni",title:"Funziona con i Tuoi Strumenti Esistenti",subtitle:"smartiz si integra perfettamente con le tue piattaforme preferite di property management, smart lock e pagamenti",pms:{title:"Integrazione PMS",description:"Connessione fluida con il tuo sistema di property management esistente"},smartLock:{title:"Integrazione Smart Lock",description:"Integrazione con i principali fornitori di smart lock"},payments:{title:"Soluzioni di Pagamento",description:"Accetta pagamenti attraverso più fornitori"},comingSoon:"Prossimamente",andMore:"e molti altri"},testimonials:{title:"Amato da Ospiti, Professionisti della Locazione & Hotel",subtitle:"Scopri cosa dicono i nostri utenti di smartiz",testimonial1:{name:"Co-fondatore",role:"Swiss Chalet Services",company:"Svizzera",content:"Con smartiz, risparmio tempo e denaro. Sono riuscito a gestire l'alta stagione con ottime recensioni e un FTE in meno nel mio team."},testimonial2:{name:"Ed",role:"Ospite",company:"Swiss Chalet Services",content:"Il servizio di concierge via WhatsApp era perfetto. Super utile e gentile."},testimonial3:{name:"Grande Operatore Alberghiero & Appartamenti Serviti",role:"Bulle",company:"Svizzera",content:"Collaborare con smartiz significa lavorare con un team con un forte approccio incentrato sull'uomo e un'ossessione per la soddisfazione del cliente."}},faq:{badge:"FAQ",title:"Domande Frequenti",subtitle:"Tutto quello che devi sapere su smartiz",q1:{question:"Quanto tempo richiede l'onboarding e quale supporto fornite?",answer:"Ti faremo iniziare in pochissimo tempo. Suggeriamo sempre un aumento graduale delle tue operazioni con smartiz, iniziando con i nostri moduli di inbox e gestione attività , per farti conoscere te e il tuo team con quello che facciamo. Entro pochi giorni dopo, configuriamo il tuo primo workflow. Nel frattempo, il nostro team lavora con te per valutare ulteriori modifiche ai tuoi modi di lavorare che potrebbero portare all'implementazione del nostro motore di workflow avanzato. Hai un team di onboarding dedicato con te in ogni momento."},q2:{question:"I miei dati sono sicuri e Smartiz è conforme al GDPR / privacy?",answer:"Sì. smartiz è completamente conforme al GDPR. I dati degli ospiti sono crittografati e mai utilizzati per scopi di terze parti. Privacy e protezione dei dati sono integrate nel nostro sistema."},q3:{question:"Smartiz supporta messaggistica multilingue e localizzazione delle comunicazioni ospiti?",answer:"Sì. Smartiz supporta più lingue e continuiamo ad aggiungerne altre. Puoi personalizzare i contenuti dei tuoi messaggi come e quando richiesto."},q4:{question:"Posso personalizzare i messaggi nel workflow smartiz?",answer:"Assolutamente. Puoi aggiungere o rimuovere determinati passaggi, modificare la tempistica di determinati messaggi, oltre ad adattare il tuo workflow alla durata del soggiorno e molte altre possibilità . La tua immaginazione è probabilmente l'unico limite."},q5:{question:"Cosa succede se WhatsApp o gli OTA cambiano le loro regole e politiche?",answer:"smartiz rimane completamente conforme a WhatsApp e agli OTA e si adatta ai cambiamenti delle politiche. Avrai
95sempre un servizio affidabile e ininterrotto."},q6:{question:"E se i miei ospiti non hanno WhatsApp?",answer:"Nessun problema. smartiz passa automaticamente all'email quando WhatsApp non è disponibile, assicurando che ogni ospite rimanga informato."},q7:{question:"Non ho un PMS o channel manager, come funziona?",answer:"Puoi comunque utilizzare smartiz aggiungendo i dettagli degli ospiti manualmente. Ti aiuteremo a iniziare anche senza integrazioni."}},comparison:{title:"Perché smartiz à Diverso",subtitle:"Non siamo un altro strumento di gestione ospiti - siamo una piattaforma IA agente per l'ospitalità che opera autonomamente",without:"Strumenti Tradizionali",with:"smartiz IA Agente",withoutList:{item1:"Più piattaforme e app da gestire",item2:"Risposte manuali ai messaggi che prosciugano il tuo tempo",item3:"Nessuna informazione sul sentiment degli ospiti finché non è troppo tardi",item4:"Attività e richieste nascoste si perdono nelle chat",item5:"Staff che usa gruppi WhatsApp disconnessi",item6:"Informazioni ospiti generiche e dispendiose in termini di tempo"},withList:{item1:"Una piattaforma - WhatsApp, già su 4 miliardi di dispositivi",item2:"IA Co-pilota & Autopilota gestiscono l'80% dei messaggi",item3:"Analisi del sentiment in tempo reale segnala problemi precocemente",item4:"L'IA estrae attività dalle conversazioni automaticamente",item5:"Gruppi WhatsApp operativi elevati a dashboard",item6:"Guest book rivoluzionari in meno di 3 minuti"}},footer:{description:"La piattaforma di gestione ospiti WhatsApp-first per i professionisti degli affitti brevi",followUs:"Seguici",product:"Prodotto",company:"Azienda",legal:"Legale",whySmartiz:"Perché smartiz?",benefits:"Vantaggi",pricing:"Prezzi",faq:"FAQ",support:"Supporto",aboutUs:"Chi siamo",news:"Notizie",resources:"Risorse",privacyPolicy:"Politica sulla Privacy",termsOfService:"Termini di Servizio",cookiePreferences:"Preferenze Cookie",copyright:"© 2021-2026 smartiz.ai · Tutti i diritti riservati · Fatto con â¤ï¸ in Svizzera ð¨ð"},resources:{sectionTitle:"Ultime Risorse",sectionSubtitle:"Approfondimenti e guide per i professionisti dell'ospitalità ",viewAll:"Vedi tutto"},resourcesPage:{title:"Risorse",subtitle:"Articoli, guide e approfondimenti per i professionisti dell'ospitalità .",searchPlaceholder:"Cerca articoli...",all:"Tutti",minRead:"min di lettura",noArticles:"Nessun articolo trovato.",notFound:"Articolo non trovato",backToResources:"Torna alle risorse",relatedArticles:"Articoli Correlati",seoTitle:"Risorse - smartiz | Articoli & Approfondimenti per l'Ospitalità ",seoDescription:"Esplora articoli, guide e approfondimenti sulla gestione degli affitti brevi, le operazioni immobiliari, l'IA nell'ospitalità e altro ancora."},order:{loading:"Caricamento ordine...",notFound:"Ordine non trovato",alreadySigned:"Questo ordine è già stato firmato",pageTitle:"La Tua Offerta Smartiz Personalizzata",pageSubtitle:"Si prega di rivedere e confermare la tua offerta personalizzata",step1Title:"Riepilogo Ordine",step2Title:"Revisione e Firma",termsCardTitle:"Termini e Condizioni",basePrice:"Base",addOnModules:"Moduli Aggiuntivi",subtotal:"Subtotale",monthlyTotal:"Totale Mensile",annualTotal:"Totale Annuale",discount:"Sconto Totale",applied:"Applicato",property:"proprietà ",properties:"proprietà ",room:"camera",rooms:"camere",perMonth:"/mese",monthlyAddOns:"Componenti aggiuntivi mensili ricorrenti",freeTrial:"Mesi di Prova Gratuiti",nextButton:"Avanti",backButton:"Indietro",signatureName:"Nome Completo",signatureEmail:"Indirizzo Email",termsAccept:"Accetto i",termsLink:"Termini e Condizioni",submitButton:"Firma e Invia Ordine",submitting:"Invio in corso...",thankYou:"Grazie!",orderSigned:"Il tuo ordine è stato firmato con successo",completeFields:"Compila tutti i campi e accetta i termini",errorLoading:"Impossibile caricare l'ordine",errorSubmitting:"Impossibile inviare l'ordine",offerValidUntil:"Questa offerta è valida fino al",expired:{title:"Offerta Scaduta",message:"Questa offerta è scaduta e non è più disponibile per la firma.",extendButton:"Estendi di 24 Ore",requestExtensionButton:"Richiedi Estensione",extending:"Estensione in corso...",extendedSuccess:"Offerta estesa! Hai ora 24 ore per firmare.",requestSent:"Richiesta di estensione inviata! Il nostro team la esaminerà a breve.",requestAlreadySe
95nt:"à già stata inviata una richiesta di estensione per questa offerta.",contactSales:"Contatta il nostro team di vendita per assistenza."}},pricing:{badge:"Prezzi Semplici e Trasparenti",title:"Scegli il Tuo Piano Perfetto",subtitle:"Paga per prenotazione. Cresci in modo flessibile. Nessun costo nascosto.",perReservation:"/prenotazione",freeReservations:"prenotazioni gratuite",mostPopular:"Più Popolare",getStarted:"Inizia Ora",contactSales:"Contatta le Vendite",billingNote:"Fatturazione mensile basata sul numero di prenotazioni completate nel mese precedente.",cancelledNote:"Prenotazioni cancellate dopo 72h = 20% della tariffa.",minimumNote:"Minimo di {amount} prenotazioni dedotte al mese.",vatExcluded:"IVA esclusa.",needCustom:"Hai bisogno di una soluzione personalizzata per la tua azienda?",trialInfo:"Tutti i piani includono una prova gratuita ⢠Nessuna carta di credito richiesta ⢠Annulla in qualsiasi momento",connectionFees:"* Costi di connessione potrebbero applicarsi.",tiers:{essential:{name:"Essential",tagline:"Comunicazione ospiti"},advanced:{name:"Advanced",tagline:"Essential + SmartizAI Agent Basic"},expert:{name:"Expert",tagline:"Advanced + Orchestrazione Operazioni + SmartizAI Agent Pro"}},essentialFeatures:["Inbox Unificata & Integrazione WhatsApp","Libro degli ospiti digitale","Creazione manuale attività & operazioni: pulizie, accoglienza, manutenzione","Integrazioni: PMS, Smart Keylocks*, Fornitori di pagamento"],advancedFeatures:["Tutto di Essential, più:","Analisi del sentiment degli ospiti","Sequenziamento automatico delle comunicazioni","Risposte automatiche via IA","Creazione attività via IA","Analisi KYC via IA"],expertFeatures:["Tutto di Advanced, più:","Orchestrazione completa delle tue operazioni tramite IA","Gestione delle relazioni con i clienti","Reporting e analisi","Account manager dedicato","Integrazioni personalizzate"],expertModulesLabel:"Scegli fino a 2 moduli aggiuntivi dalla libreria:",expertModules:["Gestione delle cauzioni (Stripe o Swikly)","Upselling","Gestione proprietari"]},cta:{title:"Pronto a Trasformare la Tua Gestione Ospiti?",subtitle:"Unisciti a centinaia di property manager e operatori alberghieri che si affidano a smartiz per automatizzare le comunicazioni e aumentare la soddisfazione degli ospiti.",ctaPrimary:"Prova Gratuita",ctaSecondary:"Prenota Demo",feature1:"Nessuna carta di credito richiesta",feature2:"14 giorni di prova gratuita",feature3:"Annulla in qualsiasi momento",buttonText:"Organizza una chiamata con i nostri fondatori"},signup:{backToPricing:"Torna ai Prezzi",title:"Inizia con smartiz",subtitle:"Completa i tuoi dati per iniziare il tuo viaggio con smartiz",yourSelection:"La Tua Selezione:",shortTermRental:"Affitto a Breve Termine",hotel:"Hotel",units:"unità ",contactInfo:"Informazioni di Contatto",fullName:"Nome Completo",email:"Indirizzo Email",phone:"Numero di Telefono",companyInfo:"Informazioni Aziendali",companyName:"Nome Azienda o Brand (opzionale)",billingAddress:"Indirizzo di Fatturazione",streetAddress:"Indirizzo",city:"Città ",postalCode:"Codice Postale",country:"Paese",processing:"Elaborazione...",completeDetails:"Completa i Dettagli di Base",required:"*",errorFillFields:"Si prega di compilare tutti i campi obbligatori",errorInvalidEmail:"Si prega di inserire un indirizzo email valido",errorSaveFailed:"Impossibile salvare le tue informazioni. Riprova.",errorGeneral:"Qualcosa è andato storto. Riprova."},cookies:{title:"Politica sui Cookie",lastUpdated:"Ultimo aggiornamento: Gennaio 2025",whatAreCookies:"Cosa Sono i Cookie",whatAreCookiesText:"I cookie sono piccoli file di testo che vengono posizionati sul tuo dispositivo quando visiti il nostro sito web. Ci aiutano a fornirti un'esperienza migliore ricordando le tue preferenze e comprendendo come utilizzi il nostro sito.",howWeUse:"Come Utilizziamo i Cookie",howWeUseText:"Smartiz utilizza i cookie per i seguenti scopi:",essential:"Cookie Essenziali",essentialText:"Questi cookie sono necessari per il corretto funzionamento del sito web. Abilitano funzioni di base come la navigazione delle pagine e l'accesso ad aree sicure.",anal
95ytics:"Cookie Analitici",analyticsText:"Utilizziamo questi cookie per comprendere come i visitatori interagiscono con il nostro sito web, aiutandoci a migliorare funzionalità e contenuti.",preference:"Cookie di Preferenza",preferenceText:"Questi cookie consentono al nostro sito web di ricordare le scelte che fai (come le preferenze linguistiche) per fornire funzionalità migliorate.",marketing:"Cookie di Marketing",marketingText:"Questi cookie tracciano la tua attività online per aiutarci a fornire pubblicità più pertinente e misurare l'efficacia delle campagne.",typesTitle:"Tipi di Cookie Che Utilizziamo",sessionCookies:"Cookie di Sessione",sessionCookiesText:"Cookie temporanei che vengono eliminati quando chiudi il browser. Ci aiutano a mantenere la tua sessione mentre navighi sul nostro sito web.",persistentCookies:"Cookie Persistenti",persistentCookiesText:"Questi cookie rimangono sul tuo dispositivo per un periodo prestabilito o fino a quando non li elimini. Ci aiutano a ricordare le tue preferenze per visite future.",thirdParty:"Cookie di Terze Parti",thirdPartyText:"Alcuni cookie sono posizionati da servizi di terze parti che appaiono sulle nostre pagine, come fornitori di analisi e piattaforme di social media.",managing:"Gestione dei Cookie",managingText1:"Hai il diritto di accettare o rifiutare i cookie. La maggior parte dei browser web accetta automaticamente i cookie, ma puoi modificare le impostazioni del browser per rifiutarli se preferisci.",managingText2:"Ecco come gestire i cookie nei browser più diffusi:",chrome:"Chrome: Impostazioni â Privacy e sicurezza â Cookie e altri dati dei siti",firefox:"Firefox: Impostazioni â Privacy e sicurezza â Cookie e dati dei siti",safari:"Safari: Preferenze â Privacy â Gestisci dati dei siti web",edge:"Edge: Impostazioni â Autorizzazioni per cookie e siti â Cookie e dati dei siti",managingNote:"Si prega di notare che la disabilitazione dei cookie può influire sulla funzionalità del nostro sito web e limitare l'accesso a determinate funzionalità .",consent:"Il Tuo Consenso",consentText:"Lo spazio di archiviazione facoltativo viene utilizzato solo se lo scegli. Puoi modificare o revocare la scelta in qualsiasi momento dal link delle preferenze cookie nel footer.",changes:"Modifiche a Questa Politica",changesText:"Potremmo aggiornare questa Politica sui Cookie di tanto in tanto per riflettere cambiamenti nelle nostre pratiche o per motivi operativi, legali o normativi. Ti incoraggiamo a rivedere questa pagina periodicamente per le informazioni più recenti.",contact:"Contattaci",contactText:"Se hai domande sul nostro uso dei cookie, ti preghiamo di contattarci a:"},cookiePreferences:{title:"Preferenze Cookie",description:"Scegli quali categorie facoltative di archiviazione del browser smartiz può utilizzare. L'archiviazione necessaria è sempre attiva.",necessary:"Cookie Necessari",necessaryDesc:"Essenziali per il corretto funzionamento del sito web. Questi non possono essere disabilitati.",functional:"Cookie Funzionali",functionalDesc:"Abilitano funzionalità migliorate e personalizzazione, come le preferenze linguistiche.",analyticsTitle:"Cookie Analitici",analyticsDesc:"Consente l'archiviazione analitica se è presente un servizio corrispondente. Attualmente il codice del sito pubblico non installa tracker analitici.",marketingTitle:"Cookie di Marketing",marketingDesc:"Consente l'archiviazione marketing se è presente un servizio corrispondente. Attualmente il codice del sito pubblico non installa tracker pubblicitari.",declineAll:"Rifiuta Tutti",acceptAll:"Accetta Tutti",savePreferences:"Salva Preferenze"},about:{heroTitle:"Trasformare l'Ospitalità con l'IA",heroSubtitle:"Siamo un team di innovatori, ingegneri ed esperti di ospitalità in missione per creare esperienze fluide per gli ospiti attraverso la tecnologia intelligente.",teamTitle:"Il Nostro Team",advisorsTitle:"Consiglio di Amministrazione",valuesTitle:"I Nostri Valori",careersTitle:"Diventa uno Smartiziano",careersSubtitle:"Unisciti a un team di innovatori appassionati che stanno plasmando il futuro dell'ospitalità . In Smartiz, lavorerai su problemi stimolanti, svilupperai le tue competenze e avrai un impatto reale su come milioni di ospiti sperimentano l'ospitalità in tutto il mondo.",applyNow:"Candidati Ora",firstName:"Nome",lastName:"Cognome",email:"Email",phone:"Telefono",linkedin:"URL LinkedIn",uploadCV:"Carica CV/Curriculum",submitting:"Invio in corso...",submitApplication:"Invia Candidatura",uploadCVError:"Si prega di caricare il CV",applicationError:"Invio candidatura non riuscito",coFounderCEO:"Co-Fondatore & CEO",coFounderCTO:"C
95o-Fondatore & CTO",backendDev:"Sviluppatore Backend",laurentDesc:"Reinventare l'esperienza degli ospiti nell'ospitalità . Unire passione per tecnologia e ospitalità per creare soluzioni fluide.",olivierDesc:"Leader tecnologico con profonda esperienza in ingegneria e soluzioni digitali, guidando l'innovazione tecnica nell'ospitalità .",aurelienDesc:"Ingegnere backend esperto che costruisce sistemi robusti e scalabili per alimentare soluzioni di ospitalità moderne.",madhurDesc:"Ingegnere robotico, membro del consiglio consultivo e CSO frazionario presso Innosuisse. Esperto in Lean Product Development e innovazione PMI. Vincitore globale TiE50 con pubblicazioni sulla dinamica metanazionale.",matteoDesc:"Esperto di IA presso Dell Technologies, specializzato in visione artificiale e deep learning embedded. Detiene brevetti nella profilazione comportamentale basata su immagini e nella previsione dell'intubazione medica. Ha contribuito ai progetti H2020 Eyes of Things e FANCI.",egbertDesc:"Professionista dell'ospitalità multilingue con competenze nella leadership ispiratrice e nel miglioramento delle prestazioni alberghiere. Volontario di lunga data nella raccolta fondi per UNICEF Belgio e Oxfam.",arthurDesc:"Amministratore presso Valfor, supervisiona le attività di ospitalità di lusso nelle Alpi svizzere. Manager esperto con profonda competenza nella gestione del turismo alpino, operazioni strategiche e sviluppo immobiliare di lusso sostenibile.",philippeDesc:"Membro del consiglio di amministrazione e consulente esperto con ruoli di BoA per Mobilis e presidente dell'International School Basel. Competenza in governance, istruzione internazionale e strategia aziendale in organizzazioni non profit e imprese.",value1Title:"Innovazione Prima di Tutto",value1Desc:"Superiamo i confini e abbracciamo la tecnologia all'avanguardia per risolvere problemi reali.",value2Title:"Centrato sull'Ospite",value2Desc:"Ogni decisione che prendiamo è guidata dal miglioramento dell'esperienza dell'ospite.",value3Title:"Trasparenza",value3Desc:"Costruiamo fiducia attraverso comunicazione aperta e relazioni oneste.",value4Title:"Crescita Continua",value4Desc:"Investiamo nello sviluppo del nostro team e celebriamo l'apprendimento dagli errori."},applicationThankYou:{thankYouTitle:"Grazie",receivedApplication:"Abbiamo ricevuto la tua candidatura e la nostra IA ha già iniziato a esaminare il tuo profilo.",whatWeLearnedTitle:"Cosa abbiamo imparato su di te:",currentRole:"Ruolo attuale:",experience:"Esperienza:",year:"anno",years:"anni",keySkills:"Competenze chiave:",excitedToLearn:"Siamo entusiasti di saperne di più sulla tua esperienza in",teamReview:"Il nostro team esaminerà la tua candidatura nel dettaglio e ti contatterà a",within:"entro i prossimi 3-5 giorni lavorativi.",whatHappensTitle:"Cosa succede dopo?",step1:"Il nostro team di recruiting esaminerà attentamente il tuo CV e il tuo profilo",step2:"Se il tuo profilo corrisponde alle nostre esigenze, programmeremo una chiamata per discutere delle opportunità ",step3:"Ti terremo aggiornato durante tutto il processo",backToAbout:"Torna a Chi siamo",goToHome:"Vai alla Home"},terms:{title:"Termini e Condizioni e Trattamento dei Dati",subtitle:"Si prega di rivedere i nostri termini e condizioni generali e l'accordo sul trattamento dei dati",termsTitle:"Termini e Condizioni Generali",dpaTitle:"Accordo sul Trattamento dei Dati",download:"Scarica",downloadPDF:"Scarica PDF",clickToDownload:"Clicca sul pulsante qui sotto per scaricare il documento."},modules:{whatsapp:{name:"Integrazione WhatsApp",description:"Fondamentale"},ai_copilot:{name:"Smartiz AI: Co-pilota & Autopilota",description:"Fondamentale"},workflow_editor:{name:"Editor Workflow Smartiz",description:"Fondamentale"},sentiment:{name:"Tracciamento Sentiment Ospiti",description:"Fondamentale"},inbox:{name:"Inbox Unificata (WhatsApp + Email - altri in arrivo)",description:"Fondamentale"},auto_tasks:{name:"Generazione e Tracciamento Automatico delle Attività ",description:"Fondamentale"},tasks:{name:"Modulo Gestione Attività ",description:"Fondamentale"},task_distribution:{name:"Distribuzione Attività ai Gruppi WhatsApp del Personale",description:"Fondamentale"}
95,knowledge_base:{name:"Base di Conoscenza Personalizzata",description:"Fondamentale"},deposits:{name:"Modulo Gestione Depositi",description:"Modulo premium"},housekeeping:{name:"Modulo Pulizie",description:"Modulo premium"},maintenance:{name:"Modulo Manutenzione",description:"Modulo premium"},marketing:{name:"Modulo Marketing",description:"Modulo premium"},payouts:{name:"Modulo Pagamenti & Proprietari",description:"Modulo premium"},upsells:{name:"Modulo Vendite Aggiuntive",description:"Modulo premium"},igloohome_keybox:{name:"Integrazione keybox igloohome",description:"Accesso tramite keybox intelligente, gestito da smartiz"}},pricingModules:{whatsapp:{name:"Integrazione WhatsApp",description:"Fondamentale"},ai_copilot:{name:"Smartiz AI: Co-pilota & Autopilota",description:"Fondamentale"},workflow_editor:{name:"Workflow di Messaggistica Standard",description:"Fondamentale"},sentiment:{name:"Tracciamento Sentiment Ospiti",description:"Fondamentale"},inbox:{name:"Inbox Unificata (WhatsApp + Email - altri in arrivo)",description:"Fondamentale"},auto_tasks:{name:"Generazione e Tracciamento Automatico delle Attività ",description:"Fondamentale"},tasks:{name:"Modulo Gestione Attività ",description:"Fondamentale"},task_distribution:{name:"Distribuzione Attività ai Gruppi WhatsApp del Personale",description:"Fondamentale"},knowledge_base:{name:"Base di Conoscenza Personalizzata",description:"Fondamentale"},deposits:{name:"Modulo Gestione Depositi",description:"Modulo premium"},housekeeping:{name:"Modulo Pulizie",description:"Modulo premium"},maintenance:{name:"Modulo Manutenzione",description:"Modulo premium"},marketing:{name:"Modulo Marketing",description:"Modulo premium"},payouts:{name:"Modulo Pagamenti & Proprietari",description:"Modulo premium"},upsells:{name:"Modulo Vendite Aggiuntive",description:"Modulo premium"},igloohome_keybox:{name:"Integrazione keybox igloohome",description:"Accesso tramite keybox intelligente, gestito da smartiz"},customIntegrations:{name:"Integrazioni personalizzate",description:"Soluzioni di integrazione su misura"},tailoredOnboarding:{name:"Onboarding personalizzato",description:"Processo di configurazione personalizzato"},premiumOnboarding:{name:"Onboarding premium",description:"Esperienza di configurazione VIP"},dedicatedSupport:{name:"Supporto e formazione dedicati",description:"Assistenza prioritaria e formazione"}},newsPage:{title:"Novità ",subtitle:"Comunicati stampa, articoli di settore ed eventi dal team smartiz.",noArticles:"Nessun articolo per il momento. Torna presto!",seoTitle:"Novità - smartiz | Stampa, Articoli & Eventi",seoDescription:"Resta aggiornato sulle novità smartiz, comunicati stampa, articoli di settore ed eventi nella tecnologia alberghiera.",minRead:"min di lettura",backToNews:"Torna alle novità ",notFound:"Articolo non trovato"},v2:{home:{hero:{kicker:"For concierge services, hotels and gîtes · Official WhatsApp Business platform",title:"Take back control of your guests and your teams. Without being glued to the phone.",subtitle:"Smartiz is the all-in-one WhatsApp platform for concierge services, hotels and gîtes. Smartiz AI answers your guests, detects and assigns tasks to your teams, and sells your additional services. It executes, you stay in control.",cta:"Book a demo",visualPlaceholder:"[VISUAL] Visual to be produced: product photos and a phone with WhatsApp, in the spirit of the current site (smartiz.ai)",stats:[{value:"95%",label:"of automation, messages and tasks"},{value:"< 10 min",label:"of intervention per stay"},{value:"4M+",label:"WhatsApp interactions handled"},{value:"4.9â
",label:"guest satisfaction"}]},trust:{titleBefore:"Already more than ",titleHighlight:"20,000",titleAfter:" stays managed by Smartiz",eyebrow:"They trust us",logosAriaLabel:"Smartiz client logos",logoPlaceholder:"Client logo",quotePlaceholder:"Client quote to insert",authorPlaceholder:"Placeholder: name, company, segment",backersLabel:"They support us",backers:"Grand Prix Jeune Pousse 2026 · EHL Innovation Hub · Prix Innovation Canton de Vaud (FIT)",ctaDemo:"Book a demo",ctaClients:"Discover our clients"}
95,segments:{title:"For hospitality professionals",discover:"Discover",items:[{title:"Concierge services",text:"Your guests and your teams are already all on WhatsApp.",imagePlaceholder:"Image: property management company",imageAlt:"Property management breakfast tray by a window"},{title:"Hotels and aparthotels",text:"No extra tool for your teams.",imagePlaceholder:"Image: hotel",imageAlt:"Contemporary hotel"},{title:"Estates and gîte parks",text:"Automate everything while keeping the human touch.",imagePlaceholder:"Image: gîte estate",imageAlt:"Gîte estate with blue shutters and hydrangeas"}]},outcomes:{title:"Everything goes through you. Even on Sunday at 10 pm.",subtitle:"Guests, teams, services: today, you coordinate everything. Smartiz does it for you, on WhatsApp, fast and well.",livedLabel:"What you live with",withLabel:"With Smartiz",cards:[{title:"Guests",lived:"Messages go out by hand, at fixed times, when you have time. Questions come in at 11 pm, and the 6 out of 10 on Booking arrives without warning.",with:["AI answers guests on WhatsApp, at any hour.","Predefined messages go out on their own, right through to the review request.","An unhappy guest? You get an alert so you can step in."]},{title:"Teams",lived:"Ten WhatsApp groups, 300 cleaning photos on the phone, âwhat time are you coming by?â sent by hand. Information gets lost, you chase people.",with:["A guest request becomes a task, in the right group, for the right person.","Cleaning schedules follow bookings and reschedule themselves.","Check-out photos arrive timestamped, with no app to install."]},{title:"What's never sold",lived:"Late check-out, breakfast, next year's stay: nobody offers them, because nobody has time. And if the guest comes back, they go through the platform again, commission included.",with:["Upsells and services are offered at the right moment, and easy to pay for.","Your WhatsApp or email campaigns bring the right clients back directly.","Google reviews are tracked and answered from the same place."]}],ctaDemo:"Book a demo",ctaFeatures:"See all features"},onboarding:{title:"A simple start, in three steps.",subtitle:"Switching tools also means changing habits, for you and your teams. We lived it in our own concierge business. That's why onboarding is led by operators, at your pace: we don't digitise everything at once, we move forward in the order that matters to you.",steps:[{title:"1 · Connect",text:"Your WhatsApp number linked to Meta via the official sign-up. Your PMS, payments and connected locks integrated directly. No PMS? No problem, Smartiz manages your bookings directly."},{title:"2 · Set up with you",text:"We start from the way you work: your messages, your arrival instructions, your teams, your services. From booking to check-out, guest communication that sounds like you."},{title:"3 · Let the AI work",text:"It answers guests, creates tasks and sends them to teams, offers and collects payment for your services. You set the rules at the start, and adjust as you go."}],afterTitle:"And then?",afterText:"Dedicated follow-up, and support that answers on WhatsApp. Just like for your guests.",testimonialPlaceholder:"[TESTIMONIAL] client testimonial slot",cta:"Book a demo"},integrations:{title:"Connected to the tools you already use",subtitle:"PMS, channel managers, connected locks, payments: Smartiz integrates with your stack, without replacing it.",logosAriaLabel:"Smartiz integrations",cta:"See all our integrations"},pricing:{title:"Per-reservation pricing. Suited to your cash flow.",subtitle:"Billing at check-in, when the money is already collected. No hidden fees in low season. Three plans, from â¬1.50 to â¬5 per reservation, your first reservations free.",plans:[{name:"Essential",price:"â¬1.50 / reservation",description:"Get started with WhatsApp"},{name:"Advanced",price:"â¬3 / reservation",description:"Everything you need for the guest experience"},{name:"Expert",price:"â¬5 / reservation",description:"Full operational management",badge:"Most popular"}],cta:"See our detailed pricing"},story:{kicker:"By operators, for operators",text:"Smartiz was born in the field. We run our own concierge business, 25 properties in the Swiss Alps, and we needed a tool suited to that daily reality.",cta:"Discover our story"},finalCta:{title:"Ready to take back control?",subtitle:"Start the adventure now by booking a meeting.",ctaDemo:"Book a demo",ctaWhatsapp:"Or ask your question on WhatsApp"},faq:{title:"Frequently asked questions",items:[{question:"Will my guests accept WhatsApp?",answer:"With our clients, every guest replies on WhatsApp from the first message. Those who don't have it receive the same messages by email."},{question:"Does it work with my PMS? And without a PMS?",answer:"Smartiz integrates with your PMS (see the dedicated page). Without a PMS, you manage your bookings directly in Smartiz."},{question:"How does the AI work?",answer:"It answers guests, creates and sends tasks, offers and collects payment for services. You set the rules: what it can promise, when it must ask you, when a human takes over. Everything it does is visible."},{question:"How long does setup take?",answer:"On average, between one and four weeks, depending on the integrations needed and the number of properties. Onboarding is led by operators."},{question:"Could my WhatsApp number get banned?",answer:"No. Smartiz uses Meta's official API, with your verified number."}
95,{question:"How much does it cost?",answer:"From â¬1.50 to â¬5 per reservation depending on the plan, billed at check-in. Your first reservations are free. Details on the Pricing page."},{question:"When do you see the first results?",answer:"From day one: the first stay handled by the AI is time you no longer spend on the phone. Reviews and upsells follow with the season."}]}},navigation:{ariaLabel:"V2 navigation",openMenu:"Open menu",home:"Home",product:"Product",solutions:"Solutions",pricing:"Pricing",clients:"Clients",resources:"Resources",about:"About",demo:"Book a demo",productItems:{whatsapp:"WhatsApp",guestExperience:"Guest experience",operations:"Operations management",revenue:"Increase your revenue",ai:"Smartiz AI",integrations:"Integrations",security:"Security"},productDescriptions:{whatsapp:"The channel your guests and teams already open",guestExperience:"Automated messages, AI answers, alerts, reviews",operations:"Tasks, schedules, reports, owner portal",revenue:"Upsells, loyalty and direct bookings",ai:"It handles daily work and advises you",integrations:"PMS, locks, payments, reviews",security:"Accounts, data, AI, funds"},solutionItems:{conciergeries:"Property managers",hotels:"Hotels and aparthotels",estates:"Estates and gîte parks"},solutionDescriptions:{conciergeries:"From 10 to 500+ properties",hotels:"No extra tool for your teams",estates:"Automate everything while keeping the human touch"}},footer:{description:"The WhatsApp platform for property managers, hotels and gîte parks. Built by operators.",company:"Company",about:"About",clients:"Clients",resources:"Resources",careers:"Become a smartizian",contact:"Contact",support:"Support",legal:"Legal",privacy:"Privacy policy",terms:"Terms of use",cookies:"Cookie preferences",followUs:"Follow us",copyright:"© 2021-2026 smartiz.ai · All rights reserved · Made with â¤ï¸ in Switzerland ð¨ð",disclaimer:"WhatsApp is a trademark of Meta Platforms, Inc. Smartiz is neither affiliated with nor sponsored by WhatsApp or Meta."},product:{whatsapp:{kicker:"Official Meta WhatsApp Business platform",title:"WhatsApp, the channel your guests and teams already open.",intro:"Everyone has a WhatsApp button. Running your entire operation through it, including guests and teams, while following Meta's rules is another profession. That is what Smartiz has built.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: phone with WhatsApp and product screenshot",stats:[{value:"4B",label:"users worldwide"},{value:"98%",label:"of messages read"},{value:"< 3 min",label:"to read a received message, on average"}],blocks:[{title:"An official number, not a workaround",text:"Your number, your verified business and the green tick. Registered through Meta's official sign-up, so it is never banned.",visual:"[VISUAL] Visual: Meta sign-up screen and green tick"},{title:"One number, the whole team",text:"Several people answer on the same number, each with their role. The full history is there and AI is on the front line. You leave for a week; the number keeps running.",visual:"[VISUAL] Visual: shared inbox"},{title:"A frictionless guest experience",text:"Photos, videos, voice notes, maps, PDFs and payment links all flow through the thread. No imposed format or blocked links, unlike booking platform messaging.",visual:"[VISUAL] Visual: rich WhatsApp thread (video, map, link)"},{title:"Your teams already have WhatsApp",text:"Cleaning, maintenance and reception each have their group. Tasks go in and photos come back. Ask a question in the group and AI answers.",visual:"[VISUAL] Visual: team WhatsApp group with an AI response"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},guestExperience:{kicker:"Guest experience",title:"A clear stay for the guest. No message for you to send.",intro:"From booking to the review request, every guest receives the right information at the right time, in your words and with a tailored welcome guide. AI answers the rest. You read; you no longer write.",cta:"Say goodbye to bad reviews",blocks:[{title:"Messages that send themselves",text:"Confirmation, arrival, mid-stay, departure and review request: your messages go at the right time with the access video, code and map. Written once, sent for every stay.",visual:"[VISUAL] Visual: stay message sequence"},{title:"AI that answers like you",text:"It knows your properties, rules and best local addresses. Parking, late departure or broken heating: it answers at any hour. It learns from your replies and adopts your tone.",visual:"[VISUAL] Visual: guest and AI conversation"},{title:"An unhappy guest? You receive an alert",text:"AI reads the tone of every conversation. A complaint or reported issue alerts you during the stay, not after the review.",visual:"[VISUAL] Visual: sentiment alert"},{title:"Reviews requested at the right time from the right guest",text:"Smartiz requests a review when the stay went well, and only then. Your Google and platform ratings rise. Our clients have seen +0.4â
.",visual:"[VISUAL] Visual: rising Google rating"},{title:"A welcome guide they actually read",text:"Created in three minutes, in your colours, translated and updated without reprinting. Sent on WhatsApp at the right time and available throughout the stay.",visual:"[VISUAL] Visual: mobile welcome guide"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},operations:{kicker:"Take back control of your operations",title:"Smartiz coordinates your teams. You get your time back.",intro:"Cleaning, maintenance, arrivals: some clients manage dozens of turnovers a day in high season. Smartiz creates tasks, sends them to the right people on WhatsApp and tracks progress. Owners have their portal. You no longer need to monitor or chase.",cta:"Take back control",blocks:[{title:"AI listens and creates tasks",text:"A guest reports a heating problem at 9 pm: a task is created and sent to maintenance in its group. Cleaning tasks come from bookings and reschedule when dates move.",visual:"[VISUAL] Visual: task created from a conversation"},{title:"A thumbs-up to take it, a tick to finish",text:"Your teams track tasks with simple emojis in WhatsApp. Nothing to install or learn. Each morning, everyone receives their schedule.",visual:"[VISUAL] Visual: WhatsApp group with ð and â
"},{title:"Reports with proof",text:"Check-out photos, inspections and timer: the portal opens from the message without login. Photos arrive timestamped and linked to the booking. No more 300 photos in a group.",visual:"[VISUAL] Visual: cleaning report with photos"},{title:"Teams hand work over",text:"Cleaning reports a broken bulb and the task goes to maintenance. The property is ready and the guest receives their code. Information flows both ways between teams.",visual:"[VISUAL] Visual: property status overview"},{title:"A portal for your owners",text:"Revenue, calendar, statements and annual summary. Owners book their own stay, you approve in one gesture and cleaning reschedules.",visual:"[VISUAL] Visual: owner portal"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},revenue:{kicker:"More revenue per stay",title:"Sell more on every stay, without thinking about it.",intro:"Late check-out, breakfast, an extra night: AI offers them at the right time in the guest's WhatsApp thread and collects payment. Smartiz then keeps in touch like a CRM, with loyalty campaigns, return offers and the next direct booking. You do nothing.",cta:"More revenue, starting now",blocks:[{title:"Services sold in the thread",text:"Your catalogue, your rules. AI offers the right service to the right guest and collects through a link. The related task creates itself: mid-stay cleaning planned, access code extended, basket prepared."},{title:"Guests who return direct",text:"A guest file builds itself, WhatsApp or email campaigns target each segment, and the next booking comes without commission. Our clients have seen +10% direct revenue."},{title:"Reviews that lift your listing",text:"Google reviews are synchronised, replies prepared and your rating rises. A better rating means more direct bookings."}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},ai:{kicker:"AI that manages and advises",title:"AI that does the work. And helps you decide.",intro:"Smartiz AI knows your properties, teams and rules. It handles everyday work securely without you. It also prepares what comes next: what sells, what gets stuck and what needs to change.",cta:"Book a demo",blocks:[{title:"It knows your business",text:"Your properties, rules, teams, services and real-time bookings. It learns from your corrections and, after a few weeks, writes like you.",visual:"[VISUAL] Visual: property information seen by AI"},{title:"It handles everyday work",text:"It answers guests, creates and sends tasks, offers and collects payment for services, and manages codes and cleaning. 95% of messages and tasks without intervention.",visual:"[VISUAL] Visual: a day managed by AI"},{title:"You stay in control",text:"You decide what it can promise, when it must ask you and when someone takes over. Everything it does is visible.",visual:"[VISUAL] Visual: rules and approval queue"},{title:"It advises you",text:"[Block to define with Olivier: AI that analyses your activity, spots what sells and what gets stuck, and proposes decisions.]",visual:"[VISUAL] Visual: to be defined",placeholder:!0},{title:"It works securely",text:"Everything it does follows our data processing agreements: your data is neither sold nor used to train other models.",visual:"[VISUAL] Visual: lock and data"}],testimonial:"[TESTIMONIAL] client testimonial placeholder"},integrations:{kicker:"Integrations",title:"Connected to the tools you already use.",intro:"Our integrations connect Smartiz to your PMS, channel manager, smart locks, payments and reviews. Your bookings come in; Smartiz does the rest. Everything listed here is in production.",cta:"Request an integration",testimonial:"[TESTIMONIAL] client testimonial placeholder",categories:[{title:"PMS and channel managers",logos:["Mews","Guesty","Cloudbeds","Smily","Rental Ready","Avantio","Smoobu","Lodgify","ICNEA","Protel","SuperHote"]},{title:"Locks and key boxes",logos:["igloohome","Nuki","KeyNest"]},{title:"Payments and deposits",logos:["Stripe","Swikly"]},{title:"Reviews, email and more",logos:["Google Business Profile","SendGrid","OneDrive","
95iCal feeds"]}]}},solutions:{conciergeries:{kicker:"For property management companies with 10 to 500+ properties",title:"Your guests and teams are already on WhatsApp. So are you, all day long.",intro:"Your guests write on WhatsApp, your teams work there, and everything still goes through you. Smartiz AI answers guests, coordinates your teams and sells your services on that same WhatsApp. You stay in control, without being tied to your phone.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["Arrival messages are sent manually at a fixed time.","Only you can reply from the WhatsApp number.","A problem at 9 pm gets retyped into the maintenance group.","300 housekeeping photos, no usable proof.","Late checkout and baskets are never offered.","Ten more properties? You need to hire."],smartizTitle:"With Smartiz",blocks:[{title:"For guests",text:"Scheduled messages go out automatically, right through to the review request. AI answers everything else, at any time. An unhappy guest? You receive an alert.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"For teams",text:"A guest request becomes a task in the right WhatsApp group. Your teams claim it with a thumbs-up and complete it with a check mark. Checkout photos arrive timestamped. Nothing to install.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"For revenue",text:"Late checkout, breakfast, an extra night: AI offers them at the right time and collects payment. Then Smartiz stays in touch and brings your guests back to book direct.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],aiBand:{title:"And what about AI?",text:"It knows your properties, rules and team
95s. It handles daily work; you set the rules.",linkLabel:"Smartiz AI"},testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."},hotels:{kicker:"For hotels and aparthotels",title:"Coordinate your teams where they already are. Let AI run the rest.",intro:"Your guests write at all hours, and your teams already coordinate on WhatsApp. Smartiz brings order to both sides: AI answers, passes requests to the right department, sells the restaurant, spa and extra night, and brings guests back. Designed for hospitality: room categories, groups, dining and loyalty.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A guest writes at 11 pm. Who answers?","One request: a call, a note, a group. Sometimes it gets lost.","The bad review arrives after checkout.","A suite guest leaves without a massage or table booking. Nobody offered.","Room service is written on paper that goes to the kitchen."],smartizTitle:"With Smartiz",blocks:[{title:"A front desk that answers at night",text:"AI answers common questions, sends arrival information and passes requests to the right department. Your team reads a summary in the morning.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Teams coordinated without meetings",text:"A guest request becomes a task in the housekeeping, maintenance or restaurant WhatsApp group. Everyone receives their schedule, and ready rooms are flagged. Nobody installs an app.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Guests who return",text:"An unhappy guest? You receive an alert during the stay. Reviews are requested at the right time, from the right guest. Then Smartiz stays in touch with loyalty campaigns, return offers and the next direct booking, commission-free.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"},{title:"The stay sells the table, spa and extra night",text:"A table the day before, a treatment on arrival, late checkout or breakfast: offered at the right time in the conversation and paid by link. Room service is ordered on WhatsApp, with a ticket sent to the kitchen.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",finalTitle:"Book a demo",finalText:"Your first bookings are free."},estates:{kicker:"For estates and multi-cottage parks",title:"Groups welcomed and cottages prepared, without everything going through you.",intro:"Families, weddings, seminars: several properties fill on the same day. Everything is prepared beforehand: group information, payments, linen, codes and rooms. Smartiz automates this preparation, coordinates your teams and answers guests.",cta:"Book a demo",heroVisual:"[VISUAL] Visual to produce: photo of properties / establishment",sectionTitle:"YOUR DAILY REALITY",withoutTitle:"Without Smartiz",dailyTitle:"Your daily reality today",daily:["A group of fifty on Saturday: who sleeps where, who has paid, who ordered linen?","Codes go out one by one on Friday afternoon.","Six cottages to prepare the same morning, with a team waiting for instructions.","On Saturday, the phone rings throughout arrivals.","The preparation sheet changes three times before the stay."],smartizTitle:"With Smartiz",blocks:[{title:"Group bookings tracked end to end",text:"One main contact, one conversation, and Smartiz follows the entire stay: information collected, balance and deposit requested at the right time, options offered and paid. Exchanges happen individually with the group lead. Once you know who sleeps in which property, every guest receives their own sequence: codes, guide and instructions for their cottage.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"A preparation sheet that stays up to date",text:"A stay takes shape over time. Beds, linen, meals, rooms and reserved equipment: the sheet is completed online, and your teams receive the latest version for each cottage in their WhatsApp group.",visual:"[VISUAL] Visual",linkLabel:"Operations management",linkTarget:"operations"},{title:"Everything settled before arrival",text:"Confirmation, group questionnaire, directions, codes generated for every stay and a guide for each property: the journey runs automatically. On Saturday, only arrivals remain.",visual:"[VISUAL] Visual",linkLabel:"Guest experience",linkTarget:"experience"},{title:"Extras sold without thinking about it",text:"Linen, baskets, bikes, late checkout and meals: offered in the conversation at the right time and easy to pay for online.",visual:"[VISUAL] Visual",linkLabel:"Increase your revenue",linkTarget:"revenue"}],testimonial:"[TESTIMONIAL] client testimonial placeholder",clientsLink:"Meet our clients",finalTitle:"Book a demo",finalText:"Your first bookings are free."}},pricingPage:{kicker:"Pricing that fits your activity",title:"You pay at the pace of your business.",intro:"Your success is our success: you pay per booking, at check-in, once the money has already been collected. No per-user licence. In low season, only a very low monthly minimum applies.",plans:[{name:"Essential",subtitle:"Get started with WhatsApp",price:"â¬1.50 / booking",features:[{text:"Unified inbox",included:!0},{text:"WhatsApp and email connection",included:!0},{text:"Digital welcome book",included:!0},{text:"No integrations or automations",included:!1}],cta:"Book a demo"},{name:"Advanced",subtitle:"Guest experience",price:"â¬3 / booking",features:[{text:"Automated guest messages",included:!0},{text:"Automatic AI responses",included:!0},{text:"Operational task detection and management",included:!0},{text:"Guest sentiment analysis",included:!0},{text:"Guest identity verification",included:!0},{text:"Custom integrations",included:!0}],cta:"Book a demo"},{name:"Expert",subtitle:"Complete operations management",price:"â¬5 / booking",badge:"Most popular",features:[{text:"Everything for the guest experience",included:!0},{text:"Complete operations orchestration by Smartiz AI",included:!0},{text:"Dynamic team schedules",included:!0},{text:"Reporting and analytics",included:!0},{text:"Additional modules: owners, upselling, marketing and loyalty",included:!0}],cta:"Book a demo"}],note:"Excluding VAT. Setup fees apply. Monthly billing based on completed bookings, with a monthly minimum when there are no bookings. Reduced fees on cancellations. Fees may apply to connected devices.",custom:{title:"Need a tailored solution?",text:"Groups, multiple companies, high volumes: we build the offer with you.",cta:"Email us"},model:{title:"A unique pricing model",intro:"You pay for what you use, and you can see what you are paying for.",cards:[{title:"To get started",text:"Your first bookings are free while we connect your tools and you see AI working on your real stays."},{title:"Billed at check-in",text:"You pay once the guest has arrived, after payment has been collected. No extra cost during quiet periods."},{title:"Automatic and transparent",text:"Billing happens automatically, and you track your monthly projection from your account. No surprises at month end."}],cta:"Book a demo"}},clientsPage:{title:"Already more than 20,000 stays managed by Smartiz.",titleBefore:"Already more than",titleAfter:"stays managed by Smartiz.",recognitionTitle:"Recognition",recognitionText:"Supported by: Grand Prix Jeune Pousse 2026, RDV de
95s Pros de la Location Saisonnière · Canton of Vaud Innovation Award (FIT) · EHL Innovation Hub",usersTitle:"They use Smartiz",segments:[{title:"Property managers",logos:["[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]","[LOGO: Logo]"]},{title:"Hotels and aparthotels",logos:["[LOGO: Logo]","[LOGO: Logo]"]},{title:"Estates and holiday parks",logos:["[LOGO: Logo]","[LOGO: Logo]"]}],testimonialsTitle:"What our clients say",testimonial:"[TESTIMONIAL] client testimonial placeholder",testimonialsCta:"Book a demo",casesTitle:"Client stories",cases:[{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"},{visual:"[VISUAL] Visual",title:"Client story",text:"Placeholder: before, the trigger and the result.",link:"Read"}],videosTitle:"On video",video:"[VISUAL] Video testimonial",finalTitle:"Start your journey now",finalText:"",finalCta:"Book a demo"},resourcesV2Page:{title:"Resources",subtitle:"Articles, guides and insights for hospitality professionals.",search:"Search articlesâ¦",filters:["All","Short-term rentals","Integrations","Property management","Real estate","Operations","Human resources","Artificial intelligence","Podcasts"],podcastsTitle:"Podcasts",podcastLabel:"Podcast",podcastSource:"Conciergerie de Rêve",podcasts:[{image:"https://i.ytimg.com/vi/phWMighnwBM/hqdefault.jpg",title:"How can AI help optimise your time in short-term rentals?",summary:"Smartiz co-founders Laurent and Olivier explain how AI frees up time for short-term rental operators.",href:"https://www.youtube.com/watch?v=phWMighnwBM"},{image:"https://i.ytimg.com/vi/04G0GjUxogs/hqdefault.jpg",title:"Three visions of property management: who is right?",summary:"Industry professionals discuss property management models and how they are evolving.",href:"https://www.youtube.com/watch?v=04G0GjUxogs"}],listen:"Listen",newsTitle:"Latest news",newsFollow:"Follow Smartiz on LinkedIn",newsPosts:[{text:"[POST LINKEDIN] Smartiz news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Customer story coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Product update coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"},{text:"[POST LINKEDIN] Team news coming soon",date:"[DATE]",url:"https://www.linkedin.com/company/smartiz-io"}],articlesTitle:"Articles",minRead:"min read",emptyTitle:"[Article title]",emptySummary:"[Article summary]",emptyCategory:"[Category]"},aboutPage:{kicker:"Built by operators, for operators",storyTitle:"Our story",story:["It all began in London, when the two co-founders, Olivier and Laurent, met. A shared passion for customer experience and digital transformation led them to work together on large-scale transformations, then reconnect later around the impact of Covid and AI on how we work.","In the meantime, Olivier bought a property in the Swiss Alps and entered the short-term rental business. One thing led to another: owners asked for his help and the activity grew. The same passion for customer experience found its place in personalised WhatsApp communication and thoughtful guest management.","Smartiz began as a tablet in a handful of properties. But guests still preferred WhatsApp.","That was when Laurent joined the journey. The conclusion was clear: WhatsApp was the channel that worked best, and both guest and internal workflows needed automation to keep growing and put AI to work in day-to-day management. No solution on the market did this. Smartiz was born."],storyVisual:"[VISUAL] Visual: founders / Alps photo",storyImageAlt:"Laurent Dumoulin and Olivier Dubuisson at EHL, Lausanne",whyTitle:"Why now",why:[{title:"WhatsApp has become THE channel in tourism",text:"For guests and teams alike, everything already happens there. The question is no longer which channel to choose, but how to make it work at scale."},{title:"AI acts rather than merely providing support",text:"It responds, plans, sells and coordinates securely. Operators who entrust execution to it grow without hiring; the others plateau."},{title:"Operators do not want another tool",text:"Teams will not open another app. The only platform that works is the one living inside what they already use."}],foundersTitle:"The co-founders",founders:[{visual:"[VISUAL] Photo",name:"Olivier Dubuisson",role:"Co-founder and CTO",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/olivierdubuisson/"},{visual:"[VISUAL] Photo",name:"Laurent Dumoulin",role:"Co-founder and business development",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/laurent-dumoulin-smartiz/"}],advisorsTitle:"Our board of advisors",advisors:[{visual:"[VISUAL] Photo",name:"Bernard Jaccard",role:"Business Developer at Swisscom Ventures, board member and startup advisor",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/bjaccard/"},{visual:"[VISUAL] Photo",name:"Yannick Hofmeister",role:"COO at OWT (a Swisscom company), AI, strategy and technology",linkedin:"LinkedIn",href:"https://www.linkedin.com/in/yannickhofmeister/"}],careers:"Join Smartiz",workTitle:"How we work",values:[{title:"Operators first",text:"Every feature runs in our own property management business before release."},{title:"Curiosity",text:"We take the time to understand each client's operations and the sector they work in."},{title:"Experimentation",text:"We build and test quickly, securely and alongside our clients."},{title:"Humility",text:"We always have something to learn from our clients and our own field teams."},{title:"The guest at the centre",text:"We put ourselves in the operator's and guest's shoes so the experience works for both."}],supportersTitle:"They support us",demo:"Book a demo",clients:"Meet our clients"},securityPage:{title:"An autonomous environment that remains under control",intro:"Smartiz acts on your behalf. To keep you in control, we have built a stable and secure infrastru
95cture.",reviewNote:"To be reviewed and completed by Olivier",cards:[{title:"Access and account security",text:"MFA, passkeys, organisation-wide enforcement, session monitoring, and administrator-approved resets."},{title:"Data management and protection",text:"GDPR, encrypted data, never sold, never used to train third-party models; complete export and deletion on request."},{title:"Privacy",text:"Code-locked conversations, role-based access, and token-limited owner and team portals."},{title:"Platform and stability",text:"Signed webhooks, rate limiting, logging, and incident-window review."},{title:"AI",text:"Rules, approval queue, and traceability for every action."}]},live:{refreshIn:"Real time, refresh in {s}s"},visuals:{dashboardAlt:"Smartiz dashboard for managing guests, teams and operations",welcomeAlt:"Phone showing a WhatsApp conversation and a Smartiz satisfaction survey",sentimentAlt:"Guest sentiment analysis in Smartiz detecting dissatisfaction",autopilotAlt:"Guest conversations managed by Smartiz AI",tasksAlt:"Operational task management and sentiment tracking in Smartiz",workflowAlt:"Smartiz workflow editor for defining rules and approvals",experiencesAlt:"Smartiz mobile welcome guide presenting experiences and upsells",solutionHeroAlt:{conciergeries:"Property management professional inside a guest accommodation",hotels:"Hotel professional inside the property",estates:"Holiday park professional outdoors"}},supportersAward:"Grand Prix Jeune Pousse 2026"}},bj={en:eA,fr:tA,de:yj,it:wj},Sj=()=>{const{language:e}=Zk();return{t:bj[e],language:e}};function kj({open:e,onOpenChange:t,onSave:n}){const{t:o}=Sj(),[s,a]=_.useState({necessary:!0,functional:!1,analytics:!1,marketing:!1});_.useEffect(()=>{const p=localStorage.getItem("cookiePreferences");if(p)try{a(JSON.parse(p))}catch(f){console.error("Failed to parse cookie preferences",f)}},[e]);const l=()=>{localStorage.setItem("cookiePreferences",JSON.stringify(s)),localStorage.setItem("cookieConsent",s.analytics||s.marketing?"accepted":"declined"),n?.(),t(!1)},c=()=>{const p={necessary:!0,functional:!0,analytics:!0,marketing:!0};a(p),localStorage.setItem("cookiePreferences",JSON.stringify(p)),localStorage.setItem("cookieConsent","accepted"),n?.(),t(!1)},h=()=>{const p={necessary:!0,functional:!1,analytics:!1,marketing:!1};a(p),localStorage.setItem("cookiePreferences",JSON.stringify(p)),localStorage.setItem("cookieConsent","declined"),n?.(),t(!1)};return C.jsx(nj,{open:e,onOpenChange:t,children:C.jsxs(Dk,{className:"max-w-2xl max-h-[80vh] overflow-y-auto",children:[C.jsxs(jk,{children:[C.jsx($k,{children:o.cookiePreferences.title}),C.jsx(Vk,{children:o.cookiePreferences.description})]}),C.jsxs("div",{className:"space-y-6 py-4",children:[C.jsx("div",{className:"space-y-2",children:C.jsxs("div",{className:"flex items-center justify-between",children:[C.jsxs("div",{className:"space-y-0.5 flex-1",children:[C.jsx(ta,{htmlFor:"necessary",className:"text-base font-semibold",children:o.cookiePreferences.necessary}),C.jsx("p",{className:"text-sm text-muted-foreground",children:o.cookiePreferences.necessaryDesc})]}),C.jsx(ea,{id:"necessary",checked:s.necessary,disabled:!0,"aria-label":o.cookiePreferences.necessary})]})}),C.jsx(Su,{}),C.jsx("div",{className:"space-y-2",children:C.jsxs("div",{className:"flex items-center justify-between",children:[C.jsxs("div",{className:"space-y-0.5 flex-1",children:[C.jsx(ta,{htmlFor:"functional",className:"text-base font-semibold",children:o.cookiePreferences.functional}),C.jsx("p",{className:"text-sm text-muted-foreground",children:o.cookiePreferences.functionalDesc})]}),C.jsx(ea,{id:"functional",checked:s.functional,onCheckedChange:p=>a({...s,functional:p}),"aria-label":o.cookiePreferences.functional})]})}),C.jsx(Su,{}),C.jsx("div",{className:"space-y-2",children:C.jsxs("div",{className:"flex items-center justify-between",children:[C.jsxs("div",{className:"space-y-0.5 flex-1",children:[C.jsx(ta,{htmlFor:"analytics",className:"text-base font-semibold",children:o.cookiePreferences.analyticsTitle}),C.jsx("p",{className:"text-sm text-muted-foreground",children:o.cookiePreferences.analyticsDesc})]}),C.jsx(ea,{id:"analytics",checked:s.analytics,onCheckedChange:p=>a({...s,analytics:p}),"aria-label":o.cookiePreferences.analyticsTitle})]})}),C.jsx(Su,{}),C.jsx("div",{className:"space-y-2",children:C.jsxs("div",{className:"flex items-center justify-between",children:[C.jsxs("div",{className:"space-y-0.5 flex-1",children:[C.jsx(ta,{htmlFor:"marketing",className:"text-base font-semibold",children:o.cookiePreferences.marketingTitle}),C.jsx("p",{className:"text-sm text-muted-foreground",children:o.cookiePreferences.marketingDesc})]}),C.jsx(ea,{id:"marketing",checked:s.marketing,onCheckedChange:p=>a({...s,marketing:p}),"aria-label":o.cookiePreferences.marketingTitle})]})})]}),C.jsxs(Fk,{className:"flex-col sm:flex-row gap-2",children:[C.jsx(qo,{onClick:h,variant:"outline",className:"w-full sm:w-auto",children:o.cookiePreferences.declineAll}),C.jsx(qo,{onClick:c,variant:"outline",className:"w-full sm:w-auto",children:o.cookiePreferences.acceptAll}),C.jsx(qo,{onClick:l,className:"w-full sm:w-auto",children:o.cookiePreferences.savePreferences})]})]})})}const Aj=()=>{const{language:e}=Zk(),t=e==="fr",[n,o]=_.useState(!1),[s,a]=_.useState(!1);_.useEffect(()=>{localStorage.getItem("cookieConsent")||o(!0)},[]);const l=()=>{const f={necessary:!0,functional:!0,analytics:!0,marketing:!0};localStorage.setItem("cookieConsent","accepted"),localStorage.setItem("cookiePreferences",JSON.stringify(f)),o(!1)},c=()=>{const f={necessary:!0,functional:!1,analytics:!1,marketing:!1};localStorage.setItem("cookieConsent","declined"),localStorage.setItem("cookiePreferences",JSON.stringify(f)),o(!1)},h=()=>{a(!0)},p=()=>{o(!1),a(!1)};return n?C.jsxs("div",{className:"fixed bottom-0 left-0 right-0 z-50 p-4 animate-in slide-in-from-bottom",children:[C.jsx(ok,{className:"max-w-4xl mx-auto border-2",children:C.jsxs(ik,{className:"p-6",children:[C.jsx("button",{onClick:c,className:"absolute top-4 right-4 text-muted-foreground hover:text-foreground","aria-label":t?"Fermer et refuser les options":"Close and decline optional storage",children:C.jsx(ff,{className:"w-5 h-5"})}),C.jsxs("div",{className:"pr-8",children:[C.jsx("h3",{className:"text-lg font-semibold mb-2",children:t?"Votre vie privée compte":"Your privacy matters"}),C.jsx("p",{className:"text-sm text-muted-foreground mb-4",children:t?"Nous utilisons le stockage nécessaire au fonctionnement du site. Les options fonctionnelles, analytiques ou marketing ne sont activées que selon votre choix et lorsquâun service correspondant est présent.":"We use necessary storage to operate the site. Functional, analytics, or marketing options apply only when you choose them and a corresponding service is present."}),C.jsxs("div",{className:"flex flex-wrap gap-3",children:[C.jsx(qo,{onClick:l,size:"sm",children:t?"Tout accepter":"Accept all"}),C.jsx(qo,{onClick:c,variant:"outline",size:"sm",children:t?"Refuser les options":"Decline optional"}),C.jsx(qo,{onClick:h,variant:"ghost",size:"sm",children:t?"Gérer les préférences":"Manage preferences"})]})]})]})}),C.jsx(kj,{open:s,onOpenChange:a,onSave:p})]}):null};function xj(){try{return!!JSON.parse(localStorage.getItem("cookiePreferences")||"null")?.analytics}catch{return!1}}function _j(){return _.useEffect(()=>{const e="phc_yvipH2zsRjiqfBZpSVBCZgit8RUBodcuEwVEZyaiKPJP",t="https://eu.i.posthog.com",n="https://eu-assets.i.posthog.com";let o=!1;const s=()=>
95{if(o||!xj())return;o=!0;const f=document.createElement("script");f.async=!0,f.src=`${n}/static/array.js`,f.onload=()=>{window.posthog?.init?.(e,{api_host:t,person_profiles:"identified_only",capture_pageview:"history_change",capture_pageleave:!0,autocapture:!0,enable_heatmaps:!0,capture_exceptions:!0,disable_session_recording:!1,session_recording:{maskAllInputs:!0}})},document.head.appendChild(f)},a=(f,m={})=>window.posthog?.capture?.(f,{path:location.pathname,...m}),l=f=>{const m=f.target?.closest?.("a");if(!m)return;const y=m.href||"",v=(m.textContent||"").trim().slice(0,80);y.includes("calendly.com")?a("book_demo_clicked",{label:v}):y.startsWith("mailto:")?a("email_clicked",{to:y.slice(7),label:v}):/\/(signup)(\/|$|\?)/.test(y)&&a("signup_clicked",{label:v})};document.addEventListener("click",l,!0);let c="";const h=()=>{const f=location.pathname;f!==c&&(c=f,(/tarifs|pricing|calculat/.test(f)||location.hash.includes("pricing"))&&a("pricing_viewed"),/^\/order\//.test(f)&&a("offer_viewed"))};s();const p=window.setInterval(()=>{s(),o&&h()},1e3);return()=>{window.clearInterval(p),document.removeEventListener("click",l,!0)}},[]),null}const Zt="https://smartiz.ai",bp=`${Zt}/og-image.webp`,Ej=["en","fr"];function Yi(e,t){const n=e==="/"?"":e;return t==="en"?`${Zt}${n||"/"}`:`${Zt}/${t}${n}`}function st(e){const{path:t,lang:n,title:o,description:s}=e,a=e.ogType??"website",l=e.ogImage??bp,c=Yi(t,n),h=[{title:o},{name:"description",content:s},{property:"og:title",content:o},{property:"og:description",content:s},{property:"og:image",content:l},{property:"og:type",content:a},{property:"og:url",content:c},{property:"og:site_name",content:"smartiz"},{property:"og:locale",content:n==="fr"?"fr_FR":"en_US"},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:title",content:o},{name:"twitter:description",content:s},{name:"twitter:image",content:l}];e.noindex&&h.push({name:"robots",content:"noindex, nofollow"}),e.extraMeta&&h.push(...e.extraMeta);const p=[{rel:"canonical",href:c}];for(const f of Ej)p.push({rel:"alternate",href:Yi(t,f),hreflang:f});return p.push({rel:"alternate",href:Yi(t,"en"),hreflang:"x-default"}),e.extraLinks&&p.push(...e.extraLinks),{meta:h,links:p}}const nA=`${Zt}/smartiz-logo-purple.svg`,rA=`${Zt}/og-image.webp`;function lc(){return{"@context":"https://schema.org","@type":"Organization",name:"smartiz",alternateName:"getsmartiz",url:Zt,logo:nA,award:"Grand Prix Jeune Pousse 2026 â Rendez-vous des Pros de la Location Saisonnière (organisé par J'affiche Complet)",foundingDate:"2021",description:"Agentic AI hospital
95ity platform providing autonomous WhatsApp-based guest communication for hotels and short-term rentals.",address:{"@type":"PostalAddress",addressLocality:"Lausanne",addressCountry:"CH",streetAddress:"EHL Innovation Hub"},contactPoint:[{"@type":"ContactPoint",email:"[email protected]",contactType:"sales"},{"@type":"ContactPoint",email:"[email protected]",contactType:"customer support"}],sameAs:["https://www.linkedin.com/company/smartiz-ai","https://www.instagram.com/smartiz_collection/","https://www.facebook.com/getsmartiz","https://x.com/getsmartiz","https://www.wikidata.org/wiki/Q140462123"],founder:[{"@type":"Person",name:"Laurent Dumoulin",jobTitle:"Co-Founder & CEO"},{"@type":"Person",name:"Olivier Dubuisson",jobTitle:"Co-Founder & CTO"}]}}function Tj(){return{"@context":"https://schema.org","@type":"WebSite",name:"smartiz",url:Zt,description:"Agentic AI hospitality platform for WhatsApp-based guest communication",publisher:{"@type":"Organization",name:"smartiz",url:Zt},datePublished:"2025-11-13",dateModified:new Date().toISOString()}}function Pj(){return{"@context":"https://schema.org","@type":"Product",name:"smartiz",description:"Agentic AI platform for hospitality that automates guest communication via WhatsApp. Features include sentiment detection, automatic task extraction, and autonomous messaging for hotels and short-term rentals.",image:rA,brand:{"@type":"Organization",name:"smartiz",url:Zt},offers:{"@type":"AggregateOffer",priceCurrency:"CHF",lowPrice:"1.50",highPrice:"5.00",offerCount:3,priceSpecification:{"@type":"UnitPriceSpecification",priceCurrency:"CHF",unitText:"per reservation"}}}}function Cj(){return{"@context":"https://schema.org","@type":"SoftwareApplication",name:"smartiz",applicationCategory:"BusinessApplication",operatingSystem:"Web-based, WhatsApp",description:"Agentic AI platform for hospitality that automates guest communication via WhatsApp. Features include sentiment detection, automatic task extraction, and autonomous messaging for hotels and short-term rentals.",url:Zt,screenshot:rA,featureList:["Autonomous WhatsApp guest messaging","Real-time sentiment detection","Automatic task extraction from messages","AI Copilot and Autopilot modes","Multi-language support","PMS integrations (Apaleo, Guesty, Smoobu, Lodgify)","Smart lock integrations","Payment processing"],offers:{"@type":"Offer",priceSpecification:{"@type":"UnitPriceSpecification",priceCurrency:"CHF",unitText:"per property/unit"}},provider:{"@type":"Organization",name:"smartiz",url:Zt},audience:{"@type":"BusinessAudience",audienceType:"Hotels, Short-term rental operators, Property managers"}}}function Ij(e){return{"@context":"https://schema.org","@type":"FAQPage",mainEntity:e.map(t=>({"@type":"Question",name:t.question,acceptedAnswer:{"@type":"Answer",text:t.answer}}))}}function Rj(e){const t=`${Zt}/${e.section??"news"}/${e.slug}`;return{"@context":"https://schema.org","@type":e.section==="news"?"NewsArticle":"Article",headline:e.title,description:e.description,image:e.cover?[e.cover]:void 0,datePublished:e.publishedAt,dateModified:e.updatedAt??e.publishedAt,author:e.author?{"@type":"Person",name:e.author}:{"@type":"Organization",name:"smartiz"},publisher:{"@type":"Organization",name:"smartiz",logo:{"@type":"ImageObject",url:nA}},mainEntityOfPage:t}}function yf(e){return{"@context":"https://schema.org","@type":"BreadcrumbList",itemListElement:e.map((t,n)=>({"@type":"ListItem",position:n+1,name:t.name,item:`${Zt}${t.path}`}))}}function dn(e){return{type:"application/ld+json",children:JSON.stringify(e)}}const Oj="/assets/index-C5f5nY-v.css",Lj=new jL({defaultOptions:{queries:{staleTime:6e4,refetchOnWindowFocus:!1}}});function oA({children:e}){return C.jsxs("html",{lang:"en",children:[C.jsx("head",{children:C.jsx(jI,{})}),C.jsxs("body",{children:[C.jsx($L,{client:Lj,children:C.jsx(vj,{children:C.jsxs(LN,{children:[C.jsx(pM,{}),C.jsx(qM,{}),C.jsx(Aj,{}),C.jsx(_j,{}),e]})})}),C.jsx(FI,{})]})]})}function zj(){return C.jsx(oA,{children:C.jsx(Fb,{})})}function Nj(){return C.jsx(oA,{children:C.jsxs("main",{style:{padding:"4rem 1.5rem",fontFamily:"system-ui, sans-serif",textAlign:"center"},children:[C.jsx("h1",{style:{fontSize:"2rem",margin:"0 0 0.5rem"},children:"404"}),C.jsx("p",{style:{color:"#666",margin:"0 0 2rem"},children:"The page you were looking for doesn't exist."}),C.jsx("a",{href:"/",style:{color:"#6d28d9",textDecoration:"underline"},children:"Go home"})]})})}const Xe=vI({head:()=>({meta:[{charSet:"UTF-8"},{name:"viewport",content:"width=device-width, initial-scale=1.0"},{name:"author",content:"smartiz"}
95,{name:"keywords",content:"agentic AI hospitality, agentic AI, hospitality AI, WhatsApp hotel management, AI hotel platform, autonomous guest management, smart hospitality"},{property:"og:site_name",content:"smartiz"},{property:"og:image",content:bp},{name:"twitter:card",content:"summary_large_image"},{name:"twitter:site",content:"@smartiz"},{name:"twitter:image",content:bp}],links:[{rel:"stylesheet",href:Oj},{rel:"icon",href:"/favicon.ico"},{rel:"preconnect",href:"https://fonts.googleapis.com"},{rel:"preconnect",href:"https://fonts.gstatic.com",crossorigin:""},{rel:"stylesheet",href:"https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap"},{rel:"sitemap",type:"application/xml",href:`${Zt}/sitemap.xml`}]}),component:zj,notFoundComponent:Nj}),Mj="modulepreload",Dj=function(e){return"/"+e},dw={},re=function(t,n,o){let s=Promise.resolve();if(n&&n.length>0){let h=function(p){return Promise.all(p.map(f=>Promise.resolve(f).then(m=>({status:"fulfilled",value:m}),m=>({status:"rejected",reason:m}))))};document.getElementsByTagName("link");const l=document.querySelector("meta[property=csp-nonce]"),c=l?.nonce||l?.getAttribute("nonce");s=h(n.map(p=>{if(p=Dj(p),p in dw)return;dw[p]=!0;const f=p.endsWith(".css"),m=f?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${p}"]${m}`))return;const y=document.createElement("link");if(y.rel=f?"stylesheet":Mj,f||(y.as="script"),y.crossOrigin="",y.href=p,c&&y.setAttribute("nonce",c),document.head.appendChild(y),f)return new Promise((v,k)=>{y.addEventListener("load",v),y.addEventListener("error",()=>k(new Error(`Unable to preload CSS for ${p}`)))})}))}function a(l){const c=new Event("vite:preloadError",{cancelable:!0});if(c.payload=l,window.dispatchEvent(c),!c.defaultPrevented)throw l}return s.then(l=>{for(const c of l||[])c.status==="rejected"&&a(c.reason);return t().catch(a)})},jj=()=>re(()=>import("./v2-Ji7EMeG-.js"),[]);function iA(e){const{meta:t,links:n}=st({path:"/v2",lang:e,title:e==="fr"?"smartiz â Reprenez le contrôle de vos voyageurs, équipes et propriétaires":"smartiz â Take back control of your guests, teams and owners",description:e==="fr"?"La plateforme WhatsApp tout-en-un des conciergeries, hôtels et gîtes : l'IA répond aux voyageurs, assigne les tâches et vend vos prestations. Elle exécute, vous gardez le contrôle.":"The all-in-one WhatsApp platform for concierge services, hotels and gîtes: AI answers guests, assigns tasks and sells your services. It executes, you stay in control.",noindex:!0});return{meta:t,links:n,scripts:[dn(lc())]}}const Fj=ue("/v2")({component:ne(jj,"component")}),$j=()=>re(()=>import("./terms-BYjB6amp.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12]));function sA(e){return st({path:"/terms",lang:e,title:e==="fr"?"Conditions d'utilisation â smartiz":"Terms of Service â smartiz",description:e==="fr"?"Conditions applicables à l'utilisation de la plateforme smartiz.":"Terms governing the use of the smartiz platform."})}const Vj=ue("/terms")({head:()=>sA("en"),component:ne($j,"component")}),Uj=()=>re(()=>import("./signup-confirmation-CbMP1lBG.js"),__vite__mapDeps([13,14,3,2,4,5,6,7,8,9,10,15]));function aA(e){return st({path:"/signup-confirmation",lang:e,title:e==="fr"?"Confirmation â smartiz":"Sign Up Confirmation â smartiz",description:e==="fr"?"Merci de votre inscription à smartiz.":"Thanks for signing up to smartiz.",noindex:!0})}const Bj=ue("/signup-confirmation")({head:()=>aA("en"),component:ne(Uj,"component")}),Wj=()=>re(()=>import("./signup-n0ZrydXs.js"),__vite__mapDeps([16,17,3,18,2,4,5,6,7,8,9,10,11,19,20,21,22,23]));function lA(e){return st({path:"/signup",lang:e,title:e==="fr"?"Créer un compte â smartiz | Démarrez votre essai IA agentique":"Sign Up â smartiz | Start Your Agentic AI Hospitality Trial",description:e==="fr"?"Créez votre compte smartiz pour activer la plateforme WhatsApp autonome pour hôtels et locations courte durée. Installation rapide, sans carte bancaire.":"Create your smartiz account to activate the autonomous WhatsApp platform for hotels and short-term rentals. Quick setup, no credit card required."})}const qj=ue("/signup")({head:()=>lA("en"),component:ne(Wj,"component")}),Gj=()=>re(()=>import("./reset-password-DDpFD_Yf.js"),__vite__mapDeps([24,3,21,18,11,23])),Hj=ue("/reset-password")({head:()=>{const{meta:e,links:t}=st({path:"/reset-password",lang:"en",title:"Reset password â smartiz",description:"Set a new password for your smartiz account.",noindex:!0});return{meta:e,links:t}},component:ne(Gj,"component")}),Kj=()=>re(()=>import("./profile-completion-BG69_iOa.js"),__vite__mapDeps([25,3,21,18,19,20,26,11,23,27])),Yj=ue("/profile-completion")({head:()=>{const{meta:e,links:t}=st({path:"/profile-completion",lang:"en",title:"Complete your profile â smartiz",description:"Finish setting up your smartiz account.",noindex:!0});return{meta:e,links:t}},component:ne(Kj,"component")}),Jj=()=>re(()=>import("./ping-DC5zWNbR.js"),[]),Qj=ue("/ping")({head:()=>({meta:[{title:"ping â smartiz SSR"},{name:"robots",content:"noindex"}
95]}),component:ne(Jj,"component")}),Xj=()=>re(()=>import("./pending-approval-CTZC7A-F.js"),__vite__mapDeps([28,3,21,29,11,30,31])),Zj=ue("/pending-approval")({head:()=>{const{meta:e,links:t}=st({path:"/pending-approval",lang:"en",title:"Pending approval â smartiz",description:"Your smartiz account is awaiting approval.",noindex:!0});return{meta:e,links:t}},component:ne(Xj,"component")}),eF=()=>re(()=>import("./investors-CFaB-5dP.js"),[]),tF=ue("/investors")({head:()=>{const{meta:e,links:t}=st({path:"/investors",lang:"en",title:"Investors â smartiz",description:"smartiz investor dashboard.",noindex:!0});return{meta:e,links:t}},component:ne(eF,"component")}),nF=()=>re(()=>import("./cookies-BtPYUeJI.js"),__vite__mapDeps([32,33,2,3,4,5,6,7,8,9,10]));function uA(e){return st({path:"/cookies",lang:e,title:e==="fr"?"Politique de confidentialité et cookies â smartiz":"Privacy & Cookie Policy â smartiz",description:e==="fr"?"Découvrez quelles données smartiz collecte, comment elles sont utilisées et partagées, vos droits et vos choix en matière de cookies.":"Learn what personal data smartiz collects, how it is used and shared, your rights, and your cookie and browser-storage choices."})}const rF=ue("/cookies")({head:()=>uA("en"),component:ne(nF,"component")}),Dn={occupancy:.6,avgStayNights:4,messagesPerStay:5,aiRepliesPerStay:3,tasksPerStay:3,minutesPerMessage:2,minutesPerAiReply:2,minutesPerTask:3,hoursPerWorkday:8,minUnits:1,maxUnits:5e3},uU="https://calendly.com/laurent-smartiz-2pzo/45min",oF=["en","fr","de","it"];function cU(e,t=Dn){const n=e*365*t.occupancy/t.avgStayNights,o=t.messagesPerStay*t.minutesPerMessage,s=t.aiRepliesPerStay*t.minutesPerAiReply,a=t.tasksPerStay*t.minutesPerTask,l=o+s+a,c=n*l/60,h=c/12,p=Math.round(h),f=[o,s,a].map(k=>h*k/l),m=f.map(Math.floor);let y=p-m.reduce((k,S)=>k+S,0);const v=f.map((k,S)=>({i:S,r:k-m[S]})).sort((k,S)=>S.r-k.r);for(const{i:k}of v){if(y<=0)break;m[k]++,y--}return{staysPerYear:Math.round(n/10)*10,hoursPerYear:Math.round(c),hoursPerMonth:p,workdaysPerYear:Math.round(c/t.hoursPerWorkday),breakdown:{messages:m[0],ai:m[1],tasks:m[2]}}}const Sp=1e3;function dU(e){const t=Math.min(Sp,Math.max(0,e))/Sp,n=Dn.minUnits*Math.exp(Math.log(Dn.maxUnits/Dn.minUnits)*t);return Math.min(Dn.maxUnits,Math.max(Dn.minUnits,Math.round(n)))}function hU(e){const t=Math.min(Dn.maxUnits,Math.max(Dn.minUnits,e))/Dn.minUnits;return Math.round(Math.log(t)/Math.log(Dn.maxUnits/Dn.minUnits)*Sp)}const iF={fr:{seoTitle:"Calculateur de temps gagné â smartiz",seoDescription:"Combien d'heures par mois smartiz vous ferait gagner ? Saisissez votre nombre de logements ou de chambres et obtenez une estimation immédiate.",title:"Combien d'heures par mois smartiz vous ferait gagner ?",label:"Nombre de logements ou de chambres que vous gérez",button:"Calculer",invalid:"Saisissez un nombre entre 1 et 5 000.",recap:(e,t)=>`Pour ${e} logements, soit environ ${t} séjours par an`,hoursMonth:"heures gagnées par mois",workdays:e=>`soit ${e} jours de travail par an`,bMessages:"Messages automatisés aux voyageurs",bAi:"Réponses de l'IA aux questions des voyageurs",bTasks:"Gestion des tâches opérationnelles",perMonth:"h/mois",explanation:"smartiz envoie les messages de séjour, répond aux voyageurs sur WhatsApp et crée, assigne et suit les tâches de ménage et de maintenance, sans intervention de votre part.",notIncludedTitle:"Ce que le calcul n'inclut pas",notIncluded:["Coordination des équipes et prestataires sur WhatsApp","Procédures et consignes disponibles pour toute l'équipe","Reporting et communication avec les propriétaires"],cta:"Aller plus loin",ctaSub:"Vérifions ce chiffre sur votre parc en 20 minutes",assumptions:"Hypothèses : taux d'occupation de 60 %, durée moyenne de séjour de 4 nuits, 5 messages automatisés, 3 réponses de l'IA et 3 tâches opérationnelles par séjour ; 2 minutes par message, 3 minutes par tâche ; journée de 8 heures. Estimation indicative, à affiner avec votre parc réel.",cityCaption:e=>`Votre ville : ${e}`,mapAttribution:"Fond de carte : © OpenStreetMap contributors"},en:{seoTitle:"Time-Savings Calculator â smartiz",seoDescription:"How many hours a month would smartiz save you? Enter your number of units or rooms and get an instant estimate.",title:"How many hours a month would smartiz save you?",label:"Number of units or rooms you manage",button:"Calculate",invalid:"Enter a number between 1 and 5,000.",recap:(e,t)=>`For ${e} units, about ${t} stays per year`,hoursMonth:"hours saved per month",workdays:e=>`that's ${e} working days per year`,bMessages:"Automated messages to guests",bAi:"AI replies to guest questions",bTasks:"Operational task management",perMonth:"h/month",explanation:"smartiz sends stay messages, answers guests on WhatsApp, and creates, assigns and tracks cleaning and maintenance tasks, with no action needed from you.",notIncludedTitle:"What the calculation doesn't include",notIncluded:["Coordinating teams and service providers on WhatsApp","Procedures and instructions available to the whole team","Reporting and communication with owners"],cta:"Go further",ctaSub:"Let's check this figure on your portfolio in 20 minutes",assumptions:"Assumptions: 60% occupancy, 4-night average stay, 5 automated messages, 3 AI replies and 3 operational tasks per stay; 2 minutes per message, 3 minutes per task; 8-hour workday. Indicative estimate, to be refined with your actual portfolio.",cityCaption:e=>`Your city: ${e}`,mapAttribution:"Map background: © OpenStreetMap contributors"},de:{seoTitle:"Zeitersparnis-Rechner â smartiz",seoDescription:"Wie viele Stunden pro Monat würde Ihnen smartiz sparen? Geben Sie die Anzahl Ihrer Unterkünfte oder Zimmer ein und erhalten Sie sofort eine Schätzung.",title:"Wie viele Stunden pro Monat würde Ihnen smartiz sparen?",label:"Anzahl der Unterkünfte oder Zimmer, die Sie verwalten",button:"Berechnen",invali
95d:"Geben Sie eine Zahl zwischen 1 und 5.000 ein.",recap:(e,t)=>`Für ${e} Unterkünfte, also rund ${t} Aufenthalte pro Jahr`,hoursMonth:"Stunden gespart pro Monat",workdays:e=>`das sind ${e} Arbeitstage pro Jahr`,bMessages:"Automatisierte Nachrichten an Gäste",bAi:"KI-Antworten auf Gästefragen",bTasks:"Verwaltung operativer Aufgaben",perMonth:"Std./Monat",explanation:"smartiz versendet Aufenthaltsnachrichten, beantwortet Gäste auf WhatsApp und erstellt, verteilt und verfolgt Reinigungs- und Wartungsaufgaben, ohne dass Sie eingreifen müssen.",notIncludedTitle:"Was die Berechnung nicht enthält",notIncluded:["Koordination von Teams und Dienstleistern auf WhatsApp","Abläufe und Anweisungen für das ganze Team verfügbar","Reporting und Kommunikation mit Eigentümern"],cta:"Weiter gehen",ctaSub:"Prüfen wir diese Zahl in 20 Minuten für Ihr Portfolio",assumptions:"Annahmen: 60 % Auslastung, durchschnittlicher Aufenthalt von 4 Nächten, 5 automatisierte Nachrichten, 3 KI-Antworten und 3 operative Aufgaben pro Aufenthalt; 2 Minuten pro Nachricht, 3 Minuten pro Aufgabe; 8-Stunden-Arbeitstag. Unverbindliche Schätzung, mit Ihrem tatsächlichen Portfolio zu verfeinern.",cityCaption:e=>`Ihre Stadt: ${e}`,mapAttribution:"Kartenhintergrund: © OpenStreetMap contributors"},it:{seoTitle:"Calcolatore del tempo risparmiato â smartiz",seoDescription:"Quante ore al mese le farebbe risparmiare smartiz? Inserisca il numero di alloggi o camere e ottenga subito una stima.",title:"Quante ore al mese le farebbe risparmiare smartiz?",label:"Numero di alloggi o camere che gestisce",button:"Calcola",invalid:"Inserisca un numero tra 1 e 5.000.",recap:(e,t)=>`Per ${e} alloggi, cioè circa ${t} soggiorni all'anno`,hoursMonth:"ore risparmiate al mese",workdays:e=>`pari a ${e} giorni lavorativi all'anno`,bMessages:"Messaggi automatici agli ospiti",bAi:"Risposte dell'IA alle domande degli ospiti",bTasks:"Gestione delle attività operative",perMonth:"h/mese",explanation:"smartiz invia i messaggi del soggiorno, risponde agli ospiti su WhatsApp e crea, assegna e segue le attività di pulizia e manutenzione, senza alcun intervento da parte sua.",notIncludedTitle:"Cosa il calcolo non include",notIncluded:["Coordinamento di team e fornitori su WhatsApp","Procedure e istruzioni disponibili per tutto il team","Reportistica e comunicazione con i proprietari"],cta:"Approfondire",ctaSub:"Verifichiamo questa cifra sul suo portafoglio in 20 minuti",assumptions:"Ipotesi: tasso di occupazione del 60 %, durata media del soggiorno di 4 notti, 5 messaggi automatici, 3 risposte dell'IA e 3 attività operative per soggiorno; 2 minuti per messaggio, 3 minuti per attività ; giornata di 8 ore. Stima indicativa, da affinare con il suo portafoglio reale.",cityCaption:e=>`La sua città : ${e}`,mapAttribution:"Sfondo cartografico: © OpenStreetMap contributors"}},pU={en:"en-US",fr:"fr-CH",de:"de-CH",it:"it-CH"},sF=()=>re(()=>import("./calculator-CsNCeCE1.js"),__vite__mapDeps([34,35,18,36,7,10,8,31,9,37])),aF={en:"en_US",fr:"fr_FR",de:"de_DE",it:"it_IT"};function cA(e){const t=iF[e],n=st({path:"/calculator",lang:e,title:t.seoTitle,description:t.seoDescription,extraLinks:[{rel:"alternate",href:Yi("/calculator","de"),hreflang:"de"},{rel:"alternate",href:Yi("/calculator","it"),hreflang:"it"}]});return n.meta=n.meta.map(o=>o.property==="og:locale"?{property:"og:locale",content:aF[e]}:o),{...n,scripts:[dn({"@context":"https://schema.org","@type":"WebApplication",name:t.seoTitle,description:t.seoDescription,url:Yi("/calculator",e),inLanguage:e,applicationCategory:"BusinessApplication",operatingSystem:"Web",offers:{"@type":"Offer",price:"0",priceCurrency:"CHF"},provider:{"@type":"Organization",name:"smartiz",url:"https://smartiz.ai"}})]}}const lF=ue("/calculator")({head:()=>cA("en"),component:ne(sF,"component")}),uF=()=>re(()=>import("./calculateur-CkmS33Z_.js"),[]),cF=ue("/calculateur")({head:()=>({meta:[{title:"Calculateur de temps gagné â smartiz"},{name:"robots",content:"noindex, follow"}],links:[{rel:"canonical",href:"https://smartiz.ai/fr/calculator"}]}),component:ne(uF,"component")}),dF=()=>re(()=>import("./application-thank-you-BHAbV_8d.js"),__vite__mapDeps([38,39,3,2,4,5,6,7,8,9,10,15]));function dA(e){return st({path:"/application-thank-you",lang:e,title:e==="fr"?"Merci pour votre candidature â smartiz":"Application Received â smartiz",description:e==="fr"?"Nous avons bien reçu votre candidature.":"We've received your application.",n
95oindex:!0})}const hF=ue("/application-thank-you")({head:()=>dA("en"),component:ne(dF,"component")}),pF=()=>re(()=>import("./admin-login-DdT6vQaJ.js"),__vite__mapDeps([40,3,21,18,29,11,23])),fF=ue("/admin-login")({head:()=>{const{meta:e,links:t}=st({path:"/admin-login",lang:"en",title:"Admin sign in â smartiz",description:"Sign in to the smartiz admin dashboard.",noindex:!0});return{meta:e,links:t}},component:ne(pF,"component")}),mF=()=>re(()=>import("./admin-D7C68v1e.js"),__vite__mapDeps([41,3,21,29,6,7,8,9,36,42,12,18,43,23,44,19,20,45,46,47,48,31,15,49,50,30,26,27,5,51,52,53,22,11])),gF=ue("/admin")({head:()=>{const{meta:e,links:t}=st({path:"/admin",lang:"en",title:"Admin dashboard â smartiz",description:"smartiz admin dashboard.",noindex:!0});return{meta:e,links:t}},component:ne(mF,"component")}),vF=()=>re(()=>import("./about-QUtfb4pw.js"),__vite__mapDeps([54,55,2,3,4,5,6,7,8,9,10,18,19,20,56,11,27]));function hA(e){const{meta:t,links:n}=st({path:"/about",lang:e,title:e==="fr"?"à propos de smartiz â L'IA agentique pour l'hôtellerie":"About smartiz â Agentic AI for Hospitality",description:e==="fr"?"Découvrez la mission de smartiz : rendre la communication invités autonome pour les hôtels et les locations courte durée grâce à l'IA agentique.":"Learn about smartiz's mission to make guest communication autonomous for hotels and short-term rentals with agentic AI."});return{meta:t,links:n,scripts:[dn(lc())]}}const yF=ue("/about")({head:()=>hA("en"),component:ne(vF,"component")}),wF=()=>re(()=>import("./_lang-BhBv6XGu.js"),[]),bF=new Set(["en","fr"]),SF=ue("/$lang")({beforeLoad:({params:e,location:t})=>{const n=(e.lang==="de"||e.lang==="it")&&/^\/(de|it)\/calculator\/?$/.test(t.pathname);if(!bF.has(e.lang)&&!n)throw ba()},component:ne(wF,"component")}),kF=()=>re(()=>import("./index-BjJZxpdC.js"),__vite__mapDeps([57,58,2,3,4,5,6,7,8,9,10,59,47,42,60,61,43,62,50,37,63,64,48,26,51,11,31,44]));function AF(e){const t=e==="fr"?tA:eA;return[t.faq.q1,t.faq.q2,t.faq.q3,t.faq.q4,t.faq.q5,t.faq.q6,t.faq.q7]}function pA(e){const{meta:t,links:n}=st({path:"/",lang:e,title:e==="fr"?"smartiz â Plateforme d'IA agentique pour l'hôtellerie | WhatsApp pour hôtels & locations courte durée":"smartiz - Agentic AI Hospitality Platform | WhatsApp for Hotels & STR",description:e==="fr"?"Découvrez l'IA agentique pour l'hôtellerie avec smartiz â la plateforme WhatsApp autonome pour hôtels et locations courte durée. Détecte le sentiment, gère les tâches et délivre des expériences invités personnalisées automatiquement.":"Experience agentic AI hospital
95ity with smartiz - The autonomous WhatsApp platform for hotels and short-term rentals. Our agentic AI detects sentiment, manages tasks, and delivers personalized guest experiences automatically."});return{meta:t,links:n,scripts:[dn(lc()),dn(Tj()),dn(Cj()),dn(Pj()),dn(Ij(AF(e)))]}}const xF=ue("/")({head:()=>pA("en"),component:ne(kF,"component")}),uc=na({method:"GET"}).handler(zp("0b237a7be9e74c9f44dde30d6460551cc462085552dbe3879f3da6340fa1ed42")),is=na({method:"GET"}).handler(zp("1c91cdf82e6f3bab0c3fd520f9e0e0b7fb3b01d4f7e0176f353fe6182b86cf18")),_F=()=>re(()=>import("./resources.index-CLqn2Yti.js"),__vite__mapDeps([65,66,3,2,4,5,6,7,8,9,10,11,43,18,67,44,46,23,31])),EF=()=>re(()=>import("./resources.index-Bk6iqQ9j.js"),[]),TF=()=>re(()=>import("./resources.index-UtkTDMDf.js"),[]);function fA(e){const{meta:t,links:n}=st({path:"/resources",lang:e,title:e==="fr"?"Ressources smartiz â Guides et bonnes pratiques hôtelières":"smartiz Resources â Hospitality guides and best practices",description:e==="fr"?"Guides, études de cas et bonnes pratiques pour hôtels et locations courte durée.":"Guides, case studies and best practices for hotels and short-term rentals."});return{meta:t,links:n,scripts:[dn(yf([{name:"Home",path:e==="en"?"/":`/${e}`},{name:"Resources",path:e==="en"?"/resources":`/${e}/resources`}]))]}}const PF=ue("/resources/")({loader:()=>is({data:{type:"resource",language:"en"}}),head:()=>fA("en"),errorComponent:ne(TF,"errorComponent"),notFoundComponent:ne(EF,"notFoundComponent"),component:ne(_F,"component")}),CF=()=>re(()=>import("./news.index-CeGh_pES.js"),__vite__mapDeps([68,69,3,2,4,5,6,7,8,9,10,11,43,67,44,23,45,70])),IF=()=>re(()=>import("./news.index-RhpPM3FY.js"),[]),RF=()=>re(()=>import("./news.index-C3pWD8vZ.js"),[]);function mA(e){const{meta:t,links:n}=st({path:"/news",lang:e,title:e==="fr"?"Actualités smartiz â Nouveautés et événements":"smartiz News â Product updates and events",description:e==="fr"?"Restez informé des dernières nouveautés produit, annonces et événements de smartiz.":"Stay up to date with smartiz product updates, announcements and events."});return{meta:t,links:n,scripts:[dn(yf([{name:"Home",path:e==="en"?"/":`/${e}`},{name:"News",path:e==="en"?"/news":`/${e}/news`}
95]))]}}const OF=ue("/news/")({loader:()=>is({data:{type:"news",language:"en"}}),head:()=>mA("en"),errorComponent:ne(RF,"errorComponent"),notFoundComponent:ne(IF,"notFoundComponent"),component:ne(CF,"component")}),LF=()=>re(()=>import("./news._slug-CB43w7Yd.js"),__vite__mapDeps([71,72,3,2,4,5,6,7,8,9,10,11,43,67,44,23,22,31,45,70])),zF=()=>re(()=>import("./news._slug-BKrJ_bW4.js"),[]),NF=()=>re(()=>import("./news._slug-BJR2--RJ.js"),[]);function cc(e){const{section:t,type:n,lang:o,article:s,slug:a}=e;if(!s){const{meta:m,links:y}=st({path:`/${t}/${a}`,lang:o,title:t==="news"?"Article not found â smartiz":"Resource not found â smartiz",description:"The article you were looking for could not be found.",noindex:!0});return{meta:m,links:y}}const l=s.seo_title||s.title,c=s.seo_description||s.excerpt||"",h=s.author&&(s.author.first_name||s.author.last_name)?`${s.author.first_name??""} ${s.author.last_name??""}`.trim():void 0,{meta:p,links:f}=st({path:`/${t}/${a}`,lang:o,title:l,description:c,ogType:"article",ogImage:s.cover_image_url||void 0,extraMeta:[{property:"article:published_time",content:s.publication_date},...s.updated_at?[{property:"article:modified_time",content:s.updated_at}]:[]]});return{meta:p,links:f,scripts:[dn(Rj({title:s.title,description:c,slug:s.slug,cover:s.cover_image_url,publishedAt:s.publication_date,updatedAt:s.updated_at??void 0,author:h,section:n==="news"?"news":"resources"})),dn(yf([{name:"Home",path:o==="en"?"/":`/${o}`},{name:t==="news"?"News":"Resources",path:o==="en"?`/${t}`:`/${o}/${t}`},{name:s.title,path:o==="en"?`/${t}/${a}`:`/${o}/${t}/${a}`}]))]}}const MF=ue("/news/$slug")({loader:async({params:e})=>{const t=await uc({data:{type:"news",slug:e.slug}});if(!t)throw ba();return{article:t}},head:({loaderData:e,params:t})=>cc({section:"news",type:"news",lang:"en",article:e?.article??null,slug:t.slug}),errorComponent:ne(NF,"errorComponent"),notFoundComponent:ne(zF,"notFoundComponent"),component:ne(LF,"component")}),DF=()=>re(()=>import("./resources._slug-Bp0-Mxa9.js"),__vite__mapDeps([73,74,3,2,4,5,6,7,8,9,10,11,43,67,44,23,22,31])),jF=()=>re(()=>import("./resources._slug-CUo0LMVY.js"),[]),FF=()=>re(()=>import("./resources._slug-Dh3k0v1a.js"),[]),$F=ue("/resources/$slug")({loader:async({params:e})=>{const t=await uc({data:{type:"resource",slug:e.slug}});if(!t)throw ba();return{article:t}},head:({loaderData:e,params:t})=>cc({section:"resources",type:"resource",lang:"en",article:e?.article??null,slug:t.slug}),errorComponent:ne(FF,"errorComponent"),notFoundComponent:ne(jF,"notFoundComponent"),component:ne(DF,"component")}),VF=()=>re(()=>import("./order._orderId-DsR65lQ8.js"),__vite__mapDeps([75,3,21,18,49,9,43,26,11,23,50,76,37,
9564,22])),UF=ue("/order/$orderId")({head:()=>{const{meta:e,links:t}=st({path:"/order",lang:"en",title:"Your smartiz proposal",description:"Review and sign your smartiz proposal.",noindex:!0});return{meta:e,links:t}},component:ne(VF,"component")}),BF=()=>re(()=>import("./v2.index-DimNT3jg.js"),__vite__mapDeps([77,78,79,3,4,10,42,61,5,80,59,47,7,60,37,81,51,9,63,43,76])),WF=ue("/v2/")({head:()=>iA("en"),component:ne(BF,"component")});function je(e){const{meta:t,links:n}=st({path:e.path,lang:e.lang,title:e.title,description:e.description,noindex:!0});return{meta:t,links:n,scripts:[dn(lc())]}}const qF=()=>re(()=>import("./v2.tarifs-Cd-46vQG.js"),__vite__mapDeps([82,83,43,84,79,3,4,10,42,61,5,85,9,52])),GF=ue("/v2/tarifs")({head:()=>je({path:"/v2/tarifs",lang:"en",title:"Smartiz â Pricing",description:"One price per booking, billed at check-in. Three plans, with your first bookings free."}),component:ne(qF,"component")}),HF=()=>re(()=>import("./v2.ressources-DkZECGH1.js"),__vite__mapDeps([86,87,3,18,84,79,4,10,42,61,5,43,31,81,46])),KF=ue("/v2/ressources")({loader:()=>is({data:{type:"resource",language:"en"}}),head:()=>je({path:"/v2/ressources",lang:"en",title:"Smartiz â Resources",description:"Articles, guides and podcasts for hospitality professionals."}),component:ne(HF,"component")}),YF=()=>re(()=>import("./v2.integrations-Cq8f7yaw.js"),__vite__mapDeps([88,89,84,79,3,4,10,42,61,5,90,91,53,37,63])),JF=ue("/v2/integrations")({head:()=>je({path:"/v2/integrations",lang:"en",title:"Smartiz â Integrations",description:"PMS, channel managers, locks, payments and reviews: everything currently in production."}),component:ne(YF,"component")}),QF=()=>re(()=>import("./v2.clients-D-Y8Uru8.js"),__vite__mapDeps([92,93,94,79,3,4,10,42,61,5,37,84,95,51,91,53,80])),XF=ue("/v2/clients")({head:()=>je({path:"/v2/clients",lang:"en",title:"Smartiz â Our clients",description:"Already 20,000 stays managed by Smartiz. Property managers, hotels, estates and holiday parks."}),component:ne(QF,"component")}),ZF=()=>re(()=>import("./v2.a-propos-ChUVk9SL.js"),__vite__mapDeps([96,97,84,79,3,4,10,42,61,5,85,56,37])),e$=ue("/v2/a-propos")({head:()=>je({path:"/v2/a-propos",lang:"en",title:"Smartiz â About us",description:"Built by operators, for operators. Our story, our team and how we work."}),component:ne(ZF,"component")}),t$=()=>re(()=>import("./_lang.index-kQjiArlm.js"),__vite__mapDeps([98,58,2,3,4,5,6,7,8,9,10,59,47,42,60,61,43,62,50,37,63,64,48,26,51,11,31,44])),n$=ue("/$lang/")({head:({params:e})=>pA(e.lang==="fr"?"fr":"en"),component:ne(t$,"component")}),r$=()=>re(()=>import("./_lang.v2-Co9dJaAF.js"),[]),o$=ue("/$lang/v2")({component:ne(r$,"component")}),i$=()=>re(()=>import("./_lang.terms-B1b-2rZ0.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10,11,12])),s$=ue("/$lang/terms")({head:({params:e})=>sA(e.lang==="fr"?"fr":"en"),component:ne(i$,"component")}),a$=()=>re(()=>import("./_lang.signup-confirmation-DTq5hMN3.js"),__vite__mapDeps([100,14,3,2,4,5,6,7,8,9,10,15])),l$=ue("/$lang/signup-confirmation")({head:({params:e})=>aA(e.lang==="fr"?"fr":"en"),component:ne(a$,"component")}),u$=()=>re(()=>import("./_lang.signup-BSYhbq3Z.js"),__vite__mapDeps([101,17,3,18,2,4,5,6,7,8,9,10,11,19,20,21,22,23])),c$=ue("/$lang/signup")({head:({params:e})=>lA(e.lang==="fr"?"fr":"en"),component:ne(u$,"component")}),d$=()=>re(()=>import("./_lang.cookies-BaqgA8jz.js"),__vite__mapDeps([102,33,2,3,4,5,6,7,8,9,10])),h$=ue("/$lang/cookies")({head:({params:e})=>uA(e.lang==="fr"?"fr":"en"),component:ne(d$,"component")}),p$=e=>oF.includes(e)?e:"en",f$=()=>re(()=>import("./_lang.calculator-BEjzUT_y.js"),__vite__mapDeps([103,35,18,36,7,10,8,31,9,37])),m$=ue("/$lang/calculator")({head:({params:e})=>cA(p$(e.lang)),component:ne(f$,"component")}),g$=()=>re(()=>import("./_lang.application-thank-you-D0l4W2Lg.js"),__vite__mapDeps([104,39,3,2,4,5,6,7,8,9,10,15])),v$=ue("/$lang/application-thank-you")({head:({params:e})=>dA(e.lang==="fr"?"fr":"en"),component:ne(g$,"component")}),y$=()=>re(()=>import("./_lang.about-BwOuJOt2.js"),__vite__mapDeps([105,55,2,3,4,5,6,7,8,9,10,18,19,20,56,11,27])),w$=ue("/$lang/about")({head:({params:e})=>hA(e.lang==="fr"?"fr":"en"),component:ne(y$,"component")}),b$=()=>re(()=>import("./v2.solutions.parcs-de-gites-B_sggcjM.js"),__vite__mapDeps([106,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),S$=ue("/v2/solutions/parcs-de-gites")({head:()=>je({path:"/v2/solutions/parcs-de-gites",lang:"en",title:"Smartiz â For estates and cottage parks",description:"Groups tracked end to end, up-to-date preparation sheets and coordinated teams."}),component:ne(b$,"component")}),k$=()=>re(()=>import("./v2.solutions.hotels-CdmbmsUC.js"),__vite__mapDeps([108,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),A$=ue("/v2/solutions/hotels")({head:()=>je({path:"/v2/solutions/hotels",lang:"en",title:"Smartiz â For hotels and aparthotels",description:"Coordinate your teams on WhatsApp, let AI answer at night and sell throughout the stay."}),component:ne(k$,"component")}),x$=()=>re(()=>
95import("./v2.solutions.conciergeries-B6lHPF3t.js"),__vite__mapDeps([109,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),_$=ue("/v2/solutions/conciergeries")({head:()=>je({path:"/v2/solutions/conciergeries",lang:"en",title:"Smartiz â For property management companies",description:"Your guests and teams are already on WhatsApp. Smartiz AI answers, coordinates and sells."}),component:ne(x$,"component")}),E$=()=>re(()=>import("./v2.produit.whatsapp-QB8q-_i6.js"),__vite__mapDeps([110,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),T$=ue("/v2/produit/whatsapp")({head:()=>je({path:"/v2/produit/whatsapp",lang:"en",title:"Smartiz â Official WhatsApp Business for hospitality",description:"Your official WhatsApp number, shared by the whole team, with AI on the front line."}),component:ne(E$,"component")}),P$=()=>re(()=>import("./v2.produit.securite-D4LDAnUO.js"),__vite__mapDeps([112,113,84,79,3,4,10,42,61,5])),C$=ue("/v2/produit/securite")({head:()=>je({path:"/v2/produit/securite",lang:"en",title:"Smartiz â Security",description:"Accounts, data, privacy, platform, AI and funds: what we have put in place."}),component:ne(P$,"component")}),I$=()=>re(()=>import("./v2.produit.revenus-CsJhzdqr.js"),__vite__mapDeps([114,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),R$=ue("/v2/produit/revenus")({head:()=>je({path:"/v2/produit/revenus",lang:"en",title:"Smartiz â Increase your revenue",description:"Upsells, loyalty and direct bookings, without thinking about it."}),component:ne(I$,"component")}),O$=()=>re(()=>import("./v2.produit.operations-Cn0db_Dv.js"),__vite__mapDeps([115,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),L$=ue("/v2/produit/operations")({head:()=>je({path:"/v2/produit/operations",lang:"en",title:"Smartiz â Operations management",description:"Tasks, schedules, photo reports and an owner portal, on WhatsApp."}),component:ne(O$,"component")}),z$=()=>re(()=>import("./v2.produit.ia-CalRFmS1.js"),__vite__mapDeps([116,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),N$=ue("/v2/produit/ia")({head:()=>je({path:"/v2/produit/ia",lang:"en",title:"Smartiz â Smartiz AI",description:"AI that knows your business, handles everyday work and helps you decide."}),component:ne(z$,"component")}),M$=()=>re(()=>import("./v2.produit.experience-voyageur-BNPLgKeF.js"),__vite__mapDeps([117,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),D$=ue("/v2/produit/experience-voyageur")({head:()=>je({path:"/v2/produit/experience-voyageur",lang:"en",title:"Smartiz â Guest experience on WhatsApp",description:"Automated messages, AI answers, alerts, reviews and a digital welcome guide."}),component:ne(M$,"component")}),j$=()=>re(()=>import("./_lang.resources.index-CZOHrxfU.js"),__vite__mapDeps([118,66,3,2,4,5,6,7,8,9,10,11,43,18,67,44,46,23,31])),F$=()=>re(()=>import("./_lang.resources.index-BY3_k0es.js"),[]),$$=()=>re(()=>import("./_lang.resources.index-iw-QNGCW.js"),[]),V$=ue("/$lang/resources/")({loader:({params:e})=>is({data:{type:"resource",language:e.lang==="fr"?"fr":"en"}}),head:({params:e})=>fA(e.lang==="fr"?"fr":"en"),errorComponent:ne($$,"errorComponent"),notFoundComponent:ne(F$,"notFoundComponent"),component:ne(j$,"component")}),U$=()=>re(()=>import("./_lang.news.index-DrGitutf.js"),__vite__mapDeps([119,69,3,2,4,5,6,7,8,9,10,11,43,67,44,23,45,70])),B$=()=>re(()=>import("./_lang.news.index-BphdZY_b.js"),[]),W$=()=>re(()=>import("./_lang.news.index-C0H9Pzqe.js"),[]),q$=ue("/$lang/news/")({loader:({params:e})=>is({data:{type:"news",language:e.lang==="fr"?"fr":"en"}}),head:({params:e})=>mA(e.lang==="fr"?"fr":"en"),errorComponent:ne(W$,"errorComponent"),notFoundComponent:ne(B$,"notFoundComponent"),component:ne(U$,"component")}),G$=()=>re(()=>import("./_lang.resources._slug-TVUP90e4.js"),__vite__mapDeps([120,74,3,2,4,5,6,7,8,9,10,11,43,67,44,23,22,31])),H$=()=>re(()=>import("./_lang.resources._slug-CigLFC8Q.js"),[]),K$=ue("/$lang/resources/$slug")({loader:async({params:e})=>{const t=await uc({data:{type:"resource",slug:e.slug}});if(!t)throw ba();return{article:t}},head:({loaderData:e,params:t})=>cc({section:"resources",type:"resource",lang:t.lang==="fr"?"fr":"en",article:e?.article??null,slug:t.slug}),notFoundComponent:ne(H$,"notFoundComponent"),component:ne(G$,"component")}),Y$=()=>re(()=>import("./_lang.news._slug-jNYD7a4a.js"),__vite__mapDeps([121,72,3,2,4,5,6,7,8,9,10,11,43,67,44,23,22,31,45,70])),J$=()=>re(()=>import("./_lang.news._slug-DeN45mdi.js"),[]),Q$=ue("/$lang/news/$slug")({loader:async({params:e})=>{const t=await uc({data:{type:"news",slug:e.slug}});if(!t)throw ba();return{article:t}},head:({loaderData:e,params:t})=>cc({section:"news",type:"news",lang:t.lang==="fr"?"fr":"en",article:e?.article??null,slug:t.slug}),notFoundComponent:ne(J$,"notFoundComponent"),component:ne(Y$,"component")}),X$=()=>re(()=>import("./_lang.v2.index-Ct1QBAA6.js"),__vite__mapDeps([122,78,79,3,4,10,42,61,5,80,59,47,7,60,37,81,51,9,63,43,76])),Z$=ue("/$lang/v2/")({head:({params:e})=>iA(e.lang==="fr"?"fr":"en"),component:ne(X$,"component")}),e2=()=>re(()=>import("./_lang.v2.tarifs-CiTlIOx6.js"),__vite__mapDeps([123,83,43,84,79,3,4,10,42,61,5,85,9,52])),t2
95=ue("/$lang/v2/tarifs")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/tarifs`,lang:t?"fr":"en",title:t?"Smartiz â Tarifs":"Smartiz â Pricing",description:t?"Un prix par réservation, facturé au check-in. Trois formules, vos premières réservations offertes.":"One price per booking, billed at check-in. Three plans, with your first bookings free."})},component:ne(e2,"component")}),n2=()=>re(()=>import("./_lang.v2.ressources-C0uXnVO9.js"),__vite__mapDeps([124,87,3,18,84,79,4,10,42,61,5,43,31,81,46])),r2=ue("/$lang/v2/ressources")({loader:({params:e})=>is({data:{type:"resource",language:e.lang==="fr"?"fr":"en"}}),head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/ressources`,lang:t?"fr":"en",title:t?"Smartiz â Ressources":"Smartiz â Resources",description:t?"Articles, guides et podcasts pour les professionnels de l'hébergement.":"Articles, guides and podcasts for hospitality professionals."})},component:ne(n2,"component")}),o2=()=>re(()=>import("./_lang.v2.integrations-BomW-mpl.js"),__vite__mapDeps([125,89,84,79,3,4,10,42,61,5,90,91,53,37,63])),i2=ue("/$lang/v2/integrations")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/integrations`,lang:t?"fr":"en",title:t?"Smartiz â Intégrations":"Smartiz â Integrations",description:t?"PMS, channel managers, serrures, paiements, avis : tout ce qui est en production.":"PMS, channel managers, locks, payments and reviews: everything currently in production."})},component:ne(o2,"component")}),s2=()=>re(()=>import("./_lang.v2.clients-gX_gq0zM.js"),__vite__mapDeps([126,93,94,79,3,4,10,42,61,5,37,84,95,51,91,53,80])),a2=ue("/$lang/v2/clients")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/clients`,lang:t?"fr":"en",title:t?"Smartiz â Nos clients":"Smartiz â Our clients",description:t?"Déjà 20 000 séjours gérés par Smartiz. Conciergeries, hôtels, domaines et parcs de gîtes.":"Already 20,000 stays managed by Smartiz. Property managers, hotels, estates and holiday parks."})},component:ne(s2,"component")}),l2=()=>re(()=>import("./_lang.v2.a-propos-Ck8Gz3YB.js"),__vite__mapDeps([127,97,84,79,3,4,10,42,61,5,85,56,37])),u2=ue("/$lang/v2/a-propos")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/a-propos`,lang:t?"fr":"en",title:t?"Smartiz â à propos":"Smartiz â About us",description:t?"Par des opérateurs, pour des opérateurs. Notre histoire, notre équipe, notre façon de travailler.":"Built by operators, for operators. Our story, our team and how we work."})},component:ne(l2,"component")}),c2=()=>re(()=>import("./_lang.v2.solutions.parcs-de-gites-DbFpnsVb.js"),__vite__mapDeps([128,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),d2=ue("/$lang/v2/solutions/parcs-de-gites")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/solutions/parcs-de-gites`,lang:t?"fr":"en",title:t?"Smartiz â Pour les domaines et parcs de gîtes":"Smartiz â For estates and cottage parks",description:t?"Groupes suivis de bout en bout, fiches de préparation à jour, équipes coordonnées.":"Groups tracked end to end, up-to-date preparation sheets and coordinated teams."})},component:ne(c2,"component")}),h2=()=>re(()=>import("./_lang.v2.solutions.hotels-DaRQDaqj.js"),__vite__mapDeps([129,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),p2=ue("/$lang/v2/solutions/hotels")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/solutions/hotels`,lang:t?"fr":"en",title:t?"Smartiz â Pour les hôtels et aparthôtels":"Smartiz â For hotels and aparthotels",description:t?"Coordonnez vos équipes sur WhatsApp, laissez l'IA répondre la nuit et vendre le séjour.":"Coordinate your teams on WhatsApp, let AI answer at night and sell throughout the stay."})},component:ne(h2,"component")}),f2=()=>re(()=>import("./_lang.v2.solutions.conciergeries-B9dVTpcW.js"),__vite__mapDeps([130,107,3,84,79,4,10,42,61,5,90,91,53,37,95,51,94,9])),m2=ue("/$lang/v2/solutions/conciergeries")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/solutions/conciergeries`,lang:t?"fr":"en",title:t?"Smartiz â Pour les conciergeries":"Smartiz â For property management companies",description:t?"Vos voyageurs et vos équipes sont déjà sur WhatsApp. L'IA Smartiz répond, coordonne et vend.":"Your guests and team
95s are already on WhatsApp. Smartiz AI answers, coordinates and sells."})},component:ne(f2,"component")}),g2=()=>re(()=>import("./_lang.v2.produit.whatsapp-BsylqLVl.js"),__vite__mapDeps([131,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),v2=ue("/$lang/v2/produit/whatsapp")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/whatsapp`,lang:t?"fr":"en",title:t?"Smartiz â WhatsApp Business officiel pour l'hébergement":"Smartiz â Official WhatsApp Business for hospitality",description:t?"Votre numéro WhatsApp officiel, partagé par toute l'équipe, avec l'IA en première ligne.":"Your official WhatsApp number, shared by the whole team, with AI on the front line."})},component:ne(g2,"component")}),y2=()=>re(()=>import("./_lang.v2.produit.securite-BcFDYN5E.js"),__vite__mapDeps([132,113,84,79,3,4,10,42,61,5])),w2=ue("/$lang/v2/produit/securite")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/securite`,lang:t?"fr":"en",title:t?"Smartiz â Sécurité":"Smartiz â Security",description:t?"Comptes, données, confidentialité, plateforme, IA, fonds : ce que nous avons mis en place.":"Accounts, data, privacy, platform, AI and funds: what we have put in place."})},component:ne(y2,"component")}),b2=()=>re(()=>import("./_lang.v2.produit.revenus-DEKTZFqA.js"),__vite__mapDeps([133,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),S2=ue("/$lang/v2/produit/revenus")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/revenus`,lang:t?"fr":"en",title:t?"Smartiz â Augmentez vos revenus":"Smartiz â Increase your revenue",description:t?"Ventes additionnelles, fidélisation et réservations directes, sans y penser.":"Upsells, loyalty and direct bookings, without thinking about it."})},component:ne(b2,"component")}),k2=()=>re(()=>import("./_lang.v2.produit.operations-DomkH-Uf.js"),__vite__mapDeps([134,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),A2=ue("/$lang/v2/produit/operations")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/operations`,lang:t?"fr":"en",title:t?"Smartiz â Gestion des opérations":"Smartiz â Operations management",description:t?"Tâches, plannings, rapports avec photos, portail propriétaires, sur WhatsApp.":"Tasks, schedules, photo reports and an owner portal, on WhatsApp."})},component:ne(k2,"component")}),x2=()=>re(()=>import("./_lang.v2.produit.ia-C9sCGh_R.js"),__vite__mapDeps([135,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),_2=ue("/$lang/v2/produit/ia")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/ia`,lang:t?"fr":"en",title:t?"Smartiz â L'IA Smartiz":"Smartiz â Smartiz AI",description:t?"Une IA qui connaît votre activité, traite le quotidien et vous aide à décider.":"AI that knows your business, handles everyday work and helps you decide."})},component:ne(x2,"component")}),E2=()=>re(()=>import("./_lang.v2.produit.experience-voyageur-ClwVcbTa.js"),__vite__mapDeps([136,111,84,79,3,4,10,42,61,5,90,91,53,37,95,51,60,62])),T2=ue("/$lang/v2/produit/experience-voyageur")({head:({params:e})=>{const t=e.lang==="fr";return je({path:`/${e.lang}/v2/produit/experience-voyageur`,lang:t?"fr":"en",title:t?"Smartiz â Expérience voyageur sur WhatsApp":"Smartiz â Guest experience on WhatsApp",description:t?"Messages automatiques, IA qui répond, alertes, avis et livret d'accueil.":"Automated messages, AI answers, alerts, reviews and a digital welcome guide."})},component:ne(E2,"component")}),Lt=Fj.update({id:"/v2",path:"/v2",getParentRoute:()=>Xe}),P2=Vj.update({id:"/terms",path:"/terms",getParentRoute:()=>Xe}),C2=Bj.update({id:"/signup-confirmation",path:"/signup-confirmation",getParentRoute:()=>Xe}),I2=qj.update({id:"/signup",path:"/signup",getParentRoute:()=>Xe}),R2=Hj.update({id:"/reset-password",path:"/reset-password",getParentRoute:()=>Xe}),O2=Yj.update({id:"/profile-completion",path:"/profile-completion",getParentRoute:()=>Xe}),L2=Qj.update({id:"/ping",path:"/ping",getParentRoute:()=>Xe}),z2=Zj.update({id:"/pending-approval",path:"/pending-approval",getParentRoute:()=>Xe}),N2=tF.update({id:"/investors",path:"/investors",getParentRoute:()=>Xe}),M2=rF.update({id:"/cookies",path:"/cookies",getParentRoute:()=>Xe}),D2=lF.update({id:"/calculator",path:"/calculator",getParentRoute:()=>Xe}),j2=cF.update({id:"/calculateur",path:"/calculateur",getParentRoute:()=>Xe}),F2=hF.update({id:"/application-thank-you",path:"/application-thank-you",getParentRoute:()=>Xe}),$2=fF.update({id:"/admin-login",path:"/admin-login",getParentRoute:()=>Xe}),V2=gF.update({id:"/admin",path:"/admin",getParentRoute:()=>Xe}),U2=yF.update({id:"/about",path:"/about",getParentRoute:()=>Xe}),en=SF.update({id:"/$lang",path:"/$lang",getParentRoute:()=>Xe}),B2=xF.update({id:"/",path:"/",getParentRoute:()=>Xe}),W2=PF.update({id:"/resources/",path:"/resources/",getParentRoute:()=>Xe}),q2=OF.update({id:"/news/",path:"/news/",getParentRoute:()=>Xe}),G2=$F.update({id:"/resources/$slug",path:"/resources/$slug",getParentRoute:()=>Xe}),H2=UF.update({id:"/order/$orderId",path:"/order/$orderId",getParentRoute:()=>Xe}),K2=MF.update({id:"/news/$slug",path:"/news/$slug",getParentRoute:()=>Xe}),Y2=WF.update({id:"/",path:"/",getParentRoute:()=>Lt}),J2=GF.update({id:"/tarifs",path:"/tarifs",getParentRoute:()=>Lt}),Q2=KF.update({id:"/ressources",path:"/ressources",getParentRoute:()=>Lt}),X2=JF.update({id:"/integrations",path:"/integrations",getParentRoute:()=>Lt}),Z2=XF.update({id:"/clients",path:"/clients",getParentRoute:()=>Lt}),eV=e$.update({id:"/a-propos",path:"/a-propos",getParentRoute:()=>Lt}),tV=n$.update({id:"/",path:"/",getParentRoute:()=>en}),zt=o$.update({id:"/v2",path:"/v2",getParentRoute:()=>en}),nV=s$.update({id:"/terms",path:"/terms",getParentRoute:()=>en}),rV=l$.update({id:"/signup-confirmation",path:"/signup-confirmation",getParentRoute:()=>en}),oV=c$.update({id:"/signup",path:"/signup",getParentRoute:()=>en}),iV=h$.update({id:"/cookies",path:"/cookies",getParentRoute:()=>en}),sV=m$.update({id:"/calculator",path:"/calculator",getParentRoute:()=>en}),aV=v$.update({id:"/application-thank-you",path:"/application-thank-you",getParentRoute:()=>en}),lV=w$.update({id:"/about",path:"/about",getParentRoute:()=>en}),uV=S$.update({id:"/solutions/parcs-de-gites",path:"/solutions/parcs-de-gites",getParentRoute:()=>Lt}),cV=A$.update({id:"/solutions/hotels",path:"/solutions/hotels",getParentRoute:()=>Lt}),dV=_$.update({id:"/solutions/conciergeries",path:"/solutions/conciergeries",getParentRoute:()=>Lt}),hV=T$.update({id:"/produit/whatsapp",path:"/produit/whatsapp",getParentRoute:()=>Lt}),pV=C$.update({id:"/produit/securite",path:"/produit/securite",getParentRoute:()=>Lt}),fV=R$.update({id:"/produit/revenus",path:"/produit/revenus",getParentRoute:()=>Lt}),mV=L$.update({id:"/produit/operations",path:"/produit/operations",getParentRoute:()=>Lt}),gV=N$.update({id:"/produit/ia",path:"/produit/ia",getParentRoute:()=>Lt}),vV=D$.update({id:"/produit/experience-voyageur",path:"/produit/experience-voyageur",getParentRoute:()=>Lt}),yV=V$.update({id:"/resources/",path:"/resources/",getParentRoute:()=>en}),wV=q$.update({id:"/news/",path:"/news/",getParentRoute:()=>en}),bV=K$.update({id:"/resources/$slug",path:"/resources/$slug",getParentRoute:()=>en}),SV=Q$.update({id:"/news/$slug",path:"/news/$slug",getParentRoute:()=>en}),kV=Z$.update({id:"/",path:"/",getParentRoute:()=>zt}),AV=t2.update({id:"/tarifs",path:"/tarifs",getParentRoute:()=>zt}),xV=r2.update({id:"/ressources",path:"/ressources",getParentRoute:()=>zt}),_V=i2.update({id:"/integrations",path:"/integrations",getParentRoute:()=>zt}),EV=a2.update({id:"/clients",path:"/clients",getParentRoute:()=>zt}),TV=u2.update({id:"/a-propos",path:"/a-propos",getParentRoute:()=>zt}),PV=d2.update({id:"/solutions/parcs-de-gites",path:"/solutions/parcs-de-gites",getParentRoute:()=>zt}),CV=p2.update({id:"/solutions/hotels",path:"/solutions/hotels",getParentRoute:()=>zt}),IV=m2.update({id:"/solutions/conciergeries",path:"/solutions/conciergeries",getParentRoute:()=>zt}),RV=v2.update({id:"/produit/whatsapp",path:"/produit/whatsapp",getParentRoute:()=>zt}),OV=w2.update({id:"/produit/securite",path:"/produit/securite",getParentRoute:()=>zt}),LV=S2.update({id:"/produit/revenus",path:"/produit/revenus",getParentRoute:()=>zt}),zV=A2.update({id:"/produit/operations",path:"/produit/operations",getParentRoute:()=>zt}),NV=_2.update({id:"/produit/ia",path:"/produit/ia",getParentRoute:()=>zt}),MV=T2.update({id:"/produit/experience-voyageur",path:"/produit/experience-voyageur",getParentRoute:()=>zt}),DV={LangV2AProposRoute:TV,LangV2ClientsRoute:EV,LangV2IntegrationsRoute:_V,LangV2RessourcesRoute:xV,LangV2TarifsRoute:AV,LangV2IndexRoute:kV,LangV2ProduitExperienceVoyageurRoute:MV,LangV2ProduitIaRoute:NV,LangV2ProduitOperationsRoute:zV,LangV2ProduitRevenusRoute:LV,LangV2ProduitSecuriteRoute:OV,LangV2ProduitWhatsappRoute:RV,LangV2SolutionsConciergeriesRoute:IV,LangV2SolutionsHotelsRoute:CV,LangV2SolutionsPar
95csDeGitesRoute:PV},jV=zt._addFileChildren(DV),FV={LangAboutRoute:lV,LangApplicationThankYouRoute:aV,LangCalculatorRoute:sV,LangCookiesRoute:iV,LangSignupRoute:oV,LangSignupConfirmationRoute:rV,LangTermsRoute:nV,LangV2Route:jV,LangIndexRoute:tV,LangNewsSlugRoute:SV,LangResourcesSlugRoute:bV,LangNewsIndexRoute:wV,LangResourcesIndexRoute:yV},$V=en._addFileChildren(FV),VV={V2AProposRoute:eV,V2ClientsRoute:Z2,V2IntegrationsRoute:X2,V2RessourcesRoute:Q2,V2TarifsRoute:J2,V2IndexRoute:Y2,V2ProduitExperienceVoyageurRoute:vV,V2ProduitIaRoute:gV,V2ProduitOperationsRoute:mV,V2ProduitRevenusRoute:fV,V2ProduitSecuriteRoute:pV,V2ProduitWhatsappRoute:hV,V2SolutionsConciergeriesRoute:dV,V2SolutionsHotelsRoute:cV,V2SolutionsParcsDeGitesRoute:uV},UV=Lt._addFileChildren(VV),BV={IndexRoute:B2,LangRoute:$V,AboutRoute:U2,AdminRoute:V2,AdminLoginRoute:$2,ApplicationThankYouRoute:F2,CalculateurRoute:j2,CalculatorRoute:D2,CookiesRoute:M2,InvestorsRoute:N2,PendingApprovalRoute:z2,PingRoute:L2,ProfileCompletionRoute:O2,ResetPasswordRoute:R2,SignupRoute:I2,SignupConfirmationRoute:C2,TermsRoute:P2,V2Route:UV,NewsSlugRoute:K2,OrderOrderIdRoute:H2,ResourcesSlugRoute:G2,NewsIndexRoute:q2,ResourcesIndexRoute:W2},WV=Xe._addFileChildren(BV);function qV(){return RI({routeTree:WV,scrollRestoration:!0,defaultPreload:"intent"})}async function GV(){const e=await qV();let t;if(xy){const n=await xy.getOptions();n.serializationAdapters=n.serializationAdapters??[],window.__TSS_START_OPTIONS__=n,t=n.serializationAdapters,e.options.defaultSsr=n.defaultSsr}else t=[],window.__TSS_START_OPTIONS__={serializationAdapters:t};return t.push(zC),e.options.serializationAdapters&&t.push(...e.options.serializationAdapters),e.update({basepath:"",serializationAdapters:t}),e.stores.matchesId.get().length||await jC(e),e}var HV=GV;async function KV(){const e=await HV();return window.$_TSR?.h(),e}var Mh;function YV(){return Mh||(Mh=KV()),C.jsx(UC,{promise:Mh,children:e=>C.jsx(zI,{router:e})})}_.startTransition(()=>{v_.hydrateRoot(document,C.jsx(_.StrictMode,{children:C.jsx(YV,{})}))});export{Ok as $,_z as A,qo as B,ok as C,er as D,BD as E,oD as F,fk as G,sk as H,Qu as I,ga as J,Ez as K,ta as L,Tz as M,pf as N,Fb as O,Qe as P,wj as Q,rU as R,Su as S,yj as T,tA as U,Nz as V,eA as W,GM as X,ea as Y,ZD as Z,ej as _,C as a,Lk as a0,B0 as a1,sU as a2,aU as a3,zk as a4,Nk as a5,tj as a6,qL as a7,lU as a8,JV as a9,kj as aA,Et as aB,nt as aC,Pb as aD,Lb as aE,Rb as aF,q0 as aG,uL as aH,wa as aI,re as aJ,uU as aK,hU as aL,Dn as aM,Mb as aN,pU as aO,dU as aP,cU as aQ,JM as aR,KF as aS,m$ as aT,p$ as aU,V$ as aV,q$ as aW,K$ as aX,Q$ as aY,r2 as aZ,kp as aa,TS as ab,Z as ac,nj as ad,Dk as ae,jk as af,$k as ag,Fk as ah,Vk as ai,ff as aj,pL as ak,pw as al,Nb as am,Tj as an,Cj as ao,Pj as ap,Ij as aq,PF as ar,yf as as,OF as at,$F as au,aS as av,Rj as aw,MF as ax,Zk as ay,Sj as az,st as b,ik as c,HM as d,KM as e,YM as f,iF as g,Yi as h,uM as i,dn as j,af as k,kh as l,Ge as m,rs as n,lc as o,es as p,Je as q,_ as r,_t as s,kr as t,$N as u,uS as v,VN as w,oj as x,sf as y,ka as z};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.