PageSourceSearch

https://legal-connect.uk/assets/index-Ca5P62GX.js

js legal-connect.uk collected 2026-10-09 03:56:07 UTC 860,939 bytes, 305 lines download raw bytes

1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/About-C6Vp93mt.js","assets/circle-check-BwJ4SG-R.js","assets/graduation-cap-BzCaqUim.js","assets/scale-Cuo0aljv.js","assets/Contact-CKTp2L8z.js","assets/ContactFormSection-XvoAOXHn.js","assets/types-CGXlcBA6.js","assets/InternationalStudents-DvhS8cXW.js","assets/file-text-BtSMMyOQ.js","assets/house-DvxFHNiN.js","assets/circle-check-big-BQqaOgfC.js","assets/VisaServices-BVIG2mEv.js","assets/shield-nq05zqzh.js","assets/CheckEligibility-5k1mZW2k.js","assets/TrustedSupportSection-Cgcc1x12.js","assets/award-DkBOAgar.js","assets/eligibility-hero-DOpo2Ggn.js","assets/StartApplication-AeYcfO-F.js","assets/Blog-CaHl1c5b.js","assets/useQuery-9Kyj0RIw.js","assets/skeleton-Ba3OXo1B.js","assets/studying-uk-campus-banner.webp.asset-OdPWrBpl.js","assets/BlogPost-CUT2yDko.js","assets/arrow-left-DCuw293u.js","assets/WorkingOnStudentVisa-DOmvCO_Y.js","assets/StudyingInUKGuide-BIM0Yfpw.js","assets/DomainStatus-C7KmbxCY.js","assets/AdminNav-CugC-K5S.js","assets/file-check-_9oXEThA.js","assets/globe-DQv-dq6H.js","assets/ApprovalDashboard-CqpPMqPT.js","assets/index-CKEt9_lC.js","assets/badge-Dp-qYGYM.js","assets/briefcase-Bt2m0Q-b.js","assets/Recruitment-BCGxhF5u.js","assets/upload-B8F702Cj.js","assets/search-BjuBjbgZ.js","assets/RecruitmentAuth-ButCilxn.js","assets/input-RaO9rag3.js","assets/label-DIZCR3nD.js","assets/PostCV-azEI8jaG.js","assets/textarea-B6XXirNN.js","assets/select-VcgKslLb.js","assets/PostJob-Cy7WK4ir.js","assets/BrowseJobs-DeYEspCc.js","assets/BrowseGraduates-jhL9kQJe.js","assets/GraduateRecruitment-DTdVNucH.js","assets/VisaApplication-BFtDcwhG.js","assets/ImmigrationServiceTemplate-0H_rkTvx.js","assets/immigration-services-banner.png.asset-3Tmie-i-.js","assets/FamilyVisa-BFDSCYsW.js","assets/AsylumRefugee-CcpW__YT.js","assets/NationalityCitizenship-B48GSkPr.js","assets/VisaExtension-C-bHybPg.js","assets/AppealReview-AsLQ1heK.js","assets/Overstayers-Cqylgk87.js","assets/ImmigrationEnquiry-BxabCwfh.js","assets/FindACourse-Ci_SOzaw.js","assets/study-uk-banner.png.asset-DdUPnJlE.js","assets/Courses-CYizz6gJ.js","assets/book-open-DEAghFSB.js","assets/StudentFinanceFunding-BAtKGB2H.js","assets/MatureStudents-CGMlaFNV.js","assets/FAQs-Bi3xKVkI.js","assets/accordion-C3RYedEb.js","assets/WhyStudyUK-DrzkyinY.js","assets/wallet-D76o1ayt.js","assets/FindACourse-IDAMRp2s.js","assets/clipboard-list-uEXkuTls.js","assets/EntryRequirements-CCpM4J82.js","assets/UKStudentPageTemplate-lhfELNNI.js","assets/HowToApply-Bs9o8w4d.js","assets/EnglishLanguageRequirements-CzrW-Bbw.js","assets/TuitionFeesScholarships--kuy2GO6.js","assets/pound-sterling-zVO4XsyB.js","assets/StudentVisaInformation-XAtlJty_.js","assets/circle-help-CH7U3KX4.js","assets/AccommodationInUK-DIHF3sg4.js","assets/PreDepartureSupport-C-BC65oy.js","assets/ArrivalSettlingIn-Cypy5ICF.js","assets/FAQs-B8qlfc46.js","assets/StudyFromCoteDivoire-gsIHN4FT.js"])))=>i.map(i=>d[i]);
2var wb=Object.defineProperty;var Gh=t=>{throw TypeError(t)};var bb=(t,e,n)=>e in t?wb(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var ve=(t,e,n)=>bb(t,typeof e!="symbol"?e+"":e,n),Gu=(t,e,n)=>e.has(t)||Gh("Cannot "+n);var R=(t,e,n)=>
vendor: 4,603 bytes, lines 2-10
2(Gu(t,e,"read from private field"),n?n.call(t):e.get(t)),he=(t,e,n)=>e.has(t)?Gh("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n),ne=(t,e,n,i)=>(Gu(t,e,"write to private field"),i?i.call(t,n):e.set(t,n),n),Ze=(t,e,n)=>(Gu(t,e,"access private method"),n);var _a=(t,e,n,i)=>({set _(r){ne(t,e,r,n)},get _(){return R(t,e,i)}});function xb(t,e){for(var n=0;n<e.length;n++){const i=e[n];if(typeof i!="string"&&!Array.isArray(i)){for(const r in i)if(r!=="default"&&!(r in t)){const s=Object.getOwnPropertyDescriptor(i,r);s&&Object.defineProperty(t,r,s.get?s:{enumerable:!0,get:()=>i[r]})}}}return Object.freeze(Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}))}(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const s of r)if(s.type==="childList")for(const o of s.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&i(o)}).observe(document,{childList:!0,subtree:!0});function n(r){const s={};return r.integrity&&(s.integrity=r.integrity),r.referrerPolicy&&(s.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?s.credentials="include":r.crossOrigin==="anonymous"?s.credentials="omit":s.credentials="same-origin",s}function i(r){if(r.ep)return;r.ep=!0;const s=n(r);fetch(r.href,s)}})();function $g(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}var Kg={exports:{}},cu={},zg={exports:{}},le={};/**
3 * @license React
4 * react.production.min.js
5 *
6 * Copyright (c) Facebook, Inc. and its affiliates.
7 *
8 * This source code is licensed under the MIT license found in the
9 * LICENSE file in the root directory of this source tree.
10 */var fa=Symbol.for("react.element"),kb=Symbol.for("react.portal"),Cb=Symbol.for("react.fragment"),Eb=Symbol.for("react.strict_mode"),_b=Symbol.for("react.profiler"),Ab=Symbol.for("react.provider"),Tb=Symbol.for("react.context"),Rb=Symbol.for("react.forward_ref"),Pb=Symbol.for("react.suspense"),Ub=Symbol.for("react.memo"),Ib=Symbol.for("react.lazy"),Qh=Symbol.iterator;function Ob(t){return t===null||typeof t!="object"?null:(t=Qh&&t[Qh]||t["@@iterator"],typeof t=="function"?t:null)}var Vg={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},Bg=Object.assign,Wg={};function Ls(t,e,n){this.props=t,this.context=e,this.refs=Wg,this.updater=n||Vg}Ls.prototype.isReactComponent={};Ls.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=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,t,e,"setState")};Ls.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function Hg(){}Hg.prototype=Ls.prototype;function pp(t,e,n){this.props=t,this.context=e,this.refs=Wg,this.updater=n||Vg}var hp=pp.prototype=new Hg;hp.constructor=pp;Bg(hp,Ls.prototype);hp.isPureReactComponent=!0;var Yh=Array.isArray,Gg=Object.prototype.hasOwnProperty,fp={current:null},Qg={key:!0,ref:!0,__self:!0,__source:!0};function Yg(t,e,n){var i,r={},s=null,o=null;if(e!=null)for(i in e.ref!==void 0&&(o=e.ref),e.key!==void 0&&(s=""+e.key),e)Gg.call(e,i)&&!Qg.hasOwnProperty(i)&&(r[i]=e[i]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var l=Array(a),u=0;u<a;u++)l[u]=arguments[u+2];r.children=l}if(t&&t.defaultProps)for(i in a=t.defaultProps,a)r[i]===void 0&&(r[i]=a[i]);return{$$typeof:fa,type:t,key:s,ref:o,props:r,_owner:fp.current}}function Lb(t,e){return{$$typeof:fa,type:t.type,key:e,ref:t.ref,props:t.props,_owner:t._owner}}function mp(t){return typeof t=="object"&&t!==null&&t.$$typeof===fa}function jb(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(n){return e[n]})}var Jh=/\/+/g;function Qu(t,e){return typeof t=="object"&&t!==null&&t.key!=null?jb(""+t.key):e.toString(36)}function al(t,e,n,i,r){var s=typeof t;(s==="undefined"||s==="boolean")&&(t=null);var o=!1;if(t===null)o=!0;else switch(s){case"string":case"number":o=!0;break;case"object":switch(t.$$typeof){case fa:case kb:o=!0}}if(o)return o=t,r=r(o),t=i===""?"."+Qu(o,0):i,Yh(r)?(n="",t!=null&&(n=t.replace(Jh,"$&/")+"/"),al(r,e,n,"",function(u){return u})):r!=null&&(mp(r)&&(r=Lb(r,n+(!r.key||o&&o.key===r.key?"":(""+r.key).replace(Jh,"$&/")+"/")+t)),e.push(r)),1;if(o=0,i=i===""?".":i+":",Yh(t))for(var a=0;a<t.length;a++){s=t[a];var l=i+Qu(s,a);o+=al(s,e,n,l,r)}
vendor: 4,235 bytes, lines 10-18
10else if(l=Ob(t),typeof l=="function")for(t=l.call(t),a=0;!(s=t.next()).done;)s=s.value,l=i+Qu(s,a++),o+=al(s,e,n,l,r);else if(s==="object")throw e=String(t),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.");return o}function Aa(t,e,n){if(t==null)return t;var i=[],r=0;return al(t,i,"","",function(s){return e.call(n,s,r++)}),i}function Nb(t){if(t._status===-1){var e=t._result;e=e(),e.then(function(n){(t._status===0||t._status===-1)&&(t._status=1,t._result=n)},function(n){(t._status===0||t._status===-1)&&(t._status=2,t._result=n)}),t._status===-1&&(t._status=0,t._result=e)}if(t._status===1)return t._result.default;throw t._result}var ft={current:null},ll={transition:null},qb={ReactCurrentDispatcher:ft,ReactCurrentBatchConfig:ll,ReactCurrentOwner:fp};function Jg(){throw Error("act(...) is not supported in production builds of React.")}le.Children={map:Aa,forEach:function(t,e,n){Aa(t,function(){e.apply(this,arguments)},n)},count:function(t){var e=0;return Aa(t,function(){e++}),e},toArray:function(t){return Aa(t,function(e){return e})||[]},only:function(t){if(!mp(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};le.Component=Ls;le.Fragment=Cb;le.Profiler=_b;le.PureComponent=pp;le.StrictMode=Eb;le.Suspense=Pb;le.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=qb;le.act=Jg;le.cloneElement=function(t,e,n){if(t==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+t+".");var i=Bg({},t.props),r=t.key,s=t.ref,o=t._owner;if(e!=null){if(e.ref!==void 0&&(s=e.ref,o=fp.current),e.key!==void 0&&(r=""+e.key),t.type&&t.type.defaultProps)var a=t.type.defaultProps;for(l in e)Gg.call(e,l)&&!Qg.hasOwnProperty(l)&&(i[l]=e[l]===void 0&&a!==void 0?a[l]:e[l])}var l=arguments.length-2;if(l===1)i.children=n;else if(1<l){a=Array(l);for(var u=0;u<l;u++)a[u]=arguments[u+2];i.children=a}return{$$typeof:fa,type:t.type,key:r,ref:s,props:i,_owner:o}};le.createContext=function(t){return t={$$typeof:Tb,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},t.Provider={$$typeof:Ab,_context:t},t.Consumer=t};le.createElement=Yg;le.createFactory=function(t){var e=Yg.bind(null,t);return e.type=t,e};le.createRef=function(){return{current:null}};le.forwardRef=function(t){return{$$typeof:Rb,render:t}};le.isValidElement=mp;le.lazy=function(t){return{$$typeof:Ib,_payload:{_status:-1,_result:t},_init:Nb}};le.memo=function(t,e){return{$$typeof:Ub,type:t,compare:e===void 0?null:e}};le.startTransition=function(t){var e=ll.transition;ll.transition={};try{t()}finally{ll.transition=e}};le.unstable_act=Jg;le.useCallback=function(t,e){return ft.current.useCallback(t,e)};le.useContext=function(t){return ft.current.useContext(t)};le.useDebugValue=function(){};le.useDeferredValue=function(t){return ft.current.useDeferredValue(t)};le.useEffect=function(t,e){return ft.current.useEffect(t,e)};le.useId=function(){return ft.current.useId()};le.useImperativeHandle=function(t,e,n){return ft.current.useImperativeHandle(t,e,n)};le.useInsertionEffect=function(t,e){return ft.current.useInsertionEffect(t,e)};le.useLayoutEffect=function(t,e){return ft.current.useLayoutEffect(t,e)};le.useMemo=function(t,e){return ft.current.useMemo(t,e)};le.useReducer=function(t,e,n){return ft.current.useReducer(t,e,n)};le.useRef=function(t){return ft.current.useRef(t)};le.useState=function(t){return ft.current.useState(t)};le.useSyncExternalStore=function(t,e,n){return ft.current.useSyncExternalStore(t,e,n)};le.useTransition=function(){return ft.current.useTransition()};le.version="18.3.1";zg.exports=le;var b=zg.exports;const j=$g(b),Xg=xb({__proto__:null,default:j},[b]);/**
11 * @license React
12 * react-jsx-runtime.production.min.js
13 *
14 * Copyright (c) Facebook, Inc. and its affiliates.
15 *
16 * This source code is licensed under the MIT license found in the
17 * LICENSE file in the root directory of this source tree.
18 */var Db=b,Fb=Symbol.for("react.element"),Mb=Symbol.for("react.fragment"),$b=Object.prototype.hasOwnProperty,Kb=Db.__SECRET_INT
vendor: 8,840 bytes, lines 18-34
18ERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,zb={key:!0,ref:!0,__self:!0,__source:!0};function Zg(t,e,n){var i,r={},s=null,o=null;n!==void 0&&(s=""+n),e.key!==void 0&&(s=""+e.key),e.ref!==void 0&&(o=e.ref);for(i in e)$b.call(e,i)&&!zb.hasOwnProperty(i)&&(r[i]=e[i]);if(t&&t.defaultProps)for(i in e=t.defaultProps,e)r[i]===void 0&&(r[i]=e[i]);return{$$typeof:Fb,type:t,key:s,ref:o,props:r,_owner:Kb.current}}cu.Fragment=Mb;cu.jsx=Zg;cu.jsxs=Zg;Kg.exports=cu;var f=Kg.exports,ev={exports:{}},Dt={},tv={exports:{}},nv={};/**
19 * @license React
20 * scheduler.production.min.js
21 *
22 * Copyright (c) Facebook, Inc. and its affiliates.
23 *
24 * This source code is licensed under the MIT license found in the
25 * LICENSE file in the root directory of this source tree.
26 */(function(t){function e(T,P){var D=T.length;T.push(P);e:for(;0<D;){var $=D-1>>>1,V=T[$];if(0<r(V,P))T[$]=P,T[D]=V,D=$;else break e}}function n(T){return T.length===0?null:T[0]}function i(T){if(T.length===0)return null;var P=T[0],D=T.pop();if(D!==P){T[0]=D;e:for(var $=0,V=T.length,B=V>>>1;$<B;){var se=2*($+1)-1,ie=T[se],Pe=se+1,ue=T[Pe];if(0>r(ie,D))Pe<V&&0>r(ue,ie)?(T[$]=ue,T[Pe]=D,$=Pe):(T[$]=ie,T[se]=D,$=se);else if(Pe<V&&0>r(ue,D))T[$]=ue,T[Pe]=D,$=Pe;else break e}}return P}function r(T,P){var D=T.sortIndex-P.sortIndex;return D!==0?D:T.id-P.id}if(typeof performance=="object"&&typeof performance.now=="function"){var s=performance;t.unstable_now=function(){return s.now()}}else{var o=Date,a=o.now();t.unstable_now=function(){return o.now()-a}}var l=[],u=[],c=1,p=null,h=3,d=!1,v=!1,g=!1,w=typeof setTimeout=="function"?setTimeout:null,S=typeof clearTimeout=="function"?clearTimeout:null,m=typeof setImmediate<"u"?setImmediate:null;typeof navigator<"u"&&navigator.scheduling!==void 0&&navigator.scheduling.isInputPending!==void 0&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function y(T){for(var P=n(u);P!==null;){if(P.callback===null)i(u);else if(P.startTime<=T)i(u),P.sortIndex=P.expirationTime,e(l,P);else break;P=n(u)}}function x(T){if(g=!1,y(T),!v)if(n(l)!==null)v=!0,Z(C);else{var P=n(u);P!==null&&te(x,P.startTime-T)}}function C(T,P){v=!1,g&&(g=!1,S(A),A=-1),d=!0;var D=h;try{for(y(P),p=n(l);p!==null&&(!(p.expirationTime>P)||T&&!F());){var $=p.callback;if(typeof $=="function"){p.callback=null,h=p.priorityLevel;var V=$(p.expirationTime<=P);P=t.unstable_now(),typeof V=="function"?p.callback=V:p===n(l)&&i(l),y(P)}else i(l);p=n(l)}if(p!==null)var B=!0;else{var se=n(u);se!==null&&te(x,se.startTime-P),B=!1}return B}finally{p=null,h=D,d=!1}}var E=!1,_=null,A=-1,I=5,L=-1;function F(){return!(t.unstable_now()-L<I)}function q(){if(_!==null){var T=t.unstable_now();L=T;var P=!0;try{P=_(!0,T)}finally{P?X():(E=!1,_=null)}}else E=!1}var X;if(typeof m=="function")X=function(){m(q)};else if(typeof MessageChannel<"u"){var N=new MessageChannel,oe=N.port2;N.port1.onmessage=q,X=function(){oe.postMessage(null)}}else X=function(){w(q,0)};function Z(T){_=T,E||(E=!0,X())}function te(T,P){A=w(function(){T(t.unstable_now())},P)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(T){T.callback=null},t.unstable_continueExecution=function(){v||d||(v=!0,Z(C))},t.unstable_forceFrameRate=function(T){0>T||125<T?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):I=0<T?Math.floor(1e3/T):5},t.unstable_getCurrentPriorityLevel=function(){return h},t.unstable_getFirstCallbackNode=function(){return n(l)},t.unstable_next=function(T){switch(h){case 1:case 2:case 3:var P=3;break;default:P=h}var D=h;h=P;try{return T()}finally{h=D}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(T,P){switch(T){case 1:case 2:case 3:case 4:case 5:break;default:T=3}var D=h;h=T;try{return P()}finally{h=D}},t.unstable_scheduleCallback=function(T,P,D){var $=t.unstable_now();switch(typeof D=="object"&&D!==null?(D=D.delay,D=typeof D=="number"&&0<D?$+D:$):D=$,T){case 1:var V=-1;break;case 2:V=250;break;case 5:V=1073741823;break;case 4:V=1e4;break;default:V=5e3}return V=D+V,T={id:c++,callback:P,priorityLevel:T,startTime:D,expirationTime:V,sortIndex:-1},D>$?(T.sortIndex=D,e(u,T),n(l)===null&&T===n(u)&&(g?(S(A),A=-1):g=!0,te(x,D-$))):(T.sortIndex=V,e(l,T),v||d||(v=!0,Z(C))),T},t.unstable_shouldYield=F,t.unstable_wrapCallback=function(T){var P=h;return function(){var D=h;h=P;try{return T.apply(this,arguments)}finally{h=D}}}})(nv);tv.exports=nv;var Vb=tv.exports;/**
27 * @license React
28 * react-dom.production.min.js
29 *
30 * Copyright (c) Facebook, Inc. and its affiliates.
31 *
32 * This source code is licensed under the MIT license found in the
33 * LICENSE file in the root directory of this source tree.
34 */var Bb=b,qt=Vb;function U(t){for(var e="https://reactjs.org/docs/error-decoder.html?invariant="+t,n=1;n<arguments.length;n++)e+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+t+"; visit "+e+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var iv=new Set,No={};function Ir(t,e){Cs(t,e),Cs(t+"Capture",e)}function Cs(t,e){for(No[t]=e,t=0;t<e.length;t++)iv.add(e[t])}var ni=!(typeof window>"u"||typeof window.document>"u"||typeof window.document.createElement>"u"),Kc=Object.prototype.hasOwnProperty,Wb=/^[: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]*$/,Xh={},Zh={};function Hb(t){return Kc.call(Zh,t)?!0:Kc.call(Xh,t)?!1:Wb.test(t)?Zh[t]=!0:(Xh[t]=!0,!1)}function Gb(t,e,n,i){if(n!==null&&n.type===0)return!1;switch(typeof e){case"function":case"symbol":return!0;case"boolean":return i?!1:n!==null?!n.acceptsBooleans:(t=t.toLowerCase().slice(0,5),t!=="data-"&&t!=="aria-");default:return!1}}function Qb(t,e,n,i){if(e===null||typeof e>"u"||Gb(t,e,n,i))return!0;if(i)return!1;if(n!==null)switch(n.type){case 3:return!e;case 4:return e===!1;case 5:return isNaN(e);case 6:return isNaN(e)||1>e}return!1}function mt(t,e,n,i,r,s,o){this.acceptsBooleans=e===2||e===3||e===4,this.attributeName=i,this.attributeNamespace=r,this.mustUseProperty=n,this.propertyName=t,this.type=e,this.sanitizeURL=s,this.removeEmptyString=o}var Je={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach(function(t){Je[t]=new mt(t,0,!1,t,null,!1,!1)});[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach(function(t){var e=t[0];Je[e]=new mt(e,1,!1,t[1],null,!1,!1)});["contentEditable","draggable","spellCheck","value"].forEach(function(t){Je[t]=new mt(t,2,!1,t.toLowerCase(),null,!1,!1)});["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach(function(t){Je[t]=new mt(t,2,!1,t,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(t){Je[t]=new mt(t,3,!1,t.toLowerCase(),null,!1,!1)});["checked","multiple","muted","selected"].forEach(function(t){Je[t]=new mt(t,3,!0,t,null,!1,!1)});["capture","download"].forEach(function(t){Je[t]=new mt(t,4,!1,t,null,!1,!1)});["cols","rows","size","span"].forEach(function(t){Je[t]=new mt(t,6,!1,t,null,!1,!1)});["rowSpan","start"].forEach(function(t){Je[t]=new mt(t,5,!1,t.toLowerCase(),null,!1,!1)});var gp=/[\-:]([a-z])/g;function vp(t){return t[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
34-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(t){var e=t.replace(gp,vp);Je[e]=new mt(e,1,!1,t,null,!1,!1)});"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach(function(t){var e=t.replace(gp,vp);Je[e]=new mt(e,1,!1,t,"http://www.w3.org/1999/xlink",!1,!1)});["xml:base","xml:lang","xml:space"].forEach(function(t){var e=t.replace(gp,vp);Je[e]=new mt(e,1,!1,t,"http://www.w3.org/XML/1998/namespace",!1,!1)});["tabIndex","crossOrigin"].forEach(function(t){Je[t]=new mt(t,1,!1,t.toLowerCase(),null,!1,!1)});Je.xlinkHref=new mt("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1);["src","href","action","formAction"].forEach(function(t){Je[t]=new mt(t,1,!1,t.toLowerCase(),null,!0,!0)});function yp(t,e,n,i){var r=Je.hasOwnProperty(e)?Je[e]:null;(r!==null?r.type!==0:i||!(2<e.length)||e[0]!=="o"&&e[0]!=="O"||e[1]!=="n"&&e[1]!=="N")&&(Qb(e,n,r,i)&&(n=null),i||r===null?Hb(e)&&(n===null?t.removeAttribute(e):t.setAttribute(e,""+n)):r.mustUseProperty?t[r.propertyName]=n===null?r.type===3?!1:"":n:(e=r.attributeName,i=r.attributeNamespace,n===null?t.removeAttribute(e):(r=r.type,n=r===3||r===4&&n===!0?"":""+n,i?t.setAttributeNS(i,e,n):t.setAttribute(e,n))))}var li=Bb.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,Ta=Symbol.for("react.element"),Gr=Symbol.for("react.portal"),Qr=Symbol.for("react.fragment"),Sp=Symbol.for("react.strict_mode"),zc=Symbol.for("react.profiler"),rv=Symbol.for("react.provider"),sv=Symbol.for("react.context"),wp=Symbol.for("react.forward_ref"),Vc=Symbol.for("react.suspense"),Bc=Symbol.for("react.suspense_list"),bp=Symbol.for("react.memo"),Si=Symbol.for("react.lazy"),ov=Symbol.for("react.offscreen"),ef=Symbol.iterator;function Xs(t){return t===null||typeof t!="object"?null:(t=ef&&t[ef]||t["@@iterator"],typeof t=="function"?t:null)}var Te=Object.assign,Yu;function vo(t){if(Yu===void 0)try{throw Error()}catch(n){var e=n.stack.trim().match(/\n( *(at )?)/);Yu=e&&e[1]||""}return`
35`+Yu+t}var Ju=!1;function Xu(t,e){if(!t||Ju)return"";Ju=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(e)if(e=function(){throw Error()},Object.defineProperty(e.prototype,"props",{set:function(){throw Error()}}),typeof Reflect=="object"&&Reflect.construct){try{Reflect.construct(e,[])}catch(u){var i=u}Reflect.construct(t,[],e)}else{try{e.call()}catch(u){i=u}t.call(e.prototype)}else{try{throw Error()}catch(u){i=u}t()}}catch(u){if(u&&i&&typeof u.stack=="string"){for(var r=u.stack.split(`
36`),s=i.stack.split(`
37`),o=r.length-1,a=s.length-1;1<=o&&0<=a&&r[o]!==s[a];)a--;for(;1<=o&&0<=a;o--,a--)if(r[o]!==s[a]){if(o!==1||a!==1)do if(o--,a--,0>a||r[o]!==s[a]){var l=`
38`+r[o].replace(" at new "," at ");return t.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",t.displayName)),l}while(1<=o&&0<=a);break}}}finally{Ju=!1,Error.prepareStackTrace=n}return(t=t?t.displayName||t.name:"")?vo(t):""}function Yb(t){switch(t.tag){case 5:return vo(t.type);case 16:return vo("Lazy");case 13:return vo("Suspense");case 19:return vo("SuspenseList");case 0:case 2:case 15:return t=Xu(t.type,!1),t;case 11:return t=Xu(t.type.render,!1),t;case 1:return t=Xu(t.type,!0),t;default:return""}}function Wc(t){if(t==null)return null;if(typeof t=="function")return t.displayName||t.name||null;if(typeof t=="string")return t;switch(t){case Qr:return"Fragment";case Gr:return"Portal";case zc:return"Profiler";case Sp:return"StrictMode";case Vc:return"Suspense";case Bc:return"SuspenseList"}if(typeof t=="object")switch(t.$$typeof){case sv:return(t.displayName||"Context")+".Consumer";case rv:return(t._context.displayName||"Context")+".Provider";case wp:var e=t.render;return t=t.displayName,t||(t=e.displayName||e.name||"",t=t!==""?"ForwardRef("+t+")":"ForwardRef"),t;case bp:return e=t.displayName||null,e!==null?e:Wc(t.type)||"Memo";case Si:e=t._payload,t=t._init;try{return Wc(t(e))}catch{}}return null}function Jb(t){var e=t.type;switch(t.tag){case 24:return"Cache";case 9:return(e.displayName||"Context")+".Consumer";case 10:return(e._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return t=e.render,t=t.displayName||t.name||"",e.displayName||(t!==""?"ForwardRef("+t+")":"ForwardRef");case 7:return"Fragment";case 5:return e;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return Wc(e);case 8:return e===Sp?"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 e=="function")return e.displayName||e.name||null;if(typeof e=="string")return e}return null}function Ki(t){switch(typeof t){case"boolean":case"number":case"string":case"undefined":return t;case"object":return t;default:return""}}function av(t){var e=t.type;
vendor: 15,745 bytes, line 38
38return(t=t.nodeName)&&t.toLowerCase()==="input"&&(e==="checkbox"||e==="radio")}function Xb(t){var e=av(t)?"checked":"value",n=Object.getOwnPropertyDescriptor(t.constructor.prototype,e),i=""+t[e];if(!t.hasOwnProperty(e)&&typeof n<"u"&&typeof n.get=="function"&&typeof n.set=="function"){var r=n.get,s=n.set;return Object.defineProperty(t,e,{configurable:!0,get:function(){return r.call(this)},set:function(o){i=""+o,s.call(this,o)}}),Object.defineProperty(t,e,{enumerable:n.enumerable}),{getValue:function(){return i},setValue:function(o){i=""+o},stopTracking:function(){t._valueTracker=null,delete t[e]}}}}function Ra(t){t._valueTracker||(t._valueTracker=Xb(t))}function lv(t){if(!t)return!1;var e=t._valueTracker;if(!e)return!0;var n=e.getValue(),i="";return t&&(i=av(t)?t.checked?"true":"false":t.value),t=i,t!==n?(e.setValue(t),!0):!1}function Cl(t){if(t=t||(typeof document<"u"?document:void 0),typeof t>"u")return null;try{return t.activeElement||t.body}catch{return t.body}}function Hc(t,e){var n=e.checked;return Te({},e,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:n??t._wrapperState.initialChecked})}function tf(t,e){var n=e.defaultValue==null?"":e.defaultValue,i=e.checked!=null?e.checked:e.defaultChecked;n=Ki(e.value!=null?e.value:n),t._wrapperState={initialChecked:i,initialValue:n,controlled:e.type==="checkbox"||e.type==="radio"?e.checked!=null:e.value!=null}}function uv(t,e){e=e.checked,e!=null&&yp(t,"checked",e,!1)}function Gc(t,e){uv(t,e);var n=Ki(e.value),i=e.type;if(n!=null)i==="number"?(n===0&&t.value===""||t.value!=n)&&(t.value=""+n):t.value!==""+n&&(t.value=""+n);else if(i==="submit"||i==="reset"){t.removeAttribute("value");return}e.hasOwnProperty("value")?Qc(t,e.type,n):e.hasOwnProperty("defaultValue")&&Qc(t,e.type,Ki(e.defaultValue)),e.checked==null&&e.defaultChecked!=null&&(t.defaultChecked=!!e.defaultChecked)}function nf(t,e,n){if(e.hasOwnProperty("value")||e.hasOwnProperty("defaultValue")){var i=e.type;if(!(i!=="submit"&&i!=="reset"||e.value!==void 0&&e.value!==null))return;e=""+t._wrapperState.initialValue,n||e===t.value||(t.value=e),t.defaultValue=e}n=t.name,n!==""&&(t.name=""),t.defaultChecked=!!t._wrapperState.initialChecked,n!==""&&(t.name=n)}function Qc(t,e,n){(e!=="number"||Cl(t.ownerDocument)!==t)&&(n==null?t.defaultValue=""+t._wrapperState.initialValue:t.defaultValue!==""+n&&(t.defaultValue=""+n))}var yo=Array.isArray;function as(t,e,n,i){if(t=t.options,e){e={};for(var r=0;r<n.length;r++)e["$"+n[r]]=!0;for(n=0;n<t.length;n++)r=e.hasOwnProperty("$"+t[n].value),t[n].selected!==r&&(t[n].selected=r),r&&i&&(t[n].defaultSelected=!0)}else{for(n=""+Ki(n),e=null,r=0;r<t.length;r++){if(t[r].value===n){t[r].selected=!0,i&&(t[r].defaultSelected=!0);return}e!==null||t[r].disabled||(e=t[r])}e!==null&&(e.selected=!0)}}function Yc(t,e){if(e.dangerouslySetInnerHTML!=null)throw Error(U(91));return Te({},e,{value:void 0,defaultValue:void 0,children:""+t._wrapperState.initialValue})}function rf(t,e){var n=e.value;if(n==null){if(n=e.children,e=e.defaultValue,n!=null){if(e!=null)throw Error(U(92));if(yo(n)){if(1<n.length)throw Error(U(93));n=n[0]}e=n}e==null&&(e=""),n=e}t._wrapperState={initialValue:Ki(n)}}function cv(t,e){var n=Ki(e.value),i=Ki(e.defaultValue);n!=null&&(n=""+n,n!==t.value&&(t.value=n),e.defaultValue==null&&t.defaultValue!==n&&(t.defaultValue=n)),i!=null&&(t.defaultValue=""+i)}function sf(t){var e=t.textContent;e===t._wrapperState.initialValue&&e!==""&&e!==null&&(t.value=e)}function dv(t){switch(t){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 Jc(t,e){return t==null||t==="http://www.w3.org/1999/xhtml"?dv(e):t==="http://www.w3.org/2000/svg"&&e==="foreignObject"?"http://www.w3.org/1999/xhtml":t}var Pa,pv=function(t){return typeof MSApp<"u"&&MSApp.execUnsafeLocalFunction?function(e,n,i,r){MSApp.execUnsafeLocalFunction(function(){return t(e,n,i,r)})}:t}(function(t,e){if(t.namespaceURI!=="http://www.w3.org/2000/svg"||"innerHTML"in t)t.innerHTML=e;else{for(Pa=Pa||document.createElement("div"),Pa.innerHTML="<svg>"+e.valueOf().toString()+"</svg>",e=Pa.firstChild;t.firstChild;)t.removeChild(t.firstChild);for(;e.firstChild;)t.appendChild(e.firstChild)}});function qo(t,e){if(e){var n=t.firstChild;if(n&&n===t.lastChild&&n.nodeType===3){n.nodeValue=e;return}}t.textContent=e}var ko={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},Zb=["Webkit","ms","Moz","O"];Object.keys(ko).forEach(function(t){Zb.forEach(function(e){e=e+t.charAt(0).toUpperCase()+t.substring(1),ko[e]=ko[t]})});function hv(t,e,n){return e==null||typeof e=="boolean"||e===""?"":n||typeof e!="number"||e===0||ko.hasOwnProperty(t)&&ko[t]?(""+e).trim():e+"px"}function fv(t,e){t=t.style;for(var n in e)if(e.hasOwnProperty(n)){var i=n.indexOf("--")===0,r=hv(n,e[n],i);n==="float"&&(n="cssFloat"),i?t.setProperty(n,r):t[n]=r}}var e0=Te({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 Xc(t,e){if(e){if(e0[t]&&(e.children!=null||e.dangerouslySetInnerHTML!=null))throw Error(U(137,t));if(e.dangerouslySetInnerHTML!=null){if(e.children!=null)throw Error(U(60));if(typeof e.dangerouslySetInnerHTML!="object"||!("__html"in e.dangerouslySetInnerHTML))throw Error(U(61))}if(e.style!=null&&typeof e.style!="object")throw Error(U(62))}}function Zc(t,e){if(t.indexOf("-")===-1)return typeof e.is=="string";switch(t){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 ed=null;function xp(t){return t=t.target||t.srcElement||window,t.correspondingUseElement&&(t=t.correspondingUseElement),t.nodeType===3?t.parentNode:t}var td=null,ls=null,us=null;function of(t){if(t=va(t)){if(typeof td!="function")throw Error(U(280));var e=t.stateNode;e&&(e=mu(e),td(t.stateNode,t.type,e))}}function mv(t){ls?us?us.push(t):us=[t]:ls=t}function gv(){if(ls){var t=ls,e=us;if(us=ls=null,of(t),e)for(t=0;t<e.length;t++)of(e[t])}}function vv(t,e){return t(e)}function yv(){}var Zu=!1;function Sv(t,e,n){if(Zu)return t(e,n);Zu=!0;try{return vv(t,e,n)}finally{Zu=!1,(ls!==null||us!==null)&&(yv(),gv())}}function Do(t,e){var n=t.stateNode;if(n===null)return null;var i=mu(n);if(i===null)return null;n=i[e];e:switch(e){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(i=!i.disabled)||(t=t.type,i=!(t==="button"||t==="input"||t==="select"||t==="textarea")),t=!i;break e;default:t=!1}if(t)return null;if(n&&typeof n!="function")throw Error(U(231,e,typeof n));return n}var nd=!1;if(ni)try{var Zs={};Object.defineProperty(Zs,"passive",{get:function(){nd=!0}}),window.addEventListener("test",Zs,Zs),window.removeEventListener("test",Zs,Zs)}catch{nd=!1}function t0(t,e,n,i,r,s,o,a,l){var u=Array.prototype.slice.call(arguments,3);try{e.apply(n,u)}catch(c){this.onError(c)}}var Co=!1,El=null,_l=!1,id=null,n0={onError:function(t){Co=!0,El=t}};function i0(t,e,n,i,r,s,o,a,l){Co=!1,El=null,t0.apply(n0,arguments)}function r0(t,e,n,i,r,s,o,a,l){if(i0.apply(this,arguments),Co){if(Co){var u=El;Co=!1,El=null}else throw Error(U(198));_l||(_l=!0,id=u)}}function Or(t){var e=t,n=t;if(t.alternate)for(;e.return;)e=e.return;else{t=e;do e=t,e.flags&4098&&(n=e.return),t=e.return;while(t)}return e.tag===3?n:null}function wv(t){if(t.tag===13){var e=t.memoizedState;if(e===null&&(t=t.alternate,t!==null&&(e=t.memoizedState)),e!==null)return e.dehydrated}return null}function af(t){if(Or(t)!==t)throw Error(U(188))}function s0(t){var e=t.alternate;if(!e){if(e=Or(t),e===null)throw Error(U(188));return e!==t?null:t}for(var n=t,i=e;;){var r=n.return;if(r===null)break;var s=r.alternate;if(s===null){if(i=r.return,i!==null){n=i;continue}break}if(r.child===s.child){for(s=r.child;s;){if(s===n)return af(r),t;if(s===i)return af(r),e;s=s.sibling}throw Error(U(188))}if(n.return!==i.return)n=r,i=s;else{for(var o=!1,a=r.child;a;){if(a===n){o=!0,n=r,i=s;break}if(a===i){o=!0,i=r,n=s;break}a=a.sibling}if(!o){for(a=s.child;a;){if(a===n){o=!0,n=s,i=r;break}if(a===i){o=!0,i=s,n=r;break}a=a.sibling}if(!o)throw Error(U(189))}}if(n.alternate!==i)throw Error(U(190))}if(n.tag!==3)throw Error(U(188));return n.stateNode.current===n?t:e}function bv(t){return t=s0(t),t!==null?xv(t):null}function xv(t){if(t.tag===5||t.tag===6)return t;for(t=t.child;t!==null;){var e=xv(t);if(e!==null)return e;t=t.sibling}return null}var kv=qt.unstable_scheduleCallback,lf=qt.unstable_cancelCallback,o0=qt.unstable_shouldYield,a0=qt.unstable_requestPaint,Le=qt.unstable_now,l0=qt.unstable_getCurrentPriorityLevel,kp=qt.unstable_ImmediatePriority,Cv=qt.unstable_UserBlockingPriority,Al=qt.unstable_NormalPriority,u0=qt.unstable_LowPriority,Ev=qt.unstable_IdlePriority,du=null,jn=null;function c0(t){if(jn&&typeof jn.onCommitFiberRoot=="function")try{jn.onCommitFiberRoot(du,t,void 0,(t.current.flags&128)===128)}catch{}}var yn=Math.clz32?Math.clz32:h0,d0=Math.log,p0=Math.LN2;function h0(t){return t>>>=0,t===0?32:31-(d0(t)/p0|0)|0}var Ua=64,Ia=4194304;function So(t){switch(t&-t){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 t&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return t&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return t}}function Tl(t,e){var n=t.pendingLanes;if(n===0)return 0;var i=0,r=t.suspendedLanes,s=t.pingedLanes,o=n&268435455;if(o!==0){var a=o&~r;a!==0?i=So(a):(s&=o,s!==0&&(i=So(s)))}else o=n&~r,o!==0?i=So(o):s!==0&&(i=So(s));if(i===0)return 0;if(e!==0&&e!==i&&!(e&r)&&(r=i&-i,s=e&-e,r>=s||r===16&&(s&4194240)!==0))return e;if(i&4&&(i|=n&16),e=t.entangledLanes,e!==0)for(t=t.entanglements,e&=i;0<e;)n=31-yn(e),r=1<<n,i|=t[n],e&=~r;return i}function f0(t,e){switch(t){case 1:case 2:case 4:return e+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 e+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 m0(t,e){for(var n=t.suspendedLanes,i=t.pingedLanes,r=t.expirationTimes,s=t.pendingLanes;0<s;){var o=31-yn(s),a=1<<o,l=r[o];l===-1?(!(a&n)||a&i)&&(r[o]=f0(a,e)):l<=e&&(t.expiredLanes|=a),s&=~a}}function rd(t){return t=t.pendingLanes&-1073741825,t!==0?t:t&1073741824?1073741824:0}function _v(){var t=Ua;return Ua<<=1,!(Ua&4194240)&&(Ua=64),t}function ec(t){for(var e=[],n=0;31>n;n++)e.push(t);return e}function ma(t,e,n){t.pendingLanes|=e,e!==536870912&&(t.suspendedLanes=0,t.pingedLanes=0),t=t.eventTimes,e=31-yn(e),t[e]=n}function g0(t,e){var n=t.pendingLanes&~e;t.pendingLanes=e,t.suspendedLanes=0,t.pingedLanes=0,t.expiredLanes&=e,t.mutableReadLanes&=e,t.entangledLanes&=e,e=t.entanglements;var i=t.eventTimes;for(t=t.expirationTimes;0<n;){var r=31-yn(n),s=1<<r;e[r]=0,i[r]=-1,t[r]=-1,n&=~s}}function Cp(t,e){var n=t.entangledLanes|=e;for(t=t.entanglements;n;){var i=31-yn(n),r=1<<i;r&e|t[i]&e&&(t[i]|=e),n&=~r}}var ge=0;function Av(t){return t&=-t,1<t?4<t?t&268435455?16:536870912:4:1}var Tv,Ep,Rv,Pv,Uv,sd=!1,Oa=[],Oi=null,Li=null,ji=null,Fo=new Map,Mo=new Map,xi=[],v0="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 uf(t,e){switch(t){case"focusin":case"focusout":Oi=null;break;case"dragenter":case"dragleave":Li=null;break;case"mouseover":case"mouseout":ji=null;break;case"pointerover":case"pointerout":Fo.delete(e.pointerId);break;case"gotpointercapture":case"lostpointercapture":Mo.delete(e.pointerId)}}function eo(t,e,n,i,r,s){return t===null||t.nativeEvent!==s?(t={blockedOn:e,domEventName:n,eventSystemFlags:i,nativeEvent:s,targetContainers:[r]},e!==null&&(e=va(e),e!==null&&Ep(e)),t):(t.eventSystemFlags|=i,e=t.targetContainers,r!==null&&e.indexOf(r)===-1&&e.push(r),t)}function y0(t,e,n,i,r){switch(e){case"focusin":return Oi=eo(Oi,t,e,n,i,r),!0;case"dragenter":return Li=eo(Li,t,e,n,i,r),!0;case"mouseover":return ji=eo(ji,t,e,n,i,r),!0;case"pointerover":var s=r.pointerId;return Fo.set(s,eo(Fo.get(s)||null,t,e,n,i,r)),!0;case"gotpointercapture":return s=r.pointerId,Mo.set(s,eo(Mo.get(s)||null,t,e,n,i,r)),!0}return!1}function Iv(t){var e=hr(t.target);if(e!==null){var n=Or(e);if(n!==null){if(e=n.tag,e===13){if(e=wv(n),e!==null){t.blockedOn=e,Uv(t.priority,function(){Rv(n)});return}}else if(e===3&&n.stateNode.current.memoizedState.isDehydrated){t.blockedOn=n.tag===3?n.stateNode.containerInfo:null;return}}}t.blockedOn=null}function ul(t){if(t.blockedOn!==null)return!1;for(var e=t.targetContainers;0<e.length;){var n=od(t.domEventName,t.eventSystemFlags,e[0],t.nativeEvent);if(n===null){n=t.nativeEvent;var i=new n.constructor(n.type,n);ed=i,n.target.dispatchEvent(i),ed=null}else return e=va(n),e!==null&&Ep(e),t.blockedOn=n,!1;e.shift()}return!0}function cf(t,e,n){ul(t)&&n.delete(e)}function S0(){sd=!1,Oi!==null&&ul(Oi)&&(Oi=null),Li!==null&&ul(Li)&&(Li=null),ji!==null&&ul(ji)&&(ji=null),Fo.forEach(cf),Mo.forEach(cf)}function to(t,e){t.blockedOn===e&&(t.blockedOn=null,sd||(sd=!0,qt.unstable_scheduleCallback(qt.unstable_NormalPriority,S0)))}function $o(t){function e(r){return to(r,t)}if(0<Oa.length){to(Oa[0],t);for(var n=1;n<Oa.length;n++){var i=Oa[n];i.blockedOn===t&&(i.blockedOn=null)}}for(Oi!==null&&to(Oi,t),Li!==null&&to(Li,t),ji!==null&&to(ji,t),Fo.forEach(e),Mo.forEach(e),n=0;n<xi.length;n++)i=xi[n],i.blockedOn===t&&(i.blockedOn=null);for(;0<xi.length&&(n=xi[0],n.blockedOn===null);)Iv(n),n.blockedOn===null&&xi.shift()}var cs=li.ReactCurrentBatchConfig,Rl=!0;function w0(t,e,n,i){var r=ge,s=cs.transition;cs.transition=null;try{ge=1,_p(t,e,n,i)}finally{ge=r,cs.transition=s}}function b0(t,e,n,i){var r=ge,s=cs.transition;cs.transition=null;try{ge=4,_p(t,e,n,i)}finally{ge=r,cs.transition=s}}function _p(t,e,n,i){if(Rl){var r=od(t,e,n,i);if(r===null)cc(t,e,i,Pl,n),uf(t,i);else if(y0(r,t,e,n,i))i.stopPropagation();else if(uf(t,i),e&4&&-1<v0.indexOf(t)){for(;r!==null;){var s=va(r);if(s!==null&&Tv(s),s=od(t,e,n,i),s===null&&cc(t,e,i,Pl,n),s===r)break;r=s}r!==null&&i.stopPropagation()}else cc(t,e,i,null,n)}}var Pl=null;function od(t,e,n,i){if(Pl=null,t=xp(i),t=hr(t),t!==null)if(e=Or(t),e===null)t=null;else if(n=e.tag,n===13){if(t=wv(e),t!==null)return t;t=null}else if(n===3){if(e.stateNode.current.memoizedState.isDehydrated)return e.tag===3?e.stateNode.containerInfo:null;t=null}else e!==t&&(t=null);return Pl=t,null}
vendor: 10,401 bytes, line 38
38function Ov(t){switch(t){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(l0()){case kp:return 1;case Cv:return 4;case Al:case u0:return 16;case Ev:return 536870912;default:return 16}default:return 16}}var Pi=null,Ap=null,cl=null;function Lv(){if(cl)return cl;var t,e=Ap,n=e.length,i,r="value"in Pi?Pi.value:Pi.textContent,s=r.length;for(t=0;t<n&&e[t]===r[t];t++);var o=n-t;for(i=1;i<=o&&e[n-i]===r[s-i];i++);return cl=r.slice(t,1<i?1-i:void 0)}function dl(t){var e=t.keyCode;return"charCode"in t?(t=t.charCode,t===0&&e===13&&(t=13)):t=e,t===10&&(t=13),32<=t||t===13?t:0}function La(){return!0}function df(){return!1}function Ft(t){function e(n,i,r,s,o){this._reactName=n,this._targetInst=r,this.type=i,this.nativeEvent=s,this.target=o,this.currentTarget=null;for(var a in t)t.hasOwnProperty(a)&&(n=t[a],this[a]=n?n(s):s[a]);return this.isDefaultPrevented=(s.defaultPrevented!=null?s.defaultPrevented:s.returnValue===!1)?La:df,this.isPropagationStopped=df,this}return Te(e.prototype,{preventDefault:function(){this.defaultPrevented=!0;var n=this.nativeEvent;n&&(n.preventDefault?n.preventDefault():typeof n.returnValue!="unknown"&&(n.returnValue=!1),this.isDefaultPrevented=La)},stopPropagation:function(){var n=this.nativeEvent;n&&(n.stopPropagation?n.stopPropagation():typeof n.cancelBubble!="unknown"&&(n.cancelBubble=!0),this.isPropagationStopped=La)},persist:function(){},isPersistent:La}),e}var js={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(t){return t.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},Tp=Ft(js),ga=Te({},js,{view:0,detail:0}),x0=Ft(ga),tc,nc,no,pu=Te({},ga,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:Rp,button:0,buttons:0,relatedTarget:function(t){return t.relatedTarget===void 0?t.fromElement===t.srcElement?t.toElement:t.fromElement:t.relatedTarget},movementX:function(t){return"movementX"in t?t.movementX:(t!==no&&(no&&t.type==="mousemove"?(tc=t.screenX-no.screenX,nc=t.screenY-no.screenY):nc=tc=0,no=t),tc)},movementY:function(t){return"movementY"in t?t.movementY:nc}}),pf=Ft(pu),k0=Te({},pu,{dataTransfer:0}),C0=Ft(k0),E0=Te({},ga,{relatedTarget:0}),ic=Ft(E0),_0=Te({},js,{animationName:0,elapsedTime:0,pseudoElement:0}),A0=Ft(_0),T0=Te({},js,{clipboardData:function(t){return"clipboardData"in t?t.clipboardData:window.clipboardData}}),R0=Ft(T0),P0=Te({},js,{data:0}),hf=Ft(P0),U0={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},I0={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"},O0={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function L0(t){var e=this.nativeEvent;return e.getModifierState?e.getModifierState(t):(t=O0[t])?!!e[t]:!1}function Rp(){return L0}var j0=Te({},ga,{key:function(t){if(t.key){var e=U0[t.key]||t.key;if(e!=="Unidentified")return e}return t.type==="keypress"?(t=dl(t),t===13?"Enter":String.fromCharCode(t)):t.type==="keydown"||t.type==="keyup"?I0[t.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:Rp,charCode:function(t){return t.type==="keypress"?dl(t):0},keyCode:function(t){return t.type==="keydown"||t.type==="keyup"?t.keyCode:0},which:function(t){return t.type==="keypress"?dl(t):t.type==="keydown"||t.type==="keyup"?t.keyCode:0}}),N0=Ft(j0),q0=Te({},pu,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),ff=Ft(q0),D0=Te({},ga,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:Rp}),F0=Ft(D0),M0=Te({},js,{propertyName:0,elapsedTime:0,pseudoElement:0}),$0=Ft(M0),K0=Te({},pu,{deltaX:function(t){return"deltaX"in t?t.deltaX:"wheelDeltaX"in t?-t.wheelDeltaX:0},deltaY:function(t){return"deltaY"in t?t.deltaY:"wheelDeltaY"in t?-t.wheelDeltaY:"wheelDelta"in t?-t.wheelDelta:0},deltaZ:0,deltaMode:0}),z0=Ft(K0),V0=[9,13,27,32],Pp=ni&&"CompositionEvent"in window,Eo=null;ni&&"documentMode"in document&&(Eo=document.documentMode);var B0=ni&&"TextEvent"in window&&!Eo,jv=ni&&(!Pp||Eo&&8<Eo&&11>=Eo),mf=" ",gf=!1;function Nv(t,e){switch(t){case"keyup":return V0.indexOf(e.keyCode)!==-1;case"keydown":return e.keyCode!==229;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function qv(t){return t=t.detail,typeof t=="object"&&"data"in t?t.data:null}var Yr=!1;function W0(t,e){switch(t){case"compositionend":return qv(e);case"keypress":return e.which!==32?null:(gf=!0,mf);case"textInput":return t=e.data,t===mf&&gf?null:t;default:return null}}function H0(t,e){if(Yr)return t==="compositionend"||!Pp&&Nv(t,e)?(t=Lv(),cl=Ap=Pi=null,Yr=!1,t):null;switch(t){case"paste":return null;case"keypress":if(!(e.ctrlKey||e.altKey||e.metaKey)||e.ctrlKey&&e.altKey){if(e.char&&1<e.char.length)return e.char;if(e.which)return String.fromCharCode(e.which)}return null;case"compositionend":return jv&&e.locale!=="ko"?null:e.data;default:return null}}var G0={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 vf(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e==="input"?!!G0[t.type]:e==="textarea"}function Dv(t,e,n,i){mv(i),e=Ul(e,"onChange"),0<e.length&&(n=new Tp("onChange","change",null,n,i),t.push({event:n,listeners:e}))}var _o=null,Ko=null;function Q0(t){Qv(t,0)}function hu(t){var e=Zr(t);if(lv(e))return t}function Y0(t,e){if(t==="change")return e}var Fv=!1;if(ni){var rc;if(ni){var sc="oninput"in document;if(!sc){var yf=document.createElement("div");yf.setAttribute("oninput","return;"),sc=typeof yf.oninput=="function"}rc=sc}else rc=!1;Fv=rc&&(!document.documentMode||9<document.documentMode)}function Sf(){_o&&(_o.detachEvent("onpropertychange",Mv),Ko=_o=null)}function Mv(t){if(t.propertyName==="value"&&hu(Ko)){var e=[];Dv(e,Ko,t,xp(t)),Sv(Q0,e)}}function J0(t,e,n){t==="focusin"?(Sf(),_o=e,Ko=n,_o.attachEvent("onpropertychange",Mv)):t==="focusout"&&Sf()}function X0(t){if(t==="selectionchange"||t==="keyup"||t==="keydown")return hu(Ko)}function Z0(t,e){if(t==="click")return hu(e)}function ex(t,e){if(t==="input"||t==="change")return hu(e)}function tx(t,e){return t===e&&(t!==0||1/t===1/e)||t!==t&&e!==e}var wn=typeof Object.is=="function"?Object.is:tx;function zo(t,e){if(wn(t,e))return!0;if(typeof t!="object"||t===null||typeof e!="object"||e===null)return!1;var n=Object.keys(t),i=Object.keys(e);if(n.length!==i.length)return!1;for(i=0;i<n.length;i++){var r=n[i];if(!Kc.call(e,r)||!wn(t[r],e[r]))return!1}return!0}function wf(t){for(;t&&t.firstChild;)t=t.firstChild;return t}function bf(t,e){var n=wf(t);t=0;for(var i;n;){if(n.nodeType===3){if(i=t+n.textContent.length,t<=e&&i>=e)return{node:n,offset:e-t};t=i}e:{for(;n;){if(n.nextSibling){n=n.nextSibling;break e}n=n.parentNode}n=void 0}n=wf(n)}}function $v(t,e){return t&&e?t===e?!0:t&&t.nodeType===3?!1:e&&e.nodeType===3?$v(t,e.parentNode):"contains"in t?t.contains(e):t.compareDocumentPosition?!!(t.compareDocumentPosition(e)&16):!1:!1}function Kv(){for(var t=window,e=Cl();e instanceof t.HTMLIFrameElement;){try{var n=typeof e.contentWindow.location.href=="string"}catch{n=!1}if(n)t=e.contentWindow;else break;e=Cl(t.document)}return e}function Up(t){var e=t&&t.nodeName&&t.nodeName.toLowerCase();return e&&(e==="input"&&(t.type==="text"||t.type==="search"||t.type==="tel"||t.type==="url"||t.type==="password")||e==="textarea"||t.contentEditable==="true")}function nx(t){var e=Kv(),n=t.focusedElem,i=t.selectionRange;if(e!==n&&n&&n.ownerDocument&&$v(n.ownerDocument.documentElement,n)){if(i!==null&&Up(n)){if(e=i.start,t=i.end,t===void 0&&(t=e),"selectionStart"in n)n.selectionStart=e,n.selectionEnd=Math.min(t,n.value.length);else if(t=(e=n.ownerDocument||document)&&e.defaultView||window,t.getSelection){t=t.getSelection();var r=n.textContent.length,s=Math.min(i.start,r);i=i.end===void 0?s:Math.min(i.end,r),!t.extend&&s>i&&(r=i,i=s,s=r),r=bf(n,s);var o=bf(n,i);r&&o&&(t.rangeCount!==1||t.anchorNode!==r.node||t.anchorOffset!==r.offset||t.focusNode!==o.node||t.focusOffset!==o.offset)&&(e=e.createRange(),e.setStart(r.node,r.offset),t.removeAllRanges(),s>i?(t.addRange(e),t.extend(o.node,o.offset)):(e.setEnd(o.node,o.offset),t.addRange(e)))}}for(e=[],t=n;t=t.parentNode;)t.nodeType===1&&e.push({element:t,left:t.scrollLeft,top:t.scrollTop});for(typeof n.focus=="function"&&n.focus(),n=0;n<e.length;n++)t=e[n],t.element.scrollLeft=t.left,t.element.scrollTop=t.top}}var ix=ni&&"documentMode"in document&&11>=document.documentMode,Jr=null,ad=null,Ao=null,ld=!1;function xf(t,e,n){var i=n.window===n?n.document:n.nodeType===9?n:n.ownerDocument;ld||Jr==null||Jr!==Cl(i)||(i=Jr,"selectionStart"in i&&Up(i)?i={start:i.selectionStart,end:i.selectionEnd}:(i=(i.ownerDocument&&i.ownerDocument.defaultView||window).getSelection(),i={anchorNode:i.anchorNode,anchorOffset:i.anchorOffset,focu
vendor: 1,903 bytes, line 38
38sNode:i.focusNode,focusOffset:i.focusOffset}),Ao&&zo(Ao,i)||(Ao=i,i=Ul(ad,"onSelect"),0<i.length&&(e=new Tp("onSelect","select",null,e,n),t.push({event:e,listeners:i}),e.target=Jr)))}function ja(t,e){var n={};return n[t.toLowerCase()]=e.toLowerCase(),n["Webkit"+t]="webkit"+e,n["Moz"+t]="moz"+e,n}var Xr={animationend:ja("Animation","AnimationEnd"),animationiteration:ja("Animation","AnimationIteration"),animationstart:ja("Animation","AnimationStart"),transitionend:ja("Transition","TransitionEnd")},oc={},zv={};ni&&(zv=document.createElement("div").style,"AnimationEvent"in window||(delete Xr.animationend.animation,delete Xr.animationiteration.animation,delete Xr.animationstart.animation),"TransitionEvent"in window||delete Xr.transitionend.transition);function fu(t){if(oc[t])return oc[t];if(!Xr[t])return t;var e=Xr[t],n;for(n in e)if(e.hasOwnProperty(n)&&n in zv)return oc[t]=e[n];return t}var Vv=fu("animationend"),Bv=fu("animationiteration"),Wv=fu("animationstart"),Hv=fu("transitionend"),Gv=new Map,kf="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 Gi(t,e){Gv.set(t,e),Ir(e,[t])}for(var ac=0;ac<kf.length;ac++){var lc=kf[ac],rx=lc.toLowerCase(),sx=lc[0].toUpperCase()+lc.slice(1);Gi(rx,"on"+sx)}Gi(Vv,"onAnimationEnd");Gi(Bv,"onAnimationIteration");Gi(Wv,"onAnimationStart");Gi("dblclick","onDoubleClick");
vendor: 4,582 bytes, line 38
38Gi("focusin","onFocus");Gi("focusout","onBlur");Gi(Hv,"onTransitionEnd");Cs("onMouseEnter",["mouseout","mouseover"]);Cs("onMouseLeave",["mouseout","mouseover"]);Cs("onPointerEnter",["pointerout","pointerover"]);Cs("onPointerLeave",["pointerout","pointerover"]);Ir("onChange","change click focusin focusout input keydown keyup selectionchange".split(" "));Ir("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" "));Ir("onBeforeInput",["compositionend","keypress","textInput","paste"]);Ir("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" "));Ir("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" "));Ir("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var wo="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(" "),ox=new Set("cancel close invalid load scroll toggle".split(" ").concat(wo));function Cf(t,e,n){var i=t.type||"unknown-event";t.currentTarget=n,r0(i,e,void 0,t),t.currentTarget=null}function Qv(t,e){e=(e&4)!==0;for(var n=0;n<t.length;n++){var i=t[n],r=i.event;i=i.listeners;e:{var s=void 0;if(e)for(var o=i.length-1;0<=o;o--){var a=i[o],l=a.instance,u=a.currentTarget;if(a=a.listener,l!==s&&r.isPropagationStopped())break e;Cf(r,a,u),s=l}else for(o=0;o<i.length;o++){if(a=i[o],l=a.instance,u=a.currentTarget,a=a.listener,l!==s&&r.isPropagationStopped())break e;Cf(r,a,u),s=l}}}if(_l)throw t=id,_l=!1,id=null,t}function be(t,e){var n=e[hd];n===void 0&&(n=e[hd]=new Set);var i=t+"__bubble";n.has(i)||(Yv(e,t,2,!1),n.add(i))}function uc(t,e,n){var i=0;e&&(i|=4),Yv(n,t,i,e)}var Na="_reactListening"+Math.random().toString(36).slice(2);function Vo(t){if(!t[Na]){t[Na]=!0,iv.forEach(function(n){n!=="selectionchange"&&(ox.has(n)||uc(n,!1,t),uc(n,!0,t))});var e=t.nodeType===9?t:t.ownerDocument;e===null||e[Na]||(e[Na]=!0,uc("selectionchange",!1,e))}}function Yv(t,e,n,i){switch(Ov(e)){case 1:var r=w0;break;case 4:r=b0;break;default:r=_p}n=r.bind(null,e,n,t),r=void 0,!nd||e!=="touchstart"&&e!=="touchmove"&&e!=="wheel"||(r=!0),i?r!==void 0?t.addEventListener(e,n,{capture:!0,passive:r}):t.addEventListener(e,n,!0):r!==void 0?t.addEventListener(e,n,{passive:r}):t.addEventListener(e,n,!1)}function cc(t,e,n,i,r){var s=i;if(!(e&1)&&!(e&2)&&i!==null)e:for(;;){if(i===null)return;var o=i.tag;if(o===3||o===4){var a=i.stateNode.containerInfo;if(a===r||a.nodeType===8&&a.parentNode===r)break;if(o===4)for(o=i.return;o!==null;){var l=o.tag;if((l===3||l===4)&&(l=o.stateNode.containerInfo,l===r||l.nodeType===8&&l.parentNode===r))return;o=o.return}for(;a!==null;){if(o=hr(a),o===null)return;if(l=o.tag,l===5||l===6){i=s=o;continue e}a=a.parentNode}}i=i.return}Sv(function(){var u=s,c=xp(n),p=[];e:{var h=Gv.get(t);if(h!==void 0){var d=Tp,v=t;switch(t){case"keypress":if(dl(n)===0)break e;case"keydown":case"keyup":d=N0;break;case"focusin":v="focus",d=ic;break;case"focusout":v="blur",d=ic;break;case"beforeblur":case"afterblur":d=ic;break;case"click":if(n.button===2)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":d=pf;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":d=C0;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":d=F0;break;case Vv:case Bv:case Wv:d=A0;break;case Hv:d=$0;break;case"scroll":d=x0;break;case"wheel":d=z0;break;case"copy":case"cut":case"paste":d=R0;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":d=ff}var g=(e&4)!==0,w=!g&&t==="scroll",S=g?h!==null?h+"Capture":null:h;g=[];for(var m=u,y;m!==null;){y=m;var x=y.stateNode;if(y.tag===5&&x!==null&&(y=x,S!==null&&(x=Do(m,S),x!=null&&g.push(Bo(m,x,y)))),w)break;m=m.return}0<g.length&&(h=new d(h,v,null,n,c),p.push({event:h,listeners:g}))}}if(!(e&7)){e:{if(h=t==="mouseover"||t==="pointerover",d=t==="mouseout"||t==="pointerout",h&&n!==ed&&(v=n.relatedTarget||n.fromElement)&&(hr(v)||v[ii]))break e;if((d||h)&&(h=c.window===c?c:(h=c.ownerDocument)?h.defaultView||h.parentWindow:window,d?(v=n.relatedTarget||n.toElement,d=u,v=v?hr(v):null,v!==null&&(w=Or(v),v!==w||v.tag!==5&&v.tag!==6)&&(v=null)):(d=null,v=u),d!==v)){if(g=pf,x="onMouseLeave",S="onMouseEnter",m="mou
38se",(t==="pointerout"||t==="pointerover")&&(g=ff,x="onPointerLeave",S="onPointerEnter",m="pointer"),w=d==null?h:Zr(d),y=v==null?h:Zr(v),h=new g(x,m+"leave",d,n,c),h.target=w,h.relatedTarget=y,x=null,hr(c)===u&&(g=new g(S,m+"enter",v,n,c),g.target=y,g.relatedTarget=w,x=g),w=x,d&&v)t:{for(g=d,S=v,m=0,y=g;y;y=qr(y))m++;for(y=0,x=S;x;x=qr(x))y++;for(;0<m-y;)g=qr(g),m--;for(;0<y-m;)S=qr(S),y--;for(;m--;){if(g===S||S!==null&&g===S.alternate)break t;g=qr(g),S=qr(S)}g=null}else g=null;d!==null&&Ef(p,h,d,g,!1),v!==null&&w!==null&&Ef(p,w,v,g,!0)}}e:{if(h=u?Zr(u):window,d=h.nodeName&&h.nodeName.toLowerCase(),d==="select"||d==="input"&&h.type==="file")var C=Y0;else if(vf(h))if(Fv)C=ex;else{C=X0;var E=J0}else(d=h.nodeName)&&d.toLowerCase()==="input"&&(h.type==="checkbox"||h.type==="radio")&&(C=Z0);if(C&&(C=C(t,u))){Dv(p,C,n,c);break e}E&&E(t,h,u),t==="focusout"&&(E=h._wrapperState)&&E.controlled&&h.type==="number"&&Qc(h,"number",h.value)}switch(E=u?Zr(u):window,t){case"focusin":(vf(E)||E.contentEditable==="true")&&(Jr=E,ad=u,Ao=null);break;case"focusout":Ao=ad=Jr=null;break;case"mousedown":ld=!0;break;case"contextmenu":case"mouseup":case"dragend":ld=!1,xf(p,n,c);break;case"selectionchange":if(ix)break;case"keydown":case"keyup":xf(p,n,c)}var _;if(Pp)e:{switch(t){case"compositionstart":var A="onCompositionStart";break e;case"compositionend":A="onCompositionEnd";break e;case"compositionupdate":A="onCompositionUpdate";break e}A=void 0}else Yr?Nv(t,n)&&(A="onCompositionEnd"):t==="keydown"&&n.keyCode===229&&(A="onCompositionStart");A&&(jv&&n.locale!=="ko"&&(Yr||A!=="onCompositionStart"?A==="onCompositionEnd"&&Yr&&(_=Lv()):(Pi=c,Ap="value"in Pi?Pi.value:Pi.textContent,Yr=!0)),E=Ul(u,A),0<E.length&&(A=new hf(A,t,null,n,c),p.push({event:A,listeners:E}),_?A.data=_:(_=qv(n),_!==null&&(A.data=_)))),(_=B0?W0(t,n):H0(t,n))&&(u=Ul(u,"onBeforeInput"),0<u.length&&(c=new hf("onBeforeInput","beforeinput",null,n,c),p.push({event:c,listeners:u}),c.data=_))}Qv(p,e)})}function Bo(t,e,n){return{instance:t,listener:e,currentTarget:n}}function Ul(t,e){for(var n=e+"Capture",i=[];t!==null;){var r=t,s=r.stateNode;r.tag===5&&s!==null&&(r=s,s=Do(t,n),s!=null&&i.unshift(Bo(t,s,r)),s=Do(t,e),s!=null&&i.push(Bo(t,s,r))),t=t.return}return i}function qr(t){if(t===null)return null;do t=t.return;while(t&&t.tag!==5);return t||null}function Ef(t,e,n,i,r){for(var s=e._reactName,o=[];n!==null&&n!==i;){var a=n,l=a.alternate,u=a.stateNode;if(l!==null&&l===i)break;a.tag===5&&u!==null&&(a=u,r?(l=Do(n,s),l!=null&&o.unshift(Bo(n,l,a))):r||(l=Do(n,s),l!=null&&o.push(Bo(n,l,a)))),n=n.return}o.length!==0&&t.push({event:e,listeners:o})}var ax=/\r\n?/g,lx=/\u0000|\uFFFD/g;function _f(t){return(typeof t=="string"?t:""+t).replace(ax,`
39`).replace(lx,"")}function qa(t,e,n){if(e=_f(e),_f(t)!==e&&n)throw Error(U(425))}function Il(){}var ud=null,cd=null;function dd(t,e){return t==="textarea"||t==="noscript"||typeof e.children=="string"||typeof e.children=="number"||typeof e.dangerouslySetInnerHTML=="object"&&e.dangerouslySetInnerHTML!==null&&e.dangerouslySetInnerHTML.__html!=null}var pd=typeof setTimeout=="function"?setTimeout:void 0,ux=typeof clearTimeout=="function"?clearTimeout:void 0,Af=typeof Promise=="function"?Promise:void 0,cx=typeof queueMicrotask=="function"?queueMicrotask:typeof Af<"u"?function(t){return Af.resolve(null).then(t).catch(dx)}:pd;function dx(t){setTimeout(function(){throw t})}function dc(t,e){var n=e,i=0;do{var r=n.nextSibling;if(t.removeChild(n),r&&r.nodeType===8)if(n=r.data,n==="/$"){if(i===0){t.removeChild(r),$o(e);return}i--}else n!=="$"&&n!=="$?"&&n!=="$!"||i++;n=r}while(n);$o(e)}function Ni(t){for(;t!=null;t=t.nextSibling){var e=t.nodeType;if(e===1||e===3)break;if(e===8){if(e=t.data,e==="$"||e==="$!"||e==="$?")break;if(e==="/$")return null}}return t}function Tf(t){t=t.previousSibling;for(var e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="$"||n==="$!"||n==="$?"){if(e===0)return t;e--}else n==="/$"&&e++}t=t.previousSibling}return null}var Ns=Math.random().toString(36).slice(2),On="__reactFiber$"+Ns,Wo="__reactProps$"+Ns,ii="__reactContainer$"+Ns,hd="__reactEvents$"+Ns,px="__reactListeners$"+Ns,hx="__reactHandles$"+Ns;function hr(t){var e=t[On];if(e)return e;for(var n=t.parentNode;n;
vendor: 16,490 bytes, line 39
39){if(e=n[ii]||n[On]){if(n=e.alternate,e.child!==null||n!==null&&n.child!==null)for(t=Tf(t);t!==null;){if(n=t[On])return n;t=Tf(t)}return e}t=n,n=t.parentNode}return null}function va(t){return t=t[On]||t[ii],!t||t.tag!==5&&t.tag!==6&&t.tag!==13&&t.tag!==3?null:t}function Zr(t){if(t.tag===5||t.tag===6)return t.stateNode;throw Error(U(33))}function mu(t){return t[Wo]||null}var fd=[],es=-1;function Qi(t){return{current:t}}function xe(t){0>es||(t.current=fd[es],fd[es]=null,es--)}function Se(t,e){es++,fd[es]=t.current,t.current=e}var zi={},rt=Qi(zi),kt=Qi(!1),Er=zi;function Es(t,e){var n=t.type.contextTypes;if(!n)return zi;var i=t.stateNode;if(i&&i.__reactInternalMemoizedUnmaskedChildContext===e)return i.__reactInternalMemoizedMaskedChildContext;var r={},s;for(s in n)r[s]=e[s];return i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=e,t.__reactInternalMemoizedMaskedChildContext=r),r}function Ct(t){return t=t.childContextTypes,t!=null}function Ol(){xe(kt),xe(rt)}function Rf(t,e,n){if(rt.current!==zi)throw Error(U(168));Se(rt,e),Se(kt,n)}function Jv(t,e,n){var i=t.stateNode;if(e=e.childContextTypes,typeof i.getChildContext!="function")return n;i=i.getChildContext();for(var r in i)if(!(r in e))throw Error(U(108,Jb(t)||"Unknown",r));return Te({},n,i)}function Ll(t){return t=(t=t.stateNode)&&t.__reactInternalMemoizedMergedChildContext||zi,Er=rt.current,Se(rt,t),Se(kt,kt.current),!0}function Pf(t,e,n){var i=t.stateNode;if(!i)throw Error(U(169));n?(t=Jv(t,e,Er),i.__reactInternalMemoizedMergedChildContext=t,xe(kt),xe(rt),Se(rt,t)):xe(kt),Se(kt,n)}var Jn=null,gu=!1,pc=!1;function Xv(t){Jn===null?Jn=[t]:Jn.push(t)}function fx(t){gu=!0,Xv(t)}function Yi(){if(!pc&&Jn!==null){pc=!0;var t=0,e=ge;try{var n=Jn;for(ge=1;t<n.length;t++){var i=n[t];do i=i(!0);while(i!==null)}Jn=null,gu=!1}catch(r){throw Jn!==null&&(Jn=Jn.slice(t+1)),kv(kp,Yi),r}finally{ge=e,pc=!1}}return null}var ts=[],ns=0,jl=null,Nl=0,Vt=[],Bt=0,_r=null,Zn=1,ei="";function ar(t,e){ts[ns++]=Nl,ts[ns++]=jl,jl=t,Nl=e}function Zv(t,e,n){Vt[Bt++]=Zn,Vt[Bt++]=ei,Vt[Bt++]=_r,_r=t;var i=Zn;t=ei;var r=32-yn(i)-1;i&=~(1<<r),n+=1;var s=32-yn(e)+r;if(30<s){var o=r-r%5;s=(i&(1<<o)-1).toString(32),i>>=o,r-=o,Zn=1<<32-yn(e)+r|n<<r|i,ei=s+t}else Zn=1<<s|n<<r|i,ei=t}function Ip(t){t.return!==null&&(ar(t,1),Zv(t,1,0))}function Op(t){for(;t===jl;)jl=ts[--ns],ts[ns]=null,Nl=ts[--ns],ts[ns]=null;for(;t===_r;)_r=Vt[--Bt],Vt[Bt]=null,ei=Vt[--Bt],Vt[Bt]=null,Zn=Vt[--Bt],Vt[Bt]=null}var jt=null,Lt=null,Ce=!1,mn=null;function ey(t,e){var n=Wt(5,null,null,0);n.elementType="DELETED",n.stateNode=e,n.return=t,e=t.deletions,e===null?(t.deletions=[n],t.flags|=16):e.push(n)}function Uf(t,e){switch(t.tag){case 5:var n=t.type;return e=e.nodeType!==1||n.toLowerCase()!==e.nodeName.toLowerCase()?null:e,e!==null?(t.stateNode=e,jt=t,Lt=Ni(e.firstChild),!0):!1;case 6:return e=t.pendingProps===""||e.nodeType!==3?null:e,e!==null?(t.stateNode=e,jt=t,Lt=null,!0):!1;case 13:return e=e.nodeType!==8?null:e,e!==null?(n=_r!==null?{id:Zn,overflow:ei}:null,t.memoizedState={dehydrated:e,treeContext:n,retryLane:1073741824},n=Wt(18,null,null,0),n.stateNode=e,n.return=t,t.child=n,jt=t,Lt=null,!0):!1;default:return!1}}function md(t){return(t.mode&1)!==0&&(t.flags&128)===0}function gd(t){if(Ce){var e=Lt;if(e){var n=e;if(!Uf(t,e)){if(md(t))throw Error(U(418));e=Ni(n.nextSibling);var i=jt;e&&Uf(t,e)?ey(i,n):(t.flags=t.flags&-4097|2,Ce=!1,jt=t)}}else{if(md(t))throw Error(U(418));t.flags=t.flags&-4097|2,Ce=!1,jt=t}}}function If(t){for(t=t.return;t!==null&&t.tag!==5&&t.tag!==3&&t.tag!==13;)t=t.return;jt=t}function Da(t){if(t!==jt)return!1;if(!Ce)return If(t),Ce=!0,!1;var e;if((e=t.tag!==3)&&!(e=t.tag!==5)&&(e=t.type,e=e!=="head"&&e!=="body"&&!dd(t.type,t.memoizedProps)),e&&(e=Lt)){if(md(t))throw ty(),Error(U(418));for(;e;)ey(t,e),e=Ni(e.nextSibling)}if(If(t),t.tag===13){if(t=t.memoizedState,t=t!==null?t.dehydrated:null,!t)throw Error(U(317));e:{for(t=t.nextSibling,e=0;t;){if(t.nodeType===8){var n=t.data;if(n==="/$"){if(e===0){Lt=Ni(t.nextSibling);break e}e--}else n!=="$"&&n!=="$!"&&n!=="$?"||e++}t=t.nextSibling}Lt=null}}else Lt=jt?Ni(t.stateNode.nextSibling):null;return!0}function ty(){for(var t=Lt;t;)t=Ni(t.nextSibling)}function _s(){Lt=jt=null,Ce=!1}function Lp(t){mn===null?mn=[t]:mn.push(t)}var mx=li.ReactCurrentBatchConfig;function io(t,e,n){if(t=n.ref,t!==null&&typeof t!="function"&&typeof t!="object"){if(n._owner){if(n=n._owner,n){if(n.tag!==1)throw Error(U(309));var i=n.stateNode}if(!i)throw Error(U(147,t));var r=i,s=""+t;return e!==null&&e.ref!==null&&typeof e.ref=="function"&&e.ref._stringRef===s?e.ref:(e=function(o){var a=r.refs;o===null?delete a[s]:a[s]=o},e._stringRef=s,e)}if(typeof t!="string")throw Error(U(284));if(!n._owner)throw Error(U(290,t))}return t}function Fa(t,e){throw t=Object.prototype.toString.call(e),Error(U(31,t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t))}function Of(t){var e=t._init;return e(t._payload)}function ny(t){function e(S,m){if(t){var y=S.deletions;y===null?(S.deletions=[m],S.flags|=16):y.push(m)}}function n(S,m){if(!t)return null;for(;m!==null;)e(S,m),m=m.sibling;return null}function i(S,m){for(S=new Map;m!==null;)m.key!==null?S.set(m.key,m):S.set(m.index,m),m=m.sibling;return S}function r(S,m){return S=Mi(S,m),S.index=0,S.sibling=null,S}function s(S,m,y){return S.index=y,t?(y=S.alternate,y!==null?(y=y.index,y<m?(S.flags|=2,m):y):(S.flags|=2,m)):(S.flags|=1048576,m)}function o(S){return t&&S.alternate===null&&(S.flags|=2),S}function a(S,m,y,x){return m===null||m.tag!==6?(m=Sc(y,S.mode,x),m.return=S,m):(m=r(m,y),m.return=S,m)}function l(S,m,y,x){var C=y.type;return C===Qr?c(S,m,y.props.children,x,y.key):m!==null&&(m.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Si&&Of(C)===m.type)?(x=r(m,y.props),x.ref=io(S,m,y),x.return=S,x):(x=yl(y.type,y.key,y.props,null,S.mode,x),x.ref=io(S,m,y),x.return=S,x)}function u(S,m,y,x){return m===null||m.tag!==4||m.stateNode.containerInfo!==y.containerInfo||m.stateNode.implementation!==y.implementation?(m=wc(y,S.mode,x),m.return=S,m):(m=r(m,y.children||[]),m.return=S,m)}function c(S,m,y,x,C){return m===null||m.tag!==7?(m=Cr(y,S.mode,x,C),m.return=S,m):(m=r(m,y),m.return=S,m)}function p(S,m,y){if(typeof m=="string"&&m!==""||typeof m=="number")return m=Sc(""+m,S.mode,y),m.return=S,m;if(typeof m=="object"&&m!==null){switch(m.$$typeof){case Ta:return y=yl(m.type,m.key,m.props,null,S.mode,y),y.ref=io(S,null,m),y.return=S,y;case Gr:return m=wc(m,S.mode,y),m.return=S,m;case Si:var x=m._init;return p(S,x(m._payload),y)}if(yo(m)||Xs(m))return m=Cr(m,S.mode,y,null),m.return=S,m;Fa(S,m)}return null}function h(S,m,y,x){var C=m!==null?m.key:null;if(typeof y=="string"&&y!==""||typeof y=="number")return C!==null?null:a(S,m,""+y,x);if(typeof y=="object"&&y!==null){switch(y.$$typeof){case Ta:return y.key===C?l(S,m,y,x):null;case Gr:return y.key===C?u(S,m,y,x):null;case Si:return C=y._init,h(S,m,C(y._payload),x)}if(yo(y)||Xs(y))return C!==null?null:c(S,m,y,x,null);Fa(S,y)}return null}function d(S,m,y,x,C){if(typeof x=="string"&&x!==""||typeof x=="number")return S=S.get(y)||null,a(m,S,""+x,C);if(typeof x=="object"&&x!==null){switch(x.$$typeof){case Ta:return S=S.get(x.key===null?y:x.key)||null,l(m,S,x,C);case Gr:return S=S.get(x.key===null?y:x.key)||null,u(m,S,x,C);case Si:var E=x._init;return d(S,m,y,E(x._payload),C)}if(yo(x)||Xs(x))return S=S.get(y)||null,c(m,S,x,C,null);Fa(m,x)}return null}function v(S,m,y,x){for(var C=null,E=null,_=m,A=m=0,I=null;_!==null&&A<y.length;A++){_.index>A?(I=_,_=null):I=_.sibling;var L=h(S,_,y[A],x);if(L===null){_===null&&(_=I);break}t&&_&&L.alternate===null&&e(S,_),m=s(L,m,A),E===null?C=L:E.sibling=L,E=L,_=I}if(A===y.length)return n(S,_),Ce&&ar(S,A),C;if(_===null){for(;A<y.length;A++)_=p(S,y[A],x),_!==null&&(m=s(_,m,A),E===null?C=_:E.sibling=_,E=_);return Ce&&ar(S,A),C}for(_=i(S,_);A<y.length;A++)I=d(_,S,A,y[A],x),I!==null&&(t&&I.alternate!==null&&_.delete(I.key===null?A:I.key),m=s(I,m,A),E===null?C=I:E.sibling=I,E=I);return t&&_.forEach(function(F){return e(S,F)}),Ce&&ar(S,A),C}function g(S,m,y,x){var C=Xs(y);if(typeof C!="function")throw Error(U(150));if(y=C.call(y),y==null)throw Error(U(151));for(var E=C=null,_=m,A=m=0,I=null,L=y.next();_!==null&&!L.done;A++,L=y.next()){_.index>A?(I=_,_=null):I=_.sibling;var F=h(S,_,L.value,x);if(F===null){_===null&&(_=I);break}t&&_&&F.alternate===null&&e(S,_),m=s(F,m,A),E===null?C=F:E.sibling=F,E=F,_=I}if(L.done)return n(S,_),Ce&&ar(S,A),C;if(_===null){for(;!L.done;A++,L=y.next())L=p(S,L.value,x),L!==null&&(m=s(L,m,A),E===null?C=L:E.sibling=L,E=L);return Ce&&ar(S,A),C}for(_=i(S,_);!L.done;A++,L=y.next())L=d(_,S,A,L.value,x),L!==null&&(t&&L.alternate!==null&&_.delete(L.key===null?A:L.key),m=s(L,m,A),E===null?C=L:E.sibling=L,E=L);return t&&_.forEach(function(q){return e(S,q)}),Ce&&ar(S,A),C}function w(S,m,y,x){if(typeof y=="object"&&y!==null&&y.type===Qr&&y.key===null&&(y=y.props.children),typeof y=="object"&&y!==null){switch(y.$$typeof){case Ta:e:{for(var C=y.key,E=m;E!==null;){if(E.key===C){if(C=y.type,C===Qr){if(E.tag===7){n(S,E.sibling),m=r(E,y.props.children),m.return=S,S=m;break e}}else if(E.elementType===C||typeof C=="object"&&C!==null&&C.$$typeof===Si&&Of(C)===E.type){n(S,E.sibling),m=r(E,y.props),m.ref=io(S,E,y),m.return=S,S=m;break e}n(S,E);break}else e(S,E);E=E.sibling}y.type===Qr?(m=Cr(y.props.children,S.mode,x,y.key),m.return=S,S=m):(x=yl(y.type,y.key,y.props,null,S.mode,x),x.ref=io(S,m,y),x.return=S,S=x)}return o(S);case Gr:e:{for(E=y.key;m!==null;){if(m.key===E)if(m.tag===4&&m.stateNode.containerInfo===y.containerInfo&&m.stateNode.implementation===y.implementation){n(S,m.sibling),m=r(m,y.children||[]),m.return=S,S=m;break e}else{n(S,m);break}else e(S,m);m=m.sibling}m=wc(y,S.mode,x),m.return=S,S=m}return o(S);case Si:return E=y._init,w(S,m,E(y._payload),x)}if(yo(y))return v(S,m,y,x);if(Xs(y))return g(S,m,y,x);Fa(S,y)}return typeof y=="string"&&y!==""||typeof y=="number"?(y=""+y,m!==null&&m.tag===6?(n(S,m.sibling),m=r(m,y),m.return=S,S=m):(n(S,m),m=Sc(y,S.mode,x),m.return=S,S=m),o(S)):n(S,m)}return w}var As=ny(!0),iy=ny(!1),ql=Qi(null),Dl=null,is=null,jp=null;function Np(){jp=is=Dl=null}function qp(t){var e=ql.current;xe(ql),t._currentValue=e}function vd(t,e,n){for(;t!==null;){var i=t.alternate;if((t.childLanes&e)!==e?(t.childLanes|=e,i!==null&&(i.childLanes|=e)):i!==null&&(i.childLanes&e)!==e&&(i.childLanes|=e),t===n)break;t=t.return}}function ds(t,e){Dl=t,jp=is=null,t=t.dependencies,t!==null&&t.firstContext!==null&&(t.lanes&e&&(xt=!0),t.firstContext=null)}function Gt(t){var e=t._currentValue;if(jp!==t)if(t={context:t,memoizedValue:e,next:null},is===null){if(Dl===null)throw Error(U(308));is=t,Dl.dependencies={lanes:0,firstContext:t}}else is=is.next=t;return e}var fr=null;function Dp(t){fr===null?fr=[t]:fr.push(t)}function ry(t,e,n,i){var r=e.interleaved;return r===null?(n.next=n,Dp(e)):(n.next=r.next,r.next=n),e.interleaved=n,ri(t,i)}function ri(t,e){t.lanes|=e;var n=t.alternate;for(n!==null&&(n.lanes|=e),n=t,t=t.return;t!==null;)t.childLanes|=e,n=t.alternate,n!==null&&(n.childLanes|=e),n=t,t=t.return;return n.tag===3?n.stateNode:null}var wi=!1;function Fp(t){t.updateQueue={baseState:t.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function sy(t,e){t=t.updateQueue,e.updateQueue===t&&(e.updateQueue={baseState:t.baseState,firstBaseUpdate:t.firstBaseUpdate,lastBaseUpdate:t.lastBaseUpdate,shared:t.shared,effects:t.effects})}function ti(t,e){return{eventTime:t,lane:e,tag:0,payload:null,callback:null,next:null}}function qi(t,e,n){var i=t.updateQueue;if(i===null)return null;if(i=i.shared,pe&2){var r=i.pending;return r===null?e.next=e:(e.next=r.next,r.next=e),i.pending=e,ri(t,n)}return r=i.interleaved,r===null?(e.next=e,Dp(i)):(e.next=r.next,r.next=e),i.interleaved=e,ri(t,n)}function pl(t,e,n){if(e=e.updateQueue,e!==null&&(e=e.shared,(n&4194240)!==0)){var i=e.lanes;i&=t.pendingLanes,n|=i,e.lanes=n,Cp(t,n)}}function Lf(t,e){var n=t.updateQueue,i=t.alternate;if(i!==null&&(i=i.updateQueue,n===i)){var r=null,s=null;if(n=n.firstBaseUpdate,n!==null){do{var o={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};s===null?r=s=o:s=s.next=o,n=n.next}while(n!==null);s===null?r=s=e:s=s.next=e}else r=s=e;n={baseState:i.baseState,firstBaseUpdate:r,lastBaseUpdate:s,shared:i.shared,effects:i.effects},t.updateQueue=n;return}t=n.lastBaseUpdate,t===null?n.firstBaseUpdate=e:t.next=e,n.lastBaseUpdate=e}function Fl(t,e,n,i){var r=t.updateQueue;wi=!1;var s=r.firstBaseUpdate,o=r.lastBaseUpdate,a=r.shared.pending;if(a!==null){r.shared.pending=null;var l=a,u=l.next;l.next=null,o===null?s=u:o.next=u,o=l;var c=t.alternate;c!==null&&(c=c.updateQueue,a=c.lastBaseUpdate,a!==o&&(a===null?c.firstBaseUpdate=u:a.next=u,c.lastBaseUpdate=l))}if(s!==null){var p=r.baseState;o=0,c=u=l=null,a=s;do{var h=a.lane,d=a.eventTime;if((i&h)===h){c!==null&&(c=c.next={eventTime:d,lane:0,tag:a.tag,payload:a.payload,callback:a.callback,next:null});e:{var v=t,g=a;switch(h=e,d=n,g.tag){case 1:if(v=g.payload,typeof v=="function"){p=v.call(d,p,h);break e}p=v;break e;case 3:v.flags=v.flags&-65537|128;case 0:if(v=g.payload,h=typeof v=="function"?v.call(d,p,h):v,h==null)break e;p=Te({},p,h);break e;case 2:wi=!0}}a.callback!==null&&a.lane!==0&&(t.flags|=64,h=r.effects,h===null?r.effects=[a]:h.push(a))}else d={eventTime:d,lane:h,tag:a.tag,payload:a.payload,callback:a.callback,next:null},c===null?(u=c=d,l=p):c=c.next=d,o|=h;if(a=a.next,a===null){if(a=r.shared.pending,a===null)break;h=a,a=h.next,h.next=null,r.lastBaseUpdate=h,r.shared.pending=null}}while(!0);if(c===null&&(l=p),r.baseState=l,r.firstBaseUpdate=u,r.lastBaseUpdate=c,e=r.shared.interleaved,e!==null){r=e;do o|=r.lane,r=r.next;while(r!==e)}else s===null&&(r.shared.lanes=0);Tr|=o,t.lanes=o,t.memoizedState=p}}function jf(t,e,n){if(t=e.effects,e.effects=null,t!==null)for(e=0;e<t.length;e++){var i=t[e],r=i.callback;if(r!==null){if(i.callback=null,i=n,typeof r!="function")throw Error(U(191,r));r.call(i)}}}var ya={},Nn=Qi(ya),Ho=Qi(ya),Go=Qi(ya);function mr(t){if(t===ya)throw Error(U(174));return t}function Mp(t,e){switch(Se(Go,e),Se(Ho,t),Se(Nn,ya),t=e.nodeType,t){case 9:case 11:e=(e=e.documentElement)?e.namespaceURI:Jc(null,"");break;default:t=t===8?e.parentNode:e,e=t.namespaceURI||null,t=t.tagName,e=Jc(e,t)}xe(Nn),Se(Nn,e)}function Ts(){xe(Nn),xe(Ho),xe(Go)}function oy(t){mr(Go.current);var e=mr(Nn.current),n=Jc(e,t.type);e!==n&&(Se(Ho,t),Se(Nn,n))}function $p(t){Ho.current===t&&(xe(Nn),xe(Ho))}var Ee=Qi(0);function Ml(t){for(var e=t;e!==null;){if(e.tag===13){var n=e.memoizedState;if(n!==null&&(n=n.dehydrated,n===null||n.data==="$?"||n.data==="$!"))return e}else if(e.tag===19&&e.memoizedProps.revealOrder!==void 0){if(e.flags&128)return e}else if(e.child!==null){e.child.return=e,e=e.child;continue}if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return null;e=e.return}e.sibling.return=e.return,e=e.sibling}return null}var hc=[];function Kp(){for(var t=0;t<hc.length;t++)hc[t]._workInProgressVersionPrimary=null;hc.length=0}var hl=li.ReactCurrentDispatcher,fc=li.ReactCurrentBatchConfig,Ar=0,_e=null,Me=null,ze=null,$l=!1,To=!1,Qo=0,gx=0;function et(){throw Error(U(321))}function zp(t,e){if(e===null)return!1;for(var n=0;n<e.length&&n<t.length;n++)if(!wn(t[n],e[n]))return!1;return!0}function Vp(t,e,n,i,r,s){if(Ar=s,_e=e,e.memoizedState=null,e.updateQueue=null,e.lanes=0,hl.current=t===null||t.memoizedState===null?wx:bx,t=n(i,r),To){s=0;do{if(To=!1,Qo=0,25<=s)throw Error(U(301));s+=1,ze=Me=null,e.updateQueue=null,hl.current=xx,t=n(i,r)}while(To)}if(hl.current=Kl,e=Me!==null&&Me.next!==null,Ar=0,ze=Me=_e=null,$l=!1,e)throw Error(U(300));return t}function Bp(){var t=Qo!==0;return Qo=0,t}function Rn(){var t={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return ze===null?_e.memoizedState=ze=t:ze=ze.next=t,ze}function Qt(){if(Me===null){var t=_e.alternate;t=t!==null?t.memoizedState:null}else t=Me.next;var e=ze===null?_e.memoizedState:ze.next;if(e!==null)ze=e,Me=t;else{if(t===null)throw Error(U(310));Me=t,t={memoizedState:Me.memoizedState,baseState:Me.baseState,baseQueue:Me.baseQueue,queue:Me.queue,next:null},ze===null?_e.memoizedState=ze=t:ze=ze.next=t}return ze}function Yo(t,e){return typeof e=="function"?e(t):e}function mc(t){var e=Qt(),n=e.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=t;var i=Me,r=i.baseQueue,s=n.pending;if(s!==null){if(r!==null){var o=r.next;
vendor: 6,264 bytes, line 39
39r.next=s.next,s.next=o}i.baseQueue=r=s,n.pending=null}if(r!==null){s=r.next,i=i.baseState;var a=o=null,l=null,u=s;do{var c=u.lane;if((Ar&c)===c)l!==null&&(l=l.next={lane:0,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null}),i=u.hasEagerState?u.eagerState:t(i,u.action);else{var p={lane:c,action:u.action,hasEagerState:u.hasEagerState,eagerState:u.eagerState,next:null};l===null?(a=l=p,o=i):l=l.next=p,_e.lanes|=c,Tr|=c}u=u.next}while(u!==null&&u!==s);l===null?o=i:l.next=a,wn(i,e.memoizedState)||(xt=!0),e.memoizedState=i,e.baseState=o,e.baseQueue=l,n.lastRenderedState=i}if(t=n.interleaved,t!==null){r=t;do s=r.lane,_e.lanes|=s,Tr|=s,r=r.next;while(r!==t)}else r===null&&(n.lanes=0);return[e.memoizedState,n.dispatch]}function gc(t){var e=Qt(),n=e.queue;if(n===null)throw Error(U(311));n.lastRenderedReducer=t;var i=n.dispatch,r=n.pending,s=e.memoizedState;if(r!==null){n.pending=null;var o=r=r.next;do s=t(s,o.action),o=o.next;while(o!==r);wn(s,e.memoizedState)||(xt=!0),e.memoizedState=s,e.baseQueue===null&&(e.baseState=s),n.lastRenderedState=s}return[s,i]}function ay(){}function ly(t,e){var n=_e,i=Qt(),r=e(),s=!wn(i.memoizedState,r);if(s&&(i.memoizedState=r,xt=!0),i=i.queue,Wp(dy.bind(null,n,i,t),[t]),i.getSnapshot!==e||s||ze!==null&&ze.memoizedState.tag&1){if(n.flags|=2048,Jo(9,cy.bind(null,n,i,r,e),void 0,null),Ve===null)throw Error(U(349));Ar&30||uy(n,e,r)}return r}function uy(t,e,n){t.flags|=16384,t={getSnapshot:e,value:n},e=_e.updateQueue,e===null?(e={lastEffect:null,stores:null},_e.updateQueue=e,e.stores=[t]):(n=e.stores,n===null?e.stores=[t]:n.push(t))}function cy(t,e,n,i){e.value=n,e.getSnapshot=i,py(e)&&hy(t)}function dy(t,e,n){return n(function(){py(e)&&hy(t)})}function py(t){var e=t.getSnapshot;t=t.value;try{var n=e();return!wn(t,n)}catch{return!0}}function hy(t){var e=ri(t,1);e!==null&&Sn(e,t,1,-1)}function Nf(t){var e=Rn();return typeof t=="function"&&(t=t()),e.memoizedState=e.baseState=t,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Yo,lastRenderedState:t},e.queue=t,t=t.dispatch=Sx.bind(null,_e,t),[e.memoizedState,t]}function Jo(t,e,n,i){return t={tag:t,create:e,destroy:n,deps:i,next:null},e=_e.updateQueue,e===null?(e={lastEffect:null,stores:null},_e.updateQueue=e,e.lastEffect=t.next=t):(n=e.lastEffect,n===null?e.lastEffect=t.next=t:(i=n.next,n.next=t,t.next=i,e.lastEffect=t)),t}function fy(){return Qt().memoizedState}function fl(t,e,n,i){var r=Rn();_e.flags|=t,r.memoizedState=Jo(1|e,n,void 0,i===void 0?null:i)}function vu(t,e,n,i){var r=Qt();i=i===void 0?null:i;var s=void 0;if(Me!==null){var o=Me.memoizedState;if(s=o.destroy,i!==null&&zp(i,o.deps)){r.memoizedState=Jo(e,n,s,i);return}}_e.flags|=t,r.memoizedState=Jo(1|e,n,s,i)}function qf(t,e){return fl(8390656,8,t,e)}function Wp(t,e){return vu(2048,8,t,e)}function my(t,e){return vu(4,2,t,e)}function gy(t,e){return vu(4,4,t,e)}function vy(t,e){if(typeof e=="function")return t=t(),e(t),function(){e(null)};if(e!=null)return t=t(),e.current=t,function(){e.current=null}}function yy(t,e,n){return n=n!=null?n.concat([t]):null,vu(4,4,vy.bind(null,e,t),n)}function Hp(){}function Sy(t,e){var n=Qt();e=e===void 0?null:e;var i=n.memoizedState;return i!==null&&e!==null&&zp(e,i[1])?i[0]:(n.memoizedState=[t,e],t)}function wy(t,e){var n=Qt();e=e===void 0?null:e;var i=n.memoizedState;return i!==null&&e!==null&&zp(e,i[1])?i[0]:(t=t(),n.memoizedState=[t,e],t)}function by(t,e,n){return Ar&21?(wn(n,e)||(n=_v(),_e.lanes|=n,Tr|=n,t.baseState=!0),e):(t.baseState&&(t.baseState=!1,xt=!0),t.memoizedState=n)}function vx(t,e){var n=ge;ge=n!==0&&4>n?n:4,t(!0);var i=fc.transition;fc.transition={};try{t(!1),e()}finally{ge=n,fc.transition=i}}function xy(){return Qt().memoizedState}function yx(t,e,n){var i=Fi(t);if(n={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null},ky(t))Cy(e,n);else if(n=ry(t,e,n,i),n!==null){var r=dt();Sn(n,t,i,r),Ey(n,e,i)}}function Sx(t,e,n){var i=Fi(t),r={lane:i,action:n,hasEagerState:!1,eagerState:null,next:null};if(ky(t))Cy(e,r);else{var s=t.alternate;if(t.lanes===0&&(s===null||s.lanes===0)&&(s=e.lastRenderedReducer,s!==null))try{var o=e.lastRenderedState,a=s(o,n);if(r.hasEagerState=!0,r.eagerState=a,wn(a,o)){var l=e.interleaved;l===null?(r.next=r,Dp(e)):(r.next=l.next,l.next=r),e.interleaved=r;return}}catch{}finally{}n=ry(t,e,r,i),n!==null&&(r=dt(),Sn(n,t,i,r),Ey(n,e,i))}}function ky(t){var e=t.alternate;return t===_e||e!==null&&e===_e}function Cy(t,e){To=$l=!0;var n=t.pending;n===null?e.next=e:(e.next=n.next,n.next=e),t.pending=e}function Ey(t,e,n){if(n&4194240){var i=e.lanes;i&=t.pendingLanes,n|=i,e.lanes=n,Cp(t,n)}}var Kl={readContext:Gt,useCallback:et,useContext:et,useEffect:et,useImperativeHandle:et,useInsertionEffect:et,useLayoutEffect:et,useMemo:et,useReducer:et,useRef:et,useState:et,useDebugValue:et,useDeferredValue:et,useTransition:et,useMutableSource:et,useSyncExternalStore:et,useId:et,unstable_isNewReconciler:!1},wx={readContext:Gt,useCallback:function(t,e){return Rn().memoizedState=[t,e===void 0?null:e],t},useContext:Gt,useEffect:qf,useImperativeHandle:function(t,e,n){return n=n!=null?n.concat([t]):null,fl(4194308,4,vy.bind(null,e,t),n)},useLayoutEffect:function(t,e){return fl(4194308,4,t,e)},useInsertionEffect:function(t,e){return fl(4,2,t,e)},useMemo:function(t,e){var n=Rn();return e=e===void 0?null:e,t=t(),n.memoizedState=[t,e],t},useReducer:function(t,e,n){var i=Rn();return e=n!==void 0?n(e):e,i.memoizedState=i.baseState=e,t={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:t,lastRenderedState:e},i.queue=t,t=t.dispatch=yx.bind(null,_e,t),[i.memoizedState,t]},useRef:function(t){var e=Rn();return t={current:t},e.memoizedState=t},useState:Nf,useDebugValue:Hp,useDeferredValue:function(t){return Rn().memoizedState=t},useTransition:function(){var t=Nf(!1),e=t[0];return t=vx.bind(null,t[1]),Rn().memoizedState=t,[e,t]},useMutableSource:function(){},useSyncExternalStore:function(t,e,n){var i=_e,r=Rn();if(Ce){if(n===void 0)throw Error(U(407));n=n()}else{if(n=e(),Ve===null)throw Error(U(349));Ar&30||uy(i,e,n)}r.memoizedState=n;var s={value:n,getSnapshot:e};return r.queue=s,qf(dy.bind(null,i,s,t),[t]),i.flags|=2048,Jo(9,cy.bind(null,i,s,n,e),void 0,null),n},useId:function(){var t=Rn(),e=Ve.identifierPrefix;
vendor: 6,781 bytes, lines 39-41
39if(Ce){var n=ei,i=Zn;n=(i&~(1<<32-yn(i)-1)).toString(32)+n,e=":"+e+"R"+n,n=Qo++,0<n&&(e+="H"+n.toString(32)),e+=":"}else n=gx++,e=":"+e+"r"+n.toString(32)+":";return t.memoizedState=e},unstable_isNewReconciler:!1},bx={readContext:Gt,useCallback:Sy,useContext:Gt,useEffect:Wp,useImperativeHandle:yy,useInsertionEffect:my,useLayoutEffect:gy,useMemo:wy,useReducer:mc,useRef:fy,useState:function(){return mc(Yo)},useDebugValue:Hp,useDeferredValue:function(t){var e=Qt();return by(e,Me.memoizedState,t)},useTransition:function(){var t=mc(Yo)[0],e=Qt().memoizedState;return[t,e]},useMutableSource:ay,useSyncExternalStore:ly,useId:xy,unstable_isNewReconciler:!1},xx={readContext:Gt,useCallback:Sy,useContext:Gt,useEffect:Wp,useImperativeHandle:yy,useInsertionEffect:my,useLayoutEffect:gy,useMemo:wy,useReducer:gc,useRef:fy,useState:function(){return gc(Yo)},useDebugValue:Hp,useDeferredValue:function(t){var e=Qt();return Me===null?e.memoizedState=t:by(e,Me.memoizedState,t)},useTransition:function(){var t=gc(Yo)[0],e=Qt().memoizedState;return[t,e]},useMutableSource:ay,useSyncExternalStore:ly,useId:xy,unstable_isNewReconciler:!1};function ln(t,e){if(t&&t.defaultProps){e=Te({},e),t=t.defaultProps;for(var n in t)e[n]===void 0&&(e[n]=t[n]);return e}return e}function yd(t,e,n,i){e=t.memoizedState,n=n(i,e),n=n==null?e:Te({},e,n),t.memoizedState=n,t.lanes===0&&(t.updateQueue.baseState=n)}var yu={isMounted:function(t){return(t=t._reactInternals)?Or(t)===t:!1},enqueueSetState:function(t,e,n){t=t._reactInternals;var i=dt(),r=Fi(t),s=ti(i,r);s.payload=e,n!=null&&(s.callback=n),e=qi(t,s,r),e!==null&&(Sn(e,t,r,i),pl(e,t,r))},enqueueReplaceState:function(t,e,n){t=t._reactInternals;var i=dt(),r=Fi(t),s=ti(i,r);s.tag=1,s.payload=e,n!=null&&(s.callback=n),e=qi(t,s,r),e!==null&&(Sn(e,t,r,i),pl(e,t,r))},enqueueForceUpdate:function(t,e){t=t._reactInternals;var n=dt(),i=Fi(t),r=ti(n,i);r.tag=2,e!=null&&(r.callback=e),e=qi(t,r,i),e!==null&&(Sn(e,t,i,n),pl(e,t,i))}};function Df(t,e,n,i,r,s,o){return t=t.stateNode,typeof t.shouldComponentUpdate=="function"?t.shouldComponentUpdate(i,s,o):e.prototype&&e.prototype.isPureReactComponent?!zo(n,i)||!zo(r,s):!0}function _y(t,e,n){var i=!1,r=zi,s=e.contextType;return typeof s=="object"&&s!==null?s=Gt(s):(r=Ct(e)?Er:rt.current,i=e.contextTypes,s=(i=i!=null)?Es(t,r):zi),e=new e(n,s),t.memoizedState=e.state!==null&&e.state!==void 0?e.state:null,e.updater=yu,t.stateNode=e,e._reactInternals=t,i&&(t=t.stateNode,t.__reactInternalMemoizedUnmaskedChildContext=r,t.__reactInternalMemoizedMaskedChildContext=s),e}function Ff(t,e,n,i){t=e.state,typeof e.componentWillReceiveProps=="function"&&e.componentWillReceiveProps(n,i),typeof e.UNSAFE_componentWillReceiveProps=="function"&&e.UNSAFE_componentWillReceiveProps(n,i),e.state!==t&&yu.enqueueReplaceState(e,e.state,null)}function Sd(t,e,n,i){var r=t.stateNode;r.props=n,r.state=t.memoizedState,r.refs={},Fp(t);var s=e.contextType;typeof s=="object"&&s!==null?r.context=Gt(s):(s=Ct(e)?Er:rt.current,r.context=Es(t,s)),r.state=t.memoizedState,s=e.getDerivedStateFromProps,typeof s=="function"&&(yd(t,e,s,n),r.state=t.memoizedState),typeof e.getDerivedStateFromProps=="function"||typeof r.getSnapshotBeforeUpdate=="function"||typeof r.UNSAFE_componentWillMount!="function"&&typeof r.componentWillMount!="function"||(e=r.state,typeof r.componentWillMount=="function"&&r.componentWillMount(),typeof r.UNSAFE_componentWillMount=="function"&&r.UNSAFE_componentWillMount(),e!==r.state&&yu.enqueueReplaceState(r,r.state,null),Fl(t,n,r,i),r.state=t.memoizedState),typeof r.componentDidMount=="function"&&(t.flags|=4194308)}function Rs(t,e){try{var n="",i=e;do n+=Yb(i),i=i.return;while(i);var r=n}catch(s){r=`
40Error generating stack: `+s.message+`
41`+s.stack}return{value:t,source:e,stack:r,digest:null}}function vc(t,e,n){return{value:t,source:null,stack:n??null,digest:e??null}}function wd(t,e){try{console.error(e.value)}catch(n){setTimeout(function(){throw n})}}var kx=typeof WeakMap=="function"?WeakMap:Map;function Ay(t,e,n){n=ti(-1,n),n.tag=3,n.payload={element:null};var i=e.value;return n.callback=function(){Vl||(Vl=!0,Pd=i),wd(t,e)},n}function Ty(t,e,n){n=ti(-1,n),n.tag=3;var i=t.type.getDerivedStateFromError;if(typeof i=="function"){var r=e.value;n.payload=function(){return i(r)},n.callback=function(){wd(t,e)}}var s=t.stateNode;return s!==null&&typeof s.componentDidCatch=="function"&&(n.callback=function(){wd(t,e),typeof i!="function"&&(Di===null?Di=new Set([this]):Di.add(this));var o=e.stack;this.componentDidCatch(e.value,{componentStack:o!==null?o:""})}),n}function Mf(t,e,n){var i=t.pingCache;if(i===null){i=t.pingCache=new kx;var r=new Set;i.set(e,r)}else r=i.get(e),r===void 0&&(r=new Set,i.set(e,r));r.has(n)||(r.add(n),t=qx.bind(null,t,e,n),e.then(t,t))}function $f(t){do{var e;if((e=t.tag===13)&&(e=t.memoizedState,e=e!==null?e.dehydrated!==null:!0),e)return t;t=t.return}while(t!==null);return null}function Kf(t,e,n,i,r){return t.mode&1?(t.flags|=65536,t.lanes=r,t):(t===e?t.flags|=65536:(t.flags|=128,n.flags|=131072,n.flags&=-52805,n.tag===1&&(n.alternate===null?n.tag=17:(e=ti(-1,1),e.tag=2,qi(n,e,1))),n.lanes|=1),t)}var Cx=li.ReactCurrentOwner,xt=!1;function lt(t,e,n,i){e.child=t===null?iy(e,null,n,i):As(e,t.child,n,i)}function zf(t,e,n,i,r){n=n.render;var s=e.ref;return ds(e,r),i=Vp(t,e,n,i,s,r),n=Bp(),t!==null&&!xt?(e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~r,si(t,e,r)):(Ce&&n&&Ip(e),e.flags|=1,lt(t,e,i,r),e.child)}function Vf(t,e,n,i,r){if(t===null){var s=n.type;return typeof s=="function"&&!th(s)&&s.defaultProps===void 0&&n.compare===null&&n.defaultProps===void 0?(e.tag=15,e.type=s,Ry(t,e,s,i,r)):(t=yl(n.type,null,i,e,e.mode,r),t.ref=e.ref,t.return=e,e.child=t)}if(s=t.child,!(t.lanes&r)){var o=s.memoizedProps;if(n=n.compare,n=n!==null?n:zo,n(o,i)&&t.ref===e.ref)return si(t,e,r)}return e.flags|=1,t=Mi(s,i),t.ref=e.ref,t.return=e,e.child=t}function Ry(t,e,n,i,r){if(t!==null){var s=t.memoizedProps;if(zo(s,i)&&t.ref===e.ref)if(xt=!1,e.pendingProps=i=s,(t.lanes&r)!==0)t.flags&131072&&(xt=!0);else return e.lanes=t.lanes,si(t,e,r)}return bd(t,e,n,i,r)}function Py(t,e,n){var i=e.pendingProps,r=i.children,s=t!==null?t.memoizedState:null;if(i.mode==="hidden")if(!(e.mode&1))e.memoizedState={baseLanes:0,cachePool:null,transitions:null},Se(ss,Ut),Ut|=n;else{if(!(n&1073741824))return t=s!==null?s.baseLanes|n:n,e.lanes=e.childLanes=1073741824,e.memoizedState={baseLanes:t,cachePool:null,transitions:null},e.updateQueue=null,Se(ss,Ut),Ut|=t,null;e.memoizedState={baseLanes:0,cachePool:null,transitions:null},i=s!==null?s.baseLanes:n,Se(ss,Ut),Ut|=i}else s!==null?(i=s.baseLanes|n,e.memoizedState=null):i=n,Se(ss,Ut),Ut|=i;return lt(t,e,r,n),e.child}function Uy(t,e){var n=e.ref;(t===null&&n!==null||t!==null&&t.ref!==n)&&(e.flags|=512,e.flags|=2097152)}
vendor: 8,511 bytes, line 41
41function bd(t,e,n,i,r){var s=Ct(n)?Er:rt.current;return s=Es(e,s),ds(e,r),n=Vp(t,e,n,i,s,r),i=Bp(),t!==null&&!xt?(e.updateQueue=t.updateQueue,e.flags&=-2053,t.lanes&=~r,si(t,e,r)):(Ce&&i&&Ip(e),e.flags|=1,lt(t,e,n,r),e.child)}function Bf(t,e,n,i,r){if(Ct(n)){var s=!0;Ll(e)}else s=!1;if(ds(e,r),e.stateNode===null)ml(t,e),_y(e,n,i),Sd(e,n,i,r),i=!0;else if(t===null){var o=e.stateNode,a=e.memoizedProps;o.props=a;var l=o.context,u=n.contextType;typeof u=="object"&&u!==null?u=Gt(u):(u=Ct(n)?Er:rt.current,u=Es(e,u));var c=n.getDerivedStateFromProps,p=typeof c=="function"||typeof o.getSnapshotBeforeUpdate=="function";p||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==i||l!==u)&&Ff(e,o,i,u),wi=!1;var h=e.memoizedState;o.state=h,Fl(e,i,o,r),l=e.memoizedState,a!==i||h!==l||kt.current||wi?(typeof c=="function"&&(yd(e,n,c,i),l=e.memoizedState),(a=wi||Df(e,n,a,i,h,l,u))?(p||typeof o.UNSAFE_componentWillMount!="function"&&typeof o.componentWillMount!="function"||(typeof o.componentWillMount=="function"&&o.componentWillMount(),typeof o.UNSAFE_componentWillMount=="function"&&o.UNSAFE_componentWillMount()),typeof o.componentDidMount=="function"&&(e.flags|=4194308)):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),e.memoizedProps=i,e.memoizedState=l),o.props=i,o.state=l,o.context=u,i=a):(typeof o.componentDidMount=="function"&&(e.flags|=4194308),i=!1)}else{o=e.stateNode,sy(t,e),a=e.memoizedProps,u=e.type===e.elementType?a:ln(e.type,a),o.props=u,p=e.pendingProps,h=o.context,l=n.contextType,typeof l=="object"&&l!==null?l=Gt(l):(l=Ct(n)?Er:rt.current,l=Es(e,l));var d=n.getDerivedStateFromProps;(c=typeof d=="function"||typeof o.getSnapshotBeforeUpdate=="function")||typeof o.UNSAFE_componentWillReceiveProps!="function"&&typeof o.componentWillReceiveProps!="function"||(a!==p||h!==l)&&Ff(e,o,i,l),wi=!1,h=e.memoizedState,o.state=h,Fl(e,i,o,r);var v=e.memoizedState;a!==p||h!==v||kt.current||wi?(typeof d=="function"&&(yd(e,n,d,i),v=e.memoizedState),(u=wi||Df(e,n,u,i,h,v,l)||!1)?(c||typeof o.UNSAFE_componentWillUpdate!="function"&&typeof o.componentWillUpdate!="function"||(typeof o.componentWillUpdate=="function"&&o.componentWillUpdate(i,v,l),typeof o.UNSAFE_componentWillUpdate=="function"&&o.UNSAFE_componentWillUpdate(i,v,l)),typeof o.componentDidUpdate=="function"&&(e.flags|=4),typeof o.getSnapshotBeforeUpdate=="function"&&(e.flags|=1024)):(typeof o.componentDidUpdate!="function"||a===t.memoizedProps&&h===t.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===t.memoizedProps&&h===t.memoizedState||(e.flags|=1024),e.memoizedProps=i,e.memoizedState=v),o.props=i,o.state=v,o.context=l,i=u):(typeof o.componentDidUpdate!="function"||a===t.memoizedProps&&h===t.memoizedState||(e.flags|=4),typeof o.getSnapshotBeforeUpdate!="function"||a===t.memoizedProps&&h===t.memoizedState||(e.flags|=1024),i=!1)}return xd(t,e,n,i,s,r)}function xd(t,e,n,i,r,s){Uy(t,e);var o=(e.flags&128)!==0;if(!i&&!o)return r&&Pf(e,n,!1),si(t,e,s);i=e.stateNode,Cx.current=e;var a=o&&typeof n.getDerivedStateFromError!="function"?null:i.render();return e.flags|=1,t!==null&&o?(e.child=As(e,t.child,null,s),e.child=As(e,null,a,s)):lt(t,e,a,s),e.memoizedState=i.state,r&&Pf(e,n,!0),e.child}function Iy(t){var e=t.stateNode;e.pendingContext?Rf(t,e.pendingContext,e.pendingContext!==e.context):e.context&&Rf(t,e.context,!1),Mp(t,e.containerInfo)}function Wf(t,e,n,i,r){return _s(),Lp(r),e.flags|=256,lt(t,e,n,i),e.child}var kd={dehydrated:null,treeContext:null,retryLane:0};function Cd(t){return{baseLanes:t,cachePool:null,transitions:null}}function Oy(t,e,n){var i=e.pendingProps,r=Ee.current,s=!1,o=(e.flags&128)!==0,a;if((a=o)||(a=t!==null&&t.memoizedState===null?!1:(r&2)!==0),a?(s=!0,e.flags&=-129):(t===null||t.memoizedState!==null)&&(r|=1),Se(Ee,r&1),t===null)return gd(e),t=e.memoizedState,t!==null&&(t=t.dehydrated,t!==null)?(e.mode&1?t.data==="$!"?e.lanes=8:e.lanes=1073741824:e.lanes=1,null):(o=i.children,t=i.fallback,s?(i=e.mode,s=e.child,o={mode:"hidden",children:o},!(i&1)&&s!==null?(s.childLanes=0,s.pendingProps=o):s=bu(o,i,0,null),t=Cr(t,i,n,null),s.return=e,t.return=e,s.sibling=t,e.child=s,e.child.memoizedState=Cd(n),e.memoizedState=kd,t):Gp(e,o));if(r=t.memoizedState,r!==null&&(a=r.dehydrated,a!==null))return Ex(t,e,o,i,a,r,n);if(s){s=i.fallback,o=e.mode,r=t.child,a=r.sibling;var l={mode:"hidden",children:i.children};return!(o&1)&&e.child!==r?(i=e.child,i.childLanes=0,i.pendingProps=l,e.deletions=null):(i=Mi(r,l),i.subtreeFlags=r.subtreeFlags&14680064),a!==null?s=Mi(a,s):(s=Cr(s,o,n,null),s.flags|=2),s.return=e,i.return=e,i.sibling=s,e.child=i,i=s,s=e.child,o=t.child.memoizedState,o=o===null?Cd(n):{baseLanes:o.baseLanes|n,cachePool:null,transitions:o.transitions},s.memoizedState=o,s.childLanes=t.childLanes&~n,e.memoizedState=kd,i}return s=t.child,t=s.sibling,i=Mi(s,{mode:"visible",children:i.children}),!(e.mode&1)&&(i.lanes=n),i.return=e,i.sibling=null,t!==null&&(n=e.deletions,n===null?(e.deletions=[t],e.flags|=16):n.push(t)),e.child=i,e.memoizedState=null,i}function Gp(t,e){return e=bu({mode:"visible",children:e},t.mode,0,null),e.return=t,t.child=e}function Ma(t,e,n,i){return i!==null&&Lp(i),As(e,t.child,null,n),t=Gp(e,e.pendingProps.children),t.flags|=2,e.memoizedState=null,t}function Ex(t,e,n,i,r,s,o){if(n)return e.flags&256?(e.flags&=-257,i=vc(Error(U(422))),Ma(t,e,o,i)):e.memoizedState!==null?(e.child=t.child,e.flags|=128,null):(s=i.fallback,r=e.mode,i=bu({mode:"visible",children:i.children},r,0,null),s=Cr(s,r,o,null),s.flags|=2,i.return=e,s.return=e,i.sibling=s,e.child=i,e.mode&1&&As(e,t.child,null,o),e.child.memoizedState=Cd(o),e.memoizedState=kd,s);if(!(e.mode&1))return Ma(t,e,o,null);if(r.data==="$!"){if(i=r.nextSibling&&r.nextSibling.dataset,i)var a=i.dgst;return i=a,s=Error(U(419)),i=vc(s,i,void 0),Ma(t,e,o,i)}if(a=(o&t.childLanes)!==0,xt||a){if(i=Ve,i!==null){switch(o&-o){case 4:r=2;break;case 16:r=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:r=32;break;case 536870912:r=268435456;break;default:r=0}r=r&(i.suspendedLanes|o)?0:r,r!==0&&r!==s.retryLane&&(s.retryLane=r,ri(t,r),Sn(i,t,r,-1))}return eh(),i=vc(Error(U(421))),Ma(t,e,o,i)}return r.data==="$?"?(e.flags|=128,e.child=t.child,e=Dx.bind(null,t),r._reactRetry=e,null):(t=s.treeContext,Lt=Ni(r.nextSibling),jt=e,Ce=!0,mn=null,t!==null&&(Vt[Bt++]=Zn,Vt[Bt++]=ei,Vt[Bt++]=_r,Zn=t.id,ei=t.overflow,_r=e),e=Gp(e,i.children),e.flags|=4096,e)}function Hf(t,e,n){t.lanes|=e;var i=t.alternate;i!==null&&(i.lanes|=e),vd(t.return,e,n)}function yc(t,e,n,i,r){var s=t.memoizedState;s===null?t.memoizedState={isBackwards:e,rendering:null,renderingStartTime:0,last:i,tail:n,tailMode:r}:(s.isBackwards=e,s.rendering=null,s.renderingStartTime=0,s.last=i,s.tail=n,s.tailMode=r)}function Ly(t,e,n){var i=e.pendingProps,r=i.revealOrder,s=i.tail;if(lt(t,e,i.children,n),i=Ee.current,i&2)i=i&1|2,e.flags|=128;else{if(t!==null&&t.flags&128)e:for(t=e.child;t!==null;){if(t.tag===13)t.memoizedState!==null&&Hf(t,n,e);else if(t.tag===19)Hf(t,n,e);else if(t.child!==null){t.child.return=t,t=t.child;continue}if(t===e)break e;for(;t.sibling===null;){if(t.return===null||t.return===e)break e;t=t.return}t.sibling.return=t.return,t=t.sibling}i&=1}if(Se(Ee,i),!(e.mode&1))e.memoizedState=null;else switch(r){case"forwards":for(n=e.child,r=null;n!==null;)t=n.alternate,t!==null&&Ml(t)===null&&(r=n),n=n.sibling;n=r,n===null?(r=e.child,e.child=null):(r=n.sibling,n.sibling=null),yc(e,!1,r,n,s);break;case"backwards":for(n=null,r=e.child,e.child=null;r!==null;){if(t=r.alternate,t!==null&&Ml(t)===null){e.child=r;break}t=r.sibling,r.sibling=n,n=r,r=t}yc(e,!0,n,null,s);break;case"together":yc(e,!1,null,null,void 0);break;default:e.memoizedState=null}return e.child}function ml(t,e){!(e.mode&1)&&t!==null&&(t.alternate=null,e.alternate=null,e.flags|=2)}function si(t,e,n){if(t!==null&&(e.dependencies=t.dependencies),Tr|=e.lanes,!(n&e.childLanes))return null;if(t!==null&&e.child!==t.child)throw Error(U(153));if(e.child!==null){for(t=e.child,n=Mi(t,t.pendingProps),e.child=n,n.return=e;t.sibling!==null;)t=t.sibling,n=n.sibling=Mi(t,t.pendingProps),n.return=e;n.sibling=null}return e.child}function _x(t,e,n){switch(e.tag){case 3:Iy(e),_s();break;case 5:oy(e);break;case 1:Ct(e.type)&&Ll(e);break;case 4:Mp(e,e.stateNode.containerInfo);break;
vendor: 4,413 bytes, line 41
41case 10:var i=e.type._context,r=e.memoizedProps.value;Se(ql,i._currentValue),i._currentValue=r;break;case 13:if(i=e.memoizedState,i!==null)return i.dehydrated!==null?(Se(Ee,Ee.current&1),e.flags|=128,null):n&e.child.childLanes?Oy(t,e,n):(Se(Ee,Ee.current&1),t=si(t,e,n),t!==null?t.sibling:null);Se(Ee,Ee.current&1);break;case 19:if(i=(n&e.childLanes)!==0,t.flags&128){if(i)return Ly(t,e,n);e.flags|=128}if(r=e.memoizedState,r!==null&&(r.rendering=null,r.tail=null,r.lastEffect=null),Se(Ee,Ee.current),i)break;return null;case 22:case 23:return e.lanes=0,Py(t,e,n)}return si(t,e,n)}var jy,Ed,Ny,qy;jy=function(t,e){for(var n=e.child;n!==null;){if(n.tag===5||n.tag===6)t.appendChild(n.stateNode);else if(n.tag!==4&&n.child!==null){n.child.return=n,n=n.child;continue}if(n===e)break;for(;n.sibling===null;){if(n.return===null||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}};Ed=function(){};Ny=function(t,e,n,i){var r=t.memoizedProps;if(r!==i){t=e.stateNode,mr(Nn.current);var s=null;switch(n){case"input":r=Hc(t,r),i=Hc(t,i),s=[];break;case"select":r=Te({},r,{value:void 0}),i=Te({},i,{value:void 0}),s=[];break;case"textarea":r=Yc(t,r),i=Yc(t,i),s=[];break;default:typeof r.onClick!="function"&&typeof i.onClick=="function"&&(t.onclick=Il)}Xc(n,i);var o;n=null;for(u in r)if(!i.hasOwnProperty(u)&&r.hasOwnProperty(u)&&r[u]!=null)if(u==="style"){var a=r[u];for(o in a)a.hasOwnProperty(o)&&(n||(n={}),n[o]="")}else u!=="dangerouslySetInnerHTML"&&u!=="children"&&u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&u!=="autoFocus"&&(No.hasOwnProperty(u)?s||(s=[]):(s=s||[]).push(u,null));for(u in i){var l=i[u];if(a=r!=null?r[u]:void 0,i.hasOwnProperty(u)&&l!==a&&(l!=null||a!=null))if(u==="style")if(a){for(o in a)!a.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(n||(n={}),n[o]="");for(o in l)l.hasOwnProperty(o)&&a[o]!==l[o]&&(n||(n={}),n[o]=l[o])}else n||(s||(s=[]),s.push(u,n)),n=l;else u==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,a=a?a.__html:void 0,l!=null&&a!==l&&(s=s||[]).push(u,l)):u==="children"?typeof l!="string"&&typeof l!="number"||(s=s||[]).push(u,""+l):u!=="suppressContentEditableWarning"&&u!=="suppressHydrationWarning"&&(No.hasOwnProperty(u)?(l!=null&&u==="onScroll"&&be("scroll",t),s||a===l||(s=[])):(s=s||[]).push(u,l))}n&&(s=s||[]).push("style",n);var u=s;(e.updateQueue=u)&&(e.flags|=4)}};qy=function(t,e,n,i){n!==i&&(e.flags|=4)};function ro(t,e){if(!Ce)switch(t.tailMode){case"hidden":e=t.tail;for(var n=null;e!==null;)e.alternate!==null&&(n=e),e=e.sibling;n===null?t.tail=null:n.sibling=null;break;case"collapsed":n=t.tail;for(var i=null;n!==null;)n.alternate!==null&&(i=n),n=n.sibling;i===null?e||t.tail===null?t.tail=null:t.tail.sibling=null:i.sibling=null}}function tt(t){var e=t.alternate!==null&&t.alternate.child===t.child,n=0,i=0;if(e)for(var r=t.child;r!==null;)n|=r.lanes|r.childLanes,i|=r.subtreeFlags&14680064,i|=r.flags&14680064,r.return=t,r=r.sibling;else for(r=t.child;r!==null;)n|=r.lanes|r.childLanes,i|=r.subtreeFlags,i|=r.flags,r.return=t,r=r.sibling;return t.subtreeFlags|=i,t.childLanes=n,e}function Ax(t,e,n){var i=e.pendingProps;switch(Op(e),e.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return tt(e),null;case 1:return Ct(e.type)&&Ol(),tt(e),null;case 3:return i=e.stateNode,Ts(),xe(kt),xe(rt),Kp(),i.pendingContext&&(i.context=i.pendingContext,i.pendingContext=null),(t===null||t.child===null)&&(Da(e)?e.flags|=4:t===null||t.memoizedState.isDehydrated&&!(e.flags&256)||(e.flags|=1024,mn!==null&&(Od(mn),mn=null))),Ed(t,e),tt(e),null;case 5:$p(e);var r=mr(Go.current);if(n=e.type,t!==null&&e.stateNode!=null)Ny(t,e,n,i,r),t.ref!==e.ref&&(e.flags|=512,e.flags|=2097152);else{if(!i){if(e.stateNode===null)throw Error(U(166));return tt(e),null}if(t=mr(Nn.current),Da(e)){i=e.stateNode,n=e.type;var s=e.memoizedProps;switch(i[On]=e,i[Wo]=s,t=(e.mode&1)!==0,n){case"dialog":be("cancel",i),be("close",i);break;case"iframe":case"object":case"embed":be("load",i);break;case"video":case"audio":for(r=0;r<wo.length;r++)be(wo[r],i);break;case"source":be("error",i);break;case"img":case"image":case"link":be("error",i),be("load",i);break;case"details":be("toggle",i);break;case"input":tf(i,s),be("invalid",i);break;case"select":i._wrapperState={wasMultiple:!!s.multiple},be("invalid",i);break;case"textarea":rf(i,s),be("invalid",i)}Xc(n,s),r=null;for(var o in s)if(s.hasOwnProperty(o)){var a=s[o];
vendor: 32,436 bytes, line 41
41o==="children"?typeof a=="string"?i.textContent!==a&&(s.suppressHydrationWarning!==!0&&qa(i.textContent,a,t),r=["children",a]):typeof a=="number"&&i.textContent!==""+a&&(s.suppressHydrationWarning!==!0&&qa(i.textContent,a,t),r=["children",""+a]):No.hasOwnProperty(o)&&a!=null&&o==="onScroll"&&be("scroll",i)}switch(n){case"input":Ra(i),nf(i,s,!0);break;case"textarea":Ra(i),sf(i);break;case"select":case"option":break;default:typeof s.onClick=="function"&&(i.onclick=Il)}i=r,e.updateQueue=i,i!==null&&(e.flags|=4)}else{o=r.nodeType===9?r:r.ownerDocument,t==="http://www.w3.org/1999/xhtml"&&(t=dv(n)),t==="http://www.w3.org/1999/xhtml"?n==="script"?(t=o.createElement("div"),t.innerHTML="<script><\/script>",t=t.removeChild(t.firstChild)):typeof i.is=="string"?t=o.createElement(n,{is:i.is}):(t=o.createElement(n),n==="select"&&(o=t,i.multiple?o.multiple=!0:i.size&&(o.size=i.size))):t=o.createElementNS(t,n),t[On]=e,t[Wo]=i,jy(t,e,!1,!1),e.stateNode=t;e:{switch(o=Zc(n,i),n){case"dialog":be("cancel",t),be("close",t),r=i;break;case"iframe":case"object":case"embed":be("load",t),r=i;break;case"video":case"audio":for(r=0;r<wo.length;r++)be(wo[r],t);r=i;break;case"source":be("error",t),r=i;break;case"img":case"image":case"link":be("error",t),be("load",t),r=i;break;case"details":be("toggle",t),r=i;break;case"input":tf(t,i),r=Hc(t,i),be("invalid",t);break;case"option":r=i;break;case"select":t._wrapperState={wasMultiple:!!i.multiple},r=Te({},i,{value:void 0}),be("invalid",t);break;case"textarea":rf(t,i),r=Yc(t,i),be("invalid",t);break;default:r=i}Xc(n,r),a=r;for(s in a)if(a.hasOwnProperty(s)){var l=a[s];s==="style"?fv(t,l):s==="dangerouslySetInnerHTML"?(l=l?l.__html:void 0,l!=null&&pv(t,l)):s==="children"?typeof l=="string"?(n!=="textarea"||l!=="")&&qo(t,l):typeof l=="number"&&qo(t,""+l):s!=="suppressContentEditableWarning"&&s!=="suppressHydrationWarning"&&s!=="autoFocus"&&(No.hasOwnProperty(s)?l!=null&&s==="onScroll"&&be("scroll",t):l!=null&&yp(t,s,l,o))}switch(n){case"input":Ra(t),nf(t,i,!1);break;case"textarea":Ra(t),sf(t);break;case"option":i.value!=null&&t.setAttribute("value",""+Ki(i.value));break;case"select":t.multiple=!!i.multiple,s=i.value,s!=null?as(t,!!i.multiple,s,!1):i.defaultValue!=null&&as(t,!!i.multiple,i.defaultValue,!0);break;default:typeof r.onClick=="function"&&(t.onclick=Il)}switch(n){case"button":case"input":case"select":case"textarea":i=!!i.autoFocus;break e;case"img":i=!0;break e;default:i=!1}}i&&(e.flags|=4)}e.ref!==null&&(e.flags|=512,e.flags|=2097152)}return tt(e),null;case 6:if(t&&e.stateNode!=null)qy(t,e,t.memoizedProps,i);else{if(typeof i!="string"&&e.stateNode===null)throw Error(U(166));if(n=mr(Go.current),mr(Nn.current),Da(e)){if(i=e.stateNode,n=e.memoizedProps,i[On]=e,(s=i.nodeValue!==n)&&(t=jt,t!==null))switch(t.tag){case 3:qa(i.nodeValue,n,(t.mode&1)!==0);break;case 5:t.memoizedProps.suppressHydrationWarning!==!0&&qa(i.nodeValue,n,(t.mode&1)!==0)}s&&(e.flags|=4)}else i=(n.nodeType===9?n:n.ownerDocument).createTextNode(i),i[On]=e,e.stateNode=i}return tt(e),null;case 13:if(xe(Ee),i=e.memoizedState,t===null||t.memoizedState!==null&&t.memoizedState.dehydrated!==null){if(Ce&&Lt!==null&&e.mode&1&&!(e.flags&128))ty(),_s(),e.flags|=98560,s=!1;else if(s=Da(e),i!==null&&i.dehydrated!==null){if(t===null){if(!s)throw Error(U(318));if(s=e.memoizedState,s=s!==null?s.dehydrated:null,!s)throw Error(U(317));s[On]=e}else _s(),!(e.flags&128)&&(e.memoizedState=null),e.flags|=4;tt(e),s=!1}else mn!==null&&(Od(mn),mn=null),s=!0;if(!s)return e.flags&65536?e:null}return e.flags&128?(e.lanes=n,e):(i=i!==null,i!==(t!==null&&t.memoizedState!==null)&&i&&(e.child.flags|=8192,e.mode&1&&(t===null||Ee.current&1?Ke===0&&(Ke=3):eh())),e.updateQueue!==null&&(e.flags|=4),tt(e),null);case 4:return Ts(),Ed(t,e),t===null&&Vo(e.stateNode.containerInfo),tt(e),null;case 10:return qp(e.type._context),tt(e),null;case 17:return Ct(e.type)&&Ol(),tt(e),null;case 19:if(xe(Ee),s=e.memoizedState,s===null)return tt(e),null;if(i=(e.flags&128)!==0,o=s.rendering,o===null)if(i)ro(s,!1);else{if(Ke!==0||t!==null&&t.flags&128)for(t=e.child;t!==null;){if(o=Ml(t),o!==null){for(e.flags|=128,ro(s,!1),i=o.updateQueue,i!==null&&(e.updateQueue=i,e.flags|=4),e.subtreeFlags=0,i=n,n=e.child;n!==null;)s=n,t=i,s.flags&=14680066,o=s.alternate,o===null?(s.childLanes=0,s.lanes=t,s.child=null,s.subtreeFlags=0,s.memoizedProps=null,s.memoizedState=null,s.updateQueue=null,s.dependencies=null,s.stateNode=null):(s.childLanes=o.childLanes,s.lanes=o.lanes,s.child=o.child,s.subtreeFlags=0,s.deletions=null,s.memoizedProps=o.memoizedProps,s.memoizedState=o.memoizedState,s.updateQueue=o.updateQueue,s.type=o.type,t=o.dependencies,s.dependencies=t===null?null:{lanes:t.lanes,firstContext:t.firstContext}),n=n.sibling;return Se(Ee,Ee.current&1|2),e.child}t=t.sibling}s.tail!==null&&Le()>Ps&&(e.flags|=128,i=!0,ro(s,!1),e.lanes=4194304)}else{if(!i)if(t=Ml(o),t!==null){if(e.flags|=128,i=!0,n=t.updateQueue,n!==null&&(e.updateQueue=n,e.flags|=4),ro(s,!0),s.tail===null&&s.tailMode==="hidden"&&!o.alternate&&!Ce)return tt(e),null}else 2*Le()-s.renderingStartTime>Ps&&n!==1073741824&&(e.flags|=128,i=!0,ro(s,!1),e.lanes=4194304);s.isBackwards?(o.sibling=e.child,e.child=o):(n=s.last,n!==null?n.sibling=o:e.child=o,s.last=o)}return s.tail!==null?(e=s.tail,s.rendering=e,s.tail=e.sibling,s.renderingStartTime=Le(),e.sibling=null,n=Ee.current,Se(Ee,i?n&1|2:n&1),e):(tt(e),null);case 22:case 23:return Zp(),i=e.memoizedState!==null,t!==null&&t.memoizedState!==null!==i&&(e.flags|=8192),i&&e.mode&1?Ut&1073741824&&(tt(e),e.subtreeFlags&6&&(e.flags|=8192)):tt(e),null;case 24:return null;case 25:return null}throw Error(U(156,e.tag))}function Tx(t,e){switch(Op(e),e.tag){case 1:return Ct(e.type)&&Ol(),t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 3:return Ts(),xe(kt),xe(rt),Kp(),t=e.flags,t&65536&&!(t&128)?(e.flags=t&-65537|128,e):null;case 5:return $p(e),null;case 13:if(xe(Ee),t=e.memoizedState,t!==null&&t.dehydrated!==null){if(e.alternate===null)throw Error(U(340));_s()}return t=e.flags,t&65536?(e.flags=t&-65537|128,e):null;case 19:return xe(Ee),null;case 4:return Ts(),null;case 10:return qp(e.type._context),null;case 22:case 23:return Zp(),null;case 24:return null;default:return null}}var $a=!1,it=!1,Rx=typeof WeakSet=="function"?WeakSet:Set,M=null;function rs(t,e){var n=t.ref;if(n!==null)if(typeof n=="function")try{n(null)}catch(i){Oe(t,e,i)}else n.current=null}function _d(t,e,n){try{n()}catch(i){Oe(t,e,i)}}var Gf=!1;function Px(t,e){if(ud=Rl,t=Kv(),Up(t)){if("selectionStart"in t)var n={start:t.selectionStart,end:t.selectionEnd};else e:{n=(n=t.ownerDocument)&&n.defaultView||window;var i=n.getSelection&&n.getSelection();if(i&&i.rangeCount!==0){n=i.anchorNode;var r=i.anchorOffset,s=i.focusNode;i=i.focusOffset;try{n.nodeType,s.nodeType}catch{n=null;break e}var o=0,a=-1,l=-1,u=0,c=0,p=t,h=null;t:for(;;){for(var d;p!==n||r!==0&&p.nodeType!==3||(a=o+r),p!==s||i!==0&&p.nodeType!==3||(l=o+i),p.nodeType===3&&(o+=p.nodeValue.length),(d=p.firstChild)!==null;)h=p,p=d;for(;;){if(p===t)break t;if(h===n&&++u===r&&(a=o),h===s&&++c===i&&(l=o),(d=p.nextSibling)!==null)break;p=h,h=p.parentNode}p=d}n=a===-1||l===-1?null:{start:a,end:l}}else n=null}n=n||{start:0,end:0}}else n=null;for(cd={focusedElem:t,selectionRange:n},Rl=!1,M=e;M!==null;)if(e=M,t=e.child,(e.subtreeFlags&1028)!==0&&t!==null)t.return=e,M=t;else for(;M!==null;){e=M;try{var v=e.alternate;if(e.flags&1024)switch(e.tag){case 0:case 11:case 15:break;case 1:if(v!==null){var g=v.memoizedProps,w=v.memoizedState,S=e.stateNode,m=S.getSnapshotBeforeUpdate(e.elementType===e.type?g:ln(e.type,g),w);S.__reactInternalSnapshotBeforeUpdate=m}break;case 3:var y=e.stateNode.containerInfo;y.nodeType===1?y.textContent="":y.nodeType===9&&y.documentElement&&y.removeChild(y.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(U(163))}}catch(x){Oe(e,e.return,x)}if(t=e.sibling,t!==null){t.return=e.return,M=t;break}M=e.return}return v=Gf,Gf=!1,v}function Ro(t,e,n){var i=e.updateQueue;if(i=i!==null?i.lastEffect:null,i!==null){var r=i=i.next;do{if((r.tag&t)===t){var s=r.destroy;r.destroy=void 0,s!==void 0&&_d(e,n,s)}r=r.next}while(r!==i)}}function Su(t,e){if(e=e.updateQueue,e=e!==null?e.lastEffect:null,e!==null){var n=e=e.next;do{if((n.tag&t)===t){var i=n.create;n.destroy=i()}n=n.next}while(n!==e)}}function Ad(t){var e=t.ref;if(e!==null){var n=t.stateNode;switch(t.tag){case 5:t=n;break;default:t=n}typeof e=="function"?e(t):e.current=t}}function Dy(t){var e=t.alternate;e!==null&&(t.alternate=null,Dy(e)),t.child=null,t.deletions=null,t.sibling=null,t.tag===5&&(e=t.stateNode,e!==null&&(delete e[On],delete e[Wo],delete e[hd],delete e[px],delete e[hx])),t.stateNode=null,t.return=null,t.dependencies=null,t.memoizedProps=null,t.memoizedState=null,t.pendingProps=null,t.stateNode=null,t.updateQueue=null}function Fy(t){return t.tag===5||t.tag===3||t.tag===4}function Qf(t){e:for(;;){for(;t.sibling===null;){if(t.return===null||Fy(t.return))return null;t=t.return}for(t.sibling.return=t.return,t=t.sibling;t.tag!==5&&t.tag!==6&&t.tag!==18;){if(t.flags&2||t.child===null||t.tag===4)continue e;t.child.return=t,t=t.child}if(!(t.flags&2))return t.stateNode}}function Td(t,e,n){var i=t.tag;if(i===5||i===6)t=t.stateNode,e?n.nodeType===8?n.parentNode.insertBefore(t,e):n.insertBefore(t,e):(n.nodeType===8?(e=n.parentNode,e.insertBefore(t,n)):(e=n,e.appendChild(t)),n=n._reactRootContainer,n!=null||e.onclick!==null||(e.onclick=Il));else if(i!==4&&(t=t.child,t!==null))for(Td(t,e,n),t=t.sibling;t!==null;)Td(t,e,n),t=t.sibling}function Rd(t,e,n){var i=t.tag;if(i===5||i===6)t=t.stateNode,e?n.insertBefore(t,e):n.appendChild(t);else if(i!==4&&(t=t.child,t!==null))for(Rd(t,e,n),t=t.sibling;t!==null;)Rd(t,e,n),t=t.sibling}var Qe=null,hn=!1;function mi(t,e,n){for(n=n.child;n!==null;)My(t,e,n),n=n.sibling}function My(t,e,n){if(jn&&typeof jn.onCommitFiberUnmount=="function")try{jn.onCommitFiberUnmount(du,n)}catch{}switch(n.tag){case 5:it||rs(n,e);case 6:var i=Qe,r=hn;Qe=null,mi(t,e,n),Qe=i,hn=r,Qe!==null&&(hn?(t=Qe,n=n.stateNode,t.nodeType===8?t.parentNode.removeChild(n):t.removeChild(n)):Qe.removeChild(n.stateNode));break;case 18:Qe!==null&&(hn?(t=Qe,n=n.stateNode,t.nodeType===8?dc(t.parentNode,n):t.nodeType===1&&dc(t,n),$o(t)):dc(Qe,n.stateNode));break;case 4:i=Qe,r=hn,Qe=n.stateNode.containerInfo,hn=!0,mi(t,e,n),Qe=i,hn=r;break;case 0:case 11:case 14:case 15:if(!it&&(i=n.updateQueue,i!==null&&(i=i.lastEffect,i!==null))){r=i=i.next;do{var s=r,o=s.destroy;s=s.tag,o!==void 0&&(s&2||s&4)&&_d(n,e,o),r=r.next}while(r!==i)}mi(t,e,n);break;case 1:if(!it&&(rs(n,e),i=n.stateNode,typeof i.componentWillUnmount=="function"))try{i.props=n.memoizedProps,i.state=n.memoizedState,i.componentWillUnmount()}catch(a){Oe(n,e,a)}mi(t,e,n);break;case 21:mi(t,e,n);break;case 22:n.mode&1?(it=(i=it)||n.memoizedState!==null,mi(t,e,n),it=i):mi(t,e,n);break;default:mi(t,e,n)}}function Yf(t){var e=t.updateQueue;if(e!==null){t.updateQueue=null;var n=t.stateNode;n===null&&(n=t.stateNode=new Rx),e.forEach(function(i){var r=Fx.bind(null,t,i);n.has(i)||(n.add(i),i.then(r,r))})}}function rn(t,e){var n=e.deletions;if(n!==null)for(var i=0;i<n.length;i++){var r=n[i];try{var s=t,o=e,a=o;e:for(;a!==null;){switch(a.tag){case 5:Qe=a.stateNode,hn=!1;break e;case 3:Qe=a.stateNode.containerInfo,hn=!0;break e;case 4:Qe=a.stateNode.containerInfo,hn=!0;break e}a=a.return}if(Qe===null)throw Error(U(160));My(s,o,r),Qe=null,hn=!1;var l=r.alternate;l!==null&&(l.return=null),r.return=null}catch(u){Oe(r,e,u)}}if(e.subtreeFlags&12854)for(e=e.child;e!==null;)$y(e,t),e=e.sibling}function $y(t,e){var n=t.alternate,i=t.flags;switch(t.tag){case 0:case 11:case 14:case 15:if(rn(e,t),An(t),i&4){try{Ro(3,t,t.return),Su(3,t)}catch(g){Oe(t,t.return,g)}try{Ro(5,t,t.return)}catch(g){Oe(t,t.return,g)}}break;case 1:rn(e,t),An(t),i&512&&n!==null&&rs(n,n.return);break;case 5:if(rn(e,t),An(t),i&512&&n!==null&&rs(n,n.return),t.flags&32){var r=t.stateNode;try{qo(r,"")}catch(g){Oe(t,t.return,g)}}if(i&4&&(r=t.stateNode,r!=null)){var s=t.memoizedProps,o=n!==null?n.memoizedProps:s,a=t.type,l=t.updateQueue;if(t.updateQueue=null,l!==null)try{a==="input"&&s.type==="radio"&&s.name!=null&&uv(r,s),Zc(a,o);var u=Zc(a,s);for(o=0;o<l.length;o+=2){var c=l[o],p=l[o+1];c==="style"?fv(r,p):c==="dangerouslySetInnerHTML"?pv(r,p):c==="children"?qo(r,p):yp(r,c,p,u)}switch(a){case"input":Gc(r,s);break;case"textarea":cv(r,s);break;case"select":var h=r._wrapperState.wasMultiple;r._wrapperState.wasMultiple=!!s.multiple;var d=s.value;d!=null?as(r,!!s.multiple,d,!1):h!==!!s.multiple&&(s.defaultValue!=null?as(r,!!s.multiple,s.defaultValue,!0):as(r,!!s.multiple,s.multiple?[]:"",!1))}r[Wo]=s}catch(g){Oe(t,t.return,g)}}break;case 6:if(rn(e,t),An(t),i&4){if(t.stateNode===null)throw Error(U(162));r=t.stateNode,s=t.memoizedProps;try{r.nodeValue=s}catch(g){Oe(t,t.return,g)}}break;case 3:if(rn(e,t),An(t),i&4&&n!==null&&n.memoizedState.isDehydrated)try{$o(e.containerInfo)}catch(g){Oe(t,t.return,g)}break;case 4:rn(e,t),An(t);break;case 13:rn(e,t),An(t),r=t.child,r.flags&8192&&(s=r.memoizedState!==null,r.stateNode.isHidden=s,!s||r.alternate!==null&&r.alternate.memoizedState!==null||(Jp=Le())),i&4&&Yf(t);break;case 22:if(c=n!==null&&n.memoizedState!==null,t.mode&1?(it=(u=it)||c,rn(e,t),it=u):rn(e,t),An(t),i&8192){if(u=t.memoizedState!==null,(t.stateNode.isHidden=u)&&!c&&t.mode&1)for(M=t,c=t.child;c!==null;){for(p=M=c;M!==null;){switch(h=M,d=h.child,h.tag){case 0:case 11:case 14:case 15:Ro(4,h,h.return);break;case 1:rs(h,h.return);var v=h.stateNode;if(typeof v.componentWillUnmount=="function"){i=h,n=h.return;try{e=i,v.props=e.memoizedProps,v.state=e.memoizedState,v.componentWillUnmount()}catch(g){Oe(i,n,g)}}break;case 5:rs(h,h.return);break;case 22:if(h.memoizedState!==null){Xf(p);continue}}d!==null?(d.return=h,M=d):Xf(p)}c=c.sibling}e:for(c=null,p=t;;){if(p.tag===5){if(c===null){c=p;try{r=p.stateNode,u?(s=r.style,typeof s.setProperty=="function"?s.setProperty("display","none","important"):s.display="none"):(a=p.stateNode,l=p.memoizedProps.style,o=l!=null&&l.hasOwnProperty("display")?l.display:null,a.style.display=hv("display",o))}catch(g){Oe(t,t.return,g)}}}else if(p.tag===6){if(c===null)try{p.stateNode.nodeValue=u?"":p.memoizedProps}catch(g){Oe(t,t.return,g)}}else if((p.tag!==22&&p.tag!==23||p.memoizedState===null||p===t)&&p.child!==null){p.child.return=p,p=p.child;continue}if(p===t)break e;for(;p.sibling===null;){if(p.return===null||p.return===t)break e;c===p&&(c=null),p=p.return}c===p&&(c=null),p.sibling.return=p.return,p=p.sibling}}break;case 19:rn(e,t),An(t),i&4&&Yf(t);break;case 21:break;default:rn(e,t),An(t)}}function An(t){var e=t.flags;if(e&2){try{e:{for(var n=t.return;n!==null;){if(Fy(n)){var i=n;break e}n=n.return}throw Error(U(160))}switch(i.tag){case 5:var r=i.stateNode;i.flags&32&&(qo(r,""),i.flags&=-33);var s=Qf(t);Rd(t,s,r);break;case 3:case 4:var o=i.stateNode.containerInfo,a=Qf(t);Td(t,a,o);break;default:throw Error(U(161))}}catch(l){Oe(t,t.return,l)}t.flags&=-3}e&4096&&(t.flags&=-4097)}function Ux(t,e,n){M=t,Ky(t)}function Ky(t,e,n){for(var i=(t.mode&1)!==0;M!==null;){var r=M,s=r.child;if(r.tag===22&&i){var o=r.memoizedState!==null||$a;if(!o){var a=r.alternate,l=a!==null&&a.memoizedState!==null||it;a=$a;var u=it;if($a=o,(it=l)&&!u)for(M=r;M!==null;)o=M,l=o.child,o.tag===22&&o.memoizedState!==null?Zf(r):l!==null?(l.return=o,M=l):Zf(r);for(;s!==null;)M=s,Ky(s),s=s.sibling;M=r,$a=a,it=u}Jf(t)}else r.subtreeFlags&8772&&s!==null?(s.return=r,M=s):Jf(t)}}function Jf(t){for(;M!==null;){var e=M;if(e.flags&8772){var n=e.alternate;try{if(e.flags&8772)switch(e.tag){case 0:case 11:case 15:it||Su(5,e);break;case 1:var i=e.stateNode;if(e.flags&4&&!it)if(n===null)i.componentDidMount();else{var r=e.elementType===e.type?n.memoizedProps:ln(e.type,n.memoizedProps);i.componentDidUpdate(r,n.memoizedState,i.__reactInternalSnapshotBeforeUpdate)}var s=e.updateQueue;s!==null&&jf(e,s,i);break;case 3:var o=e.updateQueue;if(o!==null){if(n=null,e.child!==null)switch(e.child.tag){case 5:n=e.child.stateNode;break;case 1:n=e.child.stateNode}jf(e,o,n)}break;case 5:var a=e.stateNode;if(n===null&&e.flags&4){n=a;var l=e.memoizedProps;switch(e.type){case"button":case"input":case"select":case"textarea":l.autoFocus&&n.focus();break;case"img":l.src&&(n.src=l.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(e.memoizedState===null){var u=e.alternate;if(u!==null){var c=u.memoizedState;if(c!==null){var p=c.dehydrated;p!==null&&$o(p)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;default:throw Error(U(163))}it||e.flags&512&&Ad(e)}catch(h){Oe(e,e.return,h)}}if(e===t){M=null;break}if(n=e.sibling,n!==null){n.return=e.return,M=n;break}M=e.return}}function Xf(t){for(;M!==null;){var e=M;if(e===t){M=null;break}var n=e.sibling;if(n!==null){n.return=e.return,M=n;break}M=e.return}}function Zf(t){for(;M!==null;){var e=M;try{switch(e.tag){case 0:case 11:case 15:var n=e.return;try{Su(4,e)}catch(l){Oe(e,n,l)}break;case 1:var i=e.stateNode;if(typeof i.componentDidMount=="function"){var r=e.return;try{i.componentDidMount()}catch(l){Oe(e,r,l)}}var s=e.return;try{Ad(e)}catch(l){Oe(e,s,l)}break;case 5:var o=e.return;try{Ad(e)}catch(l){Oe(e,o,l)}}}catch(l){Oe(e,e.return,l)}if(e===t){M=null;break}var a=e.sibling;if(a!==null){a.return=e.return,M=a;break}M=e.return}}var Ix=Math.ceil,zl=li.ReactCurrentDispatcher,Qp=li.ReactCurrentOwner,Ht=li.ReactCurrentBatchConfig,pe=0,Ve=null,qe=null,Ye=0,Ut=0,ss=Qi(0),Ke=0,Xo=null,Tr=0,wu=0,Yp=0,Po=null,bt=null,Jp=0,Ps=1/0,Qn=null,Vl=!1,Pd=null,Di=null,Ka=!1,Ui=null,Bl=0,Uo=0,Ud=null,gl=-1,vl=0;function dt(){return pe&6?Le():gl!==-1?gl:gl=Le()}function Fi(t){return t.mode&1?pe&2&&Ye!==0?Ye&-Ye:mx.transition!==null?(vl===0&&(vl=_v()),vl):(t=ge,t!==0||(t=window.event,t=t===void 0?16:Ov(t.type)),t):1}function Sn(t,e,n,i){if(50<Uo)throw Uo=0,Ud=null,Error(U(185));ma(t,n,i),(!(pe&2)||t!==Ve)&&(t===Ve&&(!(pe&2)&&(wu|=n),Ke===4&&ki(t,Ye)),Et(t,i),n===1&&pe===0&&!(e.mode&1)&&(Ps=Le()+500,gu&&Yi()))}function Et(t,e){var n=t.callbackNode;m0(t,e);var i=Tl(t,t===Ve?Ye:0);if(i===0)n!==null&&lf(n),t.callbackNode=null,t.callbackPriority=0;else if(e=i&-i,t.callbackPriority!==e){if(n!=null&&lf(n),e===1)t.tag===0?fx(em.bind(null,t)):Xv(em.bind(null,t)),cx(function(){!(pe&6)&&Yi()}),n=null;else{switch(Av(i)){case 1:n=kp;break;case 4:n=Cv;break;case 16:n=Al;break;case 536870912:n=Ev;break;default:n=Al}n=Yy(n,zy.bind(null,t))}t.callbackPriority=e,t.callbackNode=n}}function zy(t,e){if(gl=-1,vl=0,pe&6)throw Error(U(327));var n=t.callbackNode;if(ps()&&t.callbackNode!==n)return null;var i=Tl(t,t===Ve?Ye:0);if(i===0)return null;if(i&30||i&t.expiredLanes||e)e=Wl(t,i);else{e=i;var r=pe;pe|=2;var s=By();(Ve!==t||Ye!==e)&&(Qn=null,Ps=Le()+500,kr(t,e));do try{jx();break}catch(a){Vy(t,a)}while(!0);Np(),zl.current=s,pe=r,qe!==null?e=0:(Ve=null,Ye=0,e=Ke)}if(e!==0){if(e===2&&(r=rd(t),r!==0&&(i=r,e=Id(t,r))),e===1)throw n=Xo,kr(t,0),ki(t,i),Et(t,Le()),n;if(e===6)ki(t,i);else{if(r=t.current.alternate,!(i&30)&&!Ox(r)&&(e=Wl(t,i),e===2&&(s=rd(t),s!==0&&(i=s,e=Id(t,s))),e===1))throw n=Xo,kr(t,0),ki(t,i),Et(t,Le()),n;switch(t.finishedWork=r,t.finishedLanes=i,e){case 0:case 1:throw Error(U(345));case 2:lr(t,bt,Qn);break;case 3:if(ki(t,i),(i&130023424)===i&&(e=Jp+500-Le(),10<e)){if(Tl(t,0)!==0)break;if(r=t.suspendedLanes,(r&i)!==i){dt(),t.pingedLanes|=t.suspendedLanes&r;break}t.timeoutHandle=pd(lr.bind(null,t,bt,Qn),e);break}lr(t,bt,Qn);break;case 4:if(ki(t,i),(i&4194240)===i)break;for(e=t.eventTimes,r=-1;0<i;){var o=31-yn(i);s=1<<o,o=e[o],o>r&&(r=o),i&=~s}if(i=r,i=Le()-i,i=(120>i?120:480>i?480:1080>i?1080:1920>i?1920:3e3>i?3e3:4320>i?4320:1960*Ix(i/1960))-i,10<i){t.timeoutHandle=pd(lr.bind(null,t,bt,Qn),i);break}lr(t,bt,Qn);break;case 5:lr(t,bt,Qn);break;default:throw Error(U(329))}}}return Et(t,Le()),t.callbackNode===n?zy.bind(null,t):null}function Id(t,e){var n=Po;return t.current.memoizedState.isDehydrated&&(kr(t,e).flags|=256),t=Wl(t,e),t!==2&&(e=bt,bt=n,e!==null&&Od(e)),t}function Od(t){bt===null?bt=t:bt.push.apply(bt,t)}function Ox(t){for(var e=t;;){if(e.flags&16384){var n=e.updateQueue;if(n!==null&&(n=n.stores,n!==null))for(var i=0;i<n.length;i++){var r=n[i],s=r.getSnapshot;r=r.value;try{if(!wn(s(),r))return!1}catch{return!1}}}if(n=e.child,e.subtreeFlags&16384&&n!==null)n.return=e,e=n;else{if(e===t)break;for(;e.sibling===null;){if(e.return===null||e.return===t)return!0;e=e.return}e.sibling.return=e.return,e=e.sibling}}return!0}function ki(t,e){for(e&=~Yp,e&=~wu,t.suspendedLanes|=e,t.pingedLanes&=~e,t=t.expirationTimes;0<e;){var n=31-yn(e),i=1<<n;t[n]=-1,e&=~i}}function em(t){if(pe&6)throw Error(U(327));ps();var e=Tl(t,0);if(!(e&1))return Et(t,Le()),null;var n=Wl(t,e);if(t.tag!==0&&n===2){var i=rd(t);i!==0&&(e=i,n=Id(t,i))}if(n===1)throw n=Xo,kr(t,0),ki(t,e),Et(t,Le()),n;if(n===6)throw Error(U(345));return t.finishedWork=t.current.alternate,t.finishedLanes=e,lr(t,bt,Qn),Et(t,Le()),null}function Xp(t,e){var n=pe;pe|=1;try{return t(e)}finally{pe=n,pe===0&&(Ps=Le()+500,gu&&Yi())}}function Rr(t){Ui!==null&&Ui.tag===0&&!(pe&6)&&ps();var e=pe;pe|=1;var n=Ht.transition,i=ge;try{if(Ht.transition=null,ge=1,t)return t()}finally{ge=i,Ht.transition=n,pe=e,!(pe&6)&&Yi()}}function Zp(){Ut=ss.current,xe(ss)}function kr(t,e){t.finishedWork=null,t.finishedLanes=0;var n=t.timeoutHandle;if(n!==-1&&(t.timeoutHandle=-1,ux(n)),qe!==null)for(n=qe.return;n!==null;){var i=n;switch(Op(i),i.tag){case 1:i=i.type.childContextTypes,i!=null&&Ol();break;case 3:Ts(),xe(kt),xe(rt),Kp();break;case 5:$p(i);break;case 4:Ts();break;case 13:xe(Ee);break;case 19:xe(Ee);break;case 10:qp(i.type._context);break;case 22:case 23:Zp()}n=n.return}if(Ve=t,qe=t=Mi(t.current,null),Ye=Ut=e,Ke=0,Xo=null,Yp=wu=Tr=0,bt=Po=null,fr!==null){for(e=0;e<fr.length;e++)if(n=fr[e],i=n.interleaved,i!==null){n.interleaved=null;var r=i.next,s=n.pending;if(s!==null){var o=s.next;s.next=r,i.next=o}n.pending=i}fr=null}return t}function Vy(t,e){do{var n=qe;try{if(Np(),hl.current=Kl,$l){for(var i=_e.memoizedState;i!==null;){var r=i.queue;r!==null&&(r.pending=null),i=i.next}$l=!1}if(Ar=0,ze=Me=_e=null,To=!1,Qo=0,Qp.current=null,n===null||n.return===null){Ke=1,Xo=e,qe=null;break}e:{var s=t,o=n.return,a=n,l=e;if(e=Ye,a.flags|=32768,l!==null&&typeof l=="object"&&typeof l.then=="function"){var u=l,c=a,p=c.tag;if(!(c.mode&1)&&(p===0||p===11||p===15)){var h=c.alternate;h?(c.updateQueue=h.updateQueue,c.memoizedState=h.memoizedState,c.lanes=h.lanes):(c.updateQueue=null,c.memoizedState=null)}var d=$f(o);if(d!==null){d.flags&=-257,Kf(d,o,a,s,e),d.mode&1&&Mf(s,u,e),e=d,l=u;var v=e.updateQueue;if(v===null){var g=new Set;g.add(l),e.updateQueue=g}else v.add(l);break e}else{if(!(e&1)){Mf(s,u,e),eh();break e}l=Error(U(426))}}else if(Ce&&a.mode&1){var w=$f(o);if(w!==null){!(w.flags&65536)&&(w.flags|=256),Kf(w,o,a,s,e),Lp(Rs(l,a));break e}}s=l=Rs(l,a),Ke!==4&&(Ke=2),Po===null?Po=[s]:Po.push(s),s=o;do{switch(s.tag){case 3:s.flags|=65536,e&=-e,s.lanes|=e;var S=Ay(s,l,e);Lf(s,S);break e;case 1:a=l;var m=s.type,y=s.stateNode;if(!(s.flags&128)&&(typeof m.getDerivedStateFromError=="function"||y!==null&&typeof y.componentDidCatch=="function"&&(Di===null||!Di.has(y)))){s.flags|=65536,e&=-e,s.lanes|=e;var x=Ty(s,a,e);Lf(s,x);break e}}s=s.return}while(s!==null)}Hy(n)}catch(C){e=C,qe===n&&n!==null&&(qe=n=n.return);continue}break}while(!0)}function By(){var t=zl.current;return zl.current=Kl,t===null?Kl:t}function eh(){(Ke===0||Ke===3||Ke===2)&&(Ke=4),Ve===null||!(Tr&268435455)&&!(wu&268435455)||ki(Ve,Ye)}function Wl(t,e){var n=pe;pe|=2;var i=By();(Ve!==t||Ye!==e)&&(Qn=null,kr(t,e));do try{Lx();break}catch(r){Vy(t,r)}while(!0);if(Np(),pe=n,zl.current=i,qe!==null)throw Error(U(261));return Ve=null,Ye=0,Ke}function Lx(){for(;qe!==null;)Wy(qe)}function jx(){for(;qe!==null&&!o0();)Wy(qe)}function Wy(t){var e=Qy(t.alternate,t,Ut);t.memoizedProps=t.pendingProps,e===null?Hy(t):qe=e,Qp.current=null}function Hy(t){var e=t;do{var n=e.alternate;if(t=e.return,e.flags&32768){if(n=Tx(n,e),n!==null){n.flags&=32767,qe=n;return}if(t!==null)t.flags|=32768,t.subtreeFlags=0,t.deletions=null;else{Ke=6,qe=null;return}}else if(n=Ax(n,e,Ut),n!==null){qe=n;return}if(e=e.sibling,e!==null){qe=e;return}qe=e=t}while(e!==null);Ke===0&&(Ke=5)}function lr(t,e,n){var i=ge,r=Ht.transition;try{Ht.transition=null,ge=1,Nx(t,e,n,i)}finally{Ht.transition=r,ge=i}return null}function Nx(t,e,n,i){do ps();while(Ui!==null);if(pe&6)throw Error(U(327));n=t.finishedWork;var r=t.finishedLanes;if(n===null)return null;if(t.finishedWork=null,t.finishedLanes=0,n===t.current)throw Error(U(177));t.callbackNode=null,t.callbackPriority=0;var s=n.lanes|n.childLanes;if(g0(t,s),t===Ve&&(qe=Ve=null,Ye=0),!(n.subtreeFlags&2064)&&!(n.flags&2064)||Ka||(Ka=!0,Yy(Al,function(){return ps(),null})),s=(n.flags&15990)!==0,n.subtreeFlags&15990||s){s=Ht.transition,Ht.transition=null;var o=ge;ge=1;var a=pe;pe|=4,Qp.current=null,Px(t,n),$y(n,t),nx(cd),Rl=!!ud,cd=ud=null,t.current=n,Ux(n),a0(),pe=a,ge=o,Ht.transition=s}else t.current=n;if(Ka&&(Ka=!1,Ui=t,Bl=r),s=t.pendingLanes,s===0&&(Di=null),c0(n.stateNode),Et(t,Le()),e!==null)for(i=t.onRecoverableError,n=0;n<e.length;n++)r=e[n],i(r.value,{componentStack:r.stack,digest:r.digest});if(Vl)throw Vl=!1,t=Pd,Pd=null,t;return Bl&1&&t.tag!==0&&ps(),s=t.pendingLanes,s&1?t===Ud?Uo++:(Uo=0,Ud=t):Uo=0,Yi(),null}function ps(){if(Ui!==null){var t=Av(Bl),e=Ht.transition,n=ge;try{if(Ht.transition=null,ge=16>t?16:t,Ui===null)var i=!1;else{if(t=Ui,Ui=null,Bl=0,pe&6)throw Error(U(331));var r=pe;for(pe|=4,M=t.current;M!==null;){var s=M,o=s.child;if(M.flags&16){var a=s.deletions;if(a!==null){for(var l=0;l<a.length;l++){var u=a[l];for(M=u;M!==null;){var c=M;switch(c.tag){case 0:case 11:case 15:Ro(8,c,s)}var p=c.child;if(p!==null)p.return=c,M=p;else for(;M!==null;){c=M;var h=c.sibling,d=c.return;if(Dy(c),c===u){M=null;break}if(h!==null){h.return=d,M=h;break}M=d}}}var v=s.alternate;if(v!==null){var g=v.child;if(g!==null){v.child=null;do{var w=g.sibling;g.sibling=null,g=w}while(g!==null)}}M=s}}if(s.subtreeFlags&2064&&o!==null)o.return=s,M=o;else e:for(;M!==null;){if(s=M,s.flags&2048)switch(s.tag){case 0:case 11:case 15:Ro(9,s,s.return)}var S=s.sibling;if(S!==null){S.return=s.return,M=S;break e}M=s.return}}var m=t.current;for(M=m;M!==null;){o=M;var y=o.child;if(o.subtreeFlags&2064&&y!==null)y.return=o,M=y;else e:for(o=m;M!==null;){if(a=M,a.flags&2048)try{switch(a.tag){case 0:case 11:case 15:Su(9,a)}}catch(C){Oe(a,a.return,C)}if(a===o){M=null;break e}var x=a.sibling;if(x!==null){x.return=a.return,M=x;break e}M=a.return}}if(pe=r,Yi(),jn&&typeof jn.onPostCommitFiberRoot=="function")try{jn.onPostCommitFiberRoot(du,t)}catch{}i=!0}return i}finally{ge=n,Ht.transition=e}}return!1}function tm(t,e,n){e=Rs(n,e),e=Ay(t,e,1),t=qi(t,e,1),e=dt(),t!==null&&(ma(t,1,e),Et(t,e))}function Oe(t,e,n){if(t.tag===3)tm(t,t,n);else for(;e!==null;){if(e.tag===3){tm(e,t,n);break}else if(e.tag===1){var i=e.stateNode;if(typeof e.type.getDerivedStateFromError=="function"||typeof i.componentDidCatch=="function"&&(Di===null||!Di.has(i))){t=Rs(n,t),t=Ty(e,t,1),e=qi(e,t,1),t=dt(),e!==null&&(ma(e,1,t),Et(e,t));break}}e=e.return}}function qx(t,e,n){var i=t.pingCache;i!==null&&i.delete(e),e=dt(),t.pingedLanes|=t.suspendedLanes&n,Ve===t&&(Ye&n)===n&&(Ke===4||Ke===3&&(Ye&130023424)===Ye&&500>Le()-Jp?kr(t,0):Yp|=n),Et(t,e)}function Gy(t,e){e===0&&(t.mode&1?(e=Ia,Ia<<=1,!(Ia&130023424)&&(Ia=4194304)):e=1);var n=dt();t=ri(t,e),t!==null&&(ma(t,e,n),Et(t,n))}function Dx(t){var e=t.memoizedState,n=0;e!==null&&(n=e.retryLane),Gy(t,n)}function Fx(t,e){var n=0;switch(t.tag){case 13:var i=t.stateNode,r=t.memoizedState;r!==null&&(n=r.retryLane);break;case 19:i=t.stateNode;break;default:throw Error(U(314))}i!==null&&i.delete(e),Gy(t,n)}var Qy;Qy=function(t,e,n){if(t!==null)if(t.memoizedProps!==e.pendingProps||kt.current)xt=!0;else{if(!(t.lanes&n)&&!(e.flags&128))return xt=!1,_x(t,e,n);xt=!!(t.flags&131072)}else xt=!1,Ce&&e.flags&1048576&&Zv(e,Nl,e.index);switch(e.lanes=0,e.tag){case 2:var i=e.type;ml(t,e),t=e.pendingProps;var r=Es(e,rt.current);ds(e,n),r=Vp(null,e,i,t,r,n);var s=Bp();return e.flags|=1,typeof r=="object"&&r!==null&&typeof r.render=="function"&&r.$$typeof===void 0?(e.tag=1,e.memoizedState=null,e.updateQueue=null,Ct(i)?(s=!0,Ll(e)):s=!1,e.memoizedState=r.state!==null&&r.state!==void 0?r.state:null,Fp(e),r.updater=yu,e.stateNode=r,r._reactInternals=e,Sd(e,i,t,n),e=xd(null,e,i,!0,s,n)):(e.tag=0,Ce&&s&&Ip(e),lt(null,e,r,n),e=e.child),e;case 16:i=e.elementType;e:{switch(ml(t,e),t=e.pendingProps,r=i._init,i=r(i._payload),e.type=i,r=e.tag=$x(i),t=ln(i,t),r){case 0:e=bd(null,e,i,t,n);break e;case 1:e=Bf(null,e,i,t,n);break e;case 11:e=zf(null,e,i,t,n);break e;case 14:e=Vf(null,e,i,ln(i.type,t),n);break e}throw Error(U(306,i,""))}return e;case 0:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ln(i,r),bd(t,e,i,r,n);case 1:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ln(i,r),Bf(t,e,i,r,n);case 3:e:{if(Iy(e),t===null)throw Error(U(387));i=e.pendingProps,s=e.memoizedState,r=s.element,sy(t,e),Fl(e,i,null,n);var o=e.memoizedState;if(i=o.element,s.isDehydrated)if(s={element:i,isDehydrated:!1,cache:o.cache,pendingSuspenseBoundaries:o.pendingSuspenseBoundaries,transitions:o.transitions},e.updateQueue.baseState=s,e.memoizedState=s,e.flags&256){r=Rs(Error(U(423)),e),e=Wf(t,e,i,n,r);break e}else if(i!==r){r=Rs(Error(U(424)),e),e=Wf(t,e,i,n,r);break e}else for(Lt=Ni(e.stateNode.containerInfo.firstChild),jt=e,Ce=!0,mn=null,n=iy(e,null,i,n),e.child=n;n;)n.flags=n.flags&-3|4096,n=n.sibling;else{if(_s(),i===r){e=si(t,e,n);break e}lt(t,e,i,n)}e=e.child}return e;case 5:return oy(e),t===null&&gd(e),i=e.type,r=e.pendingProps,s=t!==null?t.memoizedProps:null,o=r.children,dd(i,r)?o=null:s!==null&&dd(i,s)&&(e.flags|=32),Uy(t,e),lt(t,e,o,n),e.child;case 6:return t===null&&gd(e),null;case 13:return Oy(t,e,n);case 4:return Mp(e,e.stateNode.containerInfo),i=e.pendingProps,t===null?e.child=As(e,null,i,n):lt(t,e,i,n),e.child;case 11:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ln(i,r),zf(t,e,i,r,n);case 7:return lt(t,e,e.pendingProps,n),e.child;case 8:return lt(t,e,e.pendingProps.children,n),e.child;case 12:return lt(t,e,e.pendingProps.children,n),e.child;case 10:e:{if(i=e.type._context,r=e.pendingProps,s=e.memoizedProps,o=r.value,Se(ql,i._currentValue),i._currentValue=o,s!==null)if(wn(s.value,o)){if(s.children===r.children&&!kt.current){e=si(t,e,n);break e}}else for(s=e.child,s!==null&&(s.return=e);s!==null;){var a=s.dependencies;if(a!==null){o=s.child;for(var l=a.firstContext;l!==null;){if(l.context===i){if(s.tag===1){l=ti(-1,n&-n),l.tag=2;var u=s.updateQueue;if(u!==null){u=u.shared;var c=u.pending;c===null?l.next=l:(l.next=c.next,c.next=l),u.pending=l}}s.lanes|=n,l=s.alternate,l!==null&&(l.lanes|=n),vd(s.return,n,e),a.lanes|=n;break}l=l.next}}else if(s.tag===10)o=s.type===e.type?null:s.child;else if(s.tag===18){if(o=s.return,o===null)throw Error(U(341));o.lanes|=n,a=o.alternate,a!==null&&(a.lanes|=n),vd(o,n,e),o=s.sibling}else o=s.child;if(o!==null)o.return=s;else for(o=s;o!==null;){if(o===e){o=null;break}if(s=o.sibling,s!==null){s.return=o.return,o=s;break}o=o.return}s=o}lt(t,e,r.children,n),e=e.child}return e;case 9:return r=e.type,i=e.pendingProps.children,ds(e,n),r=Gt(r),i=i(r),e.flags|=1,lt(t,e,i,n),e.child;case 14:return i=e.type,r=ln(i,e.pendingProps),r=ln(i.type,r),Vf(t,e,i,r,n);case 15:return Ry(t,e,e.type,e.pendingProps,n);case 17:return i=e.type,r=e.pendingProps,r=e.elementType===i?r:ln(i,r),ml(t,e),e.tag=1,Ct(i)?(t=!0,Ll(e)):t=!1,ds(e,n),_y(e,i,r),Sd(e,i,r,n),xd(null,e,i,!0,t,n);case 19:return Ly(t,e,n);case 22:return Py(t,e,n)}throw Error(U(156,e.tag))};function Yy(t,e){return kv(t,e)}function Mx(t,e,n,i){this.tag=t,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=e,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=i,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Wt(t,e,n,i){return new Mx(t,e,n,i)}function th(t){return t=t.prototype,!(!t||!t.isReactComponent)}function $x(t){if(typeof t=="function")return th(t)?1:0;if(t!=null){if(t=t.$$typeof,t===wp)return 11;if(t===bp)return 14}return 2}function Mi(t,e){var n=t.alternate;return n===null?(n=Wt(t.tag,e,t.key,t.mode),n.elementType=t.elementType,n.type=t.type,n.stateNode=t.stateNode,n.alternate=t,t.alternate=n):(n.pendingProps=e,n.type=t.type,n.flags=0,n.subtreeFlags=0,n.deleti
vendor: 5,099 bytes, line 41
41ons=null),n.flags=t.flags&14680064,n.childLanes=t.childLanes,n.lanes=t.lanes,n.child=t.child,n.memoizedProps=t.memoizedProps,n.memoizedState=t.memoizedState,n.updateQueue=t.updateQueue,e=t.dependencies,n.dependencies=e===null?null:{lanes:e.lanes,firstContext:e.firstContext},n.sibling=t.sibling,n.index=t.index,n.ref=t.ref,n}function yl(t,e,n,i,r,s){var o=2;if(i=t,typeof t=="function")th(t)&&(o=1);else if(typeof t=="string")o=5;else e:switch(t){case Qr:return Cr(n.children,r,s,e);case Sp:o=8,r|=8;break;case zc:return t=Wt(12,n,e,r|2),t.elementType=zc,t.lanes=s,t;case Vc:return t=Wt(13,n,e,r),t.elementType=Vc,t.lanes=s,t;case Bc:return t=Wt(19,n,e,r),t.elementType=Bc,t.lanes=s,t;case ov:return bu(n,r,s,e);default:if(typeof t=="object"&&t!==null)switch(t.$$typeof){case rv:o=10;break e;case sv:o=9;break e;case wp:o=11;break e;case bp:o=14;break e;case Si:o=16,i=null;break e}throw Error(U(130,t==null?t:typeof t,""))}return e=Wt(o,n,e,r),e.elementType=t,e.type=i,e.lanes=s,e}function Cr(t,e,n,i){return t=Wt(7,t,i,e),t.lanes=n,t}function bu(t,e,n,i){return t=Wt(22,t,i,e),t.elementType=ov,t.lanes=n,t.stateNode={isHidden:!1},t}function Sc(t,e,n){return t=Wt(6,t,null,e),t.lanes=n,t}function wc(t,e,n){return e=Wt(4,t.children!==null?t.children:[],t.key,e),e.lanes=n,e.stateNode={containerInfo:t.containerInfo,pendingChildren:null,implementation:t.implementation},e}function Kx(t,e,n,i,r){this.tag=e,this.containerInfo=t,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=ec(0),this.expirationTimes=ec(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=ec(0),this.identifierPrefix=i,this.onRecoverableError=r,this.mutableSourceEagerHydrationData=null}function nh(t,e,n,i,r,s,o,a,l){return t=new Kx(t,e,n,a,l),e===1?(e=1,s===!0&&(e|=8)):e=0,s=Wt(3,null,null,e),t.current=s,s.stateNode=t,s.memoizedState={element:i,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Fp(s),t}function zx(t,e,n){var i=3<arguments.length&&arguments[3]!==void 0?arguments[3]:null;return{$$typeof:Gr,key:i==null?null:""+i,children:t,containerInfo:e,implementation:n}}function Jy(t){if(!t)return zi;t=t._reactInternals;e:{if(Or(t)!==t||t.tag!==1)throw Error(U(170));var e=t;do{switch(e.tag){case 3:e=e.stateNode.context;break e;case 1:if(Ct(e.type)){e=e.stateNode.__reactInternalMemoizedMergedChildContext;break e}}e=e.return}while(e!==null);throw Error(U(171))}if(t.tag===1){var n=t.type;if(Ct(n))return Jv(t,n,e)}return e}function Xy(t,e,n,i,r,s,o,a,l){return t=nh(n,i,!0,t,r,s,o,a,l),t.context=Jy(null),n=t.current,i=dt(),r=Fi(n),s=ti(i,r),s.callback=e??null,qi(n,s,r),t.current.lanes=r,ma(t,r,i),Et(t,i),t}function xu(t,e,n,i){var r=e.current,s=dt(),o=Fi(r);return n=Jy(n),e.context===null?e.context=n:e.pendingContext=n,e=ti(s,o),e.payload={element:t},i=i===void 0?null:i,i!==null&&(e.callback=i),t=qi(r,e,o),t!==null&&(Sn(t,r,o,s),pl(t,r,o)),o}function Hl(t){if(t=t.current,!t.child)return null;switch(t.child.tag){case 5:return t.child.stateNode;default:return t.child.stateNode}}function nm(t,e){if(t=t.memoizedState,t!==null&&t.dehydrated!==null){var n=t.retryLane;t.retryLane=n!==0&&n<e?n:e}}function ih(t,e){nm(t,e),(t=t.alternate)&&nm(t,e)}function Vx(){return null}var Zy=typeof reportError=="function"?reportError:function(t){console.error(t)};function rh(t){this._internalRoot=t}ku.prototype.render=rh.prototype.render=function(t){var e=this._internalRoot;if(e===null)throw Error(U(409));xu(t,e,null,null)};ku.prototype.unmount=rh.prototype.unmount=function(){var t=this._internalRoot;if(t!==null){this._internalRoot=null;var e=t.containerInfo;Rr(function(){xu(null,t,null,null)}),e[ii]=null}};function ku(t){this._internalRoot=t}ku.prototype.unstable_scheduleHydration=function(t){if(t){var e=Pv();t={blockedOn:null,target:t,priority:e};for(var n=0;n<xi.length&&e!==0&&e<xi[n].priority;n++);xi.splice(n,0,t),n===0&&Iv(t)}};function sh(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11)}function Cu(t){return!(!t||t.nodeType!==1&&t.nodeType!==9&&t.nodeType!==11&&(t.nodeType!==8||t.nodeValue!==" react-mount-point-unstable "))}function im(){}function Bx(t,e,n,i,r){if(r){if(typeof i=="function"){var s=i;i=function(){var u=Hl(o);s.call(u)}}var o=Xy(e,i,t,0,null,!1,!1,"",im);return t._reactRootContainer=o,t[ii]=o.current,Vo(t.nodeType===8?t.parentNode:t),Rr(),o}for(;r=t.lastChild;)t.removeChild(r);if(typeof i=="function"){var a=i;i=function(){var u=Hl(l);a.call(u)}}var l=nh(t,0,!1,null,null,!1,!1,"",im);return t._reactRootContainer=l,t[ii]=l.current,Vo(t.nodeType===8?t.parentNode:t),Rr(function(){xu(e,l,n,i)}),l}function Eu(t,e,n,i,r){var s=n._reactRootContainer;if(s){var o=s;if(typeof r=="function"){var a=r;r=function(){var l=Hl(o);a.call(l)}}xu(e,o,t,r)}else o=Bx(n,e,t,r,i);return Hl(o)}Tv=function(t){switch(t.tag){case 3:var e=t.stateNode;if(e.current.memoizedState.isDehydrated){var n=So(e.pendingLanes);
41n!==0&&(Cp(e,n|1),Et(e,Le()),!(pe&6)&&(Ps=Le()+500,Yi()))}break;case 13:Rr(function(){var i=ri(t,1);if(i!==null){var r=dt();Sn(i,t,1,r)}}),ih(t,1)}};Ep=function(t){if(t.tag===13){var e=ri(t,134217728);if(e!==null){var n=dt();Sn(e,t,134217728,n)}ih(t,134217728)}};Rv=function(t){if(t.tag===13){var e=Fi(t),n=ri(t,e);if(n!==null){var i=dt();Sn(n,t,e,i)}ih(t,e)}};Pv=function(){return ge};Uv=function(t,e){var n=ge;try{return ge=t,e()}finally{ge=n}};td=function(t,e,n){switch(e){case"input":if(Gc(t,n),e=n.name,n.type==="radio"&&e!=null){for(n=t;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+e)+'][type="radio"]'),e=0;e<n.length;e++){var i=n[e];if(i!==t&&i.form===t.form){var r=mu(i);if(!r)throw Error(U(90));lv(i),Gc(i,r)}}}break;case"textarea":cv(t,n);break;case"select":e=n.value,e!=null&&as(t,!!n.multiple,e,!1)}};vv=Xp;yv=Rr;var Wx={usingClientEntryPoint:!1,Events:[va,Zr,mu,mv,gv,Xp]},so={findFiberByHostInstance:hr,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},Hx={bundleType:so.bundleType,version:so.version,rendererPackageName:so.rendererPackageName,rendererConfig:so.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:li.ReactCurrentDispatcher,findHostInstanceByFiber:function(t){return t=bv(t),t===null?null:t.stateNode},findFiberByHostInstance:so.findFiberByHostInstance||Vx,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__<"u"){var za=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!za.isDisabled&&za.supportsFiber)try{du=za.inject(Hx),jn=za}catch{}}Dt.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Wx;Dt.createPortal=function(t,e){var n=2<arguments.length&&arguments[2]!==void 0?arguments[2]:null;if(!sh(e))throw Error(U(200));return zx(t,e,null,n)};Dt.createRoot=function(t,e){if(!sh(t))throw Error(U(299));var n=!1,i="",r=Zy;return e!=null&&(e.unstable_strictMode===!0&&(n=!0),e.identifierPrefix!==void 0&&(i=e.identifierPrefix),e.onRecoverableError!==void 0&&(r=e.onRecoverableError)),e=nh(t,1,!1,null,null,n,!1,i,r),t[ii]=e.current,Vo(t.nodeType===8?t.parentNode:t),new rh(e)};Dt.findDOMNode=function(t){if(t==null)return null;if(t.nodeType===1)return t;var e=t._reactInternals;if(e===void 0)throw typeof t.render=="function"?Error(U(188)):(t=Object.keys(t).join(","),Error(U(268,t)));return t=bv(e),t=t===null?null:t.stateNode,t};Dt.flushSync=function(t){return Rr(t)};Dt.hydrate=function(t,e,n){if(!Cu(e))throw Error(U(200));return Eu(null,t,e,!0,n)};Dt.hydrateRoot=function(t,e,n){if(!sh(t))throw Error(U(405));var i=n!=null&&n.hydratedSources||null,r=!1,s="",o=Zy;if(n!=null&&(n.unstable_strictMode===!0&&(r=!0),n.identifierPrefix!==void 0&&(s=n.identifierPrefix),n.onRecoverableError!==void 0&&(o=n.onRecoverableError)),e=Xy(e,null,t,1,n??null,r,!1,s,o),t[ii]=e.current,Vo(t),i)for(t=0;t<i.length;t++)n=i[t],r=n._getVersion,r=r(n._source),e.mutableSourceEagerHydrationData==null?e.mutableSourceEagerHydrationData=[n,r]:e.mutableSourceEagerHydrationData.push(n,r);return new ku(e)};Dt.render=function(t,e,n){if(!Cu(e))throw Error(U(200));return Eu(null,t,e,!1,n)};Dt.unmountComponentAtNode=function(t){if(!Cu(t))throw Error(U(40));return t._reactRootContainer?(Rr(function(){Eu(null,null,t,!1,function(){t._reactRootContainer=null,t[ii]=null})}),!0):!1};Dt.unstable_batchedUpdates=Xp;Dt.unstable_renderSubtreeIntoContainer=function(t,e,n,i){if(!Cu(n))throw Error(U(200));if(t==null||t._reactInternals===void 0)throw Error(U(38));return Eu(t,e,n,!1,i)};Dt.version="18.3.1-next-f1338f8080-20240426";function eS(){if(!(typeof __REACT_DEVTOOLS_GLOBAL_HOOK__>"u"||typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE!="function"))try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(eS)}catch(t){console.error(t)}}eS(),ev.exports=Dt;var Sa=ev.exports;const tS=$g(Sa);var nS,rm=Sa;nS=rm.createRoot,rm.hydrateRoot;const Gx="modulepreload",Qx=function(t){return"/"+t},sm={},Q=function(e,n,i){let r=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const o=document.querySelector("meta[property=csp-nonce]"),a=(o==null?void 0:o.nonce)||(o==null?void 0:o.getAttribute("nonce"));r=Promise.allSettled(n.map(l=>{if(l=Qx(l),l in sm)return;sm[l]=!0;const u=l.endsWith(".css"),c=u?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${l}"]${c}`))return;const p=document.createElement("link");if(p.rel=u?"stylesheet":Gx,u||(p.as="script"),p.crossOrigin="",p.href=l,a&&p.setAttribute("nonce",a),document.head.appendChild(p),u)return new Promise((h,d)=>{p.addEventListener("load",h),p.addEventListener("error",()=>d(new Error(`Unable to preload CSS for ${l}`)))})}))}function s(o){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=o,window.dispatchEvent(a),!a.defaultPrevented)throw o}return r.then(o=>{for(const a of o||[])a.status==="rejected"&&s(a.reason);return e().catch(s)})},Yx=1,Jx=1e6;let bc=0;function Xx(){return bc=(bc+1)%Number.MAX_SAFE_INTEGER,bc.toString()}const xc=new Map,om=t=>{if(xc.has(t))return;const e=setTimeout(()=>{xc.delete(t),Io({type:"REMOVE_TOAST",toastId:t})},Jx);xc.set(t,e)},Zx=(t,e)=>{switch(e.type){case"ADD_TOAST":return{...t,toasts:[e.toast,...t.toasts].slice(0,Yx)};case"UPDATE_TOAST":return{...t,toasts:t.toasts.map(n=>n.id===e.toast.id?{...n,...e.toast}:n)};case"DISMISS_TOAST":{const{toastId:n}=e;
41return n?om(n):t.toasts.forEach(i=>{om(i.id)}),{...t,toasts:t.toasts.map(i=>i.id===n||n===void 0?{...i,open:!1}:i)}}case"REMOVE_TOAST":return e.toastId===void 0?{...t,toasts:[]}:{...t,toasts:t.toasts.filter(n=>n.id!==e.toastId)}}},Sl=[];let wl={toasts:[]};function Io(t){wl=Zx(wl,t),Sl.forEach(e=>{e(wl)})}function ek({...t}){const e=Xx(),n=r=>Io({type:"UPDATE_TOAST",toast:{...r,id:e}}),i=()=>Io({type:"DISMISS_TOAST",toastId:e});return Io({type:"ADD_TOAST",toast:{...t,id:e,open:!0,onOpenChange:r=>{r||i()}}}),{id:e,dismiss:i,update:n}}function iS(){const[t,e]=b.useState(wl);return b.useEffect(()=>(Sl.push(e),()=>{const n=Sl.indexOf(e);n>-1&&Sl.splice(n,1)}),[t]),{...t,toast:ek,dismiss:n=>Io({type:"DISMISS_TOAST",toastId:n})}}function $e(t,e,{checkForDefaultPrevented:n=!0}={}){return function(r){if(t==null||t(r),n===!1||!r.defaultPrevented)return e==null?void 0:e(r)}}function am(t,e){if(typeof t=="function")return t(e);t!=null&&(t.current=e)}function rS(...t){return e=>{let n=!1;const i=t.map(r=>{const s=am(r,e);return!n&&typeof s=="function"&&(n=!0),s});if(n)return()=>{for(let r=0;r<i.length;r++){const s=i[r];typeof s=="function"?s():am(t[r],null)}}}}function bn(...t){return b.useCallback(rS(...t),t)}function _u(t,e=[]){let n=[];function i(s,o){const a=b.createContext(o),l=n.length;n=[...n,o];const u=p=>{var S;const{scope:h,children:d,...v}=p,g=((S=h==null?void 0:h[t])==null?void 0:S[l])||a,w=b.useMemo(()=>v,Object.values(v));return f.jsx(g.Provider,{value:w,children:d})};u.displayName=s+"Provider";function c(p,h){var g;const d=((g=h==null?void 0:h[t])==null?void 0:g[l])||a,v=b.useContext(d);if(v)return v;if(o!==void 0)return o;throw new Error(`\`${p}\` must be used within \`${s}\``)}return[u,c]}const r=()=>{const s=n.map(o=>b.createContext(o));return function(a){const l=(a==null?void 0:a[t])||s;return b.useMemo(()=>({[`__scope${t}`]:{...a,[t]:l}}),[a,l])}};return r.scopeName=t,[i,tk(r,...e)]}function tk(...t){const e=t[0];if(t.length===1)return e;const n=()=>{const i=t.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(s){const o=i.reduce((a,{useScope:l,scopeName:u})=>{const p=l(s)[`__scope${u}`];return{...a,...p}},{});return b.useMemo(()=>({[`__scope${e.scopeName}`]:o}),[o])}};return n.scopeName=e.scopeName,n}function Gl(t){const e=ik(t),n=b.forwardRef((i,r)=>{const{children:s,...o}=i,a=b.Children.toArray(s),l=a.find(sk);if(l){const u=l.props.children,c=a.map(p=>p===l?b.Children.count(u)>1?b.Children.only(null):b.isValidElement(u)?u.props.children:null:p);return f.jsx(e,{...o,ref:r,children:b.isValidElement(u)?b.cloneElement(u,void 0,c):null})}return f.jsx(e,{...o,ref:r,children:s})});return n.displayName=`${t}.Slot`,n}var nk=Gl("Slot");function ik(t){const e=b.forwardRef((n,i)=>{const{children:r,...s}=n;if(b.isValidElement(r)){const o=ak(r),a=ok(s,r.props);return r.type!==b.Fragment&&(a.ref=i?rS(i,o):o),b.cloneElement(r,a)}return b.Children.count(r)>1?b.Children.only(null):null});return e.displayName=`${t}.SlotClone`,e}var sS=Symbol("radix.slottable");function rk(t){const e=({children:n})=>f.jsx(f.Fragment,{children:n});return e.displayName=`${t}.Slottable`,e.__radixId=sS,e}function sk(t){return b.isValidElement(t)&&typeof t.type=="function"&&"__radixId"in t.type&&t.type.__radixId===sS}function ok(t,e){const n={...e};for(const i in e){const r=t[i],s=e[i];/^on[A-Z]/.test(i)?r&&s?n[i]=(...a)=>{const l=s(...a);return r(...a),l}:r&&(n[i]=r):i==="style"?n[i]={...r,...s}:i==="className"&&(n[i]=[r,s].filter(Boolean).join(" "))}return{...t,...n}}function ak(t){var i,r;let e=(i=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:i.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}function lk(t){const e=t+"CollectionProvider",[n,i]=_u(e),[r,s]=n(e,{collectionRef:{current:null},itemMap:new Map}),o=g=>{const{scope:w,children:S}=g,m=j.useRef(null),y=j.useRef(new Map).current;return f.jsx(r,{scope:w,itemMap:y,collectionRef:m,children:S})};o.displayName=e;const a=t+"CollectionSlot",l=Gl(a),u=j.forwardRef((g,w)=>{const{scope:S,children:m}=g,y=s(a,S),x=bn(w,y.collectionRef);return f.jsx(l,{ref:x,children:m})});u.displayName=a;const c=t+"CollectionItemSlot",p="data-radix-collection-item",h=Gl(c),d=j.forwardRef((g,w)=>{const{scope:S,children:m,...y}=g,x=j.useRef(null),C=bn(w,x),E=s(c,S);return j.useEffect(()=>(E.itemMap.set(x,{ref:x,...y}),()=>void E.itemMap.delete(x))),f.jsx(h,{[p]:"",ref:C,children:m})});d.displayName=c;
vendor: 5,843 bytes, line 41
41function v(g){const w=s(t+"CollectionConsumer",g);return j.useCallback(()=>{const m=w.collectionRef.current;if(!m)return[];const y=Array.from(m.querySelectorAll(`[${p}]`));return Array.from(w.itemMap.values()).sort((E,_)=>y.indexOf(E.ref.current)-y.indexOf(_.ref.current))},[w.collectionRef,w.itemMap])}return[{Provider:o,Slot:u,ItemSlot:d},v,i]}var uk=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","select","span","svg","ul"],_t=uk.reduce((t,e)=>{const n=Gl(`Primitive.${e}`),i=b.forwardRef((r,s)=>{const{asChild:o,...a}=r,l=o?n:e;return typeof window<"u"&&(window[Symbol.for("radix-ui")]=!0),f.jsx(l,{...a,ref:s})});return i.displayName=`Primitive.${e}`,{...t,[e]:i}},{});function oS(t,e){t&&Sa.flushSync(()=>t.dispatchEvent(e))}function Vi(t){const e=b.useRef(t);return b.useEffect(()=>{e.current=t}),b.useMemo(()=>(...n)=>{var i;return(i=e.current)==null?void 0:i.call(e,...n)},[])}function ck(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t);b.useEffect(()=>{const i=r=>{r.key==="Escape"&&n(r)};return e.addEventListener("keydown",i,{capture:!0}),()=>e.removeEventListener("keydown",i,{capture:!0})},[n,e])}var dk="DismissableLayer",Ld="dismissableLayer.update",pk="dismissableLayer.pointerDownOutside",hk="dismissableLayer.focusOutside",lm,aS=b.createContext({layers:new Set,layersWithOutsidePointerEventsDisabled:new Set,branches:new Set}),oh=b.forwardRef((t,e)=>{const{disableOutsidePointerEvents:n=!1,onEscapeKeyDown:i,onPointerDownOutside:r,onFocusOutside:s,onInteractOutside:o,onDismiss:a,...l}=t,u=b.useContext(aS),[c,p]=b.useState(null),h=(c==null?void 0:c.ownerDocument)??(globalThis==null?void 0:globalThis.document),[,d]=b.useState({}),v=bn(e,_=>p(_)),g=Array.from(u.layers),[w]=[...u.layersWithOutsidePointerEventsDisabled].slice(-1),S=g.indexOf(w),m=c?g.indexOf(c):-1,y=u.layersWithOutsidePointerEventsDisabled.size>0,x=m>=S,C=mk(_=>{const A=_.target,I=[...u.branches].some(L=>L.contains(A));!x||I||(r==null||r(_),o==null||o(_),_.defaultPrevented||a==null||a())},h),E=gk(_=>{const A=_.target;[...u.branches].some(L=>L.contains(A))||(s==null||s(_),o==null||o(_),_.defaultPrevented||a==null||a())},h);return ck(_=>{m===u.layers.size-1&&(i==null||i(_),!_.defaultPrevented&&a&&(_.preventDefault(),a()))},h),b.useEffect(()=>{if(c)return n&&(u.layersWithOutsidePointerEventsDisabled.size===0&&(lm=h.body.style.pointerEvents,h.body.style.pointerEvents="none"),u.layersWithOutsidePointerEventsDisabled.add(c)),u.layers.add(c),um(),()=>{n&&u.layersWithOutsidePointerEventsDisabled.size===1&&(h.body.style.pointerEvents=lm)}},[c,h,n,u]),b.useEffect(()=>()=>{c&&(u.layers.delete(c),u.layersWithOutsidePointerEventsDisabled.delete(c),um())},[c,u]),b.useEffect(()=>{const _=()=>d({});return document.addEventListener(Ld,_),()=>document.removeEventListener(Ld,_)},[]),f.jsx(_t.div,{...l,ref:v,style:{pointerEvents:y?x?"auto":"none":void 0,...t.style},onFocusCapture:$e(t.onFocusCapture,E.onFocusCapture),onBlurCapture:$e(t.onBlurCapture,E.onBlurCapture),onPointerDownCapture:$e(t.onPointerDownCapture,C.onPointerDownCapture)})});oh.displayName=dk;var fk="DismissableLayerBranch",lS=b.forwardRef((t,e)=>{const n=b.useContext(aS),i=b.useRef(null),r=bn(e,i);return b.useEffect(()=>{const s=i.current;if(s)return n.branches.add(s),()=>{n.branches.delete(s)}},[n.branches]),f.jsx(_t.div,{...t,ref:r})});lS.displayName=fk;function mk(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t),i=b.useRef(!1),r=b.useRef(()=>{});return b.useEffect(()=>{const s=a=>{if(a.target&&!i.current){let l=function(){uS(pk,n,u,{discrete:!0})};const u={originalEvent:a};a.pointerType==="touch"?(e.removeEventListener("click",r.current),r.current=l,e.addEventListener("click",r.current,{once:!0})):l()}else e.removeEventListener("click",r.current);i.current=!1},o=window.setTimeout(()=>{e.addEventListener("pointerdown",s)},0);return()=>{window.clearTimeout(o),e.removeEventListener("pointerdown",s),e.removeEventListener("click",r.current)}},[e,n]),{onPointerDownCapture:()=>i.current=!0}}function gk(t,e=globalThis==null?void 0:globalThis.document){const n=Vi(t),i=b.useRef(!1);return b.useEffect(()=>{const r=s=>{s.target&&!i.current&&uS(hk,n,{originalEvent:s},{discrete:!1})};return e.addEventListener("focusin",r),()=>e.removeEventListener("focusin",r)},[e,n]),{onFocusCapture:()=>i.current=!0,onBlurCapture:()=>i.current=!1}}function um(){const t=new CustomEvent(Ld);document.dispatchEvent(t)}function uS(t,e,n,{discrete:i}){const r=n.originalEvent.target,s=new CustomEvent(t,{bubbles:!1,cancelable:!0,detail:n});e&&r.addEventListener(t,e,{once:!0}),i?oS(r,s):r.dispatchEvent(s)}var vk=oh,yk=lS,Bi=globalThis!=null&&globalThis.document?b.useLayoutEffect:()=>{},Sk="Portal",cS=b.forwardRef((t,e)=>{var a;const{container:n,...i}=t,[r,s]=b.useState(!1);Bi(()=>s(!0),[]);const o=n||r&&((a=globalThis==null?void 0:globalThis.document)==null?void 0:a.body);return o?tS.createPortal(f.jsx(_t.div,{...i,ref:e}),o):null});cS.displayName=Sk;function wk(t,e){return b.useReducer((n,i)=>e[n][i]??n,t)}var ah=t=>{const{present:e,children:n}=t,i=bk(e),r=typeof n=="function"?n({present:i.isPresent}):b.Children.only(n),s=bn(i.ref,xk(r));return typeof n=="function"||i.isPresent?b.cloneElement(r,{ref:s}):null};ah.displayName="Presence";function bk(t){const[e,n]=b.useState(),i=b.useRef(null),r=b.useRef(t),s=b.useRef("none"),o=t?"mounted":"unmounted",[a,l]=wk(o,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return b.useEffect(()=>{const u=Va(i.current);s.current=a==="mounted"?u:"none"},[a]),Bi(()=>{const u=i.current,c=r.current;if(c!==t){const h=s.current,d=Va(u);t?l("MOUNT"):d==="none"||(u==null?void 0:u.display)==="none"?l("UNMOUNT"):l(c&&h!==d?"ANIMATION_OUT":"UNMOUNT"),r.current=t}},[t,l]),Bi(()=>
41{if(e){let u;const c=e.ownerDocument.defaultView??window,p=d=>{const g=Va(i.current).includes(d.animationName);if(d.target===e&&g&&(l("ANIMATION_END"),!r.current)){const w=e.style.animationFillMode;e.style.animationFillMode="forwards",u=c.setTimeout(()=>{e.style.animationFillMode==="forwards"&&(e.style.animationFillMode=w)})}},h=d=>{d.target===e&&(s.current=Va(i.current))};return e.addEventListener("animationstart",h),e.addEventListener("animationcancel",p),e.addEventListener("animationend",p),()=>{c.clearTimeout(u),e.removeEventListener("animationstart",h),e.removeEventListener("animationcancel",p),e.removeEventListener("animationend",p)}}else l("ANIMATION_END")},[e,l]),{isPresent:["mounted","unmountSuspended"].includes(a),ref:b.useCallback(u=>{i.current=u?getComputedStyle(u):null,n(u)},[])}}function Va(t){return(t==null?void 0:t.animationName)||"none"}function xk(t){var i,r;let e=(i=Object.getOwnPropertyDescriptor(t.props,"ref"))==null?void 0:i.get,n=e&&"isReactWarning"in e&&e.isReactWarning;return n?t.ref:(e=(r=Object.getOwnPropertyDescriptor(t,"ref"))==null?void 0:r.get,n=e&&"isReactWarning"in e&&e.isReactWarning,n?t.props.ref:t.props.ref||t.ref)}var kk=Xg[" useInsertionEffect ".trim().toString()]||Bi;function Ck({prop:t,defaultProp:e,onChange:n=()=>{},caller:i}){const[r,s,o]=Ek({defaultProp:e,onChange:n}),a=t!==void 0,l=a?t:r;{const c=b.useRef(t!==void 0);b.useEffect(()=>{const p=c.current;p!==a&&console.warn(`${i} is changing from ${p?"controlled":"uncontrolled"} to ${a?"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.`),c.current=a},[a,i])}const u=b.useCallback(c=>{var p;if(a){const h=_k(c)?c(t):c;h!==t&&((p=o.current)==null||p.call(o,h))}else s(c)},[a,t,s,o]);return[l,u]}function Ek({defaultProp:t,onChange:e}){const[n,i]=b.useState(t),r=b.useRef(n),s=b.useRef(e);return kk(()=>{s.current=e},[e]),b.useEffect(()=>{var o;r.current!==n&&((o=s.current)==null||o.call(s,n),r.current=n)},[n,r]),[n,i,s]}function _k(t){return typeof t=="function"}var Ak=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"}),Tk="VisuallyHidden",Au=b.forwardRef((t,e)=>f.jsx(_t.span,{...t,ref:e,style:{...Ak,...t.style}}));Au.displayName=Tk;var Rk=Au,lh="ToastProvider",[uh,Pk,Uk]=lk("Toast"),[dS,yO]=_u("Toast",[Uk]),[Ik,Tu]=dS(lh),pS=t=>{const{__scopeToast:e,label:n="Notification",duration:i=5e3,swipeDirection:r="right",swipeThreshold:s=50,children:o}=t,[a,l]=b.useState(null),[u,c]=b.useState(0),p=b.useRef(!1),h=b.useRef(!1);return n.trim()||console.error(`Invalid prop \`label\` supplied to \`${lh}\`. Expected non-empty \`string\`.`),f.jsx(uh.Provider,{scope:e,children:f.jsx(Ik,{scope:e,label:n,duration:i,swipeDirection:r,swipeThreshold:s,toastCount:u,viewport:a,onViewportChange:l,onToastAdd:b.useCallback(()=>c(d=>d+1),[]),onToastRemove:b.useCallback(()=>c(d=>d-1),[]),isFocusedToastEscapeKeyDownRef:p,isClosePausedRef:h,children:o})})};pS.displayName=lh;var hS="ToastViewport",Ok=["F8"],jd="toast.viewportPause",Nd="toast.viewportResume",fS=b.forwardRef((t,e)=>{const{__scopeToast:n,hotkey:i=Ok,label:r="Notifications ({hotkey})",...s}=t,o=Tu(hS,n),a=Pk(n),l=b.useRef(null),u=b.useRef(null),c=b.useRef(null),p=b.useRef(null),h=bn(e,p,o.onViewportChange),d=i.join("+").replace(/Key/g,"").replace(/Digit/g,""),v=o.toastCount>0;b.useEffect(()=>{const w=S=>{var y;i.length!==0&&i.every(x=>S[x]||S.code===x)&&((y=p.current)==null||y.focus())};return document.addEventListener("keydown",w),()=>document.removeEventListener("keydown",w)},[i]),b.useEffect(()=>{const w=l.current,S=p.current;if(v&&w&&S){const m=()=>{if(!o.isClosePausedRef.current){const E=new CustomEvent(jd);S.dispatchEvent(E),o.isClosePausedRef.current=!0}},y=()=>{if(o.isClosePausedRef.current){const E=new CustomEvent(Nd);S.dispatchEvent(E),o.isClosePausedRef.current=!1}},x=E=>{!w.contains(E.relatedTarget)&&y()},C=()=>{w.contains(document.activeElement)||y()};return w.addEventListener("focusin",m),w.addEventListener("focusout",x),w.addEventListener("pointermove",m),w.addEventListener("pointerleave",C),window.addEventListener("blur",m),window.addEventListener("focus",y),()=>{w.removeEventListener("focusin",m),w.removeEventListener("focusout",x),w.removeEventListener("pointermove",m),w.removeEventListener("pointerleave",C),window.removeEventListener("blur",m),window.removeEventListener("focus",y)}}},[v,o.isClosePausedRef]);const g=b.useCallback(({tabbingDirection:w})=>{const m=a().map(y=>{const x=y.ref.current,C=[x,...Wk(x)];return w==="forwards"?C:C.reverse()});return(w==="forwards"?m.reverse():m).flat()},[a]);return b.useEffect(()=>{const w=p.current;if(w){const S=m=>{var C,E,_;const y=m.altKey||m.ctrlKey||m.metaKey;if(m.key==="Tab"&&!y){const A=document.activeElement,I=m.shiftKey;if(m.target===w&&I){(C=u.current)==null||C.focus();return}const q=g({tabbingDirection:I?"backwards":"forwards"}),X=q.findIndex(N=>N===A);kc(q.slice(X+1))?m.preventDefault():I?(E=u.current)==null||E.focus():(_=c.current)==null||_.focus()}};return w.addEventListener("keydown",S),()=>w.removeEventListener("keydown",S)}},[a,g]),f.jsxs(yk,{ref:l,role:"region","aria-label":r.replace("{hotkey}",d),tabIndex:-1,style:{pointerEvents:v?void 0:"none"},children:[v&&f.jsx(qd,{ref:u,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"forwards"});kc(w)}}),f.jsx(uh.Slot,{scope:n,children:f.jsx(_t.ol,{tabIndex:-1,...s,ref:h})}),v&&f.jsx(qd,{ref:c,onFocusFromOutsideViewport:()=>{const w=g({tabbingDirection:"backwards"});kc(w)}})]})});fS.displayName=hS;var mS="ToastFocusProxy",qd=b.forwardRef((t,e)=>{const{__scopeToast:n,onFocusFromOutsideViewport:i,...r}=t,s=Tu(mS,n);return f.jsx(Au,{"aria-hidden":!0,tabIndex:0,...r,ref:e,style:{position:"fixed"},onFocus:o=>{var u;const a=o.relatedTarget;!((u=s.viewport)!=null&&u.contains(a))&&i()}})});qd.displayName=mS;var wa="Toast",Lk="toast.swipeStart",jk="toast.swipeMove",Nk="toast.swipeCancel",qk="toast.swipeEnd",gS=b.forwardRef((t,e)=>{const{forceMount:n,open:i,defaultOpen:r,onOpenChange:s,...o}=t,[a,l]=Ck({prop:i,defaultProp:r??!0,onChange:s,caller:wa});return f.jsx(ah,{present:n||a,children:f.jsx(Mk,{open:a,...o,ref:e,onClose:()=>l(!1),onPause:Vi(t.onPause),onResume:Vi(t.onResume),onSwipeStart:$e(t.onSwipeStart,u=>{u.currentTarget.setAttribute("data-swipe","start")}),onSwipeMove:$e(t.onSwipeMove,u=>{const{x:c,y:p}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","move"),u.currentTarget.style.setProperty("--radix-toast-swipe-move-x",`${c}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-move-y",`${p}px`)}),onSwipeCancel:$e(t.onSwipeCancel,u=>{u.currentTarget.setAttribute("data-swipe","cancel"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-end-y")}),onSwipeEnd:$e(t.onSwipeEnd,u=>{const{x:c,y:p}=u.detail.delta;u.currentTarget.setAttribute("data-swipe","end"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-x"),u.currentTarget.style.removeProperty("--radix-toast-swipe-move-y"),u.currentTarget.style.setProperty("--radix-toast-swipe-end-x",`${c}px`),u.currentTarget.style.setProperty("--radix-toast-swipe-end-y",`${p}px`),l(!1)})})})});gS.displayName=wa;var[Dk,Fk]=dS(wa,{onClose(){}}),Mk=b.forwardRef((t,e)=>{const{__scopeToast:n,type:i="foreground",duration:r,open:s,onClose:o,onEscapeKeyDown:a,onPause:l,onResume:u,onSwipeStart:c,onSwipeMove:p,onSwipeCancel:h,onSwipeEnd:d,...v}=t,g=Tu(wa,n),[w,S]=b.useState(null),m=bn(e,N=>S(N)),y=b.useRef(null),x=b.useRef(null),C=r||g.duration,E=b.useRef(0),_=b.useRef(C),A=b.useRef(0),{onToastAdd:I,onToastRemove:L}=g,F=Vi(()=>{var oe;(w==null?void 0:w.contains(document.activeElement))&&((oe=g.viewport)==null||oe.focus()),o()}),q=b.useCallback(N=>
41{!N||N===1/0||(window.clearTimeout(A.current),E.current=new Date().getTime(),A.current=window.setTimeout(F,N))},[F]);b.useEffect(()=>{const N=g.viewport;if(N){const oe=()=>{q(_.current),u==null||u()},Z=()=>{const te=new Date().getTime()-E.current;_.current=_.current-te,window.clearTimeout(A.current),l==null||l()};return N.addEventListener(jd,Z),N.addEventListener(Nd,oe),()=>{N.removeEventListener(jd,Z),N.removeEventListener(Nd,oe)}}},[g.viewport,C,l,u,q]),b.useEffect(()=>{s&&!g.isClosePausedRef.current&&q(C)},[s,C,g.isClosePausedRef,q]),b.useEffect(()=>(I(),()=>L()),[I,L]);const X=b.useMemo(()=>w?kS(w):null,[w]);return g.viewport?f.jsxs(f.Fragment,{children:[X&&f.jsx($k,{__scopeToast:n,role:"status","aria-live":i==="foreground"?"assertive":"polite","aria-atomic":!0,children:X}),f.jsx(Dk,{scope:n,onClose:F,children:Sa.createPortal(f.jsx(uh.ItemSlot,{scope:n,children:f.jsx(vk,{asChild:!0,onEscapeKeyDown:$e(a,()=>{g.isFocusedToastEscapeKeyDownRef.current||F(),g.isFocusedToastEscapeKeyDownRef.current=!1}),children:f.jsx(_t.li,{role:"status","aria-live":"off","aria-atomic":!0,tabIndex:0,"data-state":s?"open":"closed","data-swipe-direction":g.swipeDirection,...v,ref:m,style:{userSelect:"none",touchAction:"none",...t.style},onKeyDown:$e(t.onKeyDown,N=>{N.key==="Escape"&&(a==null||a(N.nativeEvent),N.nativeEvent.defaultPrevented||(g.isFocusedToastEscapeKeyDownRef.current=!0,F()))}),onPointerDown:$e(t.onPointerDown,N=>{N.button===0&&(y.current={x:N.clientX,y:N.clientY})}),onPointerMove:$e(t.onPointerMove,N=>{if(!y.current)return;const oe=N.clientX-y.current.x,Z=N.clientY-y.current.y,te=!!x.current,T=["left","right"].includes(g.swipeDirection),P=["left","up"].includes(g.swipeDirection)?Math.min:Math.max,D=T?P(0,oe):0,$=T?0:P(0,Z),V=N.pointerType==="touch"?10:2,B={x:D,y:$},se={originalEvent:N,delta:B};te?(x.current=B,Ba(jk,p,se,{discrete:!1})):cm(B,g.swipeDirection,V)?(x.current=B,Ba(Lk,c,se,{discrete:!1}),N.target.setPointerCapture(N.pointerId)):(Math.abs(oe)>V||Math.abs(Z)>V)&&(y.current=null)}),onPointerUp:$e(t.onPointerUp,N=>{const oe=x.current,Z=N.target;if(Z.hasPointerCapture(N.pointerId)&&Z.releasePointerCapture(N.pointerId),x.current=null,y.current=null,oe){const te=N.currentTarget,T={originalEvent:N,delta:oe};cm(oe,g.swipeDirection,g.swipeThreshold)?Ba(qk,d,T,{discrete:!0}):Ba(Nk,h,T,{discrete:!0}),te.addEventListener("click",P=>P.preventDefault(),{once:!0})}})})})}),g.viewport)})]}):null}),$k=t=>{const{__scopeToast:e,children:n,...i}=t,r=Tu(wa,e),[s,o]=b.useState(!1),[a,l]=b.useState(!1);return Vk(()=>o(!0)),b.useEffect(()=>{const u=window.setTimeout(()=>l(!0),1e3);return()=>window.clearTimeout(u)},[]),a?null:f.jsx(cS,{asChild:!0,children:f.jsx(Au,{...i,children:s&&f.jsxs(f.Fragment,{children:[r.label," ",n]})})})},Kk="ToastTitle",vS=b.forwardRef((t,e)=>{const{__scopeToast:n,...i}=t;return f.jsx(_t.div,{...i,ref:e})});vS.displayName=Kk;var zk="ToastDescription",yS=b.forwardRef((t,e)=>{const{__scopeToast:n,...i}=t;return f.jsx(_t.div,{...i,ref:e})});yS.displayName=zk;var SS="ToastAction",wS=b.forwardRef((t,e)=>{const{altText:n,...i}=t;return n.trim()?f.jsx(xS,{altText:n,asChild:!0,children:f.jsx(ch,{...i,ref:e})}):(console.error(`Invalid prop \`altText\` supplied to \`${SS}\`. Expected non-empty \`string\`.`),null)});wS.displayName=SS;var bS="ToastClose",ch=b.forwardRef((t,e)=>{const{__scopeToast:n,...i}=t,r=Fk(bS,n);return f.jsx(xS,{asChild:!0,children:f.jsx(_t.button,{type:"button",...i,ref:e,onClick:$e(t.onClick,r.onClose)})})});ch.displayName=bS;var xS=b.forwardRef((t,e)=>{const{__scopeToast:n,altText:i,...r}=t;return f.jsx(_t.div,{"data-radix-toast-announce-exclude":"","data-radix-toast-announce-alt":i||void 0,...r,ref:e})});function kS(t){const e=[];return Array.from(t.childNodes).forEach(i=>{if(i.nodeType===i.TEXT_NODE&&i.textContent&&e.push(i.textContent),Bk(i)){const r=i.ariaHidden||i.hidden||i.style.display==="none",s=i.dataset.radixToastAnnounceExclude==="";if(!r)if(s){const o=i.dataset.radixToastAnnounceAlt;o&&e.push(o)}else e.push(...kS(i))}}),e}function Ba(t,e,n,{discrete:i}){const r=n.originalEvent.currentTarget,s=new CustomEvent(t,{bubbles:!0,cancelable:!0,detail:n});e&&r.addEventListener(t,e,{once:!0}),i?oS(r,s):r.dispatchEvent(s)}var cm=(t,e,n=0)=>{const i=Math.abs(t.x),r=Math.abs(t.y),s=i>r;return e==="left"||e==="right"?s&&i>n:!s&&r>n};function Vk(t=()=>{}){const e=Vi(t);Bi(()=>{let n=0,i=0;return n=window.requestAnimationFrame(()=>i=window.requestAnimationFrame(e)),()=>{window.cancelAnimationFrame(n),window.cancelAnimationFrame(i)}},[e])}function Bk(t){return t.nodeType===t.ELEMENT_NODE}function Wk(t){const e=[],n=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT,{acceptNode:i=>{const r=i.tagName==="INPUT"&&i.type==="hidden";return i.disabled||i.hidden||r?NodeFilter.FILTER_SKIP:i.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)e.push(n.currentNode);return e}function kc(t){const e=document.activeElement;return t.some(n=>n===e?!0:(n.focus(),document.activeElement!==e))}var Hk=pS,CS=fS,ES=gS,_S=vS,AS=yS,TS=wS,RS=ch;function PS(t){var e,n,i="";if(typeof t=="string"||typeof t=="number")i+=t;else if(typeof t=="object")if(Array.isArray(t)){var r=t.length;for(e=0;e<r;e++)t[e]&&(n=PS(t[e]))&&(i&&(i+=" "),i+=n)}else for(n in t)t[n]&&(i&&(i+=" "),i+=n);return i}function US(){for(var t,e,n=0,i="",r=arguments.length;n<r;n++)(t=arguments[n])&&(e=PS(t))&&(i&&(i+=" "),i+=e);return i}const dm=t=>typeof t=="boolean"?`${t}
41`:t===0?"0":t,pm=US,IS=(t,e)=>n=>{var i;if((e==null?void 0:e.variants)==null)return pm(t,n==null?void 0:n.class,n==null?void 0:n.className);const{variants:r,defaultVariants:s}=e,o=Object.keys(r).map(u=>{const c=n==null?void 0:n[u],p=s==null?void 0:s[u];if(c===null)return null;const h=dm(c)||dm(p);return r[u][h]}),a=n&&Object.entries(n).reduce((u,c)=>{let[p,h]=c;return h===void 0||(u[p]=h),u},{}),l=e==null||(i=e.compoundVariants)===null||i===void 0?void 0:i.reduce((u,c)=>{let{class:p,className:h,...d}=c;return Object.entries(d).every(v=>{let[g,w]=v;return Array.isArray(w)?w.includes({...s,...a}[g]):{...s,...a}[g]===w})?[...u,p,h]:u},[]);return pm(t,o,l,n==null?void 0:n.class,n==null?void 0:n.className)};/**
42 * @license lucide-react v0.462.0 - ISC
43 *
44 * This source code is licensed under the ISC license.
45 * See the LICENSE file in the root directory of this source tree.
46 */const Gk=t=>t.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),OS=(...t)=>t.filter((e,n,i)=>!!e&&e.trim()!==""&&i.indexOf(e)===n).join(" ").trim();/**
47 * @license lucide-react v0.462.0 - ISC
48 *
49 * This source code is licensed under the ISC license.
50 * See the LICENSE file in the root directory of this source tree.
51 */var Qk={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"};/**
52 * @license lucide-react v0.462.0 - ISC
53 *
54 * This source code is licensed under the ISC license.
55 * See the LICENSE file in the root directory of this source tree.
56 */const Yk=b.forwardRef(({color:t="currentColor",size:e=24,strokeWidth:n=2,absoluteStrokeWidth:i,className:r="",children:s,iconNode:o,...a},l)=>b.createElement("svg",{ref:l,...Qk,width:e,height:e,stroke:t,strokeWidth:i?Number(n)*24/Number(e):n,className:OS("lucide",r),...a},[...o.map(([u,c])=>b.createElement(u,c)),...Array.isArray(s)?s:[s]]));/**
57 * @license lucide-react v0.462.0 - ISC
58 *
59 * This source code is licensed under the ISC license.
60 * See the LICENSE file in the root directory of this source tree.
61 */const Re=(t,e)=>{const n=b.forwardRef(({className:i,...r},s)=>b.createElement(Yk,{ref:s,iconNode:e,className:OS(`lucide-${Gk(t)}`,i),...r}));return n.displayName=`${t}`,n};/**
62 * @license lucide-react v0.462.0 - ISC
63 *
64 * This source code is licensed under the ISC license.
65 * See the LICENSE file in the root directory of this source tree.
66 */const bl=Re("ArrowRight",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]]);/**
67 * @license lucide-react v0.462.0 - ISC
68 *
69 * This source code is licensed under the ISC license.
70 * See the LICENSE file in the root directory of this source tree.
71 */const Jk=Re("ArrowUp",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]]);/**
72 * @license lucide-react v0.462.0 - ISC
73 *
74 * This source code is licensed under the ISC license.
75 * See the LICENSE file in the root directory of this source tree.
76 */const Xk=Re("Bot",[["path",{d:"M12 8V4H8",key:"hb8ula"}],["rect",{width:"16",height:"12",x:"4",y:"8",rx:"2",key:"enze0r"}],["path",{d:"M2 14h2",key:"vft8re"}],["path",{d:"M20 14h2",key:"4cs60a"}],["path",{d:"M15 13v2",key:"1xurst"}],["path",{d:"M9 13v2",key:"rq6x2g"}]]);/**
77 * @license lucide-react v0.462.0 - ISC
78 *
79 * This source code is licensed under the ISC license.
80 * See the LICENSE file in the root directory of this source tree.
81 */const Zk=Re("Building2",[["path",{d:"M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z",key:"1b4qmf"}],["path",{d:"M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2",key:"i71pzd"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2",key:"10jefs"}],["path",{d:"M10 6h4",key:"1itunk"}],["path",{d:"M10 10h4",key:"tcdvrf"}],["path",{d:"M10 14h4",key:"kelpxr"}],["path",{d:"M10 18h4",key:"1ulq68"}]]);/**
82 * @license lucide-react v0.462.0 - ISC
83 *
84 * This source code is licensed under the ISC license.
85 * See the LICENSE file in the root directory of this source tree.
86 */const Wa=Re("ChevronDown",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);/**
87 * @license lucide-react v0.462.0 - ISC
88 *
89 * This source code is licensed under the ISC license.
90 * See the LICENSE file in the root directory of this source tree.
91 */const hm=Re("ChevronRight",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);/**
92 * @license lucide-react v0.462.0 - ISC
93 *
94 * This source code is licensed under the ISC license.
95 * See the LICENSE file in the root directory of this source tree.
96 */const eC=Re("Clock",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["polyline",{points:"12 6 12 12 16 14",key:"68esgv"}]]);/**
97 * @license lucide-react v0.462.0 - ISC
98 *
99 * This source code is licensed under the ISC license.
100 * See the LICENSE file in the root directory of this source tree.
101 */const tC=Re("Facebook",[["path",{d:"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z",key:"1jg4f8"}]]);/**
102 * @license lucide-react v0.462.0 - ISC
103 *
104 * This source code is licensed under the ISC license.
105 * See the LICENSE file in the root directory of this source tree.
106 */const nC=Re("Info",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"M12 16v-4",key:"1dtifu"}],["path",{d:"M12 8h.01",key:"e9boi3"}]]);/**
107 * @license lucide-react v0.462.0 - ISC
108 *
109 * This source code is licensed under the ISC license.
110 * See the LICENSE file in the root directory of this source tree.
111 */const iC=Re("Instagram",[["rect",{width:"20",height:"20",x:"2",y:"2",rx:"5",ry:"5",key:"2e1cvw"}],["path",{d:"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z",key:"9exkf1"}],["line",{x1:"17.5",x2:"17.51",y1:"6.5",y2:"6.5",key:"r4j83e"}]]);/**
112 * @license lucide-react v0.462.0 - ISC
113 *
114 * This source code is licensed under the ISC license.
115 * See the LICENSE file in the root directory of this source tree.
116 */const rC=Re("Mail",[["rect",{width:"20",height:"16",x:"2",y:"4",rx:"2",key:"18n3k1"}],["path",{d:"m22 7-8.97 5.7a1.94 1.94 0 0 1-2.06 0L2 7",key:"1ocrg3"}]]);/**
117 * @license lucide-react v0.462.0 - ISC
118 *
119 * This source code is licensed under the ISC license.
120 * See the LICENSE file in the root directory of this source tree.
121 */const LS=Re("MapPin",[["path",{d:"M20 10c0 4.993-5.539 10.193-7.399 11.799a1 1 0 0 1-1.202 0C9.539 20.193 4 14.993 4 10a8 8 0 0 1 16 0",key:"1r0f0z"}],["circle",{cx:"12",cy:"10",r:"3",key:"ilqhr7"}]]);/**
122 * @license lucide-react v0.462.0 - ISC
123 *
124 * This source code is licensed under the ISC license.
125 * See the LICENSE file in the root directory of this source tree.
126 */const sC=Re("Menu",[["line",{x1:"4",x2:"20",y1:"12",y2:"12",key:"1e0a9i"}],["line",{x1:"4",x2:"20",y1:"6",y2:"6",key:"1owob3"}],["line",{x1:"4",x2:"20",y1:"18",y2:"18",key:"yk5zj1"}]]);/**
127 * @license lucide-react v0.462.0 - ISC
128 *
129 * This source code is licensed under the ISC license.
130 * See the LICENSE file in the root directory of this source tree.
131 */const oC=Re("MessageCircle",[["path",{d:"M7.9 20A9 9 0 1 0 4 16.1L2 22Z",key:"vv11sd"}]]);/**
132 * @license lucide-react v0.462.0 - ISC
133 *
134 * This source code is licensed under the ISC license.
135 * See the LICENSE file in the root directory of this source tree.
136 */const aC=Re("MessagesSquare",[["path",{d:"M14 9a2 2 0 0 1-2 2H6l-4 4V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2z",key:"p1xzt8"}],["path",{d:"M18 9h2a2 2 0 0 1 2 2v11l-4-4h-6a2 2 0 0 1-2-2v-1",key:"1cx29u"}]]);/**
137 * @license lucide-react v0.462.0 - ISC
138 *
139 * This source code is licensed under the ISC license.
140 * See the LICENSE file in the root directory of this source tree.
141 */const lC=Re("Phone",[["path",{d:"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z",key:"foiqr5"}]]);/**
142 * @license lucide-react v0.462.0 - ISC
143 *
144 * This source code is licensed under the ISC license.
145 * See the LICENSE file in the root directory of this source tree.
146 */const uC=Re("Send",[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]]);/**
147 * @license lucide-react v0.462.0 - ISC
148 *
149 * This source code is licensed under the ISC license.
150 * See the LICENSE file in the root directory of this source tree.
151 */const cC=Re("ShieldCheck",[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",ke
vendor: 9,294 bytes, lines 151-176
151y:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);/**
152 * @license lucide-react v0.462.0 - ISC
153 *
154 * This source code is licensed under the ISC license.
155 * See the LICENSE file in the root directory of this source tree.
156 */const dC=Re("Twitter",[["path",{d:"M22 4s-.7 2.1-2 3.4c1.6 10-9.4 17.3-18 11.6 2.2.1 4.4-.6 6-2C3 15.5.5 9.6 3 5c2.2 2.6 5.6 4.1 9 4-.9-4.2 4-6.6 7-3.8 1.1 0 3-1.2 3-1.2z",key:"pff0z6"}]]);/**
157 * @license lucide-react v0.462.0 - ISC
158 *
159 * This source code is licensed under the ISC license.
160 * See the LICENSE file in the root directory of this source tree.
161 */const pC=Re("UserRound",[["circle",{cx:"12",cy:"8",r:"5",key:"1hypcn"}],["path",{d:"M20 21a8 8 0 0 0-16 0",key:"rfgkzh"}]]);/**
162 * @license lucide-react v0.462.0 - ISC
163 *
164 * This source code is licensed under the ISC license.
165 * See the LICENSE file in the root directory of this source tree.
166 */const hC=Re("Users",[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["path",{d:"M16 3.13a4 4 0 0 1 0 7.75",key:"1da9ce"}]]);/**
167 * @license lucide-react v0.462.0 - ISC
168 *
169 * This source code is licensed under the ISC license.
170 * See the LICENSE file in the root directory of this source tree.
171 */const dh=Re("X",[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]]);/**
172 * @license lucide-react v0.462.0 - ISC
173 *
174 * This source code is licensed under the ISC license.
175 * See the LICENSE file in the root directory of this source tree.
176 */const fC=Re("Youtube",[["path",{d:"M2.5 17a24.12 24.12 0 0 1 0-10 2 2 0 0 1 1.4-1.4 49.56 49.56 0 0 1 16.2 0A2 2 0 0 1 21.5 7a24.12 24.12 0 0 1 0 10 2 2 0 0 1-1.4 1.4 49.55 49.55 0 0 1-16.2 0A2 2 0 0 1 2.5 17",key:"1q2vi4"}],["path",{d:"m10 15 5-3-5-3z",key:"1jp15x"}]]),ph="-",mC=t=>{const e=vC(t),{conflictingClassGroups:n,conflictingClassGroupModifiers:i}=t;return{getClassGroupId:o=>{const a=o.split(ph);return a[0]===""&&a.length!==1&&a.shift(),jS(a,e)||gC(o)},getConflictingClassGroupIds:(o,a)=>{const l=n[o]||[];return a&&i[o]?[...l,...i[o]]:l}}},jS=(t,e)=>{var o;if(t.length===0)return e.classGroupId;const n=t[0],i=e.nextPart.get(n),r=i?jS(t.slice(1),i):void 0;if(r)return r;if(e.validators.length===0)return;const s=t.join(ph);return(o=e.validators.find(({validator:a})=>a(s)))==null?void 0:o.classGroupId},fm=/^\[(.+)\]$/,gC=t=>{if(fm.test(t)){const e=fm.exec(t)[1],n=e==null?void 0:e.substring(0,e.indexOf(":"));if(n)return"arbitrary.."+n}},vC=t=>{const{theme:e,prefix:n}=t,i={nextPart:new Map,validators:[]};return SC(Object.entries(t.classGroups),n).forEach(([s,o])=>{Dd(o,i,s,e)}),i},Dd=(t,e,n,i)=>{t.forEach(r=>{if(typeof r=="string"){const s=r===""?e:mm(e,r);s.classGroupId=n;return}if(typeof r=="function"){if(yC(r)){Dd(r(i),e,n,i);return}e.validators.push({validator:r,classGroupId:n});return}Object.entries(r).forEach(([s,o])=>{Dd(o,mm(e,s),n,i)})})},mm=(t,e)=>{let n=t;return e.split(ph).forEach(i=>{n.nextPart.has(i)||n.nextPart.set(i,{nextPart:new Map,validators:[]}),n=n.nextPart.get(i)}),n},yC=t=>t.isThemeGetter,SC=(t,e)=>e?t.map(([n,i])=>{const r=i.map(s=>typeof s=="string"?e+s:typeof s=="object"?Object.fromEntries(Object.entries(s).map(([o,a])=>[e+o,a])):s);return[n,r]}):t,wC=t=>{if(t<1)return{get:()=>{},set:()=>{}};let e=0,n=new Map,i=new Map;const r=(s,o)=>{n.set(s,o),e++,e>t&&(e=0,i=n,n=new Map)};return{get(s){let o=n.get(s);if(o!==void 0)return o;if((o=i.get(s))!==void 0)return r(s,o),o},set(s,o){n.has(s)?n.set(s,o):r(s,o)}}},NS="!",bC=t=>{const{separator:e,experimentalParseClassName:n}=t,i=e.length===1,r=e[0],s=e.length,o=a=>{const l=[];let u=0,c=0,p;for(let w=0;w<a.length;w++){let S=a[w];if(u===0){if(S===r&&(i||a.slice(w,w+s)===e)){l.push(a.slice(c,w)),c=w+s;continue}if(S==="/"){p=w;continue}}S==="["?u++:S==="]"&&u--}const h=l.length===0?a:a.substring(c),d=h.startsWith(NS),v=d?h.substring(1):h,g=p&&p>c?p-c:void 0;return{modifiers:l,hasImportantModifier:d,baseClassName:v,maybePostfixModifierPosition:g}};return n?a=>n({className:a,parseClassName:o}):o},xC=t=>{if(t.length<=1)return t;const e=[];let n=[];return t.forEach(i=>{i[0]==="["?(e.push(...n.sort(),i),n=[]):n.push(i)}),e.push(...n.sort()),e},kC=t=>({cache:wC(t.cacheSize),parseClassName:bC(t),...mC(t)}),CC=/\s+/,EC=(t,e)=>{const{parseClassName:n,getClassGroupId:i,getConflictingClassGroupIds:r}=e,s=[],o=t.trim().split(CC);let a="";for(let l=o.length-1;l>=0;l-=1){const u=o[l],{modifiers:c,hasImportantModifier:p,baseClassName:h,maybePostfixModifierPosition:d}=n(u);let v=!!d,g=i(v?h.substring(0,d):h);if(!g){if(!v){a=u+(a.length>0?" "+a:a);continue}if(g=i(h),!g){a=u+(a.length>0?" "+a:a);continue}v=!1}const w=xC(c).join(":"),S=p?w+NS:w,m=S+g;if(s.includes(m))continue;s.push(m);const y=r(g,v);for(let x=0;x<y.length;++x){const C=y[x];s.push(S+C)}a=u+(a.length>0?" "+a:a)}return a};function _C(){let t=0,e,n,i="";for(;t<arguments.length;)(e=arguments[t++])&&(n=qS(e))&&(i&&(i+=" "),i+=n);return i}const qS=t=>{if(typeof t=="string")return t;let e,n="";for(let i=0;i<t.length;i++)t[i]&&(e=qS(t[i]))&&(n&&(n+=" "),n+=e);return n};function AC(t,...e){let n,i,r,s=o;function o(l){const u=e.reduce((c,p)=>p(c),t());return n=kC(u),i=n.cache.get,r=n.cache.set,s=a,a(l)}function a(l){const u=i(l);if(u)return u;const c=EC(l,n);return r(l,c),c}return function(){return s(_C.apply(null,arguments))}}const we=t=>{const e=n=>n[t]||[];return e.isThemeGetter=!0,e},DS=/^\[(?:([a-z-]+):)?(.+)\]$/i,TC=/^\d+\/\d+$/,RC=new Set(["px","full","screen"]),PC=/^(\d+(\.\d+)?)?(xs|sm|md|lg|xl)$/,UC=/\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$/,IC=/^(rgba?|hsla?|hwb|(ok)?(lab|lch))\(.+\)$/,OC=/^(inset_)?-?((\d+)?\.?(\d+)[a-z]+|0)_-?((\d+)?\.?(\d+)[a-z]+|0)/,LC=/^(url|image|image-set|cross-fade|element|(repeating-)?(linear|radial|conic)-gradient)\(.+\)$/,Bn=t=>hs(t)||RC.has(t)||TC.test(t),gi=t=>qs(t,"length",KC),hs=t=>!!t&&!Number.isNaN(Number(t)),Cc=t=>qs(t,"number",hs),oo=t=>!!t&&Number.isInteger(Number(t)),jC=t=>t.endsWith("%")&&hs(t.slice(0,-1)),re=t=>DS.test(t),vi=t=>PC.test(t),NC=new Set(["length","size","percentage"]),qC=t=>qs(t,NC,FS),DC=t=>qs(t,"position",FS),FC=new Set(["image","url"]),MC=t=>qs(t,FC,VC),$C=t=>qs(t,"",zC),ao=()=>!0,qs=(t,e,n)=>{const i=DS.exec(t);return i?i[1]?typeof e=="string"?i[1]===e:e.has(i[1]):n(i[2]):!1},KC=t=>UC.test(t)&&!IC.test(t),FS=()=>!1,zC=t=>OC.test(t),VC=t=>LC.test(t),BC=()=>{const t=we("colors"),e=we("spacing"),n=we("blur"),i=we("brightness"),r=we("borderColor"),s=we("borderRadius"),o=we("borderSpacing"),a=we("borderWidth"),l=we("contrast"),u=we("grayscale"),c=we("hueRotate"),p=we("invert"),h=we("gap"),d=we("gradientColorStops"),v=we("gradientColorStopPositions"),g=we("inset"),w=we("margin"),S=we("opacity"),m=we("padding"),y=we("saturate"),x=we("scale"),C=we("sepia"),E=we("skew"),_=we("space"),A=we("translate"),I=()=>["auto","contain","none"],L=()=>["auto","hidden","clip","visible","scroll"],F=()=>["auto",re,e],q=()=>[re,e],X=()=>["",Bn,gi],N=()=>["auto",hs,re],oe=()=>["bottom","center","left","left-bottom","left-top","right","right-bottom","right-top","top"],Z=()=>["solid","dashed","dotted","double","none"],te=()=>["normal","multiply","screen","overlay","darken","lighten","color-dodge","color-burn","hard-light","soft-light","difference","exclusion","hue","saturation","color","luminosity"],T=()=>["start","end","center","between","around","evenly","stretch"],P=()=>["","0",re],D=()=>["auto","avoid","all","avoid-page","page","left","right","column"],$=()=>[hs,re];return{cacheSize:500,separator:":",theme:{colors:[ao],spacing:[Bn,gi],blur:["none","",vi,re],brightness:$(),borderColor:[t],borderRadius:["none","","full",vi,re],borderSpacing:q(),borderWidth:X(),contrast:$(),grayscale:P(),hueRotate:$(),invert:P(),gap:q(),gradientColorStops:[t],gradientColorStopPositions:[jC,gi],inset:F(),margin:F(),opacity:$(),padding:q(),saturate:$(),scale:$(),sepia:P(),skew:$(),space:q(),translate:q()},classGroups:{aspect:[{aspect:["auto","square","video",re]}],container:["container"],columns:[{columns:[vi]}],"break-after":[{"break-after":D()}],"break-before":[{"break-before":D()}],"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:[...oe(),re]}],overflow:[{overflow:L()}],"overflow-x":[{"overflow-x":L()}],"overflow-y":[{"overflow-y":L()}],overscroll:[{overscroll:I()}],"overscroll-x":[{"overscroll-x":I()}],"overscroll-y":[{"overscroll-y":I()}],position:["static","fixed","absolute","relative","sticky"],inset:[{inset:[g]}],"inset-x":[{"inset-x":[g]}],"inset-y":[{"inset-y":[g]}],start:[{start:[g]}],end:[{end:[g]}],top:[{top:[g]}
vendor: 4,768 bytes, line 176
176],right:[{right:[g]}],bottom:[{bottom:[g]}],left:[{left:[g]}],visibility:["visible","invisible","collapse"],z:[{z:["auto",oo,re]}],basis:[{basis:F()}],"flex-direction":[{flex:["row","row-reverse","col","col-reverse"]}],"flex-wrap":[{flex:["wrap","wrap-reverse","nowrap"]}],flex:[{flex:["1","auto","initial","none",re]}],grow:[{grow:P()}],shrink:[{shrink:P()}],order:[{order:["first","last","none",oo,re]}],"grid-cols":[{"grid-cols":[ao]}],"col-start-end":[{col:["auto",{span:["full",oo,re]},re]}],"col-start":[{"col-start":N()}],"col-end":[{"col-end":N()}],"grid-rows":[{"grid-rows":[ao]}],"row-start-end":[{row:["auto",{span:[oo,re]},re]}],"row-start":[{"row-start":N()}],"row-end":[{"row-end":N()}],"grid-flow":[{"grid-flow":["row","col","dense","row-dense","col-dense"]}],"auto-cols":[{"auto-cols":["auto","min","max","fr",re]}],"auto-rows":[{"auto-rows":["auto","min","max","fr",re]}],gap:[{gap:[h]}],"gap-x":[{"gap-x":[h]}],"gap-y":[{"gap-y":[h]}],"justify-content":[{justify:["normal",...T()]}],"justify-items":[{"justify-items":["start","end","center","stretch"]}],"justify-self":[{"justify-self":["auto","start","end","center","stretch"]}],"align-content":[{content:["normal",...T(),"baseline"]}],"align-items":[{items:["start","end","center","baseline","stretch"]}],"align-self":[{self:["auto","start","end","center","stretch","baseline"]}],"place-content":[{"place-content":[...T(),"baseline"]}],"place-items":[{"place-items":["start","end","center","baseline","stretch"]}],"place-self":[{"place-self":["auto","start","end","center","stretch"]}],p:[{p:[m]}],px:[{px:[m]}],py:[{py:[m]}],ps:[{ps:[m]}],pe:[{pe:[m]}],pt:[{pt:[m]}],pr:[{pr:[m]}],pb:[{pb:[m]}],pl:[{pl:[m]}],m:[{m:[w]}],mx:[{mx:[w]}],my:[{my:[w]}],ms:[{ms:[w]}],me:[{me:[w]}],mt:[{mt:[w]}],mr:[{mr:[w]}],mb:[{mb:[w]}],ml:[{ml:[w]}],"space-x":[{"space-x":[_]}],"space-x-reverse":["space-x-reverse"],"space-y":[{"space-y":[_]}],"space-y-reverse":["space-y-reverse"],w:[{w:["auto","min","max","fit","svw","lvw","dvw",re,e]}],"min-w":[{"min-w":[re,e,"min","max","fit"]}],"max-w":[{"max-w":[re,e,"none","full","min","max","fit","prose",{screen:[vi]},vi]}],h:[{h:[re,e,"auto","min","max","fit","svh","lvh","dvh"]}],"min-h":[{"min-h":[re,e,"min","max","fit","svh","lvh","dvh"]}],"max-h":[{"max-h":[re,e,"min","max","fit","svh","lvh","dvh"]}],size:[{size:[re,e,"auto","min","max","fit"]}],"font-size":[{text:["base",vi,gi]}],"font-smoothing":["antialiased","subpixel-antialiased"],"font-style":["italic","not-italic"],"font-weight":[{font:["thin","extralight","light","normal","medium","semibold","bold","extrabold","black",Cc]}],"font-family":[{font:[ao]}],"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",re]}],"line-clamp":[{"line-clamp":["none",hs,Cc]}],leading:[{leading:["none","tight","snug","normal","relaxed","loose",Bn,re]}],"list-image":[{"list-image":["none",re]}],"list-style-type":[{list:["none","disc","decimal",re]}],"list-style-position":[{list:["inside","outside"]}],"placeholder-color":[{placeholder:[t]}],"placeholder-opacity":[{"placeholder-opacity":[S]}],"text-alignment":[{text:["left","center","right","justify","start","end"]}],"text-color":[{text:[t]}],"text-opacity":[{"text-opacity":[S]}],"text-decoration":["underline","overline","line-through","no-underline"],"text-decoration-style":[{decoration:[...Z(),"wavy"]}],"text-decoration-thickness":[{decoration:["auto","from-font",Bn,gi]}],"underline-offset":[{"underline-offset":["auto",Bn,re]}],"text-decoration-color":[{decoration:[t]}],"text-transform":["uppercase","lowercase","capitalize","normal-case"],"text-overflow":["truncate","text-ellipsis","text-clip"],"text-wrap":[{text:["wrap","nowrap","balance","pretty"]}],indent:[{indent:q()}],"vertical-align":[{align:["baseline","top","middle","bottom","text-top","text-bottom","sub","super",re]}],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",re]}],"bg-attachment":[{bg:["fixed","local","scroll"]}],"bg-clip":[{"bg-clip":["border","padding","content","text"]}],"bg-opacity":[{"bg-opacity":[S]}],"bg-origin":[{"bg-origin":["border","padding","content"]}],"bg-position":[{bg:[...oe(),DC]}],"bg-repeat":[{bg:["no-repeat",{repeat:["","x","y","round","space"]}]}],"bg-size":[{bg:["auto","cover","contain",qC]}],"bg-image":[{bg:["none",{"gradient-to":["t","tr","r","br","b","bl","l","tl"]},MC]}],"bg-color":[{bg:[t]}],"gradient-from-pos":[{from:[v]}
176],"gradient-via-pos":[{via:[v]}],"gradient-to-pos":[{to:[v]}],"gradient-from":[{from:[d]}],"gradient-via":[{via:[d]}],"gradient-to":[{to:[d]}],rounded:[{rounded:[s]}],"rounded-s":[{"rounded-s":[s]}],"rounded-e":[{"rounded-e":[s]}],"rounded-t":[{"rounded-t":[s]}],"rounded-r":[{"rounded-r":[s]}],"rounded-b":[{"rounded-b":[s]}],"rounded-l":[{"rounded-l":[s]}],"rounded-ss":[{"rounded-ss":[s]}],"rounded-se":[{"rounded-se":[s]}],"rounded-ee":[{"rounded-ee":[s]}],"rounded-es":[{"rounded-es":[s]}],"rounded-tl":[{"rounded-tl":[s]}],"rounded-tr":[{"rounded-tr":[s]}],"rounded-br":[{"rounded-br":[s]}],"rounded-bl":[{"rounded-bl":[s]}],"border-w":[{border:[a]}],"border-w-x":[{"border-x":[a]}],"border-w-y":[{"border-y":[a]}],"border-w-s":[{"border-s":[a]}],"border-w-e":[{"border-e":[a]}],"border-w-t":[{"border-t":[a]}],"border-w-r":[{"border-r":[a]}],"border-w-b":[{"border-b":[a]}],"border-w-l":[{"border-l":[a]}],"border-opacity":[{"border-opacity":[S]}],"border-style":[{border:[...Z(),"hidden"]}],"divide-x":[{"divide-x":[a]}],"divide-x-reverse":["divide-x-reverse"],"divide-y":[{"divide-y":[a]}],"divide-y-reverse":["divide-y-reverse"],"divide-opacity":[{"divide-opacity":[S]}
vendor: 4,469 bytes, line 176
176],"divide-style":[{divide:Z()}],"border-color":[{border:[r]}],"border-color-x":[{"border-x":[r]}],"border-color-y":[{"border-y":[r]}],"border-color-s":[{"border-s":[r]}],"border-color-e":[{"border-e":[r]}],"border-color-t":[{"border-t":[r]}],"border-color-r":[{"border-r":[r]}],"border-color-b":[{"border-b":[r]}],"border-color-l":[{"border-l":[r]}],"divide-color":[{divide:[r]}],"outline-style":[{outline:["",...Z()]}],"outline-offset":[{"outline-offset":[Bn,re]}],"outline-w":[{outline:[Bn,gi]}],"outline-color":[{outline:[t]}],"ring-w":[{ring:X()}],"ring-w-inset":["ring-inset"],"ring-color":[{ring:[t]}],"ring-opacity":[{"ring-opacity":[S]}],"ring-offset-w":[{"ring-offset":[Bn,gi]}],"ring-offset-color":[{"ring-offset":[t]}],shadow:[{shadow:["","inner","none",vi,$C]}],"shadow-color":[{shadow:[ao]}],opacity:[{opacity:[S]}],"mix-blend":[{"mix-blend":[...te(),"plus-lighter","plus-darker"]}],"bg-blend":[{"bg-blend":te()}],filter:[{filter:["","none"]}],blur:[{blur:[n]}],brightness:[{brightness:[i]}],contrast:[{contrast:[l]}],"drop-shadow":[{"drop-shadow":["","none",vi,re]}],grayscale:[{grayscale:[u]}],"hue-rotate":[{"hue-rotate":[c]}],invert:[{invert:[p]}],saturate:[{saturate:[y]}],sepia:[{sepia:[C]}],"backdrop-filter":[{"backdrop-filter":["","none"]}],"backdrop-blur":[{"backdrop-blur":[n]}],"backdrop-brightness":[{"backdrop-brightness":[i]}],"backdrop-contrast":[{"backdrop-contrast":[l]}],"backdrop-grayscale":[{"backdrop-grayscale":[u]}],"backdrop-hue-rotate":[{"backdrop-hue-rotate":[c]}],"backdrop-invert":[{"backdrop-invert":[p]}],"backdrop-opacity":[{"backdrop-opacity":[S]}],"backdrop-saturate":[{"backdrop-saturate":[y]}],"backdrop-sepia":[{"backdrop-sepia":[C]}],"border-collapse":[{border:["collapse","separate"]}],"border-spacing":[{"border-spacing":[o]}],"border-spacing-x":[{"border-spacing-x":[o]}],"border-spacing-y":[{"border-spacing-y":[o]}],"table-layout":[{table:["auto","fixed"]}],caption:[{caption:["top","bottom"]}],transition:[{transition:["none","all","","colors","opacity","shadow","transform",re]}],duration:[{duration:$()}],ease:[{ease:["linear","in","out","in-out",re]}],delay:[{delay:$()}],animate:[{animate:["none","spin","ping","pulse","bounce",re]}],transform:[{transform:["","gpu","none"]}],scale:[{scale:[x]}],"scale-x":[{"scale-x":[x]}],"scale-y":[{"scale-y":[x]}],rotate:[{rotate:[oo,re]}],"translate-x":[{"translate-x":[A]}],"translate-y":[{"translate-y":[A]}],"skew-x":[{"skew-x":[E]}],"skew-y":[{"skew-y":[E]}],"transform-origin":[{origin:["center","top","top-right","right","bottom-right","bottom","bottom-left","left","top-left",re]}],accent:[{accent:["auto",t]}],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",re]}],"caret-color":[{caret:[t]}],"pointer-events":[{"pointer-events":["none","auto"]}],resize:[{resize:["none","y","x",""]}],"scroll-behavior":[{scroll:["auto","smooth"]}],"scroll-m":[{"scroll-m":q()}],"scroll-mx":[{"scroll-mx":q()}],"scroll-my":[{"scroll-my":q()}],"scroll-ms":[{"scroll-ms":q()}],"scroll-me":[{"scroll-me":q()}],"scroll-mt":[{"scroll-mt":q()}],"scroll-mr":[{"scroll-mr":q()}],"scroll-mb":[{"scroll-mb":q()}],"scroll-ml":[{"scroll-ml":q()}],"scroll-p":[{"scroll-p":q()}],"scroll-px":[{"scroll-px":q()}],"scroll-py":[{"scroll-py":q()}],"scroll-ps":[{"scroll-ps":q()}],"scroll-pe":[{"scroll-pe":q()}],"scroll-pt":[{"scroll-pt":q()}],"scroll-pr":[{"scroll-pr":q()}],"scroll-pb":[{"scroll-pb":q()}],"scroll-pl":[{"scroll-pl":q()}],"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"]}],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",re]}],fill:[{fill:[t,"none"]}],"stroke-w":[{stroke:[Bn,gi,Cc]}],stroke:[{stroke:[t,"none"]}],sr:["sr-only","not-sr-only"],"forced-color-adjust":[{"forced-color-adjust":["auto","
176none"]}]},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"]}}},WC=AC(BC);function Ji(...t){return WC(US(t))}const HC=Hk,MS=b.forwardRef(({className:t,...e},n)=>f.jsx(CS,{ref:n,className:Ji("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]",t),...e}));MS.displayName=CS.displayName;const GC=IS("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"}}),$S=b.forwardRef(({className:t,variant:e,...n},i)=>f.jsx(ES,{ref:i,className:Ji(GC({variant:e}),t),...n}));$S.displayName=ES.displayName;const QC=b.forwardRef(({className:t,...e},n)=>f.jsx(TS,{ref:n,className:Ji("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",t),...e}));QC.displayName=TS.displayName;const KS=b.forwardRef(({className:t,...e},n)=>f.jsx(RS,{ref:n,className:Ji("absolute right-2 top-2 rounded-md p-1 text-foreground
176/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",t),"toast-close":"",...e,children:f.jsx(dh,{className:"h-4 w-4"})}));KS.displayName=RS.displayName;const zS=b.forwardRef(({className:t,...e},n)=>f.jsx(_S,{ref:n,className:Ji("text-sm font-semibold",t),...e}));zS.displayName=_S.displayName;const VS=b.forwardRef(({className:t,...e},n)=>f.jsx(AS,{ref:n,className:Ji("text-sm opacity-90",t),...e}));VS.displayName=AS.displayName;function YC(){const{toasts:t}=iS();return f.jsxs(HC,{children:[t.map(function({id:e,title:n,description:i,action:r,...s}){return f.jsxs($S,{...s,children:[f.jsxs("div",{className:"grid gap-1",children:[n&&f.jsx(zS,{children:n}),i&&f.jsx(VS,{children:i})]}),r,f.jsx(KS,{})]},e)}),f.jsx(MS,{})]})}var gm=["light","dark"],JC="(prefers-color-scheme: dark)",XC=b.createContext(void 0),ZC={setTheme:t=>{},themes:[]},eE=()=>{var t;return(t=b.useContext(XC))!=null?t:ZC};b.memo(({forcedTheme:t,storageKey:e,attribute:n,enableSystem:i,enableColorScheme:r,defaultTheme:s,value:o,attrs:a,nonce:l})=>{let u=s==="system",c=n==="class"?`var d=document.documentElement,c=d.classList;
176${`c.remove(${a.map(v=>`'${v}'`).join(",")})`};`:`var d=document.documentElement,n='${n}',s='setAttribute';`,p=r?gm.includes(s)&&s?`if(e==='light'||e==='dark'||!e)d.style.colorScheme=e||'${s}'`:"if(e==='light'||e==='dark')d.style.colorScheme=e":"",h=(v,g=!1,w=!0)=>{let S=o?o[v]:v,m=g?v+"|| ''":`'${S}'`,y="";return r&&w&&!g&&gm.includes(v)&&(y+=`d.style.colorScheme = '${v}';`),n==="class"?g||S?y+=`c.add(${m})`:y+="null":S&&(y+=`d[s](n,${m})`),y},d=t?`!function(){${c}${h(t)}}()`:i?`!function(){try{${c}var e=localStorage.getItem('${e}');if('system'===e||(!e&&${u})){var t='${JC}',m=window.matchMedia(t);if(m.media!==t||m.matches){${h("dark")}}else{${h("light")}}}else if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}${u?"":"else{"+h(s,!1,!1)+"}"}${p}}catch(e){}}()`:`!function(){try{${c}var e=localStorage.getItem('${e}');if(e){${o?`var x=${JSON.stringify(o)};`:""}${h(o?"x[e]":"e",!0)}}else{${h(s,!1,!1)};}${p}}catch(t){}}();`;return b.createElement("script",{nonce:l,dangerouslySetInnerHTML:{__html:d}})});var tE=t=>{switch(t){case"success":return rE;case"info":return oE;case"warning":return sE;case"error":return aE;default:return null}},nE=Array(12).fill(0),iE=({visible:t,className:e})=>j.createElement("div",{className:["sonner-loading-wrapper",e].filter(Boolean).join(" "),"data-visible":t},j.createElement("div",{className:"sonner-spinner"},nE.map((n,i)=>j.createElement("div",{className:"sonner-loading-bar",key:`spinner-bar-${i}`})))),rE=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.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"})),sE=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"currentColor",height:"20",width:"20"},j.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"})),oE=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.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"})),aE=j.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 20 20",fill:"currentColor",height:"20",width:"20"},j.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"})),lE=j.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"},j.createElement("line",{x1:"18",y1:"6",x2:"6",y2:"18"}),j.createElement("line",{x1:"6",y1:"6",x2:"18",y2:"18"})),uE=()=>{let[t,e]=j.useState(document.hidden);return j.useEffect(()=>{let n=()=>{e(document.hidden)};return document.addEventListener("visibilitychange",n),()=>window.removeEventListener("visibilitychange",n)},[]),t},Fd=1,cE=class{constructor(){this.subscribe=t=>(this.subscribers.push(t),()=>{let e=this.subscribers.indexOf(t);this.subscribers.splice(e,1)}),this.publish=t=>{this.subscribers.forEach(e=>e(t))},this.addToast=t=>{this.publish(t),this.toasts=[...this.toasts,t]},this.create=t=>{var e;let{message:n,...i}=t,r=typeof(t==null?void 0:t.id)=="number"||((e=t.id)==null?void 0:e.length)>0?t.id:Fd++,s=this.toasts.find(a=>a.id===r),o=t.dismissible===void 0?!0:t.dismissible;return this.dismissedToasts.has(r)&&this.dismissedToasts.delete(r),s?this.toasts=this.toasts.map(a=>a.id===r?(this.publish({...a,...t,id:r,title:n}),{...a,...t,id:r,dismissible:o,title:n}):a):this.addToast({title:n,...i,dismissible:o,id:r}),r},this.dismiss=t=>
176(this.dismissedToasts.add(t),t||this.toasts.forEach(e=>{this.subscribers.forEach(n=>n({id:e.id,dismiss:!0}))}),this.subscribers.forEach(e=>e({id:t,dismiss:!0})),t),this.message=(t,e)=>this.create({...e,message:t}),this.error=(t,e)=>this.create({...e,message:t,type:"error"}),this.success=(t,e)=>this.create({...e,type:"success",message:t}),this.info=(t,e)=>this.create({...e,type:"info",message:t}),this.warning=(t,e)=>this.create({...e,type:"warning",message:t}),this.loading=(t,e)=>this.create({...e,type:"loading",message:t}),this.promise=(t,e)=>{if(!e)return;let n;e.loading!==void 0&&(n=this.create({...e,promise:t,type:"loading",message:e.loading,description:typeof e.description!="function"?e.description:void 0}));let i=t instanceof Promise?t:t(),r=n!==void 0,s,o=i.then(async l=>{if(s=["resolve",l],j.isValidElement(l))r=!1,this.create({id:n,type:"default",message:l});else if(pE(l)&&!l.ok){r=!1;let u=typeof e.error=="function"?await e.error(`HTTP error! status: ${l.status}`):e.error,c=typeof e.description=="function"?await e.description(`HTTP error! status: ${l.status}`):e.description;this.create({id:n,type:"error",message:u,description:c})}else if(e.success!==void 0){r=!1;let u=typeof e.success=="function"?await e.success(l):e.success,c=typeof e.description=="function"?await e.description(l):e.description;this.create({id:n,type:"success",message:u,description:c})}}).catch(async l=>{if(s=["reject",l],e.error!==void 0){r=!1;let u=typeof e.error=="function"?await e.error(l):e.error,c=typeof e.description=="function"?await e.description(l):e.description;this.create({id:n,type:"error",message:u,description:c})}}).finally(()=>{var l;r&&(this.dismiss(n),n=void 0),(l=e.finally)==null||l.call(e)}),a=()=>new Promise((l,u)=>o.then(()=>s[0]==="reject"?u(s[1]):l(s[1])).catch(u));return typeof n!="string"&&typeof n!="number"?{unwrap:a}:Object.assign(n,{unwrap:a})},this.custom=(t,e)=>{let n=(e==null?void 0:e.id)||Fd++;return this.create({jsx:t(n),id:n,...e}),n},this.getActiveToasts=()=>this.toasts.filter(t=>!this.dismissedToasts.has(t.id)),this.subscribers=[],this.toasts=[],this.dismissedToasts=new Set}},wt=new cE,dE=(t,e)=>{let n=(e==null?void 0:e.id)||Fd++;return wt.addToast({title:t,...e,id:n}),n},pE=t=>t&&typeof t=="object"&&"ok"in t&&typeof t.ok=="boolean"&&"status"in t&&typeof t.status=="number",hE=dE,fE=()=>wt.toasts,mE=()=>wt.getActiveToasts();Object.assign(hE,{success:wt.success,info:wt.info,warning:wt.warning,error:wt.error,custom:wt.custom,message:wt.message,promise:wt.promise,dismiss:wt.dismiss,loading:wt.loading},{getHistory:fE,getToasts:mE});function gE(t,{insertAt:e}={}){if(typeof document>"u")return;let n=document.head||document.getElementsByTagName("head")[0],i=document.createElement("style");i.type="text/css",e==="top"&&n.firstChild?n.insertBefore(i,n.firstChild):n.appendChild(i),i.styleSheet?i.styleSheet.cssText=t:i.appendChild(document.createTextNode(t))}gE(`: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;
176left: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}
176: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%);
176--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%)}
177`);function Ha(t){return t.label!==void 0}var vE=3,yE="32px",SE="16px",vm=4e3,wE=356,bE=14,xE=20,kE=200;function sn(...t){return t.filter(Boolean).join(" ")}function CE(t){let[e,n]=t.split("-"),i=[];return e&&i.push(e),n&&i.push(n),i}var EE=t=>{var e,n,i,r,s,o,a,l,u,c,p;let{invert:h,toast:d,unstyled:v,interacting:g,setHeights:w,visibleToasts:S,heights:m,index:y,toasts:x,expanded:C,removeToast:E,defaultRichColors:_,closeButton:A,style:I,cancelButtonStyle:L,actionButtonStyle:F,className:q="",descriptionClassName:X="",duration:N,position:oe,gap:Z,loadingIcon:te,expandByDefault:T,classNames:P,icons:D,closeButtonAriaLabel:$="Close toast",pauseWhenPageIsHidden:V}=t,[B,se]=j.useState(null),[ie,Pe]=j.useState(null),[ue,At]=j.useState(!1),[Jt,Xt]=j.useState(!1),[Zt,Mn]=j.useState(!1),[st,$n]=j.useState(!1),[en,pi]=j.useState(!1),[Zi,Mt]=j.useState(0),[tn,er]=j.useState(0),hi=j.useRef(d.duration||N||vm),Vs=j.useRef(null),Kn=j.useRef(null),Bs=y===0,tr=y+1<=S,De=d.type,Be=d.dism
177issible!==!1,Ws=d.className||"",Ca=d.descriptionClassName||"",nr=j.useMemo(()=>m.findIndex(ee=>ee.toastId===d.id)||0,[m,d.id]),Hs=j.useMemo(()=>{var ee;return(ee=d.closeButton)!=null?ee:A},[d.closeButton,A]),Gs=j.useMemo(()=>d.duration||N||vm,[d.duration,N]),fi=j.useRef(0),nn=j.useRef(0),$t=j.useRef(0),Tt=j.useRef(null),[Qs,Ys]=oe.split("-"),Ea=j.useMemo(()=>m.reduce((ee,J,fe)=>fe>=nr?ee:ee+J.height,0),[m,nr]),ir=uE(),jr=d.invert||h,Js=De==="loading";nn.current=j.useMemo(()=>nr*Z+Ea,[nr,Ea]),j.useEffect(()=>{hi.current=Gs},[Gs]),j.useEffect(()=>{At(!0)},[]),j.useEffect(()=>{let ee=Kn.current;if(ee){let J=ee.getBoundingClientRect().height;return er(J),w(fe=>[{toastId:d.id,height:J,position:d.position},...fe]),()=>w(fe=>fe.filter(Rt=>Rt.toastId!==d.id))}},[w,d.id]),j.useLayoutEffect(()=>{if(!ue)return;let ee=Kn.current,J=ee.style.height;ee.style.height="auto";let fe=ee.getBoundingClientRect().height;ee.style.height=J,er(fe),w(Rt=>Rt.find(vt=>vt.toastId===d.id)?Rt.map(vt=>vt.toastId===d.id?{...vt,height:fe}:vt):[{toastId:d.id,height:fe,position:d.position},...Rt])},[ue,d.title,d.description,w,d.id]);let gt=j.useCallback(()=>{Xt(!0),Mt(nn.current),w(ee=>ee.filter(J=>J.toastId!==d.id)),setTimeout(()=>{E(d)},kE)},[d,E,w,nn]);j.useEffect(()=>{if(d.promise&&De==="loading"||d.duration===1/0||d.type==="loading")return;let ee;return C||g||V&&ir?(()=>{if($t.current<fi.current){let J=new Date().getTime()-fi.current;hi.current=hi.current-J}$t.current=new Date().getTime()})():hi.current!==1/0&&(fi.current=new Date().getTime(),ee=setTimeout(()=>{var J;(J=d.onAutoClose)==null||J.call(d,d),gt()},hi.current)),()=>clearTimeout(ee)},[C,g,d,De,V,ir,gt]),j.useEffect(()=>{d.delete&&gt()},[gt,d.delete]);function Bu(){var ee,J,fe;return D!=null&&D.loading?j.createElement("div",{className:sn(P==null?void 0:P.loader,(ee=d==null?void 0:d.classNames)==null?void 0:ee.loader,"sonner-loader"),"data-visible":De==="loading"},D.loading):te?j.createElement("div",{className:sn(P==null?void 0:P.loader,(J=d==null?void 0:d.classNames)==null?void 0:J.loader,"sonner-loader"),"data-visible":De==="loading"},te):j.createElement(iE,{className:sn(P==null?void 0:P.loader,(fe=d==null?void 0:d.classNames)==null?void 0:fe.loader),visible:De==="loading"})}return j.createElement("li",{tabIndex:0,ref:Kn,className:sn(q,Ws,P==null?void 0:P.toast,(e=d==null?void 0:d.classNames)==null?void 0:e.toast,P==null?void 0:P.default,P==null?void 0:P[De],(n=d==null?void 0:d.classNames)==null?void 0:n[De]),"data-sonner-toast":"","data-rich-colors":(i=d.richColors)!=null?i:_,"data-styled":!(d.jsx||d.unstyled||v),"data-mounted":ue,"data-promise":!!d.promise,"data-swiped":en,"data-removed":Jt,"data-visible":tr,"data-y-position":Qs,"data-x-position":Ys,"data-index":y,"data-front":Bs,"data-swiping":Zt,"data-dismissible":Be,"data-type":De,"data-invert":jr,"data-swipe-out":st,"data-swipe-direction":ie,"data-expanded":!!(C||T&&ue),style:{"--index":y,"--toasts-before":y,"--z-index":x.length-y,"--offset":`${Jt?Zi:nn.current}px`,"--initial-height":T?"auto":`${tn}px`,...I,...d.style},onDragEnd:()=>{Mn(!1),se(null),Tt.current=null},onPointerDown:ee=>{Js||!Be||(Vs.current=new Date,Mt(nn.current),ee.target.setPointerCapture(ee.pointerId),ee.target.tagName!=="BUTTON"&&(Mn(!0),Tt.current={x:ee.clientX,y:ee.clientY}))},onPointerUp:()=>{var ee,J,fe,Rt;if(st||!Be)return;Tt.current=null;let vt=Number(((ee=Kn.current)==null?void 0:ee.style.getPropertyValue("--swipe-amount-x").replace("px",""))||0),Kt=Number(((J=Kn.current)==null?void 0:J.style.getPropertyValue("--swipe-amount-y").replace("px",""))||0),Cn=new Date().getTime()-((fe=Vs.current)==null?void 0:fe.getTime()),yt=B==="x"?vt:Kt,En=Math.abs(yt)/Cn;if(Math.abs(yt)>=xE||En>.11){Mt(nn.current),(Rt=d.onDismiss)==null||Rt.call(d,d),Pe(B==="x"?vt>0?"right":"left":Kt>0?"down":"up"),gt(),$n(!0),pi(!1);return}Mn(!1),se(null)},onPointerMove:ee=>{var J,fe,Rt,vt;if(!Tt.current||!Be||((J=window.getSelection())==null?void 0:J.toString().length)>0)return;let Kt=ee.clientY-Tt.current.y,Cn=ee.clientX-Tt.current.x,yt=(fe=t.swipeDirections)!=null?fe:CE(oe);!B&&(Math.abs(Cn)>1||Math.abs(Kt)>1)&&se(Math.abs(Cn)>Math.abs(Kt)?"x":"y");let En={x:0,y:0};B==="y"?(yt.includes("top")||yt.includes("bottom"))&&(yt.includes("top")&&Kt<0||yt.includes("bottom")&&Kt>0)&&(En.y=Kt):B==="x"&&(yt.includes("left")||yt.includes("right"))&&(yt.includes("left")&&Cn<0||yt.includes("right")&&Cn>0)&&(En.x=Cn),(Math.abs(En.x)>0||Math.abs(En.y)>0)&&pi(!0),(Rt=Kn.current)==null||Rt.style.setProperty("--swipe-amount-x",`${En.x}px`),(vt=Kn.current)==null||vt.style.setProperty("--swipe-amount-y",`${En.y}px`)}},Hs&&!d.jsx?j.createElement("button",{"aria-label":$,"data-disabled":Js,"data-close-button":!0,onClick:Js||!Be?()=>{}:()=>{var ee;gt(),(ee=d.onDismiss)==null||ee.call(d,d)},className:sn(P==null?void 0:P.closeButton,(r=d==null?void 0:d.classNames)==null?void 0:r.closeButton)},(s=D==null?void 0:D.close)!=null?s:lE):null,d.jsx||b.isValidElement(d.title)?d.jsx?d.jsx:typeof d.title=="function"?d.title():d.title:j.createElement(j.Fragment,null,De||d.icon||d.promise?j.createElement("div",{"data-icon":"",className:sn(P==null?void 0:P.icon,(o=d==null?void 0:d.classNames)==null?void 0:o.icon)},d.promise||d.type==="loading"&&!d.icon?d.icon||Bu():null,d.type!=="loading"?d.icon||(D==null?void 0:D[De])||tE(De):null):null,j.createElement("div",{"data-content":"",className:sn(P==null?void 0:P.content,(a=d==null?void 0:d.classNames)==null?void 0:a.content)},j.createElement("div",{"data-title":"",className:sn(P==null?void 0:P.title,(l=d==null?void 0:d.classNames)==null?void 0:l.title)},typeof d.title=="function"?d.title():d.title),d.description?j.createElement("div",{"data-description":"",className:sn(X,Ca,P==null?void 0:P.description,(u=d==null?void 0:d.classNames)==null?void 0:u.description)},typeof d.description=="function"?d.description():d.description):null),b.isValidElement(d.cancel)?d.cancel:d.cancel&&Ha(d.cancel)?j.createElement("button",{"data-button":!0,"data-cancel":!0,style:d.cancelButtonStyle||L,onClick:ee=>{var J,fe;Ha(d.cancel)&&Be&&((fe=(J=d.cancel).onClick)==null||fe.call(J,ee),gt()
177)},className:sn(P==null?void 0:P.cancelButton,(c=d==null?void 0:d.classNames)==null?void 0:c.cancelButton)},d.cancel.label):null,b.isValidElement(d.action)?d.action:d.action&&Ha(d.action)?j.createElement("button",{"data-button":!0,"data-action":!0,style:d.actionButtonStyle||F,onClick:ee=>{var J,fe;Ha(d.action)&&((fe=(J=d.action).onClick)==null||fe.call(J,ee),!ee.defaultPrevented&&gt())},className:sn(P==null?void 0:P.actionButton,(p=d==null?void 0:d.classNames)==null?void 0:p.actionButton)},d.action.label):null))};function ym(){if(typeof window>"u"||typeof document>"u")return"ltr";let t=document.documentElement.getAttribute("dir");return t==="auto"||!t?window.getComputedStyle(document.documentElement).direction:t}function _E(t,e){let n={};return[t,e].forEach((i,r)=>{let s=r===1,o=s?"--mobile-offset":"--offset",a=s?SE:yE;function l(u){["top","right","bottom","left"].forEach(c=>{n[`${o}-${c}`]=typeof u=="number"?`${u}px`:u})}typeof i=="number"||typeof i=="string"?l(i):typeof i=="object"?["top","right","bottom","left"].forEach(u=>{i[u]===void 0?n[`${o}-${u}`]=a:n[`${o}-${u}`]=typeof i[u]=="number"?`${i[u]}px`:i[u]}):l(a)}),n}var AE=b.forwardRef(function(t,e){let{invert:n,position:i="bottom-right",hotkey:r=["altKey","KeyT"],expand:s,closeButton:o,className:a,offset:l,mobileOffset:u,theme:c="light",richColors:p,duration:h,style:d,visibleToasts:v=vE,toastOptions:g,dir:w=ym(),gap:S=bE,loadingIcon:m,icons:y,containerAriaLabel:x="Notifications",pauseWhenPageIsHidden:C}=t,[E,_]=j.useState([]),A=j.useMemo(()=>Array.from(new Set([i].concat(E.filter(V=>V.position).map(V=>V.position)))),[E,i]),[I,L]=j.useState([]),[F,q]=j.useState(!1),[X,N]=j.useState(!1),[oe,Z]=j.useState(c!=="system"?c:typeof window<"u"&&window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light"),te=j.useRef(null),T=r.join("+").replace(/Key/g,"").replace(/Digit/g,""),P=j.useRef(null),D=j.useRef(!1),$=j.useCallback(V=>{_(B=>{var se;return(se=B.find(ie=>ie.id===V.id))!=null&&se.delete||wt.dismiss(V.id),B.filter(({id:ie})=>ie!==V.id)})},[]);return j.useEffect(()=>wt.subscribe(V=>{if(V.dismiss){_(B=>B.map(se=>se.id===V.id?{...se,delete:!0}:se));return}setTimeout(()=>{tS.flushSync(()=>{_(B=>{let se=B.findIndex(ie=>ie.id===V.id);return se!==-1?[...B.slice(0,se),{...B[se],...V},...B.slice(se+1)]:[V,...B]})})})}),[]),j.useEffect(()=>{if(c!=="system"){Z(c);return}if(c==="system"&&(window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches?Z("dark"):Z("light")),typeof window>"u")return;let V=window.matchMedia("(prefers-color-scheme: dark)");try{V.addEventListener("change",({matches:B})=>{Z(B?"dark":"light")})}catch{V.addListener(({matches:se})=>{try{Z(se?"dark":"light")}catch(ie){console.error(ie)}})}},[c]),j.useEffect(()=>{E.length<=1&&q(!1)},[E]),j.useEffect(()=>{let V=B=>{var se,ie;r.every(Pe=>B[Pe]||B.code===Pe)&&(q(!0),(se=te.current)==null||se.focus()),B.code==="Escape"&&(document.activeElement===te.current||(ie=te.current)!=null&&ie.contains(document.activeElement))&&q(!1)};return document.addEventListener("keydown",V),()=>document.removeEventListener("keydown",V)},[r]),j.useEffect(()=>{if(te.current)return()=>{P.current&&(P.current.focus({preventScroll:!0}),P.current=null,D.current=!1)}},[te.current]),j.createElement("section",{ref:e,"aria-label":`${x} ${T}`,tabIndex:-1,"aria-live":"polite","aria-relevant":"additions text","aria-atomic":"false",suppressHydrationWarning:!0},A.map((V,B)=>{var se;let[ie,Pe]=V.split("-");return E.length?j.createElement("ol",{key:V,dir:w==="auto"?ym():w,tabIndex:-1,ref:te,className:a,"data-sonner-toaster":!0,"data-theme":oe,"data-y-position":ie,"data-lifted":F&&E.length>1&&!s,"data-x-position":Pe,style:{"--front-toast-height":`${((se=I[0])==null?void 0:se.height)||0}px`,"--width":`${wE}px`,"--gap":`${S}px`,...d,..._E(l,u)},onBlur:ue=>{D.current&&!ue.currentTarget.contains(ue.relatedTarget)&&(D.current=!1,P.current&&(P.current.focus({preventScroll:!0}),P.current=null))},onFocus:ue=>{ue.target instanceof HTMLElement&&ue.target.dataset.dismissible==="false"||D.current||(D.current=!0,P.current=ue.relatedTarget)},onMouseEnter:()=>q(!0),onMouseMove:()=>q(!0),onMouseLeave:()=>{X||q(!1)},onDragEnd:()=>q(!1),onPointerDown:ue=>{ue.target instanceof HTMLElement&&ue.target.dataset.dismissible==="false"||N(!0)},onPointerUp:()=>N(!1)},E.filter(ue=>!ue.position&&B===0||ue.position===V).map((ue,At)=>{var Jt,Xt;return j.createElement(EE,{key:ue.id,icons:y,index:At,toast:ue,defaultRichColors:p,duration:(Jt=g==null?void 0:g.duration)!=null?Jt:h,className:g==null?void 0:g.className,descriptionClassName:g==null?void 0:g.descriptionClassName,invert:n,visibleToasts:v,closeButton:(Xt=g==null?void 0:g.closeButton)!=null?Xt:o,interacting:X,position:V,style:g==null?void 0:g.style,unstyled:g==null?void 0:g.unstyled,classNames:g==null?void 0:g.classNames,cancelButtonStyle:g==null?void 0:g.cancelButtonStyle,actionButtonStyle:g==null?void 0:g.actionButtonStyle,removeToast:$,toasts:E.filter(Zt=>Zt.position==ue.position),heights:I.filter(Zt=>Zt.position==ue.position),setHeights:L,expandByDefault:s,gap:S,loadingIcon:m,expanded:F,pauseWhenPageIsHidden:C,swipeDirections:t.swipeDirections})})):null}))});const TE=({...t})=>{const{theme:e="system"}=eE();return f.jsx(AE,{theme:e,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"}},...t})},RE=["top","right","bottom","left"],Wi=Math.min,It=Math.max,Ql=Math.round,Ga=Math.floor,qn=t=>({x:t,y:t}
vendor: 11,938 bytes, line 177
177),PE={left:"right",right:"left",bottom:"top",top:"bottom"},UE={start:"end",end:"start"};function Md(t,e,n){return It(t,Wi(e,n))}function oi(t,e){return typeof t=="function"?t(e):t}function ai(t){return t.split("-")[0]}function Ds(t){return t.split("-")[1]}function hh(t){return t==="x"?"y":"x"}function fh(t){return t==="y"?"height":"width"}const IE=new Set(["top","bottom"]);function Ln(t){return IE.has(ai(t))?"y":"x"}function mh(t){return hh(Ln(t))}function OE(t,e,n){n===void 0&&(n=!1);const i=Ds(t),r=mh(t),s=fh(r);let o=r==="x"?i===(n?"end":"start")?"right":"left":i==="start"?"bottom":"top";return e.reference[s]>e.floating[s]&&(o=Yl(o)),[o,Yl(o)]}function LE(t){const e=Yl(t);return[$d(t),e,$d(e)]}function $d(t){return t.replace(/start|end/g,e=>UE[e])}const Sm=["left","right"],wm=["right","left"],jE=["top","bottom"],NE=["bottom","top"];function qE(t,e,n){switch(t){case"top":case"bottom":return n?e?wm:Sm:e?Sm:wm;case"left":case"right":return e?jE:NE;default:return[]}}function DE(t,e,n,i){const r=Ds(t);let s=qE(ai(t),n==="start",i);return r&&(s=s.map(o=>o+"-"+r),e&&(s=s.concat(s.map($d)))),s}function Yl(t){return t.replace(/left|right|bottom|top/g,e=>PE[e])}function FE(t){return{top:0,right:0,bottom:0,left:0,...t}}function BS(t){return typeof t!="number"?FE(t):{top:t,right:t,bottom:t,left:t}}function Jl(t){const{x:e,y:n,width:i,height:r}=t;return{width:i,height:r,top:n,left:e,right:e+i,bottom:n+r,x:e,y:n}}function bm(t,e,n){let{reference:i,floating:r}=t;const s=Ln(e),o=mh(e),a=fh(o),l=ai(e),u=s==="y",c=i.x+i.width/2-r.width/2,p=i.y+i.height/2-r.height/2,h=i[a]/2-r[a]/2;let d;switch(l){case"top":d={x:c,y:i.y-r.height};break;case"bottom":d={x:c,y:i.y+i.height};break;case"right":d={x:i.x+i.width,y:p};break;case"left":d={x:i.x-r.width,y:p};break;default:d={x:i.x,y:i.y}}switch(Ds(e)){case"start":d[o]-=h*(n&&u?-1:1);break;case"end":d[o]+=h*(n&&u?-1:1);break}return d}const ME=async(t,e,n)=>{const{placement:i="bottom",strategy:r="absolute",middleware:s=[],platform:o}=n,a=s.filter(Boolean),l=await(o.isRTL==null?void 0:o.isRTL(e));let u=await o.getElementRects({reference:t,floating:e,strategy:r}),{x:c,y:p}=bm(u,i,l),h=i,d={},v=0;for(let g=0;g<a.length;g++){const{name:w,fn:S}=a[g],{x:m,y,data:x,reset:C}=await S({x:c,y:p,initialPlacement:i,placement:h,strategy:r,middlewareData:d,rects:u,platform:o,elements:{reference:t,floating:e}});c=m??c,p=y??p,d={...d,[w]:{...d[w],...x}},C&&v<=50&&(v++,typeof C=="object"&&(C.placement&&(h=C.placement),C.rects&&(u=C.rects===!0?await o.getElementRects({reference:t,floating:e,strategy:r}):C.rects),{x:c,y:p}=bm(u,h,l)),g=-1)}return{x:c,y:p,placement:h,strategy:r,middlewareData:d}};async function Zo(t,e){var n;e===void 0&&(e={});const{x:i,y:r,platform:s,rects:o,elements:a,strategy:l}=t,{boundary:u="clippingAncestors",rootBoundary:c="viewport",elementContext:p="floating",altBoundary:h=!1,padding:d=0}=oi(e,t),v=BS(d),w=a[h?p==="floating"?"reference":"floating":p],S=Jl(await s.getClippingRect({element:(n=await(s.isElement==null?void 0:s.isElement(w)))==null||n?w:w.contextElement||await(s.getDocumentElement==null?void 0:s.getDocumentElement(a.floating)),boundary:u,rootBoundary:c,strategy:l})),m=p==="floating"?{x:i,y:r,width:o.floating.width,height:o.floating.height}:o.reference,y=await(s.getOffsetParent==null?void 0:s.getOffsetParent(a.floating)),x=await(s.isElement==null?void 0:s.isElement(y))?await(s.getScale==null?void 0:s.getScale(y))||{x:1,y:1}:{x:1,y:1},C=Jl(s.convertOffsetParentRelativeRectToViewportRelativeRect?await s.convertOffsetParentRelativeRectToViewportRelativeRect({elements:a,rect:m,offsetParent:y,strategy:l}):m);return{top:(S.top-C.top+v.top)/x.y,bottom:(C.bottom-S.bottom+v.bottom)/x.y,left:(S.left-C.left+v.left)/x.x,right:(C.right-S.right+v.right)/x.x}}const $E=t=>({name:"arrow",options:t,async fn(e){const{x:n,y:i,placement:r,rects:s,platform:o,elements:a,middlewareData:l}=e,{element:u,padding:c=0}=oi(t,e)||{};if(u==null)return{};const p=BS(c),h={x:n,y:i},d=mh(r),v=fh(d),g=await o.getDimensions(u),w=d==="y",S=w?"top":"left",m=w?"bottom":"right",y=w?"clientHeight":"clientWidth",x=s.reference[v]+s.reference[d]-h[d]-s.floating[v],C=h[d]-s.reference[d],E=await(o.getOffsetParent==null?void 0:o.getOffsetParent(u));let _=E?E[y]:0;(!_||!await(o.isElement==null?void 0:o.isElement(E)))&&(_=a.floating[y]||s.floating[v]);const A=x/2-C/2,I=_/2-g[v]/2-1,L=Wi(p[S],I),F=Wi(p[m],I),q=L,X=_-g[v]-F,N=_/2-g[v]/2+A,oe=Md(q,N,X),Z=!l.arrow&&Ds(r)!=null&&N!==oe&&s.reference[v]/2-(N<q?L:F)-g[v]/2<0,te=Z?N<q?N-q:N-X:0;return{[d]:h[d]+te,data:{[d]:oe,centerOffset:N-oe-te,...Z&&{alignmentOffset:te}},reset:Z}}}),KE=function(t){return t===void 0&&(t={}),{name:"flip",options:t,async fn(e){var n,i;const{placement:r,middlewareData:s,rects:o,initialPlacement:a,platform:l,elements:u}=e,{mainAxis:c=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:d="bestFit",fallbackAxisSideDirection:v="none",flipAlignment:g=!0,...w}=oi(t,e);if((n=s.arrow)!=null&&n.alignmentOffset)return{};const S=ai(r),m=Ln(a),y=ai(a)===a,x=await(l.isRTL==null?void 0:l.isRTL(u.floating)),C=h||(y||!g?[Yl(a)]:LE(a)),E=v!=="none";!h&&E&&C.push(...DE(a,g,v,x));const _=[a,...C],A=await Zo(e,w),I=[];let L=((i=s.flip)==null?void 0:i.overflows)||[];if(c&&I.push(A[S]),p){const N=OE(r,o,x);I.push(A[N[0]],A[N[1]])}if(L=[...L,{placement:r,overflows:I}],!I.every(N=>N<=0)){var F,q;const N=(((F=s.flip)==null?void 0:F.index)||0)+1,oe=_[N];if(oe&&(!(p==="alignment"?m!==Ln(oe):!1)||L.every(T=>T.overflows[0]>0&&Ln(T.placement)===m)))return{data:{index:N,overflows:L},reset:{placement:oe}};let Z=(q=L.filter(te=>te.overflows[0]<=0).sort((te,T)=>te.overflows[1]-T.overflows[1])[0])==null?void 0:q.placement;if(!Z)switch(d){case"bestFit":{var X;const te=(X=L.filter(T=>{if(E){const P=Ln(T.placement);return P===m||P==="y"}return!0}).map(T=>[T.placement,T.overflows.filter(P=>P>0).reduce((P,D)=>P+D,0)]).sort((T,P)=>T[1]-P[1])[0])==null?void 0:X[0];te&&(Z=te);break}case"initialPlacement":Z=a;break}if(r!==Z)return{reset:{placement:Z}}}return{}}}};function xm(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function km(t){return RE.some(e=>t[e]>=0)}const zE=function(t){return t===void 0&&(t={}),{name:"hide",options:t,async fn(e){const{rects:n}=e,{strategy:i="referenceHidden",...r}=oi(t,e);switch(i){case"referenceHidden":{const s=await Zo(e,{...r,elementContext:"reference"}),o=xm(s,n.reference);return{data:{referenceHiddenOffsets:o,referenceHidden:km(o)}}}case"escaped":{const s=await Zo(e,{...r,altBoundary:!0}),o=xm(s,n.floating);return{data:{escapedOffsets:o,escaped:km(o)}}}default:return{}}}}},WS=new Set(["left","top"]);async function VE(t,e){const{placement:n,platform:i,elements:r}=t,s=await(i.isRTL==null?void 0:i.isRTL(r.floating)),o=ai(n),a=Ds(n),l=Ln(n)==="y",u=WS.has(o)?-1:1,c=s&&l?-1:1,p=oi(e,t);let{mainAxis:h,crossAxis:d,alignmentAxis:v}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return a&&typeof v=="number"&&(d=a==="end"?v*-1:v),l?{x:d*c,y:h*u}:{x:h*u,y:d*c}}const BE=function(t){return t===void 0&&(t=0),{name:"offset",options:t,async fn(e){var n,i;const{x:r,y:s,placement:o,middlewareData:a}=e,l=await VE(e,t);return o===((n=a.offset)==null?void 0:n.placement)&&(i=a.arrow)!=null&&i.alignmentOffset?{}:{x:r+l.x,y:s+l.y,data:{...l,placement:o}}}}},WE=function(t){return t===void 0&&(t={}),{name:"shift",options:t,async fn(e){const{x:n,y:i,placement:r}=e,{mainAxis:s=!0,crossAxis:o=!1,limiter:a={fn:w=>{let{x:S,y:m}=w;return{x:S,y:m}}},...l}=oi(t,e),u={x:n,y:i},c=await Zo(e,l),p=Ln(ai(r)),h=hh(p);let d=u[h],v=u[p];if(s){const w=h==="y"?"top":"left",S=h==="y"?"bottom":"right",m=d+c[w],y=d-c[S];d=Md(m,d,y)}if(o){const w=p==="y"?"top":"left",S=p==="y"?"bottom":"right",m=v+c[w],y=v-c[S];v=Md(m,v,y)}const g=a.fn({...e,[h]:d,[p]:v});return{...g,data:{x:g.x-n,y:g.y-i,enabled:{[h]:s,[p]:o}}}}}},HE=function(t){return t===void 0&&(t={}),{options:t,fn(e){const{x:n,y:i,placement:r,rects:s,middlewareData:o}=e,{offset:a=0,mainAxis:l=!0,crossAxis:u=!0}=oi(t,e),c={x:n,y:i},p=Ln(r),h=hh(p);let d=c[h],v=c[p];const g=oi(a,e),w=typeof g=="number"?{mainAxis:g,crossAxis:0}:{mainAxis:0,crossAxis:0,...g};if(l){const y=h==="y"?"height":"width",x=s.reference[h]-s.floating[y]+w.mainAxis,C=s.reference[h]+s.reference[y]-w.mainAxis;d<x?d=x:d>C&&(d=C)}if(u){var S,m;const y=h==="y"?"width":"height",x=WS.has(ai(r)),C=s.reference[p]-s.floating[y]+(x&&((S=o.offset)==null?void 0:S[p])||0)+(x?0:w.crossAxis),E=s.reference[p]+s.reference[y]+(x?0:((m=o.offset)==null?void 0:m[p])||0)-(x?w.crossAxis:0);v<C?v=C:v>E&&(v=E)}return{[h]:d,[p]:v}}}},GE=function(t){return t===void 0&&(t={}),{name:"size",options:t,async fn(e){var n,i;const{placement:r,rects:s,platform:o,elements:a}=e,{apply:l=()=>{},...u}=oi(t,e),c=await Zo(e,u),p=ai(r),h=Ds(r),d=Ln(r)==="y",{width:v,height:g}=s.floating;let w,S;p==="top"||p==="bottom"?(w=p,S=h===(await(o.isRTL==null?void 0:o.isRTL(a.floating))?"start":"end")?"left":"right"):(S=p,w=h==="end"?"top":"bottom");const m=g-c.top-c.bottom,y=v-c.left-c.right,x=Wi(g-c[w],m),C=Wi(v-c[S],y),E=!e.middlewareData.shift;let _=x,A=C;if((n=e.middlewareData.shift)!=null&&n.enabled.x&&(A=y),(i=e.middlewareData.shift)!=null&&i.enabled.y&&(_=m),E&&!h){const L=It(c.left,0),F=It(c.right,0),q=It(c.top,0),X=It(c.bottom,0);d?A=v-2*(L!==0||F!==0?L+F:It(c.left,c.right)):_=g-2*(q!==0||X!==0?q+X:It(c.top,c.bottom))}await l({...e,availableWidth:A,availableHeight:_});const I=await o.getDimensions(a.floating);return v!==I.width||g!==I.height?{reset:{rects:!0}}:{}}}};function Ru(){return typeof window<"u"}function Fs(t){return HS(t)?(t.nodeName||"").toLowerCase():"#document"}function Nt(t){var e;return(t==null||(e=t.ownerDocument)==null?void 0:e.defaultView)||window}function Fn(t){var e;return(e=(HS(t)?t.ownerDocument:t.document)||window.document)==null?void 0:e.documentElement}function HS(t){return Ru()?t instanceof Node||t instanceof Nt(t).Node:!1}function xn(t){return Ru()?t instanceof Element||t instanceof Nt(t).Element:!1}function Dn(t){return Ru()?t instanceof HTMLElement||t instanceof Nt(t).HTMLElement:!1}function Cm(t){return!Ru()||typeof ShadowRoot>"u"?!1:t instanceof ShadowRoot||t instanceof Nt(t).ShadowRoot}const QE=new Set(["inline","contents"]);function ba(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=kn(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&!QE.has(r)}const YE=new Set(["table","td","th"]);function JE(t){return YE.has(Fs(t))}const XE=[":popover-open",":modal"];function Pu(t){return XE.some(e=>{try{return t.matches(e)}catch{return!1}})}const ZE=["transform","translate","scale","rotate","perspective"],e1=["transform","translate","scale","rotate","perspective","filter"],t1=["paint","layout","strict","content"];function gh(t){const e=vh(),n=xn(t)?kn(t):t;return ZE.some(i=>n[i]?n[i]!=="none":!1)||(n.containerType?n.containerType!=="normal":!1)||!e&&(n.backdropFilter?n.backdropFilter!=="none":!1)||!e&&(n.filter?n.filter!=="none":!1)||e1.some(i=>(n.willChange||"").includes(i))||t1.some(i=>(n.contain||"").includes(i))}function n1(t){let e=Hi(t);for(;Dn(e)&&!Us(e);){if(gh(e))return e;if(Pu(e))return null;e=Hi(e)}return null}function vh(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const i1=new Set(["html","body","#document"]);function Us(t){return i1.has(Fs(t))}function kn(t){return Nt(t).getComputedStyle(t)}function Uu(t){return xn(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.scrollX,scrollTop:t.scrollY}}function Hi(t){if(Fs(t)==="html")return t;const e=t.assignedSlot||t.parentNode||Cm(t)&&t.host||Fn(t);return Cm(e)?e.host:e}function GS(t){const e=Hi(t);return Us(e)?t.ownerDocument?t.ownerDocument.body:t.body:Dn(e)&&ba(e)?e:GS(e)}function ea(t,e,n){var i;e===void 0&&(e=[]),n===void 0&&(n=!0);const r=GS(t),s=r===((i=t.ownerDocument)==null?void 0:i.body),o=Nt(r);if(s){const a=Kd(o);
vendor: 6,504 bytes, line 177
177return e.concat(o,o.visualViewport||[],ba(r)?r:[],a&&n?ea(a):[])}return e.concat(r,ea(r,[],n))}function Kd(t){return t.parent&&Object.getPrototypeOf(t.parent)?t.frameElement:null}function QS(t){const e=kn(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const r=Dn(t),s=r?t.offsetWidth:n,o=r?t.offsetHeight:i,a=Ql(n)!==s||Ql(i)!==o;return a&&(n=s,i=o),{width:n,height:i,$:a}}function yh(t){return xn(t)?t:t.contextElement}function fs(t){const e=yh(t);if(!Dn(e))return qn(1);const n=e.getBoundingClientRect(),{width:i,height:r,$:s}=QS(e);let o=(s?Ql(n.width):n.width)/i,a=(s?Ql(n.height):n.height)/r;return(!o||!Number.isFinite(o))&&(o=1),(!a||!Number.isFinite(a))&&(a=1),{x:o,y:a}}const r1=qn(0);function YS(t){const e=Nt(t);return!vh()||!e.visualViewport?r1:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function s1(t,e,n){return e===void 0&&(e=!1),!n||e&&n!==Nt(t)?!1:e}function Pr(t,e,n,i){e===void 0&&(e=!1),n===void 0&&(n=!1);const r=t.getBoundingClientRect(),s=yh(t);let o=qn(1);e&&(i?xn(i)&&(o=fs(i)):o=fs(t));const a=s1(s,n,i)?YS(s):qn(0);let l=(r.left+a.x)/o.x,u=(r.top+a.y)/o.y,c=r.width/o.x,p=r.height/o.y;if(s){const h=Nt(s),d=i&&xn(i)?Nt(i):i;let v=h,g=Kd(v);for(;g&&i&&d!==v;){const w=fs(g),S=g.getBoundingClientRect(),m=kn(g),y=S.left+(g.clientLeft+parseFloat(m.paddingLeft))*w.x,x=S.top+(g.clientTop+parseFloat(m.paddingTop))*w.y;l*=w.x,u*=w.y,c*=w.x,p*=w.y,l+=y,u+=x,v=Nt(g),g=Kd(v)}}return Jl({width:c,height:p,x:l,y:u})}function Sh(t,e){const n=Uu(t).scrollLeft;return e?e.left+n:Pr(Fn(t)).left+n}function JS(t,e,n){n===void 0&&(n=!1);const i=t.getBoundingClientRect(),r=i.left+e.scrollLeft-(n?0:Sh(t,i)),s=i.top+e.scrollTop;return{x:r,y:s}}function o1(t){let{elements:e,rect:n,offsetParent:i,strategy:r}=t;const s=r==="fixed",o=Fn(i),a=e?Pu(e.floating):!1;if(i===o||a&&s)return n;let l={scrollLeft:0,scrollTop:0},u=qn(1);const c=qn(0),p=Dn(i);if((p||!p&&!s)&&((Fs(i)!=="body"||ba(o))&&(l=Uu(i)),Dn(i))){const d=Pr(i);u=fs(i),c.x=d.x+i.clientLeft,c.y=d.y+i.clientTop}const h=o&&!p&&!s?JS(o,l,!0):qn(0);return{width:n.width*u.x,height:n.height*u.y,x:n.x*u.x-l.scrollLeft*u.x+c.x+h.x,y:n.y*u.y-l.scrollTop*u.y+c.y+h.y}}function a1(t){return Array.from(t.getClientRects())}function l1(t){const e=Fn(t),n=Uu(t),i=t.ownerDocument.body,r=It(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),s=It(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let o=-n.scrollLeft+Sh(t);const a=-n.scrollTop;return kn(i).direction==="rtl"&&(o+=It(e.clientWidth,i.clientWidth)-r),{width:r,height:s,x:o,y:a}}function u1(t,e){const n=Nt(t),i=Fn(t),r=n.visualViewport;let s=i.clientWidth,o=i.clientHeight,a=0,l=0;if(r){s=r.width,o=r.height;const u=vh();(!u||u&&e==="fixed")&&(a=r.offsetLeft,l=r.offsetTop)}return{width:s,height:o,x:a,y:l}}const c1=new Set(["absolute","fixed"]);function d1(t,e){const n=Pr(t,!0,e==="fixed"),i=n.top+t.clientTop,r=n.left+t.clientLeft,s=Dn(t)?fs(t):qn(1),o=t.clientWidth*s.x,a=t.clientHeight*s.y,l=r*s.x,u=i*s.y;return{width:o,height:a,x:l,y:u}}function Em(t,e,n){let i;if(e==="viewport")i=u1(t,n);else if(e==="document")i=l1(Fn(t));else if(xn(e))i=d1(e,n);else{const r=YS(t);i={x:e.x-r.x,y:e.y-r.y,width:e.width,height:e.height}}return Jl(i)}function XS(t,e){const n=Hi(t);return n===e||!xn(n)||Us(n)?!1:kn(n).position==="fixed"||XS(n,e)}function p1(t,e){const n=e.get(t);if(n)return n;let i=ea(t,[],!1).filter(a=>xn(a)&&Fs(a)!=="body"),r=null;const s=kn(t).position==="fixed";let o=s?Hi(t):t;for(;xn(o)&&!Us(o);){const a=kn(o),l=gh(o);!l&&a.position==="fixed"&&(r=null),(s?!l&&!r:!l&&a.position==="static"&&!!r&&c1.has(r.position)||ba(o)&&!l&&XS(t,o))?i=i.filter(c=>c!==o):r=a,o=Hi(o)}return e.set(t,i),i}function h1(t){let{element:e,boundary:n,rootBoundary:i,strategy:r}=t;const o=[...n==="clippingAncestors"?Pu(e)?[]:p1(e,this._c):[].concat(n),i],a=o[0],l=o.reduce((u,c)=>{const p=Em(e,c,r);return u.top=It(p.top,u.top),u.right=Wi(p.right,u.right),u.bottom=Wi(p.bottom,u.bottom),u.left=It(p.left,u.left),u},Em(e,a,r));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function f1(t){const{width:e,height:n}=QS(t);return{width:e,height:n}}function m1(t,e,n){const i=Dn(e),r=Fn(e),s=n==="fixed",o=Pr(t,!0,s,e);let a={scrollLeft:0,scrollTop:0};const l=qn(0);function u(){l.x=Sh(r)}if(i||!i&&!s)if((Fs(e)!=="body"||ba(r))&&(a=Uu(e)),i){const d=Pr(e,!0,s,e);l.x=d.x+e.clientLeft,l.y=d.y+e.clientTop}else r&&u();s&&!i&&r&&u();const c=r&&!i&&!s?JS(r,a):qn(0),p=o.left+a.scrollLeft-l.x-c.x,h=o.top+a.scrollTop-l.y-c.y;return{x:p,y:h,width:o.width,height:o.height}}function Ec(t){return kn(t).position==="static"}function _m(t,e){if(!Dn(t)||kn(t).position==="fixed")return null;if(e)return e(t);let n=t.offsetParent;return Fn(t)===n&&(n=n.ownerDocument.body),n}function ZS(t,e){const n=Nt(t);if(Pu(t))return n;if(!Dn(t)){let r=Hi(t);for(;r&&!Us(r);){if(xn(r)&&!Ec(r))return r;r=Hi(r)}return n}let i=_m(t,e);for(;i&&JE(i)&&Ec(i);)i=_m(i,e);return i&&Us(i)&&Ec(i)&&!gh(i)?n:i||n1(t)||n}const g1=async function(t){const e=this.getOffsetParent||ZS,n=this.getDimensions,i=await n(t.floating);return{reference:m1(t.reference,await e(t.floating),t.strategy),floating:{x:0,y:0,width:i.width,height:i.height}}};function v1(t){return kn(t).direction==="rtl"}const y1={convertOffsetParentRelativeRectToViewportRelativeRect:o1,getDocumentElement:Fn,getClippingRect:h1,getOffsetParent:ZS,getElementRects:g1,getClientRects:a1,getDimensions:f1,getScale:fs,isElement:xn,isRTL:v1};function ew(t,e){return t.x===e.x&&t.y===e.y&&t.width===e.width&&t.height===e.height}function S1(t,e){let n=null,i;const r=Fn(t);function s(){var a;clearTimeout(i),(a=n)==null||a.disconnect(),n=null}function o(a,l){a===void 0&&(a=!1),l===void 0&&(l=1),s();const u=t.getBoundingClientRect(),{left:c,top:p,width:h,height:d}=u;if(a||e(),!h||!d)return;const v=Ga(p),g=Ga(r.clientWidth-(c+h)),w=Ga(r.clientHeight-(p+d)),S=Ga(c),y={rootMargin:-v+"px "+-g+"px "+-w+"px "+-S+"px",threshold:It(0,Wi(1,l))||1};let x=!0;function C(E){const _=E[0].intersectionRatio;if(_!==l){if(!x)return o();_?o(!1,_):i=setTimeout(()=>{o(!1,1e-7)},1e3)}_===1&&!ew(u,t.getBoundingClientRect())&&o(),x=!1}try{n=new IntersectionObserver(C,{...y,root:r.ownerDocument})}catch{n=new IntersectionObserver(C,y)}n.observe(t)}return o(!0),s}function w1(t,e,n,i){i===void 0&&(i={});const{ancestorScroll:r=!0,ancestorResize:s=!0,elementResize:o=typeof ResizeObserver=="function",layoutShift:a=typeof IntersectionObserver=="function",animationFrame:l=!1}=i,u=yh(t),c=r||s?[...u?ea(u):[],...ea(e)]:[];
vendor: 8,683 bytes, line 177
177c.forEach(S=>{r&&S.addEventListener("scroll",n,{passive:!0}),s&&S.addEventListener("resize",n)});const p=u&&a?S1(u,n):null;let h=-1,d=null;o&&(d=new ResizeObserver(S=>{let[m]=S;m&&m.target===u&&d&&(d.unobserve(e),cancelAnimationFrame(h),h=requestAnimationFrame(()=>{var y;(y=d)==null||y.observe(e)})),n()}),u&&!l&&d.observe(u),d.observe(e));let v,g=l?Pr(t):null;l&&w();function w(){const S=Pr(t);g&&!ew(g,S)&&n(),g=S,v=requestAnimationFrame(w)}return n(),()=>{var S;c.forEach(m=>{r&&m.removeEventListener("scroll",n),s&&m.removeEventListener("resize",n)}),p==null||p(),(S=d)==null||S.disconnect(),d=null,l&&cancelAnimationFrame(v)}}const b1=BE,x1=WE,k1=KE,C1=GE,E1=zE,Am=$E,_1=HE,A1=(t,e,n)=>{const i=new Map,r={platform:y1,...n},s={...r.platform,_c:i};return ME(t,e,{...r,platform:s})};var T1=typeof document<"u",R1=function(){},xl=T1?b.useLayoutEffect:R1;function Xl(t,e){if(t===e)return!0;if(typeof t!=typeof e)return!1;if(typeof t=="function"&&t.toString()===e.toString())return!0;let n,i,r;if(t&&e&&typeof t=="object"){if(Array.isArray(t)){if(n=t.length,n!==e.length)return!1;for(i=n;i--!==0;)if(!Xl(t[i],e[i]))return!1;return!0}if(r=Object.keys(t),n=r.length,n!==Object.keys(e).length)return!1;for(i=n;i--!==0;)if(!{}.hasOwnProperty.call(e,r[i]))return!1;for(i=n;i--!==0;){const s=r[i];if(!(s==="_owner"&&t.$$typeof)&&!Xl(t[s],e[s]))return!1}return!0}return t!==t&&e!==e}function tw(t){return typeof window>"u"?1:(t.ownerDocument.defaultView||window).devicePixelRatio||1}function Tm(t,e){const n=tw(t);return Math.round(e*n)/n}function _c(t){const e=b.useRef(t);return xl(()=>{e.current=t}),e}function P1(t){t===void 0&&(t={});const{placement:e="bottom",strategy:n="absolute",middleware:i=[],platform:r,elements:{reference:s,floating:o}={},transform:a=!0,whileElementsMounted:l,open:u}=t,[c,p]=b.useState({x:0,y:0,strategy:n,placement:e,middlewareData:{},isPositioned:!1}),[h,d]=b.useState(i);Xl(h,i)||d(i);const[v,g]=b.useState(null),[w,S]=b.useState(null),m=b.useCallback(T=>{T!==E.current&&(E.current=T,g(T))},[]),y=b.useCallback(T=>{T!==_.current&&(_.current=T,S(T))},[]),x=s||v,C=o||w,E=b.useRef(null),_=b.useRef(null),A=b.useRef(c),I=l!=null,L=_c(l),F=_c(r),q=_c(u),X=b.useCallback(()=>{if(!E.current||!_.current)return;const T={placement:e,strategy:n,middleware:h};F.current&&(T.platform=F.current),A1(E.current,_.current,T).then(P=>{const D={...P,isPositioned:q.current!==!1};N.current&&!Xl(A.current,D)&&(A.current=D,Sa.flushSync(()=>{p(D)}))})},[h,e,n,F,q]);xl(()=>{u===!1&&A.current.isPositioned&&(A.current.isPositioned=!1,p(T=>({...T,isPositioned:!1})))},[u]);const N=b.useRef(!1);xl(()=>(N.current=!0,()=>{N.current=!1}),[]),xl(()=>{if(x&&(E.current=x),C&&(_.current=C),x&&C){if(L.current)return L.current(x,C,X);X()}},[x,C,X,L,I]);const oe=b.useMemo(()=>({reference:E,floating:_,setReference:m,setFloating:y}),[m,y]),Z=b.useMemo(()=>({reference:x,floating:C}),[x,C]),te=b.useMemo(()=>{const T={position:n,left:0,top:0};if(!Z.floating)return T;const P=Tm(Z.floating,c.x),D=Tm(Z.floating,c.y);return a?{...T,transform:"translate("+P+"px, "+D+"px)",...tw(Z.floating)>=1.5&&{willChange:"transform"}}:{position:n,left:P,top:D}},[n,a,Z.floating,c.x,c.y]);return b.useMemo(()=>({...c,update:X,refs:oe,elements:Z,floatingStyles:te}),[c,X,oe,Z,te])}const U1=t=>{function e(n){return{}.hasOwnProperty.call(n,"current")}return{name:"arrow",options:t,fn(n){const{element:i,padding:r}=typeof t=="function"?t(n):t;return i&&e(i)?i.current!=null?Am({element:i.current,padding:r}).fn(n):{}:i?Am({element:i,padding:r}).fn(n):{}}}},I1=(t,e)=>({...b1(t),options:[t,e]}),O1=(t,e)=>({...x1(t),options:[t,e]}),L1=(t,e)=>({..._1(t),options:[t,e]}),j1=(t,e)=>({...k1(t),options:[t,e]}),N1=(t,e)=>({...C1(t),options:[t,e]}),q1=(t,e)=>({...E1(t),options:[t,e]}),D1=(t,e)=>({...U1(t),options:[t,e]});var F1="Arrow",nw=b.forwardRef((t,e)=>{const{children:n,width:i=10,height:r=5,...s}=t;return f.jsx(_t.svg,{...s,ref:e,width:i,height:r,viewBox:"0 0 30 10",preserveAspectRatio:"none",children:t.asChild?n:f.jsx("polygon",{points:"0,0 30,0 15,10"})})});nw.displayName=F1;var M1=nw;function $1(t){const[e,n]=b.useState(void 0);return Bi(()=>{if(t){n({width:t.offsetWidth,height:t.offsetHeight});const i=new ResizeObserver(r=>{if(!Array.isArray(r)||!r.length)return;const s=r[0];let o,a;if("borderBoxSize"in s){const l=s.borderBoxSize,u=Array.isArray(l)?l[0]:l;o=u.inlineSize,a=u.blockSize}else o=t.offsetWidth,a=t.offsetHeight;n({width:o,height:a})});return i.observe(t,{box:"border-box"}),()=>i.unobserve(t)}else n(void 0)},[t]),e}var wh="Popper",[iw,rw]=_u(wh),[K1,sw]=iw(wh),ow=t=>{const{__scopePopper:e,children:n}=t,[i,r]=b.useState(null);return f.jsx(K1,{scope:e,anchor:i,onAnchorChange:r,children:n})};ow.displayName=wh;var aw="PopperAnchor",lw=b.forwardRef((t,e)=>{const{__scopePopper:n,virtualRef:i,...r}=t,s=sw(aw,n),o=b.useRef(null),a=bn(e,o);return b.useEffect(()=>{s.onAnchorChange((i==null?void 0:i.current)||o.current)}),i?null:f.jsx(_t.div,{...r,ref:a})});lw.displayName=aw;var bh="PopperContent",[z1,V1]=iw(bh),uw=b.forwardRef((t,e)=>{var ue,At,Jt,Xt,Zt,Mn;const{__scopePopper:n,side:i="bottom",sideOffset:r=0,align:s="center",alignOffset:o=0,arrowPadding:a=0,avoidCollisions:l=!0,collisionBoundary:u=[],collisionPadding:c=0,sticky:p="partial",hideWhenDetached:h=!1,updatePositionStrategy:d="optimized",onPlaced:v,...g}=t,w=sw(bh,n),[S,m]=b.useState(null),y=bn(e,st=>m(st)),[x,C]=b.useState(null),E=$1(x),_=(E==null?void 0:E.width)??0,A=(E==null?void 0:E.height)??0,I=i+(s!=="center"?"-"+s:""),L=typeof c=="number"?c:{top:0,right:0,bottom:0,left:0,...c},F=Array.isArray(u)?u:[u],q=F.length>0,X={padding:L,boundary:F.filter(W1),altBoundary:q},{refs:N,floatingStyles:oe,placement:Z,isPositioned:te,middlewareData:T}=P1({strategy:"fixed",placement:I,whileElementsMounted:(...st)=>w1(...st,{animationFrame:d==="always"}),elements:{reference:w.anchor},middleware:[I1({mainAxis:r+A,alignmentAxis:o}),l&&O1({mainAxis:!0,crossAxis:!1,limiter:p==="partial"?L1():void 0,...X}),l&&j1({...X}),N1({...X,apply:({elements:st,rects:$n,availableWidth:en,availableHeight:pi})=>{const{width:Zi,height:Mt}=$n.reference,tn=st.floating.style;tn.setProperty("--radix-popper-available-width",`${en}px`),tn.setProperty("--radix-popper-available-height",`${pi}px`),tn.setProperty("--radix-popper-anchor-width",`${Zi}px`),tn.setProperty("--radix-popper-anchor-height",`${Mt}px`)}}),x&&D1({element:x,padding:a}),H1({arrowWidth:_,arrowHeight:A}),h&&q1({strategy:"referenceHidden",...X})]}),[P,D]=pw(Z),$=Vi(v);Bi(()=>{te&&($==null||$())},[te,$]);const V=(ue=T.arrow)==null?void 0:ue.x,B=(At=T.arrow)==null?void 0:At.y,se=((Jt=T.arrow)==null?void 0:Jt.centerOffset)!==0,[ie,Pe]=b.useState();return Bi(()=>{S&&Pe(window.getComputedStyle(S).zIndex)},[S]),f.jsx("div",{ref:N.setFloating,"data-radix-popper-content-wrapper":"",style:{...oe,transform:te?oe.transform:"translate(0, -200%)",minWidth:"max-content",zIndex:ie,"--radix-popper-transform-origin":[(Xt=T.transformOrigin)==null?void 0:Xt.x,(Zt=T.transformOrigin)==null?void 0:Zt.y].join(" "),...((Mn=T.hide)==null?void 0:Mn.referenceHidden)&&{visibility:"hidden",pointerEvents:"none"}},dir:t.dir,children:f.jsx(z1,{scope:n,placedSide:P,onArrowChange:C,arrowX:V,arrowY:B,shouldHideArrow:se,children:f.jsx(_t.div,{"data-side":P,"data-align":D,...g,ref:y,style:{...g.style,animation:te?void 0:"none"}})})})});uw.displayName=bh;var cw="PopperArrow",B1={top:"bottom",right:"left",bottom:"top",left:"right"},dw=b.forwardRef(function(e,n){const{__scopePopper:i,...r}=e,s=V1(cw,i),o=B1[s.placedSide];return f.jsx("span",{ref:s.onArrowChange,style:{position:"absolute",left:s.arrowX,top:s.arrowY,[o]:0,transformOrigin:{top:"",right:"0 0",bottom:"center 0",left:"100% 0"}[s.placedSide],transform:{top:"translateY(100%)",right:"translateY(50%) rotate(90deg) translateX(-50%)",bottom:"rotate(180deg)",left:"translateY(50%) rotate(-90deg) translateX(50%)"}[s.placedSide],visibility:s.shouldHideArrow?"hidden":void 0},children:f.jsx(M1,{...r,ref:n,style:{...r.style,display:"block"}})})});dw.displayName=cw;function W1(t){return t!==null}var H1=t=>({name:"transformOrigin",options:t,fn(e){var w,S,m;const{placement:n,rects:i,middlewareData:r}=e,o=((w=r.arrow)==null?void 0:w.centerOffset)!==0,a=o?0:t.arrowWidth,l=o?0:t.arrowHeight,[u,c]=pw(n),p={start:"0%",center:"50%",end:"100%"}[c],h=(((S=r.arrow)==null?void 0:S.x)??0)+a/2,d=(((m=r.arrow)==null?void 0:m.y)??0)+l/2;let v="",g="";return u==="bottom"?(v=o?p:`${h}px`,g=`${-l}px`):u==="top"?(v=o?p:`${h}px`,g=`${i.floating.height+l}px`):u==="right"?(v=`${-l}px`,g=o?p:`${d}px`):u==="left"&&(v=`${i.floating.width+l}px`,g=o?p:`${d}px`),{data:{x:v,y:g}}}});function pw(t){const[e,n="center"]=t.split("-");return[e,n]}
vendor: 6,420 bytes, line 177
177var SO=ow,G1=lw,Q1=uw,Y1=dw,[Iu,wO]=_u("Tooltip",[rw]),xh=rw(),hw="TooltipProvider",J1=700,Rm="tooltip.open",[X1,fw]=Iu(hw),mw=t=>{const{__scopeTooltip:e,delayDuration:n=J1,skipDelayDuration:i=300,disableHoverableContent:r=!1,children:s}=t,o=b.useRef(!0),a=b.useRef(!1),l=b.useRef(0);return b.useEffect(()=>{const u=l.current;return()=>window.clearTimeout(u)},[]),f.jsx(X1,{scope:e,isOpenDelayedRef:o,delayDuration:n,onOpen:b.useCallback(()=>{window.clearTimeout(l.current),o.current=!1},[]),onClose:b.useCallback(()=>{window.clearTimeout(l.current),l.current=window.setTimeout(()=>o.current=!0,i)},[i]),isPointerInTransitRef:a,onPointerInTransitChange:b.useCallback(u=>{a.current=u},[]),disableHoverableContent:r,children:s})};mw.displayName=hw;var gw="Tooltip",[bO,Ou]=Iu(gw),zd="TooltipTrigger",Z1=b.forwardRef((t,e)=>{const{__scopeTooltip:n,...i}=t,r=Ou(zd,n),s=fw(zd,n),o=xh(n),a=b.useRef(null),l=bn(e,a,r.onTriggerChange),u=b.useRef(!1),c=b.useRef(!1),p=b.useCallback(()=>u.current=!1,[]);return b.useEffect(()=>()=>document.removeEventListener("pointerup",p),[p]),f.jsx(G1,{asChild:!0,...o,children:f.jsx(_t.button,{"aria-describedby":r.open?r.contentId:void 0,"data-state":r.stateAttribute,...i,ref:l,onPointerMove:$e(t.onPointerMove,h=>{h.pointerType!=="touch"&&!c.current&&!s.isPointerInTransitRef.current&&(r.onTriggerEnter(),c.current=!0)}),onPointerLeave:$e(t.onPointerLeave,()=>{r.onTriggerLeave(),c.current=!1}),onPointerDown:$e(t.onPointerDown,()=>{r.open&&r.onClose(),u.current=!0,document.addEventListener("pointerup",p,{once:!0})}),onFocus:$e(t.onFocus,()=>{u.current||r.onOpen()}),onBlur:$e(t.onBlur,r.onClose),onClick:$e(t.onClick,r.onClose)})})});Z1.displayName=zd;var e_="TooltipPortal",[xO,t_]=Iu(e_,{forceMount:void 0}),Is="TooltipContent",vw=b.forwardRef((t,e)=>{const n=t_(Is,t.__scopeTooltip),{forceMount:i=n.forceMount,side:r="top",...s}=t,o=Ou(Is,t.__scopeTooltip);return f.jsx(ah,{present:i||o.open,children:o.disableHoverableContent?f.jsx(yw,{side:r,...s,ref:e}):f.jsx(n_,{side:r,...s,ref:e})})}),n_=b.forwardRef((t,e)=>{const n=Ou(Is,t.__scopeTooltip),i=fw(Is,t.__scopeTooltip),r=b.useRef(null),s=bn(e,r),[o,a]=b.useState(null),{trigger:l,onClose:u}=n,c=r.current,{onPointerInTransitChange:p}=i,h=b.useCallback(()=>{a(null),p(!1)},[p]),d=b.useCallback((v,g)=>{const w=v.currentTarget,S={x:v.clientX,y:v.clientY},m=a_(S,w.getBoundingClientRect()),y=l_(S,m),x=u_(g.getBoundingClientRect()),C=d_([...y,...x]);a(C),p(!0)},[p]);return b.useEffect(()=>()=>h(),[h]),b.useEffect(()=>{if(l&&c){const v=w=>d(w,c),g=w=>d(w,l);return l.addEventListener("pointerleave",v),c.addEventListener("pointerleave",g),()=>{l.removeEventListener("pointerleave",v),c.removeEventListener("pointerleave",g)}}},[l,c,d,h]),b.useEffect(()=>{if(o){const v=g=>{const w=g.target,S={x:g.clientX,y:g.clientY},m=(l==null?void 0:l.contains(w))||(c==null?void 0:c.contains(w)),y=!c_(S,o);m?h():y&&(h(),u())};return document.addEventListener("pointermove",v),()=>document.removeEventListener("pointermove",v)}},[l,c,o,u,h]),f.jsx(yw,{...t,ref:s})}),[i_,r_]=Iu(gw,{isInside:!1}),s_=rk("TooltipContent"),yw=b.forwardRef((t,e)=>{const{__scopeTooltip:n,children:i,"aria-label":r,onEscapeKeyDown:s,onPointerDownOutside:o,...a}=t,l=Ou(Is,n),u=xh(n),{onClose:c}=l;return b.useEffect(()=>(document.addEventListener(Rm,c),()=>document.removeEventListener(Rm,c)),[c]),b.useEffect(()=>{if(l.trigger){const p=h=>{const d=h.target;d!=null&&d.contains(l.trigger)&&c()};return window.addEventListener("scroll",p,{capture:!0}),()=>window.removeEventListener("scroll",p,{capture:!0})}},[l.trigger,c]),f.jsx(oh,{asChild:!0,disableOutsidePointerEvents:!1,onEscapeKeyDown:s,onPointerDownOutside:o,onFocusOutside:p=>p.preventDefault(),onDismiss:c,children:f.jsxs(Q1,{"data-state":l.stateAttribute,...u,...a,ref:e,style:{...a.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:[f.jsx(s_,{children:i}),f.jsx(i_,{scope:n,isInside:!0,children:f.jsx(Rk,{id:l.contentId,role:"tooltip",children:r||i})})]})})});vw.displayName=Is;var Sw="TooltipArrow",o_=b.forwardRef((t,e)=>{const{__scopeTooltip:n,...i}=t,r=xh(n);return r_(Sw,n).isInside?null:f.jsx(Y1,{...r,...i,ref:e})});o_.displayName=Sw;function a_(t,e){const n=Math.abs(e.top-t.y),i=Math.abs(e.bottom-t.y),r=Math.abs(e.right-t.x),s=Math.abs(e.left-t.x);switch(Math.min(n,i,r,s)){case s:return"left";case r:return"right";case n:return"top";case i:return"bottom";default:throw new Error("unreachable")}}function l_(t,e,n=5){const i=[];switch(e){case"top":i.push({x:t.x-n,y:t.y+n},{x:t.x+n,y:t.y+n});break;case"bottom":i.push({x:t.x-n,y:t.y-n},{x:t.x+n,y:t.y-n});break;case"left":i.push({x:t.x+n,y:t.y-n},{x:t.x+n,y:t.y+n});break;case"right":i.push({x:t.x-n,y:t.y-n},{x:t.x-n,y:t.y+n});break}return i}function u_(t){const{top:e,right:n,bottom:i,left:r}=t;return[{x:r,y:e},{x:n,y:e},{x:n,y:i},{x:r,y:i}]}function c_(t,e){const{x:n,y:i}=t;let r=!1;for(let s=0,o=e.length-1;s<e.length;o=s++){const a=e[s],l=e[o],u=a.x,c=a.y,p=l.x,h=l.y;c>i!=h>i&&n<(p-u)*(i-c)/(h-c)+u&&(r=!r)}return r}function d_(t){const e=t.slice();return e.sort((n,i)=>n.x<i.x?-1:n.x>i.x?1:n.y<i.y?-1:n.y>i.y?1:0),p_(e)}function p_(t){if(t.length<=1)return t.slice();const e=[];for(let i=0;i<t.length;i++){const r=t[i];for(;e.length>=2;){const s=e[e.length-1],o=e[e.length-2];if((s.x-o.x)*(r.y-o.y)>=(s.y-o.y)*(r.x-o.x))e.pop();else break}e.push(r)}e.pop();const n=[];for(let i=t.length-1;i>=0;i--){const r=t[i];for(;n.length>=2;){const s=n[n.length-1],o=n[n.length-2];if((s.x-o.x)*(r.y-o.y)>=(s.y-o.y)*(r.x-o.x))n.pop();else break}n.push(r)}return n.pop(),e.length===1&&n.length===1&&e[0].x===n[0].x&&e[0].y===n[0].y?e:e.concat(n)}var h_=mw,ww=vw;const f_=h_,m_=b.forwardRef(({className:t,sideOffset:e=4,...n},i)=>f.jsx(ww,{ref:i,sideOffset:e,className:Ji("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-sm text-popover-foreground shadow-md 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]:sli
177de-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",t),...n}));m_.displayName=ww.displayName;var Lu=class{constructor(){this.listeners=new Set,this.subscribe=this.subscribe.bind(this)}subscribe(t){return this.listeners.add(t),this.onSubscribe(),()=>{this.listeners.delete(t),this.onUnsubscribe()}}hasListeners(){return this.listeners.size>0}onSubscribe(){}onUnsubscribe(){}},ju=typeof window>"u"||"Deno"in globalThis;function un(){}function g_(t,e){return typeof t=="function"?t(e):t}function v_(t){return typeof t=="number"&&t>=0&&t!==1/0}function y_(t,e){return Math.max(t+(e||0)-Date.now(),0)}function Vd(t,e){return typeof t=="function"?t(e):t}function S_(t,e){return typeof t=="function"?t(e):t}function Pm(t,e){const{type:n="all",exact:i,fetchStatus:r,predicate:s,queryKey:o,stale:a}=t;if(o){if(i){if(e.queryHash!==kh(o,e.options))return!1}else if(!na(e.queryKey,o))return!1}if(n!=="all"){const l=e.isActive();if(n==="active"&&!l||n==="inactive"&&l)return!1}return!(typeof a=="boolean"&&e.isStale()!==a||r&&r!==e.state.fetchStatus||s&&!s(e))}function Um(t,e){const{exact:n,status:i,predicate:r,mutationKey:s}=t;if(s){if(!e.options.mutationKey)return!1;if(n){if(ta(e.options.mutationKey)!==ta(s))return!1}else if(!na(e.options.mutationKey,s))return!1}return!(i&&e.state.status!==i||r&&!r(e))}function kh(t,e){return((e==null?void 0:e.queryKeyHashFn)||ta)(t)}function ta(t){return JSON.stringify(t,(e,n)=>Bd(n)?Object.keys(n).sort().reduce((i,r)=>(i[r]=n[r],i),{}):n)}function na(t,e){return t===e?!0:typeof t!=typeof e?!1:t&&e&&typeof t=="object"&&typeof e=="object"?Object.keys(e).every(n=>na(t[n],e[n])):!1}function bw(t,e){if(t===e)return t;const n=Im(t)&&Im(e);if(n||Bd(t)&&Bd(e)){const i=n?t:Object.keys(t),r=i.length,s=n?e:Object.keys(e),o=s.length,a=n?[]:{},l=new Set(i);let u=0;for(let c=0;c<o;c++){const p=n?c:s[c];(!n&&l.has(p)||n)&&t[p]===void 0&&e[p]===void 0?(a[p]=void 0,u++):(a[p]=bw(t[p],e[p]),a[p]===t[p]&&t[p]!==void 0&&u++)}return r===o&&u===r?t:a}return e}function kO(t,e){if(!e||Object.keys(t).length!==Object.keys(e).length)return!1;for(const n in t)if(t[n]!==e[n])return!1;return!0}function Im(t){return Array.isArray(t)&&t.length===Object.keys(t).length}function Bd(t){if(!Om(t))return!1;const e=t.constructor;if(e===void 0)return!0;const n=e.prototype;return!(!Om(n)||!n.hasOwnProperty("isPrototypeOf")||Object.getPrototypeOf(t)!==Object.prototype)}function Om(t){return Object.prototype.toString.call(t)==="[object Object]"}function w_(t){return new Promise(e=>{setTimeout(e,t)})}function b_(t,e,n){return typeof n.structuralSharing=="function"?n.structuralSharing(t,e):n.structuralSharing!==!1?bw(t,e):e}function x_(t,e,n=0){const i=[...t,e];return n&&i.length>n?i.slice(1):i}function k_(t,e,n=0){const i=[e,...t];return n&&i.length>n?i.slice(0,-1):i}var Ch=Symbol();function xw(t,e){return!t.queryFn&&(e!=null&&e.initialPromise)?()=>e.initialPromise:!t.queryFn||t.queryFn===Ch?()=>Promise.reject(new Error(`Missing queryFn: '${t.queryHash}'`)):t.queryFn}function CO(t,e){return typeof t=="function"?t(...e):!!t}var vr,Ei,gs,Og,C_=(Og=class extends Lu{constructor(){super();he(this,vr);he(this,Ei);he(this,gs);ne(this,gs,e=>{if(!ju&&window.addEventListener){const n=()=>e();return window.addEventListener("visibilitychange",n,!1),()=>{window.removeEventListener("visibilitychange",n)}}})}onSubscribe(){R(this,Ei)||this.setEventListener(R(this,gs))}onUnsubscribe(){var e;this.hasListeners()||((e=R(this,Ei))==null||e.call(this),ne(this,Ei,void 0))}setEventListener(e){var n;ne(this,gs,e),(n=R(this,Ei))==null||n.call(this),ne(this,Ei,e(i=>{typeof i=="boolean"?this.setFocused(i):this.onFocus()}))}setFocused(e){R(this,vr)!==e&&(ne(this,vr,e),this.onFocus())}onFocus(){const e=this.isFocused();this.listeners.forEach(n=>{n(e)})}isFocused(){var e;return typeof R(this,vr)=="boolean"?R(this,vr):((e=globalThis.document)==null?void 0:e.visibilityState)!=="hidden"}},vr=new WeakMap,Ei=new WeakMap,gs=new WeakMap,Og),kw=new C_,vs,_i,ys,Lg,E_=(Lg=class extends Lu{constructor(){super();he(this,vs,!0);he(this,_i);he(this,ys);ne(this,ys,e=>{if(!ju&&window.addEventListener){const n=()=>e(!0),i=()=>e(!1);return window.addEventListener("online",n,!1),window.addEventListener("offline",i,!1),()=>{window.removeEventListener("online",n),window.removeEventListener("offline",i)}}})}onSubscribe(){R(this,_i)||this.setEventListener(R(this,ys))}onUnsubscribe(){var e;
vendor: 4,265 bytes, line 177
177this.hasListeners()||((e=R(this,_i))==null||e.call(this),ne(this,_i,void 0))}setEventListener(e){var n;ne(this,ys,e),(n=R(this,_i))==null||n.call(this),ne(this,_i,e(this.setOnline.bind(this)))}setOnline(e){R(this,vs)!==e&&(ne(this,vs,e),this.listeners.forEach(i=>{i(e)}))}isOnline(){return R(this,vs)}},vs=new WeakMap,_i=new WeakMap,ys=new WeakMap,Lg),Zl=new E_;function __(){let t,e;const n=new Promise((r,s)=>{t=r,e=s});n.status="pending",n.catch(()=>{});function i(r){Object.assign(n,r),delete n.resolve,delete n.reject}return n.resolve=r=>{i({status:"fulfilled",value:r}),t(r)},n.reject=r=>{i({status:"rejected",reason:r}),e(r)},n}function A_(t){return Math.min(1e3*2**t,3e4)}function Cw(t){return(t??"online")==="online"?Zl.isOnline():!0}var Ew=class extends Error{constructor(t){super("CancelledError"),this.revert=t==null?void 0:t.revert,this.silent=t==null?void 0:t.silent}};function Ac(t){return t instanceof Ew}function _w(t){let e=!1,n=0,i=!1,r;const s=__(),o=g=>{var w;i||(h(new Ew(g)),(w=t.abort)==null||w.call(t))},a=()=>{e=!0},l=()=>{e=!1},u=()=>kw.isFocused()&&(t.networkMode==="always"||Zl.isOnline())&&t.canRun(),c=()=>Cw(t.networkMode)&&t.canRun(),p=g=>{var w;i||(i=!0,(w=t.onSuccess)==null||w.call(t,g),r==null||r(),s.resolve(g))},h=g=>{var w;i||(i=!0,(w=t.onError)==null||w.call(t,g),r==null||r(),s.reject(g))},d=()=>new Promise(g=>{var w;r=S=>{(i||u())&&g(S)},(w=t.onPause)==null||w.call(t)}).then(()=>{var g;r=void 0,i||(g=t.onContinue)==null||g.call(t)}),v=()=>{if(i)return;let g;const w=n===0?t.initialPromise:void 0;try{g=w??t.fn()}catch(S){g=Promise.reject(S)}Promise.resolve(g).then(p).catch(S=>{var E;if(i)return;const m=t.retry??(ju?0:3),y=t.retryDelay??A_,x=typeof y=="function"?y(n,S):y,C=m===!0||typeof m=="number"&&n<m||typeof m=="function"&&m(n,S);if(e||!C){h(S);return}n++,(E=t.onFail)==null||E.call(t,n,S),w_(x).then(()=>u()?void 0:d()).then(()=>{e?h(S):v()})})};return{promise:s,cancel:o,continue:()=>(r==null||r(),s),cancelRetry:a,continueRetry:l,canStart:c,start:()=>(c()?v():d().then(v),s)}}var T_=t=>setTimeout(t,0);function R_(){let t=[],e=0,n=a=>{a()},i=a=>{a()},r=T_;const s=a=>{e?t.push(a):r(()=>{n(a)})},o=()=>{const a=t;t=[],a.length&&r(()=>{i(()=>{a.forEach(l=>{n(l)})})})};return{batch:a=>{let l;e++;try{l=a()}finally{e--,e||o()}return l},batchCalls:a=>(...l)=>{s(()=>{a(...l)})},schedule:s,setNotifyFunction:a=>{n=a},setBatchNotifyFunction:a=>{i=a},setScheduler:a=>{r=a}}}var ut=R_(),yr,jg,Aw=(jg=class{constructor(){he(this,yr)}destroy(){this.clearGcTimeout()}scheduleGc(){this.clearGcTimeout(),v_(this.gcTime)&&ne(this,yr,setTimeout(()=>{this.optionalRemove()},this.gcTime))}updateGcTime(t){this.gcTime=Math.max(this.gcTime||0,t??(ju?1/0:5*60*1e3))}clearGcTimeout(){R(this,yr)&&(clearTimeout(R(this,yr)),ne(this,yr,void 0))}},yr=new WeakMap,jg),Ss,Sr,zt,wr,nt,pa,br,dn,Hn,Ng,P_=(Ng=class extends Aw{constructor(e){super();he(this,dn);he(this,Ss);he(this,Sr);he(this,zt);he(this,wr);he(this,nt);he(this,pa);he(this,br);ne(this,br,!1),ne(this,pa,e.defaultOptions),this.setOptions(e.options),this.observers=[],ne(this,wr,e.client),ne(this,zt,R(this,wr).getQueryCache()),this.queryKey=e.queryKey,this.queryHash=e.queryHash,ne(this,Ss,I_(this.options)),this.state=e.state??R(this,Ss),this.scheduleGc()}get meta(){return this.options.meta}get promise(){var e;return(e=R(this,nt))==null?void 0:e.promise}setOptions(e){this.options={...R(this,pa),...e},this.updateGcTime(this.options.gcTime)}optionalRemove(){!this.observers.length&&this.state.fetchStatus==="idle"&&R(this,zt).remove(this)}setData(e,n){const i=b_(this.state.data,e,this.options);return Ze(this,dn,Hn).call(this,{data:i,type:"success",dataUpdatedAt:n==null?void 0:n.updatedAt,manual:n==null?void 0:n.manual}),i}setState(e,n){Ze(this,dn,Hn).call(this,{type:"setState",state:e,setStateOptions:n})}cancel(e){var i,r;const n=(i=R(this,nt))==null?void 0:i.promise;return(r=R(this,nt))==null||r.cancel(e),n?n.then(un).catch(un):Promise.resolve()}destroy(){super.destroy(),this.cancel({silent:!0})}reset(){this.destroy(),this.setState(R(this,Ss))}isActive(){return this.observers.some(e=>S_(e.options.enabled,this)!==!1)}isDisabled(){return this.getObserversCount()>0?!this.isActive():this.options.queryFn===Ch||this.state.dataUpdateCount+this.state.errorUpdate
177Count===0}isStatic(){return this.getObserversCount()>0?this.observers.some(e=>Vd(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:!y_(this.state.dataUpdatedAt,e)}onFocus(){var n;const e=this.observers.find(i=>i.shouldFetchOnWindowFocus());e==null||e.refetch({cancelRefetch:!1}),(n=R(this,nt))==null||n.continue()}onOnline(){var n;const e=this.observers.find(i=>i.shouldFetchOnReconnect());e==null||e.refetch({cancelRefetch:!1}),(n=R(this,nt))==null||n.continue()}addObserver(e){this.observers.includes(e)||(this.observers.push(e),this.clearGcTimeout(),R(this,zt).notify({type:"observerAdded",query:this,observer:e}))}removeObserver(e){this.observers.includes(e)&&(this.observers=this.observers.filter(n=>n!==e),this.observers.length||(R(this,nt)&&(R(this,br)?R(this,nt).cancel({revert:!0}):R(this,nt).cancelRetry()),this.scheduleGc()),R(this,zt).notify({type:"observerRemoved",query:this,observer:e}))}getObserversCount(){return this.observers.length}invalidate(){this.state.isInvalidated||Ze(this,dn,Hn).call(this,{type:"invalidate"})}fetch(e,n){var u,c,p;if(this.state.fetchStatus!=="idle"){if(this.state.data!==void 0&&(n!=null&&n.cancelRefetch))this.cancel({silent:!0});else if(R(this,nt))return R(this,nt).continueRetry(),R(this,nt).promise}if(e&&this.setOptions(e),!this.options.queryFn){const h=this.observers.find(d=>d.options.queryFn);h&&this.setOptions(h.options)}const i=new AbortController,r=h=>{Object.defineProperty(h,"signal",{enumerable:!0,get:()=>(ne(this,br,!0),i.signal)})},s=()=>{const h=xw(this.options,n),v=(()=>{const g={client:R(this,wr),queryKey:this.queryKey,meta:this.meta};return r(g),g})();return ne(this,br,!1),this.options.persister?this.options.persister(h,v,this):h(v)},a=(()=>{const h={fetchOptions:n,options:this.options,queryKey:this.queryKey,client:R(this,wr),state:this.state,fetchFn:s};return r(h),h})();(u=this.options.behavior)==null||u.onFetch(a,this),ne(this,Sr,this.state),(this.state.fetchStatus==="idle"||this.state.fetchMeta!==((c=a.fetchOptions)==null?void 0:c.meta))&&Ze(this,dn,Hn).call(this,{type:"fetch",meta:(p=a.fetchOptions)==null?void 0:p.meta});const l=h=>{var d,v,g,w;Ac(h)&&h.silent||Ze(this,dn,Hn).call(this,{type:"error",error:h}),Ac(h)||((v=(d=R(this,zt).config).onError)==null||v.call(d,h,this),(w=(g=R(this,zt).config).onSettled)==null||w.call(g,this.state.data,h,this)),this.scheduleGc()};return ne(this,nt,_w({initialPromise:n==null?void 0:n.initialPromise,fn:a.fetchFn,abort:i.abort.bind(i),onSuccess:h=>{var d,v,g,w;if(h===void 0){l(new Error(`${this.queryHash} data is undefined`));return}try{this.setData(h)}catch(S){l(S);return}(v=(d=R(this,zt).config).onSuccess)==null||v.call(d,h,this),(w=(g=R(this,zt).config).onSettled)==null||w.call(g,h,this.state.error,this),this.scheduleGc()},onError:l,onFail:(h,d)=>{Ze(this,dn,Hn).call(this,{type:"failed",failureCount:h,error:d})},onPause:()=>{Ze(this,dn,Hn).call(this,{type:"pause"})},onContinue:()=>{Ze(this,dn,Hn).call(this,{type:"continue"})},retry:a.options.retry,retryDelay:a.options.retryDelay,networkMode:a.options.networkMode,canRun:()=>!0})),R(this,nt).start()}},Ss=new WeakMap,Sr=new WeakMap,zt=new WeakMap,wr=new WeakMap,nt=new WeakMap,pa=new WeakMap,br=new WeakMap,dn=new WeakSet,Hn=function(e){const n=i=>{switch(e.type){case"failed":return{...i,fetchFailureCount:e.failureCount,fetchFailureReason:e.error};case"pause":return{...i,fetchStatus:"paused"};case"continue":return{...i,fetchStatus:"fetching"};case"fetch":return{...i,...U_(i.data,this.options),fetchMeta:e.meta??null};case"success":return ne(this,Sr,void 0),{...i,data:e.data,dataUpdateCount:i.dataUpdateCount+1,dataUpdatedAt:e.dataUpdatedAt??Date.now(),error:null,isInvalidated:!1,status:"success",...!e.manual&&{fetchStatus:"idle",fetchFailureCount:0,fetchFailureReason:null}};case"error":const r=e.error;return Ac(r)&&r.revert&&R(this,Sr)?{...R(this,Sr),fetchStatus:"idle"}
vendor: 4,600 bytes, line 177
177:{...i,error:r,errorUpdateCount:i.errorUpdateCount+1,errorUpdatedAt:Date.now(),fetchFailureCount:i.fetchFailureCount+1,fetchFailureReason:r,fetchStatus:"idle",status:"error"};case"invalidate":return{...i,isInvalidated:!0};case"setState":return{...i,...e.state}}};this.state=n(this.state),ut.batch(()=>{this.observers.forEach(i=>{i.onQueryUpdate()}),R(this,zt).notify({query:this,type:"updated",action:e})})},Ng);function U_(t,e){return{fetchFailureCount:0,fetchFailureReason:null,fetchStatus:Cw(e.networkMode)?"fetching":"paused",...t===void 0&&{error:null,status:"pending"}}}function I_(t){const e=typeof t.initialData=="function"?t.initialData():t.initialData,n=e!==void 0,i=n?typeof t.initialDataUpdatedAt=="function"?t.initialDataUpdatedAt():t.initialDataUpdatedAt:0;return{data:e,dataUpdateCount:0,dataUpdatedAt:n?i??Date.now():0,error:null,errorUpdateCount:0,errorUpdatedAt:0,fetchFailureCount:0,fetchFailureReason:null,fetchMeta:null,isInvalidated:!1,status:n?"success":"pending",fetchStatus:"idle"}}var Pn,qg,O_=(qg=class extends Lu{constructor(e={}){super();he(this,Pn);this.config=e,ne(this,Pn,new Map)}build(e,n,i){const r=n.queryKey,s=n.queryHash??kh(r,n);let o=this.get(s);return o||(o=new P_({client:e,queryKey:r,queryHash:s,options:e.defaultQueryOptions(n),state:i,defaultOptions:e.getQueryDefaults(r)}),this.add(o)),o}add(e){R(this,Pn).has(e.queryHash)||(R(this,Pn).set(e.queryHash,e),this.notify({type:"added",query:e}))}remove(e){const n=R(this,Pn).get(e.queryHash);n&&(e.destroy(),n===e&&R(this,Pn).delete(e.queryHash),this.notify({type:"removed",query:e}))}clear(){ut.batch(()=>{this.getAll().forEach(e=>{this.remove(e)})})}get(e){return R(this,Pn).get(e)}getAll(){return[...R(this,Pn).values()]}find(e){const n={exact:!0,...e};return this.getAll().find(i=>Pm(n,i))}findAll(e={}){const n=this.getAll();return Object.keys(e).length>0?n.filter(i=>Pm(e,i)):n}notify(e){ut.batch(()=>{this.listeners.forEach(n=>{n(e)})})}onFocus(){ut.batch(()=>{this.getAll().forEach(e=>{e.onFocus()})})}onOnline(){ut.batch(()=>{this.getAll().forEach(e=>{e.onOnline()})})}},Pn=new WeakMap,qg),Un,at,xr,In,yi,Dg,L_=(Dg=class extends Aw{constructor(e){super();he(this,In);he(this,Un);he(this,at);he(this,xr);this.mutationId=e.mutationId,ne(this,at,e.mutationCache),ne(this,Un,[]),this.state=e.state||j_(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){R(this,Un).includes(e)||(R(this,Un).push(e),this.clearGcTimeout(),R(this,at).notify({type:"observerAdded",mutation:this,observer:e}))}removeObserver(e){ne(this,Un,R(this,Un).filter(n=>n!==e)),this.scheduleGc(),R(this,at).notify({type:"observerRemoved",mutation:this,observer:e})}optionalRemove(){R(this,Un).length||(this.state.status==="pending"?this.scheduleGc():R(this,at).remove(this))}continue(){var e;return((e=R(this,xr))==null?void 0:e.continue())??this.execute(this.state.variables)}async execute(e){var s,o,a,l,u,c,p,h,d,v,g,w,S,m,y,x,C,E,_,A;const n=()=>{Ze(this,In,yi).call(this,{type:"continue"})};ne(this,xr,_w({fn:()=>this.options.mutationFn?this.options.mutationFn(e):Promise.reject(new Error("No mutationFn found")),onFail:(I,L)=>{Ze(this,In,yi).call(this,{type:"failed",failureCount:I,error:L})},onPause:()=>{Ze(this,In,yi).call(this,{type:"pause"})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>R(this,at).canRun(this)}));const i=this.state.status==="pending",r=!R(this,xr).canStart();try{if(i)n();else{Ze(this,In,yi).call(this,{type:"pending",variables:e,isPaused:r}),await((o=(s=R(this,at).config).onMutate)==null?void 0:o.call(s,e,this));const L=await((l=(a=this.options).onMutate)==null?void 0:l.call(a,e));L!==this.state.context&&Ze(this,In,yi).call(this,{type:"pending",context:L,variables:e,isPaused:r})}const I=await R(this,xr).start();return await((c=(u=R(this,at).config).onSuccess)==null?void 0:c.call(u,I,e,this.state.context,this)),await((h=(p=this.options).onSuccess)==null?void 0:h.call(p,I,e,this.state.context)),await((v=(d=R(this,at).config).onSettled)==null?void 0:v.call(d,I,null,this.state.variables,this.state.context,this)),await((w=(g=this.options).onSettled)==null?void 0:w.call(g,I,null,e,this.state.context)),Ze(this,In,yi).call(this,{type:"success",data:I}),I}catch(I){try{throw await((m=(S=R(this,at).config).onError)==null?void 0:m.call(S,I,e,this.state.context,this)),await((x=(y=this.options).onError)==null?void 0:x.call(y,I,e,this.state.context)),await((E=(C=R(this,at).config).onSettled)==null?void 0:E.
177call(C,void 0,I,this.state.variables,this.state.context,this)),await((A=(_=this.options).onSettled)==null?void 0:A.call(_,void 0,I,e,this.state.context)),I}finally{Ze(this,In,yi).call(this,{type:"error",error:I})}}finally{R(this,at).runNext(this)}}},Un=new WeakMap,at=new WeakMap,xr=new WeakMap,In=new WeakSet,yi=function(e){const n=i=>{switch(e.type){case"failed":return{...i,failureCount:e.failureCount,failureReason:e.error};case"pause":return{...i,isPaused:!0};case"continue":return{...i,isPaused:!1};case"pending":return{...i,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{...i,data:e.data,failureCount:0,failureReason:null,error:null,status:"success",isPaused:!1};case"error":return{...i,data:void 0,error:e.error,failureCount:i.failureCount+1,failureReason:e.error,isPaused:!1,status:"error"}}};this.state=n(this.state),ut.batch(()=>{R(this,Un).forEach(i=>{i.onMutationUpdate(e)}),R(this,at).notify({mutation:this,type:"updated",action:e})})},Dg);function j_(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:"idle",variables:void 0,submittedAt:0}}var Xn,pn,ha,Fg,N_=(Fg=class extends Lu{constructor(e={}){super();he(this,Xn);he(this,pn);he(this,ha);this.config=e,ne(this,Xn,new Set),ne(this,pn,new Map),ne(this,ha,0)}build(e,n,i){const r=new L_({mutationCache:this,mutationId:++_a(this,ha)._,options:e.defaultMutationOptions(n),state:i});return this.add(r),r}add(e){R(this,Xn).add(e);const n=Qa(e);if(typeof n=="string"){const i=R(this,pn).get(n);i?i.push(e):R(this,pn).set(n,[e])}this.notify({type:"added",mutation:e})}remove(e){if(R(this,Xn).delete(e)){const n=Qa(e);if(typeof n=="string"){const i=R(this,pn).get(n);if(i)if(i.length>1){const r=i.indexOf(e);r!==-1&&i.splice(r,1)}else i[0]===e&&R(this,pn).delete(n)}}this.notify({type:"removed",mutation:e})}canRun(e){const n=Qa(e);if(typeof n=="string"){const i=R(this,pn).get(n),r=i==null?void 0:i.find(s=>s.state.status==="pending");return!r||r===e}else return!0}runNext(e){var i;const n=Qa(e);if(typeof n=="string"){const r=(i=R(this,pn).get(n))==null?void 0:i.find(s=>s!==e&&s.state.isPaused);return(r==null?void 0:r.continue())??Promise.resolve()}else return Promise.resolve()}clear(){ut.batch(()=>{R(this,Xn).forEach(e=>{this.notify({type:"removed",mutation:e})}),R(this,Xn).clear(),R(this,pn).clear()})}getAll(){return Array.from(R(this,Xn))}find(e){const n={exact:!0,...e};return this.getAll().find(i=>Um(n,i))}findAll(e={}){return this.getAll().filter(n=>Um(e,n))}notify(e){ut.batch(()=>{this.listeners.forEach(n=>{n(e)})})}resumePausedMutations(){const e=this.getAll().filter(n=>n.state.isPaused);return ut.batch(()=>Promise.all(e.map(n=>n.continue().catch(un))))}},Xn=new WeakMap,pn=new WeakMap,ha=new WeakMap,Fg);function Qa(t){var e;return(e=t.options.scope)==null?void 0:e.id}function Lm(t){return{onFetch:(e,n)=>{var c,p,h,d,v;const i=e.options,r=(h=(p=(c=e.fetchOptions)==null?void 0:c.meta)==null?void 0:p.fetchMore)==null?void 0:h.direction,s=((d=e.state.data)==null?void 0:d.pages)||[],o=((v=e.state.data)==null?void 0:v.pageParams)||[];let a={pages:[],pageParams:[]},l=0;const u=async()=>{let g=!1;const w=y=>{Object.defineProperty(y,"signal",{enumerable:!0,get:()=>(e.signal.aborted?g=!0:e.signal.addEventListener("abort",()=>{g=!0}),e.signal)})},S=xw(e.options,e.fetchOptions),m=async(y,x,C)=>{if(g)return Promise.reject();if(x==null&&y.pages.length)return Promise.resolve(y);const _=(()=>{const F={client:e.client,queryKey:e.queryKey,pageParam:x,direction:C?"backward":"forward",meta:e.options.meta};return w(F),F})(),A=await S(_),{maxPages:I}=e.options,L=C?k_:x_;return{pages:L(y.pages,A,I),pageParams:L(y.pageParams,x,I)}};if(r&&s.length){const y=r==="backward",x=y?q_:jm,C={pages:s,pageParams:o},E=x(i,C);a=await m(C,E,y)}else{const y=t??s.length;do{const x=l===0?o[0]??i.initialPageParam:jm(i,a);if(l>0&&x==null)break;a=await m(a,x),l++}while(l<y)}return a};e.options.persister?e.fetchFn=()=>{var g,w;return(w=(g=e.options).persister)==null?void 0:w.call(g,u,{client:e.client,queryKey:e.queryKey,meta:e.options.meta,signal:e.signal},n)}:e.fetchFn=u}}}function jm(t,{pages:e,pageParams:n}){const i=e.length-1;return e.length>0?t.getNextPageParam(e[i],e,n[i],n):void 0}function q_(t,{pages:e,pageParams:n}){var i;return e.length>0?(i=t.getPreviousPageParam)==null?void 0:i.call(t,e[0],e,n[0],n):void 0}var Ue,Ai,Ti,ws,bs,Ri,xs,ks,Mg,D_=(Mg=class{constructor(t={}){he(this,Ue);he(this,Ai);he(this,Ti);he(this,ws);he(this,bs);he(this,Ri);he(this,xs);he(this,ks);ne(this,Ue,t.queryCache||new O_),ne(this,Ai,t.mutationCache||new N_),ne(this,Ti,t.defaultOptions||{}),ne(this,ws,new Map),ne(this,bs,new Map),ne(this,Ri,0)}mount(){_a(this,Ri)._++,R(this,Ri)===1&&(ne(this,xs,kw.subscribe(async t=>{t&&(await this.resumePausedMutations(),R(this,Ue).onFocus())})),ne(this,ks,Zl.subscribe(async t=>{t&&(await this.resumePausedMutations(),R(this,Ue).onOnline())})))}unmount(){var t,e;_a(this,Ri)._--,R(this,Ri)===0&&((t=R(this,xs))==null||t.call(this),ne(this,xs,void 0),(e=R(this,ks))==null||e.call(this),ne(this,ks,void 0))}isFetching(t){return R(this,Ue).findAll({...t,fetchStatus:"fetching"}).length}isMutating(t){return R(this,Ai).findAll({...t,status:"pending"}).length}getQueryData(t){var n;const e=this.defaultQueryOptions({queryKey:t});return(n=R(this,Ue).get(e.queryHash))==null?void 0:n.state.data}ensureQueryData(t){const e=this.defaultQueryOptions(t),n=R(this,Ue).build(this,e),i=n.state.data;return i===void 0?this.fetchQuery(t):(t.revalidateIfStale&&n.isStaleByTime(Vd(e.staleTime,n))&&this.prefetchQuery(e),Promise.resolve(i))}getQueriesData(t){return R(this,Ue).findAll(t).map(({queryKey:e,state:n})=>{const i=n.data;return[e,i]})}setQueryData(t,e,n){const i=this.defaultQueryOptions({queryKey:t}),r=R(this,Ue).get(i.queryHash),s=r==null?void 0:r.state.data,o=g_(e,s);if(o!==void 0)return R(this,Ue).build(this,i).setData(o,{...n,manual:!0})}
177setQueriesData(t,e,n){return ut.batch(()=>R(this,Ue).findAll(t).map(({queryKey:i})=>[i,this.setQueryData(i,e,n)]))}getQueryState(t){var n;const e=this.defaultQueryOptions({queryKey:t});return(n=R(this,Ue).get(e.queryHash))==null?void 0:n.state}removeQueries(t){const e=R(this,Ue);ut.batch(()=>{e.findAll(t).forEach(n=>{e.remove(n)})})}resetQueries(t,e){const n=R(this,Ue);return ut.batch(()=>(n.findAll(t).forEach(i=>{i.reset()}),this.refetchQueries({type:"active",...t},e)))}cancelQueries(t,e={}){const n={revert:!0,...e},i=ut.batch(()=>R(this,Ue).findAll(t).map(r=>r.cancel(n)));return Promise.all(i).then(un).catch(un)}invalidateQueries(t,e={}){return ut.batch(()=>(R(this,Ue).findAll(t).forEach(n=>{n.invalidate()}),(t==null?void 0:t.refetchType)==="none"?Promise.resolve():this.refetchQueries({...t,type:(t==null?void 0:t.refetchType)??(t==null?void 0:t.type)??"active"},e)))}refetchQueries(t,e={}){const n={...e,cancelRefetch:e.cancelRefetch??!0},i=ut.batch(()=>R(this,Ue).findAll(t).filter(r=>!r.isDisabled()&&!r.isStatic()).map(r=>{let s=r.fetch(void 0,n);return n.throwOnError||(s=s.catch(un)),r.state.fetchStatus==="paused"?Promise.resolve():s}));return Promise.all(i).then(un)}fetchQuery(t){const e=this.defaultQueryOptions(t);e.retry===void 0&&(e.retry=!1);const n=R(this,Ue).build(this,e);return n.isStaleByTime(Vd(e.staleTime,n))?n.fetch(e):Promise.resolve(n.state.data)}prefetchQuery(t){return this.fetchQuery(t).then(un).catch(un)}fetchInfiniteQuery(t){return t.behavior=Lm(t.pages),this.fetchQuery(t)}prefetchInfiniteQuery(t){return this.fetchInfiniteQuery(t).then(un).catch(un)}ensureInfiniteQueryData(t){return t.behavior=Lm(t.pages),this.ensureQueryData(t)}resumePausedMutations(){return Zl.isOnline()?R(this,Ai).resumePausedMutations():Promise.resolve()}getQueryCache(){return R(this,Ue)}getMutationCache(){return R(this,Ai)}getDefaultOptions(){return R(this,Ti)}setDefaultOptions(t){ne(this,Ti,t)}setQueryDefaults(t,e){R(this,ws).set(ta(t),{queryKey:t,defaultOptions:e})}getQueryDefaults(t){const e=[...R(this,ws).values()],n={};return e.forEach(i=>{na(t,i.queryKey)&&Object.assign(n,i.defaultOptions)}),n}setMutationDefaults(t,e){R(this,bs).set(ta(t),{mutationKey:t,defaultOptions:e})}getMutationDefaults(t){const e=[...R(this,bs).values()],n={};return e.forEach(i=>{na(t,i.mutationKey)&&Object.assign(n,i.defaultOptions)}),n}defaultQueryOptions(t){if(t._defaulted)return t;const e={...R(this,Ti).queries,...this.getQueryDefaults(t.queryKey),...t,_defaulted:!0};return e.queryHash||(e.queryHash=kh(e.queryKey,e)),e.refetchOnReconnect===void 0&&(e.refetchOnReconnect=e.networkMode!=="always"),e.throwOnError===void 0&&(e.throwOnError=!!e.suspense),!e.networkMode&&e.persister&&(e.networkMode="offlineFirst"),e.queryFn===Ch&&(e.enabled=!1),e}defaultMutationOptions(t){return t!=null&&t._defaulted?t:{...R(this,Ti).mutations,...(t==null?void 0:t.mutationKey)&&this.getMutationDefaults(t.mutationKey),...t,_defaulted:!0}}clear(){R(this,Ue).clear(),R(this,Ai).clear()}},Ue=new WeakMap,Ai=new WeakMap,Ti=new WeakMap,ws=new WeakMap,bs=new WeakMap,Ri=new WeakMap,xs=new WeakMap,ks=new WeakMap,Mg),Tw=b.createContext(void 0),EO=t=>{const e=b.useContext(Tw);if(!e)throw new Error("No QueryClient set, use QueryClientProvider to set one");return e},F_=({client:t,children:e})=>(b.useEffect(()=>(t.mount(),()=>{t.unmount()}),[t]),f.jsx(Tw.Provider,{value:t,children:e}));/**
178 * @remix-run/router v1.23.0
179 *
180 * Copyright (c) Remix Software Inc.
181 *
182 * This source code is licensed under the MIT license found in the
183 * LICENSE.md file in the root directory of this source tree.
184 *
185 * @license MIT
186 */function ia(){return ia=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},ia.apply(this,arguments)}var Ii;(function(t){t.Pop="POP",t.Push="PUSH",t.Replace="REPLACE"})(Ii||(Ii={}));const Nm="popstate";function M_(t){t===void 0&&(t={});function e(i,r){let{pathname:s,search:o,hash:a}=i.location;return Wd("",{pathname:s,search:o,hash:a},r.state&&r.state.usr||null,r.state&&r.state.key||"default")}function n(i,r){return typeof r=="string"?r:eu(r)}return K_(e,n,null,t)}function Ae(t,e){if(t===!1||t===null||typeof t>"u")throw new Error(e)}function Rw(t,e){if(!t){typeof console<"u"&&console.warn(e);try{throw new Error(e)}catch{}}}function $_(){return Math.random().toString(36).substr(2,8)}function qm(t,e){return{usr:t.state,key:t.key,idx:e}}function Wd(t,e,n,i){return n===void 0&&(n=null),ia({pathname:typeof t=="string"?t:t.pathname,search:"",hash:""},typeof e=="string"?Ms(e):e,{state:n,key:e&&e.key||i||$_()})}function eu(t){let{pathname:e="/",search:n="",hash:i=""}=t;return n&&n!=="?"&&(e+=n.charAt(0)==="?"?n:"?"+n),i&&i!=="#"&&(e+=i.charAt(0)==="#"?i:"#"+i),e}function Ms(t){let e={};if(t){let n=t.indexOf("#");n>=0&&(e.hash=t.substr(n),t=t.substr(0,n));let i=t.indexOf("?");i>=0&&(e.search=t.substr(i),t=t.substr(0,i)),t&&(e.pathname=t)}return e}function K_(t,e,n,i){i===void 0&&(i={});let{window:r=document.defaultView,v5Compat:s=!1}=i,o=r.history,a=Ii.Pop,l=null,u=c();u==null&&(u=0,o.replaceState(ia({},o.state,{idx:u}),""));function c(){return(o.state||{idx:null}).idx}function p(){a=Ii.Pop;let w=c(),S=w==null?null:w-u;u=w,l&&l({action:a,location:g.location,delta:S})}function h(w,S){a=Ii.Push;let m=Wd(g.location,w,S);u=c()+1;let y=qm(m,u),x=g.createHref(m);try{o.pushState(y,"",x)}catch(C){if(C instanceof DOMException&&C.name==="DataCloneError")throw C;r.location.assign(x)}s&&l&&l({action:a,location:g.location,delta:1})}function d(w,S){a=Ii.Replace;let m=Wd(g.location,w,S);u=c();let y=qm(m,u),x=g.createHref(m);o.replaceState(y,"",x),s&&l&&l({action:a,location:g.location,delta:0})}function v(w){let S=r.location.origin!=="null"?r.location.origin:r.location.href,m=typeof w=="string"?w:eu(w);return m=m.replace(/ $/,"%20"),Ae(S,"No window.location.(origin|href) available to create URL for href: "+m),new URL(m,S)}let g={get action(){return a},get location(){return t(r,o)},listen(w){if(l)throw new Error("A history only accepts one active listener");return r.addEventListener(Nm,p),l=w,()=>{r.removeEventListener(Nm,p),l=null}},createHref(w){return e(r,w)},createURL:v,encodeLocation(w){let S=v(w);return{pathname:S.pathname,search:S.search,hash:S.hash}},push:h,replace:d,go(w){return o.go(w)}};return g}var Dm;(function(t){t.data="data",t.deferred="deferred",t.redirect="redirect",t.error="error"})(Dm||(Dm={}));function z_(t,e,n){return n===void 0&&(n="/"),V_(t,e,n,!1)}function V_(t,e,n,i){let r=typeof e=="string"?Ms(e):e,s=Os(r.pathname||"/",n);if(s==null)return null;let o=Pw(t);B_(o);let a=null;for(let l=0;a==null&&l<o.length;++l){let u=nA(s);a=eA(o[l],u,i)}return a}function Pw(t,e,n,i){e===void 0&&(e=[]),n===void 0&&(n=[]),i===void 0&&(i="");let r=(s,o,a)=>{let l={relativePath:a===void 0?s.path||"":a,caseSensitive:s.caseSensitive===!0,childrenIndex:o,route:s};l.relativePath.startsWith("/")&&(Ae(l.relativePath.startsWith(i),'Absolute route path "'+l.relativePath+'" nested under path '+('"'+i+'" is not val
186id. An absolute child route path ')+"must start with the combined path of all its parent routes."),l.relativePath=l.relativePath.slice(i.length));let u=$i([i,l.relativePath]),c=n.concat(l);s.children&&s.children.length>0&&(Ae(s.index!==!0,"Index routes must not have child routes. Please remove "+('all child routes from route path "'+u+'".')),Pw(s.children,e,c,u)),!(s.path==null&&!s.index)&&e.push({path:u,score:X_(u,s.index),routesMeta:c})};return t.forEach((s,o)=>{var a;if(s.path===""||!((a=s.path)!=null&&a.includes("?")))r(s,o);else for(let l of Uw(s.path))r(s,o,l)}),e}function Uw(t){let e=t.split("/");if(e.length===0)return[];let[n,...i]=e,r=n.endsWith("?"),s=n.replace(/\?$/,"");if(i.length===0)return r?[s,""]:[s];let o=Uw(i.join("/")),a=[];return a.push(...o.map(l=>l===""?s:[s,l].join("/"))),r&&a.push(...o),a.map(l=>t.startsWith("/")&&l===""?"/":l)}function B_(t){t.sort((e,n)=>e.score!==n.score?n.score-e.score:Z_(e.routesMeta.map(i=>i.childrenIndex),n.routesMeta.map(i=>i.childrenIndex)))}const W_=/^:[\w-]+$/,H_=3,G_=2,Q_=1,Y_=10,J_=-2,Fm=t=>t==="*";function X_(t,e){let n=t.split("/"),i=n.length;return n.some(Fm)&&(i+=J_),e&&(i+=G_),n.filter(r=>!Fm(r)).reduce((r,s)=>r+(W_.test(s)?H_:s===""?Q_:Y_),i)}function Z_(t,e){return t.length===e.length&&t.slice(0,-1).every((i,r)=>i===e[r])?t[t.length-1]-e[e.length-1]:0}function eA(t,e,n){let{routesMeta:i}=t,r={},s="/",o=[];for(let a=0;a<i.length;++a){let l=i[a],u=a===i.length-1,c=s==="/"?e:e.slice(s.length)||"/",p=tu({path:l.relativePath,caseSensitive:l.caseSensitive,end:u},c),h=l.route;if(!p&&u&&n&&!i[i.length-1].route.index&&(p=tu({path:l.relativePath,caseSensitive:l.caseSensitive,end:!1},c)),!p)return null;
vendor: 9,263 bytes, lines 186-195
186Object.assign(r,p.params),o.push({params:r,pathname:$i([s,p.pathname]),pathnameBase:oA($i([s,p.pathnameBase])),route:h}),p.pathnameBase!=="/"&&(s=$i([s,p.pathnameBase]))}return o}function tu(t,e){typeof t=="string"&&(t={path:t,caseSensitive:!1,end:!0});let[n,i]=tA(t.path,t.caseSensitive,t.end),r=e.match(n);if(!r)return null;let s=r[0],o=s.replace(/(.)\/+$/,"$1"),a=r.slice(1);return{params:i.reduce((u,c,p)=>{let{paramName:h,isOptional:d}=c;if(h==="*"){let g=a[p]||"";o=s.slice(0,s.length-g.length).replace(/(.)\/+$/,"$1")}const v=a[p];return d&&!v?u[h]=void 0:u[h]=(v||"").replace(/%2F/g,"/"),u},{}),pathname:s,pathnameBase:o,pattern:t}}function tA(t,e,n){e===void 0&&(e=!1),n===void 0&&(n=!0),Rw(t==="*"||!t.endsWith("*")||t.endsWith("/*"),'Route path "'+t+'" will be treated as if it were '+('"'+t.replace(/\*$/,"/*")+'" because the `*` character must ')+"always follow a `/` in the pattern. To get rid of this warning, "+('please change the route path to "'+t.replace(/\*$/,"/*")+'".'));let i=[],r="^"+t.replace(/\/*\*?$/,"").replace(/^\/*/,"/").replace(/[\\.*+^${}|()[\]]/g,"\\$&").replace(/\/:([\w-]+)(\?)?/g,(o,a,l)=>(i.push({paramName:a,isOptional:l!=null}),l?"/?([^\\/]+)?":"/([^\\/]+)"));return t.endsWith("*")?(i.push({paramName:"*"}),r+=t==="*"||t==="/*"?"(.*)$":"(?:\\/(.+)|\\/*)$"):n?r+="\\/*$":t!==""&&t!=="/"&&(r+="(?:(?=\\/|$))"),[new RegExp(r,e?void 0:"i"),i]}function nA(t){try{return t.split("/").map(e=>decodeURIComponent(e).replace(/\//g,"%2F")).join("/")}catch(e){return Rw(!1,'The URL path "'+t+'" could not be decoded because it is is a malformed URL segment. This is probably due to a bad percent '+("encoding ("+e+").")),t}}function Os(t,e){if(e==="/")return t;if(!t.toLowerCase().startsWith(e.toLowerCase()))return null;let n=e.endsWith("/")?e.length-1:e.length,i=t.charAt(n);return i&&i!=="/"?null:t.slice(n)||"/"}function iA(t,e){e===void 0&&(e="/");let{pathname:n,search:i="",hash:r=""}=typeof t=="string"?Ms(t):t;return{pathname:n?n.startsWith("/")?n:rA(n,e):e,search:aA(i),hash:lA(r)}}function rA(t,e){let n=e.replace(/\/+$/,"").split("/");return t.split("/").forEach(r=>{r===".."?n.length>1&&n.pop():r!=="."&&n.push(r)}),n.length>1?n.join("/"):"/"}function Tc(t,e,n,i){return"Cannot include a '"+t+"' character in a manually specified "+("`to."+e+"` field ["+JSON.stringify(i)+"].  Please separate it out to the ")+("`to."+n+"` field. Alternatively you may provide the full path as ")+'a string in <Link to="..."> and the router will parse it for you.'}function sA(t){return t.filter((e,n)=>n===0||e.route.path&&e.route.path.length>0)}function Eh(t,e){let n=sA(t);return e?n.map((i,r)=>r===n.length-1?i.pathname:i.pathnameBase):n.map(i=>i.pathnameBase)}function _h(t,e,n,i){i===void 0&&(i=!1);let r;typeof t=="string"?r=Ms(t):(r=ia({},t),Ae(!r.pathname||!r.pathname.includes("?"),Tc("?","pathname","search",r)),Ae(!r.pathname||!r.pathname.includes("#"),Tc("#","pathname","hash",r)),Ae(!r.search||!r.search.includes("#"),Tc("#","search","hash",r)));let s=t===""||r.pathname==="",o=s?"/":r.pathname,a;if(o==null)a=n;else{let p=e.length-1;if(!i&&o.startsWith("..")){let h=o.split("/");for(;h[0]==="..";)h.shift(),p-=1;r.pathname=h.join("/")}a=p>=0?e[p]:"/"}let l=iA(r,a),u=o&&o!=="/"&&o.endsWith("/"),c=(s||o===".")&&n.endsWith("/");return!l.pathname.endsWith("/")&&(u||c)&&(l.pathname+="/"),l}const $i=t=>t.join("/").replace(/\/\/+/g,"/"),oA=t=>t.replace(/\/+$/,"").replace(/^\/*/,"/"),aA=t=>!t||t==="?"?"":t.startsWith("?")?t:"?"+t,lA=t=>!t||t==="#"?"":t.startsWith("#")?t:"#"+t;function uA(t){return t!=null&&typeof t.status=="number"&&typeof t.statusText=="string"&&typeof t.internal=="boolean"&&"data"in t}const Iw=["post","put","patch","delete"];new Set(Iw);const cA=["get",...Iw];new Set(cA);/**
187 * React Router v6.30.1
188 *
189 * Copyright (c) Remix Software Inc.
190 *
191 * This source code is licensed under the MIT license found in the
192 * LICENSE.md file in the root directory of this source tree.
193 *
194 * @license MIT
195 */function ra(){return ra=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},ra.apply(this,arguments)}const Nu=b.createContext(null),Ow=b.createContext(null),ui=b.createContext(null),qu=b.createContext(null),ci=b.createContext({outlet:null,matches:[],isDataRoute:!1}),Lw=b.createContext(null);function dA(t,e){let{relative:n}=e===void 0?{}:e;$s()||Ae(!1);let{basename:i,navigator:r}=b.useContext(ui),{hash:s,pathname:o,search:a}=Du(t,{relative:n}),l=o;return i!=="/"&&(l=o==="/"?i:$i([i,o])),r.createHref({pathname:l,search:a,hash:s})}function $s(){return b.useContext(qu)!=null}function Xi(){return $s()||Ae(!1),b.useContext(qu).location}function jw(t){b.useContext(ui).static||b.useLayoutEffect(t)}function Ah(){let{isDataRoute:t}=b.useContext(ci);return t?CA():pA()}function pA(){$s()||Ae(!1);let t=b.useContext(Nu),{basename:e,future:n,navigator:i}=b.useContext(ui),{matches:r}=b.useContext(ci),{pathname:s}=Xi(),o=JSON.stringify(Eh(r,n.v7_relativeSplatPath)),a=b.useRef(!1);return jw(()=>{a.current=!0}),b.useCallback(function(u,c){if(c===void 0&&(c={}),!a.current)return;if(typeof u=="number"){i.go(u);return}let p=_h(u,JSON.parse(o),s,c.relative==="path");t==null&&e!=="/"&&(p.pathname=p.pathname==="/"?e:$i([e,p.pathname])),(c.replace?i.replace:i.push)(p,c.state,c)},[e,i,o,s,t])}function _O(){let{matches:t}=b.useContext(ci),e=t[t.length-1];return e?e.params:{}}function Du(t,e){let{relative:n}=e===void 0?{}:e,{future:i}=b.useContext(ui),{matches:r}=b.useContext(ci),{pathname:s}=Xi(),o=JSON.stringify(Eh(r,i.v7_relativeSplatPath));return b.useMemo(()=>_h(t,JSON.parse(o),s,n==="path"),[t,o,s,n])}function hA(t,e){return fA(t,e)}function fA(t,e,n,i){$s()||Ae(!1);let{navigator:r}=b.useContext(ui),{matches:s}=b.useContext(ci),o=s[s.length-1],a=o?o.params:{};o&&o.pathname;let l=o?o.pathnameBase:"/";o&&o.route;let u=Xi(),c;if(e){var p;let w=typeof e=="string"?Ms(e):e;l==="/"||(p=w.pathname)!=null&&p.startsWith(l)||Ae(!1),c=w}else c=u;let h=c.pathname||"/",d=h;if(l!=="/"){let w=l.replace(/^\//,"").split("/");d="/"+h.replace(/^\//,"").split("/").slice(w.length).join("/")}let v=z_(t,{pathname:d}),g=SA(v&&v.map(w=>Object.assign({},w,{params:Object.assign({},a,w.params),pathname:$i([l,r.encodeLocation?r.encodeLocation(w.pathname).pathname:w.pathname]),pathnameBase:w.pathnameBase==="/"?l:$i([l,r.encodeLocation?r.encodeLocation(w.pathnameBase).pathname:w.pathnameBase])})),s,n,i);return e&&g?b.createElement(qu.Provider,{value:{location:ra({pathname:"/",search:"",hash:"",state:null,key:"default"},c),navigationType:Ii.Pop}},g):g}function mA(){let t=kA(),e=uA(t)?t.status+" "+t.statusText:t instanceof Error?t.message:JSON.stringify(t),n=t instanceof Error?t.stack:null,r={padding:"0.5rem",backgroundColor:"rgba(200,200,200, 0.5)"};return b.createElement(b.Fragment,null,b.createElement("h2",null,"Unexpected Application Error!"),b.createElement("h3",{style:{fontStyle:"italic"}},e),n?b.createElement("pre",{style:r},n):null,null)}const gA=b.createElement(mA,null);class vA extends b.Component{constructor(e){super(e),this.state={location:e.location,revalidation:e.revalidation,error:e.error}}static getDerivedStateFromError(e){return{error:e}}static getDerivedStateFromProps(e,n){return n.location!==e.location||n.revalidation!=="idle"&&e.revalidation==="idle"?{error:e.error,location:e.location,revalidation:e.revalidation}:{error:e.error!==void 0?e.error:n.error,location:n.location,revalidation:e.revalidation||n.revalidation}}componentDidCatch(e,n){console.error("React Router caught the following error during render",e,n)}render(){return this.state.error!==void 0?b.createElement(ci.Provider,{value:this.props.routeContext},b.createElement(Lw.Provider,{value:this.state.error,children:this.props.component})):this.props.children}}function yA(t){let{routeContext:e,match:n,children:i}=t,r=b.useContext(Nu);return r&&r.static&&r.staticContext&&(n.route.errorElement||n.route.ErrorBoundary)&&(r.staticContext._deepestRenderedBoundaryId=n.route.id),b.createElement(ci.Provider,{value:e},i)}function SA(t,e,n,i){var r;if(e===void 0&&(e=[]),n===void 0&&(n=null),i===void 0&&(i=null),t==null){var s;if(!n)return null;if(n.errors)t=n.matches;else if((s=i)!=null&&s.v7_partialHydration&&e.length===0&&!n.initialized&&n.matches.length>0)t=n.matches;else return null}let o=t,a=(r=n)==null?void 0:r.errors;if(a!=null){let c=o.findIndex(p=>p.route.id&&(a==null?void 0:a[p.route.id])!==void 0);c>=0||Ae(!1),o=o.slice(0,Math.min(o.length,c+1))}let l=!1,u=-1;if(n&&i&&i.v7_partialHydration)for(let c=0;c<o.length;c++){let p=o[c];if((p.route.HydrateFallback||p.route.hydrateFallbackElement)&&(u=c),p.route.id){let{loaderData:h,errors:d}=n,v=p.route.loader&&h[p.route.id]===void 0&&(!d||d[p.route.id]===void 0);if(p.route.lazy||v){l=!0,u>=0?o=o.slice(0,u+1):o=[o[0]];break}}}return o.reduceRight((c,p,h)=>{let d,v=!1,g=null,w=null;n&&(d=a&&p.route.id?a[p.route.id]:void 0,g=p.route.errorElement||gA,l&&(u<0&&h===0?(v=!0,w=null):u===h&&(v=!0,w=p.route.hydrateFallbackElement||null)));let S=e.concat(o.slice(0,h+1)),m=()=>{let y;return d?y=g:v?y=w:p.route.Component?y=b.createElement(p.route.Component,null):p.route.element?y=p.route.element:y=c,b.createElement(yA,{match:p,routeC
195ontext:{outlet:c,matches:S,isDataRoute:n!=null},children:y})};return n&&(p.route.ErrorBoundary||p.route.errorElement||h===0)?b.createElement(vA,{location:n.location,revalidation:n.revalidation,component:g,error:d,children:m(),routeContext:{outlet:null,matches:S,isDataRoute:!0}}):m()},null)}var Nw=function(t){return t.UseBlocker="useBlocker",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t}(Nw||{}),nu=function(t){return t.UseBlocker="useBlocker",t.UseLoaderData="useLoaderData",t.UseActionData="useActionData",t.UseRouteError="useRouteError",t.UseNavigation="useNavigation",t.UseRouteLoaderData="useRouteLoaderData",t.UseMatches="useMatches",t.UseRevalidator="useRevalidator",t.UseNavigateStable="useNavigate",t.UseRouteId="useRouteId",t}(nu||{});function wA(t){let e=b.useContext(Nu);return e||Ae(!1),e}function bA(t){let e=b.useContext(Ow);return e||Ae(!1),e}function xA(t){let e=b.useContext(ci);return e||Ae(!1),e}function qw(t){let e=xA(),n=e.matches[e.matches.length-1];return n.route.id||Ae(!1),n.route.id}function kA(){var t;let e=b.useContext(Lw),n=bA(nu.UseRouteError),i=qw(nu.UseRouteError);return e!==void 0?e:(t=n.errors)==null?void 0:t[i]}function CA(){let{router:t}=wA(Nw.UseNavigateStable),e=qw(nu.UseNavigateStable),n=b.useRef(!1);return jw(()=>{n.current=!0}),b.useCallback(function(r,s){s===void 0&&(s={}),n.current&&(typeof r=="number"?t.navigate(r):t.navigate(r,ra({fromRouteId:e},s)))},[t,e])}function EA(t,e){t==null||t.v7_startTransition,t==null||t.v7_relativeSplatPath}function Mm(t){let{to:e,replace:n,state:i,relative:r}=t;$s()||Ae(!1);let{future:s,static:o}=b.useContext(ui),{matches:a}=b.useContext(ci),{pathname:l}=Xi(),u=Ah(),c=_h(e,Eh(a,s.v7_relativeSplatPath),l,r==="path"),p=JSON.stringify(c);return b.useEffect(()=>u(JSON.parse(p),{replace:n,state:i,relative:r}),[u,p,r,n,i]),null}function H(t){Ae(!1)}function _A(t){let{basename:e="/",children:n=null,location:i,navigationType:r=Ii.Pop,navigator:s,static:o=!1,future:a}=t;$s()&&Ae(!1);let l=e.replace(/^\/*/,"/"),u=b.useMemo(()=>({basename:l,navigator:s,static:o,future:ra({v7_relativeSplatPath:!1},a)}),[l,a,s,o]);typeof i=="string"&&(i=Ms(i));let{pathname:c="/",search:p="",hash:h="",state:d=null,key:v="default"}=i,g=b.useMemo(()=>{let w=Os(c,l);return w==null?null:{location:{pathname:w,search:p,hash:h,state:d,key:v},navigationType:r}},[l,c,p,h,d,v,r]);return g==null?null:b.createElement(ui.Provider,{value:u},b.createElement(qu.Provider,{children:n,value:g}))}function AA(t){let{children:e,location:n}=t;return hA(Hd(e),n)}new Promise(()=>{});function Hd(t,e){e===void 0&&(e=[]);let n=[];return b.Children.forEach(t,(i,r)=>{if(!b.isValidElement(i))return;let s=[...e,r];if(i.type===b.Fragment){n.push.apply(n,Hd(i.props.children,s));return}i.type!==H&&Ae(!1),!i.props.index||!i.props.children||Ae(!1);let o={id:i.props.id||s.join("-"),caseSensitive:i.props.caseSensitive,element:i.props.element,Component:i.props.Component,index:i.props.index,path:i.props.path,loader:i.props.loader,action:i.props.action,errorElement:i.props.errorElement,ErrorBoundary:i.props.ErrorBoundary,hasErrorBoundary:i.props.ErrorBoundary!=null||i.props.errorElement!=null,shouldRevalidate:i.props.shouldRevalidate,handle:i.props.handle,lazy:i.props.lazy};i.props.children&&(o.children=Hd(i.props.children,s)),n.push(o)}),n}/**
196 * React Router DOM v6.30.1
197 *
198 * Copyright (c) Remix Software Inc.
199 *
200 * This source code is licensed under the MIT license found in the
201 * LICENSE.md file in the root directory of this source tree.
202 *
203 * @license MIT
204 */function iu(){return iu=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var i in n)Object.prototype.hasOwnProperty.call(n,i)&&(t[i]=n[i])}return t},iu.apply(this,arguments)}function Dw(t,e){if(t==null)return{};var n={},i=Object.keys(t),r,s;for(s=0;s<i.length;s++)r=i[s],!(e.indexOf(r)>=0)&&(n[r]=t[r]);return n}function TA(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}function RA(t,e){return t.button===0&&(!e||e==="_self")&&!TA(t)}function Gd(t){return t===void 0&&(t=""),new URLSearchParams(typeof t=="string"||Array.isArray(t)||t instanceof URLSearchParams?t:Object.keys(t).reduce((e,n)=>{let i=t[n];return e.concat(Array.isArray(i)?i.map(r=>[n,r]):[[n,i]])},[]))}function PA(t,e){let n=Gd(t);return e&&e.forEach((i,r)=>{n.has(r)||e.getAll(r).forEach(s=>
204{n.append(r,s)})}),n}const UA=["onClick","relative","reloadDocument","replace","state","target","to","preventScrollReset","viewTransition"],IA=["aria-current","caseSensitive","className","end","style","to","viewTransition","children"],OA="6";try{window.__reactRouterVersion=OA}catch{}const LA=b.createContext({isTransitioning:!1}),jA="startTransition",$m=Xg[jA];function NA(t){let{basename:e,children:n,future:i,window:r}=t,s=b.useRef();s.current==null&&(s.current=M_({window:r,v5Compat:!0}));let o=s.current,[a,l]=b.useState({action:o.action,location:o.location}),{v7_startTransition:u}=i||{},c=b.useCallback(p=>{u&&$m?$m(()=>l(p)):l(p)},[l,u]);return b.useLayoutEffect(()=>o.listen(c),[o,c]),b.useEffect(()=>EA(i),[i]),b.createElement(_A,{basename:e,children:n,location:a.location,navigationType:a.action,navigator:o,future:i})}const qA=typeof window<"u"&&typeof window.document<"u"&&typeof window.document.createElement<"u",DA=/^(?:[a-z][a-z0-9+.-]*:|\/\/)/i,ce=b.forwardRef(function(e,n){let{onClick:i,relative:r,reloadDocument:s,replace:o,state:a,target:l,to:u,preventScrollReset:c,viewTransition:p}=e,h=Dw(e,UA),{basename:d}=b.useContext(ui),v,g=!1;if(typeof u=="string"&&DA.test(u)&&(v=u,qA))try{let y=new URL(window.location.href),x=u.startsWith("//")?new URL(y.protocol+u):new URL(u),C=Os(x.pathname,d);x.origin===y.origin&&C!=null?u=C+x.search+x.hash:g=!0}catch{}let w=dA(u,{relative:r}),S=MA(u,{replace:o,state:a,target:l,preventScrollReset:c,relative:r,viewTransition:p});function m(y){i&&i(y),y.defaultPrevented||S(y)}return b.createElement("a",iu({},h,{href:v||w,onClick:g||s?i:m,ref:n,target:l}))}),AO=b.forwardRef(function(e,n){let{"aria-current":i="page",caseSensitive:r=!1,className:s="",end:o=!1,style:a,to:l,viewTransition:u,children:c}=e,p=Dw(e,IA),h=Du(l,{relative:p.relative}),d=Xi(),v=b.useContext(Ow),{navigator:g,basename:w}=b.useContext(ui),S=v!=null&&$A(h)&&u===!0,m=g.encodeLocation?g.encodeLocation(h).pathname:h.pathname,y=d.pathname,x=v&&v.navigation&&v.navigation.location?v.navigation.location.pathname:null;r||(y=y.toLowerCase(),x=x?x.toLowerCase():null,m=m.toLowerCase()),x&&w&&(x=Os(x,w)||x);const C=m!=="/"&&m.endsWith("/")?m.length-1:m.length;let E=y===m||!o&&y.startsWith(m)&&y.charAt(C)==="/",_=x!=null&&(x===m||!o&&x.startsWith(m)&&x.charAt(m.length)==="/"),A={isActive:E,isPending:_,isTransitioning:S},I=E?i:void 0,L;typeof s=="function"?L=s(A):L=[s,E?"active":null,_?"pending":null,S?"transitioning":null].filter(Boolean).join(" ");let F=typeof a=="function"?a(A):a;return b.createElement(ce,iu({},p,{"aria-current":I,className:L,ref:n,style:F,to:l,viewTransition:u}),typeof c=="function"?c(A):c)});var Qd;(function(t){t.UseScrollRestoration="useScrollRestoration",t.UseSubmit="useSubmit",t.UseSubmitFetcher="useSubmitFetcher",t.UseFetcher="useFetcher",t.useViewTransitionState="useViewTransitionState"})(Qd||(Qd={}));var Km;(function(t){t.UseFetcher="useFetcher",t.UseFetchers="useFetchers",t.UseScrollRestoration="useScrollRestoration"})(Km||(Km={}));function FA(t){let e=b.useContext(Nu);return e||Ae(!1),e}function MA(t,e){let{target:n,replace:i,state:r,preventScrollReset:s,relative:o,viewTransition:a}=e===void 0?{}:e,l=Ah(),u=Xi(),c=Du(t,{relative:o});return b.useCallback(p=>{if(RA(p,n)){p.preventDefault();let h=i!==void 0?i:eu(u)===eu(c);l(t,{replace:h,state:r,preventScrollReset:s,relative:o,viewTransition:a})}},[u,l,c,i,r,n,t,s,o,a])}function TO(t){let e=b.useRef(Gd(t)),n=b.useRef(!1),i=Xi(),r=b.useMemo(()=>PA(i.search,n.current?null:e.current),[i.search]),s=Ah(),o=b.useCallback((a,l)=>{const u=Gd(typeof a=="function"?a(r):a);n.current=!0,s("?"+u,l)},[s,r]);return[r,o]}function $A(t,e){e===void 0&&(e={});let n=b.useContext(LA);n==null&&Ae(!1);let{basename:i}=FA(Qd.useViewTransitionState),r=Du(t,{relative:e.relative});if(!n.isTransitioning)return!1;let s=Os(n.currentLocation.pathname,i)||n.currentLocation.pathname,o=Os(n.nextLocation.pathname,i)||n.nextLocation.pathname;return tu(r.pathname,o)!=null||tu(r.pathname,s)!=null}const Fw=b.createContext(void 0),Ks=()=>{const t=b.useContext(Fw);if(!t)throw new Error("useLanguage must be used within LanguageProvider");return t},KA={en:{"nav.home":"Home","nav.ukStudents":"UK Students","nav.internationalStudents":"International Students","nav.aboutUs":"About Us","nav.resources":"Resources","nav.contactUs":"Contact Us","nav.blog":"Blog","nav.faqs":"FAQs","nav.ukStudentServices":"UK Student Services","nav.studentFinance":"Student Finance","nav.ucasSupport":"UCAS Support","nav.studyInUK":"Study in the UK","nav.visaGuidance":"Visa Guid
204ance","nav.accommodation":"Accommodation","nav.ourCourses":"Our Courses","nav.ukCourses":"Courses","nav.admissionEligibility":"Admission Eligibility","nav.checkEligibility":"Request a study assessment","nav.ukFaqs":"FAQs","nav.intlFaqs":"FAQs","nav.studyConnectUK":"Study Connect UK","nav.studyConnectUKUkStudents":"UK Students","nav.studyConnectUKIntlStudents":"International Students","nav.immigrationServices":"Immigration Services","nav.immigrationVisaApplication":"Visa Application","nav.immigrationFamilyVisa":"Family Visa","nav.immigrationAsylumRefugee":"Asylum and Refugee","nav.immigrationNationalityCitizenship":"Nationality and Citizenship","nav.immigrationVisaExtension":"Visa Extension","nav.immigrationAppealReview":"Appeal & Review","nav.immigrationOverstayers":"Overstayers","nav.immigrationEnquiry":"Request Consultation","nav.ukStudents.findACourse":"Courses","nav.ukStudents.studentFinanceFunding":"Student Finance & Funding","nav.ukStudents.flexibleStudyOptions":"Flexible Study Options","nav.ukStudents.matureStudents":"Mature Students","nav.ukStudents.faqs":"FAQs","nav.ukStudents.checkEligibility":"Request a study assessment","nav.intlStudents.whyStudyUK":"Why Study in the UK?","nav.intlStudents.findACourse":"Find a Course","nav.intlStudents.entryRequirements":"Entry Requirements","nav.intlStudents.howToApply":"How to Apply","nav.intlStudents.englishLanguageRequirements":"English Language Requirements","nav.intlStudents.tuitionFeesScholarships":"Tuition Fees & Scholarships","nav.intlStudents.studentVisaInformation":"Student Visa Information","nav.intlStudents.accommodationInUK":"Accommodation in the UK","nav.intlStudents.preDepartureSupport":"Pre-Departure Support","nav.intlStudents.arrivalSettlingIn":"Arrival & Settling In","nav.intlStudents.coteDivoire":"Study in the UK from Côte d’Ivoire","nav.intlStudents.faqs":"International Student FAQs","nav.intlStudents.checkEligibility":"Request a study assessment","nav.intlStudents.packagesPrices":"Packages & Prices","ukStudents.findACourse.seoTitle":"Find a Course | UK Students | Legal Connect UK","ukStudents.findACourse.seoDescription":"Explore UK university and college courses with Legal Connect UK. Find the right undergraduate, postgraduate or professional programme for your goals.","ukStudents.findACourse.heroTitle":"Find a Course","ukStudents.findACourse.heroSubtitle":"UK Students","ukStudents.findACourse.heroDesc":"Discover UK courses that match your ambitions, from undergraduate degrees to professional qualifications.","ukStudents.findACourse.introTitle":"The Right Course for Your Future","ukStudents.findACourse.introDesc":"We help UK students explore and compare university and college programmes across the United Kingdom, so you can make an informed choice.","ukStudents.findACourse.pointsTitle":"How We Support Your Search","ukStudents.findACourse.point1":"Undergraduate course search","ukStudents.findACourse.point2":"Postgraduate and research options","ukStudents.findACourse.point3":"Professional and vocational pathways","ukStudents.findACourse.point4":"University comparison guidance","ukStudents.findACourse.point5":"Application timeline planning","ukStudents.studentFinanceFunding.seoTitle":"Student Finance & Funding | UK Students | Legal Connect UK","ukStudents.studentFinanceFunding.seoDescription":"Understand UK student finance, tuition fees, loans, grants and scholarships with clear guidance from Legal Connect UK.","ukStudents.studentFinanceFunding.heroTitle":"Student Finance & Funding","ukStudents.studentFinanceFunding.heroSubtitle":"UK Students","ukStudents.studentFinanceFunding.heroDesc":"Clear guidance on tuition fees, loans, grants and scholarships available to UK students.","ukStudents.studentFinanceFunding.introTitle":"Funding Your Studies","ukStudents.studentFinanceFunding.introDesc":"We explain the main student finance options in the UK, helping you understand eligibility, deadlines and how to apply.","ukStudents.studentFinanceFunding.pointsTitle":"Finance & Funding Support","ukStudents.studentFinanceFunding.point1":"Tuition fee loans","ukStudents.studentFinanceFunding.point2":"Maintenance and living cost support","ukStudents.studentFinanceFunding.point3":"Grants and bursaries","ukStudents.studentFinanceFunding.point4":"Scholarship searches","ukStudents.studentFinanceFunding.point5":"Ap
204plication deadline reminders","ukStudents.flexibleStudyOptions.seoTitle":"Flexible Study Options | UK Students | Legal Connect UK","ukStudents.flexibleStudyOptions.seoDescription":"Explore flexible study options including online, part-time, distance learning and blended courses for UK students.","ukStudents.flexibleStudyOptions.heroTitle":"Flexible Study Options","ukStudents.flexibleStudyOptions.heroSubtitle":"UK Students","ukStudents.flexibleStudyOptions.heroDesc":"Study in a way that fits around your work, family and lifestyle.","ukStudents.flexibleStudyOptions.contentTitle":"Flexible Learning","ukStudents.flexibleStudyOptions.contentPara1":"Study while continuing to work and manage your other commitments.","ukStudents.flexibleStudyOptions.contentPara2":"Most courses are designed with flexibility in mind and require attendance for only two days per week. Depending on the course and institution, evening, weekend, part-time and blended-learning options may also be available.","ukStudents.flexibleStudyOptions.contentPara3":"With Legal Connect UK, you can explore study options that fit around your work, family and lifestyle.","ukStudents.flexibleStudyOptions.disclaimer":"Timetables and study options vary by course and institution.","ukStudents.flexibleStudyOptions.ctaTitle":"Find a Flexible Course","ukStudents.flexibleStudyOptions.ctaDesc":"Speak to Legal Connect UK to explore flexible courses that fit your schedule and commitments.","ukStudents.flexibleStudyOptions.ctaButton":"Find a Flexible Course","ukStudents.matureStudents.seoTitle":"Mature Students | UK Students | Legal Connect UK","ukStudents.matureStudents.seoDescription":"Support for mature students returning to education in the UK, including flexible entry routes, funding and application guidance.","ukStudents.matureStudents.heroTitle":"Mature Students","ukStudents.matureStudents.heroSubtitle":"UK Students","ukStudents.matureStudents.heroDesc":"Dedicated guidance for adults returning to study, from entry routes to funding and balancing commitments.","ukStudents.matureStudents.introTitle":"Returning to Study","ukStudents.matureStudents.introDesc":"We provide practical advice for mature students, whether you are changing career, upskilling or pursuing a lifelong goal.","ukStudents.matureStudents.pointsTitle":"Support for Mature Students","ukStudents.matureStudents.point1":"Access and foundation courses","ukStudents.matureStudents.point2":"Recognition of prior learning","ukStudents.matureStudents.point3":"Flexible study arrangements","ukStudents.matureStudents.point4":"Funding and childcare advice","ukStudents.matureStudents.point5":"Personal statement guidance","ukStudents.faqs.seoTitle":"UK Students FAQs | Legal Connect UK","ukStudents.faqs.seoDescription":"Answers to common questions from UK students about courses, finance, applications and study options.","ukStudents.faqs.heroTitle":"UK Students FAQs","ukStudents.faqs.heroSubtitle":"UK Students","ukStudents.faqs.heroDesc":"Quick answers to the questions UK students ask most often about courses, finance and applications.","ukStudents.faqs.introTitle":"Common Questions","ukStudents.faqs.introDesc":"Find clear answers to the most frequently asked questions from UK students.","ukStudents.faqs.pointsTitle":"Popular Topics","ukStudents.faqs.point1":"Choosing the right course","ukStudents.faqs.point2":"Student finance basics","ukStudents.faqs.point3":"Application deadlines","ukStudents.faqs.point4":"Flexible study choices","ukStudents.faqs.point5":"Support for mature students","immigration.pageDisclaimer":"Legal Connect UK provides student advisory and support services only. We do not provide regulated legal or immigration advice. Where such advice is required, clients are referred to appropriately regulated professionals authorised to practise in the United Kingdom.","immigration.howWeHelp":"How We Can Help","immigration.visaApplication.seoTitle":"UK Visa Application Support | Legal Connect UK","immigration.visaApplication.seoDescription":"Expert guidance on UK visa applications, including eligibility checks, document preparation, and submission support for students, workers, and visitors.","immigration.visaApplication.heroTitle":"UK Visa Application Support","immigration.visaApplication.heroSubtitle":"Immigration Services","immigration.visaApplication.heroDesc":"Clear, structured guidance to help you prepare and submit your UK visa application with confidence.","immigration.visaApplication.introTitle":"Guidance Through Your Visa Application","immigration.visaApplication.introDesc":"We support applicants through the UK visa application process, helping you understand requirements, gather documents, and approach each stage with clarity.","immigration.visaApplication.point1":"Eligibility Assessment","immigration.visaApplication.point2":"Document Preparation","immigration.visaApplication.point3":"Application Review","immigration.visaApplication.point4":"Appointment Booking","immigration.visaApplication.point5":"Status Tracking","immigration.visaApplication.point6":"Refusal Support","immigration.familyVisa.seoTitle":"UK Family Visa Guid
204ance | Legal Connect UK","immigration.familyVisa.seoDescription":"Support for family visa applications including spouse, partner, parent, and child visas to join family members in the UK.","immigration.familyVisa.heroTitle":"UK Family Visa Guidance","immigration.familyVisa.heroSubtitle":"Immigration Services","immigration.familyVisa.heroDesc":"Helping families navigate the UK family visa process with clear advice and practical support.","immigration.familyVisa.introTitle":"Reuniting Families in the UK","immigration.familyVisa.introDesc":"We provide guidance on UK family visa routes, helping you understand eligibility, evidence requirements, and the steps to bring loved ones together.","immigration.familyVisa.point1":"Spouse & Partner Visas","immigration.familyVisa.point2":"Parent & Child Visas","immigration.familyVisa.point3":"Financial Requirement Guidance","immigration.familyVisa.point4":"Relationship Evidence","immigration.familyVisa.point5":"Application Support","immigration.familyVisa.point6":"Settlement Pathways","immigration.asylumRefugee.seoTitle":"Asylum & Refugee Support | Legal Connect UK","immigration.asylumRefugee.seoDescription":"Sensitive guidance for asylum seekers and refugees, including protection claims, humanitarian protection, and refugee family reunion.","immigration.asylumRefugee.heroTitle":"Asylum & Refugee Support","immigration.asylumRefugee.heroSubtitle":"Immigration Services","immigration.asylumRefugee.heroDesc":"Compassionate, confidential guidance for those seeking protection in the United Kingdom.","immigration.asylumRefugee.introTitle":"Protection & Support in the UK","immigration.asylumRefugee.introDesc":"We offer clear information and referral pathways for asylum claims, humanitarian protection, and refugee family reunion.","immigration.asylumRefugee.point1":"Asylum Claims","immigration.asylumRefugee.point2":"Humanitarian Protection","immigration.asylumRefugee.point3":"Refugee Family Reunion","immigration.asylumRefugee.point4":"Fresh Claims","immigration.asylumRefugee.point5":"Appeals Support","immigration.asylumRefugee.point6":"Safe Referrals","immigration.nationalityCitizenship.seoT
204itle":"British Nationality & Citizenship | Legal Connect UK","immigration.nationalityCitizenship.seoDescription":"Guidance on British citizenship, naturalisation, registration, and nationality law for eligible applicants.","immigration.nationalityCitizenship.heroTitle":"British Nationality & Citizenship","immigration.nationalityCitizenship.heroSubtitle":"Immigration Services","immigration.nationalityCitizenship.heroDesc":"Helping eligible individuals understand and apply for British citizenship and nationality.","immigration.nationalityCitizenship.introTitle":"Your Path to British Citizenship","immigration.nationalityCitizenship.introDesc":"We provide clear guidance on British citizenship routes, including naturalisation, registration, and complex nationality cases.","immigration.nationalityCitizenship.point1":"Naturalisation Applications","immigration.nationalityCitizenship.point2":"Registration for Children","immigration.nationalityCitizenship.point3":"British Citizenship by Descent","immigration.nationalityCitizenship.point4":"Good Character Guidance","immigration.nationalityCitizenship.point5":"Residence Requirements","immigration.nationalityCitizenship.point6":"Nationality Reviews","immigration.visaExtension.seoTitle":"UK Visa Extension Support | Legal Connect UK","immigration.visaExtension.seoDescription":"Support for extending your stay in the UK, including student visa extensions, work visa renewals, and FLR applications.","immigration.visaExtension.heroTitle":"UK Visa Extension Support","immigration.visaExtension.heroSubtitle":"Immigration Services","immigration.visaExtension.heroDesc":"Helping you extend your UK visa smoothly and on time.","immigration.visaExtension.introTitle":"Extend Your Stay in the UK","immigration.visaExtension.introDesc":"We guide applicants through visa extension and renewal processes, helping you meet deadlines and submit a complete application.","immigration.visaExtension.point1":"Student Visa Extensions","immigration.visaExtension.point2":"Work Visa Renewals","immigration.visaExtension.point3":"FLR Applications","immigration.visaExtension.point4":"Dependent Extensions","immigration.visaExtension.point5":"Switching Visa Categories","immigration.visaExtension.point6":"Priority Services","immigration.appealReview.seoTitle":"UK Immigration Appeals & Reviews | Legal Connect UK","immigration.appealReview.seoDescription":"Guidance on challenging visa refusals, immigration appeals, administrative reviews, and judicial reviews.","immigration.appealReview.heroTitle":"UK Immigration Appeals & Reviews","immigration.appealReview.heroSubtitle":"Immigration Services","immigration.appealReview.heroDesc":"Helping you understand your options after a visa refusal or immigration decision.","immigration.appealReview.introTitle":"Challenge Immigration Decisions","immigration.appealReview.introDesc":"We explain the appeals and review processes available after a refusal, connecting you with regulated professionals when legal representation is needed.","immigration.appealReview.point1":"Appeal Rights Assessment","immigration.appealReview.point2":"Administrative Reviews","immigration.appealReview.point3":"Judicial Reviews","immigration.appealReview.point4":"Tribunal Representation","immigration.appealReview.point5":"Reapplication Strategy","immigration.appealReview.point6":"Document Preparation","immigrationEnquiry.seoTitle":"Immigration Services Enquiry | Legal Connect UK","immigrationEnquiry.seoDescription":"Request an immigration consultation through Legal Connect UK. We will introduce you to an independent, regulated UK partner solicitor.","immigrationEnquiry.heroTitle":"Immigration Services Enquiry","immigrationEnquiry.heroSubtitle":"Immigration Services","immigrationEnquiry.subtitle":"Request an Immigration Consultation","immigrationEnquiry.requiredFields":"Fields marked with an asterisk (*) are required.","immigrationEnquiry.yourDetails":"Your Details","immigrationEnquiry.fullName":"Full name","immigrationEnquiry.email":"Email address","immigrationEnquiry.phone":"Telephone or WhatsApp number","immigrationEnquiry.phonePlaceholder":"+44 7123 456789","immigrationEnquiry.contactMethod":"Preferred contact method","immigrationEnquiry.preferredLanguage":"Preferred language","immigrationEnquiry.nationality":"Nationality","immigrationEnquiry.inUK":"Are you currently in the UK?","immigrationEnquiry.yes":"Yes","immigrationEnquiry.no":"No","immigrationEnquiry.yourMatter":"Your Immigration Matter","immigrationEnquiry.assistanceRequired":"What assistance do you require?","immigrationEnquiry.currentSituation":"What is your current situation?","immigrationEnquiry.importantDeadline":"Do you have an important deadline?","immigrationEnquiry.situationDescription":"Please briefly describe your situation","immigrationEnquiry.situationDescriptionHint":"Maximum 750 characters.","immigrationEnquiry.situationDescriptionWarning":"Please do not include passport numbers, bank details or confidential documents at this stage.","immigrationEnquiry.privacyAndConsent":"Privacy and Consent","immigrationEnquiry.privacyConsent":"I have read the Privacy Notice and agree that my information may be shared securely with an independent regulated partner solicitor so that they can respond to my enquiry.","immigrationEnquiry.legalDisclaimerConsent":"I understand that Legal Connect UK does not provide immigration or legal advice. Any advice or representation will be provided separately by an independent regulated partner solicitor under their own terms and fees.","immigrationEnquiry.marketingConsent":"I would like to receive immigration updates from Legal Connect UK by email or WhatsApp.","immigrationEnquiry.submit":"Request My Consultation","immigrationEnquiry.submitting":"Submitting...","immigrationEnquiry.success":"Thank You","immigrationEnquiry.successMessage":"Your enquiry has been submitted. A regulated partner solicitor will contact you shortly.","immigrationEnquiry.error":"Error","immigrationEnquiry.errorMessage":"Failed to submit your enquiry. Please try again.","immigrationEnquiry.rateLimit":"You have reached the submission limit for this email. Please try again tomorrow.","immigrationEnquiry.selectOption":"Select an option","immigrationEnquiry.importantNotice":"Submitting this form does not create a solicitor-client relationship or guarantee that your matter will be accepted.","immigrationEnquiry.contactMethod.whatsapp":"WhatsApp","immigrationEnquiry.contactMethod.telephone":"Telephone","immigrationEnquiry.contactMethod.email":"Email","immigrationEnquiry.contactMethod.video":"Video consultation","immigrationEnquiry.language.english":"English","immigrationEnquiry.language.french":"French","immigrationEnquiry.assistance.partnerFamilyVisa":"Partner or family visa","immigrationEnquiry.assistance.skilledWorker":"Skilled Worker or another work visa","immigrationEnquiry.assistance.studentGraduate":"Student or Graduate visa","immigrationEnquiry.assistance.visitor":"Visitor visa","immigrationEnquiry.assistance.settlement":"Settlement or Indefinite Leave to Remain","immigrationEnquiry.assistance.citizenship":"British citizenship","immigrationEnquiry.assistance.sponsor":"Sponsor licence or business immigration","immigrationEnquiry.assistance.extension":"Visa extension or change of route","immigrationEnquiry.assistance.refusal":"Visa refusal, appeal or administrative review","immigrationEnquiry.assistance.asylum":"Asylum or human-rights matter","immigrationEnquiry.assistance.overstaying":"Overstaying or no current immigration permission","immigrationEnquiry.assistance.other":"Other","immigrationEnquiry.assistance.unsure":"I am not sure","immigrationEnquiry.situation.exploring":"I am exploring my options","immigrationEnquiry.situation.preparing":"I am preparing an application","immigrationEnquiry.situation.submitted":"I have submitted an application","immigrationEnquiry.situation.waiting":"I am waiting for a decision","immigrationEnquiry.situation.refused":"My application has been refused","immigrationEnquiry.situation.expireSoon":"My visa will expire soon","immigrationEnquiry.situation.expired":"My visa has expired or I may have overstayed","immigrationEnquiry.situation.urgent":"I have an urgent Home Office or appeal deadline","immigrationEnquiry.situation.unsure":"I am not sure","immigrationEnquiry.deadline.yes":"Yes","immigrationEnquiry.deadline.no":"No","immigrationEnquiry.deadline.unsure":"I am not sure","immigration.overstayers.seoT
204itle":"Overstayer Support UK | Legal Connect UK","immigration.overstayers.seoDescription":"Guidance for individuals who have overstayed their UK visa, including regularisation options, voluntary departure, and referral to regulated immigration professionals.","immigration.overstayers.heroTitle":"Overstayer Support","immigration.overstayers.heroSubtitle":"Immigration Services","immigration.overstayers.heroDesc":"Clear, non-judgmental guidance for individuals who have overstayed their UK visa, helping you understand your options and next steps.","immigration.overstayers.introTitle":"Understanding Your Options After Overstaying","immigration.overstayers.introDesc":"If your UK visa has expired, it is important to act quickly and understand the options available. We provide general guidance, explain potential pathways, and refer you to regulated immigration professionals for legal advice.","immigration.overstayers.point1":"Status Assessment","immigration.overstayers.point2":"Regularisation Options","immigration.overstayers.point3":"Voluntary Departure Guidance","immigration.overstayers.point4":"Referral to Regulated Solicitors","immigration.overstayers.point5":"Document Preparation Support","immigration.overstayers.point6":"Next Steps Planning","hero.title1":"Your Trusted UK Pathway","hero.title2":"","hero.ukStudents":"UK Students","hero.internationalStudents":"International Students","home.eyebrow":"Legal Connect UK","home.intro":"Clear, professional support for studying in the UK and navigating immigration matters.","home.chooseRoute":"Choose your route","home.studentSupport":"Student support","home.immigrationSupport":"Immigration support","home.study.eyebrow":"Academic guidance","home.study.title":"Study Connect UK","home.study.desc":"University admissions, course selection, and student support for UK and international learners.","home.study.cta":"Explore Study Options","home.study.alt":"Students speaking with an education adviser","home.legal.eyebrow":"Regulated legal support","home.legal.title":"Immigration Services","home.legal.desc":"Independent legal advice from partner solicitors regulated by the Solicitors Regulation Authority.","home.legal.cta":"Speak to a Solicitor","home.legal.alt":"A solicitor consulting clients in a law office","home.trust1":"English & French Support","home.trust2":"UK-Wide Study Options","home.trust3":"Regulated Legal Partners","home.disclaimer":"Legal Connect UK is not a law firm. Immigration advice is provided independently by partner solicitors regulated by the Solicitors Regulation Authority.","quick.eyebrow":"How we can help","quick.title":"Find the right next step","quick.note":"Practical support, clearly organised.","quick.study.title":"Study in the UK","quick.study.desc":"Discover universities, courses and pathways that fit your goals.","quick.study.cta":"Find out more","quick.immigration.title":"Immigration Services","quick.immigration.desc":"Get expert legal advice from our regulated partner solicitors.","quick.immigration.cta":"Learn more","quick.about.title":"About Us","quick.about.desc":"Learn how we connect education opportunities with trusted support.","quick.about.cta":"About us","quick.contact.title":"Contact Us","quick.contact.desc":"Need help with studying in the UK or an immigration matter? Get in touch.","quick.contact.cta":"Contact us","welcome.title1":"Welcome to","welcome.title2":"Legal Connect UK","welcome.desc":"Welcome to Legal Connect! We specialise in supporting international students, making complex processes simple and easy to understand. Our goal is to help you navigate your new environment with confidence. With a strong commitment to excellence and integrity, we are your trusted partner for both personal and professional success. Let's embark on this journey together!","welcome.cta":"Explore Now","support.subtitle":"Supporting Your Journey to Studying in the UK","support.title":"UK & International Students Support","support.desc":"Legal Connect UK helps UK and international students turn their ambition to study in the UK into reality. We are a student-focused advisory and support platform providing clear, structured guidance across education pathways, student finance, visas, and settlement support.","support.whoTitle":"Who We Support","support.who1Label":"International students","supp
204ort.who1Desc":"planning to study in the UK and needing guidance on admissions, student visas, and settling in","support.who2Label":"UK students","support.who2Desc":"exploring higher education, flexible or alternative study routes, and student finance options","support.who3Label":"Students at any stage","support.who3Desc":"who want clear, reliable advice before making important decisions","support.missionTitle":"Our Mission","support.missionDesc":"To empower students with reliable guidance, trusted connections, and clear pathways to study, settle, and succeed in the UK.","services.admissions.title":"Admissions Support","services.admissions.desc":"From applications to enrolment, we provide structured guidance to help students prepare their applications and understand each stage of the admissions process.","services.visa.title":"Student Visa Guidance","services.visa.desc":"We support international students with clear guidance on the UK Student Visa process, including eligibility checks, document preparation, and next steps.","services.finance.title":"Student Finance Guidance (UK)","services.finance.desc":"We guide UK students through Student Finance options, eligibility, and funding pathways, helping them understand what support may be available.","services.accommodation.title":"Accommodation & Settlement Support","services.accommodation.desc":"We assist students with accommodation guidance and practical settlement support, helping them prepare for life and study in the UK.","services.course.title":"Course & University Guidance","services.course.desc":"We help UK and international students choose the right course and university, explore flexible study options, and access alternative pathways into higher education.","stats.successRate":"Success Rate","stats.studentsSupported":"Students Supported","stats.countries":"Countries","stats.desc":"Trusted by students from 50+ countries, Legal Connect UK has successfully supported 500+ students with a 98% success rate. Working alongside IAA-regulated partners, we deliver clear, reliable guidance you can trust.","studentServices.subtitle":"Student Support Services","studentServices.title":"Here to Help You Every Step of the Way","studentServices.ukTitle":"UK Student Services","studentServices.intlTitle":"International Student Services","studentServices.ukLink":"UK Student Services →","studentServices.intlLink":"International Student Services →","studentServices.uk1.title":"UK Students","studentServices.uk1.desc":"Supporting British students with university applications and funding","studentServices.uk2.title":"Student Finance Guidance","studentServices.uk2.desc":"Navigate tuition fee loans, maintenance loans, and grant applications with expert support.","studentServices.uk3.title":"University & Course Selection","studentServices.uk3.desc":"Find the perfect university and programme based on your grades, interests, and career goals.","studentServices.uk4.title":"UCAS Application Support","studentServices.uk4.desc":"Complete guidance through the UCAS process, personal statements, and interview preparation.","studentServices.intl1.title":"Study in UK Guidance","studentServices.intl1.desc":"Complete support from choosing universities to understanding UK academic requirements.","studentServices.intl2.title":"Application & Admissions","studentServices.intl2.desc":"Expert assistance with university applications, personal statements, and entry requirements.","studentServices.intl3.title":"Pre-Departure Support","studentServices.intl3.desc":"Guidance on accommodation, banking, healthcare registration, and settling in the UK.","studentServices.intl4.title":"Scholarships & Funding","studentServices.intl4.desc":"Discover scholarships, bursaries, and funding opportunities for international students.","immigration.title":"Immigration & Legal Support","immigration.subtitle":"Delivered in collaboration with regulated legal professionals","immigration.exploreVisa":"Explore Visa Services","immigration.disclaimer":"Important: Immigration advice is provided through our network of IAA-regulated advisers and qualified immigration solicitors.","immigration.partnerTitle":"Our Trusted Partner Network","immigration.partner
204Subtitle":"We collaborate with verified professionals and services to ensure reliable support","immigration.visa1.title":"UK Student Visa Guidance","immigration.visa1.desc":"Expert guidance on Tier 4/Student visa applications, documentation, and compliance requirements.","immigration.visa2.title":"Visitor & Short-Term Visa Support","immigration.visa2.desc":"Assistance with short-term study visas and visitor visas for prospective students.","immigration.visa3.title":"Immigration Case Assessment","immigration.visa3.desc":"Comprehensive review of your immigration situation with clear, actionable advice.","immigration.visa4.title":"Document Preparation & Compliance","immigration.visa4.desc":"Thorough document checks and preparation to ensure your application meets all requirements.","immigration.visa5.title":"Referral to Qualified Solicitors","immigration.visa5.desc":"Direct connection to regulated immigration solicitors for complex legal matters.","immigration.partner1.title":"Universities & Institutions","immigration.partner1.desc":"Accredited educational establishments across the UK","immigration.partner2.title":"Accommodations","immigration.partner2.desc":"Verified properties meeting quality standards","immigration.partner3.title":"Immigration Solicitors","immigration.partner3.desc":"Licensed professionals regulated by UK authorities","howItWorks.title":"How It Works","howItWorks.step1.title":"Share Your Needs","howItWorks.step1.desc":"Tell us about your visa requirements, accommodation preferences, and travel plans.","howItWorks.step2.title":"Get Matched","howItWorks.step2.desc":"We connect you with verified professionals and services tailored to your situation.","howItWorks.step3.title":"Start Your Journey","howItWorks.step3.desc":"Receive expert support throughout your process, from application to arrival and beyond.","howItWorks.cta":"Get Started Today","testimonials.title":"What Our Students Say","videoTestimonials.subtitle":"Hear From Our Students","videoTestimonials.title":"Hear From Our Students","visaSteps.subtitle":"How It Works","visaSteps.title":"International Students","visaSteps.step1.title":"Share Your Needs","visaSteps.step1.desc":"Tell us about your Visa requirements, accommodation preferences and travel plan.","visaSteps.step2.title":"Get Matched","visaSteps.step2.desc":"We connect you with verified professionals and services tailored to your situation.","visaSteps.step3.title":"Start Your Journey","visaSteps.step3.desc":"Receive expert support throughout your process, from application to arrival.","footer.contactUs":"Contact Us","footer.openingHours":"Opening Hours","footer.openingHoursValue":"Monday to Friday 9am - 5pm","footer.location":"Location","footer.ourServices":"Our Services","footer.intlStudentServices":"International Students Services","footer.ukStudentServices":"UK Students Services","footer.legalServices":"Legal Services","footer.quickLinks":"Quick Links","footer.home":"Home","footer.aboutUs":"About Us","footer.privacyPolicy":"Privacy Policy","footer.termsConditions":"Terms & Conditions","footer.subscribe":"Subscribe To Our Newsletter","footer.subscribeBtn":"Subscribe","footer.disclaimer":"Disclaimer:","footer.disclaimerText":"Legal Connect UK provides student advisory and support services only. We do not provide regulated legal or immigration advice. Where such advice is required, clients are referred to appropriately regulated professionals authorised to practise in the United Kingdom.","footer.copyright":"Copyright 2024 © All Rights Reserved Legal-Connect UK","contact.title":"Contact Us","contact.subtitle":"Have questions? We'd love to hear from you. Send us a message and we'll respond as soon as possible.","contact.getInTouch":"Get in Touch","contact.phone":"Phone","contact.email":"Email","contact.location":"Location","contact.openingHours":"Opening Hours","contact.sendMessage":"Send us a Message","contact.yourName":"Your Name","contact.yourEmail":"Your Email","contact.phoneNumber":"Phone Number","contact.subject":"Subject","contact.yourMessage":"Your Message","contact.send":"Send Message","contact.thankYou":"Thank y
204ou for your message! We'll get back to you soon.","contact.introText":"Need help with studying in the UK or an immigration matter? Complete the short form below, and our team will contact you.","about.title":"About Us","about.aboutTitle":"About Legal Connect UK","about.whatWeDo":"What We Do","about.whoWeSupport":"Who We Support","about.ourMission":"Our Mission","about.ourApproach":"Our Approach","about.whyChoose":"Why Choose Legal Connect UK","about.readyTitle":"Ready to Start Your UK Study Journey?","about.readyDesc":"Whether you are exploring your options or preparing to apply, our advisors are here to guide you.","about.contactAdvisors":"Contact Our Advisors","ukStudents.title":"UK Student Services","ukStudents.subtitle":"Supporting British students with university applications, student finance, and alternative study routes.","ukStudents.finance.title":"Student Finance Guidance","ukStudents.finance.desc":"Navigate tuition fee loans, maintenance loans, and grant applications with expert support.","ukStudents.course.title":"University & Course Selection","ukStudents.course.desc":"Find the perfect university and programme based on your grades, interests, and career goals.","ukStudents.ucas.title":"UCAS Application Support","ukStudents.ucas.desc":"Complete guidance through the UCAS process, personal statements, and interview preparation.","ukStudents.apprenticeship.title":"Apprenticeship & Alternative Routes","ukStudents.apprenticeship.desc":"Explore degree apprenticeships, foundation years, and vocational pathways.","ukStudents.cta":"Get Started","ukStudents.heroTitle":"Unlock Your Future And TRUE Career With a Degree Course","ukStudents.heroSubtitle":"Whether You Have No Qualifications or Work Experience","ukStudents.heroDesc":"Gateway to achieving your dreams through education. Take the first step towards a better future!","ukStudents.featuresTitle":"Fast-Track Your Future with Flexible Degrees Designed for You","ukStudents.featuresSubtitle1":"Looking to Start or Switch Your Career?","ukStudents.featuresSubtitle2":"Flexible university intakes in September, January, February, and May — so you can start when it works for you.","ukStudents.featuresDesc":"We make higher education simple, flexible, and accessible — no matter your background or where you're starting from.","ukStudents.feature1.emoji":"✅","ukStudents.feature1.title":"Get Enrolled with Confidence","ukStudents.feature1.subtitle":"Expert Admissions Advisors","ukStudents.feature1.desc":"Our specialist admissions team will help you choose the right course, guide you through the application process, and secure your place for the next available intake — whether that's September, January, February, or May.","ukStudents.feature2.emoji":"⏱","ukStudents.feature2.title":"Study Around Your Life","ukStudents.feature2.subtitle":"Flexible Course Schedules","ukStudents.feature2.desc":"Busy schedule? No problem. With just two days of classes per week, you can choose morning, evening, or weekend sessions — making it easy to balance study with work, family, and other commitments.","ukStudents.feature3.emoji":"🙌","ukStudents.feature3.title":"Personal Support from Day One","ukStudents.feature3.subtitle":"End-to-End Student Guidance","ukStudents.feature3.desc":"From your personal statement and interview preparation to student finance applications, we support you at every stage. You'll have clear guidance, real support, and one point of contact throughout your journey.","ukStudents.feature4.emoji":"🎓","ukStudents.feature4.title":"Courses That Match Your Career Goals","ukStudents.feature4.subtitle":"Career-Focused Degree Options","ukStudents.feature4.desc":"Whether you're planning a career in Health & Social Care, Accounting & Finance, Computing, or Project Management, we'll help you choose a course aligned with your goals — and get you enrolled in the right intake.","ukStudents.readyTitle":"🚀 Ready to Start Your Journey?","ukStudents.readyDesc":"Apply now and secure your place for September, January, February, or May.","ukStudents.startApplication":"Start Your Application Now","ukStudents.testimonialsTitle":"What others are saying?","intlStudents.title":"International Student Services","intlStudents.subtitle":"Guiding international students through UK education, visas, and settlement with clarity and confidence.","intlStudents.study.title":"Study in UK Guidance","intlStudents.study.desc":"Complete support from choosing universities to understanding UK academic requirements.","intlStudents.application.title":"Application & Admissions","intlStudents.application.desc":"Expert assistance with university applications, personal statements, and entry requirements.","intlStudents.preDeparture.title":"Pre-Departure Support","intlStudents.preDeparture.desc":"Guidance on accommodation, banking, healthcare registration, and settling in the UK.","intlStudents.scholarships.title":"Scholarships & Funding","intlStudents.scholarships.desc":"Discover scholarships, bursaries, and funding opportunities for international students.","intlStudents.visa.title":"Visa Guid
204ance","intlStudents.visa.desc":"Clear guidance on the UK Student Visa process, including eligibility checks and document preparation.","intlStudents.settlement.title":"Settlement Support","intlStudents.settlement.desc":"Post-arrival assistance to help you settle into life in the UK with confidence.","intlStudents.cta":"Get Started","intlStudents.services":"Services","intlStudents.heroTitle":"Your Trusted Pathway to Studying in the UK","intlStudents.heroDesc":"Legal Connect UK helps international students successfully study in the United Kingdom by providing clear, personalised support at every stage — from choosing the right course and securing university offers to understanding student visas, finding accommodation, and settling into life in the UK.","intlStudents.checkEligibility":"Request a study assessment now","intlStudents.section1.title":"University Admissions & Course Planning","intlStudents.section1.desc":"Choosing the right university and course is one of the most important decisions you will make. At Legal Connect UK, we guide international students through every stage of the admissions process.","intlStudents.section1.point1":"Identify courses that match your academic background and career goals","intlStudents.section1.point2":"Understand entry requirements and eligibility criteria","intlStudents.section1.point3":"Prepare strong applications and supporting documents","intlStudents.section1.point4":"Submit applications and track outcomes","intlStudents.section1.cta":"Find the Right Course for You","intlStudents.section2.title":"Student Visa Guidance & Support","intlStudents.section2.desc":"Most international students require a UK Student Visa before travelling. Legal Connect UK provides structured guidance to help you prepare correctly and avoid common mistakes.","intlStudents.section2.point1":"Understanding student visa eligibility","intlStudents.section2.point2":"Preparing required documents","intlStudents.section2.point3":"Guidance through the UK Student Visa process","intlStudents.section2.point4":"CAS letter explanation","intlStudents.section2.point5":"Immigration Health Surcharge guidance","intlStudents.section2.point6":"Application readiness checks","intlStudents.section2.cta":"Check Your Student Visa Eligibility","intlStudents.section3.title":"Accommodation Support & Booking Assistance","intlStudents.section3.desc":"Finding safe and affordable accommodation is a key part of preparing for your UK studies.","intlStudents.section3.point1":"Understanding different housing options (halls, private, shared flats, studios)","intlStudents.section3.point2":"Budget-friendly accommodation guidance","intlStudents.section3.point3":"Booking preparation support","intlStudents.section3.point4":"Safety tips and tenancy awareness","intlStudents.section3.point5":"What to expect before arrival","intlStudents.section3.cta":"Get Help Finding Accommodation","intlStudents.section4.title":"Arrival & Settlement Guidance","intlStudents.section4.desc":"Arriving in a new country can feel overwhelming — but you do not have to do it alone.","intlStudents.section4.point1":"Preparing for travel","intlStudents.section4.point2":"Airport arrival guidance","intlStudents.section4.point3":"Opening a bank account","intlStudents.section4.point4":"Registering with healthcare","intlStudents.section4.point5":"Mobile phone setup","intlStudents.section4.point6":"Settling into UK student life","intlStudents.section4.cta":"Prepare for Your Arrival","intlStudents.whyTitle":"Why Choose Legal Connect UK?","intlStudents.why1":"Student-focused guidance tailored to your goals","intlStudents.why2":"Clear step-by-step support from application to arrival","intlStudents.why3":"Assistance with admissions, visas, accommodation, and settlement","intlStudents.why4":"One dedicated advisor throughout your journey","intlStudents.why5":"Transparent and compliant support","intlStudents.pricing.eyebrow":"Student support packages","intlStudents.pricing.title":"Our Services & Prices","intlStudents.pricing.intro":"Choose the support that suits your needs. All packages are one-off payments, with the scope agreed before work begins.","intlStudents.pricing.exVat":"Fee excluding VAT","intlStudents.pricing.incVat":"Total including 20% VAT","intlStudents.pricing.incVatShort":"including VAT","intlStudents.pricing.free":"Free","intlStudents.pricing.enquire":"Enquire about this package","intlStudents.pricing.applicationReview.name":"Application Review","intlStudents.pricing.applicationReview.included":"Review of one university application, an academic-document checklist and one round of feedback before submission.","intlStudents.pricing.managedApplications.name":"Managed Applications","intlStudents.pricing.managedApplications.included":"Support with up to three university applications for one intake, two review rounds and scheduled progress updates during the agreed support period.","intlStudents.pricing.premiumSupport.name":"Premium Student Support","intlStudents.pricing.premiumSupport.included":"Everything in Managed Applications, plus two preparation and arr
204ival appointments, general accommodation information and scheduled support for 30 days after arrival.","intlStudents.pricing.initialConversation.name":"Initial Conversation","intlStudents.pricing.initialConversation.included":"A 15–20-minute introductory conversation to discuss your needs and explain our services.","intlStudents.pricing.studyPlanning.name":"Study Planning","intlStudents.pricing.studyPlanning.included":"One 45-minute appointment covering course options and academic entry requirements, followed by a short action plan.","intlStudents.pricing.immigrationName":"Immigration Partner Introduction","intlStudents.pricing.immigrationLabel":"Free introduction — professional advice fees quoted separately.","intlStudents.pricing.immigrationIncluded":"Introduction to an appropriately regulated immigration professional. Their advice and representation fees are quoted separately.","intlStudents.pricing.beforeBook":"Before you book","intlStudents.pricing.noteVat":"VAT: VAT-inclusive totals use the standard 20% rate. Your applicable VAT and final price will be confirmed before payment.","intlStudents.pricing.noteExternal":"External costs: University application fees, tuition, visa fees, the Immigration Health Surcharge, translations, travel and accommodation are separate.","intlStudents.pricing.noteAdditional":"Additional support: Extra applications, appointments or review rounds are quoted and agreed before work begins.","intlStudents.pricing.noteUpgrades":"Package upgrades: Any Study Planning fee already paid will be credited towards a larger student-support package for the same intake.","intlStudents.pricing.noteOutcomes":"Outcomes: University admissions and visa decisions remain with the relevant institutions and authorities and cannot be guaranteed.","intlStudents.pricing.scopeDisclaimer":"Legal Connect UK provides student advisory and support services. Regulated legal and immigration advice is provided independently by appropriately regulated professionals.","visaServices.heroSubtitle":"Immigration & Legal Support","visaServices.heroTitle":"Our Immigration Partners","visaServices.heroDesc":"Expert immigration lawyers ready to take the stress out of your immigration process, giving you the best chance for success.","visaServices.introTitle":"Tailored Support Every Step of the Way","visaServices.introDesc1":"At Legal Connect Partners, our expert immigration lawyers are here to take the stress out of your immigration process, giving you the best chance for success. Whether you want to visit, live, or extend your stay in the UK, our specialist advisers are ready to support you and your family with personalised immigration advice.","visaServices.introDesc2":"When you choose our services, you'll be paired with an immigration lawyer who understands your unique personal and professional needs. Your dedicated lawyer will work closely with you to assess your eligibility, clarify your goals, and guide you through every stage of your application, ensuring you have the support you need from start to finish.","visaServices.whyTitle":"Why Choose Us?","visaServices.why1.title":"Reliable & Experienced UK Immigration Solicitors","visaServices.why1.desc":"Our partners are highly skilled and experienced immigration lawyers who genuinely care about your future.","visaServices.why2.title":"IAA Regulated","visaServices.why2.desc":"Our UK immigration lawyers are regulated by the Immigration Advice Authority (IAA), ensuring the highest standards of legal service and professionalism.","visaServices.howTitle":"How We Can Help","visaServices.howDesc":"Our immigration lawyers specialise in a wide range of UK immigration matters, including visas, nationality, and asylum applications. We've represented clients in many complex and high-profile cases, achieving successful outcomes.","visaServices.help1":"Visa Applications","visaServices.help2":"Family Visas","visaServices.help3":"Asylum & Refugee","visaServices.help4":"Nationality & Citizenship","visaServices.help5":"Visa Extensions","visaServices.help6":"Appeal & Review","visaServices.howFooter":"Let us help you navigate the complexities of the UK immigration system with confidence.","visaServices.disclaimer":"Disclaimer: Legal Connect UK provides student advisory and support services only and does not itself provide regulated legal or immigration advice. Where the provision of such advice is required, clients are referred to appropriately regulated legal professionals authorised to operate in the United Kingdom.","visaGuidance.heroSubtitle":"International Students","visaGuidance.heroTitle":"Applying For A UK Student Visa","visaGuidance.heroDesc":"Most international students need a student visa to study in the UK. You should always check the official UK Government website to confirm whether a visa is required based on your nationality and course length.","visaGuidance.checkEligibility":"Request a study assessment","visaGuidance.validityTitle":"Visa Validity","visaGuidance.validityDesc":"A UK Student visa allows you to live and study in the UK for the full duration of your course, provided you continue to meet the visa conditions.","visaGuidance.whoTitle":"Who Needs a UK Student Visa?","visaGuidance.whoDesc":"You will usually need a student visa if:","visaGuidance.who1":"You are 16 years old or over","visaGuidance.who2":"Your course lasts more than six months","visaGuidance.who3":"You are studying at a UK-approved education provider","visaGuidance.feeNote":"The standard Student visa application fee is","visaGuidance.feeNote2":"Optional priority or super-priority services are available at an additional cost.","visaGuidance.howTitle":"How to Apply for Your Student Visa","visaGuidance.howDesc":"Follow these steps to prepare and submit your student visa application.","visaGuidance.step1.title":"Apply and Receive an Unconditional Offer","visaGuidance.step1.desc":"Apply to your chosen university or college and receive an unconditional offer for your course.","visaGuidance.step2.title":"Receive Your Confirmation of Acceptance for Studies (CAS)","visaGuidance.step2.desc":"Once you accept your offer, your institution will issue a CAS (Confirmation of Acceptance for Studies). Some institutions may charge a CAS administration fee (this varies by provider and is set by the university).","visaGuidance.step3.title":"Submit Your Student Visa Application","visaGuidance.step3.desc":"You can apply for your student visa up to 6 months before your course start date.","visaGuidance.step3.detail1":"Your CAS reference number","visaGuidance.step3.detail2":"A valid passport","visaGuidance.step3.detail3":"To pay the £490 visa application fee","visaGuidance.step3.note":"EU/EEA nationals: You may be able to verify your identity using the UK Immigration: ID Check app, rather than attending a visa centre.","visaGuidance.step4.title":"Pay the Immigration Health Surcharge (IHS)","visaGuidance.step4.desc":"If your course lasts more than six months, you must pay the Immigration Health Surcharge (IHS) as part of your application.","visaGuidance.step4.detail1":"£776 per year of leave granted","visaGuidance.step4.detail2":"£388 for courses lasting between 1–6 months","visaGuidance.step4.note":"Most students must pay the IHS regardless of nationality. Holding an EHIC does not normally remove the IHS requirement for Student visa holders.","visaGuidance.step5.title":"Meet English L
204anguage Requirements (if required)","visaGuidance.step5.desc":"Some students must provide evidence of English language proficiency. Your university will confirm what evidence is required (if any).","visaGuidance.step6.title":"Complete Your Application Before Travelling","visaGuidance.step6.desc":"Ensure your visa is granted before travelling to the UK. Do not arrive in the UK until your application has been approved.","visaGuidance.ihsNote":"Paying the IHS gives you access to the UK's","visaGuidance.ihsNHS":"National Health Service (NHS)","visaGuidance.ihsNote2":"during your stay.","visaGuidance.disclaimerTitle":"Important Disclaimer","visaGuidance.disclaimerText":"Legal Connect UK provides student advisory and support services only. We do not provide regulated legal or immigration advice. Where legal or immigration advice is required, students are referred to appropriately regulated professionals authorised to practise in the United Kingdom.","accommodation.heroSubtitle":"International Students","accommodation.heroTitle":"Accommodation Booking Assistance","accommodation.heroDesc":"Finding the right place to live is an important part of your student journey — and we're here to make it simple and stress-free.","accommodation.heroCta":"Get Help Finding Accommodation","accommodation.introDesc":"At Legal Connect, we help you secure accommodation that suits your budget, lifestyle, and personal preferences, so you can settle in comfortably and focus on your studies from day one.","accommodation.optionsTitle":"Accommodation Options to Suit Every Student","accommodation.optionsSubtitle":"We work with a wide range of accommodation providers, offering:","accommodation.option1.title":"Budget-Friendly Student Housing","accommodation.option1.desc":"Safe, comfortable, and well-located housing designed for students on a budget.","accommodation.option2.title":"Executive & Premium Accommodation","accommodation.option2.desc":"Added comfort and modern amenities for students seeking a higher standard of living.","accommodation.optionsNote":"Each option is carefully selected to meet quality and safety standards.","accommodation.infoTitle":"Clear Information, Confident Choices","accommodation.infoDesc":"We provide clear details on each accommodation option, helping you make an informed decision with confidence.","accommodation.info1":"Location and distance from campus","accommodation.info2":"Public transport links","accommodation.info3":"Amenities and facilities","accommodation.info4":"Contract length and key terms","accommodation.locationTitle":"Location Matters","accommodation.locationDesc":"We help you find accommodation close to your campus with great transport links, so your daily commute is easy and convenient.","accommodation.bookingTitle":"Support with Booking & Paperwork","accommodation.bookingDesc":"We assist with the booking process and accommodation paperwork, helping you understand contracts and lease agreements clearly before you commit. Our aim is to remove confusion and ensure everything is handled smoothly.","accommodation.ongoingTitle":"Ongoing Support","accommodation.ongoingDesc":"From your initial enquiry to securing your accommodation, our team offers personalised, ongoing support to make your transition to student life as seamless as possible.","courses.heroTitle":"Our Courses","courses.heroDesc":"Explore our wide range of degree courses designed for UK students. Flexible schedules, multiple intakes, and career-focused learning.","courses.learnMore":"Learn more","courses.notFound":"Can't find what you're looking for? Get in touch and we'll help you find the right course.","courses.startApplication":"Start Your Application","eligibility.heroSubtitle":"Get Started","eligibility.heroTitle":"Request a study assessment","eligibility.breadcrumb":"Request a study assessment","application.heroSubtitle":"Services","application.heroTitle":"Start Your Application","application.breadcrumb":"Start Your Application","application.fullName":"Full Name","application.phone":"Phone","application.email":"Email","application.settlement":"Settlement","application.select":"Select","application.studiedUK":"Have you studied at a UK university for 2 years or more?","application.livedUK":"Have you lived in the UK for 3 years or more?","application.postalCode":"Postal Code","application.city":"City","application.consent":"By entering your information you consent to your data being saved in accordance with our","application.terms":"terms","application.privacy":"privacy policy","application.submit":"Submit","application.thankYou":"Thank y
204ou! Your application has been submitted. We will be in touch shortly.","application.yes":"Yes","application.no":"No","application.british":"British","application.european":"European","application.settled":"Settled (Indefinite Leave to Remain - ILR)","application.leaveToRemain":"Leave to Remain","application.refugee":"Refugee","application.studentVisa":"Student Visa","form.contactWithUs":"Contact With Us.","form.letsTalk":"Let's talk","form.name":"Name","form.email":"Email","form.phoneWhatsApp":"Phone / WhatsApp","form.studentTypeQuestion":"Are you a UK student or International Student?","form.ukStudent":"UK Student","form.internationalStudent":"International Student","form.supportQuestion":"What support do you need?","form.support1":"Course & University Guidance","form.support2":"Student Visa Guidance","form.support3":"Student Finance / Funding","form.support4":"Accommodation Support","form.support5":"Not sure yet","form.situationLabel":"Tell us briefly about your situation","form.situationOptional":"(Optional but encouraged)","form.submit":"Submit","form.chatWhatsApp":"Chat on WhatsApp","form.whatsappDefaultMessage":"Hello, I would like to book a consultation with Legal Connect UK.","form.fullName":"Full Name","form.emailAddress":"Email Address","form.phoneWhatsAppNumber":"Phone / WhatsApp Number","form.phonePlaceholder":"Include country code","form.whichService":"Which service do you need?","form.serviceStudyConnect":"Study Connect Services","form.serviceImmigration":"Immigration Services","form.serviceBoth":"Both services","form.helpTopic":"What can we help you with?","form.helpTopicUniCourse":"University or course application","form.helpTopicStudentFinance":"Student finance and funding","form.helpTopicStudentVisa":"Student visa","form.helpTopicVisaExtension":"Visa application or extension","form.helpTopicFamilyVisa":"Spouse or family visa","form.helpTopicSettlement":"Settlement or British citizenship","form.helpTopicOverstayer":"Overstayer or complex immigration matter","form.helpTopicOther":"Other","form.helpTopicPlaceholder":"Select an option","form.describeEnquiry":"Briefly describe your enquiry","form.privacyConsent":"I agree to be contacted regarding my enquiry and accept the","form.privacyPolicyLink":"Privacy Policy","form.privacyConsentRequired":"Please agree to the Privacy Policy before submitting.","form.studentTypeRequired":"Please tell us whether you are a UK or international student.","form.supportRequired":"Please select at least one type of support you need.","form.submitYourEnquiry":"Submit Your Enquiry","admissionEligibility.heroSubtitle":"Services","admissionEligibility.heroTitle":"Check Admission Eligibility","admissionEligibility.heroDesc":"Check your admission eligibility assessed immediately by qualified university admission advisers. Free test for university offers.","admissionEligibility.checkNow":"Request a study assessment now","admissionEligibility.stat1":"Visa Success","admissionEligibility.stat2":"Years' Experience","admissionEligibility.stat3":"5 Star Reviews","admissionEligibility.academicTitle":"Academic Requirements","admissionEligibility.academic.foundation":"Foundation","admissionEligibility.academic.foundationReq":"Secondary School Certificate / O Levels","admissionEligibility.academic.bachelors":"Bachelor's","admissionEligibility.academic.bachelorsReq":"Minimum Higher Secondary Certificate (students from some countries may require higher qualification)","admissionEligibility.academic.masters":"Master's","admissionEligibility.academic.mastersReq":"Minimum bachelor degree","admissionEligibility.academic.doctorate":"Doctorate","admissionEligibility.academic.doctorateReq":"Master's degree or higher qualification","admissionEligibility.englishTitle":"English Proficiency Requirements","admissionEligibility.english.foundation":"Foundation","admissionEligibility.english.foundationReq":"IELTS for UKVI overall band score of minimum 5.0 with no component below 4.0","admissionEligibility.english.bachelors":"Bachelor's","admissionEligibility.english.bachelorsReq":"IELTS overall band score of minimum 5.5 with minimum 5.5 across all components","admissionEligibility.english.masters":"Master's","admissionEligibility.english.mastersReq":"IELTS overall band score of minimum 6.0 with minimum 5.5 across all components","admissionEligibility.english.doctorate":"Doctorate","admissionEligibility.english.doctorateReq":"IELTS overall band score of minimum 6.5 with minimum 5.5 across all components","admissionEligibility.tuitionTitle":"Tuition Fees","admissionEligibility.tuitionDesc":"Tuition fee ranges (approximate):","admissionEligibility.tuition.foundation":"Foundation","admissionEligibility.tuition.bachelors":"Bachelor's","admissionEligibility.tuition.masters":"Master's","admissionEligibility.tuition.doctorate":"Doctorate / PhD","admissionEligibility.fundsTitle":"Bank Funds Requirements","admissionEligibility.fundsDesc":"Student visa maintenance proof requirements (for applications on/after 11 Nov 2025):","admissionEligibility.fundsLondon":"London","admissionEligibility.fundsOutside":"Outside London","admissionEligibility.fundsNote":"Plus tuition fee balance as shown on your CAS.","admissionEligibility.ctaTitle":"Ready to request a study assessment?","admissionEligibility.ctaDesc":"Get your admission eligibility assessed immediately by our qualified university admission advisers.","gradRecruit.title":"Graduate Recruitment","gradRecruit.subtitle":"Turn Your Degree Into a Career","gradRecruit.desc1":"Graduating is a major achievement — but the next step is just as important: securing the right career opportunity.","gradRecruit.desc2":"At Legal Connect, we go beyond helping students enter UK universities. We also support graduates in transitioning from education into employment, connecting talented individuals with employers actively seeking skilled graduates across the UK.","gradRecruit.desc3":"Our graduate recruitment service bridges the gap between university education and professional opportunities, helping graduates confidently take their first steps into the workforce.","gradRecruit.cta":"Explore Recruitment","gradPage.heroTitle":"Graduate Recruitment","gradPage.heroSubtitle":"Turn Your Degree Into a Career","gradPage.intro1":"Graduating from university is a major achievement — but the next step is just as important: securing the right career opportunity.","gradPage.intro2":"Whether you are a UK graduate entering the job market or an international student looking to build your career in the UK, navigating graduate opportunities can be challenging.","gradPage.intro3":"At Legal Connect, we help graduates take the next step by connecting talented candidates with employers actively recruiting across the UK.","gradPage.intro4":"Our graduate recruitment service is designed to support both UK and international graduates in successfully transitioning from university into the professional world.","gradPage.jobsTitle":"Graduate Jobs in the UK","gradPage.jobsDesc":"Many organisations across the UK are actively recruiting graduates who bring strong academic backgrounds, fresh perspectives, and valuable skills. Legal Connect works with graduates seeking opportunities in sectors including:","gradPage.jobsFooter":"Through our employer network, we help candidates access entry-level roles, internships, and graduate programmes across the UK.","gradPage.sector1":"Business and Management","gradPage.sector2":"Finance and Accounting","gradPage.sector3":"Technology and Data Analytics","gradPage.sector4":"Engineering","gradPage.sector5":"Healthcare and Life Sciences","gradPage.sector6":"Marketing and Digital Media","gradPage.sector7":"Law and Legal Services","gradPage.sector8":"Education and Teaching","gradPage.sector9":"Hospital
204ity and Tourism","gradPage.sector10":"Architecture and Construction","gradPage.sector11":"Media and Communications","gradPage.sector12":"Human Resources","gradPage.sector13":"Supply Chain and Logistics","gradPage.sector14":"Environmental Science and Sustainability","gradPage.sector15":"Pharmaceutical and Biotechnology","gradPage.sector16":"Creative Arts and Design","gradPage.sector17":"Public Sector and Government","gradPage.sector18":"Retail and E-Commerce","gradPage.supportTitle":"How Legal Connect Supports Graduates","gradPage.supportDesc":"Finding your first job after university can feel overwhelming. Legal Connect provides practical support to help graduates move forward with confidence.","gradPage.supportServicesTitle":"Our services include:","gradPage.service1":"Professional CV and LinkedIn optimisation","gradPage.service2":"Interview preparation and career coaching","gradPage.service3":"Guidance on graduate job applications","gradPage.service4":"Access to employers recruiting graduate talent","gradPage.service5":"Career support tailored to the UK job market","gradPage.supportNote":"For international graduates, we also provide guidance on career opportunities after studying in the UK and navigating post-study work options.","gradPage.whyTitle":"Why Choose Legal Connect","gradPage.whyDesc":"Legal Connect takes a practical approach to graduate recruitment by connecting qualified graduates with real employment opportunities. We focus on helping candidates develop the confidence and professional presentation needed to succeed in today's competitive job market.","gradPage.whyGoal":"Our goal is simple: to help graduates turn their education into meaningful career opportunities.","gradPage.employersTitle":"For Employers","gradPage.employersDesc":"Legal Connect partners with organisations looking to recruit motivated graduate talent. We connect employers with candidates who bring:","gradPage.benefit1":"Strong academic foun
204dations","gradPage.benefit2":"Fresh ideas and innovation","gradPage.benefit3":"International perspectives","gradPage.benefit4":"Adaptability and ambition","gradPage.employersFooter":"Our recruitment process helps employers identify suitable graduates and simplifies the hiring process.","gradPage.ctaTitle":"Start Your Career Journey","gradPage.ctaDesc":"If you are a UK or international graduate looking for opportunities, Legal Connect can help you take the next step. Submit your CV or contact our team to explore graduate opportunities and receive guidance on starting your career in the UK.","gradPage.ctaCta":"Take the First Step","blog.subtitle":"Resources","blog.title":"Our Blog","blog.noPosts":"No posts yet","blog.noPostsDesc":"Check back soon for new articles and updates.","blog.backToBlog":"← Back to Blog","blog.postNotFound":"Post not found","notFound.title":"404","notFound.desc":"Oops! Page not found","notFound.link":"Return to Home","contact.heroSubtitle":"Services","ukFaqs.subtitle":"UK Students","ukFaqs.title":"Frequently Asked Questions","ukFaqs.desc":"Find answers to the most common questions about studying as a UK student.","ukFaqs.q1":"What qualifications do I need to apply?","ukFaqs.a1":"Many universities accept students without traditional qualifications. Foundation years and Level 4 pathways are available for those without A-Levels or equivalent.","ukFaqs.q2":"How does student finance work?","ukFaqs.a2":"Student Finance England provides tuition fee loans and maintenance loans. You apply online and repayments only start once you earn above the threshold after graduating.","ukFaqs.q3":"Can I study part-time or flexibly?","ukFaqs.a3":"Yes, many programmes offer flexible study options with as little as 8 hours of in-person attendance per week, allowing you to balance work and personal commitments.","ukFaqs.q4":"When can I start my course?","ukFaqs.a4":"UK universities offer multiple intakes throughout the year, typically in September, November, February, and May, so you can apply anytime.","ukFaqs.q5":"Do I need to pay tuition fees upfront?","ukFaqs.a5":"No. If you are eligible for Student Finance, your tuition fees are paid directly to the university. You don't need to pay anything upfront.","ukFaqs.q6":"What courses are available?","ukFaqs.a6":"A wide range of undergraduate and postgraduate courses are available across business, health, computing, law, education, and more.","ukFaqs.q7":"How long does a degree take?","ukFaqs.a7":"A standard undergraduate degree takes 3 years full-time, though accelerated and part-time options may be available depending on the programme.","ukFaqs.q8":"How can Legal Connect UK help me?","ukFaqs.a8":"We provide free guidance on course selection, university applications, student finance, and support you throughout the entire process from start to enrolment.","ukFaqs.stillQuestions":"Still have questions? We're here to help.","ukFaqs.contactUs":"Contact Us","intlFaqs.subtitle":"UK University Admission & Student Visa Guidance","intlFaqs.title":"International Students FAQs","intlFaqs.desc":"Planning to study in the UK as an international student? Find answers to the most common questions about UK university admission, student visas, tuition fees, and settlement support.","intlFaqs.eligibilityNote":"If your question is not covered, you can check your eligibility with our advisory team.","intlFaqs.q1":"How do I apply to a UK university as an international student?","intlFaqs.a1.intro":"To apply to a UK university, you typically need:","intlFaqs.a1.p1":"Academic transcripts and certificates","intlFaqs.a1.p2":"English language qualification (IELTS or equivalent, if required)","intlFaqs.a1.p3":"Personal statement","intlFaqs.a1.p4":"Passport copy","intlFaqs.a1.p5":"Reference letter","intlFaqs.a1.note":"Some universities require applications through UCAS, while others accept direct applications. At Legal Connect UK, we provide structured admission support to help you choose the right course, prepare documentation, and submit a compliant application.","intlFaqs.q2":"What is a CAS letter and why is it important?","intlFaqs.a2.intro":"A Confirmation of Acceptance for Studies (CAS) is issued by your UK university once you receive an unconditional offer and meet financial requirements.","intlFaqs.a2.note":"You cannot apply for a UK Student visa without a valid CAS number. We guide students through the full CAS process, ensuring documents and financial evidence meet UKVI requirements.","intlFaqs.q3":"What are the financial requirements for a UK Student visa?","intlFaqs.a3.intro":"To apply for a UK Student visa, you must show:","intlFaqs.a3.p1":"Tuition fees for the first year (or as stated on CAS)","intlFaqs.a3.p2":"Living costs: £1,334/month (London) or £1,023/month (outside London) for up to 9 months","intlFaqs.a3.note":"Funds must usually be held for at least 28 consecutive days. Incorrect financial evidence is one of the most common reasons for visa refusal.","intlFaqs.q4":"Can I study in the UK without IELTS?","intlFaqs.a4.intro":"Some UK universities accept:","intlFaqs.a4.p1":"WAEC / NECO (for certain African countries)","intlFaqs.a4.p2":"Previous education in English","intlFaqs.a4.p3":"Alternative English tests","intlFaqs.a4.note":"Each university has different requirements. We assess your academic background and identify institutions aligned with your profile.","intlFaqs.q5":"How long does a UK Student visa take to process?","intlFaqs.a5.intro":"Standard processing time:","intlFaqs.a5.p1":"Outside UK: approximately 3 weeks","intlFaqs.a5.p2":"Inside UK: approximately 8 weeks","intlFaqs.a5.note":"Priority services may be available in certain countries.","intlFaqs.q6":"How much does it cost to study in the UK?","intlFaqs.a6.intro":"Typical annual tuition fees:","intlFaqs.a6.p1":"Undergraduate: £10,000 – £18,000","intlFaqs.a6.p2":"Postgraduate: £12,000 – £22,000","intlFaqs.a6.note":"Living costs depend on city and lifestyle. We help students identify universities aligned with their academic goals and budget.","intlFaqs.q7":"Can international students work while studying in the UK?","intlFaqs.a7.intro":"Yes. Most Student visa holders can:","intlFaqs.a7.p1":"Work up to 20 hours per week during term time","
204intlFaqs.a7.p2":"Work full-time during holidays","intlFaqs.a7.note":"Work conditions depend on your visa status and course level.","intlFaqs.q8":"What happens if my visa is refused?","intlFaqs.a8.intro":"Common reasons include:","intlFaqs.a8.p1":"Incorrect financial documents","intlFaqs.a8.p2":"Incomplete application","intlFaqs.a8.p3":"Credibility interview issues","intlFaqs.a8.options":"Depending on circumstances, you may apply for an Administrative Review or submit a new application. We assess refusal reasons before advising next steps.","intlFaqs.q9":"Do you provide accommodation and arrival support?","intlFaqs.a9.intro":"Yes. We provide guidance on:","intlFaqs.a9.p1":"Student accommodation options","intlFaqs.a9.p2":"Understanding tenancy agreements","intlFaqs.a9.p3":"Airport arrival preparation","intlFaqs.a9.p4":"Banking and practical settlement advice","intlFaqs.a9.note":"Our support extends beyond admission.","intlFaqs.q10":"Why choose Legal Connect UK?","intlFaqs.a10.p1":"Structured university matching","intlFaqs.a10.p2":"Step-by-step admission support","intlFaqs.a10.p3":"Student visa compliance guidance","intlFaqs.a10.p4":"Financial documentation review","intlFaqs.a10.p5":"Ongoing support before and after arrival","intlFaqs.a10.note":"Our approach is clear, ethical, and outcome driven.","intlFaqs.stillQuestions":"Still have questions? We're here to help.","intlFaqs.contactUs":"Contact Us","intlFaqs.checkEligibility":"Request a study assessment","ukStudents.heroTagline":"Take the First Step Towards Your Future","ukStudents.heroMainTitle":"Flexible University Study That Fits Your Life","ukStudents.heroMainDesc1":"Your future doesn't have to wait. If you're working, raising a family, or returning to education after a break, studying at university can fit around your life — and we're here to help you make it happen.","ukStudents.heroMainDesc2":"With flexible study routes, multiple start dates, and dedicated support, your journey can begin sooner than you think.","ukStudents.fundingTagline":"Access funding from Student Finance England","ukStudents.fundingTitle":"Get the Funding You Deserve","ukStudents.fundingDesc":"At Legal Connect, we're here to help you unlock the financial support available through Student Finance England. We'll guide you step by step through the process—so you can secure funding for both your tuition fees and living costs (maintenance loan) with confidence and ease.","ukStudents.applyTitle":"Apply Anytime — Start Your Studies Sooner","ukStudents.applyDesc1":"Why wait a full year to begin?","ukStudents.applyDesc2":"We offer multiple intakes throughout the year — September, November, February, and May. Apply at any time, and we'll guide you into the next available intake, so you can move forward without delay.","ukStudents.applyBtn":"Start your application today","ukStudents.noQualTitle":"No Qualifications? You Still Have Options","ukStudents.noQualDesc":"Don't let past education hold you back. There's a clear pathway forward, even if you're starting from scratch.","ukStudents.noQualOffer":"We offer:","ukStudents.noQualItem1":"Level 4 one-year courses to build confidence and core academic skills","ukStudents.noQualItem2":"Undergraduate degrees with a foundation year for a supported entry into university study","ukStudents.noQualMotivation":"Your potential matters more than your past.","ukStudents.noQualBtn":"Check if you're eligible","ukStudents.flexTitle":"Study Around Your Work & Family Commitments","ukStudents.flexDesc":"Yes — you can study while working or caring for your family.","ukStudents.flexModelTitle":"Our flexible study model includes:","ukStudents.flexItem1":"Just two classes per week","ukStudents.flexItem2":"4 hours per class","ukStudents.flexItem3":"Only 8 hours of in-person study per week","ukStudents.flexItem4":"Evening and weekend options available","ukStudents.flexMotivation":"Education that works around your schedule — not the other way around.","ukStudents.flexBtn":"Find a study option that fits your life","ukStudents.courseTitle":"Choose a Course That Leads Somewhere","ukStudents.c
204ourseDesc":"Whether you prefer traditional subjects or modern, career-focused courses, you'll find options designed to help you gain real skills, recognised qualifications, and future opportunities.","ukStudents.courseMotivation":"This isn't just about studying — it's about building a future you're proud of.","ukStudents.courseBtn":"Explore available courses","ukStudents.supportTitle":"Support at Every Step","ukStudents.supportDesc":"You don't have to figure this out alone. We'll support you with:","ukStudents.supportItem1":"Choosing the right course","ukStudents.supportItem2":"Understanding entry requirements","ukStudents.supportItem3":"Guiding you through the application process","ukStudents.supportItem4":"Making sure you're confident and prepared before you start","ukStudents.supportMotivation":"From your first enquiry to your first class — we're with you.","ukStudents.ctaTitle":"Ready to Start Your Journey?","ukStudents.ctaDesc":"Your future starts with one decision.","ukStudents.ctaBtn":"Request a study assessment","ukStudents.ctaFooter":"Take the first step — and let us help you move forward with confidence.","about.desc1":"Legal Connect UK is a student-focused advisory and support platform helping UK and international students navigate their journey to studying and settling in the United Kingdom with clarity and confidence.","about.desc2":"We provide clear, structured guidance across education pathways, admissions support, student finance, visa processes, accommodation, and arrival services — simplifying what can often feel like a complex and overwhelming process.","about.desc3":"Studying in the UK involves important decisions at every stage. From choosing the right course or institution, to understanding visa requirements, funding options, and practical arrangements, students need reliable information and trusted guidance. Legal Connect UK exists to remove uncertainty and provide students with a clear plan forward.","about.legalNote":"Where legal or immigration advice is required, we work by connecting students with appropriately regulated UK professionals, ensuring transparency, compliance, and peace of mind.","about.missionDesc":"To empower students with reliable guidance, trusted connections, and clear pathways to study, settle, and succeed in the UK.","about.heroTagline":"Get to know us","about.whatWeDo1":"Course and university guidance","about.whatWeDo2":"Admission eligibility and application support","about.whatWeDo3":"Student finance and funding guidance","about.whatWeDo4":"UK student visa process support","about.whatWeDo5":"Accommodation and arrival assistance","about.whatWeDo6":"Post-arrival and settlement guidance","about.whoWeSupport1":"International students planning to study in the UK","about.whoWeSupport2":"UK students exploring higher education or alternative study routes","about.whoWeSupport3":"Students who want clear, reliable advice before making major decisions","about.whoWeSupport4":"Families seeking reassurance and structured guidance for their children","about.ourApproach1":"Student-first, outcome-driven support","about.ourApproach2":"Clear explanations without unnecessary jargon","about.ourApproach3":"Ethical, transparent, and compliant practices","about.ourApproach4":"One dedicated point of contact throughout the student journey","about.whyChoose1":"Independent, student-focused advisory platform","about.whyChoose2":"Clear step-by-step guidance","about.whyChoose3":"International student experience and cultural awareness","about.whyChoose4":"Trusted professional network","about.whyChoose5":"Transparent services with no hidden complexity","intlStudents.whyStudyUK.seoTitle":"Why Study in the UK? | International Student Guide","intlStudents.whyStudyUK.seoDescription":"Discover why international students choose to study in the UK. Explore respected qualifications, course options, student life and application support.","intlStudents.whyStudyUK.heroTitle":"Why Study in the UK?","intlStudents.whyStudyUK.heroSubtitle":"International Students","intlStudents.whyStudyUK.heroDesc":"Discover why international students choose the UK for respected qualifications, diverse courses and global career opportunities.","intlStudents.whyStudyUK.introTitle":"Why Study in the UK as an International Student?","intlStudents.whyStudyUK.introP1":"The United Kingdom is one of the world's leading destinations for international education. Every year, students from Africa, Asia, Europe, the Middle East and other regions choose to study in the UK to gain respected qualifications, experience a multicultural environment and prepare for international career opportunities.","intlStudents.whyStudyUK.introP2":"Whether you are applying for a foundation programme, undergraduate degree, master's course or professional qual
204ification, the UK offers a wide range of study opportunities.","intlStudents.whyStudyUK.introP3":"At Legal Connect UK, we help international students understand their options, find suitable courses and receive personalised support throughout the UK university application process.","intlStudents.whyStudyUK.section1.title":"Gain an Internationally Respected Qualification","intlStudents.whyStudyUK.section1.p1":"UK universities and educational institutions are recognised worldwide for their academic standards, research and career-focused teaching.","intlStudents.whyStudyUK.section1.p2":"A UK qualification can help you demonstrate your knowledge, professional abilities and commitment to personal development. It may also support your progression into employment, postgraduate education or further professional training. The recognition of individual qualifications will depend on the employer, professional body or education authority in the country where you intend to use them.","intlStudents.whyStudyUK.section2.title":"Choose From a Wide Range of UK Courses","intlStudents.whyStudyUK.section2.p1":"International students can choose from thousands of courses across many subject areas, including:","intlStudents.whyStudyUK.section2.p2":"Study options may include foundation courses, undergraduate degrees, postgraduate programmes and professional qualifications. Legal Connect UK can help you compare available courses based on your academic background, English-language ability, career ambitions and preferred location.","intlStudents.whyStudyUK.courses.business":"Business and Management","intlStudents.whyStudyUK.courses.accounting":"Accounting and Finance","intlStudents.whyStudyUK.courses.law":"Law and Criminology","intlStudents.whyStudyUK.courses.health":"Health and Social Care","intlStudents.whyStudyUK.courses.nursing":"Nursing and Healthcare","intlStudents.whyStudyUK.courses.computing":"Computing and Information Technology","intlStudents.whyStudyUK.courses.cybersecurity":"Cybersecurity","intlStudents.whyStudyUK.courses.engineering":"Engineering","intlStudents.whyStudyUK.courses.construction":"Construction and Project Management","intlStudents.whyStudyUK.courses.marketing":"Marketing and Digital Marketing","intlStudents.whyStudyUK.courses.hospitality":"Hospitality and Tourism","intlStudents.whyStudyUK.courses.education":"Education","intlStudents.whyStudyUK.courses.psychology":"Psychology","intlStudents.whyStudyUK.courses.internationalRelations":"International Relations","intlStudents.whyStudyUK.section3.title":"Complete Your Studies in Less Time","intlStudents.whyStudyUK.section3.p1":"Many full-time undergraduate degrees in England, Wales and Northern Ireland can be completed in three years, while many taught master's programmes take one year.","intlStudents.whyStudyUK.section3.p2":"This may allow international students to complete their qualifications more quickly than in some other countries. Course duration varies depen
204ding on the programme, subject, institution and part of the UK in which you study.","intlStudents.whyStudyUK.section4.title":"Improve Your English-Language Skills","intlStudents.whyStudyUK.section4.p1":"Studying in the UK gives international students the opportunity to use English in academic, professional and everyday situations.","intlStudents.whyStudyUK.section4.p2":"Regular communication with lecturers, classmates and local communities can help you develop your speaking, writing, listening and presentation skills. Strong English-language skills may also improve your confidence and support your future career in an international environment. Universities may require evidence of English-language ability, such as IELTS or another accepted qualification. Requirements vary between institutions and courses.","intlStudents.whyStudyUK.section5.title":"Develop Skills for an International Career","intlStudents.whyStudyUK.section5.p1":"UK courses can help students develop academic knowledge alongside practical and transferable skills valued by employers. These may include:","intlStudents.whyStudyUK.section5.p2":"Depending on your course, you may also have access to work placements, practical projects, careers services, industry events and networking opportunities. Employment after graduation is not guaranteed and will depend on your qualifications, experience, immigration status and the requirements of individual employers.","intlStudents.whyStudyUK.skills.communication":"Communication and presentation","intlStudents.whyStudyUK.skills.leadership":"Leadership and teamwork","intlStudents.whyStudyUK.skills.research":"Research and analysis","intlStudents.whyStudyUK.skills.criticalThinking":"Critical thinking","intlStudents.whyStudyUK.skills.problemSolving":"Problem-solving","intlStudents.whyStudyUK.skills.digital":"Digital skills","intlStudents.whyStudyUK.skills.timeManagement":"Time management","intlStudents.whyStudyUK.skills.independentLearning":"Independent learning","intlStudents.whyStudyUK.section6.title":"Experience a Multicultural Environment","intlStudents.whyStudyUK.section6.p1":"The UK is home to people from many cultures, languages and nationalities. As an international student, you can meet people from around the world, discover different perspectives and develop a valuable international network.","intlStudents.whyStudyUK.section6.p2":"Many universities have international student societies, cultural associations, faith groups and support teams to help students settle into university life.","intlStudents.whyStudyUK.section6.p3":"This multicultural environment can make the UK an attractive destination for students leaving their home country for the first time.","intlStudents.whyStudyUK.section7.title":"Study in Exciting UK Cities","intlStudents.whyStudyUK.section7.p1":"International students can study in cities across England, Scotland, Wales and Northern Ireland. Popular student destinations include:","intlStudents.whyStudyUK.section7.p2":"Each destination offers a different experience. You may prefer the opportunities of a large city, the affordability of a smaller university town or the convenience of a campus-based institution. Before choosing your location, it is important to consider tuition fees, accommodation costs, transport, lifestyle and access to student support.","intlStudents.whyStudyUK.cities.london":"London","intlStudents.whyStudyUK.cities.birmingham":"Birmingham","intlStudents.whyStudyUK.cities.manchester":"Manchester","intlStudents.whyStudyUK.cities.leeds":"Leeds","intlStudents.whyStudyUK.cities.liverpool":"Liverpool","intlStudents.whyStudyUK.cities.nottingham":"Nottingham","intlStudents.whyStudyUK.cities.leicester":"Leicester","intlStudents.whyStudyUK.cities.coventry":"Coventry","intlStudents.whyStudyUK.cities.glasgow":"Glasgow","intlStudents.whyStudyUK.cities.edinburgh":"Edinburgh","intlStudents.whyStudyUK.cities.cardiff":"Cardiff","intlStudents.whyStudyUK.cities.belfast":"Belfast","intlStudents.whyStudyUK.section8.title":"Access Scholarships and Funding Opportunities","intlStudents.whyStudyUK.section8.p1":"Some UK universities provide scholarships, bursaries or tuition-fee discounts for eligible international students.","intlStudents.whyStudyUK.section8.p2":"Scholarships may be awarded according to academic achievement, nationality, subject area or financial circumstances. Availability and eligibility requirements vary considerably between institutions.","intlStudents.whyStudyUK.section8.p3":"Legal Connect UK can help you identify potential opportunities, but scholarships and funding cannot be guaranteed. International students should also prepare a realistic budget covering tuition fees, accommodation, travel and everyday living expenses.","intlStudents.whyStudyUK.section9.title":"Work While Studying","intlStudents.whyStudyUK.section9.p1":"Some international students may be permitted to work a limited number of hours while studying in the UK.","intlStudents.whyStudyUK.section9.p2":"Your right to work will depend on your immigration permission, course and education provider. It is essential to check the conditions attached to your Student visa before accepting employment.","intlStudents.whyStudyUK.section9.p3":"Part-time work may provide useful experience, but students should not rely on employment as their main source of funding for their studies or living costs.","intlStudents.whyStudyUK.section10.title":"Receive Support With Your UK Application","intlStudents.whyStudyUK.section10.p1":"Applying to study overseas can feel complicated. International students may need to choose a suitable course, meet academic and English-language requirements, prepare financial evidence and understand the Student visa process.","intlStudents.whyStudyUK.section10.p2":"Legal Connect UK provides structured support to help make your journey clearer. Our international student services may include:","intlStudents.whyStudyUK.section10.note":"All university admissions, scholarships and visa applications are subject to the requirements and decisions of the relevant institution, funding organisation or UK government authority.","intlStudents.whyStudyUK.support.assessment":"Initial eligibility assessment","intlStudents.whyStudyUK.support.recommendations":"Course and university recommendations","intlStudents.whyStudyUK.support.entryRequirements":"Guidance on entry requirements","intlStudents.whyStudyUK.support.applicationSupport":"Application-form support","intlStudents.whyStudyUK.support.personalStatement":"Personal-statement guidance","intlStudents.whyStudyUK.support.documentChecks":"Academic document checks","intlStudents.whyStudyUK.support.interviewPrep":"Interview preparation","intlStudents.whyStudyUK.support.scholarships":"Information about scholarships and tuition fees","intlStudents.whyStudyUK.support.visaGuidance":"Student visa process guidance","intlStudents.whyStudyUK.support.accommodation":"Accommodation assistance","intlStudents.whyStudyUK.support.preDeparture":"Pre-departure information","intlStudents.whyStudyUK.support.airportTransfer":"Airport-transfer arrangements","intlStudents.whyStudyUK.support.afterArrival":"Support before and after arrival in the UK","intlStudents.whyStudyUK.whyChooseTitle":"Why Choose Legal Connect UK?","intlStudents.whyStudyUK.whyChooseP1":"We understand that every international student has different qualifications, goals and personal circumstances. Our approach is designed to provide clear and personalised 
204support from your first enquiry through to enrolment.","intlStudents.whyStudyUK.whyChooseP2":"We can communicate with students in English and French, making our services accessible to applicants from both Anglophone and Francophone countries.","intlStudents.whyStudyUK.whyUs.options":"Understand your available study options","intlStudents.whyStudyUK.whyUs.course":"Choose a suitable course and institution","intlStudents.whyStudyUK.whyUs.application":"Prepare a stronger application","intlStudents.whyStudyUK.whyUs.mistakes":"Avoid common application mistakes","intlStudents.whyStudyUK.whyUs.stages":"Understand the different stages of your journey","intlStudents.whyStudyUK.whyUs.confidence":"Arrive in the UK with greater confidence","intlStudents.whyStudyUK.ctaTitle":"Start Your UK Study Journey","intlStudents.whyStudyUK.ctaP1":"Studying in the UK could help you gain a respected qualification, develop valuable skills and become part of an international student community.","intlStudents.whyStudyUK.ctaP2":"Let Legal Connect UK help you find the right course and take the next step towards studying in the United Kingdom.","intlStudents.whyStudyUK.ctaBtn1":"Request a study assessment","intlStudents.whyStudyUK.ctaBtn2":"Find a UK Course","intlStudents.whyStudyUK.ctaBtn3":"Speak to an International Student Adviser","intlStudents.whyStudyUK.trust.bcTitle":"British Council Trained Agent and Counsellor","intlStudents.whyStudyUK.trust.bcText":"We are proud to be British Council trained UK Education Agent and Counsellors, officially recognised for our expertise in providing accurate, ethical, and up-to-date advice on studying in the UK. This reflects our commitment to supporting students with informed guidance throughout their academic journey, from choosing the right course and institution to navigating the application process. With our training, students and parents can be confident that they are receiving trusted, high-quality support.","intlStudents.whyStudyUK.trust.aqfTitle":"Agent Quality Framework (AQF) Compliance","intlStudents.whyStudyUK.trust.aqfText":"Legal Connect UK is committed to upholding the highest standards in international student recruitment. We adhere to the principles of the Agent Quality Framework (AQF), ensuring ethical practices, transparency, and professionalism in all our services. Our agents are trained and certified to provide accurate and reliable guidance to students.","intlStudents.whyStudyUK.trust.title":"Trusted UK Education Support","intlStudents.findACourse.seoTitle":"UK Courses for International Students | Legal Connect UK","intlStudents.findACourse.seoDescription":"Explore UK courses for international students, from foundation and bachelor's degrees to master's programmes. Get personalised application support.","intlStudents.findACourse.heroTitle":"UK Courses for International Students","intlStudents.findACourse.heroSubtitle":"International Students","intlStudents.findACourse.heroDesc":"Explore foundation, undergraduate and postgraduate courses at UK universities and colleges with personalised guidance from Legal Connect UK.","intlStudents.findACourse.introTitle":"Find the Right UK Course for You","intlStudents.findACourse.introP1":"Explore foundation, undergraduate and postgraduate courses at UK universities and colleges. Legal Connect UK helps international students find suitable programmes, understand entry requirements and prepare stronger applications.","intlStudents.findACourse.introP2":"The United Kingdom offers a wide choice of academic and career-focused courses across business, computing, engineering, law, health, science, education, the creative industries and many other subject areas. The right course should match your qualifications, budget, preferred location and long-term career goals - not simply the name of a university.","intlStudents.findACourse.introP3":"Legal Connect UK supports students from Africa and around the world in English and French. We can help you compare realistic options and understand each stage of the UK university application process.","intlStudents.findACourse.rightCourseTitle":"Find the Right UK Course for Your Future","intlStudents.findACourse.rightCourseP1":"Choosing a course is an important academic, financial and career decision. Before applying, consider the modules you will study, the teaching and assessment methods, tuition fees, professional accreditation, work-placement opportunities and how the qualification is recognised in the country where you plan to work.","intlStudents.findACourse.rightCourseP2":"Our advisers can review your academic background, work experience, English-language level, budget and career ambitions before suggesting suitable courses and institutions. Recommendations are personalised, and all admissions decisions remain with the university or college.","intlStudents.findACourse.ctaBtn1":"Request a study assessment","intlStudents.findACourse.ctaBtn2":"Speak to an International Student Adv
204iser","intlStudents.findACourse.popularTitle":"Popular UK Courses for International Students","intlStudents.findACourse.popular.business":"Business and Management","intlStudents.findACourse.popular.accounting":"Accounting and Finance","intlStudents.findACourse.popular.computerScience":"Computer Science and Information Technology","intlStudents.findACourse.popular.cybersecurity":"Cybersecurity","intlStudents.findACourse.popular.dataScience":"Data Science and Artificial Intelligence","intlStudents.findACourse.popular.engineering":"Engineering","intlStudents.findACourse.popular.law":"Law and Criminology","intlStudents.findACourse.popular.publicHealth":"Public Health and Healthcare Management","intlStudents.findACourse.popular.biomedical":"Biomedical Science","intlStudents.findACourse.popular.construction":"Construction and Project Management","intlStudents.findACourse.popular.marketing":"Marketing and Digital Marketing","intlStudents.findACourse.popular.hospitality":"Hospitality and Tourism Management","intlStudents.findACourse.popularNote":"Course availability, entry requirements, professional recognition and tuition fees vary by institution and intake.","intlStudents.findACourse.levelsTitle":"Choose Your Level of Study","intlStudents.findACourse.levels.foundation.title":"International Foundation Year","intlStudents.findACourse.levels.foundation.desc":"A foundation programme can help students bridge differences between their current qualifications and the academic or English-language requirements of a bachelor's degree. These programmes are commonly one year, although structures and progression conditions vary.","intlStudents.findACourse.levels.bachelor.title":"Bachelor's Degree","intlStudents.findACourse.levels.bachelor.desc":"A standard full-time bachelor's degree normally lasts three years in England, Wales and Northern Ireland, and commonly four years in Scotland. Medicine, dentistry, integrated degrees and courses with a placement or year abroad can take longer.","intlStudents.findACourse.levels.premaster.title":"Pre-Master's Programme","intlStudents.findACourse.levels.premaster.desc":"A pre-master's programme may help students prepare for postgraduate study by developing academic, research and English-language skills. Availability and progression requirements depend on the provider.","intlStudents.findACourse.levels.master.title":"Master's Degree","intlStudents.findACourse.levels.master.desc":"Many full-time taught master's programmes in the UK can be completed in one year. Research degrees, professional programmes and courses with placements may take longer.","intlStudents.findACourse.levels.doctoral.title":"Doctoral and Research Degrees","intlStudents.findACourse.levels.doctoral.desc":"PhD and other research programmes are designed for advanced independent study. Applicants normally need a strong research proposal, relevant qualifications and an appropriate supervisor or research f
204it.","intlStudents.findACourse.subjectsTitle":"Explore UK Course Subjects","intlStudents.findACourse.subjectsDesc":"Browse the main subject areas below. This is not a complete list: UK institutions offer many specialist, combined and interdisciplinary programmes.","intlStudents.findACourse.subjects.business.title":"Business, Finance and Management","intlStudents.findACourse.subjects.business.items":"Business and Management|International Business|Business Administration|Entrepreneurship and Innovation|Accounting and Finance|Banking and Investment|Financial Management|Financial Technology (FinTech)|Economics|Human Resource Management|Marketing and Digital Marketing|Supply Chain and Logistics Management|Project Management|Leadership and Strategic Management","intlStudents.findACourse.subjects.law.title":"Law, Politics and Social Sciences","intlStudents.findACourse.subjects.law.items":"Law|International Law|Business and Commercial Law|Criminology|Policing and Criminal Justice|Politics and Political Science|International Relations|International Development|Public Policy and Administration|Sociology|Social Policy|Anthropology|Geography","intlStudents.findACourse.subjects.computing.title":"Computing and Digital Technology","intlStudents.findACourse.subjects.computing.items":"Computer Science|Computing and Information Technology|Software Engineering|Cybersecurity|Artificial Intelligence|Data Science and Data Analytics|Business Information Systems|Cloud Computing|Computer Networks|Web and Mobile Application Development|Games Design and Development|User Experience and Interaction Design|Robotics and Intelligent Systems","intlStudents.findACourse.subjects.engineering.title":"Engineering and Manufacturing","intlStudents.findACourse.subjects.engineering.items":"Civil Engineering|Mechanical Engineering|Electrical and Electronic Engineering|Chemical Engineering|Aerospace and Aeronautical Engineering|Automotive Engineering|Biomedical Engineering|Environmental Engineering|Manufacturing Engineering|Materials Science and Engineering|Mechatronics and Robotics|Renewable Energy Engineering|Engineering Management","intlStudents.findACourse.subjects.architecture.title":"Architecture, Construction and the Built Environment","intlStudents.findACourse.subjects.architecture.items":"Architecture|Architectural Technology|Construction Management|Quantity Surveying|Building Surveying|Property Development|Real Estate Management|Urban Planning|Interior Architecture and Design|Landscape Architecture|Building Services Engineering|Sustainable Construction","intlStudents.findACourse.subjects.health.title":"Medicine, Health and Social Care","intlStudents.findACourse.subjects.health.items":"Health and Social Care|Medicine|Dentistry|Nursing|Midwifery|Pharmacy|Biomedical Science|Public Health|Global Health|Healthcare Management|Physiotherapy|Occupational Therapy|Radiography and Medical Imaging|Nutrition and Dietetics|Counselling and Psychotherapy","intlStudents.findACourse.subjects.science.title":"Science, Mathematics and the Environment","intlStudents.findACourse.subjects.science.items":"Biological Sciences|Biochemistry|Biotechnology|Genetics and Microbiology|Chemistry|Physics|Mathematics and Statistics|Environmental Science|Earth and Planetary Science|Marine Biology|Forensic Science|Food Science and Nutrition|Agriculture and Animal Science|Veterinary Science","intlStudents.findACourse.subjects.psychology.title":"Psychology, Social Work and Community Studies","intlStudents.findACourse.subjects.psychology.items":"Psychology|Clinical Psychology|Counselling Psychology|Forensic Psychology|Health Psychology|Business and Organisational Psychology|Sport and Exercise Psychology|Social Work|Childhood and Youth Studies|Community Development|Family and Community Studies|Special Educational Needs and Disability Studies","intlStudents.findACourse.subjects.education.title":"Education and Teaching","intlStudents.findACourse.subjects.education.items":"Education Studies|Primary Education|Secondary Education|Early Childhood Studies|Teacher Training|Special Educational Needs and Inclusive Education|Educational Leadership and Management|Teaching English to Speakers of Other Languages (TESOL)|Applied Linguistics|Youth and Community Work|Education and Psychology","intlStudents.findACourse.subjects.arts.title":"Arts, Design and Creative Industries","intlStudents.findACourse.subjects.arts.items":"Fine Art|Graphic Design|Product Design|Interior Design|Fashion Design|Fashion Business and Management|Textiles and Jewellery Design|Photography|Film and Television Production|Animation and Visual Effects|Music and Music Production|Drama, Dance and Performing Arts|Creative Industries Management","intlStudents.findACourse.subjects.media.title":"Media, Journ
204alism and Communication","intlStudents.findACourse.subjects.media.items":"Media and Communication|Journalism|Broadcast Journalism|Digital Journalism|Public Relations|Advertising and Brand Management|Publishing|Film and Television Studies|Creative Writing|Communication and Cultural Studies","intlStudents.findACourse.subjects.languages.title":"Languages and Humanities","intlStudents.findACourse.subjects.languages.items":"English Language and Linguistics|English Literature|Translation and Interpreting|Modern Languages|French|Spanish|German|Arabic|Chinese and Asian Studies|History|Philosophy|Religion and Theology|Classics|Area and Cultural Studies","intlStudents.findACourse.subjects.hospitality.title":"Hospitality, Tourism and Events","intlStudents.findACourse.subjects.hospitality.items":"Hospitality Management|International Tourism Management|Travel and Tourism|Hotel Management|Events Management|Culinary Arts|Food and Beverage Management|Aviation and Airport Management|Airline and Tourism Management|Leisure and Resort Management","intlStudents.findACourse.subjects.sport.title":"Sport and Exercise","intlStudents.findACourse.subjects.sport.items":"Sport and Exercise Science|Sports Management|Sports Coaching|Physical Education|Sports Therapy and Rehabilitation|Strength and Conditioning|Sports Nutrition|Football Business and Management|Exercise and Health|Outdoor and Adventure Education","intlStudents.findACourse.subjectsNote":"Cannot find your subject? Many specialist and combined programmes are available. Tell us what you want to study, your current qualifications and your preferred intake, and we will help you explore suitable options.","intlStudents.findACourse.compareTitle":"How to Choose the Right UK Course","intlStudents.findACourse.compareIntro":"Do not choose a course by title alone. Course content and assessment can differ significantly between universities. Compare the following before applying:","intlStudents.findACourse.compare.entryRequirements":"Entry requirements for your country and qualification","intlStudents.findACourse.compare.modules":"Core and optional modules","intlStudents.findACourse.compare.teaching":"Teaching, assessment and practical-learning methods","intlStudents.findACourse.compare.accreditation":"Professional accreditation and recognition in your intended career country","intlStudents.findACourse.compare.placements":"Placement, internship, laboratory or industry-project opportunities","intlStudents.findACourse.compare.duration":"Course duration, start date and campus location","intlStudents.findACourse.compare.fees":"Tuition fees, deposits, scholarships and living costs","intlStudents.findACourse.compare.support":"Student support, accommodation and career services","intlStudents.findACourse.requirementsTitle":"Typical Entry Requirements for International Students","intlStudents.findACourse.requirementsIntro":"Every university sets its own requirements, and international qualifications are assessed against the level needed for the course. Depending on the programme, you may be asked for:","intlStudents.findACourse.requirements.certificates":"Academic certificates and transcripts","intlStudents.findACourse.requirements.passport":"A valid passport","intlStudents.findACourse.requirements.english":"Evidence of English-language ability","intlStudents.findACourse.requirements.personalStatement":"A personal statement or statement of purpose","intlStudents.findACourse.requirements.references":"Academic or professional references","intlStudents.findACourse.requirements.cv":"A CV for some postgraduate or professional courses","intlStudents.findACourse.requirements.portfolio":"A portfolio, audition, interview or admissions test for certain subjects","intlStudents.findACourse.requirements.experience":"Evidence of relevant work experience where required","intlStudents.findACourse.requirementsNote":"If your qualifications do not meet direct-entry requirements, a foundation, pre-master's or pre-sessional English programme may be available. Progression is subject to the provider's conditions.","intlStudents.findACourse.ieltsTitle":"Do You Need IELTS?","intlStudents.findACourse.ieltsP1":"IELTS is widely accepted, but it is not the only possible way to demonstrate English-language ability. Some universities accept other approved tests, specific school qualifications or evidence of previous study in English. The correct evidence depends on the university, course level and Student visa requirements.","intlStudents.findACourse.ieltsP2":"Always confirm the exact requirement before booking a test. Legal Connect UK can help you understand the options stated by your chosen institution, but the university and UK authorities make the final decisions.","intlStudents.findACourse.feesTitle":"UK Tuition Fees and Scholarships","intlStudents.findACourse.feesP1":"Tuition fees vary considerably by university, subject and level of study. As a broad guide checked in July 2026, Study UK lists international undergraduate fees from approximately £11,400 to £38,000 and postgraduate fees from approximately £9,000 to £30,000. Laboratory, clinical and specialist courses can cost more, and fees may change for each intake.","intlStudents.findACourse.feesP2":"Scholarships, bursaries and tuition-fee discounts may be available from universities, governments and external organisations. Eligibility can depend on nationality, academic achievement, subject, level of study or financial circumstances. Funding is competitive and cannot be guaranteed.","intlStudents.findACourse.budgetTitle":"Budget 
204carefully","intlStudents.findACourse.budgetText":"In addition to tuition fees, plan for accommodation, food, transport, travel, visa costs and healthcare charges. Student visa financial requirements are set separately by the UK government and should always be checked on GOV.UK before applying.","intlStudents.findACourse.locationsTitle":"Study Across the United Kingdom","intlStudents.findACourse.locationsP1":"International students can choose universities and colleges in England, Scotland, Wales and Northern Ireland. Your preferred location can affect course availability, tuition fees, accommodation costs, transport and lifestyle.","intlStudents.findACourse.locationsP2":"Popular student destinations include London, Birmingham, Manchester, Leeds, Liverpool, Nottingham, Leicester, Coventry, Glasgow, Edinburgh, Cardiff and Belfast. A smaller city or campus-based university may offer a different experience and budget from a major city, so compare the complete package rather than the location name alone.","intlStudents.findACourse.helpTitle":"How Legal Connect UK Can Help","intlStudents.findACourse.helpIntro":"Applying to study abroad involves more than choosing a course. Our international student support is designed to make the process clearer and more organised.","intlStudents.findACourse.helpLanguages":"We provide support in English and French, helping both Anglophone and Francophone applicants understand the process with greater confidence.","intlStudents.findACourse.support.assessment":"Initial eligibility assessment","intlStudents.findACourse.support.recommendations":"Personalised course and university recommendations","intlStudents.findACourse.support.entryRequirements":"Guidance on academic and English-language entry requirements","intlStudents.findACourse.support.application":"Application-form support","intlStudents.findACourse.support.personalStatement":"Personal-statement or statement-of-purpose guidance","intlStudents.findACourse.support.documentChecks":"Document checks before submission","intlStudents.findACourse.support.interviewPrep":"Interview and credibility-interview preparation","intlStudents.findACourse.support.scholarships":"Information about tuition fees and possible scholarships","intlStudents.findACourse.support.visa":"General Student visa process guidance and signposting","intlStudents.findACourse.support.accommodation":"Accommodation, pre-departure and arrival support","intlStudents.findACourse.journeyTitle":"Your UK University Application Journey","intlStudents.findACourse.journey.step1":"Tell us about your qualifications, preferred subject, budget, location and intake.","intlStudents.findACourse.journey.step2":"Receive a shortlist of suitable course and institution options based on the information available.","intlStudents.findACourse.journey.step3":"Prepare your academic, English-language and supporting documents.","intlStudents.findACourse.journey.step4":"After receiving an eligible offer, prepare for the next stages, which may include deposits, CAS requirements, a Student visa application, accommodation and travel.","intlStudents.findACourse.whyChooseTitle":"Why Choose Legal Connect UK?","intlStudents.findACourse.whyUs.personalised":"Personalised guidance rather than a one-size-fits-all course list","intlStudents.findACourse.whyUs.undergraduate":"Support for both undergraduate and postgraduate applicants","intlStudents.findACourse.whyUs.communication":"English and French communication","intlStudents.findACourse.whyUs.fullJourney":"Help from initial course search through to enrolment and arrival","intlStudents.findACourse.whyUs.clear":"Clear explanations of requirements, costs and next steps","intlStudents.findACourse.whyChooseNote":"No adviser can guarantee university admission, a scholarship, a CAS or a UK Student visa. These decisions are made by the relevant university, funding organisation or UK authority.","intlStudents.findACourse.ctaTitle":"Start Your UK Study Journey","intlStudents.findACourse.ctaDesc":"Your course choice can shape your education, career and international experience. Let Legal Connect UK help you explore realistic UK course options and prepare for the next step.","intlStudents.entryRequirements.seoTitle":"Entry Requirements | International Students | Legal Connect UK","intlStudents.entryRequirements.seoDescription":"Understand the academic and language entry requirements for UK universities.","intlStudents.entryRequirements.heroTitle":"Entry Requirements","intlStudents.entryRequirements.heroSubtitle":"International Students","intlStudents.entryRequirements.heroDesc":"Understand the academic and language entry requirements for UK universities.","intlStudents.entryRequirements.introTitle":"Meeting UK Entry Requirements","intlStudents.entryRequirements.introDesc":"Requirements vary by university and programme. We help you interpret grades, qualifications and prerequisites so you apply to the right courses.","intlStudents.entryRequirements.pointsTitle":"What Universities Typically Look At","intlStudents.entryRequirements.point1":"Academic transcripts and qualifications","intlStudents.entryRequirements.point2":"Recognition of international grades and equivalencie
204s","intlStudents.entryRequirements.point3":"English language proficiency","intlStudents.entryRequirements.point4":"Subject-specific prerequisites","intlStudents.entryRequirements.point5":"Personal statement and references","intlStudents.howToApply.seoTitle":"How to Apply to UK Universities | International Students | Legal Connect UK","intlStudents.howToApply.seoDescription":"Step-by-step guidance on applying to UK universities as an international student.","intlStudents.howToApply.heroTitle":"How to Apply","intlStudents.howToApply.heroSubtitle":"International Students","intlStudents.howToApply.heroDesc":"Step-by-step guidance on applying to UK universities as an international student.","intlStudents.howToApply.introTitle":"Your UK Application, Simplified","intlStudents.howToApply.introDesc":"From choosing courses to submitting UCAS or direct applications, we guide you through every stage of the process.","intlStudents.howToApply.pointsTitle":"Application Support","intlStudents.howToApply.point1":"UCAS undergraduate applications","intlStudents.howToApply.point2":"Direct postgraduate applications","intlStudents.howToApply.point3":"Personal statement guidance","intlStudents.howToApply.point4":"Reference letter support","intlStudents.howToApply.point5":"Deadline tracking and document checks","intlStudents.englishLanguageRequirements.seoTitle":"English Language Requirements | International Students | Legal Connect UK","intlStudents.englishLanguageRequirements.seoDescription":"IELTS, TOEFL, PTE and other accepted English tests for UK universities.","intlStudents.englishLanguageRequirements.heroTitle":"English Language Requirements","intlStudents.englishLanguageRequirements.heroSubtitle":"International Students","intlStudents.englishLanguageRequirements.heroDesc":"IELTS, TOEFL, PTE and other accepted English tests for UK universities.","intlStudents.englishLanguageRequirements.introTitle":"Proving Your English Level","intlStudents.englishLanguageRequirements.introDesc":"UK universities require proof of English proficiency. We help you understand accepted tests, minimum scores and pre-sessional options.","intlStudents.englishLanguageRequirements.pointsTitle":"Accepted Tests & Options","intlStudents.englishLanguageRequirements.point1":"IELTS Academic and IELTS UKVI","intlStudents.englishLanguageRequirements.point2":"TOEFL iBT","intlStudents.englishLanguageRequirements.point3":"PTE Academic","intlStudents.englishLanguageRequirements.point4":"Duolingo English Test (where accepted)","intlStudents.englishLanguageRequirements.point5":"Pre-sessional English programmes","intlStudents.tuitionFeesScholarships.seoTitle":"Tuition Fees & Scholarships | International Students | Legal Connect UK","intlStudents.tuitionFeesScholarships.seoDescription":"Understand tuition fees, living costs and available scholarships for international students.","intlStudents.tuitionFeesScholarships.heroTitle":"Tuition Fees & Scholarships","intlStudents.tuitionFeesScholarships.heroSubtitle":"International Students","intlStudents.tuitionFeesScholarships.heroDesc":"Understand tuition fees, living costs and available scholarships for international students.","intlStudents.tuitionFeesScholarships.introTitle":"Planning Your Study Budget","intlStudents.tuitionFeesScholarships.introDesc":"We explain typical international tuition fees, living costs and scholarship opportunities that can help fund your UK education.","intlStudents.tuitionFeesScholarships.pointsTitle":"Fees & Funding Guidance","intlStudents.tuitionFeesScholarships.point1":"Typical undergraduate and postgraduate fee ranges","intlStudents.tuitionFeesScholarships.point2":"Estimated living costs by UK city","intlStudents.tuitionFeesScholarships.point3":"University scholarships and bursaries","intlStudents.tuitionFeesScholarships.point4":"Government and Chevening-style awards","intlStudents.tuitionFeesScholarships.point5":"Payment plans and financial guarantee letters","intlStudents.studentVisaInformation.seoTitle":"UK Student Visa Information | International Students | Legal Connect UK","intlStudents.studentVisaInformation.seoDescription":"Guidance on the UK Student visa, CAS, financial requirements and timelines.","intlStudents.studentVisaInformation.heroTitle":"Student Visa Information","intlStudents.studentVisaInformation.heroSubtitle":"International Students","intlStudents.studentVisaInformation.heroDesc":"Guidance on the UK Student visa, CAS, financial requirements and timelines.","intlStudents.studentVisaInformation.introTitle":"Understanding the UK Student Visa","intlStudents.studentVisaInformation.introDesc":"Once you receive an offer and CAS, you can apply for a UK Student visa. We outline what you need to prepare a strong application. Immigration advice is provided by regulated partner solicitors.","intlStudents.studentVisaInformation.pointsTitle":"Key Areas We Cover","intlStudents.studentVisaInformation.point1":"CAS (Confirmation of Acceptance for Studies)","intlStudents.studentVisaInformation.point2":"Financial and maintenance requirements","intlStudents.studentVisaInformation.point3":"Tuberculosis test and required documents","intlStudents.studentVisaInformation.point4":"Biometric appointment and IHS payment","intlStudents.studentVisaInformation.point5":"Referral to regulated immigration advisers","intlStudents.accommodationInUK.seoTitle":"Student Accommodation in the UK | International Students | Legal Connect UK","intlStudents.accommodationInUK.seoDescription":"Guidance on university halls, private student housing and shared accommodation.","intlStudents.accommodationInUK.heroTitle":"Accommodation in the UK","intlStudents.accommodationInUK.heroSubtitle":"International Students","intlStudents.accommodationInUK.heroDesc":"Guidance on university halls, private student housing and shared accommodation.","intlStudents.accommodationInUK.introTitle":"Finding a Place to Live","intlStudents.accommodationInUK.introDesc":"From on-campus halls to private student housing, we help you understand your options and secure suitable accommodation for your studies.","intlStudents.accommodationInUK.pointsTitle":"Accommodation Options","intlStudents.accommodationInUK.point1":"University halls of residence","intlStudents.accommodationInUK.point2":"Purpose-built private student accommodation","intlStudents.accommodationInUK.point3":"Shared houses and flats","intlStudents.accommodationInUK.point4":"Homestay arrangements","intlStudents.accommodationInUK.point5":"Guidance on contracts and deposits","intlStudents.preDepartureSupport.seoTitle":"Pre-Departure Support | International Students | Legal Connect UK","intlStudents.preDepartureSupport.seoDescription":"Practical checklist and guidance before flying to the UK.","intlStudents.preDepartureSupport.heroTitle":"Pre-Departure Support","intlStudents.preDepartureSupport.heroSubtitle":"International Students","intlStudents.preDepartureSupport.heroDesc":"Practical checklist and guidance before flying to the UK.","intlStudents.preDepartureSupport.introTitle":"Getting Ready to Travel","intlStudents.preDepartureSupport.introDesc":"Before you fly, there is a lot to organise. Our pre-departure support helps you prepare with confidence.","intlStudents.preDepartureSupport.pointsTitle":"Pre-Departure Essentials","intlStudents.preDepartureSupport.point1":"Travel documents and visa checks","intlStudents.preDepartureSupport.point2":"Packing and UK climate guidance","intlStudents.preDepartureSupport.point3":"Money, bank accounts and initial expenses","intlStudents.preDepartureSupport.point4":"Health cover and vaccinations","intlStudents.preDepartureSupport.point5":"Arrival logistics and airport transfers","intlStudents.arrivalSettlingIn.seoTitle":"Arrival & Settling In | International Students | Legal Connect UK","intlStudents.arrivalSettlingIn.seoDescription":"Support with arrival, registration, banking and adjusting to life in the UK.","intlStudents.arrivalSettlingIn.heroTitle":"Arrival & Settling In","intlStudents.arrivalSettlingIn.heroSubtitle":"International Students","intlStudents.arrivalSettlingIn.heroDesc":"Support with arrival, registration, banking and adjusting to life in the UK.","intlStudents.arrivalSettlingIn.introTitle":"Your First Weeks in the UK","intlStudents.arrivalSettlingIn.introDesc":"We help you settle in smoothly with guid
204ance on registration, banking, transport and adjusting to student life.","intlStudents.arrivalSettlingIn.pointsTitle":"Settling In Support","intlStudents.arrivalSettlingIn.point1":"University enrolment and orientation","intlStudents.arrivalSettlingIn.point2":"Opening a UK bank account","intlStudents.arrivalSettlingIn.point3":"Getting a UK SIM and transport card","intlStudents.arrivalSettlingIn.point4":"Registering with a GP (doctor)","intlStudents.arrivalSettlingIn.point5":"Cultural adjustment and student communities","intlStudents.faqs.seoTitle":"International Student FAQs | International Students | Legal Connect UK","intlStudents.faqs.seoDescription":"Answers to common questions from international students considering the UK.","intlStudents.faqs.heroTitle":"International Student FAQs","intlStudents.faqs.heroSubtitle":"International Students","intlStudents.faqs.heroDesc":"Answers to common questions from international students considering the UK.","intlStudents.faqs.introTitle":"Common Questions, Clear Answers","intlStudents.faqs.introDesc":"Explore answers to the questions we hear most from international students planning to study in the UK.","intlStudents.faqs.pointsTitle":"Popular Topics","intlStudents.faqs.point1":"Choosing the right course and university","intlStudents.faqs.point2":"Application timelines and deadlines","intlStudents.faqs.point3":"Visa and financial requirements","intlStudents.faqs.point4":"Working while studying","intlStudents.faqs.point5":"Post-study opportunities and Graduate Route"},fr:{"nav.home":"Accueil","nav.ukStudents":"Étudiants UK","nav.internationalStudents":"Étudiants Internationaux","nav.aboutUs":"À Propos","nav.resources":"Ressources","nav.contactUs":"Contactez-nous","nav.blog":"Blog","nav.faqs":"FAQ","nav.ukStudentServices":"Services Étudiants UK","nav.studentFinance":"Financement Étudiant","nav.ucasSupport":"Aide UCAS","nav.studyInUK":"Étudier au Royaume-Uni","nav.visaGuidance":"Guide Visa","nav.accommodation":"Hébergement","nav.ourCourses":"Nos Cours","nav.ukCourses":"Cours","nav.admissionEligibility":"Éligibilité à l'Admission","nav.checkEligibility":"Demander une évaluation d'études","nav.ukFaqs":"FAQ","nav.intlFaqs":"FAQ","nav.studyConnectUK":"Study Connect UK","nav.studyConnectUKUkStudents":"Étudiants UK","nav.studyConnectUKIntlStudents":"Étudiants Internationaux","nav.immigrationServices":"Services d'Immigration","nav.immigrationVisaApplication":"Demande de Visa","nav.immigrationFamilyVisa":"Visa Familial","nav.immigrationAsylumRefugee":"Asile et Réfugié","nav.immigrationNationalityCitizenship":"Nationalité et Citoyenneté","nav.immigrationVisaExtension":"Prolongation de Visa","nav.immigrationAppealReview":"Recours et Révision","nav.immigrationOverstayers":"Sur-séjour","nav.immigrationEnquiry":"Demander une Consultation","nav.ukStudents.findACourse":"Cours","nav.ukStudents.studentFinanceFunding":"Financement et Aide","nav.ukStudents.flexibleStudyOptions":"Options d'Études Flexibles","nav.ukStudents.matureStudents":"Étudiants Matures","nav.ukStudents.faqs":"FAQ","nav.ukStudents.checkEligibility":"Demander une évaluation d'études","nav.intlStudents.whyStudyUK":"Pourquoi Étudier au Royaume-Uni ?","nav.intlStudents.findACourse":"Trouver un Cours","nav.intlStudents.tuitionFeesScholarships":"Frais de Scolarité et Bourses","nav.intlStudents.studentVisaInformation":"Informations Visa Étudiant","nav.intlStudents.accommodationInUK":"Logement au Royaume-Uni","nav.intlStudents.coteDivoire":"Étudier au Royaume-Uni depuis la Côte d'Ivoire","nav.intlStudents.faqs":"FAQ Étudiants Internationaux","nav.intlStudents.checkEligibility":"Demander une évaluation d'études","nav.intlStudents.packagesPrices":"Forfaits et Tarifs","ukStudents.findACourse.seoTitle":"Trouver un Cours | Étudiants UK | Legal Connect UK","ukStudents.findACourse.seoDescription":"Explorez les cours universitaires et collégiaux au Royaume-Uni avec Legal Connect UK. Trouvez le programme adapté à vos objectifs.","ukStudents.findACourse.heroTitle":"Trouver un Cours","ukStudents.findACourse.heroSubtitle":"Étudiants UK","ukStudents.findACourse.heroDesc":"Découvrez les cours au Royaume-Uni qui correspondent à vos ambitions, des licences aux qualifications professionnelles.","ukStudents.findACourse.introTitle":"Le Bon Cours pour Votre Avenir","ukStudents.findACourse.introDesc":"Nous aidons les étudiants UK à explorer et comparer les programmes universitaires et collégiaux au Royaume-Uni pour faire un choix éclairé.","ukStudents.findACourse.pointsTitle":"Comment Nous Soutenons Votre Recherche","ukStudents.findACourse.point1":"Recherche de cours de licence","ukStudents.findACourse.point2":"Options de master et de recherche","ukStudents.findACourse.point3":"Voies professionnelles et vocationnelles","ukStudents.findACourse.point4":"Guide de comparaison des universités","ukStudents.findACourse.point5":"Planification du calendrier de candidature","ukStudents.studentFinanceFunding.seoTitle":"Financement et Aide | Étudiants UK | Legal Connect UK","ukStudents.studentFinanceFunding.seoDescription":"Comprenez le financement étudiant au Royaume-Uni, les frais de scolarité, les prêts, les bourses et les aides avec Legal Connect UK.","ukStudents.studentFinanceFunding.heroTitle":"Financement et Aide","ukStudents.studentFinanceFunding.heroSubtitle":"Étudiants UK","ukStudents.studentFinanceFunding.heroDesc":"Conseils clairs sur les frais de scolarité, les prêts, les bourses et les aides disponibles pour les étudiants UK.","ukStudents.studentFinanceFunding.
204introTitle":"Financer Vos Études","ukStudents.studentFinanceFunding.introDesc":"Nous expliquons les principales options de financement étudiant au Royaume-Uni, de l'éligibilité aux dates limites et aux démarches.","ukStudents.studentFinanceFunding.pointsTitle":"Financement et Aide","ukStudents.studentFinanceFunding.point1":"Prêts pour frais de scolarité","ukStudents.studentFinanceFunding.point2":"Aide au coût de la vie","ukStudents.studentFinanceFunding.point3":"Bourses et aides non remboursables","ukStudents.studentFinanceFunding.point4":"Recherche de bourses","ukStudents.studentFinanceFunding.point5":"Rappels des dates limites","ukStudents.flexibleStudyOptions.seoTitle":"Options d'Études Flexibles | Étudiants UK | Legal Connect UK","ukStudents.flexibleStudyOptions.seoDescription":"Explorez les options d'études flexibles : en ligne, à temps partiel, à distance et blended pour les étudiants UK.","ukStudents.flexibleStudyOptions.heroTitle":"Options d'Études Flexibles","ukStudents.flexibleStudyOptions.heroSubtitle":"Étudiants UK","ukStudents.flexibleStudyOptions.heroDesc":"Étudiez de manière adaptée à votre travail, votre famille et votre mode de vie.","ukStudents.flexibleStudyOptions.contentTitle":"Apprentissage Flexible","ukStudents.flexibleStudyOptions.contentPara1":"Étudiez tout en continuant à travailler et à gérer vos autres engagements.","ukStudents.flexibleStudyOptions.contentPara2":"La plupart des cours sont conçus avec flexibilité et ne nécessitent une présence que deux jours par semaine. Selon le cours et l'établissement, des options de soir, de week-end, à temps partiel et en blended learning peuvent également être disponibles.","ukStudents.flexibleStudyOptions.contentPara3":"Avec Legal Connect UK, vous pouvez explorer des options d'études qui s'adaptent à votre travail, votre famille et votre mode de vie.","ukStudents.flexibleStudyOptions.disclaimer":"Les emplois du temps et les options d'études varient selon le cours et l'établissement.","ukStudents.flexibleStudyOptions.ctaTitle":"Trouver un Cours Flexible","ukStudents.flexibleStudyOptions.ctaDesc":"Parlez à Legal Connect UK pour explorer des cours flexibles qui s'adaptent à votre emploi du temps et à vos engagements.","ukStudents.flexibleStudyOptions.ctaButton":"Trouver un Cours Flexible","ukStudents.matureStudents.seoTitle":"Étudiants Matures | Étudiants UK | Legal Connect UK","ukStudents.matureStudents.seoDescription":"Soutien aux étudiants matures qui reprennent des études au Royaume-Uni : accès, financement, admission et accompagnement.","ukStudents.matureStudents.heroTitle":"Étudiants Matures","ukStudents.matureStudents.heroSubtitle":"Étudiants UK","ukStudents.matureStudents.heroDesc":"Accompagnement dédié aux adultes qui reprennent les études, de l'admission au financement et à la conciliation des engagements.","ukStudents.matureStudents.introTitle":"Reprendre les Études","ukStudents.matureStudents.introDesc":"Nous offrons des conseils pratiques aux étudiants matures, qu'il s'agisse d'une reconversion, d'une montée en compétences ou d'un projet de longue date.","ukStudents.matureStudents.pointsTitle":"Soutien aux Étudiants Matures","ukStudents.matureStudents.point1":"Cours d'accès et de préparation","ukStudents.matureStudents.point2":"Reconnaissance des acquis","ukStudents.matureStudents.point3":"Aménagements d'études flexibles","ukStudents.matureStudents.point4":"Conseils financement et garde d'enfants","ukStudents.matureStudents.point5":"Aide à la lettre de motivation","ukStudents.faqs.seoTitle":"FAQ Étudiants UK | Legal Connect UK","ukStudents.faqs.seoDescription":"Réponses aux questions fréquentes des étudiants UK sur les cours, le financement, les candidatures et les options d'études.","ukStudents.faqs.heroTitle":"FAQ Étudiants UK","ukStudents.faqs.heroSubtitle":"Étudiants UK","ukStudents.faqs.heroDesc":"Réponses rapides aux questions les plus fréquentes des étudiants UK sur les cours, le financement et les candidatures.","ukStudents.faqs.introTitle":"Questions Fréquentes","ukStudents.faqs.introDesc":"Trouvez des réponses claires aux questions les plus fréquentes des étudiants UK.","ukStudents.faqs.pointsTitle":"Sujets Populaires","ukStudents.faqs.point1":"Choisir le bon cours","ukStudents.faqs.point2":"Bases du financement étudiant","ukStudents.faqs.point3":"Dates limites de candidature","ukStudents.faqs.point4":"Options d'études flexibles","ukStudents.faqs.point5":"Soutien aux étudiants matures","immigration.pageDisclaimer":"Legal Connect UK fournit uniquement des services de conseil et d'accompagnement aux étudiants. Nous ne fournissons pas de conseils juridiques ou d'immigration réglementés. Lorsque de tels conseils sont nécessaires, les clients sont orientés vers des professionnels dûment réglementés autorisés à exercer au Royaume-Uni.","
204immigration.howWeHelp":"Comment Nous Pouvons Aider","immigration.visaApplication.seoTitle":"Soutien pour la Demande de Visa UK | Legal Connect UK","immigration.visaApplication.seoDescription":"Conseils experts pour les demandes de visa britannique, y compris les vérifications d'éligibilité, la préparation des documents et l'aide à la soumission.","immigration.visaApplication.heroTitle":"Soutien pour la Demande de Visa UK","immigration.visaApplication.heroSubtitle":"Services d'Immigration","immigration.visaApplication.heroDesc":"Conseils clairs et structurés pour préparer et soumettre votre demande de visa UK en toute confiance.","immigration.visaApplication.introTitle":"Accompagnement pour Votre Demande de Visa","immigration.visaApplication.introDesc":"Nous accompagnons les candidats dans le processus de demande de visa UK, en vous aidant à comprendre les exigences, rassembler les documents et aborder chaque étape avec clarté.","immigration.visaApplication.point1":"Évaluation d'Éligibilité","immigration.visaApplication.point2":"Préparation des Documents","immigration.visaApplication.point3":"Révision de la Demande","immigration.visaApplication.point4":"Prise de Rendez-vous","immigration.visaApplication.point5":"Suivi du Statut","immigration.visaApplication.point6":"Refus et Recours","immigration.familyVisa.seoTitle":"Guide Visa Familial UK | Legal Connect UK","immigration.familyVisa.seoDescription":"Soutien pour les demandes de visa familial incluant conjoint, partenaire, parent et enfant pour rejoindre un membre de famille au Royaume-Uni.","immigration.familyVisa.heroTitle":"Guide Visa Familial UK","immigration.familyVisa.heroSubtitle":"Services d'Immigration","immigration.familyVisa.heroDesc":"Aider les familles à naviguer le processus de visa familial UK avec des conseils clairs et un soutien pratique.","immigration.familyVisa.introTitle":"Réunir les Familles au Royaume-Uni","immigration.familyVisa.introDesc":"Nous fournissons des conseils sur les voies de visa familial UK, en vous aidant à comprendre l'éligibilité, les exigences de preuve et les étapes pour réunir les proches.","immigration.familyVisa.point1":"Visa Conjoint & Partenaire","immigration.familyVisa.point2":"Visa Parent & Enfant","immigration.familyVisa.point3":"Exigence Financière","immigration.familyVisa.point4":"Preuves de Relation","immigration.familyVisa.point5":"Soutien à la Candidature","immigration.familyVisa.point6":"Voies d'Installation","immigration.asylumRefugee.seoTitle":"Soutien Asile et Réfugié | Legal Connect UK","immigration.asylumRefugee.seoDescription":"Conseils sensibles pour les demandeurs d'asile et réfugiés, y compris les demandes de protection, la protection humanitaire et la réunification familiale.","immigration.asylumRefugee.heroTitle":"Soutien Asile et Réfugié","immigration.asylumRefugee.heroSubtitle":"Services d'Immigration","immigration.asylumRefugee.heroDesc":"Conseils compatissants et confidentiels pour ceux qui cherchent la protection au Royaume-Uni.","immigration.asylumRefugee.introTitle":"Protection et Soutien au Royaume-Uni","immigration.asylumRefugee.introDesc":"Nous offrons des informations claires et des voies de référencement pour les demandes d'asile, la protection humanitaire et la réunification familiale des réfugiés.","immigration.asylumRefugee.point1":"Demandes d'Asile","immigration.asylumRefugee.point2":"Protection Humanitaire","immigration.asylumRefugee.point3":"Réunification Familiale","immigration.asylumRefugee.point4":"Nouvelles Demandes","immigration.asylumRefugee.point5":"Soutien aux Recours","immigration.asylumRefugee.point6":"Référencements Sécurisés","immigration.nationalityCitizenship.seoT
204itle":"Nationalité et Citoyenneté Britannique | Legal Connect UK","immigration.nationalityCitizenship.seoDescription":"Conseils sur la citoyenneté britannique, la naturalisation, l'enregistrement et le droit de la nationalité.","immigration.nationalityCitizenship.heroTitle":"Nationalité et Citoyenneté Britannique","immigration.nationalityCitizenship.heroSubtitle":"Services d'Immigration","immigration.nationalityCitizenship.heroDesc":"Aider les personnes éligibles à comprendre et demander la citoyenneté britannique.","immigration.nationalityCitizenship.introTitle":"Votre Chemin vers la Citoyenneté Britannique","immigration.nationalityCitizenship.introDesc":"Nous fournissons des conseils clairs sur les voies de citoyenneté britannique, y compris la naturalisation, l'enregistrement et les cas complexes.","immigration.nationalityCitizenship.point1":"Naturalisation","immigration.nationalityCitizenship.point2":"Enregistrement d'Enfants","immigration.nationalityCitizenship.point3":"Citoyenneté par Descente","immigration.nationalityCitizenship.point4":"Bonne Moralité","immigration.nationalityCitizenship.point5":"Exigences de Résidence","immigration.nationalityCitizenship.point6":"Examens de Nationalité","immigration.visaExtension.seoTitle":"Soutien Prolongation de Visa UK | Legal Connect UK","immigration.visaExtension.seoDescription":"Soutien pour prolonger votre séjour au Royaume-Uni, y compris les prolongations de visa étudiant, les renouvellements de visa travail et les demandes FLR.","immigration.visaExtension.heroTitle":"Soutien Prolongation de Visa UK","immigration.visaExtension.heroSubtitle":"Services d'Immigration","immigration.visaExtension.heroDesc":"Vous aider à prolonger votre visa UK sans heurts et à temps.","immigration.visaExtension.introTitle":"Prolonger Votre Séjour au Royaume-Uni","immigration.visaExtension.introDesc":"Nous guidons les candidats dans les processus de prolongation et de renouvellement de visa, en vous aidant à respecter les délais et à soumettre une demande complète.","immigration.visaExtension.point1":"Prolongations Visa Étudiant","immigration.visaExtension.point2":"Renouvellements Visa Travail","immigration.visaExtension.point3":"Demandes FLR","immigration.visaExtension.point4":"Extensions pour Dépendants","immigration.visaExtension.point5":"Changement de Catégorie","immigration.visaExtension.point6":"Services Prioritaires","immigration.appealReview.seoTitle":"Recours et Révisions en Immigration UK | Legal Connect UK","immigration.appealReview.seoDescription":"Conseils pour contester les refus de visa, les appels en immigration, les révisions administratives et les recours judiciaires.","immigration.appealReview.heroTitle":"Recours et Révisions en Immigration UK","immigration.appealReview.heroSubtitle":"Services d'Immigration","immigration.appealReview.heroDesc":"Vous aider à comprendre vos options après un refus de visa ou une décision d'immigration.","immigration.appealReview.introTitle":"Contester une Décision d'Immigration","immigration.appealReview.introDesc":"Nous expliquons les procédures d'appel et de révision disponibles après un refus, en vous mettant en relation avec des professionnels réglementés lorsqu'une représentation juridique est nécessaire.","immigration.appealReview.point1":"Évaluation du Droit d'Appel","immigration.appealReview.point2":"Révisions Administratives","immigration.appealReview.point3":"Recours Judiciaires","immigration.appealReview.point4":"Représentation au Tribunal","immigration.appealReview.point5":"Stratégie de Nouvelle Candidature","immigration.appealReview.point6":"Préparation des Documents","immigrationEnquiry.seoTitle":"Demande de Services d'Immigration | Legal Connect UK","immigrationEnquiry.seoDescription":"Demandez une consultation en immigration via Legal Connect UK. Nous vous mettrons en relation avec un solicitor partenaire réglementé au Royaume-Uni.","immigrationEnquiry.heroTitle":"Demande de Services d'Immigration","immigrationEnquiry.heroSubtitle":"Services d'Immigration","immigrationEnquiry.subtitle":"Demander une Consultation en Immigration","immigrationEnquiry.requiredFields":"Les champs marqués d'un astérisque (*) sont obligatoires.","immigrationEnquiry.yourDetails":"Vos Coordonnées","immigrationEnquiry.fullName":"Nom complet","immigrationEnquiry.email":"Adresse e-mail","immigrationEnquiry.phone":"Numéro de téléphone ou WhatsApp","immigrationEnquiry.phonePlaceholder":"+44 7123 456789","immigrationEnquiry.contactMethod":"Moyen de contact préféré","immigrationEnquiry.preferredLanguage":"Langue préférée","immigrationEnquiry.nationality":"Nationalité","immigrationEnquiry.inUK":"Êtes-vous actuellement au Royaume-Uni ?","immigrationEnquiry.yes":"Oui","immigrationEnquiry.no":"Non","immigrationEnquiry.yourMatter":"Votre Affaire d'Immigration","immigrationEnquiry.assistanceRequired":"Quelle assistance demandez-vous ?","immigrationEnquiry.currentSituation":"Quelle est votre situation actuelle ?","immigrationEnquiry.importantDeadline":"Avez-vous une deadline importante ?","immigrationEnquiry.situationDescription":"Veuillez décrire brièvement votre situation","immigrationEnquiry.situationDescriptionHint":"Maximum 750 caractères.","immigrationEnquiry.situationDescriptionWarning":"Veuillez ne pas inclure de numéro de passeport, de coordonnées bancaires ou de documents confidentiels à ce stade.","immigrationEnquiry.privacyAndConsent":"Confidentialité et Consentement","immigrationEnquiry.privacyConsent":"J'ai lu l'Avis de Confidentialité et j'accepte que mes informations soient partagées en toute sécurité avec un solicitor partenaire indépendant et réglementé afin qu'il puisse répondre à ma demande.","immigrationEnquiry.legalDisclaimerConsent":"Je comprends que Legal Connect UK ne fournit pas de conseils en immigration ou en droit. Tout conseil ou représentation sera fourni séparément par un solicitor partenaire indépendant et réglementé selon ses propres conditions et honoraires.","immigrationEnquiry.marketingConsent":"J'aimerais recevoir des mises à jour sur l'immigration de Legal Connect UK par e-mail ou WhatsApp.","immigrationEnquiry.submit":"Demander Ma Consultation","immigrationEnquiry.submitting":"Envoi en cours...","immigrationEnquiry.success":"Merci","immigrationEnquiry.successMessage":"Votre demande a été soumise. Un solicitor partenaire réglementé vous contactera sous peu.","immigrationEnquiry.error":"Erreur","immigrationEnquiry.errorMessage":"Échec de l'envoi de votre demande. Veuillez réessayer.","immigrationEnquiry.rateLimit":"Vous avez atteint la limite de soumissions pour cette adresse e-mail. Veuillez réessayer demain.","immigrationEnquiry.selectOption":"Sélectionnez une option","immigrationEnquiry.importantNotice":"Soumettre ce formulaire ne crée pas de relation avocat-client et ne garantit pas que votre affaire sera acceptée.","immigrationEnquiry.contactMethod.whatsapp":"WhatsApp","immigrationEnquiry.contactMethod.telephone":"Téléphone","immigrationEnquiry.contactMethod.email":"E-mail","immigrationEnquiry.contactMethod.video":"Consultation vidéo","immigrationEnquiry.language.english":"Anglais","immigrationEnquiry.language.french":"Français","immigrationEnquiry.assistance.partnerFamilyVisa":"Visa conjoint ou familial","immigrationEnquiry.assistance.skilledWorker":"Visa travail qualifié ou autre visa travail","immigrationEnquiry.assistance.studentGraduate":"Visa étudiant ou diplômé","immigrationEnquiry.assistance.visitor":"Visa visiteur","immigrationEnquiry.assistance.settlement":"Installation ou Leave to Remain indéfini","immigrationEnquiry.assistance.citizenship":"Citoyenneté britannique","immigrationEnquiry.assistance.sponsor":"Licence sponsor ou immigration d'affaires","immigrationEnquiry.assistance.extension":"Prolongation de visa ou changement de voie","immigrationEnquiry.assistance.refusal":"Refus de visa, appel ou révision administrative","immigrationEnquiry.assistance.asylum":"Asile ou question des droits de l'homme","immigrationEnquiry.assistance.overstaying":"Sur-séjour ou absence de permission de séjour","immigrationEnquiry.assistance.other":"Autre","immigrationEnquiry.assistance.unsure":"Je ne suis pas sûr","immigrationEnquiry.situation.exploring":"J'explore mes options","immigrationEnquiry.situation.preparing":"Je prépare une demande","immigrationEnquiry.situation.submitted":"J'ai soumis une demande","immigrationEnquiry.situation.waiting":"J'attends une décision","immigrationEnquiry.situation.refused":"Ma demande a été refusée","immigrationEnquiry.situation.expireSoon":"Mon visa expire bientôt","immigrationEnquiry.situation.expired":"Mon visa a expiré ou j'ai peut-être dépassé le séjour","immigrationEnquiry.situation.urgent":"J'ai une deadline urgente avec le Home Office ou un appel","immigrationEnquiry.situation.unsure":"Je ne suis pas sûr","immigrationEnquiry.deadline.yes":"Oui","immigrationEnquiry.deadline.no":"Non","immigrationEnquiry.deadline.unsure":"Je ne suis pas sûr","immigration.overstayers.seoT
204itle":"Soutien Sur-séjour UK | Legal Connect UK","immigration.overstayers.seoDescription":"Conseils pour les personnes ayant dépassé leur visa UK, y compris options de régularisation, départ volontaire et orientation vers des professionnels réglementés.","immigration.overstayers.heroTitle":"Soutien Sur-séjour","immigration.overstayers.heroSubtitle":"Services d'Immigration","immigration.overstayers.heroDesc":"Conseils clairs et sans jugement pour les personnes ayant dépassé leur visa UK, pour comprendre les options et les prochaines étapes.","immigration.overstayers.introTitle":"Comprendre Vos Options Après un Sur-séjour","immigration.overstayers.introDesc":"Si votre visa UK a expiré, il est important d'agir rapidement et de comprendre les options disponibles. Nous fournissons des conseils généraux, expliquons les voies possibles et vous orientons vers des professionnels de l'immigration réglementés.","immigration.overstayers.point1":"Évaluation du Statut","immigration.overstayers.point2":"Options de Régularisation","immigration.overstayers.point3":"Conseils pour Départ Volontaire","immigration.overstayers.point4":"Orientation vers des Solicitors Réglementés","immigration.overstayers.point5":"Aide à la Préparation des Documents","immigration.overstayers.point6":"Planification des Prochaines Étapes","hero.title1":"Votre Passerelle de Confiance vers le Royaume-Uni","hero.title2":"","hero.ukStudents":"Étudiants UK","hero.internationalStudents":"Étudiants Internationaux","home.eyebrow":"Legal Connect UK","home.intro":"Un accompagnement clair et professionnel pour étudier au Royaume-Uni et gérer vos démarches d'immigration.","home.chooseRoute":"Choisissez votre parcours","home.studentSupport":"Accompagnement étudiant","home.immigrationSupport":"Accompagnement immigration","home.study.eyebrow":"Orientation académique","home.study.title":"Study Connect UK","home.study.desc":"Admissions universitaires, choix de formation et accompagnement des étudiants britanniques et internationaux.","home.study.cta":"Découvrir les options d'études","home.study.alt":"Des étudiants échangeant avec un conseiller en éducation","home.legal.eyebrow":"Accompagnement juridique réglementé","home.legal.title":"Services d'Immigration","home.legal.desc":"Conseils juridiques indépendants fournis par des solicitors partenaires réglementés par la Solicitors Regulation Authority.","home.legal.cta":"Parler à un solicitor","home.legal.alt":"Un solicitor en consultation avec des clients dans un cabinet","home.trust1":"Assistance en anglais et en français","home.trust2":"Options d'études dans tout le Royaume-Uni","home.trust3":"Partenaires juridiques réglementés","home.disclaimer":"Legal Connect UK n'est pas un cabinet d'avocats. Les conseils en immigration sont fournis de manière indépendante par des solicitors partenaires réglementés par la Solicitors Regulation Authority.","quick.eyebrow":"Comment nous pouvons vous aider","quick.title":"Trouvez la prochaine étape","quick.note":"Un accompagnement pratique, clairement organisé.","quick.study.title":"Étudier au Royaume-Uni","quick.study.desc":"Découvrez les universités, les formations et les parcours adaptés à vos objectifs.","quick.study.cta":"En savoir plus","quick.immigration.title":"Services d'Immigration","quick.immigration.desc":"Obtenez des conseils juridiques experts de nos solicitors partenaires réglementés.","quick.immigration.cta":"En savoir plus","quick.about.title":"À propos","quick.about.desc":"Découvrez comment nous relions les opportunités d'études à un accompagnement de confiance.","quick.about.cta":"À propos de nous","quick.contact.title":"Nous contacter","quick.contact.desc":"Besoin d'aide pour étudier au Royaume-Uni ou pour une question d'immigration ? Écrivez-nous.","quick.contact.cta":"Nous contacter","welcome.title1":"Bienvenue à","
204welcome.title2":"Legal Connect UK","welcome.desc":"Bienvenue chez Legal Connect ! Nous sommes spécialisés dans l'accompagnement des étudiants internationaux, en simplifiant les processus complexes. Notre objectif est de vous aider à naviguer dans votre nouvel environnement avec confiance. Avec un engagement fort envers l'excellence et l'intégrité, nous sommes votre partenaire de confiance. Embarquons ensemble dans cette aventure !","welcome.cta":"Découvrir","support.subtitle":"Accompagner Votre Parcours d'Études au Royaume-Uni","support.title":"Soutien aux Étudiants UK & Internationaux","support.desc":"Legal Connect UK aide les étudiants britanniques et internationaux à concrétiser leur ambition d'étudier au Royaume-Uni. Nous sommes une plateforme de conseil et d'accompagnement offrant des orientations claires sur les parcours éducatifs, le financement, les visas et l'installation.","support.whoTitle":"Qui Nous Accompagnons","support.who1Label":"Étudiants internationaux","support.who1Desc":"souhaitant étudier au Royaume-Uni et ayant besoin de conseils sur les admissions, les visas et l'installation","support.who2Label":"Étudiants britanniques","support.who2Desc":"explorant l'enseignement supérieur, les parcours flexibles et les options de financement étudiant","support.who3Label":"Étudiants à toute étape","support.who3Desc":"qui souhaitent des conseils clairs et fiables avant de prendre des décisions importantes","support.missionTitle":"Notre Mission","support.missionDesc":"Donner aux étudiants les moyens de réussir grâce à des conseils fiables, des connexions de confiance et des parcours clairs pour étudier, s'installer et réussir au Royaume-Uni.","services.admissions.title":"Aide aux Admissions","services.admissions.desc":"Des candidatures à l'inscription, nous fournissons un accompagnement structuré pour aider les étudiants à préparer leurs dossiers et comprendre chaque étape du processus d'admission.","services.visa.title":"Guide Visa Étudiant","services.visa.desc":"Nous accompagnons les étudiants internationaux avec des conseils clairs sur le processus de visa étudiant au Royaume-Uni, y compris les vérifications d'éligibilité et la préparation des documents.","services.finance.title":"Guide Financement Étudiant (UK)","services.finance.desc":"Nous guidons les étudiants britanniques à travers les options de financement, l'éligibilité et les parcours de financement, les aidant à comprendre le soutien disponible.","services.accommodation.title":"Hébergement & Installation","services.accommodation.desc":"Nous aidons les étudiants avec des conseils sur l'hébergement et un soutien pratique à l'installation, les préparant à la vie et aux études au Royaume-Uni.","services.course.title":"Guide Cours & Universités","services.course.desc":"Nous aidons les étudiants à choisir le bon cours et la bonne université, explorer les options d'études flexibles et accéder à des parcours alternatifs.","stats.successRate":"Taux de Réussite","stats.studentsSupported":"Étudiants Accompagnés","stats.countries":"Pays","stats.desc":"Approuvé par des étudiants de plus de 50 pays, Legal Connect UK a accompagné avec succès plus de 500 étudiants avec un taux de réussite de 98%. En collaboration avec des partenaires réglementés par l'IAA, nous offrons des conseils clairs et fiables.","studentServices.subtitle":"Services d'Accompagnement Étudiant","studentServices.title":"Là Pour Vous Aider à Chaque Étape","studentServices.ukTitle":"Services Étudiants UK","studentServices.intlTitle":"Services Étudiants Internationaux","studentServices.ukLink":"Services Étudiants UK →","studentServices.intlLink":"Services Étudiants Internationaux →","studentServices.uk1.title":"Étudiants UK","studentServices.uk1.desc":"Accompagnement des étudiants britanniques pour les candidatures universitaires et le financement","studentServices.uk2.title":"Guide Financement Étudiant","studentServices.uk2.desc":"Naviguez les prêts de frais de scolarité, prêts d'entretien et demandes de bourses avec un soutien expert.","studentServices.uk3.title":"Sélection Université & Cours","studentServices.uk3.desc":"Trouvez l'université et le programme parfaits selon vos notes, intérêts et objectifs de carrière.","studentServices.uk4.title":"Aide Candidature UCAS","studentServices.uk4.desc":"Accompagnement complet du processus 
204UCAS, déclarations personnelles et préparation aux entretiens.","studentServices.intl1.title":"Guide Études au UK","studentServices.intl1.desc":"Accompagnement complet du choix des universités à la compréhension des exigences académiques britanniques.","studentServices.intl2.title":"Candidature & Admissions","studentServices.intl2.desc":"Assistance experte pour les candidatures universitaires, déclarations personnelles et conditions d'entrée.","studentServices.intl3.title":"Accompagnement Pré-Départ","studentServices.intl3.desc":"Conseils sur l'hébergement, la banque, l'inscription aux soins de santé et l'installation au Royaume-Uni.","studentServices.intl4.title":"Bourses & Financement","studentServices.intl4.desc":"Découvrez les bourses et opportunités de financement pour les étudiants internationaux.","immigration.title":"Immigration & Soutien Juridique","immigration.subtitle":"En collaboration avec des professionnels juridiques réglementés","immigration.exploreVisa":"Explorer les Services Visa","immigration.disclaimer":"Important : Les conseils en immigration sont fournis par notre réseau de conseillers réglementés par l'IAA et de solicitors en immigration qualifiés.","immigration.partnerTitle":"Notre Réseau de Partenaires de Confiance","immigration.partnerSubtitle":"Nous collaborons avec des professionnels vérifiés pour garantir un soutien fiable","immigration.visa1.title":"Guide Visa Étudiant UK","immigration.visa1.desc":"Accompagnement expert pour les demandes de visa étudiant Tier 4, documentation et exigences de conformité.","immigration.visa2.title":"Visa Visiteur & Court Séjour","immigration.visa2.desc":"Assistance pour les visas d'études courtes et les visas visiteur pour les étudiants potentiels.","immigration.visa3.title":"Évaluation de Dossier Immigration","immigration.visa3.desc":"Examen complet de votre situation d'immigration avec des conseils clairs et pratiques.","immigration.visa4.title":"Préparation de Documents & Conformité","immigration.visa4.desc":"Vérification et préparation minutieuses des documents pour assurer la conformité de votre demande.","immigration.visa5.title":"Orientation vers des Solicitors Qualifiés","immigration.visa5.desc":"Mise en relation directe avec des solicitors en immigration réglementés pour les questions juridiques complexes.","immigration.partner1.title":"Universités & Institutions","immigration.partner1.desc":"Établissements éducatifs accrédités à travers le Royaume-Uni","immigration.partner2.title":"Hébergements","immigration.partner2.desc":"Propriétés vérifiées répondant aux normes de qualité","immigration.partner3.title":"Solicitors en Immigration","immigration.partner3.desc":"Professionnels agréés réglementés par les autorités britanniques","howItWorks.title":"Comment Ça Marche","howItWorks.step1.title":"Partagez Vos Besoins","howItWorks.step1.desc":"Parlez-nous de vos exigences en matière de visa, préférences d'hébergement et projets de voyage.","howItWorks.step2.title":"Trouvez Votre Expert","howItWorks.step2.desc":"Nous vous mettons en relation avec des professionnels vérifiés et des services adaptés à votre situation.","howItWorks.step3.title":"Commencez Votre Parcours","howItWorks.step3.desc":"Bénéficiez d'un soutien expert tout au long de votre processus, de la candidature à l'arrivée et au-delà.","howItWorks.cta":"Commencer Aujourd'hui","testimonials.title":"Ce Que Disent Nos Étudiants","videoTestimonials.subtitle":"Écoutez Nos Étudiants","videoTestimonials.title":"Témoignages Vidéo","visaSteps.subtitle":"Comment Nous Travaillons","visaSteps.title":"Étudiants Internationaux","visaSteps.step1.title":"Soumettre les Documents","visaSteps.step1.desc":"Parlez-nous de vos exigences de visa, préférences d'hébergement et plan de voyage.","visaSteps.step2.title":"Payer et Réserver un Rendez-vous","visaSteps.step2.desc":"Nous vous connectons avec des professionnels vérifiés et des services adaptés à votre situation.","visaSteps.step3.title":"Recevoir le Visa","visaSteps.step3.desc":"Recevez un s
204outien expert tout au long de votre processus, de la candidature à l'arrivée.","footer.contactUs":"Contactez-nous","footer.openingHours":"Horaires d'Ouverture","footer.openingHoursValue":"Lundi au Vendredi 9h - 17h","footer.location":"Adresse","footer.ourServices":"Nos Services","footer.intlStudentServices":"Services Étudiants Internationaux","footer.ukStudentServices":"Services Étudiants UK","footer.legalServices":"Services Juridiques","footer.quickLinks":"Liens Rapides","footer.home":"Accueil","footer.aboutUs":"À Propos","footer.privacyPolicy":"Politique de Confidentialité","footer.termsConditions":"Conditions Générales","footer.subscribe":"Abonnez-vous à Notre Newsletter","footer.subscribeBtn":"S'abonner","footer.disclaimer":"Avertissement :","footer.disclaimerText":"Legal Connect UK fournit uniquement des services de conseil et d'accompagnement aux étudiants. Nous ne fournissons pas de conseils juridiques ou d'immigration réglementés. Lorsque de tels conseils sont nécessaires, les clients sont orientés vers des professionnels dûment réglementés autorisés à exercer au Royaume-Uni.","footer.copyright":"Copyright 2024 © Tous Droits Réservés Legal-Connect UK","contact.title":"Contactez-nous","contact.subtitle":"Vous avez des questions ? Nous serions ravis de vous entendre. Envoyez-nous un message et nous vous répondrons dès que possible.","contact.getInTouch":"Nous Contacter","contact.phone":"Téléphone","contact.email":"E-mail","contact.location":"Adresse","contact.openingHours":"Horaires d'Ouverture","contact.sendMessage":"Envoyez-nous un Message","contact.yourName":"Votre Nom","contact.yourEmail":"Votre E-mail","contact.phoneNumber":"Numéro de Téléphone","contact.subject":"Sujet","contact.yourMessage":"Votre Message","contact.send":"Envoyer le Message","contact.thankYou":"Merci pour votre message ! Nous vous répondrons bientôt.","contact.introText":"Besoin d'aide pour étudier au Royaume-Uni ou pour une question d'immigration ? Remplissez le formulaire ci-dessous et notre équipe vous contactera.","about.title":"À Propos","about.aboutTitle":"À Propos de Legal Connect UK","about.whatWeDo":"Ce Que Nous Faisons","about.whoWeSupport":"Qui Nous Accompagnons","about.ourMission":"Notre Mission","about.ourApproach":"Notre Approche","about.whyChoose":"Pourquoi Choisir Legal Connect UK","about.readyTitle":"Prêt à Commencer Votre Parcours d'Études au UK ?","about.readyDesc":"Que vous exploriez vos options ou vous prépariez à postuler, nos conseillers sont là pour vous guider.","about.contactAdvisors":"Contacter Nos Conseillers","ukStudents.title":"Services Étudiants UK","ukStudents.subtitle":"Accompagnement des étudiants britanniques pour les candidatures universitaires, le financement et les parcours alternatifs.","ukStudents.finance.title":"Guide Financement Étudiant","ukStudents.finance.desc":"Naviguez les prêts de frais de scolarité, prêts d'entretien et demandes de bourses avec un soutien expert.","ukStudents.course.title":"Sélection Université & Cours","ukStudents.course.desc":"Trouvez l'université et le programme parfaits selon vos notes, intérêts et objectifs de carrière.","ukStudents.ucas.title":"Aide Candidature UCAS","ukStudents.ucas.desc":"Accompagnement complet du processus UCAS, déclarations personnelles et préparation aux entretiens.","ukStudents.apprenticeship.title":"Apprentissage & Parcours Alternatifs","ukStudents.apprenticeship.desc":"Explorez les apprentissages diplômants, années de fondation et parcours professionnels.","ukStudents.cta":"Commencer","ukStudents.heroTitle":"Débloquez Votre Avenir Et Votre VRAIE Carrière Avec un Diplôme","ukStudents.heroSubtitle":"Que Vous Ayez des Qualifications ou de l'Expérience Professionnelle ou Non","ukStudents.heroDesc":"La porte d'entrée pour réaliser vos rêves grâce à l'éducation. Faites le premier pas vers un avenir meilleur !","ukStudents.featuresTitle":"Accélérez Votre Avenir avec des Diplômes Flexibles Conçus Pour Vous","ukStudents.featuresSubtitle1":"Vous Cherchez à Démarrer ou Changer de Carrière ?","ukStudents.featuresSubtitle2":"Inscriptions universitaires flexibles en septembre, janvier, février et mai — commencez quand cela vous convient.","ukStudents.featuresDesc":"Nous rendons l'enseignement supérieur simple, flexible et accessible — quel que soit votre parcours ou votre point de départ.","ukStudents.feature1.emoji":"✅","ukStudents.feature1.title":"Inscrivez-vous en Toute Confiance","ukStudents.feature1.subtitle":"Conseillers en Admissions Experts","ukStudents.feature1.desc":"Notre équipe spécialisée vous aidera à choisir le bon cours, vous guidera dans le processus de candidature et sécurisera votre place pour la prochaine session — septembre, janvier, février ou mai.","ukStudents.feature2.emoji":"⏱","ukStudents.feature2.title":"Étudiez Selon Votre Rythme","ukStudents.feature2.subtitle":"Horaires de Cours Flexibles","ukStudents.feature2.desc":"Emploi du temps chargé ? Pas de problème. Avec seulement deux jours de cours par semaine, choisissez entre les sessions du matin, du soir ou du week-end — 
204conciliez facilement études, travail et famille.","ukStudents.feature3.emoji":"🙌","ukStudents.feature3.title":"Accompagnement Personnel dès le Premier Jour","ukStudents.feature3.subtitle":"Guidance Étudiante Complète","ukStudents.feature3.desc":"De votre déclaration personnelle et préparation aux entretiens jusqu'aux demandes de financement, nous vous accompagnons à chaque étape avec un interlocuteur unique.","ukStudents.feature4.emoji":"🎓","ukStudents.feature4.title":"Des Cours Alignés sur Vos Objectifs de Carrière","ukStudents.feature4.subtitle":"Options de Diplômes Axés sur la Carrière","ukStudents.feature4.desc":"Que vous envisagiez une carrière en Santé, Comptabilité & Finance, Informatique ou Gestion de Projet, nous vous aiderons à choisir le bon cours et à vous inscrire à la bonne session.","ukStudents.readyTitle":"🚀 Prêt à Commencer Votre Parcours ?","ukStudents.readyDesc":"Postulez maintenant et sécurisez votre place pour septembre, janvier, février ou mai.","ukStudents.startApplication":"Commencer Votre Candidature","ukStudents.testimonialsTitle":"Ce que disent les autres ?","intlStudents.title":"Services Étudiants Internationaux","intlStudents.subtitle":"Guider les étudiants internationaux à travers l'éducation, les visas et l'installation au Royaume-Uni avec clarté et confiance.","intlStudents.study.title":"Guide Études au UK","intlStudents.study.desc":"Accompagnement complet du choix des universités à la compréhension des exigences académiques britanniques.","intlStudents.application.title":"Candidature & Admissions","intlStudents.application.desc":"Assistance experte pour les candidatures universitaires, déclarations personnelles et conditions d'entrée.","intlStudents.preDeparture.title":"Accompagnement Pré-Départ","intlStudents.preDeparture.desc":"Conseils sur l'hébergement, la banque, l'inscription aux soins de santé et l'installation au Royaume-Uni.","intlStudents.scholarships.title":"Bourses & Financement","intlStudents.scholarships.desc":"Découvrez les bourses et opportunités de financement pour les étudiants internationaux.","intlStudents.visa.title":"Guide Visa","intlStudents.visa.desc":"Conseils clairs sur le processus de visa étudiant au UK, y compris les vérifications d'éligibilité et la préparation des documents.","intlStudents.settlement.title":"Aide à l'Installation","intlStudents.settlement.desc":"Assistance post-arrivée pour vous aider à vous installer dans la vie au Royaume-Uni en toute confiance.","intlStudents.cta":"Commencer","intlStudents.services":"Services","intlStudents.heroTitle":"Votre Parcours de Confiance pour Étudier au Royaume-Uni","intlStudents.heroDesc":"Legal Connect UK aide les étudiants internationaux à réussir leurs études au Royaume-Uni en fournissant un accompagnement clair et personnalisé à chaque étape — du choix du bon cours à l'obtention des offres universitaires, en passant par la compréhension des visas étudiants, la recherche d'hébergement et l'installation.","intlStudents.checkEligibility":"Demandez une évaluation d'études maintenant","intlStudents.section1.title":"Admissions Universitaires & Planification de Cours","intlStudents.section1.desc":"Choisir la bonne université et le bon cours est l'une des décisions les plus importantes que vous prendrez. Chez Legal Connect UK, nous guidons les étudiants internationaux à chaque étape du processus d'admission.","intlStudents.section1.point1":"Identifier les cours correspondant à votre parcours académique et vos objectifs de carrière","intlStudents.section1.point2":"Comprendre les conditions d'entrée et les critères d'éligibilité","intlStudents.section1.point3":"Préparer des candidatures solides et des documents justificatifs","intlStudents.section1.point4":"Soumettre les candidatures et suivre les résultats","intlStudents.section1.cta":"Trouvez le Bon Cours pour Vous","intlStudents.section2.title":"Guide & Soutien Visa Étudiant","intlStudents.section2.desc":"La plupart des étudiants internationaux ont besoin d'un visa étudiant UK avant de voyager. Legal Connect UK fournit un accompagnement structuré pour vous aider à vous préparer correctement.","intlStudents.section2.point1":"Comprendre l'éligibilité au visa étudiant","intlStudents.section2.point2":"Préparer les documents requis","intlStudents.section2.point3":"Accompagnement dans le processus de visa étudiant UK","intlStudents.section2.point4":"Explication de la lettre CAS","intlStudents.section2.point5":"Guide sur la Surcharge de Santé Immigration","intlStudents.section2.point6":"Vérifications de préparation à la candidature","intlStudents.section2.cta":"Demandez une évaluation d'études Visa Étudiant","intlStudents.section3.title":"Soutien Hébergement & Assistance Réservation","intlStudents.section3.desc":"Trouver un hébergement sûr et abordable est essentiel pour préparer vos études au UK.","intlStudents.section3.point1":"Comprendre les différentes options de logement (résidences, privé, colocation, studios)","intlStudents.section3.point2":"Guide hébergement économique","intlStudents.section3.point3":"Soutien à la préparation de réservation","intlStudents.section3.point4":"Conseils de sécurité et sensibilisation locative","
204intlStudents.section3.point5":"Ce à quoi s'attendre avant l'arrivée","intlStudents.section3.cta":"Obtenir de l'Aide pour Trouver un Hébergement","intlStudents.section4.title":"Guide d'Arrivée & Installation","intlStudents.section4.desc":"Arriver dans un nouveau pays peut sembler accablant — mais vous n'êtes pas seul.","intlStudents.section4.point1":"Préparation au voyage","intlStudents.section4.point2":"Guide d'arrivée à l'aéroport","intlStudents.section4.point3":"Ouverture d'un compte bancaire","intlStudents.section4.point4":"Inscription aux soins de santé","intlStudents.section4.point5":"Configuration du téléphone mobile","intlStudents.section4.point6":"S'installer dans la vie étudiante UK","intlStudents.section4.cta":"Préparez Votre Arrivée","intlStudents.whyTitle":"Pourquoi Choisir Legal Connect UK ?","intlStudents.why1":"Accompagnement centré sur l'étudiant, adapté à vos objectifs","intlStudents.why2":"Soutien clair étape par étape de la candidature à l'arrivée","intlStudents.why3":"Assistance pour les admissions, visas, hébergement et installation","intlStudents.why4":"Un conseiller dédié tout au long de votre parcours","intlStudents.why5":"Soutien transparent et conforme","intlStudents.pricing.eyebrow":"Formules d’accompagnement étudiant","intlStudents.pricing.title":"Nos Services & Tarifs","intlStudents.pricing.intro":"Choisissez l’accompagnement adapté à vos besoins. Toutes les formules font l’objet d’un paiement unique, avec un périmètre convenu avant le début de la prestation.","intlStudents.pricing.exVat":"Tarif hors TVA","intlStudents.pricing.incVat":"Total TVA de 20 % comprise","intlStudents.pricing.incVatShort":"TVA comprise","intlStudents.pricing.free":"Gratuit","intlStudents.pricing.enquire":"Demander cette formule","intlStudents.pricing.applicationReview.name":"Révision de candidature","intlStudents.pricing.applicationReview.included":"Révision d’une candidature universitaire, liste de contrôle des documents académiques et une série de commentaires avant soumission.","intlStudents.pricing.managedApplications.name":"Candidatures gérées","intlStudents.pricing.managedApplications.included":"Accompagnement pour jusqu’à trois candidatures universitaires pour une rentrée, deux séries de révisions et des points d’avancement planifiés pendant la période convenue.","intlStudents.pricing.premiumSupport.name":"Accompagnement étudiant Premium","intlStudents.pricing.premiumSupport.included":"Tout ce qui est inclus dans Candidatures gérées, plus deux rendez-vous de préparation et d’arrivée, des informations générales sur le logement et un accompagnement planifié pendant 30 jours après l’arrivée.","intlStudents.pricing.initialConversation.name":"Conversation initiale","intlStudents.pricing.initialConversation.included":"Une conversation introductive de 15 à 20 minutes pour discuter de vos besoins et expliquer nos services.","intlStudents.pricing.studyPlanning.name":"Planification des études","intlStudents.pricing.studyPlanning.included":"Un rendez-vous de 45 minutes sur les choix de cours et les conditions académiques d’admission, suivi d’un court plan d’action.","intlStudents.pricing.immigrationName":"Mise en relation avec un partenaire en immigration","intlStudents.pricing.immigrationLabel":"Mise en relation gratuite — honoraires de conseil professionnel indiqués séparément.","intlStudents.pricing.immigrationIncluded":"Mise en relation avec un professionnel de l’immigration dûment réglementé. Ses honoraires de conseil et de représentation sont indiqués séparément.","intlStudents.pricing.beforeBook":"Avant de réserver","intlStudents.pricing.noteVat":"TVA : les totaux TVA comprise utilisent le taux standard de 20 %. La TVA applicable et le prix final seront confirmés avant paiement.","intlStudents.pricing.noteExternal":"Frais externes : les frais de candidature universitaire, les frais de scolarité, de visa, la surcharge de santé, les traductions, le voyage et le logement sont séparés.","intlStudents.pricing.noteAdditional":"Accompagnement supplémentaire : les candidatures, rendez-vous ou séries de révisions supplémentaires sont chiffrés et convenus avant le début de la prestation.","intlStudents.pricing.noteUpgrades":"Changement de formule : tout montant déjà payé pour la Planification des études sera déduit d’une formule d’accompagnement étudiant supérieure pour la même rentrée.","intlStudents.pricing.noteOutcomes":"Résultats : les décisions d’admission universitaire et de visa relèvent des établissements et autorités concernés et ne peuvent être garanties.","intlStudents.pricing.scopeDisclaimer":"Legal Connect UK fournit des services de conseil et d’accompagnement aux étudiants. Les conseils juridiques et d’immigration réglementés sont fournis indépendamment par des professionnels dûment réglementés.","visaServices.heroSubtitle":"Immigration & Soutien Juridique","visaServices.heroTitle":"Nos Partenaires Immigration","visaServices.heroDesc":"Des avocats en immigration experts prêts à simplifier votre processus d'immigration, vous donnant les meilleures chances de succès.","visaServices.introTitle":"Un Accompagnement Sur Mesure à Chaque Étape","visaServices.introDesc1":"Chez Legal Connect Partners, nos avocats experts en immigration sont là pour simplifier votre processus d'immigration, vous donnant les meilleures chances de succès. Que vou
204s souhaitiez visiter, vivre ou prolonger votre séjour au Royaume-Uni, nos conseillers spécialisés sont prêts à vous accompagner.","visaServices.introDesc2":"Lorsque vous choisissez nos services, vous serez jumelé à un avocat en immigration qui comprend vos besoins personnels et professionnels. Votre avocat dédié travaillera étroitement avec vous pour évaluer votre éligibilité, clarifier vos objectifs et vous guider à chaque étape de votre demande.","visaServices.whyTitle":"Pourquoi Nous Choisir ?","visaServices.why1.title":"Solicitors en Immigration Fiables & Expérimentés","visaServices.why1.desc":"Nos partenaires sont des avocats en immigration hautement qualifiés et expérimentés qui se soucient véritablement de votre avenir.","visaServices.why2.title":"Réglementés par l'IAA","visaServices.why2.desc":"Nos avocats en immigration UK sont pleinement réglementés par l'Autorité des Conseils en Immigration (IAA), garantissant les plus hauts standards de service juridique et de professionnalisme.","visaServices.howTitle":"Comment Nous Pouvons Aider","visaServices.howDesc":"Nos avocats en immigration se spécialisent dans un large éventail de questions d'immigration UK, y compris les visas, la nationalité et les demandes d'asile. Nous avons représenté des clients dans de nombreux cas complexes avec des résultats réussis.","visaServices.help1":"Demandes de Visa","visaServices.help2":"Visas Familiaux","visaServices.help3":"Asile & Réfugié","visaServices.help4":"Nationalité & Citoyenneté","visaServices.help5":"Extensions de Visa","visaServices.help6":"Appel & Révision","visaServices.howFooter":"Laissez-nous vous aider à naviguer les complexités du système d'immigration UK en toute confiance.","visaServices.disclaimer":"Avertissement : Legal Connect UK fournit uniquement des services de conseil et d'accompagnement aux étudiants et ne fournit pas de conseils juridiques ou d'immigration réglementés. Les clients sont orientés vers des professionnels juridiques réglementés autorisés à exercer au Royaume-Uni.","visaGuidance.heroSubtitle":"Étudiants Internationaux","visaGuidance.heroTitle":"Demander un Visa Étudiant UK","visaGuidance.heroDesc":"La plupart des étudiants internationaux ont besoin d'un visa étudiant pour étudier au UK. Vérifiez toujours le site officiel du gouvernement UK pour confirmer si un visa est requis selon votre nationalité et la durée de votre cours.","visaGuidance.checkEligibility":"Demandez une évaluation d'études","visaGuidance.validityTitle":"Validité du Visa","visaGuidance.validityDesc":"Un visa étudiant UK vous permet de vivre et étudier au UK pendant toute la durée de votre cours, à condition de continuer à respecter les conditions du visa.","visaGuidance.whoTitle":"Qui a Besoin d'un Visa Étudiant UK ?","visaGuidance.whoDesc":"Vous aurez généralement besoin d'un visa étudiant si :","visaGuidance.who1":"Vous avez 16 ans ou plus","visaGuidance.who2":"Votre cours dure plus de six mois","visaGuidance.who3":"
204Vous étudiez dans un établissement d'enseignement approuvé par le UK","visaGuidance.feeNote":"Les frais standard de demande de visa étudiant sont de","visaGuidance.feeNote2":"Des services prioritaires sont disponibles à un coût supplémentaire.","visaGuidance.howTitle":"Comment Demander Votre Visa Étudiant","visaGuidance.howDesc":"Suivez ces étapes pour préparer et soumettre votre demande de visa étudiant.","visaGuidance.step1.title":"Postuler et Recevoir une Offre Inconditionnelle","visaGuidance.step1.desc":"Postulez à l'université ou au collège de votre choix et recevez une offre inconditionnelle pour votre cours.","visaGuidance.step2.title":"Recevoir Votre Confirmation d'Acceptation pour Études (CAS)","visaGuidance.step2.desc":"Une fois votre offre acceptée, votre institution émettra un CAS. Certaines institutions peuvent facturer des frais d'administration CAS (cela varie selon le fournisseur).","visaGuidance.step3.title":"Soumettre Votre Demande de Visa Étudiant","visaGuidance.step3.desc":"Vous pouvez faire votre demande de visa étudiant jusqu'à 6 mois avant la date de début de votre cours.","visaGuidance.step3.detail1":"Votre numéro de référence CAS","visaGuidance.step3.detail2":"Un passeport valide","visaGuidance.step3.detail3":"Payer les frais de demande de visa de £490","visaGuidance.step3.note":"Ressortissants UE/EEE : Vous pourrez peut-être vérifier votre identité via l'application UK Immigration: ID Check, plutôt que de vous rendre dans un centre de visa.","visaGuidance.step4.title":"Payer la Surcharge de Santé Immigration (IHS)","visaGuidance.step4.desc":"Si votre cours dure plus de six mois, vous devez payer la Surcharge de Santé Immigration (IHS) dans le cadre de votre demande.","visaGuidance.step4.detail1":"£776 par an de séjour accordé","visaGuidance.step4.detail2":"£388 pour les cours d'une durée de 1 à 6 mois","visaGuidance.step4.note":"La plupart des étudiants doivent payer l'IHS quelle que soit leur nationalité. Détenir un CEAM ne supprime normalement pas l'exigence IHS pour les titulaires de visa étudiant.","visaGuidance.step5.title":"Satisfaire aux Exigences de Langue Anglaise (si requis)","visaGuidance.step5.desc":"Certains étudiants doivent fournir une preuve de compétence en anglais. Votre université confirmera les preuves requises (le cas échéant).","visaGuidance.step6.title":"Compléter Votre Demande Avant de Voyager","visaGuidance.step6.desc":"Assurez-vous que votre visa est accordé avant de voyager au UK. N'arrivez pas au UK tant que votre demande n'a pas été approuvée.","visaGuidance.ihsNote":"Payer l'IHS vous donne accès au","visaGuidance.ihsNHS":"Service National de Santé (NHS)","visaGuidance.ihsNote2":"du Royaume-Uni pendant votre séjour.","visaGuidance.disclaimerTitle":"Avertissement Important","visaGuidance.disclaimerText":"Legal Connect UK fournit uniquement des services de conseil et d'accompagnement aux étudiants. Nous ne fournissons pas de conseils juridiques ou d'immigration réglementés. Les étudiants sont orientés vers des professionnels réglementés autorisés à exercer au Royaume-Uni.","accommodation.heroSubtitle":"Étudiants Internationaux","accommodation.heroTitle":"Assistance à la Réservation d'Hébergement","accommodation.heroDesc":"Trouver le bon logement est une partie importante de votre parcours étudiant — et nous sommes là pour le rendre simple et sans stress.","accommodation.heroCta":"Obtenir de l'Aide pour Trouver un Hébergement","accommodation.introDesc":"Chez Legal Connect, nous vous aidons à sécuriser un hébergement adapté à votre budget, votre style de vie et vos préférences personnelles, afin que vous puissiez vous installer confortablement et vous concentrer sur vos études dès le premier jour.","accommodation.optionsTitle":"Options d'Hébergement pour Chaque Étudiant","accommodation.optionsSubtitle":"Nous travaillons avec un large éventail de fournisseurs d'hébergement, offrant :","accommodation.option1.title":"Logement Étudiant Économique","accommodation.option1.desc":"Logement sûr, confortable et bien situé conçu pour les étudiants avec un budget limité.","accommodation.option2.title":"Hébergement Exécutif & Premium","accommodation.option2.desc":"Confort supplémentaire et équipements modernes pour les étudiants recherchant un niveau de vie supérieur.","accommodation.optionsNote":"Chaque option est soigneusement sélectionnée pour répondre aux normes de qualité et de sécurité.","accommodation.infoTitle":"Informations Claires, Choix Confiants","accommodation.infoDesc":"Nous fournissons des détails clairs sur chaque option d'hébergement, vous aidant à prendre une décision éclairée en toute confiance.","accommodation.info1":"Emplacement et distance du campus","accommodation.info2":"Liaisons de transport en commun","accommodation.info3":"Équipements et installations","accommodation.info4":"Durée du contrat et conditions clés","accommodation.locationTitle":"L'Emplacement Compte","accommodation.locationDesc":"Nous vous aidons à trouver un hébergement proche de votre campus avec de bonnes liaisons de transport, pour un trajet quotidien facile et pratique.","accommodation.bookingTitle":"Aide à la Réservation & Paperasse","accommodation.bookingDesc":"Nous vous assistons dans le processus de réservation et les formalités d'hébergement, vous aidant à comprendre les contrats et baux clairement avant de vous engager. Notre objectif est d'éliminer la confusion et de tout gérer en douceur.","accommodation.ongoingTitle":"Soutien Continu","accommodation.ongoingDesc":"De votre première demande à la sécurisation de votre hébergement, notre équipe offre un soutien personnalisé et continu pour rendre votre transition vers la vie étudiante au
204ssi fluide que possible.","courses.heroTitle":"Nos Cours","courses.heroDesc":"Explorez notre large gamme de cours diplômants conçus pour les étudiants UK. Horaires flexibles, inscriptions multiples et apprentissage axé sur la carrière.","courses.learnMore":"En savoir plus","courses.notFound":"Vous ne trouvez pas ce que vous cherchez ? Contactez-nous et nous vous aiderons à trouver le bon cours.","courses.startApplication":"Commencer Votre Candidature","eligibility.heroSubtitle":"Commencer","eligibility.heroTitle":"Demander une évaluation d'études","eligibility.breadcrumb":"Demander une évaluation d'études","application.heroSubtitle":"Services","application.heroTitle":"Commencer Votre Candidature","application.breadcrumb":"Commencer Votre Candidature","application.fullName":"Nom Complet","application.phone":"Téléphone","application.email":"E-mail","application.settlement":"Statut de Résidence","application.select":"Sélectionner","application.studiedUK":"Avez-vous étudié dans une université UK pendant 2 ans ou plus ?","application.livedUK":"Avez-vous vécu au UK pendant 3 ans ou plus ?","application.postalCode":"Code Postal","application.city":"Ville","application.consent":"En entrant vos informations, vous consentez à ce que vos données soient sauvegardées conformément à nos","application.terms":"conditions","application.privacy":"politique de confidentialité","application.submit":"Soumettre","application.thankYou":"Merci ! Votre candidature a été soumise. Nous vous contacterons bientôt.","application.yes":"Oui","application.no":"Non","application.british":"Britannique","application.european":"Européen","application.settled":"Établi (Autorisation de Séjour Indéfinie - ILR)","application.leaveToRemain":"Autorisation de Séjour","application.refugee":"Réfugié","application.studentVisa":"Visa Étudiant","form.contactWithUs":"Contactez-nous.","form.letsTalk":"Parlons-en","form.name":"Nom","form.email":"E-mail","form.phoneWhatsApp":"Téléphone / WhatsApp","form.studentTypeQuestion":"Êtes-vous un étudiant UK ou international ?","form.ukStudent":"Étudiant UK","form.internationalStudent":"Étudiant International","form.supportQuestion":"De quel soutien avez-vous besoin ?","form.support1":"Orientation Cours & Université","form.support2":"Guide Visa Étudiant","form.support3":"Financement Étudiant","form.support4":"Soutien Hébergement","form.support5":"Pas encore sûr","form.situationLabel":"Décrivez brièvement votre situation","form.situationOptional":"(Optionnel mais encouragé)","form.submit":"Soumettre","form.chatWhatsApp":"Discuter sur WhatsApp","form.whatsappDefaultMessage":"Bonjour, je souhaite prendre rendez-vous pour une consultation avec Legal Connect UK.","form.fullName":"Nom complet","form.emailAddress":"Adresse e-mail","form.phoneWhatsAppNumber":"Numéro de téléphone / WhatsApp","form.phonePlaceholder":"Inclure l'indicatif du pays","form.whichService":"De quel service avez-vous besoin ?","form.serviceStudyConnect":"Services Study Connect","form.serviceImmigration":"Services d'Immigration","form.serviceBoth":"Les deux services","form.helpTopic":"Avec quoi pouvons-nous vous aider ?","form.helpTopicUniCourse":"Candidature universitaire ou de cours","form.helpTopicStudentFinance":"Financement et bourses d'études","form.helpTopicStudentVisa":"Visa étudiant","form.helpTopicVisaExtension":"Demande ou prolongation de visa","form.helpTopicFamilyVisa":"Visa conjoint ou familial","form.helpTopicSettlement":"Installation ou citoyenneté britannique","form.helpTopicOverstayer":"Sur-séjour ou affaire d'immigration complexe","form.helpTopicOther":"Autre","form.helpTopicPlaceholder":"Sélectionnez une option","form.describeEnquiry":"Décrivez brièvement votre demande","form.privacyConsent":"J'accepte d'être contacté concernant ma demande et j'accepte la","form.privacyPolicyLink":"Politique de Confidentialité","form.privacyConsentRequired":"Veuillez accepter la Politique de Confidentialité avant de soumettre.","form.studentTypeRequired":"Veuillez indiquer si vous êtes un étudiant UK ou international.","form.supportRequired":"Veuillez sélectionner au moins un type d'accompagnement.","form.submitYourEnquiry":"Soumettre votre demande","admissionEligibility.heroSubtitle":"Services","admissionEligibility.heroTitle":"Vérifier l'Éligibilité à l'Admission","admissionEligibility.heroDesc":"Faites évaluer immédiatement votre éligibilité à l'admission par des conseillers universitaires qualifiés. Test gratuit pour les offres universitaires.","admissionEligibility.checkNow":"Demandez une évaluation d'études","admissionEligibility.stat1":"Succès Visa","admissionEligibility.stat2":"Années d'Expérience","admissionEligibility.stat3":"Avis 5 Étoiles","admissionEligibility.academicTitle":"Exigences Aca
204démiques","admissionEligibility.academic.foundation":"Foundation","admissionEligibility.academic.foundationReq":"Certificat d'études secondaires / O Levels","admissionEligibility.academic.bachelors":"Licence","admissionEligibility.academic.bachelorsReq":"Certificat minimum d'études secondaires supérieures (certains pays peuvent exiger une qualification supérieure)","admissionEligibility.academic.masters":"Master","admissionEligibility.academic.mastersReq":"Diplôme de licence minimum","admissionEligibility.academic.doctorate":"Doctorat","admissionEligibility.academic.doctorateReq":"Diplôme de master ou qualification supérieure","admissionEligibility.englishTitle":"Exigences de Compétence en Anglais","admissionEligibility.english.foundation":"Foundation","admissionEligibility.english.foundationReq":"IELTS pour UKVI score global minimum de 5.0 sans composante en dessous de 4.0","admissionEligibility.english.bachelors":"Licence","admissionEligibility.english.bachelorsReq":"IELTS score global minimum de 5.5 avec minimum 5.5 dans toutes les composantes","admissionEligibility.english.masters":"Master","admissionEligibility.english.mastersReq":"IELTS score global minimum de 6.0 avec minimum 5.5 dans toutes les composantes","admissionEligibility.english.doctorate":"Doctorat","admissionEligibility.english.doctorateReq":"IELTS score global minimum de 6.5 avec minimum 5.5 dans toutes les composantes","admissionEligibility.tuitionTitle":"Frais de Scolarité","admissionEligibility.tuitionDesc":"Fourchettes de frais de scolarité (approximatives) :","admissionEligibility.tuition.foundation":"Foundation","admissionEligibility.tuition.bachelors":"Licence","admissionEligibility.tuition.masters":"Master","admissionEligibility.tuition.doctorate":"Doctorat / PhD","admissionEligibility.fundsTitle":"Exigences de Fonds Bancaires","admissionEligibility.fundsDesc":"Exigences de preuve de fonds pour le visa étudiant (pour les demandes à partir du 11 nov 2025) :","admissionEligibility.fundsLondon":"Londres","admissionEligibility.fundsOutside":"Hors Londres","admissionEligibility.fundsNote":"Plus le solde des frais de scolarité tel qu'indiqué sur votre CAS.","admissionEligibility.ctaTitle":"Prêt à Demander une évaluation d'études ?","admissionEligibility.ctaDesc":"Faites évaluer immédiatement votre éligibilité à l'admission par nos conseillers universitaires qualifiés.","gradRecruit.title":"Recrutement de Diplômés","gradRecruit.subtitle":"Transformez Votre Diplôme en Carrière","gradRecruit.desc1":"L'obtention d'un diplôme est une réalisation majeure — mais l'étape suivante est tout aussi importante : décrocher la bonne opportunité de carrière.","gradRecruit.desc2":"Chez Legal Connect, nous allons au-delà de l'aide aux étudiants pour entrer dans les universités britanniques. Nous accompagnons également les diplômés dans leur transition de l'éducation à l'emploi, en connectant des personnes talentueuses avec des employeurs recherchant activement des diplômés qualifiés à travers le Royaume-Uni.","gradRecruit.desc3":"Notre service de recrutement de diplômés comble le fossé entre la formation universitaire et les opportunités professionnelles, aidant les diplômés à faire leurs premiers pas dans le monde du travail en toute confiance.","gradRecruit.cta":"Explorer le Recrutement","gradPage.heroTitle":"Recrutement de Diplômés","gradPage.heroSubtitle":"Transformez Votre Diplôme en Carrière","gradPage.intro1":"L'obtention d'un diplôme universitaire est une réalisation majeure — mais l'étape suivante est tout aussi importante : décrocher la bonne opportunité de carrière.","gradPage.intro2":"Que vous soyez un diplômé britannique entrant sur le marché du travail ou un étudiant international souhaitant construire votre carrière au Royaume-Uni, naviguer parmi les opportunités pour diplômés peut être un défi.","gradPage.intro3":"Chez Legal Connect, nous aidons les diplômés à franchir l'étape suivante en connectant des candidats talentueux avec des employeurs recrutant activement à travers le Royaume-Uni.","gradPage.intro4":"Notre service de recrutement de diplômés est conçu pour aider les di
204plômés britanniques et internationaux à réussir leur transition de l'université au monde professionnel.","gradPage.jobsTitle":"Emplois pour Diplômés au Royaume-Uni","gradPage.jobsDesc":"De nombreuses organisations au Royaume-Uni recrutent activement des diplômés apportant de solides bases académiques, des perspectives nouvelles et des compétences précieuses. Legal Connect travaille avec des diplômés cherchant des opportunités dans des secteurs incluant :","gradPage.jobsFooter":"Grâce à notre réseau d'employeurs, nous aidons les candidats à accéder à des postes de premier emploi, des stages et des programmes pour diplômés à travers le Royaume-Uni.","gradPage.sector1":"Commerce et Gestion","gradPage.sector2":"Finance et Comptabilité","gradPage.sector3":"Technologie et Analyse de Données","gradPage.sector4":"Ingénierie","gradPage.sector5":"Santé et Sciences de la Vie","gradPage.sector6":"Marketing et Médias Numériques","gradPage.sector7":"Droit et Services Juridiques","gradPage.sector8":"Éducation et Enseignement","gradPage.sector9":"Hôtellerie et Tourisme","gradPage.sector10":"Architecture et Construction","gradPage.sector11":"Médias et Communications","gradPage.sector12":"Ressources Humaines","gradPage.sector13":"Chaîne d'Approvisionnement et Logistique","gradPage.sector14":"Sciences de l'Environnement et Développement Durable","gradPage.sector15":"Pharmaceutique et Biotechnologie","gradPage.sector16":"Arts Créatifs et Design","gradPage.sector17":"Secteur Public et Gouvernement","gradPage.sector18":"Commerce de Détail et E-Commerce","gradPage.supportTitle":"Comment Legal Connect Accompagne les Diplômés","gradPage.supportDesc":"Trouver votre premier emploi après l'université peut sembler accablant. Legal Connect fournit un soutien pratique pour aider les diplômés à avancer avec confiance.","gradPage.supportServicesTitle":"Nos services incluent :","gradPage.service1":"Optimisation professionnelle du CV et LinkedIn","gradPage.service2":"Préparation aux entretiens et coaching de carrière","gradPage.service3":"Conseils sur les candidatures pour emplois de diplômés","gradPage.service4":"Accès aux employeurs recrutant des talents diplômés","gradPage.service5":"Accompagnement carrière adapté au marché de l'emploi britannique","gradPage.supportNote":"Pour les diplômés internationaux, nous fournissons également des conseils sur les opportunités de carrière après les études au Royaume-Uni et la navigation des options de travail post-études.","gradPage.whyTitle":"Pourquoi Choisir Legal Connect","gradPage.whyDesc":"Legal Connect adopte une approche pratique du recrutement de diplômés en connectant des diplômés qualifiés avec de vraies opportunités d'emploi. Nous nous concentrons sur l'aide aux candidats pour développer la confiance et la présentation professionnelle nécessaires pour réussir sur le marché du travail compétitif d'aujourd'hui.","gradPage.whyGoal":"Notre objectif est simple : aider les diplômés à transformer leur éducation en opportunités de carrière significatives.","gradPage.employersTitle":"Pour les Employeurs","gradPage.employersDesc":"Legal Connect collabore avec des organisations cherchant à recruter des talents diplômés motivés. Nous connectons les employeurs avec des candidats qui apportent :","gradPage.benefit1":"De solides bases académiques","gradPage.benefit2":"Des idées nouvelles et de l'innovation","gradPage.benefit3":"Des perspectives internationales","gradPage.benefit4":"Adaptabilité et ambition","gradPage.employersFooter":"Notre processus de recrutement aide les employeurs à identifier les diplômés appropriés et simplifie le processus d'embauche.","gradPage.ctaTitle":"Commencez Votre Parcours Professionnel","gradPage.ctaDesc":"Si vous êtes un diplômé britannique ou international à la recherche d'opportunités, Legal Connect peut vous aider à franchir l'étape suivante. Soumettez votre CV ou contactez notre équipe pour explorer les opportunités pour diplômés et recevoir des conseils pour démarrer votre carrière au Royaume-Uni.","gradPage.ctaCta":"Faites le Premier Pas","blog.subtitle":"Ressources","blog.title":"Notre Blog","blog.noPosts":"Aucun article pour le moment","blog.noPostsDesc":"Revenez bientôt pour de nouveaux articles et mises à jour.","blog.backToBlog":"← Retour au Blog","blog.postNotFound":"Article non trouvé","notFound.title":"404","notFound.desc":"Oups ! Page non trouvée","notFound.link":"Retour à l'Accueil","contact.heroSubtitle":"Services","ukFaqs.subtitle":"Étudiants UK","ukFaqs.title":"Questions Fréquemment Posées","ukFaqs.desc":"Trouvez les réponses aux questions les plus courantes sur les études en tant qu'étudiant britannique.","ukFaqs.q1":"Quelles qualifications sont nécessaires pour postuler ?","ukFaqs.a1":"De nombreuses universités acceptent les étudiants sans qualifications traditionnelles. Des années préparatoires et des parcours de niveau 4 sont disponibles pour ceux sans A-Levels ou équivalent.","ukFaqs.q2":"Comment fonctionne le financement étudiant ?","ukFaqs.a2":"Student Finance England fournit des prêts pour frais de scolarité et des prêts d'entretien. Vous postulez en ligne et les remboursements ne commencent qu'une fois que vous gagnez au-dessus du seuil après l'obtention du diplôme.","ukFaqs.q3":"Puis-je étudier à temps partiel ou de manière flexible ?","ukFaqs.a3":"Oui, de nombreux programmes offrent des options d'études flexibles avec seulement 8 heures de présence par semaine, vous permettant de concilier travail et engagements personnels.","ukFaqs.q4"
204:"Quand puis-je commencer mes cours ?","ukFaqs.a4":"Les universités britanniques proposent plusieurs rentrées tout au long de l'année, généralement en septembre, novembre, février et mai.","ukFaqs.q5":"Dois-je payer les frais de scolarité à l'avance ?","ukFaqs.a5":"Non. Si vous êtes éligible au financement étudiant, vos frais de scolarité sont payés directement à l'université. Vous n'avez rien à payer à l'avance.","ukFaqs.q6":"Quels cours sont disponibles ?","ukFaqs.a6":"Un large éventail de cours de premier cycle et de troisième cycle est disponible en commerce, santé, informatique, droit, éducation et plus encore.","ukFaqs.q7":"Combien de temps dure un diplôme ?","ukFaqs.a7":"Un diplôme de premier cycle standard dure 3 ans à temps plein, bien que des options accélérées et à temps partiel puissent être disponibles.","ukFaqs.q8":"Comment Legal Connect UK peut-il m'aider ?","ukFaqs.a8":"Nous fournissons des conseils gratuits sur le choix des cours, les candidatures universitaires, le financement étudiant et vous accompagnons tout au long du processus.","ukFaqs.stillQuestions":"Vous avez encore des questions ? Nous sommes là pour vous aider.","ukFaqs.contactUs":"Contactez-nous","intlFaqs.subtitle":"Admission Universitaire UK & Orientation Visa Étudiant","intlFaqs.title":"FAQ Étudiants Internationaux","intlFaqs.desc":"Vous planifiez des études au Royaume-Uni ? Trouvez les réponses aux questions les plus courantes sur l'admission universitaire, les visas étudiants, les frais de scolarité et le soutien à l'installation.","intlFaqs.eligibilityNote":"Si votre question n'est pas couverte, vous pouvez vérifier votre éligibilité avec notre équipe de conseil.","intlFaqs.q1":"Comment postuler dans une université britannique en tant qu'étudiant international ?","intlFaqs.a1.intro":"Pour postuler dans une université britannique, vous avez généralement besoin de :","intlFaqs.a1.p1":"Relevés de notes et certificats académiques","intlFaqs.a1.p2":"Qualification en anglais (IELTS ou équivalent, si requis)","intlFaqs.a1.p3":"Lettre de motivation","intlFaqs.a1.p4":"Copie du passeport","intlFaqs.a1.p5":"Lettre de recommandation","intlFaqs.a1.note":"Certaines universités exigent des candidatures via UCAS, d'autres acceptent les candidatures directes. Chez Legal Connect UK, nous fournissons un soutien structuré à l'admission.","intlFaqs.q2":"Qu'est-ce qu'une lettre CAS et pourquoi est-elle importante ?","intlFaqs.a2.intro":"Une Confirmation d'Acceptation aux Études (CAS) est émise par votre université britannique une fois que vous avez reçu une offre inconditionnelle.","intlFaqs.a2.note":"Vous ne pouvez pas demander un visa étudiant britannique sans un numéro CAS valide. Nous guidons les étudiants tout au long du processus CAS.","intlFaqs.q3":"Quelles sont les exigences financières pour un visa étudiant britannique ?","intlFaqs.a3.intro":"Pour demander un visa étudiant britannique, vous devez justifier de :","intlFaqs.a3.p1":"Les frais de scolarité pour la première année (ou tels qu'indiqués sur le CAS)","intlFaqs.a3.p2":"Frais de subsistance : £1 334/mois (Londres) ou £1 023/mois (hors Londres) pour 9 mois","intlFaqs.a3.note":"Les fonds doivent généralement être détenus pendant au moins 28 jours consécutifs. Des preuves financières incorrectes sont l'une des principales raisons de refus de visa.","intlFaqs.q4":"Puis-je étudier au Royaume-Uni sans IELTS ?","intlFaqs.a4.intro":"Certaines universités britanniques acceptent :","intlFaqs.a4.p1":"WAEC / NECO (pour certains pays africains)","intlFaqs.a4.p2":"Une éducation antérieure en anglais","intlFaqs.a4.p3":"Des tests d'anglais alternatifs","intlFaqs.a4.note":"Chaque université a des exigences différentes. Nous évaluons votre parcours académique et identifions les établissements adaptés.","intlFaqs.q5":"Combien de temps faut-il pour traiter un visa étudiant britannique ?","intlFaqs.a5.intro":"Délai de traitement standard :","intlFaqs.a5.p1":"Hors Royaume-Uni : environ 3 semaines","intlFaqs.a5.p2":"Au Royaume-Uni : environ 8 semaines","intlFaqs.a5.note":"Des services prioritaires peuvent être disponibles dans certains pays.","intlFaqs.q6":"Combien coûtent les études au Royaume-Uni ?","intlFaqs.a6.intro":"Frais de scolarité annuels typiques :","intlFaqs.a6.p1":"Licence : £10 000 – £18 000","intlFaqs.a6.p2":"Master : £12 000 – £22 000","intlFaqs.a6.note":"Les frais de subsistance dépendent de la ville et du mode de vie. Nous aidons les étudiants à identifier des universités adaptées.","intlFaqs.q7":"Les étudiants internationaux peuvent-ils travailler pendant leur
204s études ?","intlFaqs.a7.intro":"Oui. La plupart des titulaires d'un visa étudiant peuvent :","intlFaqs.a7.p1":"Travailler jusqu'à 20 heures par semaine pendant les cours","intlFaqs.a7.p2":"Travailler à temps plein pendant les vacances","intlFaqs.a7.note":"Les conditions de travail dépendent de votre statut de visa et du niveau de cours.","intlFaqs.q8":"Que se passe-t-il si mon visa est refusé ?","intlFaqs.a8.intro":"Les raisons courantes incluent :","intlFaqs.a8.p1":"Documents financiers incorrects","intlFaqs.a8.p2":"Candidature incomplète","intlFaqs.a8.p3":"Problèmes lors de l'entretien de crédibilité","intlFaqs.a8.options":"Selon les circonstances, vous pouvez demander une révision administrative ou soumettre une nouvelle demande. Nous évaluons les raisons du refus avant de conseiller les prochaines étapes.","intlFaqs.q9":"Fournissez-vous un soutien à l'hébergement et à l'arrivée ?","intlFaqs.a9.intro":"Oui. Nous fournissons des conseils sur :","intlFaqs.a9.p1":"Les options d'hébergement étudiant","intlFaqs.a9.p2":"La compréhension des contrats de location","intlFaqs.a9.p3":"La préparation à l'arrivée à l'aéroport","intlFaqs.a9.p4":"Les conseils bancaires et pratiques d'installation","intlFaqs.a9.note":"Notre soutien va au-delà de l'admission.","intlFaqs.q10":"Pourquoi choisir Legal Connect UK ?","intlFaqs.a10.p1":"Correspondance universitaire structurée","intlFaqs.a10.p2":"Soutien à l'admission étape par étape","intlFaqs.a10.p3":"Orientation en matière de conformité au visa étudiant","intlFaqs.a10.p4":"Révision de la documentation financière","intlFaqs.a10.p5":"Soutien continu avant et après l'arrivée","intlFaqs.a10.note":"Notre approche est claire, éthique et axée sur les résultats.","intlFaqs.stillQuestions":"Vous avez encore des questions ? Nous sommes là pour vous aider.","intlFaqs.contactUs":"Contactez-nous","intlFaqs.checkEligibility":"Demander une évaluation d'études","ukStudents.heroTagline":"Faites le Premier Pas Vers Votre Avenir","ukStudents.heroMainTitle":"Des Études Universitaires Flexibles Qui S'adaptent à Votre Vie","ukStudents.heroMainDesc1":"Votre avenir n'a pas à attendre. Que vous travailliez, éleviez une famille ou repreniez vos études, l'université peut s'adapter à votre vie — et nous sommes là pour vous aider.","ukStudents.heroMainDesc2":"Avec des parcours d'études flexibles, plusieurs dates de début et un soutien dédié, votre parcours peut commencer plus tôt que vous ne le pensez.","ukStudents.fundingTagline":"Accédez au financement de Student Finance England","ukStudents.fundingTitle":"Obtenez le Financement que Vous Méritez","ukStudents.fundingDesc":"Chez Legal Connect, nous sommes là pour vous aider à débloquer le soutien financier disponible via Student Finance England. Nous vous guiderons étape par étape — pour que vous puissiez obtenir un financement pour vos frais de scolarité et vos frais de vie en toute confiance.","ukStudents.applyTitle":"Postulez à Tout Moment — Commencez Vos Études Plus Tôt","ukStudents.applyDesc1":"Pourquoi attendre un an entier pour commencer ?","ukStudents.applyDesc2":"Nous proposons plusieurs rentrées tout au long de l'année — septembre, novembre, février et mai. Postulez à tout moment et nous vous guiderons vers la prochaine rentrée disponible.","ukStudents.applyBtn":"Commencer votre candidature aujourd'hui","ukStudents.noQualTitle":"Pas de Qualifications ? Vous Avez Encore des Options","ukStudents.noQualDesc":"Ne laissez pas votre parcours scolaire passé vous freiner. Il existe un chemin clair vers l'avant, même si vous partez de zéro.","ukStudents.noQualOffer":"Nous proposons :","ukStudents.noQualItem1":"Des cours d'un an de niveau 4 pour renforcer la confiance et les compétences académiques de base","ukStudents.noQualItem2":"Des licences avec une année préparatoire pour une entrée accompagnée à l'université","ukStudents.noQualMotivation":"Votre potentiel compte plus que votre passé.","ukStudents.noQualBtn":"Vérifiez si vous êtes éligible","ukStudents.flexTitle":"Étudiez Autour de Vos Engagements Professionnels & Familiaux","ukStudents.flexDesc":"Oui — vous pouvez étudier tout en travaillant ou en vous occupant de votre famille.","ukStudents.flexModelTitle":"Notre modèle d'études flexible comprend :","ukStudents.flexItem1":"Seulement deux cours par semaine","ukStudents.flexItem2":"4 heures par cours","ukStudents.flexItem3":"Seulement 8 heures d'études en personne par semaine","ukStudents.flexItem4":"Options le soir et le week-end disponibles","ukStudents.flexMotivation":"Une éducation qui s'adapte à votre emploi du temps — pas l'inverse.","ukStudents.flexBtn":"Trouver une option d'études adaptée à votre vie","ukStudents.c
204ourseTitle":"Choisissez un Cours Qui Mène Quelque Part","ukStudents.courseDesc":"Que vous préfériez des matières traditionnelles ou des cours modernes axés sur la carrière, vous trouverez des options conçues pour vous aider à acquérir de vraies compétences, des qualifications reconnues et des opportunités futures.","ukStudents.courseMotivation":"Il ne s'agit pas seulement d'étudier — il s'agit de construire un avenir dont vous serez fier.","ukStudents.courseBtn":"Explorer les cours disponibles","ukStudents.supportTitle":"Un Soutien à Chaque Étape","ukStudents.supportDesc":"Vous n'avez pas à tout comprendre seul. Nous vous aiderons avec :","ukStudents.supportItem1":"Choisir le bon cours","ukStudents.supportItem2":"Comprendre les conditions d'entrée","ukStudents.supportItem3":"Vous guider dans le processus de candidature","ukStudents.supportItem4":"Vous assurer que vous êtes confiant et préparé avant de commencer","ukStudents.supportMotivation":"De votre première demande à votre premier cours — nous sommes avec vous.","ukStudents.ctaTitle":"Prêt à Commencer Votre Parcours ?","ukStudents.ctaDesc":"Votre avenir commence par une décision.","ukStudents.ctaBtn":"Demander une évaluation d'études","ukStudents.ctaFooter":"Faites le premier pas — et laissez-nous vous aider à avancer avec confiance.","about.desc1":"Legal Connect UK est une plateforme de conseil et d'accompagnement centrée sur les étudiants, aidant les étudiants britanniques et internationaux à naviguer leur parcours d'études et d'installation au Royaume-Uni avec clarté et confiance.","about.desc2":"Nous fournissons des conseils clairs et structurés sur les parcours éducatifs, le soutien aux admissions, le financement étudiant, les processus de visa, l'hébergement et les services d'arrivée — simplifiant ce qui peut souvent sembler un processus complexe et accablant.","about.desc3":"Étudier au Royaume-Uni implique des décisions importantes à chaque étape. Du choix du bon cours ou établissement, à la compréhension des exigences de visa, des options de financement et des dispositions pratiques, les étudiants ont besoin d'informations fiables et de conseils de confiance. Legal Connect UK existe pour éliminer l'incertitude et offrir aux étudiants un plan clair.","about.legalNote":"Lorsque des conseils juridiques ou d'immigration sont nécessaires, nous mettons les étudiants en relation avec des professionnels réglementés au Royaume-Uni, garantissant transparence, conformité et tranquillité d'esprit.","about.missionDesc":"Donner aux étudiants les moyens de réussir grâce à des conseils fiables, des connexions de confiance et des parcours clairs pour étudier, s'installer et réussir au Royaume-Uni.","about.heroTagline":"Qui sommes-nous","about.whatWeDo1":"Orientation universitaire et de cours","about.whatWeDo2":"Éligibilité aux admissions et soutien aux candidatures","about.whatWeDo3":"Guide financement et bourses étudiantes","about.whatWeDo4":"Accompagnement processus visa étudiant UK","about.whatWeDo5":"Aide hébergement et arrivée","about.whatWeDo6":"Guide post-arrivée et installation","about.whoWeSupport1":"Étudiants internationaux souhaitant étudier au Royaume-Uni","about.whoWeSupport2":"Étudiants britanniques explorant l'enseignement supérieur ou des parcours alternatifs","about.whoWeSupport3":"Étudiants souhaitant des conseils clairs et fiables avant de prendre des décisions importantes","about.whoWeSupport4":"Familles cherchant un accompagnement structuré pour leurs enfants","about.ourApproach1":"Soutien centré sur l'étudiant, axé sur les résultats","about.ourApproach2":"Explications claires sans jargon inutile","about.ourApproach3":"Pratiques éthiques, transparentes et conformes","about.ourApproach4":"Un interlocuteur dédié tout au long du parcours étudiant","about.whyChoose1":"Plateforme de conseil indépendante, centrée sur l'étudiant","about.whyChoose2":"Accompagnement clair étape par étape","about.whyChoose3":"Expérience étudiante internationale et sensibilité culturelle","about.whyChoose4":"Réseau professionnel de confiance","about.whyChoose5":"Services transparents sans complexité cachée","intlStudents.whyStudyUK.seoTitle":"Pourquoi étudier au Royaume-Uni ? | Guide Étudiant International","intlStudents.whyStudyUK.seoDescription":"Découvrez pourquoi les étudiants internationaux choisissent d'étudier au Royaume-Uni. Explorez des qualifications reconnues, des options de cours, la vie étudiante et le soutien aux candidatures.","intlStudents.whyStudyUK.heroTitle":"Pourquoi étudier au Royaume-Uni ?","intlStudents.whyStudyUK.heroSubtitle":"Étudiants Internationaux","intlStudents.whyStudyUK.heroDesc":"Découvrez pourquoi les étudiants internationaux choisissent le Royaume-Uni pour des qualifications reconnues, des cours diversifiés et des opportunités de carrière mondiales.","intlStudents.whyStudyUK.introTitle":"Pourquoi étudier au Royaume-Uni en tant qu'étudiant international ?","intlStudents.whyStudyUK.introP1":"Le Royaume-Uni est l'une des destinations internationales les plus prisées pour l'éducation. Chaque année, des étudiants d'Afrique, d'Asie, d'Europe, du Moyen-Orient et d'autres régions choisissent d'étudier au Royaume-Uni pour obtenir des qualifications reconnues, vivre dans un environnement multiculturel et se préparer à des opportunités de carrière internationales.","intlStudents.whyStudyUK.introP2":"Que vou
204s postuliez pour un programme préparatoire, une licence, un master ou une qualification professionnelle, le Royaume-Uni offre un large éventail d'opportunités d'études.","intlStudents.whyStudyUK.introP3":"Chez Legal Connect UK, nous aidons les étudiants internationaux à comprendre leurs options, à trouver des cours adaptés et à bénéficier d'un soutien personnalisé tout au long du processus de candidature universitaire au Royaume-Uni.","intlStudents.whyStudyUK.section1.title":"Obtenez une qualification reconnue internationalement","intlStudents.whyStudyUK.section1.p1":"Les universités et établissements d'enseignement britanniques sont reconnus dans le monde entier pour leurs standards académiques, leur recherche et leur enseignement orienté vers la carrière.","intlStudents.whyStudyUK.section1.p2":"Une qualification britannique peut vous aider à démontrer vos connaissances, vos capacités professionnelles et votre engagement envers le développement personnel. Elle peut également soutenir votre progression vers l'emploi, l'éducation postgrade ou une formation professionnelle complémentaire. La reconnaissance de chaque qualification dépendra de l'employeur, de l'organisme professionnel ou de l'autorité éducative du pays où vous envisagez de l'utiliser.","intlStudents.whyStudyUK.section2.title":"Choisissez parmi un large éventail de cours au Royaume-Uni","intlStudents.whyStudyUK.section2.p1":"Les étudiants internationaux peuvent choisir parmi des milliers de cours dans de nombreux domaines, notamment :","intlStudents.whyStudyUK.section2.p2":"Les options d'études peuvent inclure des cours préparatoires, des licences, des programmes postgrades et des qualifications professionnelles. Legal Connect UK peut vous aider à comparer les cours disponibles en fonction de votre parcours académique, de votre niveau d'anglais, de vos ambitions professionnelles et de votre lieu préféré.","intlStudents.whyStudyUK.courses.business":"Commerce et Gestion","intlStudents.whyStudyUK.courses.accounting":"Comptabilité et Finance","intlStudents.whyStudyUK.courses.law":"Droit et Criminologie","intlStudents.whyStudyUK.courses.health":"Santé et Services Sociaux","intlStudents.whyStudyUK.courses.nursing":"Soins Infirmiers et Santé","intlStudents.whyStudyUK.courses.computing":"Informatique et Technologies de l'Information","intlStudents.whyStudyUK.courses.cybersecurity":"Cybersécurité","intlStudents.whyStudyUK.courses.engineering":"Ingénierie","intlStudents.whyStudyUK.courses.construction":"Construction et Gestion de Projet","intlStudents.whyStudyUK.courses.marketing":"Marketing et Marketing Digital","intlStudents.whyStudyUK.courses.hospitality":"Hôtellerie et Tourisme","intlStudents.whyStudyUK.courses.education":"Éducation","intlStudents.whyStudyUK.courses.psychology":"Psychologie","intlStudents.whyStudyUK.courses.internationalRelations":"Relations Internationales","intlStudents.whyStudyUK.section3.title":"Terminez vos études en moins de temps","intlStudents.whyStudyUK.section3.p1":"De nombreuses licences à temps plein en Angleterre, au Pays de Galles et en Irlande du Nord peuvent être terminées en trois ans, tandis que de nombreux masters enseignés durent un an.","intlStudents.whyStudyUK.section3.p2":"Cela peut permettre aux étudiants internationaux d'obtenir leurs qualifications plus rapidement que dans certains autres pays. La durée du cours varie en fonction du programme, de la matière, de l'établissement et de la partie du Royaume-Uni où vous étudiez.","intlStudents.whyStudyUK.section4.title":"Améliorez vos compétences en anglais","intlStudents.whyStudyUK.section4.p1":"Étudier au Royaume-Uni donne aux étudiants internationaux l'occasion d'utiliser l'anglais dans des situations académiques, professionnelles et quotidiennes.","intlStudents.whyStudyUK.section4.p2":"La communication régulière avec les enseignants, les camarades et les communautés locales peut vous aider à développer vos compétences orales, écrites, d'écoute et de présentation. De solides compétences en anglais peuvent également améliorer votre confiance et soutenir votre future carrière dans un environnement international. Les universités peuvent exiger une preuve de compétence en anglais, telle que l'IELTS ou une autre qualification acceptée. Les exigences varient selon les établissements et les cours.","intlStudents.whyStudyUK.section5.title":"Développez des compétences pour une carrière internationale","
204intlStudents.whyStudyUK.section5.p1":"Les cours britanniques peuvent aider les étudiants à développer des connaissances académiques ainsi que des compétences pratiques et transférables valorisées par les employeurs. Celles-ci peuvent inclure :","intlStudents.whyStudyUK.section5.p2":"Selon votre cours, vous pouvez également avoir accès à des stages, des projets pratiques, des services de carrière, des événements sectoriels et des opportunités de réseautage. L'emploi après l'obtention du diplôme n'est pas garanti et dépendra de vos qualifications, de votre expérience, de votre statut d'immigration et des exigences des employeurs individuels.","intlStudents.whyStudyUK.skills.communication":"Communication et présentation","intlStudents.whyStudyUK.skills.leadership":"Leadership et travail d'équipe","intlStudents.whyStudyUK.skills.research":"Recherche et analyse","intlStudents.whyStudyUK.skills.criticalThinking":"Esprit critique","intlStudents.whyStudyUK.skills.problemSolving":"Résolution de problèmes","intlStudents.whyStudyUK.skills.digital":"Compétences numériques","intlStudents.whyStudyUK.skills.timeManagement":"Gestion du temps","intlStudents.whyStudyUK.skills.independentLearning":"Apprentissage autonome","intlStudents.whyStudyUK.section6.title":"Vivez dans un environnement multiculturel","intlStudents.whyStudyUK.section6.p1":"Le Royaume-Uni est le foyer de personnes de nombreuses cultures, langues et nationalités. En tant qu'étudiant international, vous pouvez rencontrer des gens du monde entier, découvrir différentes perspectives et développer un réseau international précieux.","intlStudents.whyStudyUK.section6.p2":"De nombreuses universités disposent de sociétés d'étudiants internationaux, d'associations culturelles, de groupes religieux et d'équipes de soutien pour aider les étudiants à s'intégrer dans la vie universitaire.","intlStudents.whyStudyUK.section6.p3":"Cet environnement multiculturel peut faire du Royaume-Uni une destination attrayante pour les étudiants qui quittent leur pays d'origine pour la première fois.","intlStudents.whyStudyUK.section7.title":"Étudiez dans des villes britanniques dynamiques","intlStudents.whyStudyUK.section7.p1":"Les étudiants internationaux peuvent étudier dans des villes d'Angleterre, d'Écosse, du Pays de Galles et d'Irlande du Nord. Les destinations étudiantes populaires incluent :","intlStudents.whyStudyUK.section7.p2":"Chaque destination offre une expérience différente. Vous pouvez préférer les opportunités d'une grande ville, l'abordabilité d'une petite ville universitaire ou la commodité d'un établissement basé sur un campus. Avant de choisir votre lieu, il est important de prendre en compte les frais de scolarité, les coûts d'hébergement, les transports, le mode de vie et l'accès au soutien étudiant.","intlStudents.whyStudyUK.cities.london":"Londres","intlStudents.whyStudyUK.cities.birmingham":"Birmingham","intlStudents.whyStudyUK.cities.manchester":"Manchester","intlStudents.whyStudyUK.cities.leeds":"Leeds","intlStudents.whyStudyUK.cities.liverpool":"Liverpool","intlStudents.whyStudyUK.cities.nottingham":"Nottingham","intlStudents.whyStudyUK.cities.leicester":"Leicester","intlStudents.whyStudyUK.cities.coventry":"Coventry","intlStudents.whyStudyUK.cities.glasgow":"Glasgow","intlStudents.whyStudyUK.cities.edinburgh":"Édimbourg","intlStudents.whyStudyUK.cities.cardiff":"Cardiff","intlStudents.whyStudyUK.cities.belfast":"Belfast","intlStudents.whyStudyUK.section8.title":"Accédez à des bourses et opportunités de financement","intlStudents.whyStudyUK.section8.p1":"Certaines universités britanniques offrent des bourses, des aides ou des remises sur les frais de scolarité pour les étudiants internationaux éligibles.","intlStudents.whyStudyUK.section8.p2":"Les bourses peuvent être attribuées en fonction des résultats académiques, de la nationalité, du domaine d'études ou de la situation financière. La disponibilité et les critères d'éligibilité varient considérablement entre les établissements.","intlStudents.whyStudyUK.section8.p3":"Legal Connect UK peut vous aider à identifier les opportunités potentielles, mais les bourses et le financement ne peuvent pas être garantis. Les étudiants internationaux doivent également préparer un budget réaliste couvrant les frais de scolarité, l'hébergement, les transports et les frais de vie quotidiens.","intlStudents.whyStudyUK.section9.title":"Travailler pendant vos études","intlStudents.whyStudyUK.section9.p1":"Certains étudiants internationaux peuvent être autorisés à travailler un nombre limité d'heures pendant leur
204s études au Royaume-Uni.","intlStudents.whyStudyUK.section9.p2":"Votre droit de travail dépendra de votre autorisation d'immigration, de votre cours et de votre établissement d'enseignement. Il est essentiel de vérifier les conditions attachées à votre visa étudiant avant d'accepter un emploi.","intlStudents.whyStudyUK.section9.p3":"Le travail à temps partiel peut offrir une expérience utile, mais les étudiants ne devraient pas compter sur l'emploi comme principale source de financement pour leurs études ou leurs frais de vie.","intlStudents.whyStudyUK.section10.title":"Bénéficiez d'un soutien pour votre candidature au Royaume-Uni","intlStudents.whyStudyUK.section10.p1":"Postuler pour étudier à l'étranger peut sembler compliqué. Les étudiants internationaux peuvent avoir besoin de choisir un cours adapté, de répondre aux exigences académiques et linguistiques, de préparer des justificatifs financiers et de comprendre le processus du visa étudiant.","intlStudents.whyStudyUK.section10.p2":"Legal Connect UK fournit un soutien structuré pour faciliter votre parcours. Nos services aux étudiants internationaux peuvent inclure :","intlStudents.whyStudyUK.section10.note":"Toutes les admissions universitaires, les bourses et les demandes de visa sont soumises aux exigences et aux décisions de l'établissement, de l'organisme de financement ou de l'autorité gouvernementale britannique concerné.","intlStudents.whyStudyUK.support.assessment":"Évaluation initiale de l'éligibilité","intlStudents.whyStudyUK.support.recommendations":"Recommandations de cours et d'universités","intlStudents.whyStudyUK.support.entryRequirements":"Conseils sur les conditions d'entrée","intlStudents.whyStudyUK.support.applicationSupport":"Aide au formulaire de candidature","intlStudents.whyStudyUK.support.personalStatement":"Conseils pour la lettre de motivation","intlStudents.whyStudyUK.support.documentChecks":"Vérification des documents académiques","intlStudents.whyStudyUK.support.interviewPrep":"Préparation aux entretiens","intlStudents.whyStudyUK.support.scholarships":"Informations sur les bourses et les frais de scolarité","intlStudents.whyStudyUK.support.visaGuidance":"Conseils sur le processus du visa étudiant","intlStudents.whyStudyUK.support.accommodation":"Aide à l'hébergement","intlStudents.whyStudyUK.support.preDeparture":"Informations avant le départ","intlStudents.whyStudyUK.support.airportTransfer":"Organisation du transfert aéroport","intlStudents.whyStudyUK.support.afterArrival":"Soutien avant et après l'arrivée au Royaume-Uni","intlStudents.whyStudyUK.whyChooseTitle":"Pourquoi choisir Legal Connect UK ?","intlStudents.whyStudyUK.whyChooseP1":"Nous comprenons que chaque étudiant international a des qualifications, des objectifs et des circonstances personnelles différents. Notre approche est conçue pour fournir un soutien clair et personnalisé, de votre première demande jusqu'à l'inscription.","intlStudents.whyStudyUK.whyChooseP2":"Nous pouvons communiquer avec les étudiants en anglais et en français, rendant nos services accessibles aux candidats des pays anglophones et francophones.","intlStudents.whyStudyUK.whyUs.options":"Comprendre vos options d'études disponibles","intlStudents.whyStudyUK.whyUs.course":"Choisir un cours et un établissement adaptés","intlStudents.whyStudyUK.whyUs.application":"Préparer une candidature plus solide","intlStudents.whyStudyUK.whyUs.mistakes":"Éviter les erreurs de candidature courantes","intlStudents.whyStudyUK.whyUs.stages":"Comprendre les différentes étapes de votre parcours","intlStudents.whyStudyUK.whyUs.confidence":"Arriver au Royaume-Uni avec plus de confiance","intlStudents.whyStudyUK.ctaTitle":"Commencez votre parcours d'études au Royaume-Uni","intlStudents.whyStudyUK.ctaP1":"Étudier au Royaume-Uni pourrait vous aider à obtenir une qualification respectée, à développer des compétences précieuses et à faire partie d'une communauté étudiante internationale.","intlStudents.whyStudyUK.ctaP2":"Laissez Legal Connect UK vous aider à trouver le bon cours et faire le prochain pas vers l'étude au Royaume-Uni.","
204intlStudents.whyStudyUK.ctaBtn1":"Demander une évaluation d'études","intlStudents.whyStudyUK.ctaBtn2":"Trouver un Cours au Royaume-Uni","intlStudents.whyStudyUK.ctaBtn3":"Parler à un Conseiller Étudiant International","intlStudents.whyStudyUK.trust.bcTitle":"Agent et Conseiller Formés par le British Council","intlStudents.whyStudyUK.trust.bcText":"Nous sommes fiers d'être des agents et conseillers en éducation au Royaume-Uni formés par le British Council, officiellement reconnus pour notre expertise dans la fourniture de conseils précis, éthiques et actualisés sur les études au Royaume-Uni. Cela reflète notre engagement à accompagner les étudiants avec des orientations éclairées tout au long de leur parcours académique, du choix du bon cours et de l'établissement à la navigation dans le processus de candidature. Grâce à notre formation, les étudiants et les parents peuvent être assurés de recevoir un soutien de confiance et de haute qualité.","intlStudents.whyStudyUK.trust.aqfTitle":"Conformité au Cadre de Qualité des Agents (AQF)","intlStudents.whyStudyUK.trust.aqfText":"Legal Connect UK s'engage à respecter les plus hautes normes en matière de recrutement d'étudiants internationaux. Nous adhérons aux principes du Cadre de Qualité des Agents (AQF), garantissant des pratiques éthiques, transparentes et professionnelles dans tous nos services. Nos agents sont formés et certifiés pour fournir des conseils précis et fiables aux étudiants.","intlStudents.whyStudyUK.trust.title":"Soutien Éducatif Britannique de Confiance","intlStudents.findACourse.seoTitle":"Cours au Royaume-Uni pour Étudiants Internationaux | Legal Connect UK","intlStudents.findACourse.seoDescription":"Explorez les cours au Royaume-Uni pour étudiants internationaux, des programmes préparatoires aux licences et aux masters. Bénéficiez d'un soutien personnalisé pour votre candidature.","intlStudents.findACourse.heroTitle":"Cours au Royaume-Uni pour Étudiants Internationaux","intlStudents.findACourse.heroSubtitle":"Étudiants Internationaux","intlStudents.findACourse.heroDesc":"Explorez les programmes préparatoires, de premier cycle et de deuxième cycle dans les universités et collèges britanniques avec l'accompagnement personnalisé de Legal Connect UK.","intlStudents.findACourse.introTitle":"Trouvez le Cours au Royaume-Uni qui Vous Convient","intlStudents.findACourse.introP1":"Explorez les programmes préparatoires, de premier cycle et de deuxième cycle dans les universités et collèges britanniques. Legal Connect UK aide les étudiants internationaux à trouver des programmes adaptés, à comprendre les conditions d'entrée et à préparer des candidatures plus solides.","intlStudents.findACourse.introP2":"Le Royaume-Uni offre un large choix de cours académiques et professionnels dans les domaines des affaires, de l'informatique, de l'ingénierie, du droit, de la santé, des sciences, de l'éducation, des industries créatives et de nombreux autres domaines. Le bon cours doit correspondre à vos qualifications, à votre budget, à votre lieu préféré et à vos objectifs de carrière à long terme, et non pas simplement au nom d'une université.","intlStudents.findACourse.introP3":"Legal Connect UK soutient les étudiants d'Afrique et du monde entier en anglais et en français. Nous pouvons vous aider à comparer des options réalistes et à comprendre chaque étape du processus de candidature universitaire au Royaume-Uni.","intlStudents.findACourse.rightCourseTitle":"Trouvez le Bon Cours au Royaume-Uni pour Votre Avenir","intlStudents.findACourse.rightCourseP1":"Choisir un cours est une décision académique, financière et professionnelle importante. Avant de postuler, examinez les modules que vous étudierez, les méthodes d'enseignement et d'évaluation, les frais de scolarité, l'accréditation professionnelle, les opportunités de stage et la reconnaissance de la qualification dans le pays où vous envisagez de travailler.","intlStudents.findACourse.rightCourseP2":"Nos conseillers peuvent examiner votre parcours académique, votre expérience professionnelle, votre niveau d'anglais, votre budget et vos ambitions de carrière avant de vous proposer des cours et établissements adaptés. Les recommandations sont personnalisées, et toutes les décisions d'admission rel
204èvent de l'université ou du collège.","intlStudents.findACourse.ctaBtn1":"Demander une évaluation d'études","intlStudents.findACourse.ctaBtn2":"Parler à un Conseiller Étudiant International","intlStudents.findACourse.popularTitle":"Cours Populaires au Royaume-Uni pour Étudiants Internationaux","intlStudents.findACourse.popular.business":"Commerce et Gestion","intlStudents.findACourse.popular.accounting":"Comptabilité et Finance","intlStudents.findACourse.popular.computerScience":"Informatique et Technologies de l'Information","intlStudents.findACourse.popular.cybersecurity":"Cybersécurité","intlStudents.findACourse.popular.dataScience":"Science des Données et Intelligence Artificielle","intlStudents.findACourse.popular.engineering":"Ingénierie","intlStudents.findACourse.popular.law":"Droit et Criminologie","intlStudents.findACourse.popular.publicHealth":"Santé Publique et Gestion des Soins de Santé","intlStudents.findACourse.popular.biomedical":"Sciences Biomédicales","intlStudents.findACourse.popular.construction":"Construction et Gestion de Projet","intlStudents.findACourse.popular.marketing":"Marketing et Marketing Digital","intlStudents.findACourse.popular.hospitality":"Hôtellerie et Tourisme","intlStudents.findACourse.popularNote":"La disponibilité des cours, les conditions d'entrée, la reconnaissance professionnelle et les frais de scolarité varient selon l'établissement et la session d'admission.","intlStudents.findACourse.levelsTitle":"Choisissez Votre Niveau d'Études","intlStudents.findACourse.levels.foundation.title":"Année Préparatoire Internationale","intlStudents.findACourse.levels.foundation.desc":"Un programme préparatoire peut aider les étudiants à combler l'écart entre leurs qualifications actuelles et les exigences académiques ou linguistiques d'une licence. Ces programmes durent généralement un an, bien que la structure et les conditions de progression varient.","intlStudents.findACourse.levels.bachelor.title":"Licence (Bachelor)","intlStudents.findACourse.levels.bachelor.desc":"Une licence à temps plein dure normalement trois ans en Angleterre, au Pays de Galles et en Irlande du Nord, et généralement quatre ans en Écosse. Les études de médecine, de dentisterie, les diplômes intégrés et les cours avec stage ou année à l'étranger peuvent durer plus longtemps.","intlStudents.findACourse.levels.premaster.title":"Programme Pré-Master","intlStudents.findACourse.levels.premaster.desc":"Un programme pré-master peut aider les étudiants à se préparer aux études supérieures en développant leurs compétences académiques, de recherche et en anglais. La disponibilité et les conditions de progression dépendent du prestataire.","intlStudents.findACourse.levels.master.title":"Master (Master's Degree)","intlStudents.findACourse.levels.master.desc":"De nombreux masters enseignés à temps plein au Royaume-Uni peuvent être terminés en un an. Les diplômes de recherche, les programmes professionnels et les cours avec stages peuvent durer plus longtemps.","intlStudents.findACourse.levels.doctoral.title":"Doctorat et Diplômes de Recherche","intlStudents.findACourse.levels.doctoral.desc":"Les programmes de doctorat (PhD) et autres programmes de recherche sont conçus pour des études indépendantes avancées. Les candidats ont généralement besoin d'un projet de recherche solide, de qualifications pertinentes et d'un directeur ou d'un encadrement approprié.","intlStudents.findACourse.subjectsTitle":"Explorez les Matières des Cours au Royaume-Uni","intlStudents.findACourse.subjectsDesc":"Parcourez les principaux domaines d'études ci-dessous. Ce n'est pas une liste exhaustive : les établissements britanniques proposent de nombreux programmes spécialisés, combinés et interdisciplinaires.","intlStudents.findACourse.subjects.business.title":"Affaires, Finance et Gestion","intlStudents.findACourse.subjects.business.items":"Commerce et Gestion|Commerce International|Administration des Affaires|Entrepreneuriat et Innovation|Comptabilité et Finance|Banque et Investissement|Gestion Financière|Technologie Financière (FinTech)|Économie|Gestion des Ressources Humaines|Marketing et Marketing Digital|Gestion de la Chaîne d'Approvisionnement et de la Logistique|Gestion de Projet|Leadership et Management Stratég
204ique","intlStudents.findACourse.subjects.law.title":"Droit, Politique et Sciences Sociales","intlStudents.findACourse.subjects.law.items":"Droit|Droit International|Droit des Affaires et Commercial|Criminologie|Police et Justice Pénale|Science Politique|Relations Internationales|Développement International|Politiques Publiques et Administration|Sociologie|Politique Sociale|Anthropologie|Géographie","intlStudents.findACourse.subjects.computing.title":"Informatique et Technologies Numériques","intlStudents.findACourse.subjects.computing.items":"Informatique|Informatique et Technologies de l'Information|Génie Logiciel|Cybersécurité|Intelligence Artificielle|Science des Données et Analyse de Données|Systèmes d'Information pour les Affaires|Cloud Computing|Réseaux Informatiques|Développement d'Applications Web et Mobiles|Conception et Développement de Jeux Vidéo|Expérience Utilisateur et Conception d'Interaction|Robotique et Systèmes Intelligents","intlStudents.findACourse.subjects.engineering.title":"Ingénierie et Fabrication","intlStudents.findACourse.subjects.engineering.items":"Génie Civil|Génie Mécanique|Génie Électrique et Électronique|Génie Chimique|Génie Aérospatial et Aéronautique|Génie Automobile|Génie Biomédical|Génie Environnemental|Génie de Fabrication|Science et Génie des Matériaux|Mécatronique et Robotique|Génie des Énergies Renouvelables|Gestion de l'Ingénierie","intlStudents.findACourse.subjects.architecture.title":"Architecture, Construction et Environnement Bâti","intlStudents.findACourse.subjects.architecture.items":"Architecture|Technologie Architecturale|Gestion de Construction|Métrologie (Quantity Surveying)|Expertise Immobilière|Promotion Immobilière|Gestion de l'Immobilier|Urbanisme|Architecture et Design d'Intérieur|Architecture Paysagère|Génie des Systèmes de Bâtiment|Construction Durable","intlStudents.findACourse.subjects.health.title":"Médecine, Santé et Services Sociaux","intlStudents.findACourse.subjects.health.items":"Santé et Services Sociaux|Médecine|Chirurgie Dentaire|Soins Infirmiers|Sage-Femme|Pharmacie|Sciences Biomédicales|Santé Publique|Santé Mondiale|Gestion des Soins de Santé|Physiothérapie|Ergothérapie|Radiogra
204phie et Imagerie Médicale|Nutrition et Diététique|Conseil et Psychothérapie","intlStudents.findACourse.subjects.science.title":"Sciences, Mathématiques et Environnement","intlStudents.findACourse.subjects.science.items":"Sciences Biologiques|Biochimie|Biotechnologie|Génétique et Microbiologie|Chimie|Physique|Mathématiques et Statistiques|Sciences de l'Environnement|Sciences de la Terre et Planétaires|Biologie Marine|Science Médicolégale|Science et Nutrition des Aliments|Agriculture et Science Animale|Médecine Vétérinaire","intlStudents.findACourse.subjects.psychology.title":"Psychologie, Travail Social et Études Communautaires","intlStudents.findACourse.subjects.psychology.items":"Psychologie|Psychologie Clinique|Psychologie du Conseil|Psychologie Médicolégale|Psychologie de la Santé|Psychologie du Travail et des Organisations|Psychologie du Sport et de l'Exercice|Travail Social|Études sur l'Enfance et la Jeunesse|Développement Communautaire|Études Familiales et Communautaires|Besoins Éducatifs Spéciaux et Études Inclusives","intlStudents.findACourse.subjects.education.title":"Éducation et Enseignement","intlStudents.findACourse.subjects.education.items":"Études en Éducation|Enseignement Primaire|Enseignement Secondaire|Études sur la Petite Enfance|Formation des Enseignants|Besoins Éducatifs Spéciaux et Éducation Inclusive|Leadership et Gestion Éducative|Enseignement de l'Anglais aux Locuteurs d'Autres Langues (TESOL)|Linguistique Appliquée|Travail Auprès des Jeunes et des Communautés|Éducation et Psychologie","intlStudents.findACourse.subjects.arts.title":"Arts, Design et Industries Créatives","intlStudents.findACourse.subjects.arts.items":"Beaux-Arts|Design Graphique|Design de Produit|Design d'Intérieur|Design de Mode|Mode, Affaires et Gestion|Design Textile et Joaillerie|Photographie|Production Cinématographique et Télévisuelle|Animation et Effets Visuels|Musique et Production Musicale|Théâtre, Danse et Arts du Spectacle|Gestion des Industries Créatives","intlStudents.findACourse.subjects.media.title":"Médias, Journalisme et Communication","intlStudents.findACourse.subjects.media.items":"Médias et Communication|Journalisme|Journ
204alisme de Radio et Télévision|Journalisme Numérique|Relations Publiques|Publicité et Gestion de Marque|Édition|Études Cinématographiques et Télévisuelles|Écriture Créative|Communication et Études Culturelles","intlStudents.findACourse.subjects.languages.title":"Langues et Sciences Humaines","intlStudents.findACourse.subjects.languages.items":"Langue et Linguistique Anglaises|Littérature Anglaise|Traduction et Interprétation|Langues Modernes|Français|Espagnol|Allemand|Arabe|Chinois et Études Asiatiques|Histoire|Philosophie|Religion et Théologie|Études Classiques|Études Régionales et Culturelles","intlStudents.findACourse.subjects.hospitality.title":"Hôtellerie, Tourisme et Événements","intlStudents.findACourse.subjects.hospitality.items":"Gestion Hôtelière|Gestion du Tourisme International|Voyage et Tourisme|Gestion Hôtelière|Gestion d'Événements|Arts Culinaires|Gestion de la Restauration et des Boissons|Gestion de l'Aviation et des Aéroports|Gestion des Compagnies Aériennes et du Tourisme|Gestion des Loisirs et des Stations de Villégiature","intlStudents.findACourse.subjects.sport.title":"Sport et Activité Physique","intlStudents.findACourse.subjects.sport.items":"Science du Sport et de l'Exercice|Gestion du Sport|Entraînement Sportif|Éducation Physique|Thérapie et Rééducation Sportives|Préparation Physique et Conditionnement|Nutrition du Sport|Gestion du Football et du Sport|Exercice et Santé|Éducation en Plein Air et Aventure","intlStudents.findACourse.subjectsNote":"Vous ne trouvez pas votre matière ? De nombreux programmes spécialisés et combinés sont disponibles. Dites-nous ce que vous souhaitez étudier, vos qualifications actuelles et votre session d'admission préférée, et nous vous aiderons à explorer des options adaptées.","intlStudents.findACourse.compareTitle":"Comment Choisir le Bon Cours au Royaume-Uni","intlStudents.findACourse.compareIntro":"Ne choisissez pas un cours uniquement sur son titre. Le contenu et l'évaluation peuvent varier considérablement d'une université à l'autre. Comparez les éléments suivants avant de postuler :","intlStudents.findACourse.compare.entryRequirements":"Les conditions d'entrée pour votre pays et vos qualifications","intlStudents.findACourse.compare.modules":"Les modules obligatoires et optionnels","intlStudents.findACourse.compare.teaching":"Les méthodes d'enseignement, d'évaluation et d'apprentissage pratique","intlStudents.findACourse.compare.accreditation":"L'accréditation professionnelle et la reconnaissance dans le pays de votre carrière envisagée","intlStudents.findACourse.compare.placements":"Les opportunités de stage, d'alternance, de laboratoire ou de projet industriel","intlStudents.findACourse.compare.duration":"La durée du cours, la date de début et l'emplacement du campus","intlStudents.findACourse.compare.fees":"Les frais de scolarité, les dépôts, les bourses et les coûts de vie","intlStudents.findACourse.compare.support":"Le soutien étudiant, l'hébergement et les services de carrière","intlStudents.findACourse.requirementsTitle":"Conditions d'Entrée Typiques pour les Étudiants Internationaux","intlStudents.findACourse.requirementsIntro":"Chaque université fixe ses propres conditions, et les qualifications internationales sont évaluées par rapport au niveau requis pour le cours. Selon le programme, on peut vous demander :","intlStudents.findACourse.requirements.certificates":"Des certificats et relevés de notes académiques","intlStudents.findACourse.requirements.passport":"Un passeport valide","intlStudents.findACourse.requirements.english":"Une preuve de compétence en anglais","intlStudents.findACourse.requirements.personalStatement":"Une lettre de motivation ou un exposé de vos objectifs","intlStudents.findACourse.requirements.references":"Des références académiques ou professionnelles","intlStudents.findACourse.requirements.cv":"Un CV pour certains programmes de deuxième cycle ou professionnels","intlStudents.findACourse.requirements.portfolio":"Un portfolio, une audition, un entretien ou un test d'admission pour certaines matières","intlStudents.findACourse.requirements.experience":"Une preuve d'expérience professionnelle pertinente lorsque requise","intlStudents.findACourse.requirementsNote":"Si vos qualifications ne répondent pas aux conditions d'entrée directe, un programme préparatoire, pré-master ou de remise à niveau en anglais peut être disponible. La progression est soumise aux conditions du prestataire.","intlStudents.findACourse.ieltsTitle":"Avez-Vous Besoin de l'IELTS ?","intlStudents.findACourse.ieltsP1":"L'IELTS est largement accepté, mais ce n'est pas la seule façon de démontrer vos compétences en anglais. Certaines universités acceptent d'autres tests approuvés, des qualifications scolaires spécifiques ou une preuve d'études antérieures en anglais. La bonne preuve dépen
204d de l'université, du niveau du cours et des exigences du visa étudiant.","intlStudents.findACourse.ieltsP2":"Confirmez toujours l'exigence exacte avant de réserver un test. Legal Connect UK peut vous aider à comprendre les options indiquées par l'établissement de votre choix, mais ce sont l'université et les autorités britanniques qui prennent les décisions finales.","intlStudents.findACourse.feesTitle":"Frais de Scolarité et Bourses au Royaume-Uni","intlStudents.findACourse.feesP1":"Les frais de scolarité varient considérablement selon l'université, la matière et le niveau d'études. À titre indicatif vérifié en juillet 2026, Study UK indique des frais internationaux pour les licences d'environ 11 400 £ à 38 000 £ et pour les masters d'environ 9 000 £ à 30 000 £. Les cours de laboratoire, cliniques ou spécialisés peuvent coûter plus cher, et les frais peuvent changer à chaque session d'admission.","intlStudents.findACourse.feesP2":"Des bourses, des aides et des remises sur les frais de scolarité peuvent être disponibles auprès des universités, des gouvernements et d'organisations externes. L'éligibilité peut dépendre de la nationalité, des résultats académiques, de la matière, du niveau d'études ou de la situation financière. Le financement est compétitif et ne peut être garanti.","intlStudents.findACourse.budgetTitle":"Budgetisez avec soin","intlStudents.findACourse.budgetText":"En plus des frais de scolarité, prévoyez le logement, la nourriture, les transports, les voyages, les frais de visa et les frais de santé. Les exigences financières du visa étudiant sont fixées séparément par le gouvernement britannique et doivent toujours être vérifiées sur GOV.UK avant de postuler.","intlStudents.findACourse.locationsTitle":"Étudiez à Travers le Royaume-Uni","intlStudents.findACourse.locationsP1":"Les étudiants internationaux peuvent choisir des universités et collèges en Angleterre, en Écosse, au Pays de Galles et en Irlande du Nord. Votre lieu préféré peut affecter la disponibilité des cours, les frais de scolarité, les coûts de logement, les transports et le mode de vie.","intlStudents.findACourse.locationsP2":"Les destinations étudiantes populaires incluent Londres, Birmingham, Manchester, Leeds, Liverpool, Nottingham, Leicester, Coventry, Glasgow, Édimbourg, Cardiff et Belfast. Une université dans une ville plus petite ou sur un campus peut offrir une expérience et un budget différents d'une grande ville, alors comparez l'ensemble plutôt que le seul nom de la ville.","intlStudents.findACourse.helpTitle":"Comment Legal Connect UK Peut Vous Aider","intlStudents.findACourse.helpIntro":"Postuler pour étudier à l'étranger implique plus que le choix d'un cours. Notre soutien aux étudiants internationaux est conçu pour rendre le processus plus clair et plus organisé.","intlStudents.findACourse.helpLanguages":"Nous fournissons un soutien en anglais et en français, aidant les candidats anglophones et francophones à comprendre le processus avec plus de confiance.","intlStudents.findACourse.support.assessment":"Évaluation initiale de l'éligibilité","intlStudents.findACourse.support.recommendations":"Recommandations personnalisées de cours et d'universités","intlStudents.findACourse.support.entryRequirements":"Conseils sur les conditions d'entrée académiques et linguistiques","intlStudents.findACourse.support.application":"Aide au formulaire de candidature","intlStudents.findACourse.support.personalStatement":"Conseils pour la lettre de motivation ou l'exposé des objectifs","intlStudents.findACourse.support.documentChecks":"Vérification des documents avant soumission","intlStudents.findACourse.support.interviewPrep":"Préparation aux entretiens et aux entretiens de crédibilité","intlStudents.findACourse.support.scholarships":"Informations sur les frais de scolarité et les bourses possibles","intlStudents.findACourse.support.visa":"Conseils généraux sur le processus du visa étudiant et orientation","intlStudents.findACourse.support.accommodation":"Soutien pour l'hébergement, le départ et l'arrivée","intlStudents.findACourse.journeyTitle":"Votre Parcours de Candidature Universitaire au Royaume-Uni","intlStudents.findACourse.journey.step1":"Dites-nous vos qualifications, la matière souhaitée, votre budget, le lieu et la session d'admission.","intlStudents.findACourse.journey.step2":"Recevez une liste courte d'options de cours et d'établissements adaptés basée sur les informations disponibles.","intlStudents.findACourse.journey.step3":"Préparez vos documents académiques, de langue et 
204complémentaires.","intlStudents.findACourse.journey.step4":"Après avoir reçu une offre éligible, préparez les étapes suivantes, qui peuvent inclure des dépôts, les exigences du CAS, une demande de visa étudiant, le logement et les voyages.","intlStudents.findACourse.whyChooseTitle":"Pourquoi Choisir Legal Connect UK ?","intlStudents.findACourse.whyUs.personalised":"Des conseils personnalisés plutôt qu'une liste de cours universelle","intlStudents.findACourse.whyUs.undergraduate":"Soutien pour les candidats de premier et de deuxième cycle","intlStudents.findACourse.whyUs.communication":"Communication en anglais et en français","intlStudents.findACourse.whyUs.fullJourney":"Aide de la recherche initiale du cours jusqu'à l'inscription et à l'arrivée","intlStudents.findACourse.whyUs.clear":"Explications claires des exigences, des coûts et des prochaines étapes","intlStudents.findACourse.whyChooseNote":"Aucun conseiller ne peut garantir l'admission universitaire, une bourse, un CAS ou un visa étudiant britannique. Ces décisions sont prises par l'université, l'organisme de financement ou l'autorité britannique compétente.","intlStudents.findACourse.ctaTitle":"Commencez Votre Parcours d'Études au Royaume-Uni","intlStudents.findACourse.ctaDesc":"Votre choix de cours peut façonner votre éducation, votre carrière et votre expérience internationale. Laissez Legal Connect UK vous aider à explorer des options de cours réalistes au Royaume-Uni et à préparer la prochaine étape."}},zA=({children:t})=>{const[e,n]=b.useState("en"),i=r=>KA[e][r]||r;return f.jsx(Fw.Provider,{value:{language:e,setLanguage:n,t:i},children:t})};var zm=function(){return zm=Object.assign||function(e){for(var n,i=1,r=arguments.length;i<r;i++){n=arguments[i];for(var s in n)Object.prototype.hasOwnProperty.call(n,s)&&(e[s]=n[s])}return e},zm.apply(this,arguments)};function Fu(t,e){var n={};for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&e.indexOf(i)<0&&(n[i]=t[i]);if(t!=null&&typeof Object.getOwnPropertySymbols=="function")for(var r=0,i=Object.getOwnPropertySymbols(t);r<i.length;r++)e.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(t,i[r])&&(n[i[r]]=t[i[r]]);return n}function VA(t,e,n,i){function r(s){return s instanceof n?s:new n(function(o){o(s)})}return new(n||(n=Promise))(function(s,o){function a(c){try{u(i.next(c))}catch(p){o(p)}}function l(c){try{u(i.throw(c))}catch(p){o(p)}}function u(c){c.done?s(c.value):r(c.value).then(a,l)}u((i=i.apply(t,e||[])).next())})}function RO(t,e,n){if(n||arguments.length===2)for(var i=0,r=e.length,s;i<r;i++)(s||!(i in e))&&(s||(s=Array.prototype.slice.call(e,0,i)),s[i]=e[i]);return t.concat(s||Array.prototype.slice.call(e))}const BA=t=>t?(...e)=>t(...e):(...e)=>fetch(...e);class Th extends Error{constructor(e,n="FunctionsError",i){super(e),this.name=n,this.context=i}}class WA extends Th{constructor(e){super("Failed to send a request to the Edge Function","FunctionsFetchError",e)}}class Vm extends Th{constructor(e){super("Relay Error invoking the Edge Function","FunctionsRelayError",e)}}class Bm extends Th{constructor(e){super("Edge Function returned a non-2xx status code","FunctionsHttpError",e)}}var Yd;(function(t){t.Any="any",t.ApNortheast1="ap-northeast-1",t.ApNortheast2="ap-northeast-2",t.ApSouth1="ap-south-1",t.ApSoutheast1="ap-southeast-1",t.ApSoutheast2="ap-southeast-2",t.CaCentral1="ca-central-1",t.EuCentral1="eu-central-1",t.EuWest1="eu-west-1",t.EuWest2="eu-west-2",t.EuWest3="eu-west-3",t.SaEast1="sa-east-1",t.UsEast1="us-east-1",t.UsWest1="us-west-1",t.UsWest2="us-west-2"})(Yd||(Yd={}));class HA{constructor(e,{headers:n={},customFetch:i,region:r=Yd.Any}={}){this.url=e,this.headers=n,this.region=r,this.fetch=BA(i)}setAuth(e){this.headers.Authorization=`Bearer ${e}`}invoke(e){return VA(this,arguments,void 0,function*(n,i={}){var r;let s,o;try{const{headers:a,method:l,body:u,signal:c,timeout:p}=i;let h={},{region:d}=i;d||(d=this.region);const v=new URL(`${this.url}/${n}`);d&&d!=="any"&&(h["x-region"]=d,v.searchParams.set("forceFunctionRegion",d));let g;u&&(a&&!Object.prototype.hasOwnProperty.call(a,"Content-Type")||!a)?typeof Blob<"u"&&u instanceof Blob||u instanceof ArrayBuffer?(h["Content-Type"]="application/octet-stream",g=u):typeof u=="string"?(h["Content-Type"]="text/plain",g=u):typeof FormData<"u"&&u instanceof FormData?g=u:(h["Content-Type"]="application/json",g=JSON.stringify(u)):u&&typeof u!="string"&&!(typeof Blob<"u"&&u instanceof Blob)&&!(u instanceof ArrayBuffer)&&!(typeof FormData<"u"&&u instanceof FormData)?g=JSON.stringify(u):g=u;let w=c;p&&(o=new AbortController,s=setTimeout(()=>
204o.abort(),p),c?(w=o.signal,c.addEventListener("abort",()=>o.abort())):w=o.signal);const S=yield this.fetch(v.toString(),{method:l||"POST",headers:Object.assign(Object.assign(Object.assign({},h),this.headers),a),body:g,signal:w}).catch(C=>{throw new WA(C)}),m=S.headers.get("x-relay-error");if(m&&m==="true")throw new Vm(S);if(!S.ok)throw new Bm(S);let y=((r=S.headers.get("Content-Type"))!==null&&r!==void 0?r:"text/plain").split(";")[0].trim(),x;return y==="application/json"?x=yield S.json():y==="application/octet-stream"||y==="application/pdf"?x=yield S.blob():y==="text/event-stream"?x=S:y==="multipart/form-data"?x=yield S.formData():x=yield S.text(),{data:x,error:null,response:S}}catch(a){return{data:null,error:a,response:a instanceof Bm||a instanceof Vm?a.context:void 0}}finally{s&&clearTimeout(s)}})}}var GA=class extends Error{constructor(t){super(t.message),this.name="PostgrestError",this.details=t.details,this.hint=t.hint,this.code=t.code}},QA=class{constructor(t){var e,n,i;this.shouldThrowOnError=!1,this.method=t.method,this.url=t.url,this.headers=new Headers(t.headers),this.schema=t.schema,this.body=t.body,this.shouldThrowOnError=(e=t.shouldThrowOnError)!==null&&e!==void 0?e:!1,this.signal=t.signal,this.isMaybeSingle=(n=t.isMaybeSingle)!==null&&n!==void 0?n:!1,this.urlLengthLimit=(i=t.urlLengthLimit)!==null&&i!==void 0?i:8e3,t.fetch?this.fetch=t.fetch:this.fetch=fetch}throwOnError(){return this.shouldThrowOnError=!0,this}setHeader(t,e){return this.headers=new Headers(this.headers),this.headers.set(t,e),this}then(t,e){var n=this;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 i=this.fetch;let r=i(this.url.toString(),{method:this.method,headers:this.headers,body:JSON.stringify(this.body),signal:this.signal}).then(async s=>{let o=null,a=null,l=null,u=s.status,c=s.statusText;if(s.ok){var p,h;if(n.method!=="HEAD"){var d;const S=await s.text();S===""||(n.headers.get("Accept")==="text/csv"||n.headers.get("Accept")&&(!((d=n.headers.get("Accept"))===null||d===void 0)&&d.includes("application/vnd.pgrst.plan+text"))?a=S:a=JSON.parse(S))}const g=(p=n.headers.get("Prefer"))===null||p===void 0?void 0:p.match(/count=(exact|planned|estimated)/),w=(h=s.headers.get("content-range"))===null||h===void 0?void 0:h.split("/");g&&w&&w.length>1&&(l=parseInt(w[1])),n.isMaybeSingle&&n.method==="GET"&&Array.isArray(a)&&(a.length>1?(o={code:"PGRST116",details:`Results contain ${a.length} rows, application/vnd.pgrst.object+json requires 1 row`,hint:null,message:"JSON object requested, multiple (or no) rows returned"},a=null,l=null,u=406,c="Not Acceptable"):a.length===1?a=a[0]:a=null)}else{var v;const g=await s.text();try{o=JSON.parse(g),Array.isArray(o)&&s.status===404&&(a=[],o=null,u=200,c="OK")}catch{s.status===404&&g===""?(u=204,c="No Content"):o={message:g}}if(o&&n.isMaybeSingle&&(!(o==null||(v=o.details)===null||v===void 0)&&v.includes("0 rows"))&&(o=null,u=200,c="OK"),o&&n.shouldThrowOnError)throw new GA(o)}return{error:o,data:a,count:l,status:u,statusText:c}});return this.shouldThrowOnError||(r=r.catch(s=>{var o;let a="",l="",u="";const c=s==null?void 0:s.cause;if(c){var p,h,d,v;const S=(p=c==null?void 0:c.message)!==null&&p!==void 0?p:"",m=(h=c==null?void 0:c.code)!==null&&h!==void 0?h:"";a=`${(d=s==null?void 0:s.name)!==null&&d!==void 0?d:"FetchError"}: ${s==null?void 0:s.message}`,a+=`
205
206Caused by: ${(v=c==null?void 0:c.name)!==null&&v!==void 0?v:"Error"}: ${S}`,m&&(a+=` (${m})`),c!=null&&c.stack&&(a+=`
207${c.stack}`)}else{var g;a=(g=s==null?void 0:s.stack)!==null&&g!==void 0?g:""}const w=this.url.toString().length;return(s==null?void 0:s.name)==="AbortError"||(s==null?void 0:s.code)==="ABORT_ERR"?(u="",l="Request was aborted (timeout or manual cancellation)",w>this.urlLengthLimit&&(l+=`. Note: Your request URL is ${w} characters, which may exceed server limits. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [many IDs])), consider using an RPC function to pass values server-side.`)):((c==null?void 0:c.name)==="HeadersOverflowError"||(c==null?void 0:c.code)==="UND_ERR_HEADERS_OVERFLOW")&&(u="",l="HTTP headers exceeded server limits (typically 16KB)",w>this.urlLengthLimit&&(l+=`. Your request URL is ${w} characters. If selecting many fields, consider using views. If filtering with large arrays (e.g., .in('id', [200+ IDs])), consider using an RPC function instead.`)),{error:{message:`${(o=s==null?void 0:s.name)!==null&&o!==void 0?o:"FetchError"}: ${s==null?void 0:s.message}`,details:a,hint:l,code:u},data:null,count:null,status:0,statusText:""}}
207)),r.then(t,e)}returns(){return this}overrideTypes(){return this}},YA=class extends QA{select(t){let e=!1;const n=(t??"*").split("").map(i=>/\s/.test(i)&&!e?"":(i==='"'&&(e=!e),i)).join("");return this.url.searchParams.set("select",n),this.headers.append("Prefer","return=representation"),this}order(t,{ascending:e=!0,nullsFirst:n,foreignTable:i,referencedTable:r=i}={}){const s=r?`${r}.order`:"order",o=this.url.searchParams.get(s);return this.url.searchParams.set(s,`${o?`${o},`:""}${t}.${e?"asc":"desc"}${n===void 0?"":n?".nullsfirst":".nullslast"}`),this}limit(t,{foreignTable:e,referencedTable:n=e}={}){const i=typeof n>"u"?"limit":`${n}.limit`;return this.url.searchParams.set(i,`${t}`),this}range(t,e,{foreignTable:n,referencedTable:i=n}={}){const r=typeof i>"u"?"offset":`${i}.offset`,s=typeof i>"u"?"limit":`${i}.limit`;return this.url.searchParams.set(r,`${t}`),this.url.searchParams.set(s,`${e-t+1}`),this}abortSignal(t){return this.signal=t,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:t=!1,verbose:e=!1,settings:n=!1,buffers:i=!1,wal:r=!1,format:s="text"}={}){var o;const a=[t?"analyze":null,e?"verbose":null,n?"settings":null,i?"buffers":null,r?"wal":null].filter(Boolean).join("|"),l=(o=this.headers.get("Accept"))!==null&&o!==void 0?o:"application/json";return this.headers.set("Accept",`application/vnd.pgrst.plan+${s}; for="${l}"; options=${a};`),s==="json"?this:this}rollback(){return this.headers.append("Prefer","tx=rollback"),this}returns(){return this}maxAffected(t){return this.headers.append("Prefer","handling=strict"),this.headers.append("Prefer",`max-affected=${t}`),this}};const Wm=new RegExp("[,()]");var Vr=class extends YA{eq(t,e){return this.url.searchParams.append(t,`eq.${e}`),this}neq(t,e){return this.url.searchParams.append(t,`neq.${e}`),this}gt(t,e){return this.url.searchParams.append(t,`gt.${e}`),this}gte(t,e){return this.url.searchParams.append(t,`gte.${e}`),this}lt(t,e){return this.url.searchParams.append(t,`lt.${e}`),this}lte(t,e){return this.url.searchParams.append(t,`lte.${e}`),this}like(t,e){return this.url.searchParams.append(t,`like.${e}`),this}likeAllOf(t,e){return this.url.searchParams.append(t,`like(all).{${e.join(",")}}`),this}likeAnyOf(t,e){return this.url.searchParams.append(t,`like(any).{${e.join(",")}}`),this}ilike(t,e){return this.url.searchParams.append(t,`ilike.${e}`),this}ilikeAllOf(t,e){return this.url.searchParams.append(t,`ilike(all).{${e.join(",")}}`),this}ilikeAnyOf(t,e){return this.url.searchParams.append(t,`ilike(any).{${e.join(",")}}`),this}regexMatch(t,e){return this.url.searchParams.append(t,`match.${e}`),this}regexIMatch(t,e){return this.url.searchParams.append(t,`imatch.${e}`),this}is(t,e){return this.url.searchParams.append(t,`is.${e}`),this}isDistinct(t,e){return this.url.searchParams.append(t,`isdistinct.${e}`),this}in(t,e){const n=Array.from(new Set(e)).map(i=>typeof i=="string"&&Wm.test(i)?`"${i}"`:`${i}`).join(",");return this.url.searchParams.append(t,`in.(${n})`),this}notIn(t,e){const n=Array.from(new Set(e)).map(i=>typeof i=="string"&&Wm.test(i)?`"${i}"`:`${i}`).join(",");return this.url.searchParams.append(t,`not.in.(${n})`),this}contains(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cs.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cs.{${e.join(",")}}`):this.url.searchParams.append(t,`cs.${JSON.stringify(e)}`),this}containedBy(t,e){return typeof e=="string"?this.url.searchParams.append(t,`cd.${e}`):Array.isArray(e)?this.url.searchParams.append(t,`cd.{${e.join(",")}}`):this.url.searchParams.append(t,`cd.${JSON.stringify(e)}`),this}rangeGt(t,e){return this.url.searchParams.append(t,`sr.${e}`),this}rangeGte(t,e){return this.url.searchParams.append(t,`nxl.${e}`),this}rangeLt(t,e){return this.url.searchParams.append(t,`sl.${e}`),this}rangeLte(t,e){return this.url.searchParams.append(t,`nxr.${e}`),this}rangeAdjacent(t,e){return this.url.searchParams.append(t,`adj.${e}`),this}overlaps(t,e){return typeof e=="string"?this.url.searchParams.append(t,`ov.${e}`):this.url.searchParams.append(t,`ov.{${e.join(",")}}`),this}textSearch(t,e,{config:n,type:i}={}){let r="";i==="plain"?r="pl":i==="phrase"?r="ph":i==="websearch"&&(r="w");const s=n===void 0?"":`(${n})`;return this.url.searchParams.append(t,`${r}fts${s}.${e}`),this}match(t){return Object.entries(t).forEach(([e,n])=>{this.url.searchParams.append(e,`eq.${n}`)}),this}not(t,e,n){return this.url.searchParams.append(t,`not.${e}.${n}`),this}or(t,{foreignTable:e,referencedTable:n=e}={}){const i=n?`${n}.or`:"or";return this.url.searchParams.append(i,`(${t})`),this}filter(t,e,n){return this.url.searchParams.append(t,`${e}.${n}`),this}},JA=class{constructor(t,{headers:e={},schema:n,fetch:i,urlLengthLimit:r=8e3}){this.url=t,this.headers=new Headers(e),this.schema=n,this.fetch=i,this.urlLengthLimit=r}
207cloneRequestState(){return{url:new URL(this.url.toString()),headers:new Headers(this.headers)}}select(t,e){const{head:n=!1,count:i}=e??{},r=n?"HEAD":"GET";let s=!1;const o=(t??"*").split("").map(u=>/\s/.test(u)&&!s?"":(u==='"'&&(s=!s),u)).join(""),{url:a,headers:l}=this.cloneRequestState();return a.searchParams.set("select",o),i&&l.append("Prefer",`count=${i}`),new Vr({method:r,url:a,headers:l,schema:this.schema,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}insert(t,{count:e,defaultToNull:n=!0}={}){var i;const r="POST",{url:s,headers:o}=this.cloneRequestState();if(e&&o.append("Prefer",`count=${e}`),n||o.append("Prefer","missing=default"),Array.isArray(t)){const a=t.reduce((l,u)=>l.concat(Object.keys(u)),[]);if(a.length>0){const l=[...new Set(a)].map(u=>`"${u}"`);s.searchParams.set("columns",l.join(","))}}return new Vr({method:r,url:s,headers:o,schema:this.schema,body:t,fetch:(i=this.fetch)!==null&&i!==void 0?i:fetch,urlLengthLimit:this.urlLengthLimit})}upsert(t,{onConflict:e,ignoreDuplicates:n=!1,count:i,defaultToNull:r=!0}={}){var s;const o="POST",{url:a,headers:l}=this.cloneRequestState();if(l.append("Prefer",`resolution=${n?"ignore":"merge"}-duplicates`),e!==void 0&&a.searchParams.set("on_conflict",e),i&&l.append("Prefer",`count=${i}`),r||l.append("Prefer","missing=default"),Array.isArray(t)){const u=t.reduce((c,p)=>c.concat(Object.keys(p)),[]);if(u.length>0){const c=[...new Set(u)].map(p=>`"${p}"`);a.searchParams.set("columns",c.join(","))}}return new Vr({method:o,url:a,headers:l,schema:this.schema,body:t,fetch:(s=this.fetch)!==null&&s!==void 0?s:fetch,urlLengthLimit:this.urlLengthLimit})}update(t,{count:e}={}){var n;const i="PATCH",{url:r,headers:s}=this.cloneRequestState();return e&&s.append("Prefer",`count=${e}`),new Vr({method:i,url:r,headers:s,schema:this.schema,body:t,fetch:(n=this.fetch)!==null&&n!==void 0?n:fetch,urlLengthLimit:this.urlLengthLimit})}delete({count:t}={}){var e;const n="DELETE",{url:i,headers:r}=this.cloneRequestState();return t&&r.append("Prefer",`count=${t}`),new Vr({method:n,url:i,headers:r,schema:this.schema,fetch:(e=this.fetch)!==null&&e!==void 0?e:fetch,urlLengthLimit:this.urlLengthLimit})}};function sa(t){"@babel/helpers - typeof";return sa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},sa(t)}function XA(t,e){if(sa(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e||"default");if(sa(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ZA(t){var e=XA(t,"string");return sa(e)=="symbol"?e:e+""}function eT(t,e,n){return(e=ZA(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Hm(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Ya(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?Hm(Object(n),!0).forEach(function(i){eT(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Hm(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}var tT=class Mw{constructor(e,{headers:n={},schema:i,fetch:r,timeout:s,urlLengthLimit:o=8e3}={}){this.url=e,this.headers=new Headers(n),this.schemaName=i,this.urlLengthLimit=o;const a=r??globalThis.fetch;s!==void 0&&s>0?this.fetch=(l,u)=>{const c=new AbortController,p=setTimeout(()=>c.abort(),s),h=u==null?void 0:u.signal;if(h){if(h.aborted)return clearTimeout(p),a(l,u);const d=()=>{clearTimeout(p),c.abort()};return h.addEventListener("abort",d,{once:!0}),a(l,Ya(Ya({},u),{},{signal:c.signal})).finally(()=>{clearTimeout(p),h.removeEventListener("abort",d)})}return a(l,Ya(Ya({},u),{},{signal:c.signal})).finally(()=>clearTimeout(p))}:this.fetch=a}from(e){if(!e||typeof e!="string"||e.trim()==="")throw new Error("Invalid relation name: relation must be a non-empty string.");return new JA(new URL(`${this.url}/${e}`),{headers:new Headers(this.headers),schema:this.schemaName,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}schema(e){return new Mw(this.url,{headers:this.headers,schema:e,fetch:this.fetch,urlLengthLimit:this.urlLengthLimit})}rpc(e,n={},{head:i=!1,get:r=!1,count:s}={}){var o;let a;const l=new URL(`${this.url}/rpc/${e}`);let u;const c=d=>d!==null&&typeof d=="object"&&(!Array.isArray(d)||d.some(c)),p=i&&Object.values(n).some(c);p?(a="POST",u=n):i||r?(a=i?"HEAD":"GET",Object.entries(n).filter(([d,v])=>v!==void 0).map(([d,v])=>[d,Array.isArray(v)?`{${v.join(",")}}`:`${v}
207`]).forEach(([d,v])=>{l.searchParams.append(d,v)})):(a="POST",u=n);const h=new Headers(this.headers);return p?h.set("Prefer",s?`count=${s},return=minimal`:"return=minimal"):s&&h.set("Prefer",`count=${s}`),new Vr({method:a,url:l,headers:h,schema:this.schemaName,body:u,fetch:(o=this.fetch)!==null&&o!==void 0?o:fetch,urlLengthLimit:this.urlLengthLimit})}};class nT{constructor(){}static detectEnvironment(){var e;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"&&(!((e=navigator.userAgent)===null||e===void 0)&&e.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."};const n=globalThis.process;if(n){const i=n.versions;if(i&&i.node){const r=i.node,s=parseInt(r.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:
208import ws from "ws"
209new 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 e=this.detectEnvironment();if(e.constructor)return e.constructor;let n=e.error||"WebSocket not supported in this environment.";throw e.workaround&&(n+=`
210
211Suggested solution: ${e.workaround}`),new Error(n)}static createWebSocket(e,n){const i=this.getWebSocketConstructor();return new i(e,n)}static isWebSocketSupported(){try{const e=this.detectEnvironment();return e.type==="native"||e.type==="ws"}catch{return!1}}}const iT="2.95.3",rT=`realtime-js/${iT}`,sT="1.0.0",$w="2.0.0",Gm=$w,Jd=1e4,oT=1e3,aT=100;var bi;(function(t){t[t.connecting=0]="connecting",t[t.open=1]="open",t[t.closing=2]="closing",t[t.closed=3]="closed"})(bi||(bi={}));var Fe;(function(t){t.closed="closed",t.errored="errored",t.joined="joined",t.joining="joining",t.leaving="leaving"})(Fe||(Fe={}));var fn;(function(t){t.close="phx_close",t.error="phx_error",t.join="phx_join",t.reply="phx_reply",t.leave="phx_leave",t.access_token="access_token"})(fn||(fn={}));var Xd;(function(t){t.websocket="websocket"})(Xd||(Xd={}));var cr;(function(t){t.Connecting="connecting",t.Open="open",t.Closing="closing",t.Closed="closed"})(cr||(cr={}));class lT{constructor(e){this.HEADER_LENGTH=1,this.USER_BROADCAST_PUSH_META_LENGTH=6,this.KINDS={userBroadcastPush:3,userBroadcast:4},this.BINARY_ENCODING=0,this.JSON_ENCODING=1,this.BROADCAST_EVENT="broadcast",this.allowedMetadataKeys=[],this.allowedMetadataKeys=e??[]}encode(e,n){if(e.event===this.BROADCAST_EVENT&&!(e.payload instanceof ArrayBuffer)&&typeof e.payload.event=="string")return n(this._binaryEncodeUserBroadcastPush(e));let i=[e.join_ref,e.ref,e.topic,e.event,e.payload];return n(JSON.stringify(i))}_binaryEncodeUserBroadcastPush(e){var n;return this._isArrayBuffer((n=e.payload)===null||n===void 0?void 0:n.payload)?this._encodeBinaryUserBroadcastPush(e):this._encodeJsonUserBroadcastPush(e)}_encodeBinaryUserBroadcastPush(e){var n,i;const r=(i=(n=e.payload)===null||n===void 0?void 0:n.payload)!==null&&i!==void 0?i:new ArrayBuffer(0);return this._encodeUserBroadcastPush(e,this.BINARY_ENCODING,r)}_encodeJsonUserBroadcastPush(e){var n,i;const r=(i=(n=e.payload)===null||n===void 0?void 0:n.payload)!==null&&i!==void 0?i:{},o=new TextEncoder().encode(JSON.stringify(r)).buffer;return this._encodeUserBroadcastPush(e,this.JSON_ENCODING,o)}_encodeUserBroadcastPush(e,n,i){var r,s;const o=e.topic,a=(r=e.ref)!==null&&r!==void 0?r:"",l=(s=e.join_ref)!==null&&s!==void 0?s:"",u=e.payload.event,c=this.allowedMetadataKeys?this._pick(e.payload,this.allowedMetadataKeys):{},p=Object.keys(c).length===0?"":JSON.stringify(c);if(l.length>255)throw new Error(`joinRef length ${l.length} exceeds maximum of 255`);if(a.length>255)throw new Error(`ref length ${a.length} exceeds maximum of 255`);if(o.length>255)throw new Error(`topic length ${o.length} exceeds maximum of 255`);if(u.length>255)throw new Error(`userEvent length ${u.length} exceeds maximum of 255`);if(p.length>255)throw new Error(`metadata length ${p.length} exceeds maximum of 255`);const h=this.USER_BROADCAST_PUSH_META_LENGTH+l.length+a.length+o.length+u.length+p.length,d=new ArrayBuffer(this.HEADER_LENGTH+h);let v=new DataView(d),g=0;v.setUint8(g++,this.KINDS.userBroadcastPush),v.setUint8(g++,l.length),v.setUint8(g++,a.length),v.setUint8(g++,o.length),v.setUint8(g++,u.length),v.setUint8(g++,p.length),v.setUint8(g++,n),Array.from(l,S=>
211v.setUint8(g++,S.charCodeAt(0))),Array.from(a,S=>v.setUint8(g++,S.charCodeAt(0))),Array.from(o,S=>v.setUint8(g++,S.charCodeAt(0))),Array.from(u,S=>v.setUint8(g++,S.charCodeAt(0))),Array.from(p,S=>v.setUint8(g++,S.charCodeAt(0)));var w=new Uint8Array(d.byteLength+i.byteLength);return w.set(new Uint8Array(d),0),w.set(new Uint8Array(i),d.byteLength),w.buffer}decode(e,n){if(this._isArrayBuffer(e)){let i=this._binaryDecode(e);return n(i)}if(typeof e=="string"){const i=JSON.parse(e),[r,s,o,a,l]=i;return n({join_ref:r,ref:s,topic:o,event:a,payload:l})}return n({})}_binaryDecode(e){const n=new DataView(e),i=n.getUint8(0),r=new TextDecoder;switch(i){case this.KINDS.userBroadcast:return this._decodeUserBroadcast(e,n,r)}}_decodeUserBroadcast(e,n,i){const r=n.getUint8(1),s=n.getUint8(2),o=n.getUint8(3),a=n.getUint8(4);let l=this.HEADER_LENGTH+4;const u=i.decode(e.slice(l,l+r));l=l+r;const c=i.decode(e.slice(l,l+s));l=l+s;const p=i.decode(e.slice(l,l+o));l=l+o;const h=e.slice(l,e.byteLength),d=a===this.JSON_ENCODING?JSON.parse(i.decode(h)):h,v={type:this.BROADCAST_EVENT,event:c,payload:d};return o>0&&(v.meta=JSON.parse(p)),{join_ref:null,ref:null,topic:u,event:this.BROADCAST_EVENT,payload:v}}_isArrayBuffer(e){var n;return e instanceof ArrayBuffer||((n=e==null?void 0:e.constructor)===null||n===void 0?void 0:n.name)==="ArrayBuffer"}_pick(e,n){return!e||typeof e!="object"?{}:Object.fromEntries(Object.entries(e).filter(([i])=>n.includes(i)))}}class Kw{constructor(e,n){this.callback=e,this.timerCalc=n,this.timer=void 0,this.tries=0,this.callback=e,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 ye;(function(t){t.abstime="abstime",t.bool="bool",t.date="date",t.daterange="daterange",t.float4="float4",t.float8="float8",t.int2="int2",t.int4="int4",t.int4range="int4range",t.int8="int8",t.int8range="int8range",t.json="json",t.jsonb="jsonb",t.money="money",t.numeric="numeric",t.oid="oid",t.reltime="reltime",t.text="text",t.time="time",t.timestamp="timestamp",t.timestamptz="timestamptz",t.timetz="timetz",t.tsrange="tsrange",t.tstzrange="tstzrange"})(ye||(ye={}));const Qm=(t,e,n={})=>{var i;const r=(i=n.skipTypes)!==null&&i!==void 0?i:[];return e?Object.keys(e).reduce((s,o)=>(s[o]=uT(o,t,e,r),s),{}):{}},uT=(t,e,n,i)=>{const r=e.find(a=>a.name===t),s=r==null?void 0:r.type,o=n[t];return s&&!i.includes(s)?zw(s,o):Zd(o)},zw=(t,e)=>{if(t.charAt(0)==="_"){const n=t.slice(1,t.length);return hT(e,n)}switch(t){case ye.bool:return cT(e);case ye.float4:case ye.float8:case ye.int2:case ye.int4:case ye.int8:case ye.numeric:case ye.oid:return dT(e);case ye.json:case ye.jsonb:return pT(e);case ye.timestamp:return fT(e);case ye.abstime:case ye.date:case ye.daterange:case ye.int4range:case ye.int8range:case ye.money:case ye.reltime:case ye.text:case ye.time:case ye.timestamptz:case ye.timetz:case ye.tsrange:case ye.tstzrange:return Zd(e);default:return Zd(e)}},Zd=t=>t,cT=t=>{switch(t){case"t":return!0;case"f":return!1;default:return t}},dT=t=>{if(typeof t=="string"){const e=parseFloat(t);if(!Number.isNaN(e))return e}return t},pT=t=>{if(typeof t=="string")try{return JSON.parse(t)}catch{return t}return t},hT=(t,e)=>{if(typeof t!="string")return t;const n=t.length-1,i=t[n];if(t[0]==="{"&&i==="}"){let s;const o=t.slice(1,n);try{s=JSON.parse("["+o+"]")}catch{s=o?o.split(","):[]}return s.map(a=>zw(e,a))}return t},fT=t=>typeof t=="string"?t.replace(" ","T"):t,Vw=t=>{const e=new URL(t);return e.protocol=e.protocol.replace(/^ws/i,"http"),e.pathname=e.pathname.replace(/\/+$/,"").replace(/\/socket\/websocket$/i,"").replace(/\/socket$/i,"").replace(/\/websocket$/i,""),e.pathname===""||e.pathname==="/"?e.pathname="/api/broadcast":e.pathname=e.pathname+"/api/broadcast",e.href};class Rc{constructor(e,n,i={},r=Jd){this.channel=e,this.event=n,this.payload=i,this.timeout=r,this.sent=!1,this.timeoutTimer=void 0,this.ref="",this.receivedResp=null,this.recHooks=[],this.refEvent=null}resend(e){this.timeout=e,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,j
211oin_ref:this.channel._joinRef()}))}updatePayload(e){this.payload=Object.assign(Object.assign({},this.payload),e)}receive(e,n){var i;return this._hasReceived(e)&&n((i=this.receivedResp)===null||i===void 0?void 0:i.response),this.recHooks.push({status:e,callback:n}),this}startTimeout(){if(this.timeoutTimer)return;this.ref=this.channel.socket._makeRef(),this.refEvent=this.channel._replyEventName(this.ref);const e=n=>{this._cancelRefEvent(),this._cancelTimeout(),this.receivedResp=n,this._matchReceive(n)};this.channel._on(this.refEvent,{},e),this.timeoutTimer=setTimeout(()=>{this.trigger("timeout",{})},this.timeout)}trigger(e,n){this.refEvent&&this.channel._trigger(this.refEvent,{status:e,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:e,response:n}){this.recHooks.filter(i=>i.status===e).forEach(i=>i.callback(n))}_hasReceived(e){return this.receivedResp&&this.receivedResp.status===e}}var Ym;(function(t){t.SYNC="sync",t.JOIN="join",t.LEAVE="leave"})(Ym||(Ym={}));class Oo{constructor(e,n){this.channel=e,this.state={},this.pendingDiffs=[],this.joinRef=null,this.enabled=!1,this.caller={onJoin:()=>{},onLeave:()=>{},onSync:()=>{}};const i=(n==null?void 0:n.events)||{state:"presence_state",diff:"presence_diff"};this.channel._on(i.state,{},r=>{const{onJoin:s,onLeave:o,onSync:a}=this.caller;this.joinRef=this.channel._joinRef(),this.state=Oo.syncState(this.state,r,s,o),this.pendingDiffs.forEach(l=>{this.state=Oo.syncDiff(this.state,l,s,o)}),this.pendingDiffs=[],a()}),this.channel._on(i.diff,{},r=>{const{onJoin:s,onLeave:o,onSync:a}=this.caller;this.inPendingSyncState()?this.pendingDiffs.push(r):(this.state=Oo.syncDiff(this.state,r,s,o),a())}),this.onJoin((r,s,o)=>{this.channel._trigger("presence",{event:"join",key:r,currentPresences:s,newPresences:o})}),this.onLeave((r,s,o)=>{this.channel._trigger("presence",{event:"leave",key:r,currentPresences:s,leftPresences:o})}),this.onSync(()=>{this.channel._trigger("presence",{event:"sync"})})}static syncState(e,n,i,r){const s=this.cloneDeep(e),o=this.transformState(n),a={},l={};return this.map(s,(u,c)=>{o[u]||(l[u]=c)}),this.map(o,(u,c)=>{const p=s[u];if(p){const h=c.map(w=>w.presence_ref),d=p.map(w=>w.presence_ref),v=c.filter(w=>d.indexOf(w.presence_ref)<0),g=p.filter(w=>h.indexOf(w.presence_ref)<0);v.length>0&&(a[u]=v),g.length>0&&(l[u]=g)}else a[u]=c}),this.syncDiff(s,{joins:a,leaves:l},i,r)}static syncDiff(e,n,i,r){const{joins:s,leaves:o}={joins:this.transformState(n.joins),leaves:this.transformState(n.leaves)};return i||(i=()=>{}),r||(r=()=>{}),this.map(s,(a,l)=>{var u;const c=(u=e[a])!==null&&u!==void 0?u:[];if(e[a]=this.cloneDeep(l),c.length>0){const p=e[a].map(d=>d.presence_ref),h=c.filter(d=>p.indexOf(d.presence_ref)<0);e[a].unshift(...h)}i(a,c,l)}),this.map(o,(a,l)=>{let u=e[a];if(!u)return;const c=l.map(p=>p.presence_ref);u=u.filter(p=>c.indexOf(p.presence_ref)<0),e[a]=u,r(a,u,l),u.length===0&&delete e[a]}),e}static map(e,n){return Object.getOwnPropertyNames(e).map(i=>n(i,e[i]))}static transformState(e){return e=this.cloneDeep(e),Object.getOwnPropertyNames(e).reduce((n,i)=>{const r=e[i];return"metas"in r?n[i]=r.metas.map(s=>(s.presence_ref=s.phx_ref,delete s.phx_ref,delete s.phx_ref_prev,s)):n[i]=r,n},{})}static cloneDeep(e){return JSON.parse(JSON.stringify(e))}onJoin(e){this.caller.onJoin=e}onLeave(e){this.caller.onLeave=e}onSync(e){this.caller.onSync=e}inPendingSyncState(){return!this.joinRef||this.joinRef!==this.channel._joinRef()}}var Jm;(function(t){t.ALL="*",t.INSERT="INSERT",t.UPDATE="UPDATE",t.DELETE="DELETE"})(Jm||(Jm={}));var Lo;(function(t){t.BROADCAST="broadcast",t.PRESENCE="presence",t.POSTGRES_CHANGES="postgres_changes",t.SYSTEM="system"})(Lo||(Lo={}));var Yn;(function(t){t.SUBSCRIBED="SUBSCRIBED",t.TIMED_OUT="TIMED_OUT",t.CLOSED="CLOSED",t.CHANNEL_ERROR="CHANNEL_ERROR"})(Yn||(Yn={}));class os{constructor(e,n={config:{}},i){var r,s;if(this.topic=e,this.params=n,this.socket=i,this.bindings={},this.state=Fe.closed,this.joinedOnce=!1,this.pushBuffer=[],this.subTopic=e.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 Rc(this,fn.join,this.params,this.timeout),this.rejoinTimer=new Kw(()=>this._rejoinUntilConnected(),this.socket.reconnectAfterMs),this.joinPush.receive("ok",()=>{this.state=Fe.joined,this.rejoinTimer.reset(),this.pushBuffer.forEach(o=>o.send()),this.pushBuffer=[]}),this._onClose(()=>{this.rejoinTimer.reset(),this.socket.log("channel",`close ${this.topic} ${this._joinRef()}`),this.state=Fe.closed,this.socket._remove(this)}),this._onError(o=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,o),this.state=Fe.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("timeout",()=>{this._isJoining()&&(this.socket.log("channel",`timeout ${this.topic}`,this.joinPush.timeout),this.state=Fe.errored,this.rejoinTimer.scheduleTimeout())}),this.joinPush.receive("error",o=>{this._isLeaving()||this._isClosed()||(this.socket.log("channel",`error ${this.topic}`,o),this.state=Fe.errored,this.rejoinTimer.scheduleTimeout())}),this._on(fn.reply,{},(o,a)=>{this._trigger(this._replyEventName(a),o)}),this.presence=new Oo(this),this.broadcastEndpointURL=Vw(this.socket.endPoint),this.private=this.params.config.private||!1,!this.private&&(!((s=(r=this.params.config)===null||r===void 0?void 0:r.broadcast)===null||s===void 0)&&s.replay))throw`tried to use replay on public channel '${this.topic}'. It must be a private channel.`}subscribe(e,n=this.timeout){var i,r,s;if(this.socket.isConnected()||this.socket.connect(),this.state==Fe.closed){const{config:{broadcast:o,presence:a,private:l}}=this.params,u=(r=(i=this.bindings.postgres_changes)===null||i===void 0?void 0:i.map(d=>d.filter))!==null&&r!==void 0?r:[],c=!!this.bindings[Lo.PRESENCE]&&this.bindings[Lo.PRESENCE].length>0||((s=this.params.config.presence)===null||s===void 0?void 0:s.enabled)===!0,p={},h={broadcast:o,presence:Object.assign(Object.assign({},a),{enabled:c}),postgres_changes:u,private:l};this.socket.accessTokenValue&&(p.access_token=this.socket.accessTokenValue),this._onError(d=>e==null?void 0:e(Yn.CHANNEL_ERROR,d)),this._onClose(()=>e==null?void 0:e(Yn.CLOSED)),this.updateJoinPayload(Object.assign({config:h},p)),this.joinedOnce=!0,this._rejoin(n),this.joinPush.receive("ok",async({postgres_changes:d})=>{var v;if(this.socket._isManualToken()||this.socket.setAuth(),d===void 0){e==null||e(Yn.SUBSCRIBED);return}else{const g=this.bindings.postgres_changes,w=(v=g==null?void 0:g.length)!==null&&v!==void 0?v:0,S=[];for(let m=0;m<w;m++){const y=g[m],{filter:{event:x,schema:C,table:E,filter:_}}=y,A=d&&d[m];if(A&&A.event===x&&os.isFilterValueEqual(A.schema,C)&&os.isFilterValueEqual(A.table,E)&&os.isFilterValueEqual(A.filter,_))S.push(Object.assign(Object.assign({},y),{id:A.id}));else{this.unsubscribe(),this.state=Fe.errored,e==null||e(Yn.CHANNEL_ERROR,new Error("mismatch between server and client bindings for postgres changes"));return}}this.bindings.postgres_changes=S,e&&e(Yn.SUBSCRIBED);return}}).receive("error",d=>{this.state=Fe.errored,e==null||e(Yn.CHANNEL_ERROR,new Error(JSON.stringify(Object.values(d).join(", ")||"error")))}).receive("timeout",()=>{e==null||e(Yn.TIMED_OUT)})}return this}presenceState(){return this.presence.state}async track(e,n={}){return await this.send({type:"presence",event:"track",payload:e},n.timeout||this.timeout)}async untrack(e={}){return await this.send({type:"presence",event:"untrack"},e)}on(e,n,i){return this.state===Fe.joined&&e===Lo.PRESENCE&&(this.socket.log("channel",`resubscribe to ${this.topic} due to change in presence callbacks on joined channel`),this.unsubscribe().then(async()=>await this.subscribe())),this._on(e,n,i)}async httpSend(e,n,i={}){var r;if(n==null)return Promise.reject("Payload is required for httpSend()");const s={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(s.Authorization=`Bearer ${this.socket.accessTokenValue}`);const o={method:"POST",headers:s,body:JSON.stringify({messages:[{topic:this.subTopic,event:e,payload:n,private:this.private}]})},a=await this._fetchWithTimeout(this.broadcastEndpointURL,o,(r=i.timeout)!==null&&r!==void 0?r:this.timeout);if(a.status===202)return{success:!0};let l=a.statusText;
211try{const u=await a.json();l=u.error||u.message||l}catch{}return Promise.reject(new Error(l))}async send(e,n={}){var i,r;if(!this._canPush()&&e.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:s,payload:o}=e,a={apikey:this.socket.apiKey?this.socket.apiKey:"","Content-Type":"application/json"};this.socket.accessTokenValue&&(a.Authorization=`Bearer ${this.socket.accessTokenValue}`);const l={method:"POST",headers:a,body:JSON.stringify({messages:[{topic:this.subTopic,event:s,payload:o,private:this.private}]})};try{const u=await this._fetchWithTimeout(this.broadcastEndpointURL,l,(i=n.timeout)!==null&&i!==void 0?i:this.timeout);return await((r=u.body)===null||r===void 0?void 0:r.cancel()),u.ok?"ok":"error"}catch(u){return u.name==="AbortError"?"timed out":"error"}}else return new Promise(s=>{var o,a,l;const u=this._push(e.type,e,n.timeout||this.timeout);e.type==="broadcast"&&!(!((l=(a=(o=this.params)===null||o===void 0?void 0:o.config)===null||a===void 0?void 0:a.broadcast)===null||l===void 0)&&l.ack)&&s("ok"),u.receive("ok",()=>s("ok")),u.receive("error",()=>s("error")),u.receive("timeout",()=>s("timed out"))})}updateJoinPayload(e){this.joinPush.updatePayload(e)}unsubscribe(e=this.timeout){this.state=Fe.leaving;const n=()=>{this.socket.log("channel",`leave ${this.topic}`),this._trigger(fn.close,"leave",this._joinRef())};this.joinPush.destroy();let i=null;return new Promise(r=>{i=new Rc(this,fn.leave,{},e),i.receive("ok",()=>{n(),r("ok")}).receive("timeout",()=>{n(),r("timed out")}).receive("error",()=>{r("error")}),i.send(),this._canPush()||i.trigger("ok",{})}).finally(()=>{i==null||i.destroy()})}teardown(){this.pushBuffer.forEach(e=>e.destroy()),this.pushBuffer=[],this.rejoinTimer.reset(),this.joinPush.destroy(),this.state=Fe.closed,this.bindings={}}async _fetchWithTimeout(e,n,i){const r=new AbortController,s=setTimeout(()=>r.abort(),i),o=await this.socket.fetch(e,Object.assign(Object.assign({},n),{signal:r.signal}));return clearTimeout(s),o}_push(e,n,i=this.timeout){if(!this.joinedOnce)throw`tried to push '${e}' to '${this.topic}' before joining. Use channel.subscribe() before pushing events`;let r=new Rc(this,e,n,i);return this._canPush()?r.send():this._addToPushBuffer(r),r}_addToPushBuffer(e){if(e.startTimeout(),this.pushBuffer.push(e),this.pushBuffer.length>aT){const n=this.pushBuffer.shift();n&&(n.destroy(),this.socket.log("channel",`discarded push due to buffer overflow: ${n.event}`,n.payload))}}_onMessage(e,n,i){return n}_isMember(e){return this.topic===e}_joinRef(){return this.joinPush.ref}_trigger(e,n,i){var r,s;const o=e.toLocaleLowerCase(),{close:a,error:l,leave:u,join:c}=fn;if(i&&[a,l,u,c].indexOf(o)>=0&&i!==this._joinRef())return;let h=this._onMessage(o,n,i);if(n&&!h)throw"channel onMessage callbacks must return the payload, modified or unmodified";["insert","update","delete"].includes(o)?(r=this.bindings.postgres_changes)===null||r===void 0||r.filter(d=>{var v,g,w;return((v=d.filter)===null||v===void 0?void 0:v.event)==="*"||((w=(g=d.filter)===null||g===void 0?void 0:g.event)===null||w===void 0?void 0:w.toLocaleLowerCase())===o}).map(d=>d.callback(h,i)):(s=this.bindings[o])===null||s===void 0||s.filter(d=>{var v,g,w,S,m,y;if(["broadcast","presence","postgres_changes"].includes(o))if("id"in d){const x=d.id,C=(v=d.filter)===null||v===void 0?void 0:v.event;return x&&((g=n.ids)===null||g===void 0?void 0:g.includes(x))&&(C==="*"||(C==null?void 0:C.toLocaleLowerCase())===((w=n.data)===null||w===void 0?void 0:w.type.toLocaleLowerCase()))}else{const x=(m=(S=d==null?void 0:d.filter)===null||S===void 0?void 0:S.event)===null||m===void 0?void 0:m.toLocaleLowerCase();return x==="*"||x===((y=n==null?void 0:n.event)===null||y===void 0?void 0:y.toLocaleLowerCase())}else return d.type.toLocaleLowerCase()===o}).map(d=>{if(typeof h=="object"&&"ids"in h){const v=h.data,{schema:g,table:w,commit_timestamp:S,type:m,errors:y}=v;h=Object.assign(Object.assign({},{schema:g,table:w,commit_timestamp:S,eventType:m,new:{},old:{},errors:y}),this._getPayloadRecords(v))}d.callback(h,i)})}_isClosed(){return this.state===Fe.closed}_isJoined(){return this.state===Fe.joined}_isJoining(){return this.state===Fe.joining}_isLeaving(){return this.state===Fe.leaving}_replyEventName(e){return`chan_reply_${e}`}_on(e,n,i){const r=e.toLocaleLowerCase(),s={type:r,filter:n,callback:i};return this.bindings[r]?this.bindings[r].push(s):this.bindings[r]=[s],this}_off(e,n){const i=e.toLocaleLowerCase();return this.bindings[i]&&(this.bindings[i]=this.bindings[i].filter(r=>{var s;return!(((s=r.type)===null||s===void 0?void 0:s.toLocaleLowerCase())===i&&os.isEqual(r.filter,n))})),this}static isEqual(e,n){if(Object.keys(e).length!==Object.keys(n).length)return!1;for(const i in e)if(e[i]!==n[i])return!1;return!0}static isFilterValueEqual(e,n){return(e??void 0)===(n??void 0)}_rejoinUntilConnected(){this.rejoinTimer.scheduleTimeout(),this.socket.isConnected()&&this._rejoin()}_onClose(e){this._on(fn.close,{},e)}_onError(e){this._on(fn.error,{},n=>e(n))}_canPush(){return this.socket.isConnected()&&this._isJoined()}_rejoin(e=this.timeout){this._isLeaving()||(this.socket._leaveOpenTopic(this.topic),this.state=Fe.joining,this.joinPush.resend(e))}_getPayloadRecords(e){const n={new:{},old:{}};return(e.type==="INSERT"||e.type==="UPDATE")&&(n.new=Qm(e.columns,e.record)),(e.type==="UPDATE"||e.type==="DELETE")&&(n.old=Qm(e.columns,e.old_record)),n}}const Pc=()=>{},Ja={HEARTBEAT_INTERVAL:25e3,RECONNECT_DELAY:10,HEARTBEAT_TIMEOUT_FALLBACK:100},mT=[1e3,2e3,5e3,1e4],gT=1e4,vT=`
212  addEventListener("message", (e) => {
213    if (e.data.event === "start") {
214      setInterval(() => postMessage({ event: "keepAlive" }), e.data.interval);
215    }
216  });`;class yT{constructor(e,n){var i;if(this.accessTokenValue=null,this.apiKey=null,this._manuallySetToken=!1,this.channels=new Array,this.endPoint="",this.httpEndpoint="",this.headers={},this.params={},this.timeout=Jd,this.transport=null,this.heartbeatIntervalMs=Ja.HEARTBEAT_INTERVAL,this.heartbeatTimer=void 0,this.pendingHeartbeatRef=null,this.heartbeatCallback=Pc,this.ref=0,this.reconnectTimer=null,this.vsn=Gm,this.logger=Pc,this.conn=null,this.sendBuffer=[],this.serializer
216=new lT,this.stateChangeCallbacks={open:[],close:[],error:[],message:[]},this.accessToken=null,this._connectionState="disconnected",this._wasManualDisconnect=!1,this._authPromise=null,this._heartbeatSentAt=null,this._resolveFetch=r=>r?(...s)=>r(...s):(...s)=>fetch(...s),!(!((i=n==null?void 0:n.params)===null||i===void 0)&&i.apikey))throw new Error("API key is required to connect to Realtime");this.apiKey=n.params.apikey,this.endPoint=`${e}/${Xd.websocket}`,this.httpEndpoint=Vw(e),this._initializeOptions(n),this._setupReconnectionTimer(),this.fetch=this._resolveFetch(n==null?void 0: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=nT.createWebSocket(this.endpointURL())}catch(e){this._setConnectionState("disconnected");const n=e.message;throw n.includes("Node.js")?new Error(`${n}
217
218To use Realtime in Node.js, you need to provide a WebSocket implementation:
219
220Option 1: Use Node.js 22+ which has native WebSocket support
221Option 2: Install and provide the "ws" package:
222
223  npm install ws
224
225  import ws from "ws"
226  const client = new RealtimeClient(url, {
227    ...options,
228    transport: ws
229  })`):new Error(`WebSocket not available: ${n}`)}this._setupConnectionHandlers()}}endpointURL(){return this._appendParams(this.endPoint,Object.assign({},this.params,{vsn:this.vsn}))}disconnect(e,n){if(!this.isDisconnecting())if(this._setConnectionState("disconnecting",!0),this.conn){const i=setTimeout(()=>{this._setConnectionState("disconnected")},100);this.conn.onclose=()=>{clearTimeout(i),this._setConnectionState("disconnected")},typeof this.conn.close=="function"&&(e?this.conn.close(e,n??""):this.conn.close()),this._teardownConnection()}else this._setConnectionState("disconnected")}getChannels(){return this.channels}async removeChannel(e){const n=await e.unsubscribe();return n==="ok"&&this._remove(e),this.channels.length===0&&this.disconnect(),n}async removeAllChannels(){const e=await Promise.all(this.channels.map(n=>n.unsubscribe()));return this.channels=[],this.disconnect(),e}log(e,n,i){this.logger(e,n,i)}connectionState(){switch(this.conn&&this.conn.readyState){case bi.connecting:return cr.Connecting;case bi.open:return cr.Open;case bi.closing:return cr.Closing;default:return cr.Closed}}isConnected(){return this.connectionState()===cr.Open}isConnecting(){return this._connectionState==="connecting"}isDisconnecting(){return this._connectionState==="disconnecting"}channel(e,n={config:{}}){const i=`realtime:${e}`,r=this.getChannels().find(s=>s.topic===i);if(r)return r;{const s=new os(`realtime:${e}`,n,this);return this.channels.push(s),s}}push(e){const{topic:n,event:i,payload:r,ref:s}=e,o=()=>{this.encode(e,a=>{var l;(l=this.conn)===null||l===void 0||l.send(a)})};this.log("push",`${n} ${i} (${s})`,r),this.isConnected()?o():this.sendBuffer.push(o)}async setAuth(e=null){this._authPromise=this._performAuth(e);try{await this._authPromise}finally{this._authPromise=null}}_isManualToken(){return this._manuallySetToken}async sendHeartbeat(){var e;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._heartbeatSentAt=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,(e=this.conn)===null||e===void 0||e.close(oT,"heartbeat timeout"),setTimeout(()=>{var n;this.isConnected()||(n=this.reconnectTimer)===null||n===void 0||n.scheduleTimeout()},Ja.HEARTBEAT_TIMEOUT_FALLBACK);return}this._heartbeatSentAt=Date.now(),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(e){this.heartbeatCallback=e}flushSendBuffer(){this.isConnected()&&this.sendBuffer.length>
2290&&(this.sendBuffer.forEach(e=>e()),this.sendBuffer=[])}_makeRef(){let e=this.ref+1;return e===this.ref?this.ref=0:this.ref=e,this.ref.toString()}_leaveOpenTopic(e){let n=this.channels.find(i=>i.topic===e&&(i._isJoined()||i._isJoining()));n&&(this.log("transport",`leaving duplicate topic "${e}"`),n.unsubscribe())}_remove(e){this.channels=this.channels.filter(n=>n.topic!==e.topic)}_onConnMessage(e){this.decode(e.data,n=>{if(n.topic==="phoenix"&&n.event==="phx_reply"&&n.ref&&n.ref===this.pendingHeartbeatRef){const u=this._heartbeatSentAt?Date.now()-this._heartbeatSentAt:void 0;try{this.heartbeatCallback(n.payload.status==="ok"?"ok":"error",u)}catch(c){this.log("error","error in heartbeat callback",c)}this._heartbeatSentAt=null,this.pendingHeartbeatRef=null}const{topic:i,event:r,payload:s,ref:o}=n,a=o?`(${o})`:"",l=s.status||"";this.log("receive",`${l} ${i} ${r} ${a}`.trim(),s),this.channels.filter(u=>u._isMember(i)).forEach(u=>u._trigger(r,s,o)),this._triggerStateCallbacks("message",n)})}_clearTimer(e){var n;e==="heartbeat"&&this.heartbeatTimer?(clearInterval(this.heartbeatTimer),this.heartbeatTimer=void 0):e==="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=e=>this._onConnError(e),this.conn.onmessage=e=>this._onConnMessage(e),this.conn.onclose=e=>this._onConnClose(e),this.conn.readyState===bi.open&&this._onConnOpen())}_teardownConnection(){if(this.conn){if(this.conn.readyState===bi.open||this.conn.readyState===bi.connecting)try{this.conn.close()}catch(e){this.log("error","Error closing connection",e)}this.conn.onopen=null,this.conn.onerror=null,this.conn.onmessage=null,this.conn.onclose=null,this.conn=null}this._clearAllTimers(),this._terminateWorker(),this.channels.forEach(e=>e.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 e=this._workerObjectUrl(this.workerUrl);this.workerRef=new Worker(e),this.workerRef.onerror=n=>{this.log("worker","worker error",n.message),this._terminateWorker()},this.workerRef.onmessage=n=>{n.data.event==="keepAlive"&&this.sendHeartbeat()},this.workerRef.postMessage({event:"start",interval:this.heartbeatIntervalMs})}_terminateWorker(){this.workerRef&&(this.log("worker","terminating worker"),this.workerRef.terminate(),this.workerRef=void 0)}_onConnClose(e){var n;this._setConnectionState("disconnected"),this.log("transport","close",e),this._triggerChanError(),this._clearTimer("heartbeat"),this._wasManualDisconnect||(n=this.reconnectTimer)===null||n===void 0||n.scheduleTimeout(),this._triggerStateCallbacks("close",e)}_onConnError(e){this._setConnectionState("disconnected"),this.log("transport",`${e}`),this._triggerChanError(),this._triggerStateCallbacks("error",e);try{this.heartbeatCallback("error")}catch(n){this.log("error","error in heartbeat callback",n)}}_triggerChanError(){this.channels.forEach(e=>e._trigger(fn.error))}_appendParams(e,n){if(Object.keys(n).length===0)return e;const i=e.match(/\?/)?"&":"?",r=new URLSearchParams(n);return`${e}${i}${r}`}_workerObjectUrl(e){let n;if(e)n=e;else{const i=new Blob([vT],{type:"application/javascript"});n=URL.createObjectURL(i)}return n}_setConnectionState(e,n=!1){this._connectionState=e,e==="connecting"?this._wasManualDisconnect=!1:e==="disconnecting"&&(this._wasManualDisconnect=n)}async _performAuth(e=null){let n,i=!1;if(e)n=e,i=!0;else if(this.accessToken)try{n=await this.accessToken()}catch(r){this.log("error","Error fetching access token from callback",r),n=this.accessTokenValue}else n=this.accessTokenValue;i?this._manuallySetToken=!0:this.accessToken&&(this._manuallySetToken=!1),this.accessTokenValue!=n&&(this.accessTokenValue=n,this.channels.forEac
229h(r=>{const s={access_token:n,version:rT};n&&r.updateJoinPayload(s),r.joinedOnce&&r._isJoined()&&r._push(fn.access_token,{access_token:n})}))}async _waitForAuthIfNeeded(){this._authPromise&&await this._authPromise}_setAuthSafely(e="general"){this._isManualToken()||this.setAuth().catch(n=>{this.log("error",`Error setting auth in ${e}`,n)})}_triggerStateCallbacks(e,n){try{this.stateChangeCallbacks[e].forEach(i=>{try{i(n)}catch(r){this.log("error",`error in ${e} callback`,r)}})}catch(i){this.log("error",`error triggering ${e} callbacks`,i)}}_setupReconnectionTimer(){this.reconnectTimer=new Kw(async()=>{setTimeout(async()=>{await this._waitForAuthIfNeeded(),this.isConnected()||this.connect()},Ja.RECONNECT_DELAY)},this.reconnectAfterMs)}_initializeOptions(e){var n,i,r,s,o,a,l,u,c,p,h,d;switch(this.transport=(n=e==null?void 0:e.transport)!==null&&n!==void 0?n:null,this.timeout=(i=e==null?void 0:e.timeout)!==null&&i!==void 0?i:Jd,this.heartbeatIntervalMs=(r=e==null?void 0:e.heartbeatIntervalMs)!==null&&r!==void 0?r:Ja.HEARTBEAT_INTERVAL,this.worker=(s=e==null?void 0:e.worker)!==null&&s!==void 0?s:!1,this.accessToken=(o=e==null?void 0:e.accessToken)!==null&&o!==void 0?o:null,this.heartbeatCallback=(a=e==null?void 0:e.heartbeatCallback)!==null&&a!==void 0?a:Pc,this.vsn=(l=e==null?void 0:e.vsn)!==null&&l!==void 0?l:Gm,e!=null&&e.params&&(this.params=e.params),e!=null&&e.logger&&(this.logger=e.logger),(e!=null&&e.logLevel||e!=null&&e.log_level)&&(this.logLevel=e.logLevel||e.log_level,this.params=Object.assign(Object.assign({},this.params),{log_level:this.logLevel})),this.reconnectAfterMs=(u=e==null?void 0:e.reconnectAfterMs)!==null&&u!==void 0?u:v=>mT[v-1]||gT,this.vsn){case sT:this.encode=(c=e==null?void 0:e.encode)!==null&&c!==void 0?c:(v,g)=>g(JSON.stringify(v)),this.decode=(p=e==null?void 0:e.decode)!==null&&p!==void 0?p:(v,g)=>g(JSON.parse(v));break;case $w:this.encode=(h=e==null?void 0:e.encode)!==null&&h!==void 0?h:this.serializer.encode.bind(this.serializer),this.decode=(d=e==null?void 0:e.decode)!==null&&d!==void 0?d: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=e==null?void 0:e.workerUrl}}}var oa=class extends Error{constructor(t,e){var n;super(t),this.name="IcebergError",this.status=e.status,this.icebergType=e.icebergType,this.icebergCode=e.icebergCode,this.details=e.details,this.isCommitStateUnknown=e.icebergType==="CommitStateUnknownException"||[500,502,504].includes(e.status)&&((n=e.icebergType)==null?void 0:n.includes("CommitState"))===!0}isNotFound(){return this.status===404}isConflict(){return this.status===409}isAuthenticationTimeout(){return this.status===419}};function ST(t,e,n){const i=new URL(e,t);if(n)for(const[r,s]of Object.entries(n))s!==void 0&&i.searchParams.set(r,s);return i.toString()}async function wT(t){return!t||t.type==="none"?{}:t.type==="bearer"?{Authorization:`Bearer ${t.token}`}:t.type==="header"?{[t.name]:t.value}:t.type==="custom"?await t.getHeaders():{}}function bT(t){const e=t.fetchImpl??globalThis.fetch;return{async request({method:n,path:i,query:r,body:s,headers:o}){const a=ST(t.baseUrl,i,r),l=await wT(t.auth),u=await e(a,{method:n,headers:{...s?{"Content-Type":"application/json"}:{},...l,...o},body:s?JSON.stringify(s):void 0}),c=await u.text(),p=(u.headers.get("content-type")||"").includes("application/json"),h=p&&c?JSON.parse(c):c;if(!u.ok){const d=p?h:void 0,v=d==null?void 0:d.error;throw new oa((v==null?void 0:v.message)??`Request failed with status ${u.status}`,{status:u.status,icebergType:v==null?void 0:v.type,icebergCode:v==null?void 0:v.code,details:d})}return{status:u.status,headers:u.headers,data:h}}}}function Xa(t){return t.join("�")}var xT=class{constructor(t,e=""){this.client=t,this.prefix=e}async listNamespaces(t){const e=t?{parent:Xa(t.namespace)}:void 0;return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces`,query:e})).data.namespaces.map(i=>({namespace:i}))}async createNamespace(t,e){const n={namespace:t.namespace,properties:e==null?void 0:e.properties};return(await this.client.request({method:"POST",path:`${this.prefix}/namespaces`,body:n})).data}async dropNamespace(t){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${Xa(t.namespace)}`})}async loadNamespaceMetadata(t){return{properties:(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Xa(t.namespace)}`})).data.properties}}async namespaceExists(t){try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${Xa(t.namespace)}`}),!0}catch(e){if(e instanceof oa&&e.status===404)return!1;throw e}}async createNamespaceIfNotExists(t,e){try{return await this.createNamespace(t,e)}catch(n){if(n instanceof oa&&n.status===409)return;throw n}}};function Dr(t){return t.join("�")}var kT=class{constructor(t,e="",n){this.client=t,this.prefix=e,this.accessDelegation=n}async listTables(t){return(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Dr(t.namespace)}/tables`})).data.identifiers}async createTable(t,e){const n={};return this.accessDelegation&&(n["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${Dr(t.namespace)}/tables`,body:e,headers:n})).data.metadata}async updateTable(t,e){const n=await this.client.request({method:"POST",path:`${this.prefix}/namespaces/${Dr(t.namespace)}
229/tables/${t.name}`,body:e});return{"metadata-location":n.data["metadata-location"],metadata:n.data.metadata}}async dropTable(t,e){await this.client.request({method:"DELETE",path:`${this.prefix}/namespaces/${Dr(t.namespace)}/tables/${t.name}`,query:{purgeRequested:String((e==null?void 0:e.purge)??!1)}})}async loadTable(t){const e={};return this.accessDelegation&&(e["X-Iceberg-Access-Delegation"]=this.accessDelegation),(await this.client.request({method:"GET",path:`${this.prefix}/namespaces/${Dr(t.namespace)}/tables/${t.name}`,headers:e})).data.metadata}async tableExists(t){const e={};this.accessDelegation&&(e["X-Iceberg-Access-Delegation"]=this.accessDelegation);try{return await this.client.request({method:"HEAD",path:`${this.prefix}/namespaces/${Dr(t.namespace)}/tables/${t.name}`,headers:e}),!0}catch(n){if(n instanceof oa&&n.status===404)return!1;throw n}}async createTableIfNotExists(t,e){try{return await this.createTable(t,e)}catch(n){if(n instanceof oa&&n.status===409)return await this.loadTable({namespace:t.namespace,name:e.name});throw n}}},CT=class{constructor(t){var i;let e="v1";t.catalogName&&(e+=`/${t.catalogName}`);const n=t.baseUrl.endsWith("/")?t.baseUrl:`${t.baseUrl}/`;this.client=bT({baseUrl:n,auth:t.auth,fetchImpl:t.fetch}),this.accessDelegation=(i=t.accessDelegation)==null?void 0:i.join(","),this.namespaceOps=new xT(this.client,e),this.tableOps=new kT(this.client,e,this.accessDelegation)}async listNamespaces(t){return this.namespaceOps.listNamespaces(t)}async createNamespace(t,e){return this.namespaceOps.createNamespace(t,e)}async dropNamespace(t){await this.namespaceOps.dropNamespace(t)}async loadNamespaceMetadata(t){return this.namespaceOps.loadNamespaceMetadata(t)}async listTables(t){return this.tableOps.listTables(t)}async createTable(t,e){return this.tableOps.createTable(t,e)}async updateTable(t,e){return this.tableOps.updateTable(t,e)}async dropTable(t,e){await this.tableOps.dropTable(t,e)}async loadTable(t){return this.tableOps.loadTable(t)}async namespaceExists(t){return this.namespaceOps.namespaceExists(t)}async tableExists(t){return this.tableOps.tableExists(t)}async createNamespaceIfNotExists(t,e){return this.namespaceOps.createNamespaceIfNotExists(t,e)}async createTableIfNotExists(t,e){return this.tableOps.createTableIfNotExists(t,e)}},Mu=class extends Error{constructor(t,e="storage",n,i){super(t),this.__isStorageError=!0,this.namespace=e,this.name=e==="vectors"?"StorageVectorsError":"StorageError",this.status=n,this.statusCode=i}};function $u(t){return typeof t=="object"&&t!==null&&"__isStorageError"in t}var Za=class extends Mu{constructor(t,e,n,i="storage"){super(t,i,e,n),this.name=i==="vectors"?"StorageVectorsApiError":"StorageApiError",this.status=e,this.statusCode=n}toJSON(){return{name:this.name,message:this.message,status:this.status,statusCode:this.statusCode}}},Bw=class extends Mu{constructor(t,e,n="storage"){super(t,n),this.name=n==="vectors"?"StorageVectorsUnknownError":"StorageUnknownError",this.originalError=e}};const ET=t=>t?(...e)=>t(...e):(...e)=>fetch(...e),_T=t=>{if(typeof t!="object"||t===null)return!1;const e=Object.getPrototypeOf(t);return(e===null||e===Object.prototype||Object.getPrototypeOf(e)===null)&&!(Symbol.toStringTag in t)&&!(Symbol.iterator in t)},ep=t=>{if(Array.isArray(t))return t.map(n=>ep(n));if(typeof t=="function"||t!==Object(t))return t;const e={};return Object.entries(t).forEach(([n,i])=>{const r=n.replace(/([-_][a-z])/gi,s=>s.toUpperCase().replace(/[-_]/g,""));e[r]=ep(i)}),e},AT=t=>!t||typeof t!="string"||t.length===0||t.length>100||t.trim()!==t||t.includes("/")||t.includes("\\")?!1:/^[\w!.\*'() &$@=;:+,?-]+$/.test(t);function aa(t){"@babel/helpers - typeof";return aa=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},aa(t)}function TT(t,e){if(aa(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e||"default");if(aa(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function RT(t){var e=TT(t,"string");return aa(e)=="symbol"?e:e+""}function PT(t,e,n){return(e=RT(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function Xm(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Y(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};
229e%2?Xm(Object(n),!0).forEach(function(i){PT(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):Xm(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}const Zm=t=>{var e;return t.msg||t.message||t.error_description||(typeof t.error=="string"?t.error:(e=t.error)===null||e===void 0?void 0:e.message)||JSON.stringify(t)},UT=async(t,e,n,i)=>{if(t&&typeof t=="object"&&"status"in t&&"ok"in t&&typeof t.status=="number"&&!(n!=null&&n.noResolveJson)){const r=t,s=r.status||500;if(typeof r.json=="function")r.json().then(o=>{const a=(o==null?void 0:o.statusCode)||(o==null?void 0:o.code)||s+"";e(new Za(Zm(o),s,a,i))}).catch(()=>{if(i==="vectors"){const o=s+"";e(new Za(r.statusText||`HTTP ${s} error`,s,o,i))}else{const o=s+"";e(new Za(r.statusText||`HTTP ${s} error`,s,o,i))}});else{const o=s+"";e(new Za(r.statusText||`HTTP ${s} error`,s,o,i))}}else e(new Bw(Zm(t),t,i))},IT=(t,e,n,i)=>{const r={method:t,headers:(e==null?void 0:e.headers)||{}};return t==="GET"||t==="HEAD"||!i?Y(Y({},r),n):(_T(i)?(r.headers=Y({"Content-Type":"application/json"},e==null?void 0:e.headers),r.body=JSON.stringify(i)):r.body=i,e!=null&&e.duplex&&(r.duplex=e.duplex),Y(Y({},r),n))};async function lo(t,e,n,i,r,s,o){return new Promise((a,l)=>{t(n,IT(e,i,r,s)).then(u=>{if(!u.ok)throw u;if(i!=null&&i.noResolveJson)return u;if(o==="vectors"){const c=u.headers.get("content-type");if(u.headers.get("content-length")==="0"||u.status===204)return{};if(!c||!c.includes("application/json"))return{}}return u.json()}).then(u=>a(u)).catch(u=>UT(u,l,i,o))})}function Ww(t="storage"){return{get:async(e,n,i,r)=>lo(e,"GET",n,i,r,void 0,t),post:async(e,n,i,r,s)=>lo(e,"POST",n,r,s,i,t),put:async(e,n,i,r,s)=>lo(e,"PUT",n,r,s,i,t),head:async(e,n,i,r)=>lo(e,"HEAD",n,Y(Y({},i),{},{noResolveJson:!0}),r,void 0,t),remove:async(e,n,i,r,s)=>lo(e,"DELETE",n,r,s,i,t)}}const OT=Ww("storage"),{get:la,post:cn,put:tp,head:LT,remove:Rh}=OT,Ot=Ww("vectors");var zs=class{constructor(t,e={},n,i="storage"){this.shouldThrowOnError=!1,this.url=t,this.headers=e,this.fetch=ET(n),this.namespace=i}throwOnError(){return this.shouldThrowOnError=!0,this}async handleOperation(t){var e=this;try{return{data:await t(),error:null}}catch(n){if(e.shouldThrowOnError)throw n;if($u(n))return{data:null,error:n};throw n}}},jT=class{constructor(t,e){this.downloadFn=t,this.shouldThrowOnError=e}then(t,e){return this.execute().then(t,e)}async execute(){var t=this;try{return{data:(await t.downloadFn()).body,error:null}}catch(e){if(t.shouldThrowOnError)throw e;if($u(e))return{data:null,error:e};throw e}}};let Hw;Hw=Symbol.toStringTag;var NT=class{constructor(t,e){this.downloadFn=t,this.shouldThrowOnError=e,this[Hw]="BlobDownloadBuilder",this.promise=null}asStream(){return new jT(this.downloadFn,this.shouldThrowOnError)}then(t,e){return this.getPromise().then(t,e)}catch(t){return this.getPromise().catch(t)}finally(t){return this.getPromise().finally(t)}getPromise(){return this.promise||(this.promise=this.execute()),this.promise}async execute(){var t=this;try{return{data:await(await t.downloadFn()).blob(),error:null}}catch(e){if(t.shouldThrowOnError)throw e;if($u(e))return{data:null,error:e};throw e}}};const qT={limit:100,offset:0,sortBy:{column:"name",order:"asc"}},eg={cacheControl:"3600",contentType:"text/plain;charset=UTF-8",upsert:!1};var DT=class extends zs{constructor(t,e={},n,i){super(t,e,i,"storage"),this.bucketId=n}async uploadOrUpdate(t,e,n,i){var r=this;return r.handleOperation(async()=>{let s;const o=Y(Y({},eg),i);let a=Y(Y({},r.headers),t==="POST"&&{"x-upsert":String(o.upsert)});const l=o.metadata;typeof Blob<"u"&&n instanceof Blob?(s=new FormData,s.append("cacheControl",o.cacheControl),l&&s.append("metadata",r.encodeMetadata(l)),s.append("",n)):typeof FormData<"u"&&n instanceof FormData?(s=n,s.has("cacheControl")||s.append("cacheControl",o.cacheControl),l&&!s.has("metadata")&&s.append("metadata",r.encodeMetadata(l))):(s=n,a["cache-control"]=`max-age=${o.cacheControl}`,a["content-type"]=o.contentType,l&&(a["x-metadata"]=r.toBase64(r.encodeMetadata(l))),(typeof ReadableStream<"u"&&s instanceof ReadableStream||s&&typeof s=="object"&&"pipe"in s&&typeof s.pipe=="function")&&!o.duplex&&(o.duplex="half")),i!=null&&i.headers&&(a=Y(Y({},a),i.headers));const u=r._removeEmptyFolders(e),c=r._getFinalPath(u),p=await(t=="PUT"?tp:cn)(r.fetch,`${r.url}/object/${c}`,s,Y({headers:a},o!=null&&o.duplex?{duplex:o.duplex}:{}));return{path:u,id:p.Id,fullPath:p.Key}})}async upload(t,e,n){return this.uploadOrUpdate("POST",t,e,n)}async uploadToSignedUrl(t,e,n,i){var r=this;const s=r._removeEmptyFolders(t),o=r._getFinalPath(s),a=new URL(r.url+`/object/upload/sign/${o}`);return a.searchParams.set("token",e),r.handleOperation(async()=>{let l;const u=Y({upsert:eg.upsert},i),c=Y(Y({},r.headers),{"x-upsert":String(u.upsert)});return typeof Blob<"u"&&n instanceof Blob?(l=new FormData,l.append("cacheControl",u.cacheControl),l.append("",n)):typeof FormData<"u"&&n instanceof FormData?(l=n,l.append("cacheControl",u.cacheControl)):(l=n,c["cache-control"]=`max-age=${u.cacheControl}`,c["content-type"]=u.contentType),{path:s,fullPath:(await tp(r.fetch,a.toString(),l,{headers:c})).Key}})}async createSignedUploadUrl(t,e){var n=this;return n.handleOperation(async()=>{let i=n._getFinalPath(t);const r=Y({},n.headers);e!=null&&e.upsert&&(r["x-upsert"]="true");const s=await cn(n.fetch,`${n.url}/object/upload/sign/${i}`,{},{headers:r}),o=new URL(n.url+s.url),a=o.searchParams.get("token");if(!a)throw new Mu("No token returned by API");return{signedUrl:o.toString(),path:t,token:a}})}async update(t,e,n){return this.uploadOrUpdate("PUT",t,e,n)}async move(t,e,n){var i=this;return i.handleOperation(async()=>await cn(i.fetch,`${i.url}/object/move`,{bucketId:i.bucketId,sourceKey:t,destinationKey:e,destinationBucket:n==null?void 0:n.destinationBucket},{headers:i.headers}))}async copy(t,e,n){var i=this;return i.handleOperation(async()=>({path:(await cn(i.fetch,`${i.url}/object/copy`,{bucketId:i.bucketId,sourceKey:t,destinationKey:e,destinationBucket:n==null?void 0:n.destinationBucket},{headers:i.headers})).Key}))}async createSignedUrl(t,e,n){var i=this;return i.handleOperation(async()=>{let r=i._getFinalPath(t),s=await cn(i.fetch,`${i.url}/object/sign/${r}
229`,Y({expiresIn:e},n!=null&&n.transform?{transform:n.transform}:{}),{headers:i.headers});const o=n!=null&&n.download?`&download=${n.download===!0?"":n.download}`:"";return{signedUrl:encodeURI(`${i.url}${s.signedURL}${o}`)}})}async createSignedUrls(t,e,n){var i=this;return i.handleOperation(async()=>{const r=await cn(i.fetch,`${i.url}/object/sign/${i.bucketId}`,{expiresIn:e,paths:t},{headers:i.headers}),s=n!=null&&n.download?`&download=${n.download===!0?"":n.download}`:"";return r.map(o=>Y(Y({},o),{},{signedUrl:o.signedURL?encodeURI(`${i.url}${o.signedURL}${s}`):null}))})}download(t,e,n){const i=typeof(e==null?void 0:e.transform)<"u"?"render/image/authenticated":"object",r=this.transformOptsToQueryString((e==null?void 0:e.transform)||{}),s=r?`?${r}`:"",o=this._getFinalPath(t),a=()=>la(this.fetch,`${this.url}/${i}/${o}${s}`,{headers:this.headers,noResolveJson:!0},n);return new NT(a,this.shouldThrowOnError)}async info(t){var e=this;const n=e._getFinalPath(t);return e.handleOperation(async()=>ep(await la(e.fetch,`${e.url}/object/info/${n}`,{headers:e.headers})))}async exists(t){var e=this;const n=e._getFinalPath(t);try{return await LT(e.fetch,`${e.url}/object/${n}`,{headers:e.headers}),{data:!0,error:null}}catch(i){if(e.shouldThrowOnError)throw i;if($u(i)&&i instanceof Bw){const r=i.originalError;if([400,404].includes(r==null?void 0:r.status))return{data:!1,error:i}}throw i}}getPublicUrl(t,e){const n=this._getFinalPath(t),i=[],r=e!=null&&e.download?`download=${e.download===!0?"":e.download}`:"";r!==""&&i.push(r);const s=typeof(e==null?void 0:e.transform)<"u"?"render/image":"object",o=this.transformOptsToQueryString((e==null?void 0:e.transform)||{});o!==""&&i.push(o);let a=i.join("&");return a!==""&&(a=`?${a}`),{data:{publicUrl:encodeURI(`${this.url}/${s}/public/${n}${a}`)}}}async remove(t){var e=this;return e.handleOperation(async()=>await Rh(e.fetch,`${e.url}/object/${e.bucketId}`,{prefixes:t},{headers:e.headers}))}async list(t,e,n){var i=this;return i.handleOperation(async()=>{const r=Y(Y(Y({},qT),e),{},{prefix:t||""});return await cn(i.fetch,`${i.url}/object/list/${i.bucketId}`,r,{headers:i.headers},n)})}async listV2(t,e){var n=this;return n.handleOperation(async()=>{const i=Y({},t);return await cn(n.fetch,`${n.url}/object/list-v2/${n.bucketId}`,i,{headers:n.headers},e)})}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 e=[];return t.width&&e.push(`width=${t.width}`),t.height&&e.push(`height=${t.height}`),t.resize&&e.push(`resize=${t.resize}`),t.format&&e.push(`format=${t.format}`),t.quality&&e.push(`quality=${t.quality}`),e.join("&")}};const FT="2.95.3",xa={"X-Client-Info":`storage-js/${FT}`};var MT=class extends zs{constructor(t,e={},n,i){const r=new URL(t);i!=null&&i.useNewHostname&&/supabase\.(co|in|red)$/.test(r.hostname)&&!r.hostname.includes("storage.supabase.")&&(r.hostname=r.hostname.replace("supabase.","storage.supabase."));const s=r.href.replace(/\/$/,""),o=Y(Y({},xa),e);super(s,o,n,"storage")}async listBuckets(t){var e=this;return e.handleOperation(async()=>{const n=e.listBucketOptionsToQueryString(t);return await la(e.fetch,`${e.url}/bucket${n}`,{headers:e.headers})})}async getBucket(t){var e=this;return e.handleOperation(async()=>await la(e.fetch,`${e.url}/bucket/${t}`,{headers:e.headers}))}async createBucket(t,e={public:!1}){var n=this;return n.handleOperation(async()=>await cn(n.fetch,`${n.url}/bucket`,{id:t,name:t,type:e.type,public:e.public,file_size_limit:e.fileSizeLimit,allowed_mime_types:e.allowedMimeTypes},{headers:n.headers}))}async updateBucket(t,e){var n=this;return n.handleOperation(async()=>await tp(n.fetch,`${n.url}/bucket/${t}`,{id:t,name:t,public:e.public,file_size_limit:e.fileSizeLimit,allowed_mime_types:e.allowedMimeTypes},{headers:n.headers}))}async emptyBucket(t){var e=this;return e.handleOperation(async()=>await cn(e.fetch,`${e.url}/bucket/${t}/empty`,{},{headers:e.headers}))}async deleteBucket(t){var e=this;return e.handleOperation(async()=>await Rh(e.fetch,`${e.url}/bucket/${t}`,{},{headers:e.headers}))}listBucketOptionsToQueryString(t){const e={};return t&&("limit"in t&&(e.limit=String(t.limit)),"offset"in t&&(e.offset=String(t.offset)),t.search&&(e.search=t.search),t.sortColumn&&(e.sortColumn=t.sortColumn),t.sortOrder&&(e.sortOrder=t.sortOrder)),Object.keys(e).length>0?"?"+new URLSearchParams(e).toString():""}},$T=class extends zs{constructor(t,e={},n){const i=t.replace(/\/$/,""),r=Y(Y({},xa),e);super(i,r,n,"storage")}async createBucket(t){var e=this;return e.handleOperation(async()=>await cn(e.fetch,`${e.url}/bucket`,{name:t},{headers:e.headers}))}async listBuckets(t){var e=this;return e.handleOperation(async()=>{const n=new URLSearchParams;(t==null?void 0:t.limit)!==void 0&&n.set("limit",t.limit.toString()),(t==null?void 0:t.offset)!==void 0&&n.set("offset",t.offset.toString()),t!=null&&t.sortColumn&&n.set("sortColumn",t.sortColumn),t!=null&&t.sortOrder&&n.set("sortOrder",t.sortOrder),t!=null&&t.search&&n.set("search",t.search);const i=n.toString(),r=i?`${e.url}/bucket?${i}`:`${e.url}/bucket`;return await la(e.fetch,r,{headers:e.headers})})}async deleteBucket(t){var e=this;return e.handleOperation(async()=>await Rh(e.fetch,`${e.url}/bucket/${t}`,{},{headers:e.headers}))}from(t){var e=this;if(!AT(t))throw new Mu("Invalid bucket name: File, folder, and bucket names must follow AWS object key naming guidelines and should avoid the use of any other characters.");const n=new CT({baseUrl:this.url,catalogName:t,auth:{type:"custom",getHeaders:async()=>e.headers},fetch:this.fetch}),i=this.shouldThrowOnError;return new Proxy(n,{get(r,s){const o=r[s];return typeof o!="function"?o:async(...a)=>{try{return{data:await o.apply(r,a),error:null}}catch(l){if(i)throw l;return{data:null,error:l}}}}})}},KT=class extends zs{constructor(t,e={},n){const i=t.replace(/\/$/,""),r=Y(Y({},xa),{},{"Content-Type":"application/json"},e);super(i,r,n,"vectors")}async createIndex(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/CreateIndex`,t,{headers:e.headers})||{})}async getIndex(t,e){var n=this;return n.handleOperation(async()=>await Ot.post(n.fetch,`${n.url}/GetIndex`,{vectorBucketName:t,indexName:e},{headers:n.headers}))}async listIndexes(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/ListIndexes`,t,{headers:e.headers}))}async deleteIndex(t,e){var n=this;return n.handleOperation(async()=>await Ot.post(n.fetch,`${n.url}/DeleteIndex`,{vectorBucketName:t,indexName:e},{headers:n.headers})||{})}},zT=class extends zs{constructor(t,e={},n){const i=t.replace(/\/$/,""),r=Y(Y({},xa),{},{"Content-Type":"application/json"},e);super(i,r,n,"vectors")}async putVectors(t){var e=this;if(t.vectors.length<1||t.vectors.length>500)throw new Error("Vector batch size must be between 1 and 500 items");return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/PutVectors`,t,{headers:e.headers})||{})}async getVectors(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/GetVectors`,t,{headers:e.headers}))}async listVectors(t){var e=this;if(t.segmentCount!==void 0){if(t.segmentCount<1||t.segmentCount>16)throw new Error("segmentCount must be between 1 and 16");
229if(t.segmentIndex!==void 0&&(t.segmentIndex<0||t.segmentIndex>=t.segmentCount))throw new Error(`segmentIndex must be between 0 and ${t.segmentCount-1}`)}return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/ListVectors`,t,{headers:e.headers}))}async queryVectors(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/QueryVectors`,t,{headers:e.headers}))}async deleteVectors(t){var e=this;if(t.keys.length<1||t.keys.length>500)throw new Error("Keys batch size must be between 1 and 500 items");return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/DeleteVectors`,t,{headers:e.headers})||{})}},VT=class extends zs{constructor(t,e={},n){const i=t.replace(/\/$/,""),r=Y(Y({},xa),{},{"Content-Type":"application/json"},e);super(i,r,n,"vectors")}async createBucket(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/CreateVectorBucket`,{vectorBucketName:t},{headers:e.headers})||{})}async getBucket(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/GetVectorBucket`,{vectorBucketName:t},{headers:e.headers}))}async listBuckets(t={}){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/ListVectorBuckets`,t,{headers:e.headers}))}async deleteBucket(t){var e=this;return e.handleOperation(async()=>await Ot.post(e.fetch,`${e.url}/DeleteVectorBucket`,{vectorBucketName:t},{headers:e.headers})||{})}},BT=class extends VT{constructor(t,e={}){super(t,e.headers||{},e.fetch)}from(t){return new WT(this.url,this.headers,t,this.fetch)}async createBucket(t){var e=()=>super.createBucket,n=this;return e().call(n,t)}async getBucket(t){var e=()=>super.getBucket,n=this;return e().call(n,t)}async listBuckets(t={}){var e=()=>super.listBuckets,n=this;return e().call(n,t)}async deleteBucket(t){var e=()=>super.deleteBucket,n=this;return e().call(n,t)}},WT=class extends KT{constructor(t,e,n,i){super(t,e,i),this.vectorBucketName=n}async createIndex(t){var e=()=>super.createIndex,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName}))}async listIndexes(t={}){var e=()=>super.listIndexes,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName}))}async getIndex(t){var e=()=>super.getIndex,n=this;return e().call(n,n.vectorBucketName,t)}async deleteIndex(t){var e=()=>super.deleteIndex,n=this;return e().call(n,n.vectorBucketName,t)}index(t){return new HT(this.url,this.headers,this.vectorBucketName,t,this.fetch)}},HT=class extends zT{constructor(t,e,n,i,r){super(t,e,r),this.vectorBucketName=n,this.indexName=i}async putVectors(t){var e=()=>super.putVectors,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async getVectors(t){var e=()=>super.getVectors,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async listVectors(t={}){var e=()=>super.listVectors,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async queryVectors(t){var e=()=>super.queryVectors,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}async deleteVectors(t){var e=()=>super.deleteVectors,n=this;return e().call(n,Y(Y({},t),{},{vectorBucketName:n.vectorBucketName,indexName:n.indexName}))}},GT=class extends MT{constructor(t,e={},n,i){super(t,e,n,i)}from(t){return new DT(this.url,this.headers,t,this.fetch)}get vectors(){return new BT(this.url+"/vector",{headers:this.headers,fetch:this.fetch})}get analytics(){return new $T(this.url+"/iceberg",this.headers,this.fetch)}};const Gw="2.95.3",Br=30*1e3,np=3,Uc=np*Br,QT="http://localhost:9999",YT="supabase.auth.token",JT={"X-Client-Info":`gotrue-js/${Gw}`},ip="X-Supabase-Api-Version",Qw={"2024-01-01":{timestamp:Date.parse("2024-01-01T00:00:00.0Z"),name:"2024-01-01"}},XT=/^([a-z0-9_-]{4})*($|[a-z0-9_-]{3}$|[a-z0-9_-]{2}$)$/i,ZT=10*60*1e3;
229class ua extends Error{constructor(e,n,i){super(e),this.__isAuthError=!0,this.name="AuthError",this.status=n,this.code=i}}function z(t){return typeof t=="object"&&t!==null&&"__isAuthError"in t}class eR extends ua{constructor(e,n,i){super(e,n,i),this.name="AuthApiError",this.status=n,this.code=i}}function tR(t){return z(t)&&t.name==="AuthApiError"}class dr extends ua{constructor(e,n){super(e),this.name="AuthUnknownError",this.originalError=n}}class di extends ua{constructor(e,n,i,r){super(e,i,r),this.name=n,this.status=i}}class Pt extends di{constructor(){super("Auth session missing!","AuthSessionMissingError",400,void 0)}}function Ic(t){return z(t)&&t.name==="AuthSessionMissingError"}class Fr extends di{constructor(){super("Auth session or user missing","AuthInvalidTokenResponseError",500,void 0)}}class el extends di{constructor(e){super(e,"AuthInvalidCredentialsError",400,void 0)}}class tl extends di{constructor(e,n=null){super(e,"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 nR(t){return z(t)&&t.name==="AuthImplicitGrantRedirectError"}class tg extends di{constructor(e,n=null){super(e,"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 iR extends di{constructor(){super("PKCE code verifier not found in storage. This can happen if the auth flow was initiated in a different browser or device, or if the storage was cleared. For SSR frameworks (Next.js, SvelteKit, etc.), use @supabase/ssr on both the server and client to store the code verifier in cookies.","AuthPKCECodeVerifierMissingError",400,"pkce_code_verifier_not_found")}}class rp extends di{constructor(e,n){super(e,"AuthRetryableFetchError",n,void 0)}}function Oc(t){return z(t)&&t.name==="AuthRetryableFetchError"}class ng extends di{constructor(e,n,i){super(e,"AuthWeakPasswordError",n,"weak_password"),this.reasons=i}}class sp extends di{constructor(e){super(e,"AuthInvalidJwtError",400,"invalid_jwt")}}const ru="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_".split(""),ig=` 	
230\r=`.split(""),rR=(()=>{const t=new Array(128);for(let e=0;e<t.length;e+=1)t[e]=-1;for(let e=0;e<ig.length;e+=1)t[ig[e].charCodeAt(0)]=-2;for(let e=0;e<ru.length;e+=1)t[ru[e].charCodeAt(0)]=e;return t})();function rg(t,e,n){if(t!==null)for(e.queue=e.queue<<8|t,e.queuedBits+=8;e.queuedBits>=6;){const i=e.queue>>e.queuedBits-6&63;n(ru[i]),e.queuedBits-=6}else if(e.queuedBits>0)for(e.queue=e.queue<<6-e.queuedBits,e.queuedBits=6;e.queuedBits>=6;){const i=e.queue>>e.queuedBits-6&63;n(ru[i]),e.queuedBits-=6}}function Yw(t,e,n){const i=rR[t];if(i>-1)for(e.queue=e.queue<<6|i,e.queuedBits+=6;e.queuedBits>=8;)n(e.queue>>e.queuedBits-8&255),e.queuedBits-=8;else{if(i===-2)return;throw new Error(`Invalid Base64-URL character "${String.fromCharCode(t)}"`)}}function sg(t){const e=[],n=o=>{e.push(String.fromCodePoint(o))},i={utf8seq:0,codepoint:0},r={queue:0,queuedBits:0},s=o=>{aR(o,i,n)};for(let o=0;o<t.length;o+=1)Yw(t.charCodeAt(o),r,s);return e.join("")}function sR(t,e){if(t<=127){e(t);return}else if(t<=2047){e(192|t>>6),e(128|t&63);return}else if(t<=65535){e(224|t>>12),e(128|t>>6&63),e(128|t&63);return}else if(t<=1114111){e(240|t>>18),e(128|t>>12&63),e(128|t>>6&63),e(128|t&63);return}throw new Error(`Unrecognized Unicode codepoint: ${t.toString(16)}`)}function oR(t,e){for(let n=0;n<t.length;n+=1){let i=t.charCodeAt(n);if(i>55295&&i<=56319){const r=(i-55296)*1024&65535;i=(t.charCodeAt(n+1)-56320&65535|r)+65536,n+=1}sR(i,e)}}function aR(t,e,n){if(e.utf8seq===0){if(t<=127){n(t);return}for(let i=1;i<6;i+=1)if(!(t>>7-i&1)){e.utf8seq=i;break}if(e.utf8seq===2)e.codepoint=t&31;else if(e.utf8seq===3)e.codepoint=t&15;else if(e.utf8seq===4)e.codepoint=t&7;else throw new Error("Invalid UTF-8 sequence");e.utf8seq-=1}else if(e.utf8seq>0){if(t<=127)throw new Error("Invalid UTF-8 sequence");e.codepoint=e.codepoint<<6|t&63,e.utf8seq-=1,e.utf8seq===0&&n(e.codepoint)}}function ms(t){const e=[],n={queue:0,queuedBits:0},i=r=>{e.push(r)};for(let r=0;r<t.length;r+=1)Yw(t.charCodeAt(r),n,i);return new Uint8Array(e)}function lR(t){const e=[];return oR(t,n=>e.push(n)),new Uint8Array(e)}function gr(t){const e=[],n={queue:0,queuedBits:0},i=r=>{e.push(r)};return t.forEach(r=>rg(r,n,i)),rg(null,n,i),e.join("")}function uR(t){return Math.round(Date.now()/1e3)+t}function cR(){return Symbol("auth-callback")}const Ge=()=>typeof window<"u"&&typeof document<"u",sr={tested:!1,writable:!1},Jw=()=>
230{if(!Ge())return!1;try{if(typeof globalThis.localStorage!="object")return!1}catch{return!1}if(sr.tested)return sr.writable;const t=`lswt-${Math.random()}${Math.random()}`;try{globalThis.localStorage.setItem(t,t),globalThis.localStorage.removeItem(t),sr.tested=!0,sr.writable=!0}catch{sr.tested=!0,sr.writable=!1}return sr.writable};function dR(t){const e={},n=new URL(t);if(n.hash&&n.hash[0]==="#")try{new URLSearchParams(n.hash.substring(1)).forEach((r,s)=>{e[s]=r})}catch{}return n.searchParams.forEach((i,r)=>{e[r]=i}),e}const Xw=t=>t?(...e)=>t(...e):(...e)=>fetch(...e),pR=t=>typeof t=="object"&&t!==null&&"status"in t&&"ok"in t&&"json"in t&&typeof t.json=="function",Wr=async(t,e,n)=>{await t.setItem(e,JSON.stringify(n))},or=async(t,e)=>{const n=await t.getItem(e);if(!n)return null;try{return JSON.parse(n)}catch{return n}},He=async(t,e)=>{await t.removeItem(e)};class Ku{constructor(){this.promise=new Ku.promiseConstructor((e,n)=>{this.resolve=e,this.reject=n})}}Ku.promiseConstructor=Promise;function nl(t){const e=t.split(".");if(e.length!==3)throw new sp("Invalid JWT structure");for(let i=0;i<e.length;i++)if(!XT.test(e[i]))throw new sp("JWT not in base64url format");return{header:JSON.parse(sg(e[0])),payload:JSON.parse(sg(e[1])),signature:ms(e[2]),raw:{header:e[0],payload:e[1]}}}async function hR(t){return await new Promise(e=>{setTimeout(()=>e(null),t)})}function fR(t,e){return new Promise((i,r)=>{(async()=>{for(let s=0;s<1/0;s++)try{const o=await t(s);if(!e(s,null,o)){i(o);return}}catch(o){if(!e(s,o)){r(o);return}}})()})}function mR(t){return("0"+t.toString(16)).substr(-2)}function gR(){const e=new Uint32Array(56);if(typeof crypto>"u"){const n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~",i=n.length;let r="";for(let s=0;s<56;s++)r+=n.charAt(Math.floor(Math.random()*i));return r}return crypto.getRandomValues(e),Array.from(e,mR).join("")}async function vR(t){const n=new TextEncoder().encode(t),i=await crypto.subtle.digest("SHA-256",n),r=new Uint8Array(i);return Array.from(r).map(s=>String.fromCharCode(s)).join("")}async function yR(t){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."),t;const n=await vR(t);return btoa(n).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}async function Mr(t,e,n=!1){const i=gR();let r=i;n&&(r+="/PASSWORD_RECOVERY"),await Wr(t,`${e}-code-verifier`,r);const s=await yR(i);return[s,i===s?"plain":"s256"]}const SR=/^2[0-9]{3}-(0[1-9]|1[0-2])-(0[1-9]|1[0-9]|2[0-9]|3[0-1])$/i;function wR(t){const e=t.headers.get(ip);if(!e||!e.match(SR))return null;try{return new Date(`${e}T00:00:00.0Z`)}catch{return null}}function bR(t){if(!t)throw new Error("Missing exp claim");const e=Math.floor(Date.now()/1e3);if(t<=e)throw new Error("JWT has expired")}function xR(t){switch(t){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 kR=/^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/;function $r(t){if(!kR.test(t))throw new Error("@supabase/auth-js: Expected parameter to be UUID but is not")}function Lc(){const t={};return new Proxy(t,{get:(e,n)=>{if(n==="__isUserNotAvailableProxy")return!0;if(typeof n=="symbol"){const i=n.toString();if(i==="Symbol(Symbol.toPrimitive)"||i==="Symbol(Symbol.toStringTag)"||i==="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:(e,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:(e,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 CR(t,e){return new Proxy(t,{get:(n,i,r)=>{if(i==="__isInsecureUserWarningProxy")return!0;
230if(typeof i=="symbol"){const s=i.toString();if(s==="Symbol(Symbol.toPrimitive)"||s==="Symbol(Symbol.toStringTag)"||s==="Symbol(util.inspect.custom)"||s==="Symbol(nodejs.util.inspect.custom)")return Reflect.get(n,i,r)}return!e.value&&typeof i=="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."),e.value=!0),Reflect.get(n,i,r)}})}function og(t){return JSON.parse(JSON.stringify(t))}const ur=t=>t.msg||t.message||t.error_description||t.error||JSON.stringify(t),ER=[502,503,504];async function ag(t){var e;if(!pR(t))throw new rp(ur(t),0);if(ER.includes(t.status))throw new rp(ur(t),t.status);let n;try{n=await t.json()}catch(s){throw new dr(ur(s),s)}let i;const r=wR(t);if(r&&r.getTime()>=Qw["2024-01-01"].timestamp&&typeof n=="object"&&n&&typeof n.code=="string"?i=n.code:typeof n=="object"&&n&&typeof n.error_code=="string"&&(i=n.error_code),i){if(i==="weak_password")throw new ng(ur(n),t.status,((e=n.weak_password)===null||e===void 0?void 0:e.reasons)||[]);if(i==="session_not_found")throw new Pt}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((s,o)=>s&&typeof o=="string",!0))throw new ng(ur(n),t.status,n.weak_password.reasons);throw new eR(ur(n),t.status||500,i)}const _R=(t,e,n,i)=>{const r={method:t,headers:(e==null?void 0:e.headers)||{}};return t==="GET"?r:(r.headers=Object.assign({"Content-Type":"application/json;charset=UTF-8"},e==null?void 0:e.headers),r.body=JSON.stringify(i),Object.assign(Object.assign({},r),n))};async function G(t,e,n,i){var r;const s=Object.assign({},i==null?void 0:i.headers);s[ip]||(s[ip]=Qw["2024-01-01"].name),i!=null&&i.jwt&&(s.Authorization=`Bearer ${i.jwt}`);const o=(r=i==null?void 0:i.query)!==null&&r!==void 0?r:{};i!=null&&i.redirectTo&&(o.redirect_to=i.redirectTo);const a=Object.keys(o).length?"?"+new URLSearchParams(o).toString():"",l=await AR(t,e,n+a,{headers:s,noResolveJson:i==null?void 0:i.noResolveJson},{},i==null?void 0:i.body);return i!=null&&i.xform?i==null?void 0:i.xform(l):{data:Object.assign({},l),error:null}}async function AR(t,e,n,i,r,s){const o=_R(e,i,r,s);let a;try{a=await t(n,Object.assign({},o))}catch(l){throw console.error(l),new rp(ur(l),0)}if(a.ok||await ag(a),i!=null&&i.noResolveJson)return a;try{return await a.json()}catch(l){await ag(l)}}function on(t){var e;let n=null;PR(t)&&(n=Object.assign({},t),t.expires_at||(n.expires_at=uR(t.expires_in)));const i=(e=t.user)!==null&&e!==void 0?e:t;return{data:{session:n,user:i},error:null}}function lg(t){const e=on(t);return!e.error&&t.weak_password&&typeof t.weak_password=="object"&&Array.isArray(t.weak_password.reasons)&&t.weak_password.reasons.length&&t.weak_password.message&&typeof t.weak_password.message=="string"&&t.weak_password.reasons.reduce((n,i)=>n&&typeof i=="string",!0)&&(e.data.weak_password=t.weak_password),e}function Ci(t){var e;return{data:{user:(e=t.user)!==null&&e!==void 0?e:t},error:null}}function TR(t){return{data:t,error:null}}function RR(t){const{action_link:e,email_otp:n,hashed_token:i,redirect_to:r,verification_type:s}=t,o=Fu(t,["action_link","email_otp","hashed_token","redirect_to","verification_type"]),a={action_link:e,email_otp:n,hashed_token:i,redirect_to:r,verification_type:s},l=Object.assign({},o);return{data:{properties:a,user:l},error:null}}function ug(t){return t}function PR(t){return t.access_token&&t.refresh_token&&t.expires_in}const jc=["global","local","others"];class UR{constructor({url:e="",headers:n={},fetch:i}){this.url=e,this.headers=n,this.fetch=Xw(i),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(e,n=jc[0]){if(jc.indexOf(n)<0)throw new Error(`@supabase/auth-js: Parameter scope must be one of ${jc.join(", ")}`);try{return await G(this.fetch,"POST",`${this.url}/logout?scope=${n}`,{headers:this.headers,jwt:e,noResolveJson:!0}),{data:null,error:null}}catch(i){if(z(i))return{data:null,error:i};throw i}}async inviteUserByEmail(e,n={}){try{return await G(this.fetch,"POST",`${this.url}/invite`,{body:{email:e,data:n.data},headers:this.headers,redirectTo:n.redirectTo,xform:Ci})}catch(i){if(z(i))return{data:{user:null},error:i};throw i}}async generateLink(e){try{const{options:n}=e,i=Fu(e,["options"]),r=Object.assign(Object.assign({},i),n);return"newEmail"in i&&(r.new_email=i==null?void 0:i.newEmail,delete r.newEmail),await G(this.fetch,"POST",`${this.url}/admin/generate_link`,{body:r,headers:this.headers,xform:RR,redirectTo:n==null?void 0:n.redirectTo})}catch(n){if(z(n))return{data:{properties:null,user:null},error:n};throw n}}async createUser(e){try{return await G(this.fetch,"POST",`${this.url}/admin/users`,{body:e,headers:this.headers,xform:Ci})}catch(n){if(z(n))return{data:{user:null},error:n};throw n}}async listUsers(e){var n,i,r,s,o,a,l;try{const u={nextPage:null,lastPage:0,total:0},c=await G(this.fetch,"GET",`${this.url}/admin/users`,{headers:this.headers,noResolveJson:!0,query:{page:(i=(n=e==null?void 0:e.page)===null||n===void 0?void 0:n.toString())!==null&&i!==void 0?i:"",per_page:(s=(r=e==null?void 0:e.perPage)===null||r===void 0?void 0:r.toString())!==null&&s!==void 0?s:""},xform:ug});if(c.error)throw c.error;const p=await c.json(),h=(o=c.headers.get("x-total-count"))!==null&&o!==void 0?o:0,d=(l=(a=c.headers.get("link"))===null||a===void 0?void 0:a.split(","))!==null&&l!==void 0?l:[];return d.length>
2300&&(d.forEach(v=>{const g=parseInt(v.split(";")[0].split("=")[1].substring(0,1)),w=JSON.parse(v.split(";")[1].split("=")[1]);u[`${w}Page`]=g}),u.total=parseInt(h)),{data:Object.assign(Object.assign({},p),u),error:null}}catch(u){if(z(u))return{data:{users:[]},error:u};throw u}}async getUserById(e){$r(e);try{return await G(this.fetch,"GET",`${this.url}/admin/users/${e}`,{headers:this.headers,xform:Ci})}catch(n){if(z(n))return{data:{user:null},error:n};throw n}}async updateUserById(e,n){$r(e);try{return await G(this.fetch,"PUT",`${this.url}/admin/users/${e}`,{body:n,headers:this.headers,xform:Ci})}catch(i){if(z(i))return{data:{user:null},error:i};throw i}}async deleteUser(e,n=!1){$r(e);try{return await G(this.fetch,"DELETE",`${this.url}/admin/users/${e}`,{headers:this.headers,body:{should_soft_delete:n},xform:Ci})}catch(i){if(z(i))return{data:{user:null},error:i};throw i}}async _listFactors(e){$r(e.userId);try{const{data:n,error:i}=await G(this.fetch,"GET",`${this.url}/admin/users/${e.userId}/factors`,{headers:this.headers,xform:r=>({data:{factors:r},error:null})});return{data:n,error:i}}catch(n){if(z(n))return{data:null,error:n};throw n}}async _deleteFactor(e){$r(e.userId),$r(e.id);try{return{data:await G(this.fetch,"DELETE",`${this.url}/admin/users/${e.userId}/factors/${e.id}`,{headers:this.headers}),error:null}}catch(n){if(z(n))return{data:null,error:n};throw n}}async _listOAuthClients(e){var n,i,r,s,o,a,l;try{const u={nextPage:null,lastPage:0,total:0},c=await G(this.fetch,"GET",`${this.url}/admin/oauth/clients`,{headers:this.headers,noResolveJson:!0,query:{page:(i=(n=e==null?void 0:e.page)===null||n===void 0?void 0:n.toString())!==null&&i!==void 0?i:"",per_page:(s=(r=e==null?void 0:e.perPage)===null||r===void 0?void 0:r.toString())!==null&&s!==void 0?s:""},xform:ug});if(c.error)throw c.error;const p=await c.json(),h=(o=c.headers.get("x-total-count"))!==null&&o!==void 0?o:0,d=(l=(a=c.headers.get("link"))===null||a===void 0?void 0:a.split(","))!==null&&l!==void 0?l:[];return d.length>0&&(d.forEach(v=>{const g=parseInt(v.split(";")[0].split("=")[1].substring(0,1)),w=JSON.parse(v.split(";")[1].split("=")[1]);u[`${w}Page`]=g}),u.total=parseInt(h)),{data:Object.assign(Object.assign({},p),u),error:null}}catch(u){if(z(u))return{data:{clients:[]},error:u};throw u}}async _createOAuthClient(e){try{return await G(this.fetch,"POST",`${this.url}/admin/oauth/clients`,{body:e,headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(z(n))return{data:null,error:n};throw n}}async _getOAuthClient(e){try{return await G(this.fetch,"GET",`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(z(n))return{data:null,error:n};throw n}}async _updateOAuthClient(e,n){try{return await G(this.fetch,"PUT",`${this.url}/admin/oauth/clients/${e}`,{body:n,headers:this.headers,xform:i=>({data:i,error:null})})}catch(i){if(z(i))return{data:null,error:i};throw i}}async _deleteOAuthClient(e){try{return await G(this.fetch,"DELETE",`${this.url}/admin/oauth/clients/${e}`,{headers:this.headers,noResolveJson:!0}),{data:null,error:null}}catch(n){if(z(n))return{data:null,error:n};throw n}}async _regenerateOAuthClientSecret(e){try{return await G(this.fetch,"POST",`${this.url}/admin/oauth/clients/${e}/regenerate_secret`,{headers:this.headers,xform:n=>({data:n,error:null})})}catch(n){if(z(n))return{data:null,error:n};throw n}}}function cg(t={}){return{getItem:e=>t[e]||null,setItem:(e,n)=>{t[e]=n},removeItem:e=>{delete t[e]}}}const Kr={debug:!!(globalThis&&Jw()&&globalThis.localStorage&&globalThis.localStorage.getItem("supabase.gotrue-js.locks.debug")==="true")};class Zw extends Error{constructor(e){super(e),this.isAcquireTimeout=!0}}class IR extends Zw{}async function OR(t,e,n){Kr.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquire lock",t,e);const i=new globalThis.AbortController;return e>0&&setTimeout(()=>{i.abort(),Kr.debug&&console.log("@supabase/gotrue-js: navigatorLock acquire timed out",t)},e),await Promise.resolve().then(()=>globalThis.navigator.locks.request(t,e===0?{mode:"exclusive",ifAvailable:!0}:{mode:"exclusive",signal:i.signal},async r=>{if(r){Kr.debug&&console.log("@supabase/gotrue-js: navigatorLock: acquired",t,r.name);try{return await n()}finally{Kr.debug&&console.log("@supabase/gotrue-js: navigatorLock: released",t,r.name)}
230}else{if(e===0)throw Kr.debug&&console.log("@supabase/gotrue-js: navigatorLock: not immediately available",t),new IR(`Acquiring an exclusive Navigator LockManager lock "${t}" immediately failed`);if(Kr.debug)try{const s=await globalThis.navigator.locks.query();console.log("@supabase/gotrue-js: Navigator LockManager state",JSON.stringify(s,null,"  "))}catch(s){console.warn("@supabase/gotrue-js: Error when querying Navigator LockManager state",s)}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 LR(){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 eb(t){if(!/^0x[a-fA-F0-9]{40}$/.test(t))throw new Error(`@supabase/auth-js: Address "${t}" is invalid.`);return t.toLowerCase()}function jR(t){return parseInt(t,16)}function NR(t){const e=new TextEncoder().encode(t);return"0x"+Array.from(e,i=>i.toString(16).padStart(2,"0")).join("")}function qR(t){var e;const{chainId:n,domain:i,expirationTime:r,issuedAt:s=new Date,nonce:o,notBefore:a,requestId:l,resources:u,scheme:c,uri:p,version:h}=t;{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(!i)throw new Error('@supabase/auth-js: Invalid SIWE message field "domain". Domain must be provided.');if(o&&o.length<8)throw new Error(`@supabase/auth-js: Invalid SIWE message field "nonce". Nonce must be at least 8 characters. Provided value: ${o}`);if(!p)throw new Error('@supabase/auth-js: Invalid SIWE message field "uri". URI must be provided.');if(h!=="1")throw new Error(`@supabase/auth-js: Invalid SIWE message field "version". Version must be '1'. Provided value: ${h}`);if(!((e=t.statement)===null||e===void 0)&&e.includes(`
231`))throw new Error(`@supabase/auth-js: Invalid SIWE message field "statement". Statement must not include '\\n'. Provided value: ${t.statement}`)}const d=eb(t.address),v=c?`${c}://${i}`:i,g=t.statement?`${t.statement}
232`:"",w=`${v} wants you to sign in with your Ethereum account:
233${d}
234
235${g}`;let S=`URI: ${p}
236Version: ${h}
237Chain ID: ${n}${o?`
238Nonce: ${o}`:""}
239Issued At: ${s.toISOString()}`;if(r&&(S+=`
240Expiration Time: ${r.toISOString()}`),a&&(S+=`
241Not Before: ${a.toISOString()}`),l&&(S+=`
242Request ID: ${l}`),u){let m=`
243Resources:`;for(const y of u){if(!y||typeof y!="string")throw new Error(`@supabase/auth-js: Invalid SIWE message field "resources". Every resource must be a valid string. Provided value: ${y}`);m+=`
244- ${y}`}S+=m}return`${w}
245${S}`}class Ne extends Error{constructor({message:e,code:n,cause:i,name:r}){var s;super(e,{cause:i}),this.__isWebAuthnError=!0,this.name=(s=r??(i instanceof Error?i.name:void 0))!==null&&s!==void 0?s:"Unknown Error",this.code=n}}class su extends Ne{constructor(e,n){super({code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:n,message:e}),this.name="WebAuthnUnknownError",this.originalError=n}}function DR({error:t,options:e}){var n,i,r;const{publicKey:s}=e;if(!s)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal instanceof AbortSignal)return new Ne({message:"Registration ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:t})}else if(t.name==="ConstraintError"){if(((n=s.authenticatorSelection)===null||n===void 0?void 0:n.requireResidentKey)===!0)return new Ne({message:"Discoverable credentials were required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",cause:t});if(e.mediation==="conditional"&&((i=s.authenticatorSelection)===null||i===void 0?void 0:i.userVerification)==="required")return new Ne({message:"User verification was required during automatic registration but it could not be performed",code:"ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",cause:t});if(((r=s.authenticatorSelection)===null||r===void 0?void 0:r.userVerification)==="required")return new Ne({message:"User verification was required but no available authenticator supported it",code:"ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",cause:t})}else{if(t.name==="InvalidStateError")return new Ne({message:"The authenticator was previously registered",code:"ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",cause:t});if(t.name==="NotAllowedError")return new Ne({message:t.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t});if(t.name==="NotSupportedError")return s.pubKeyCredParams.filter(a=>a.type==="public-key").length===0?new Ne({message:'No entry in pubKeyCredParams was of type "public-key"',code:"ERROR_MALFORMED_PUBKEYCREDPARAMS",cause:t}):new Ne({message:"No available authenticator supported any of the specified pubKeyCredParams algorithms",code:"ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",cause:t});if(t.name==="SecurityError"){const o=window.location.hostname;if(tb(o)){if(s.rp.id!==o)return new Ne({message:`The RP ID "${s.rp.id}
245" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:t})}else return new Ne({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:t})}else if(t.name==="TypeError"){if(s.user.id.byteLength<1||s.user.id.byteLength>64)return new Ne({message:"User ID was not between 1 and 64 characters",code:"ERROR_INVALID_USER_ID_LENGTH",cause:t})}else if(t.name==="UnknownError")return new Ne({message:"The authenticator was unable to process the specified options, or could not create a new credential",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:t})}return new Ne({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t})}function FR({error:t,options:e}){const{publicKey:n}=e;if(!n)throw Error("options was missing required publicKey property");if(t.name==="AbortError"){if(e.signal instanceof AbortSignal)return new Ne({message:"Authentication ceremony was sent an abort signal",code:"ERROR_CEREMONY_ABORTED",cause:t})}else{if(t.name==="NotAllowedError")return new Ne({message:t.message,code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t});if(t.name==="SecurityError"){const i=window.location.hostname;if(tb(i)){if(n.rpId!==i)return new Ne({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:"ERROR_INVALID_RP_ID",cause:t})}else return new Ne({message:`${window.location.hostname} is an invalid domain`,code:"ERROR_INVALID_DOMAIN",cause:t})}else if(t.name==="UnknownError")return new Ne({message:"The authenticator was unable to process the specified options, or could not create a new assertion signature",code:"ERROR_AUTHENTICATOR_GENERAL_ERROR",cause:t})}return new Ne({message:"a Non-Webauthn related error has occurred",code:"ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",cause:t})}class MR{createNewAbortSignal(){if(this.controller){const n=new Error("Cancelling existing WebAuthn API call for new one");n.name="AbortError",this.controller.abort(n)}const e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){const e=new Error("Manually cancelling existing WebAuthn API call");e.name="AbortError",this.controller.abort(e),this.controller=void 0}}}const $R=new MR;function KR(t){if(!t)throw new Error("Credential creation options are required");if(typeof PublicKeyCredential<"u"&&"parseCreationOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseCreationOptionsFromJSON=="function")return PublicKeyCredential.parseCreationOptionsFromJSON(t);const{challenge:e,user:n,excludeCredentials:i}=t,r=Fu(t,["challenge","user","excludeCredentials"]),s=ms(e).buffer,o=Object.assign(Object.assign({},n),{id:ms(n.id).buffer}),a=Object.assign(Object.assign({},r),{challenge:s,user:o});if(i&&i.length>0){a.excludeCredentials=new Array(i.length);for(let l=0;l<i.length;l++){const u=i[l];a.excludeCredentials[l]=Object.assign(Object.assign({},u),{id:ms(u.id).buffer,type:u.type||"public-key",transports:u.transports})}}return a}function zR(t){if(!t)throw new Error("Credential request options are required");if(typeof PublicKeyCredential<"u"&&"parseRequestOptionsFromJSON"in PublicKeyCredential&&typeof PublicKeyCredential.parseRequestOptionsFromJSON=="function")return PublicKeyCredential.parseRequestOptionsFromJSON(t);const{challenge:e,allowCredentials:n}=t,i=Fu(t,["challenge","allowCredentials"]),r=ms(e).buffer,s=Object.assign(Object.assign({},i),{challenge:r});if(n&&n.length>0){s.allowCredentials=new Array(n.length);for(let o=0;o<n.length;o++){const a=n[o];s.allowCredentials[o]=Object.assign(Object.assign({},a),{id:ms(a.id).buffer,type:a.type||"public-key",transports:a.transports})}}return s}function VR(t){var e;if("toJSON"in t&&typeof t.toJSON=="function")return t.toJSON();const n=t;return{id:t.id,rawId:t.id,response:{attestationObject:gr(new Uint8Array(t.response.attestationObject)),clientDataJSON:gr(new Uint8Array(t.response.clientDataJSON))},type:"public-key",clientExtensionResults:t.getClientExtensionResults(),authenticatorAttachment:(e=n.authenticatorAttachment)!==null&&e!==void 0?e:void 0}}function BR(t){var e;if("toJSON"in t&&typeof t.toJSON=="function")return t.toJSON();const n=t,i=t.getClientExtensionResults(),r=t.response;return{id:t.id,rawId:t.id,response:{authenticatorData:gr(new Uint8Array(r.authenticatorData)),clientDataJSON:gr(new Uint8Array(r.clientDataJSON)),signature:gr(new Uint8Array(r.signature)),userHandle:r.userHandle?gr(new Uint8Array(r.userHandle)):void 0},type:"public-key",clientExtensionResults:i,authenticatorAttachment:(e=n.authenticatorAttachment)!==null&&e!==void 0?e:void 0}}function tb(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}function dg(){var t,e;return!!(Ge()&&"PublicKeyCredential"in window&&window.PublicKeyCredential&&"credentials"in navigator&&typeof((t=navigator==null?void 0:navigator.credentials)===null||t===void 0?void 0:t.create)=="function"&&typeof((e=navigator==null?void 0:navigator.credentials)===null||e===void 0?void 0:e.get)=="function")}async function WR(t){try{const e=await navigator.credentials.create(t);return e?e instanceof PublicKeyCredential?{data:e,error:null}:{data:null,error:new su("Browser returned unexpected credential type",e)}:{data:null,error:new su("Empty credential response",e)}}catch(e){return{data:null,error:DR({error:e,options:t})}}}async function HR(t){try{const e=await navigator.credentials.get(t);return e?e instanceof PublicKeyCredential?{data:e,error:null}:{data:null,error:new su("Browser returned unexpected credential type",e)}:{data:null,error:new su("Empty credential response",e)}}catch(e){return{data:null,error:FR({error:e,options:t})}}}const GR={hints:["security-key"],authenticatorSelection:{authenticatorAttachment:"cross-platform",requireResidentKey:!1,userVerification:"preferred",residentKey:"discouraged"},attestation:"direct"},QR={userVerification:"preferred",hints:["security-key"],attestation:"direct"};function ou(...t){const e=r=>r!==null&&typeof r=="object"&&!Array.isArray(r),n=r=>r instanceof ArrayBuffer||ArrayBuffer.isView(r),i={};for(const r of t)if(r)for(const s in r){const o=r[s];if(o!==void 0)if(Array.isArray(o))i[s]=o;else if(n(o))i[s]=o;else if(e(o)){const a=i[s];e(a)?i[s]=ou(a,o):i[s]=ou(o)}else i[s]=o}return i}function YR(t,e){return ou(GR,t,e||{})}function JR(t,e){return ou(QR,t,e||{})}class XR{constructor(e){this.client=e,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(e){return this.client.mfa.enroll(Object.assign(Object.assign({},e),{factorType:"webauthn"}))}async _challenge({factorId:e,webauthn:n,friendlyName:i,signal:r},s){var o;try{const{data:a,error:l}=await this.client.mfa.challenge({factorId:e,webauthn:n});if(!a)return{data:null,error:l};const u=r??$R.createNewAbortSignal();if(a.webauthn.type==="create"){const{user:c}=a.webauthn.credential_options.publicKey;if(!c.name){const p=i;if(p)c.name=`${c.id}:${p}`;else{const d=(await this.client.getUser()).data.user,v=((o=d==null?void 0:d.user_metadata)===null||o===void 0?void 0:o.name)||(d==null?void 0:d.email)||(d==null?void 0:d.id)||"User";c.name=`${c.id}:${v}`}}c.displayName||(c.displayName=c.name)}switch(a.webauthn.type){case"create":{const c=YR(a.webauthn.credential_options.publicKey,s==null?void 0:s.create),{data:p,error:h}=await WR({publicKey:c,signal:u});return p?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:p}},error:null}:{data:null,error:h}}case"request":{const c=JR(a.webauthn.credential_options.publicKey,s==null?void 0:s.request),{data:p,error:h}=await HR(Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:c,signal:u}));return p?{data:{factorId:e,challengeId:a.id,webauthn:{type:a.webauthn.type,credential_response:p}},error:null}:{data:null,error:h}}}}catch(a){return z(a)?{data:null,error:a}:{data:null,error:new dr("Unexpected error in challenge",a)}}}async _verify({challengeId:e,factorId:n,webauthn:i}){return this.client.mfa.verify({factorId:n,challengeId:e,webauthn:i})}async _authenticate({factorId:e,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:i=typeof window<"u"?[window.location.origin]:void 0,signal:r}={}},s){if(!n)return{data:null,error:new ua("rpId is required for WebAuthn authentication")};try{if(!dg())return{data:null,error:new dr("Browser does not support WebAuthn",null)};const{data:o,error:a}=await this.challenge({factorId:e,webauthn:{rpId:n,rpOrigins:i},signal:r},{request:s});if(!o)return{data:null,error:a};const{webauthn:l}=o;return this._verify({factorId:e,challengeId:o.challengeId,webauthn:{type:l.type,rpId:n,rpOrigins:i,credential_response:l.credential_response}})}catch(o){return z(o)?{data:null,error:o}:{data:null,error:new dr("Unexpected error in authenticate",o)}}}async _register({friendlyName:e,webauthn:{rpId:n=typeof window<"u"?window.location.hostname:void 0,rpOrigins:i=typeof window<"u"?[window.location.origin]:void 0,signal:r}={}},s){if(!n)return{data:null,error:new ua("rpId is required for WebAuthn registration")};try{if(!dg())return{data:null,error:new dr("Browser does not support WebAuthn",null)};const{data:o,error:a}=await this._enroll({friendlyName:e});if(!o)return await this.client.mfa.listFactors().then(c=>{var p;return(p=c.data)===null||p===void 0?void 0:p.all.find(h=>h.factor_type==="webauthn"&&h.friendly_name===e&&h.status!=="unverified")}).then(c=>c?this.client.mfa.unenroll({factorId:c==null?void 0:c.id}):void 0),{data:null,error:a};const{data:l,error:u}=await this._challenge({factorId:o.id,friendlyName:o.friendly_name,webauthn:{rpId:n,rpOrigins:i},signal:r},{create:s});return l?this._verify({factorId:o.id,challengeId:l.challengeId,webauthn:{rpId:n,rpOrigins:i,type:l.webauthn.type,credential_response:l.webauthn.credential_response}}):{data:null,error:u}}catch(o){return z(o)?{data:null,error:o}:{data:null,error:new dr("Unexpected error in register",o)}}}}LR();const ZR={url:QT,storageKey:YT,autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,headers:JT,flowType:"implicit",debug:!1,hasCustomAuthorizationHeader:!1,throwOnError:!1,lockAcquireTimeout:1e4};async function pg(t,e,n){return await n()}const zr={};class ca{get jwks(){var e,n;return(n=(e=zr[this.storageKey])===null||e===void 0?void 0:e.jwks)!==null&&n!==void 0?n:{keys:[]}}set jwks(e){zr[this.storageKey]=Object.assign(Object.assign({},zr[this.storageKey]),{jwks:e})}get jwks_cached_at(){var e,n;return(n=(e=zr[this.storageKey])===null||e===void 0?void 0:e.cachedAt)!==null&&n!==void 0?n:Number.MIN_SAFE_INTEGER}set jwks_cached_at(e){zr[this.storageKey]=Object.assign(Object.assign({},zr[this.storageKey]),{cachedAt:e})}constructor(e){var n,i,r;this.userStorage=null,this.memoryStorage=null,this.stateChangeEmitters=new Map,this.autoRefreshTicker=null,this.autoRefreshTickTimeout=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 s=Object.assign(Object.assign({},ZR),e);if(this.storageKey=s.storageKey,this.instanceID=(n=ca.nextInstanceID[this.storageKey])!==null&&n!==void 0?n:0,ca.nextInstanceID[this.storageKey]=this.instanceID+1,this.logDebugMessages=!!s.debug,typeof s.debug=="function"&&(this.logger=s.debug),this.instanceID>0&&Ge()){const o=`${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(o),this.logDebugMessages&&console.trace(o)}if(this.persistSession=s.persistSession,this.autoRefreshToken=s.autoRefreshToken,this.admin=new UR({url:s.url,headers:s.headers,fetch:s.fetch}),this.url=s.url,this.headers=s.headers,this.fetch=Xw(s.fetch),this.lock=s.lock||pg,this.detectSessionInUrl=s.detectSessionInUrl,this.flowType=s.flowType,this.hasCustomAuthorizationHeader=s.hasCustomAuthorizationHeader,this.throwOnError=s.throwOnError,this.lockAcquireTimeout=s.lockAcquireTimeout,s.lock?this.lock=s.lock:this.persistSession&&Ge()&&(!((i=globalThis==null?void 0:globalThis.navigator)===null||i===void 0)&&i.locks)?this.lock=OR:this.lock=pg,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 XR(this)}
245,this.oauth={getAuthorizationDetails:this._getAuthorizationDetails.bind(this),approveAuthorization:this._approveAuthorization.bind(this),denyAuthorization:this._denyAuthorization.bind(this),listGrants:this._listOAuthGrants.bind(this),revokeGrant:this._revokeOAuthGrant.bind(this)},this.persistSession?(s.storage?this.storage=s.storage:Jw()?this.storage=globalThis.localStorage:(this.memoryStorage={},this.storage=cg(this.memoryStorage)),s.userStorage&&(this.userStorage=s.userStorage)):(this.memoryStorage={},this.storage=cg(this.memoryStorage)),Ge()&&globalThis.BroadcastChannel&&this.persistSession&&this.storageKey){try{this.broadcastChannel=new globalThis.BroadcastChannel(this.storageKey)}catch(o){console.error("Failed to create a new BroadcastChannel, multi-tab state changes will not be available",o)}(r=this.broadcastChannel)===null||r===void 0||r.addEventListener("message",async o=>{this._debug("received broadcast notification from other tab or client",o);try{await this._notifyAllSubscribers(o.data.event,o.data.session,!1)}catch(a){this._debug("#broadcastChannel","error",a)}})}this.initialize().catch(o=>{this._debug("#initialize()","error",o)})}isThrowOnErrorEnabled(){return this.throwOnError}_returnResult(e){if(this.throwOnError&&e&&e.error)throw e.error;return e}_logPrefix(){return`GoTrueClient@${this.storageKey}:${this.instanceID} (${Gw}) ${new Date().toISOString()}`}_debug(...e){return this.logDebugMessages&&this.logger(this._logPrefix(),...e),this}async initialize(){return this.initializePromise?await this.initializePromise:(this.initializePromise=(async()=>await this._acquireLock(this.lockAcquireTimeout,async()=>await this._initialize()))(),await this.initializePromise)}async _initialize(){var e;try{let n={},i="none";if(Ge()&&(n=dR(window.location.href),this._isImplicitGrantCallback(n)?i="implicit":await this._isPKCECallback(n)&&(i="pkce")),Ge()&&this.detectSessionInUrl&&i!=="none"){const{data:r,error:s}=await this._getSessionFromURL(n,i);if(s){if(this._debug("#_initialize()","error detecting session from URL",s),nR(s)){const l=(e=s.details)===null||e===void 0?void 0:e.code;if(l==="identity_already_exists"||l==="identity_not_found"||l==="single_identity_not_deletable")return{error:s}}return{error:s}}const{session:o,redirectType:a}=r;return this._debug("#_initialize()","detected session in URL",o,"redirect type",a),await this._saveSession(o),setTimeout(async()=>{a==="recovery"?await this._notifyAllSubscribers("PASSWORD_RECOVERY",o):await this._notifyAllSubscribers("SIGNED_IN",o)},0),{error:null}}return await this._recoverAndRefresh(),{error:null}}catch(n){return z(n)?this._returnResult({error:n}):this._returnResult({error:new dr("Unexpected error during initialization",n)})}finally{await this._handleVisibilityChange(),this._debug("#_initialize()","end")}}async signInAnonymously(e){var n,i,r;try{const s=await G(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{data:(i=(n=e==null?void 0:e.options)===null||n===void 0?void 0:n.data)!==null&&i!==void 0?i:{},gotrue_meta_security:{captcha_token:(r=e==null?void 0:e.options)===null||r===void 0?void 0:r.captchaToken}},xform:on}),{data:o,error:a}=s;
245if(a||!o)return this._returnResult({data:{user:null,session:null},error:a});const l=o.session,u=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",l)),this._returnResult({data:{user:u,session:l},error:null})}catch(s){if(z(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}}async signUp(e){var n,i,r;try{let s;if("email"in e){const{email:c,password:p,options:h}=e;let d=null,v=null;this.flowType==="pkce"&&([d,v]=await Mr(this.storage,this.storageKey)),s=await G(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,redirectTo:h==null?void 0:h.emailRedirectTo,body:{email:c,password:p,data:(n=h==null?void 0:h.data)!==null&&n!==void 0?n:{},gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken},code_challenge:d,code_challenge_method:v},xform:on})}else if("phone"in e){const{phone:c,password:p,options:h}=e;s=await G(this.fetch,"POST",`${this.url}/signup`,{headers:this.headers,body:{phone:c,password:p,data:(i=h==null?void 0:h.data)!==null&&i!==void 0?i:{},channel:(r=h==null?void 0:h.channel)!==null&&r!==void 0?r:"sms",gotrue_meta_security:{captcha_token:h==null?void 0:h.captchaToken}},xform:on})}else throw new el("You must provide either an email or phone number and a password");const{data:o,error:a}=s;
245if(a||!o)return await He(this.storage,`${this.storageKey}-code-verifier`),this._returnResult({data:{user:null,session:null},error:a});const l=o.session,u=o.user;return o.session&&(await this._saveSession(o.session),await this._notifyAllSubscribers("SIGNED_IN",l)),this._returnResult({data:{user:u,session:l},error:null})}catch(s){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(s))return this._returnResult({data:{user:null,session:null},error:s});throw s}}async signInWithPassword(e){try{let n;if("email"in e){const{email:s,password:o,options:a}=e;n=await G(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{email:s,password:o,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},xform:lg})}else if("phone"in e){const{phone:s,password:o,options:a}=e;n=await G(this.fetch,"POST",`${this.url}/token?grant_type=password`,{headers:this.headers,body:{phone:s,password:o,gotrue_meta_security:{captcha_token:a==null?void 0:a.captchaToken}},xform:lg})}else throw new el("You must provide either an email or phone number and a password");const{data:i,error:r}=n;if(r)return this._returnResult({data:{user:null,session:null},error:r});if(!i||!i.session||!i.user){const s=new Fr;return this._returnResult({data:{user:null,session:null},error:s})}return i.session&&(await this._saveSession(i.session),await this._notifyAllSubscribers("SIGNED_IN",i.session)),this._returnResult({data:Object.assign({user:i.user,session:i.session},i.weak_password?{weakPassword:i.weak_password}:null),error:r})}catch(n){if(z(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOAuth(e){var n,i,r,s;return await this._handleProviderSignIn(e.provider,{redirectTo:(n=e.options)===null||n===void 0?void 0:n.redirectTo,scopes:(i=e.options)===null||i===void 0?void 0:i.scopes,queryParams:(r=e.options)===null||r===void 0?void 0:r.queryParams,skipBrowserRedirect:(s=e.options)===null||s===void 0?void 0:s.skipBrowserRedirect})}async exchangeCodeForSession(e){return await this.initializePromise,this._acquireLock(this.lockAcquireTimeout,async()=>this._exchangeCodeForSession(e))}async signInWithWeb3(e){const{chain:n}=e;switch(n){case"ethereum":return await this.signInWithEthereum(e);case"solana":return await this.signInWithSolana(e);default:throw new Error(`@supabase/auth-js: Unsupported chain "${n}"`)}}async signInWithEthereum(e){var n,i,r,s,o,a,l,u,c,p,h;let d,v;if("message"in e)d=e.message,v=e.signature;else{const{chain:g,wallet:w,statement:S,options:m}=e;let y;if(Ge())if(typeof w=="object")y=w;else{const I=window;if("ethereum"in I&&typeof I.ethereum=="object"&&"request"in I.ethereum&&typeof I.ethereum.request=="function")y=I.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 w!="object"||!(m!=null&&m.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");y=w}const x=new URL((n=m==null?void 0:m.url)!==null&&n!==void 0?n:window.location.href),C=await y.request({method:"eth_requestAccounts"}).then(I=>I).catch(()=>{throw new Error("@supabase/auth-js: Wallet method eth_requestAccounts is missing or invalid")});if(!C||C.length===0)throw new Error("@supabase/auth-js: No accounts available. Please ensure the wallet is connected.");const E=eb(C[0]);let _=(i=m==null?void 0:m.signInWithEthereum)===null||i===void 0?void 0:i.chainId;if(!_){const I=await y.request({method:"eth_chainId"});_=jR(I)}const A={domain:x.host,address:E,statement:S,uri:x.href,version:"1",chainId:_,nonce:(r=m==null?void 0:m.signInWithEthereum)===null||r===void 0?void 0:r.nonce,issuedAt:(o=(s=m==null?void 0:m.signInWithEthereum)===null||s===void 0?void 0:s.issuedAt)!==null&&o!==void 0?o:new Date,expirationTime:(a=m==null?void 0:m.signInWithEthereum)===null||a===void 0?void 0:a.expirationTime,notBefore:(l=m==null?void 0:m.signInWithEthereum)===null||l===void 0?void 0:l.notBefore,requestId:(u=m==null?void 0:m.signInWithEthereum)===null||u===void 0?void 0:u.requestId,resources:(c=m==null?void 0:m.signInWithEthereum)===null||c===void 0?void 0:c.resources};d=qR(A),v=await y.request({method:"personal_sign",params:[NR(d),E]})}try{const{data:g,error:w}=await G(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"ethereum",message:d,signature:v},!((p=e.options)===null||p===void 0)&&p.captchaToken?{gotrue_meta_security:{captcha_token:(h=e.options)===null||h===void 0?void 0:h.captchaToken}}:null),xform:on});if(w)throw w;if(!g||!g.session||!g.user){const S=new Fr;return this._returnResult({data:{user:null,session:null},error:S})}return g.session&&(await this._saveSession(g.session),await this._notifyAllSubscribers("SIGNED_IN",g.session)),this._returnResult({data:Object.assign({},g),error:w})}catch(g){if(z(g))return this._returnResult({data:{user:null,session:null},error:g});throw g}}async signInWithSolana(e){var n,i,r,s,o,a,l,u,c,p,h,d;let v,g;if("message"in e)v=e.message,g=e.signature;else{const{chain:w,wallet:S,statement:m,options:y}=e;let x;if(Ge())if(typeof S=="object")x=S;else{const E=window;if("solana"in E&&typeof E.solana=="object"&&("signIn"in E.solana&&typeof E.solana.signIn=="function"||"signMessage"in E.solana&&typeof E.solana.signMessage=="function"))x=E.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 S!="object"||!(y!=null&&y.url))throw new Error("@supabase/auth-js: Both wallet and url must be specified in non-browser environments.");x=S}const C=new URL((n=y==null?void 0:y.url)!==null&&n!==void 0?n:window.location.href);if("signIn"in x&&x.signIn){const E=await x.signIn(Object.assign(Object.assign(Object.assign({issuedAt:new Date().toISOString()},y==null?void 0:y.signInWithSolana),{version:"1",domain:C.host,uri:C.href}),m?{statement:m}:null));let _;if(Array.isArray(E)&&E[0]&&typeof E[0]=="object")_=E[0];else if(E&&typeof E=="object"&&"signedMessage"in E&&"signature"in E)_=E;else throw new Error("@supabase/auth-js: Wallet method signIn() returned unrecognized value");if("signedMessage"in _&&"signature"in _&&(typeof _.signedMessage=="string"||_.signedMessage instanceof Uint8Array)&&_.signature instanceof Uint8Array)v=typeof _.signedMessage=="string"?_.signedMessage:new TextDecoder().decode(_.signedMessage),g=_.signature;else throw new Error("@supabase/auth-js: Wallet method signIn() API returned object without signedMessage and signature fields")}else{if(!("signMessage"in x)||typeof x.signMessage!="function"||!("publicKey"in x)||typeof x!="object"||!x.publicKey||!("toBase58"in x.publicKey)||typeof x.publicKey.toBase58!="function")throw new Error("@supabase/auth-js: Wallet does not have a compatible signMessage() and publicKey.toBase58() API");v=[`${C.host} wants you to sign in with your Solana account:`,x.publicKey.toBase58(),...m?["",m,""]:[""],"Version: 1",`URI: ${C.href}`,`Issued At: ${(r=(i=y==null?void 0:y.signInWithSolana)===null||i===void 0?void 0:i.issuedAt)!==null&&r!==void 0?r:new Date().toISOString()}`,...!((s=y==null?void 0:y.signInWithSolana)===null||s===void 0)&&s.notBefore?[`Not Before: ${y.signInWithSolana.notBefore}`]:[],...!((o=y==null?void 0:y.signInWithSolana)===null||o===void 0)&&o.expirationTime?[`Expiration Time: ${y.signInWithSolana.expirationTime}`]:[],...!((a=y==null?void 0:y.signInWithSolana)===null||a===void 0)&&a.chainId?[`Chain ID: ${y.signInWithSolana.chainId}`]:[],...!((l=y==null?void 0:y.signInWithSolana)===null||l===void 0)&&l.nonce?[`Nonce: ${y.signInWithSolana.nonce}`]:[],...!((u=y==null?void 0:y.signInWithSolana)===null||u===void 0)&&u.requestId?[`Request ID: ${y.signInWithSolana.requestId}`]:[],...!((p=(c=y==null?void 0:y.signInWithSolana)===null||c===void 0?void 0:c.resources)===null||p===void 0)&&p.length?["Resources",...y.signInWithSolana.resources.map(_=>`- ${_}`)]:[]].join(`
246`);const E=await x.signMessage(new TextEncoder().encode(v),"utf8");if(!E||!(E instanceof Uint8Array))throw new Error("@supabase/auth-js: Wallet signMessage() API returned an recognized value");g=E}}try{const{data:w,error:S}=await G(this.fetch,"POST",`${this.url}/token?grant_type=web3`,{headers:this.headers,body:Object.assign({chain:"solana",message:v,signature:gr(g)}
246,!((h=e.options)===null||h===void 0)&&h.captchaToken?{gotrue_meta_security:{captcha_token:(d=e.options)===null||d===void 0?void 0:d.captchaToken}}:null),xform:on});if(S)throw S;if(!w||!w.session||!w.user){const m=new Fr;return this._returnResult({data:{user:null,session:null},error:m})}return w.session&&(await this._saveSession(w.session),await this._notifyAllSubscribers("SIGNED_IN",w.session)),this._returnResult({data:Object.assign({},w),error:S})}catch(w){if(z(w))return this._returnResult({data:{user:null,session:null},error:w});throw w}}async _exchangeCodeForSession(e){const n=await or(this.storage,`${this.storageKey}-code-verifier`),[i,r]=(n??"").split("/");try{if(!i&&this.flowType==="pkce")throw new iR;const{data:s,error:o}=await G(this.fetch,"POST",`${this.url}/token?grant_type=pkce`,{headers:this.headers,body:{auth_code:e,code_verifier:i},xform:on});if(await He(this.storage,`${this.storageKey}-code-verifier`),o)throw o;if(!s||!s.session||!s.user){const a=new Fr;return this._returnResult({data:{user:null,session:null,redirectType:null},error:a})}return s.session&&(await this._saveSession(s.session),await this._notifyAllSubscribers("SIGNED_IN",s.session)),this._returnResult({data:Object.assign(Object.assign({},s),{redirectType:r??null}),error:o})}catch(s){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(s))return this._returnResult({data:{user:null,session:null,redirectType:null},error:s});throw s}}async signInWithIdToken(e){try{const{options:n,provider:i,token:r,access_token:s,nonce:o}=e,a=await G(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,body:{provider:i,id_token:r,access_token:s,nonce:o,gotrue_meta_security:{captcha_token:n==null?void 0:n.captchaToken}},xform:on}),{data:l,error:u}=a;if(u)return this._returnResult({data:{user:null,session:null},error:u});if(!l||!l.session||!l.user){const c=new Fr;return this._returnResult({data:{user:null,session:null},error:c})}return l.session&&(await this._saveSession(l.session),await this._notifyAllSubscribers("SIGNED_IN",l.session)),this._returnResult({data:l,error:u})}catch(n){if(z(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async signInWithOtp(e){var n,i,r,s,o;try{if("email"in e){const{email:a,options:l}=e;let u=null,c=null;this.flowType==="pkce"&&([u,c]=await Mr(this.storage,this.storageKey));const{error:p}=await G(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{email:a,data:(n=l==null?void 0:l.data)!==null&&n!==void 0?n:{},create_user:(i=l==null?void 0:l.shouldCreateUser)!==null&&i!==void 0?i:!0,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken},code_challenge:u,code_challenge_method:c},redirectTo:l==null?void 0:l.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:p})}if("phone"in e){const{phone:a,options:l}=e,{data:u,error:c}=await G(this.fetch,"POST",`${this.url}/otp`,{headers:this.headers,body:{phone:a,data:(r=l==null?void 0:l.data)!==null&&r!==void 0?r:{},create_user:(s=l==null?void 0:l.shouldCreateUser)!==null&&s!==void 0?s:!0,gotrue_meta_security:{captcha_token:l==null?void 0:l.captchaToken},channel:(o=l==null?void 0:l.channel)!==null&&o!==void 0?o:"sms"}});return this._returnResult({data:{user:null,session:null,messageId:u==null?void 0:u.message_id},error:c})}throw new el("You must provide either an email or phone number.")}catch(a){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(a))return this._returnResult({data:{user:null,session:null},error:a});throw a}}async verifyOtp(e){var n,i;try{let r,s;"options"in e&&(r=(n=e.options)===null||n===void 0?void 0:n.redirectTo,s=(i=e.options)===null||i===void 0?void 0:i.captchaToken);const{data:o,error:a}=await G(this.fetch,"POST",`${this.url}/verify`,{headers:this.headers,body:Object.assign(Object.assign({},e),{gotrue_meta_security:{captcha_token:s}}),redirectTo:r,xform:on});if(a)throw a;if(!o)throw new Error("An error occurred on token verification.");const l=o.session,u=o.user;return l!=null&&l.access_token&&(await this._saveSession(l),await this._notifyAllSubscribers(e.type=="recovery"?"PASSWORD_RECOVERY":"SIGNED_IN",l)),this._returnResult({data:{user:u,session:l},error:null})}catch(r){if(z(r))return this._returnResult({data:{user:null,session:null},error:r});throw r}}async signInWithSSO(e){var n,i,r,s,o;try{let a=null,l=null;this.flowType==="pkce"&&([a,l]=await Mr(this.storage,this.storageKey));const u=await G(this.fetch,"POST",`${this.url}/sso`,{body:Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},"providerId"in e?{provider_id:e.providerId}:null),"domain"in e?{domain:e.domain}:null),{redirect_to:(i=(n=e.options)===null||n===void 0?void 0:n.redirectTo)!==null&&i!==void 0?i:void 0}),!((r=e==null?void 0:e.options)===null||r===void 0)&&r.captchaToken?{gotrue_meta_security:{captcha_token:e.options.captchaToken}}:null),{skip_http_redirect:!0,code_challenge:a,code_challenge_method:l}),headers:this.headers,xform:TR});return!((s=u.data)===null||s===void 0)&&s.url&&Ge()&&!(!((o=e.options)===null||o===void 0)&&o.skipBrowserRedirect)&&window.location.assign(u.data.url),this._returnResult(u)}catch(a){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(a))return this._returnResult({data:null,error:a});throw a}}async reauthenticate(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._reauthenticate())}async _reauthenticate(){try{return await this._useSession(async e=>{const{data:{session:n},error:i}=e;if(i)throw i;if(!n)throw new Pt;const{error:r}=await G(this.fetch,"GET",`${this.url}/reauthenticate`,{headers:this.headers,jwt:n.access_token});return this._returnResult({data:{user:null,session:null},error:r})})}catch(e){if(z(e))return this._returnResult({data:{user:null,session:null},error:e});throw e}}async resend(e){try{const n=`${this.url}/resend`;if("email"in e){const{email:i,type:r,options:s}=e,{error:o}=await G(this.fetch,"POST",n,{headers:this.headers,body:{email:i,type:r,gotrue_meta_security:{captcha_token:s==null?void 0:s.captchaToken}},redirectTo:s==null?void 0:s.emailRedirectTo});return this._returnResult({data:{user:null,session:null},error:o})}else if("phone"in e){const{phone:i,type:r,options:s}=e,{data:o,error:a}=await G(this.fetch,"POST",n,{headers:this.headers,body:{phone:i,type:r,gotrue_meta_security:{captcha_token:s==null?void 0:s.captchaToken}}});return this._returnResult({data:{user:null,session:null,messageId:o==null?void 0:o.message_id},error:a})}throw new el("You must provide either an email or phone number and a type")}catch(n){if(z(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async getSession(){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>this._useSession(async n=>n))}async _acquireLock(e,n){this._debug("#_acquireLock","begin",e);try{if(this.lockAcquired){const i=this.pendingInLock.length?this.pendingInLock[this.pendingInLock.length-1]:Promise.resolve(),r=(async()=>(await i,await n()))();return this.pendingInLock.push((async()=>{try{await r}catch{}})()),r}return await this.lock(`lock:${this.storageKey}`,e,async()=>{this._debug("#_acquireLock","lock acquired for storage key",this.storageKey);try{this.lockAcquired=!0;const i=n();for(this.pendingInLock.push((async()=>{try{await i}catch{}})()),await i;this.pendingInLock.length;){const r=[...this.pendingInLock];await Promise.all(r),this.pendingInLock.splice(0,r.length)}return await i}finally{this._debug("#_acquireLock","lock released for storage key",this.storageKey),this.lockAcquired=!1}})}finally{this._debug("#_acquireLock","end")}}async _useSession(e){this._debug("#_useSession","begin");try{const n=await this.__loadSession();return await e(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 e=null;const n=await or(this.storage,this.storageKey);if(this._debug("#getSession()","session from storage",n),n!==null&&(this._isValidSession(n)?e=n:(this._debug("#getSession()","session from storage is not val
246id"),await this._removeSession())),!e)return{data:{session:null},error:null};const i=e.expires_at?e.expires_at*1e3-Date.now()<Uc:!1;if(this._debug("#__loadSession()",`session has${i?"":" not"} expired`,"expires_at",e.expires_at),!i){if(this.userStorage){const o=await or(this.userStorage,this.storageKey+"-user");o!=null&&o.user?e.user=o.user:e.user=Lc()}if(this.storage.isServer&&e.user&&!e.user.__isUserNotAvailableProxy){const o={value:this.suppressGetSessionWarning};e.user=CR(e.user,o),o.value&&(this.suppressGetSessionWarning=!0)}return{data:{session:e},error:null}}const{data:r,error:s}=await this._callRefreshToken(e.refresh_token);return s?this._returnResult({data:{session:null},error:s}):this._returnResult({data:{session:r},error:null})}finally{this._debug("#__loadSession()","end")}}async getUser(e){if(e)return await this._getUser(e);await this.initializePromise;const n=await this._acquireLock(this.lockAcquireTimeout,async()=>await this._getUser());return n.data.user&&(this.suppressGetSessionWarning=!0),n}async _getUser(e){try{return e?await G(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:e,xform:Ci}):await this._useSession(async n=>{var i,r,s;const{data:o,error:a}=n;if(a)throw a;return!(!((i=o.session)===null||i===void 0)&&i.access_token)&&!this.hasCustomAuthorizationHeader?{data:{user:null},error:new Pt}:await G(this.fetch,"GET",`${this.url}/user`,{headers:this.headers,jwt:(s=(r=o.session)===null||r===void 0?void 0:r.access_token)!==null&&s!==void 0?s:void 0,xform:Ci})})}catch(n){if(z(n))return Ic(n)&&(await this._removeSession(),await He(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({data:{user:null},error:n});throw n}}async updateUser(e,n={}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._updateUser(e,n))}async _updateUser(e,n={}){try{return await this._useSession(async i=>{const{data:r,error:s}=i;if(s)throw s;if(!r.session)throw new Pt;const o=r.session;let a=null,l=null;this.flowType==="pkce"&&e.email!=null&&([a,l]=await Mr(this.storage,this.storageKey));const{data:u,error:c}=await G(this.fetch,"PUT",`${this.url}/user`,{headers:this.headers,redirectTo:n==null?void 0:n.emailRedirectTo,body:Object.assign(Object.assign({},e),{code_challenge:a,code_challenge_method:l}),jwt:o.access_token,xform:Ci});if(c)throw c;return o.user=u.user,await this._saveSession(o),await this._notifyAllSubscribers("USER_UPDATED",o),this._returnResult({data:{user:o.user},error:null})})}catch(i){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(i))return this._returnResult({data:{user:null},error:i});throw i}}async setSession(e){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._setSession(e))}async _setSession(e){try{if(!e.access_token||!e.refresh_token)throw new Pt;const n=Date.now()/1e3;let i=n,r=!0,s=null;const{payload:o}=nl(e.access_token);if(o.exp&&(i=o.exp,r=i<=n),r){const{data:a,error:l}=await this._callRefreshToken(e.refresh_token);if(l)return this._returnResult({data:{user:null,session:null},error:l});if(!a)return{data:{user:null,session:null},error:null};s=a}else{const{data:a,error:l}=await this._getUser(e.access_token);if(l)return this._returnResult({data:{user:null,session:null},error:l});s={access_token:e.access_token,refresh_token:e.refresh_token,user:a.user,token_type:"bearer",expires_in:i-n,expires_at:i},await this._saveSession(s),await this._notifyAllSubscribers("SIGNED_IN",s)}return this._returnResult({data:{user:s.user,session:s},error:null})}catch(n){if(z(n))return this._returnResult({data:{session:null,user:null},error:n});throw n}}async refreshSession(e){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._refreshSession(e))}async _refreshSession(e){try{return await this._useSession(async n=>{var i;if(!e){const{data:o,error:a}=n;if(a)throw a;e=(i=o.session)!==null&&i!==void 0?i:void 0}if(!(e!=null&&e.refresh_token))throw new Pt;const{data:r,error:s}=await this._callRefreshToken(e.refresh_token);return s?this._returnResult({data:{user:null,session:null},error:s}):r?this._returnResult({data:{user:r.user,session:r},error:null}):this._returnResult({data:{user:null,session:null},error:null})})}catch(n){if(z(n))return this._returnResult({data:{user:null,session:null},error:n});throw n}}async _getSessionFromURL(e,n){try{if(!Ge())throw new tl("No browser detected.");
246if(e.error||e.error_description||e.error_code)throw new tl(e.error_description||"Error in URL with unspecified error_description",{error:e.error||"unspecified_error",code:e.error_code||"unspecified_code"});switch(n){case"implicit":if(this.flowType==="pkce")throw new tg("Not a valid PKCE flow url.");break;case"pkce":if(this.flowType==="implicit")throw new tl("Not a valid implicit grant flow url.");break;default:}if(n==="pkce"){if(this._debug("#_initialize()","begin","is PKCE flow",!0),!e.code)throw new tg("No code detected.");const{data:m,error:y}=await this._exchangeCodeForSession(e.code);if(y)throw y;const x=new URL(window.location.href);return x.searchParams.delete("code"),window.history.replaceState(window.history.state,"",x.toString()),{data:{session:m.session,redirectType:null},error:null}}const{provider_token:i,provider_refresh_token:r,access_token:s,refresh_token:o,expires_in:a,expires_at:l,token_type:u}=e;if(!s||!a||!o||!u)throw new tl("No session defined in URL");const c=Math.round(Date.now()/1e3),p=parseInt(a);let h=c+p;l&&(h=parseInt(l));const d=h-c;d*1e3<=Br&&console.warn(`@supabase/gotrue-js: Session as retrieved from URL expires in ${d}s, should have been closer to ${p}s`);const v=h-p;c-v>=120?console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued over 120s ago, URL could be stale",v,h,c):c-v<0&&console.warn("@supabase/gotrue-js: Session as retrieved from URL was issued in the future? Check the device clock for skew",v,h,c);const{data:g,error:w}=await this._getUser(s);if(w)throw w;const S={provider_token:i,provider_refresh_token:r,access_token:s,expires_in:p,expires_at:h,refresh_token:o,token_type:u,user:g.user};return window.location.hash="",this._debug("#_getSessionFromURL()","clearing window.location.hash"),this._returnResult({data:{session:S,redirectType:e.type},error:null})}catch(i){if(z(i))return this._returnResult({data:{session:null,redirectType:null},error:i});throw i}}_isImplicitGrantCallback(e){return typeof this.detectSessionInUrl=="function"?this.detectSessionInUrl(new URL(window.location.href),e):!!(e.access_token||e.error_description)}async _isPKCECallback(e){const n=await or(this.storage,`${this.storageKey}-code-verifier`);return!!(e.code&&n)}async signOut(e={scope:"global"}){return await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>await this._signOut(e))}async _signOut({scope:e}={scope:"global"}){return await this._useSession(async n=>{var i;const{data:r,error:s}=n;if(s&&!Ic(s))return this._returnResult({error:s});const o=(i=r.session)===null||i===void 0?void 0:i.access_token;if(o){const{error:a}=await this.admin.signOut(o,e);if(a&&!(tR(a)&&(a.status===404||a.status===401||a.status===403)||Ic(a)))return this._returnResult({error:a})}return e!=="others"&&(await this._removeSession(),await He(this.storage,`${this.storageKey}-code-verifier`)),this._returnResult({error:null})})}onAuthStateChange(e){const n=cR(),i={id:n,callback:e,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,i),(async()=>(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,async()=>{this._emitInitialSession(n)})))(),{data:{subscription:i}}}async _emitInitialSession(e){return await this._useSession(async n=>{var i,r;try{const{data:{session:s},error:o}=n;if(o)throw o;await((i=this.stateChangeEmitters.get(e))===null||i===void 0?void 0:i.callback("INITIAL_SESSION",s)),this._debug("INITIAL_SESSION","callback id",e,"session",s)}catch(s){await((r=this.stateChangeEmitters.get(e))===null||r===void 0?void 0:r.callback("INITIAL_SESSION",null)),this._debug("INITIAL_SESSION","callback id",e,"error",s),console.error(s)}})}async resetPasswordForEmail(e,n={}){let i=null,r=null;this.flowType==="pkce"&&([i,r]=await Mr(this.storage,this.storageKey,!0));try{return await G(this.fetch,"POST",`${this.url}/recover`,{body:{email:e,code_challenge:i,code_challenge_method:r,gotrue_meta_security:{captcha_token:n.captchaToken}},headers:this.headers,redirectTo:n.redirectTo})}catch(s){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(s))return this._returnResult({data:null,error:s});throw s}}async getUserIdentities(){var e;try{const{data:n,error:i}=await this.getUser();if(i)throw i;return this._returnResult({data:{identities:(e=n.user.identities)!==null&&e!==void 0?e:[]},error:null})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async linkIdentity(e){return"token"in e?this.linkIdentityIdToken(e):this.linkIdentityOAuth(e)}async linkIdentityOAuth(e){var n;try{const{data:i,error:r}=await this._useSession(async s=>{var o,a,l,u,c;const{data:p,error:h}=s;if(h)throw h;const d=await this._getUrlForProvider(`${this.url}/user/identities/authorize`,e.provider,{redirectTo:(o=e.options)===null||o===void 0?void 0:o.redirectTo,scopes:(a=e.options)===null||a===void 0?void 0:a.scopes,queryParams:(l=e.options)===null||l===void 0?void 0:l.queryParams,skipBrowserRedirect:!0});return await G(this.fetch,"GET",d,{headers:this.headers,jwt:(c=(u=p.session)===null||u===void 0?void 0:u.access_token)!==null&&c!==void 0?c:void 0})});if(r)throw r;return Ge()&&!(!((n=e.options)===null||n===void 0)&&n.skipBrowserRedirect)&&window.location.assign(i==null?void 0:i.url),this._returnResult({data:{provider:e.provider,url:i==null?void 0:i.url},error:null})}catch(i){if(z(i))return this._returnResult({data:{provider:e.provider,url:null},error:i});throw i}}async linkIdentityIdToken(e){return await this._useSession(async n=>{var i;try{const{error:r,data:{session:s}}=n;
246if(r)throw r;const{options:o,provider:a,token:l,access_token:u,nonce:c}=e,p=await G(this.fetch,"POST",`${this.url}/token?grant_type=id_token`,{headers:this.headers,jwt:(i=s==null?void 0:s.access_token)!==null&&i!==void 0?i:void 0,body:{provider:a,id_token:l,access_token:u,nonce:c,link_identity:!0,gotrue_meta_security:{captcha_token:o==null?void 0:o.captchaToken}},xform:on}),{data:h,error:d}=p;return d?this._returnResult({data:{user:null,session:null},error:d}):!h||!h.session||!h.user?this._returnResult({data:{user:null,session:null},error:new Fr}):(h.session&&(await this._saveSession(h.session),await this._notifyAllSubscribers("USER_UPDATED",h.session)),this._returnResult({data:h,error:d}))}catch(r){if(await He(this.storage,`${this.storageKey}-code-verifier`),z(r))return this._returnResult({data:{user:null,session:null},error:r});throw r}})}async unlinkIdentity(e){try{return await this._useSession(async n=>{var i,r;const{data:s,error:o}=n;if(o)throw o;return await G(this.fetch,"DELETE",`${this.url}/user/identities/${e.identity_id}`,{headers:this.headers,jwt:(r=(i=s.session)===null||i===void 0?void 0:i.access_token)!==null&&r!==void 0?r:void 0})})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async _refreshAccessToken(e){const n=`#_refreshAccessToken(${e.substring(0,5)}...)`;this._debug(n,"begin");try{const i=Date.now();return await fR(async r=>(r>0&&await hR(200*Math.pow(2,r-1)),this._debug(n,"refreshing attempt",r),await G(this.fetch,"POST",`${this.url}/token?grant_type=refresh_token`,{body:{refresh_token:e},headers:this.headers,xform:on})),(r,s)=>{const o=200*Math.pow(2,r);return s&&Oc(s)&&Date.now()+o-i<Br})}catch(i){if(this._debug(n,"error",i),z(i))return this._returnResult({data:{session:null,user:null},error:i});throw i}finally{this._debug(n,"end")}}_isValidSession(e){return typeof e=="object"&&e!==null&&"access_token"in e&&"refresh_token"in e&&"expires_at"in e}async _handleProviderSignIn(e,n){const i=await this._getUrlForProvider(`${this.url}/authorize`,e,{redirectTo:n.redirectTo,scopes:n.scopes,queryParams:n.queryParams});return this._debug("#_handleProviderSignIn()","provider",e,"options",n,"url",i),Ge()&&!n.skipBrowserRedirect&&window.location.assign(i),{data:{provider:e,url:i},error:null}}async _recoverAndRefresh(){var e,n;const i="#_recoverAndRefresh()";this._debug(i,"begin");try{const r=await or(this.storage,this.storageKey);if(r&&this.userStorage){let o=await or(this.userStorage,this.storageKey+"-user");!this.storage.isServer&&Object.is(this.storage,this.userStorage)&&!o&&(o={user:r.user},await Wr(this.userStorage,this.storageKey+"-user",o)),r.user=(e=o==null?void 0:o.user)!==null&&e!==void 0?e:Lc()}else if(r&&!r.user&&!r.user){const o=await or(this.storage,this.storageKey+"-user");o&&(o!=null&&o.user)?(r.user=o.user,await He(this.storage,this.storageKey+"-user"),await Wr(this.storage,this.storageKey,r)):r.user=Lc()}if(this._debug(i,"session from storage",r),!this._isValidSession(r)){this._debug(i,"session is not valid"),r!==null&&await this._removeSession();return}const s=((n=r.expires_at)!==null&&n!==void 0?n:1/0)*1e3-Date.now()<Uc;if(this._debug(i,`session has${s?"":" not"} expired with margin of ${Uc}s`),s){if(this.autoRefreshToken&&r.refresh_token){const{error:o}=await this._callRefreshToken(r.refresh_token);o&&(console.error(o),Oc(o)||(this._debug(i,"refresh failed with a non-retryable error, removing the session",o),await this._removeSession()))}}else if(r.user&&r.user.__isUserNotAvailableProxy===!0)try{const{data:o,error:a}=await this._getUser(r.access_token);!a&&(o!=null&&o.user)?(r.user=o.user,await this._saveSession(r),await this._notifyAllSubscribers("SIGNED_IN",r)):this._debug(i,"could not get user data, skipping SIGNED_IN notification")}catch(o){console.error("Error getting user data:",o),this._debug(i,"error getting user data, skipping SIGNED_IN notification",o)}else await this._notifyAllSubscribers("SIGNED_IN",r)}catch(r){this._debug(i,"error",r),console.error(r);return}finally{this._debug(i,"end")}}async _callRefreshToken(e){var n,i;if(!e)throw new Pt;if(this.refreshingDeferred)return this.refreshingDeferred.promise;const r=`#_callRefreshToken(${e.substring(0,5)}...)`;this._debug(r,"begin");try{this.refreshingDeferred=new Ku;const{data:s,error:o}=await this._refreshAccessToken(e);if(o)throw o;if(!s.session)throw new Pt;await this._saveSession(s.session),await this._notifyAllSubscribers("TOKEN_REFRESHED",s.session);const a={data:s.session,error:null};return this.refreshingDeferred.resolve(a),a}catch(s){if(this._debug(r,"error",s),z(s)){const o={data:null,error:s};return Oc(s)||await this._removeSession(),(n=this.refreshingDeferred)===null||n===void 0||n.resolve(o),o}throw(i=this.refreshingDeferred)===null||i===void 0||i.reject(s),s}finally{this.refreshingDeferred=null,this._debug(r,"end")}}async _notifyAllSubscribers(e,n,i=!0){const r=`#_notifyAllSubscribers(${e})`;this._debug(r,"begin",n,`broadcast = ${i}`);try{this.broadcastChannel&&i&&this.broadcastChannel.postMessage({event:e,session:n});const s=[],o=Array.from(this.stateChangeEmitters.values()).map(async a=>{try{await a.callback(e,n)}catch(l){s.push(l)}});if(await Promise.all(o),s.length>0){for(let a=0;a<s.length;a+=1)console.error(s[a]);throw s[0]}}finally{this._debug(r,"end")}}async _saveSession(e){this._debug("#_saveSession()",e),this.suppressGetSessionWarning=!0,await He(this.storage,`${this.storageKey}-code-verifier`);const n=Object.assign({},e),i=n.user&&n.user.__isUserNotAvailableProxy===!0;if(this.userStorage){!i&&n.user&&await Wr(this.userStorage,this.storageKey+"-user",{user:n.user});const r=Object.assign({},n);delete r.user;const s=og(r);await Wr(this.storage,this.storageKey,s)}else{const r=og(n);await Wr(this.storage,this.storageKey,r)}}async _removeSession(){this._debug("#_removeSession()"),this.suppressGetSessionWarning=!1,await He(this.storage,this.storageKey),await He(this.storage,this.storageKey+"-code-verifier"),await He(this.storage,this.storageKey+"-user"),this.userStorage&&await He(this.userStorage,this.storageKey+"-user"),await this._notifyAllSubscribers("SIGNED_OUT",null)}_removeVisibilityChangedCallback(){this._debug("#_removeVisibilityChangedCallback()");const e=this.visibilityChangedCallback;this.visibilityChangedCallback=null;try{e&&Ge()&&(window!=null&&window.removeEventListener)&&window.removeEventListener("visibilitychange",e)}
246catch(n){console.error("removing visibilitychange callback failed",n)}}async _startAutoRefresh(){await this._stopAutoRefresh(),this._debug("#_startAutoRefresh()");const e=setInterval(()=>this._autoRefreshTokenTick(),Br);this.autoRefreshTicker=e,e&&typeof e=="object"&&typeof e.unref=="function"?e.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(e);const n=setTimeout(async()=>{await this.initializePromise,await this._autoRefreshTokenTick()},0);this.autoRefreshTickTimeout=n,n&&typeof n=="object"&&typeof n.unref=="function"?n.unref():typeof Deno<"u"&&typeof Deno.unrefTimer=="function"&&Deno.unrefTimer(n)}async _stopAutoRefresh(){this._debug("#_stopAutoRefresh()");const e=this.autoRefreshTicker;this.autoRefreshTicker=null,e&&clearInterval(e);const n=this.autoRefreshTickTimeout;this.autoRefreshTickTimeout=null,n&&clearTimeout(n)}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 e=Date.now();try{return await this._useSession(async n=>{const{data:{session:i}}=n;if(!i||!i.refresh_token||!i.expires_at){this._debug("#_autoRefreshTokenTick()","no session");return}const r=Math.floor((i.expires_at*1e3-e)/Br);this._debug("#_autoRefreshTokenTick()",`access token expires in ${r} ticks, a tick lasts ${Br}ms, refresh threshold is ${np} ticks`),r<=np&&await this._callRefreshToken(i.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(e){if(e.isAcquireTimeout||e instanceof Zw)this._debug("auto refresh token tick lock not available");else throw e}}async _handleVisibilityChange(){if(this._debug("#_handleVisibilityChange()"),!Ge()||!(window!=null&&window.addEventListener))return this.autoRefreshToken&&this.startAutoRefresh(),!1;try{this.visibilityChangedCallback=async()=>{try{await this._onVisibilityChanged(!1)}catch(e){this._debug("#visibilityChangedCallback","error",e)}},window==null||window.addEventListener("visibilitychange",this.visibilityChangedCallback),await this._onVisibilityChanged(!0)}catch(e){console.error("_handleVisibilityChange",e)}}async _onVisibilityChanged(e){const n=`#_onVisibilityChanged(${e})`;this._debug(n,"visibilityState",document.visibilityState),document.visibilityState==="visible"?(this.autoRefreshToken&&this._startAutoRefresh(),e||(await this.initializePromise,await this._acquireLock(this.lockAcquireTimeout,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(e,n,i){const r=[`provider=${encodeURIComponent(n)}`];if(i!=null&&i.redirectTo&&r.push(`redirect_to=${encodeURIComponent(i.redirectTo)}`),i!=null&&i.scopes&&r.push(`scopes=${encodeURIComponent(i.scopes)}`),this.flowType==="pkce"){const[s,o]=await Mr(this.storage,this.storageKey),a=new URLSearchParams({code_challenge:`${encodeURIComponent(s)}`,code_challenge_method:`${encodeURIComponent(o)}`});r.push(a.toString())}if(i!=null&&i.queryParams){const s=new URLSearchParams(i.queryParams);r.push(s.toString())}return i!=null&&i.skipBrowserRedirect&&r.push(`skip_http_redirect=${i.skipBrowserRedirect}`),`${e}?${r.join("&")}`}async _unenroll(e){try{return await this._useSession(async n=>{var i;const{data:r,error:s}=n;return s?this._returnResult({data:null,error:s}):await G(this.fetch,"DELETE",`${this.url}/factors/${e.factorId}`,{headers:this.headers,jwt:(i=r==null?void 0:r.session)===null||i===void 0?void 0:i.access_token})})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async _enroll(e){try{return await this._useSession(async n=>{var i,r;const{data:s,error:o}=n;if(o)return this._returnResult({data:null,error:o});const a=Object.assign({friendly_name:e.friendlyName,factor_type:e.factorType},e.factorType==="phone"?{phone:e.phone}:e.factorType==="totp"?{issuer:e.issuer}:{}),{data:l,error:u}=await G(this.fetch,"POST",`${this.url}/factors`,{body:a,headers:this.headers,jwt:(i=s==null?void 0:s.session)===null||i===void 0?void 0:i.access_token});return u?this._returnResult({data:null,error:u}):(e.factorType==="totp"&&l.type==="totp"&&(!((r=l==null?void 0:l.totp)===null||r===void 0)&&r.qr_code)&&(l.totp.qr_code=`data:image/svg+xml;utf-8,${l.totp.qr_code}`),this._returnResult({data:l,error:null}))})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async _verify(e){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async n=>{var i;const{data:r,error:s}=n;if(s)return this._returnResult({data:null,error:s});const o=Object.assign({challenge_id:e.challengeId},"webauthn"in e?{webauthn:Object.assign(Object.assign({},e.webauthn),{credential_response:e.webauthn.type==="create"?VR(e.webauthn.credential_response):BR(e.webauthn.credential_response)})}:{code:e.code}),{data:a,error:l}=await G(this.fetch,"POST",`${this.url}/factors/${e.factorId}/verify`,{body:o,headers:this.headers,jwt:(i=r==null?void 0:r.session)===null||i===void 0?void 0:i.access_token});return l?this._returnResult({data:null,error:l}):(await this._saveSession(Object.assign({expires_at:Math.round(Date.now()/1e3)+a.expires_in},a)),await this._notifyAllSubscribers("MFA_CHALLENGE_VERIFIED",a),this._returnResult({data:a,error:l}))})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}})}async _challenge(e){return this._acquireLock(this.lockAcquireTimeout,async()=>{try{return await this._useSession(async n=>{var i;const{data:r,error:s}=n;if(s)return this._returnResult({data:null,error:s});const o=await G(this.fetch,"POST",`${this.url}/factors/${e.factorId}/challenge`,{body:e,headers:this.headers,jwt:(i=r==null?void 0:r.session)===null||i===void 0?void 0:i.access_token});if(o.error)return o;const{data:a}=o;if(a.type!=="webauthn")return{data:a,error:null};switch(a.webauthn.type){case"create":return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:KR(a.webauthn.credential_options.publicKey)})})}),error:null};case"request":return{data:Object.assign(Object.assign({},a),{webauthn:Object.assign(Object.assign({},a.webauthn),{credential_options:Object.assign(Object.assign({},a.webauthn.credential_options),{publicKey:zR(a.webauthn.credential_options.publicKey)})})}),error:null}}})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}})}async _challengeAndVerify(e){const{data:n,error:i}=await this._challenge({factorId:e.factorId});return i?this._returnResult({data:null,error:i}):await this._verify({factorId:e.factorId,challengeId:n.id,code:e.code})}async _listFactors(){var e;const{data:{user:n},error:i}=await this.getUser();if(i)return{data:null,error:i};const r={all:[],phone:[],totp:[],webauthn:[]};for(const s of(e=n==null?void 0:n.factors)!==null&&e!==void 0?e:[])r.all.push(s),s.status==="verified"&&r[s.factor_type].push(s);return{data:r,error:null}}async _getAuthenticatorAssuranceLevel(e){var n,i,r,s;if(e)try{const{payload:d}=nl(e);let v=null;d.aal&&(v=d.aal);let g=v;const{data:{user:w},error:S}=await this.getUser(e);if(S)return this._returnResult({data:null,error:S});((i=(n=w==null?void 0:w.factors)===null||n===void 0?void 0:n.filter(x=>x.status==="verified"))!==null&&i!==void 0?i:[]).length>0&&(g="aal2");const y=d.amr||[];return{data:{currentLevel:v,nextLevel:g,currentAuthenticationMethods:y},error:null}}catch(d){if(z(d))return this._returnResult({data:null,error:d});throw d}const{data:{session:o},error:a}
246=await this.getSession();if(a)return this._returnResult({data:null,error:a});if(!o)return{data:{currentLevel:null,nextLevel:null,currentAuthenticationMethods:[]},error:null};const{payload:l}=nl(o.access_token);let u=null;l.aal&&(u=l.aal);let c=u;((s=(r=o.user.factors)===null||r===void 0?void 0:r.filter(d=>d.status==="verified"))!==null&&s!==void 0?s:[]).length>0&&(c="aal2");const h=l.amr||[];return{data:{currentLevel:u,nextLevel:c,currentAuthenticationMethods:h},error:null}}async _getAuthorizationDetails(e){try{return await this._useSession(async n=>{const{data:{session:i},error:r}=n;return r?this._returnResult({data:null,error:r}):i?await G(this.fetch,"GET",`${this.url}/oauth/authorizations/${e}`,{headers:this.headers,jwt:i.access_token,xform:s=>({data:s,error:null})}):this._returnResult({data:null,error:new Pt})})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async _approveAuthorization(e,n){try{return await this._useSession(async i=>{const{data:{session:r},error:s}=i;if(s)return this._returnResult({data:null,error:s});if(!r)return this._returnResult({data:null,error:new Pt});const o=await G(this.fetch,"POST",`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"approve"},xform:a=>({data:a,error:null})});return o.data&&o.data.redirect_url&&Ge()&&!(n!=null&&n.skipBrowserRedirect)&&window.location.assign(o.data.redirect_url),o})}catch(i){if(z(i))return this._returnResult({data:null,error:i});throw i}}async _denyAuthorization(e,n){try{return await this._useSession(async i=>{const{data:{session:r},error:s}=i;if(s)return this._returnResult({data:null,error:s});if(!r)return this._returnResult({data:null,error:new Pt});const o=await G(this.fetch,"POST",`${this.url}/oauth/authorizations/${e}/consent`,{headers:this.headers,jwt:r.access_token,body:{action:"deny"},xform:a=>({data:a,error:null})});return o.data&&o.data.redirect_url&&Ge()&&!(n!=null&&n.skipBrowserRedirect)&&window.location.assign(o.data.redirect_url),o})}catch(i){if(z(i))return this._returnResult({data:null,error:i});throw i}}async _listOAuthGrants(){try{return await this._useSession(async e=>{const{data:{session:n},error:i}=e;return i?this._returnResult({data:null,error:i}):n?await G(this.fetch,"GET",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:n.access_token,xform:r=>({data:r,error:null})}):this._returnResult({data:null,error:new Pt})})}catch(e){if(z(e))return this._returnResult({data:null,error:e});throw e}}async _revokeOAuthGrant(e){try{return await this._useSession(async n=>{const{data:{session:i},error:r}=n;return r?this._returnResult({data:null,error:r}):i?(await G(this.fetch,"DELETE",`${this.url}/user/oauth/grants`,{headers:this.headers,jwt:i.access_token,query:{client_id:e.clientId},noResolveJson:!0}),{data:{},error:null}):this._returnResult({data:null,error:new Pt})})}catch(n){if(z(n))return this._returnResult({data:null,error:n});throw n}}async fetchJwk(e,n={keys:[]}){let i=n.keys.find(a=>a.kid===e);if(i)return i;const r=Date.now();if(i=this.jwks.keys.find(a=>a.kid===e),i&&this.jwks_cached_at+ZT>r)return i;const{data:s,error:o}=await G(this.fetch,"GET",`${this.url}/.well-known/jwks.json`,{headers:this.headers});if(o)throw o;return!s.keys||s.keys.length===0||(this.jwks=s,this.jwks_cached_at=r,i=s.keys.find(a=>a.kid===e),!i)?null:i}async getClaims(e,n={}){try{let i=e;if(!i){const{data:d,error:v}
246=await this.getSession();if(v||!d.session)return this._returnResult({data:null,error:v});i=d.session.access_token}const{header:r,payload:s,signature:o,raw:{header:a,payload:l}}=nl(i);n!=null&&n.allowExpired||bR(s.exp);const u=!r.alg||r.alg.startsWith("HS")||!r.kid||!("crypto"in globalThis&&"subtle"in globalThis.crypto)?null:await this.fetchJwk(r.kid,n!=null&&n.keys?{keys:n.keys}:n==null?void 0:n.jwks);if(!u){const{error:d}=await this.getUser(i);if(d)throw d;return{data:{claims:s,header:r,signature:o},error:null}}const c=xR(r.alg),p=await crypto.subtle.importKey("jwk",u,c,!0,["verify"]);if(!await crypto.subtle.verify(c,p,o,lR(`${a}.${l}`)))throw new sp("Invalid JWT signature");return{data:{claims:s,header:r,signature:o},error:null}}catch(i){if(z(i))return this._returnResult({data:null,error:i});throw i}}}ca.nextInstanceID={};const eP=ca,tP="2.95.3";let bo="";typeof Deno<"u"?bo="deno":typeof document<"u"?bo="web":typeof navigator<"u"&&navigator.product==="ReactNative"?bo="react-native":bo="node";const nP={"X-Client-Info":`supabase-js-${bo}/${tP}`},iP={headers:nP},rP={schema:"public"},sP={autoRefreshToken:!0,persistSession:!0,detectSessionInUrl:!0,flowType:"implicit"},oP={};function da(t){"@babel/helpers - typeof";return da=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(e){return typeof e}:function(e){return e&&typeof Symbol=="function"&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},da(t)}function aP(t,e){if(da(t)!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var i=n.call(t,e||"default");if(da(i)!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function lP(t){var e=aP(t,"string");return da(e)=="symbol"?e:e+""}function uP(t,e,n){return(e=lP(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function hg(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable})),n.push.apply(n,i)}return n}function Ie(t){for(var e=1;e<arguments.length;e++){var n=arguments[e]!=null?arguments[e]:{};e%2?hg(Object(n),!0).forEach(function(i){uP(t,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):hg(Object(n)).forEach(function(i){Object.defineProperty(t,i,Object.getOwnPropertyDescriptor(n,i))})}return t}const cP=t=>t?(...e)=>t(...e):(...e)=>fetch(...e),dP=()=>Headers,pP=(t,e,n)=>{const i=cP(n),r=dP();return async(s,o)=>{var a;const l=(a=await e())!==null&&a!==void 0?a:t;let u=new r(o==null?void 0:o.headers);return u.has("apikey")||u.set("apikey",t),u.has("Authorization")||u.set("Authorization",`Bearer ${l}`),i(s,Ie(Ie({},o),{},{headers:u}))}};function hP(t){return t.endsWith("/")?t:t+"/"}function fP(t,e){var n,i;const{db:r,auth:s,realtime:o,global:a}=t,{db:l,auth:u,realtime:c,global:p}=e,h={db:Ie(Ie({},l),r),auth:Ie(Ie({},u),s),realtime:Ie(Ie({},c),o),storage:{},global:Ie(Ie(Ie({},p),a),{},{headers:Ie(Ie({},(n=p==null?void 0:p.headers)!==null&&n!==void 0?n:{}),(i=a==null?void 0:a.headers)!==null&&i!==void 0?i:{})}),accessToken:async()=>""};return t.accessToken?h.accessToken=t.accessToken:delete h.accessToken,h}function mP(t){const e=t==null?void 0:t.trim();if(!e)throw new Error("supabaseUrl is required.");if(!e.match(/^https?:\/\//i))throw new Error("Invalid supabaseUrl: Must be a valid HTTP or HTTPS URL.");try{return new URL(hP(e))}catch{throw Error("Invalid supabaseUrl: Provided URL is malformed.")}}var gP=class extends eP{constructor(t){super(t)}},vP=class{constructor(t,e,n){var i,r;this.supabaseUrl=t,this.supabaseKey=e;const s=mP(t);if(!e)throw new Error("supabaseKey is required.");this.realtimeUrl=new URL("realtime/v1",s),this.realtimeUrl.protocol=this.realtimeUrl.protocol.replace("http","ws"),this.authUrl=new URL("auth/v1",s),this.storageUrl=new URL("storage/v1",s),this.functionsUrl=new URL("functions/v1",s);const o=`sb-${s.hostname.split(".")[0]}-auth-token`,a={db:rP,realtime:oP,auth:Ie(Ie({},sP),{},{storageKey:o}),global:iP},l=fP(n??{},a);if(this.storageKey=(i=l.auth.storageKey)!==null&&i!==void 0?i:"",this.headers=(r=l.global.headers)!==null&&r!==void 0?r:{},l.accessToken)this.accessToken=l.accessToken,this.auth=new Proxy({},{get:(c,p)=>{throw new Error(`@supabase/supabase-js: Supabase Client is configured with the accessToken option, accessing supabase.auth.${String(p)} is not possible`)}});else{var u;this.auth=this._initSupabaseAuthClient((u=l.auth)!==null&&u!==void 0?u:{},this.headers,l.global.fetch)}this.fetch=pP(e,this._getAccessToken.bind(this),l.global.fetch),this.realtime=this._initRealtimeClient(Ie({headers:this.headers,accessToken:this._getAccessToken.bind(this)},l.realtime)),this.accessToken&&Promise.resolve(this.accessToken()).then(c=>this.realtime.setAuth(c)).catch(c=>console.warn("Failed to set initial Realtime auth token:",c)),this.rest=new tT(new URL("rest/v1",s).href,{headers:this.headers,schema:l.db.schema,fetch:this.fetch,timeout:l.db.timeout,urlLengthLimit:l.db.urlLengthLimit}),this.storage=new GT(this.storageUrl.href,this.headers,this.fetch,n==null?void 0:n.storage),l.accessToken||this._listenForAuthEvents()}get functions(){return new HA(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,e={},n={head:!1,get:!1,count:void 0}){return this.rest.rpc(t,e,n)}channel(t,e={config:{}}){return this.realtime.channel(t,e)}getChannels(){return this.realtime.getChannels()}removeChannel(t){return this.realtime.removeChannel(t)}removeAllChannels(){return this.realtime.removeAllChannels()}async _getAccessToken(){var t=this,e,n;if(t.accessToken)return await t.accessToken();const{data:i}=await t.auth.getSession();return(e=(n=i.session)===null||n===void 0?void 0:n.access_token)!==null&&e!==void 0?e:t.supabaseKey}_initSupabaseAuthClient({autoRefreshToken:t,persistSession:e,detectSessionInUrl:n,storage:i,userStorage:r,storageKey:s,flowType:o,lock:a,debug:l,throwOnError:u},c,p){const h={Authorization:`Bearer ${this.supabaseKey}`,apikey:`${this.supabaseKey}`};return new gP({url:this.authUrl.href,headers:Ie(Ie({},h),c),storageKey:s,autoRefreshToken:t,persistSession:e,detectSessionInUrl:n,storage:i,userStorage:r,flowType:o,lock:a,debug:l,throwOnError:u,fetch:p,hasCustomAuthorizationHeader:Object.keys(this.headers).some(d=>d.toLowerCase()==="authorization")})}_initRealtimeClient(t){return new yT(this.realtimeUrl.href,Ie(Ie({},t),{},{params:Ie(Ie({},{apikey:this.supabaseKey}),t==null?void 0:t.params)}))}_listenForAuthEvents(){return this.auth.onAuthStateChange((t,e)=>{this._handleTokenChanged(t,"CLIENT",e==null?void 0:e.access_token)})}_handleTokenChanged(t,e,n){(t==="TOKEN_REFRESHED"||t==="SIGNED_IN")&&this.changedAccessToken!==n?(this.changedAccessToken=n,this.realtime.setAuth(n)):t==="SIGNED_OUT"&&(this.realtime.setAuth(),e=="STORAGE"&&this.auth.signOut(),this.changedAccessToken=void 0)}};const yP=(t,e,n)=>new vP(t,e,n);function SP(){if(typeof window<"u")return!1;const t=globalThis.process;if(!t)return!1;const e=t.version;if(e==null)return!1;const n=e.match(/^v(\d+)\./);return n?parseInt(n[1],10)<=18:!1}SP()&&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 N
246ode.js 20 or later. For more information, visit: https://github.com/orgs/supabase/discussions/37217");function wP(){var w,S;if(typeof window>"u")return;const t=location.hostname,n=["lovableproject.com","lovableproject-dev.com","lovable.app","gpt-eng.com","gptengineer.run"].some(m=>t===m||t.endsWith("."+m)),i="[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}",r=n?((w=t.match(new RegExp("^(?:id-preview(?:-[a-z0-9]+)?|project)--("+i+")(?:-dev)?(?=\\.|$)","i")))==null?void 0:w[1])??((S=t.match(new RegExp("^("+i+")(?=[.-])","i")))==null?void 0:S[1]):void 0,s=window.parent&&window.parent!==window;if(!r||!s)return localStorage;const o=t.endsWith(".lovableproject-dev.com")||t.endsWith(".gpt-eng.com"),a=o?/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$|^http:\/\/localhost:3000$/:/^https:\/\/([a-z0-9-]+\.)*(lovable\.dev|gptengineer\.app)$/,l=location.ancestorOrigins&&location.ancestorOrigins[0]||(document.referrer?new URL(document.referrer).origin:""),u=l&&a.test(l)?[l]:o?["https://lovable.dev","http://localhost:3000"]:["https://lovable.dev"],c="lovable-preview-auth:result",p=2e3,h=()=>Math.random().toString(36).slice(2)+Date.now().toString(36),d=(m,y,x)=>new Promise(C=>{const E=h();let _=!1,A;const I=q=>{_||(_=!0,clearTimeout(A),window.removeEventListener("message",L),C(q))},L=q=>{if(u.indexOf(q.origin)<0)return;const X=q.data;X&&X.type===c&&X.requestId===E&&I(X)};window.addEventListener("message",L);const F={type:m,requestId:E,projectId:r,key:y};x!==void 0&&(F.value=x);for(const q of u)window.parent.postMessage(F,q);A=setTimeout(()=>I(null),p)});let v=!0;const g=250;return{getItem:async m=>{let y=await d("lovable-preview-auth:get",m);return!y&&v&&(await new Promise(x=>setTimeout(x,g)),y=await d("lovable-preview-auth:get",m)),v=!1,y&&y.ok&&typeof y.value=="string"?y.value===""?(localStorage.removeItem(m),null):y.value:localStorage.getItem(m)},setItem:(m,y)=>(localStorage.setItem(m,y),d("lovable-preview-auth:set",m,y).then(x=>{x&&x.ok&&typeof x.value=="string"&&localStorage.getItem(m)===y&&(x.value===""?localStorage.removeItem(m):localStorage.setItem(m,x.value))})),removeItem:m=>(localStorage.removeItem(m),d("lovable-preview-auth:remove",m).then(()=>{}))}}const bP="https://ojqjefftbgdscozhanca.supabase.co",xP="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9qcWplZmZ0Ymdkc2NvemhhbmNhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA5MTQ2ODMsImV4cCI6MjA4NjQ5
246MDY4M30.TrIFP_RG4oLuXFbzgggy5fq7ZcCjscMPov-buOjw-ig",Hr=yP(bP,xP,{auth:{storage:wP(),persistSession:!0,autoRefreshToken:!0}}),nb=b.createContext(void 0),kP=({children:t})=>{const[e,n]=b.useState(null),[i,r]=b.useState(null),[s,o]=b.useState(!1),[a,l]=b.useState(!0),u=async h=>{const{data:d,error:v}=await Hr.from("user_roles").select("role").eq("user_id",h).eq("role","admin").maybeSingle();o(!!(!v&&d))};b.useEffect(()=>{const{data:{subscription:h}}=Hr.auth.onAuthStateChange((d,v)=>{n(v),r((v==null?void 0:v.user)??null),v!=null&&v.user?u(v.user.id):o(!1),l(!1)});return Hr.auth.getSession().then(({data:{session:d}})=>{n(d),r((d==null?void 0:d.user)??null),d!=null&&d.user&&u(d.user.id),l(!1)}),()=>h.unsubscribe()},[]);const c=async(h,d)=>{const{error:v}=await Hr.auth.signInWithPassword({email:h,password:d});return{error:v}},p=async()=>{await Hr.auth.signOut()};return f.jsx(nb.Provider,{value:{session:e,user:i,isAdmin:s,loading:a,signIn:c,signOut:p},children:t})},CP=()=>{const t=b.useContext(nb);if(!t)throw new Error("useAuth must be used within AuthProvider");return t},fg=({children:t})=>{const{user:e,isAdmin:n,loading:i}=CP();return i?f.jsx("div",{className:"min-h-screen flex items-center justify-center",children:f.jsx("div",{className:"w-8 h-8 border-4 border-secondary border-t-transparent rounded-full animate-spin"})}):e?n?f.jsx(f.Fragment,{children:t}):f.jsx(Mm,{to:"/",replace:!0}):f.jsx(Mm,{to:"/admin/login",replace:!0})},EP="/assets/logo-optimized-320-DUNMzygZ.png",mg=[{to:"/uk-students/courses",key:"nav.ukStudents.findACourse"},{to:"/uk-students/student-finance-funding",key:"nav.ukStudents.studentFinanceFunding"},{to:"/uk-students/flexible-study-options",key:"nav.ukStudents.flexibleStudyOptions"},{to:"/uk-students/mature-students",key:"nav.ukStudents.matureStudents"},{to:"/uk-students/faqs",key:"nav.ukStudents.faqs"},{to:"/check-eligibility",key:"nav.ukStudents.checkEligibility"}],gg=[{to:"/international-students/why-study-in-the-uk",key:"nav.intlStudents.whyStudyUK"},{to:"/international-students/find-a-course",key:"nav.intlStudents.findACourse"},{to:"/international-students/tuition-fees-scholarships",key:"nav.intlStudents.tuitionFeesScholarships"},{to:"/international-students/student-visa-information",key:"nav.intlStudents.studentVisaInformation"},{to:"/international-students/accommodation-in-the-uk",key:"nav.intlStudents.accommodationInUK"},{to:"/international-students/study-in-the-uk-from-cote-divoire",key:"nav.intlStudents.coteDivoire"},{to:"/international-students/faqs",key:"nav.intlStudents.faqs"},{to:"/international-students#packages-prices",key:"nav.intlStudents.packagesPrices"},{to:"/check-eligibility",key:"nav.intlStudents.checkEligibility"}],_P=()=>{const[t,e]=b.useState(!1),[n,i]=b.useState(!1),[r,s]=b.useState(!1),o=Xi(),{language:a,setLanguage:l,t:u}=Ks(),c=p=>o.pathname===p;return f.jsxs("header",{className:"bg-card sticky top-0 z-50 border-b border-border",children:[f.jsxs("div",{className:"max-w-7xl mx-auto flex items-center justify-between min-h-20 py-2 px-5 sm:px-6 lg:px-8",children:[f.jsxs(ce,{to:"/",className:"flex items-center gap-3 shrink-0","aria-label":"Legal Connect UK home",children:[f.jsx("img",{src:EP,alt:"",className:"h-11 w-11 sm:h-14 sm:w-14 object-contain",width:"56",height:"56",fetchPriority:"high"}),f.jsxs("span",{className:"hidden sm:flex items-baseline gap-1 font-heading leading-none",children:[f.jsx("span",{className:"text-xl font-extrabold text-primary",children:"LEGAL"}),f.jsx("span",{className:"text-xl font-semibold text-foreground",children:"CONNECT"}),f.jsx("span",{className:"text-xs font-bold text-muted-foreground border border-border rounded-sm px-1.5 py-1 ml-1",children:"UK"})]})]}),f.jsxs("nav",{className:"hidden lg:flex items-center gap-6",children:[f.jsxs("div",{className:"group relative",children:[f.jsxs("button",{className:"flex items-center gap-1 font-heading font-medium text-base text-foreground hover:text-secondary transition-colors",children:[u("nav.studyConnectUK")," ",f.jsx(Wa,{className:"w-3 h-3"})]}),f.jsxs("div",{className:"absolute top-full left-0 mt-2 bg-background shadow-lg rounded-md py-2 w-56 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:[f.jsxs("div",{className:"group/uk relative",children:[f.jsxs("button",{className:"w-full flex items-center justify-between px-4 py-2 text-sm hover:bg-muted transition-colors text-left",children:[f.jsx("span",{children:u("nav.studyConnectUKUkStudents")}),f.jsx(hm,{className:"w-3 h-3"})]}),f.jsx("div",{className:"absolute top-0 left-full ml-0.5 bg-background shadow-lg rounded-md py-2 w-56 opacity-0 invisible group-hover/uk:opacity-100 group-hover/uk:visible transition-all z-50",children:mg.map(p=>f.jsx(ce,{to:p.to,className:`block px-4 py-2 text-sm hover:bg-muted transition-colors ${c(p.to)?"text-secondary":""}`,children:u(p.key)},p.to))})]}),f.jsxs("div",{className:"group/intl relative",children:[f.jsxs("button",{className:"w-full flex items-center justify-between px-4 py-2 text-sm hover:bg-muted transition-colors text-left",children:[f.jsx("span",{children:u("nav.studyConnectUKIntlStudents")}),f.jsx(hm,{className:"w-3 h-3"})]}),f.jsx("div",{className:"absolute top-0 left-full ml-0.5 bg-background shadow-lg rounded-md py-2 w-64 opacity-0 invisible group-hover/intl:opacity-100 group-hover/intl:visible transition-all z-50",children:gg.map(p=>f.jsx(ce,{to:p.to,className:`block px-4 py-2 text-sm hover:bg-muted transition-colors ${c(p.to)?"text-secondary":""}`,children:u(p.key)},p.to))})]})]})]}),f.jsxs("div",{className:"group relative",children:[f.jsxs("button",{className:"flex items-center gap-1 font-heading font-medium text-base text-foreground hover:text-secondary transition-colors",children:[u("nav.immigrationServices")," ",f.jsx(Wa,{className:"w-3 h-3"})]}),f.jsxs("div",{className:"absolute top-full left-0 mt-2 bg-background shadow-lg rounded-md py-2 w-56 opacity-0 invisible group-hover:opacity-100 group-hover:visible transition-all z-50",children:[f.jsx(ce,{to:"/visa-application",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationVisaApplication")}),f.jsx(ce,{to:"/family-visa",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationFamilyVisa")}),f.jsx(ce,{to:"/asylum-refugee",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationAsylumRefugee")}),f.jsx(ce,{to:"/nationality-citizenship",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationNationalityCitizenship")}),f.jsx(ce,{to:"/visa-extension",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationVisaExtension")}),f.jsx(ce,{to:"/appeal-review",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationAppealReview")}),f.jsx(ce,{to:"/overstayers",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors",children:u("nav.immigrationOverstayers")}),f.jsx(ce,{to:"/immigration-enquiry",className:"block px-4 py-2 text-sm hover:bg-muted transition-colors font-semibold text-secondary",children:u("nav.immigrationEnquiry")})]})]}),f.jsx(ce,{to:"/contact",className:`font-heading font-medium text-base transition-colors hover:text-secondary ${c("/contact")?"text-secondary":"text-foreground"}`,children:u("nav.contactUs")}),f.jsxs("div",{className:"flex items-center gap-1 ml-2",children:[f.jsxs("button",{onClick:()=>l("en"),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md font-heading font-semibold text-sm transition-colors ${a==="en"?"text-secondary":"text-muted-foreground hover:text-foreground"}`,children:[f.jsxs("svg",{viewBox:"0 0 60 30",className:"w-7 h-5 rounded-sm border border-border overflow-hidden",children:[f.jsx("clipPath",{id:"uk-s",children:f.jsx("path",{d:"M0,0 v30 h60 v-30 z"})}),f.jsx("clipPath",{id:"uk-t",children:f.jsx("path",{d:"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"})}),f.jsxs("g",{clipPath:"url(#uk-s)",children:[f.jsx("path",{d:"M0,0 v30 h60 v-30 z",fill:"#012169"}),f.jsx("path",{d:"M0,0 L60,30 M60,0 L0,30",stroke:"#fff",strokeWidth:"6"}),f.jsx("path",{d:"M0,0 L60,30 M60,0 L0,30",clipPath:"url(#uk-t)",stroke:"#C8102E",strokeWidth:"4"}),f.jsx("path",{d:"M30,0 v30 M0,15 h60",stroke:"#fff",strokeWidth:"10"}),f.jsx("path",{d:"M30,0 v30 M0,15 h60",stroke:"#C8102E",strokeWidth:"6"})]})]}),"English"]}),f.jsxs("button",{onClick:()=>l("fr"),className:`flex items-center gap-1.5 px-3 py-1.5 rounded-md font-heading font-semibold text-sm transition-colors ${a==="fr"?"text-secondary":"text-muted-foreground hover:text-foreground"}`,children:[f.jsxs("svg",{viewBox:"0 0 30 20",className:"w-7 h-5 rounded-sm border border-border overflow-hidden",children:[f.jsx("rect",{width:"10",height:"20",fill:"#002395"}),f.jsx("rect",{x:"10",width:"10",height:"20",fill:"#FFFFFF"}),f.jsx("rect",{x:"20",width:"10",height:"20",fill:"#ED2939"})]}),"Français"]})]})]}),f.jsxs("div",{className:"flex items-center gap-2 lg:hidden",children:[f.jsx("button",{onClick:()=>l("en"),className:`min-w-11 min-h-11 inline-flex items-center justify-center rounded-md ${a==="en"?"ring-2 ring-secondary":""}`,"aria-label":"Switch to English","aria-pressed":a==="en",children:f.jsxs("svg",{viewBox:"0 0 60 30",className:"w-7 h-5 rounded-sm",children:[f.jsx("clipPath",{id:"uk-sm",children:f.jsx("path",{d:"M0,0 v30 h60 v-30 z"})}),f.jsx("clipPath",{id:"uk-tm",children:f.jsx("path",{d:"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"})}),f.jsxs("g",{clipPath:"url(#uk-sm)",children:[f.jsx("path",{d:"M0,0 v30 h60 v-30 z",fill:"#012169"}),f.jsx("path",{d:"M0,0 L60,30 M60,0 L0,30",stroke:"#fff",strokeWidth:"6"}),f.jsx("path",{d:"M0,0 L60,30 M60,0 L0,30",clipPath:"url(#uk-tm)",stroke:"#C8102E",strokeWidth:"4"}),f.jsx("path",{d:"M30,0 v30 M0,15 h60",stroke:"#fff",strokeWidth:"10"}),f.jsx("path",{d:"M30,0 v30 M0,15 h60",stroke:"#C8102E",strokeWidth:"6"})]})]})}),f.jsx("button",{onClick:()=>l("fr"),className:`min-w-11 min-h-11 inline-flex items-center justify-center rounded-md ${a==="fr"?"ring-2 ring-secondary":""}`,"aria-label":"Passer au français","aria-pressed":a==="fr",children:f.jsxs("svg",{viewBox:"0 0 30 20",className:"w-7 h-5 rounded-sm",children:[f.jsx("rect",{width:"10",height:"20",fill:"#002395"}),f.jsx("rect",{x:"10",width:"10",height:"20",fill:"#FFFFFF"}),f.jsx("rect",{x:"20",width:"10",height:"20",fill:"#ED2939"})]})}),f.jsx("button",{className:"min-w-11 min-h-11 inline-flex items-center justify-center rounded-md",onClick:()=>e(!t),"aria-label":t?"Close menu":"Open menu","aria-expanded":t,children:t?f.jsx(dh,{className:"w-6 h-6"}):f.jsx(sC,{className:"w-6 h-6"})})]})]}),t&&f.jsxs("div",{className:"lg:hidden max-h-[calc(100dvh-5rem)] overflow-y-auto overscroll-contain bg-background border-t px-5 sm:px-6 py-4 pb-8 space-y-1",children:[f.jsx("div",{className:"flex min-h-11 items-center font-heading font-medium text-base",children:u("nav.studyConnectUK")}),f.jsxs("div",{className:"pl-4",children:[f.jsxs("button",{onClick:()=>i(!n),className:"w-full min-h-11 flex items-center justify-between font-heading font-medium text-base py-2 text-muted-foreground","aria-expanded":n,children:[f.jsx("span",{children:u("nav.studyConnectUKUkStudents")}),f.jsx(Wa,{className:`w-3 h-3 transition-transform ${n?"rotate-180":""}`})]}),n&&f.jsx("div",{className:"pl-4 space-y-1 mt-1",children:mg.map(p=>f.jsx(ce,{to:p.to,className:"flex min-h-11 items-center font-heading font-medium text-base py-2 text-muted-foreground",onClick:()=>e(!1),children:u(p.key)},p.to))})]}),f.jsxs("div",{className:"pl-4",children:[f.jsxs("button",{onClick:()=>s(!r),className:"w-full min-h-11 flex items-center justify-between font-heading font-medium text-base py-2 text-muted-foreground","aria-expanded":r,children:[f.jsx("span",{children:u("nav.studyConnectUKIntlStudents")}),f.jsx(Wa,{className:`w-3 h-3 transition-transform ${r?"rotate-180":""}`})]}),r&&f.jsx("div",{className:"pl-4 space-y-1 mt-1",children:gg.map(p=>f.jsx(ce,{to:p.to,className:"flex min-h-11 items-center font-heading font-medium text-base py-2 text-muted-foreground",onClick:()=>e(!1),children:u(p.key)},p.to))})]}),f.jsx("div",{className:"block font-heading font-medium text-sm py-2",children:u("nav.immigrationServices")}),f.jsx(ce,{to:"/visa-application",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationVisaApplication")}),f.jsx(ce,{to:"/family-visa",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationFamilyVisa")}),f.jsx(ce,{to:"/asylum-refugee",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationAsylumRefugee")}),f.jsx(ce,{to:"/nationality-citizenship",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationNationalityCitizenship")}),f.jsx(ce,{to:"/visa-extension",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationVisaExtension")}),f.jsx(ce,{to:"/appeal-review",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationAppealReview")}),f.jsx(ce,{to:"/overstayers",className:"block font-heading font-medium text-sm py-2 pl-4 text-muted-foreground",onClick:()=>e(!1),children:u("nav.immigrationOverstayers")}),f.jsx(ce,{to:"/immigration-enquiry",className:"block font-heading font-semibold text-sm py-2 pl-4 text-secondary",onClick:()=>e(!1),children:u("nav.immigrationEnquiry")}),f.jsx(ce,{to:"/contact",className:"block font-heading font-medium text-sm py-2",onClick:()=>e(!1),children:u("nav.contactUs")})]})]})},AP=()=>
246f.jsx("svg",{viewBox:"0 0 24 24",fill:"currentColor",className:"w-4 h-4","aria-hidden":"true",children:f.jsx("path",{d:"M19.59 6.69a4.83 4.83 0 0 1-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 0 1-5.2 1.74 2.89 2.89 0 0 1 2.31-4.64 2.93 2.93 0 0 1 .88.13V9.4a6.84 6.84 0 0 0-1-.05A6.33 6.33 0 0 0 5 20.1a6.34 6.34 0 0 0 10.86-4.43v-7a8.16 8.16 0 0 0 4.77 1.52v-3.4a4.85 4.85 0 0 1-1-.1z"})}),TP=()=>{const{t}=Ks(),{toast:e}=iS(),[n,i]=b.useState(""),[r,s]=b.useState(!1),o=async a=>{a.preventDefault();const l=n.trim();if(!l||!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(l)){e({title:"Invalid email",description:"Please enter a valid email address.",variant:"destructive"});return}s(!0);try{await Hr.functions.invoke("send-form-email",{body:{formType:"newsletter",data:{email:l}}}),e({title:"Subscribed!",description:"Thank you for subscribing to our newsletter."}),i("")}catch{e({title:"Error",description:"Failed to subscribe. Please try again.",variant:"destructive"})}finally{s(!1)}};return f.jsxs("footer",{children:[f.jsx("div",{className:"bg-primary",children:f.jsxs("div",{className:"container mx-auto px-4 py-4 grid grid-cols-1 md:grid-cols-3 gap-4 text-primary-foreground",children:[f.jsxs("div",{className:"flex items-start gap-3",children:[f.jsx(lC,{className:"w-5 h-5 mt-1 text-secondary"}),f.jsxs("div",{children:[f.jsx("h6",{className:"font-heading font-semibold text-base",children:t("footer.contactUs")}),f.jsxs("p",{className:"text-base opacity-95",children:["Tel: ",f.jsx("a",{href:"tel:+442031431911",className:"hover:text-secondary",children:"0203 143 1911"})]}),f.jsx("p",{className:"text-base opacity-95",children:"Mobile: 07384199112"}),f.jsx("p",{className:"text-base opacity-95",children:"Email: [email protected]"})]})]}),f.jsxs("div",{className:"flex items-start gap-3",children:[f.jsx(eC,{className:"w-5 h-5 mt-1 text-secondary"}),f.jsxs("div",{children:[f.jsx("h6",{className:"font-heading font-semibold text-base",children:t("footer.openingHours")}),f.jsx("p",{className:"text-base opacity-95 font-semibold",children:t("footer.openingHoursValue")})]})]}),f.jsxs("div",{className:"flex items-start gap-3",children:[f.jsx(LS,{className:"w-5 h-5 mt-1 text-secondary"}),f.jsxs("div",{children:[f.jsx("h6",{className:"font-heading font-semibold text-base",children:t("footer.location")}),f.jsx("p",{className:"text-base opacity-95",children:"321-323 High Road, Chadwell Heath, Essex RM6 6AX"})]})]})]})}),f.jsxs("div",{className:"footer-gradient text-footer-foreground",children:[f.jsxs("div",{className:"container mx-auto px-4 py-6 grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",children:[f.jsxs("div",{children:[f.jsxs("div",{className:"mb-4",children:[f.jsxs("span",{className:"font-heading font-bold text-xl",children:[f.jsx("span",{className:"text-primary-foreground",children:"LEGAL "}),f.jsx("span",{className:"text-secondary",children:"CONNECT"})]}),f.jsx("p",{className:"text-xs tracking-wider opacity-70 mt-1",children:"EMPOWERING DREAMS. CONNECTING WORLDS"})]}),f.jsxs("div",{className:"flex gap-3 mt-4",children:[f.jsx("a",{href:"https://www.facebook.com/legalconnectionuk/",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-full bg-brand-navy flex items-center justify-center hover:bg-secondary transition-colors",children:f.jsx(tC,{className:"w-4 h-4"})}),f.jsx("a",{href:"https://www.instagram.com/legalconnectuk",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-full bg-brand-navy flex items-center justify-center hover:bg-secondary transition-colors",children:f.jsx(iC,{className:"w-4 h-4"})}),f.jsx("a",{href:"https://x.com/LegalConnectUK",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-full bg-brand-navy flex items-center justify-center hover:bg-secondary transition-colors",children:f.jsx(dC,{className:"w-4 h-4"})}),f.jsx("a",{href:"https://www.youtube.com/@LEGALCONNECTUK70",target:"_blank",rel:"noopener noreferrer",className:"w-9 h-9 rounded-full bg-brand-navy flex items-center justify-center hover:bg-secondary transition-colors",children:f.jsx(fC,{className:"w-4 h-4"})}),f.jsx("a",{href:"https://www.tiktok.com/@legal.connect",target:"_blank",rel:"noopener noreferrer","aria-label":"TikTok",className:"w-9 h-9 rounded-full bg-brand-navy flex items-center justify-center hover:bg-secondary transition-colors",children:f.jsx(AP,{})})]})]}),f.jsxs("div",{children:[f.jsx("h4",{className:"font-heading font-semibold text-lg mb-4",children:t("footer.quickLinks")}),f.jsxs("ul",{className:"space-y-2",children:[f.jsx("li",{children:f.jsx(ce,{to:"/",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:t("footer.home")})}),f.jsx("li",{children:f.jsx(ce,{to:"/about",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:t("footer.aboutUs")})}),f.jsx("li",{children:f.jsx(ce,{to:"/blog",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:"Blog"})}),f.jsx("li",{children:f.jsx(ce,{to:"/privacy-policy",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:t("footer.privacyPolicy")})}),f.jsx("li",{children:f.jsx(ce,{to:"/terms-conditions",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:t("footer.termsConditions")})}),f.jsx("li",{children:f.jsx(ce,{to:"/contact",className:"text-base opacity-85 hover:opacity-100 hover:text-secondary transition-all",children:t("footer.contactUs")})})]})]}),f.jsxs("div",{children:[f.jsx("h4",{className:"font-heading font-semibold text-lg mb-4",children:t("footer.subscribe")}),f.jsxs("form",{onSubmit:o,className:"flex",children:[f.jsx("input",{type:"email",value:n,onChange:a=>i(a.target.value),placeholder:"[email protected]",required:!0,className:"flex-1 px-3 py-2 rounded-l-md text-foreground text-sm bg-background border border-transparent focus:outline-none focus:ring-2 focus:ring-secondary/60 focus:border-secondary transition-all duration-200"}),f.jsx("button",{type:"submit",disabled:r,className:"bg-secondary text-secondary-foreground px-4 py-2 rounded-r-md font-heading font-semibold text-sm hover:opacity-90 transition-opacity disabled:opacity-60",children:r?"...":t("footer.subscribeBtn")}
246)]})]})]}),f.jsx("div",{className:"border-t border-primary/30",children:f.jsxs("div",{className:"container mx-auto px-4 py-3 text-center",children:[f.jsx("p",{className:"text-xs opacity-70 font-semibold mb-2",children:t("footer.disclaimer")}),f.jsx("p",{className:"text-xs opacity-60 max-w-3xl mx-auto",children:t("footer.disclaimerText")}),f.jsx("p",{className:"text-xs opacity-50 mt-4",children:t("footer.copyright")})]})})]})]})},RP="447384199112",PP=({children:t})=>{const[e,n]=b.useState(!1),{t:i}=Ks(),r=b.useMemo(()=>`https://wa.me/${RP}?text=${encodeURIComponent(i("form.whatsappDefaultMessage"))}`,[i]);return b.useEffect(()=>{const s=()=>n(window.scrollY>400);return window.addEventListener("scroll",s),()=>window.removeEventListener("scroll",s)},[]),f.jsxs("div",{className:"min-h-screen flex flex-col",children:[f.jsx(_P,{}),f.jsx("main",{className:"flex-1",children:t}),f.jsx(TP,{}),f.jsx("a",{href:r,target:"_blank",rel:"noopener noreferrer",className:"fixed bottom-5 right-5 sm:bottom-6 sm:right-6 z-50 w-14 h-14 rounded-full bg-green-500 text-white shadow-lg flex items-center justify-center hover:bg-green-600 transition-colors","aria-label":i("form.chatWhatsApp"),children:f.jsx(oC,{className:"w-6 h-6"})}),e&&f.jsx("button",{onClick:()=>window.scrollTo({top:0,behavior:"smooth"}),className:"fixed bottom-40 right-6 sm:bottom-6 sm:right-44 z-50 hidden sm:flex w-12 h-12 rounded-full bg-secondary text-secondary-foreground shadow-lg items-center justify-center hover:opacity-90 transition-opacity","aria-label":"Scroll to top",children:f.jsx(Jk,{className:"w-5 h-5"})})]})},vg="https://legal-connect.uk",UP="https://pub-bb2e103a32db4e198524a2e9ed8f35b4.r2.dev/8c9f8ee6-395c-4648-87a2-64af772cc0ca/id-preview-4e790272--9e1ef2e7-098e-4dda-9526-6f893bd3d9bb.lovable.app-1771278273252.png",Wn=(t,e,n="name")=>{let i=document.querySelector(`meta[${n}="${t}"]`);i||(i=document.createElement("meta"),i.setAttribute(n,t),document.head.appendChild(i)),i.setAttribute("content",e)},IP=t=>{let e=document.querySelector('link[rel="canonical"]');e||(e=document.createElement("link"),e.setAttribute("rel","canonical"),document.head.appendChild(e)),e.setAttribute("href",t)},OP=(t,e)=>{let n=document.getElementById(t);n||(n=document.createElement("script"),n.type="application/ld+json",n.id=t,document.head.appendChild(n)),n.textContent=JSON.stringify(e)},LP=({title:t,description:e,canonical:n,ogImage:i=UP,ogType:r="website",structuredData:s})=>(b.useEffect(()=>{if(document.title=t,Wn("description",e),Wn("og:title",t,"property"),Wn("og:description",e,"property"),Wn("og:type",r,"property"),Wn("og:image",i,"property"),Wn("og:url",n??`${vg}${window.location.pathname}`,"property"),Wn("twitter:title",t,"name"),Wn("twitter:description",e,"name"),Wn("twitter:image",i,"name"),IP(n??`${vg}${window.location.pathname}`),s)OP("page-jsonld",s);else{const o=document.getElementById("page-jsonld");o&&o.remove()}return()=>{const o=document.getElementById("page-jsonld");o&&o.remove()}},[t,e,n,i,r,s]),null),jP=IS("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-secondary text-secondary-foreground hover:bg-secondary/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"}}),jo=b.forwardRef(({className:t,variant:e,size:n,asChild:i=!1,...r},s)=>{const o=i?nk:"button";return f.jsx(o,{className:Ji(jP({variant:e,size:n,className:t})),ref:s,...r})});jo.displayName="Button";const NP=1,qP="b69a8be8-5c82-4de6-a0aa-448b4b5ae03c",DP="9e1ef2e7-098e-4dda-9526-6f893bd3d9bb",FP="/__l5e/assets-v1/b69a8be8-5c82-4de6-a0aa-448b4b5ae03c/students-legal-connect.
246jpg",MP="a/v1/9e1ef2e7-098e-4dda-9526-6f893bd3d9bb/b69a8be8-5c82-4de6-a0aa-448b4b5ae03c/students-legal-connect.jpg",$P="students-legal-connect.jpg",KP=457058,zP="image/jpeg",VP="2026-09-12T11:00:11Z",BP={version:NP,asset_id:qP,project_id:DP,url:FP,r2_key:MP,original_filename:$P,size:KP,content_type:zP,created_at:VP},WP=1,HP="6cbeaaec-ebb9-4383-bc7a-ec71516a77c1",GP="9e1ef2e7-098e-4dda-9526-6f893bd3d9bb",QP="/__l5e/assets-v1/6cbeaaec-ebb9-4383-bc7a-ec71516a77c1/legal-connect-solicitors-2.jpg",YP="a/v1/9e1ef2e7-098e-4dda-9526-6f893bd3d9bb/6cbeaaec-ebb9-4383-bc7a-ec71516a77c1/legal-connect-solicitors-2.jpg",JP="legal-connect-solicitors-2.jpg",XP=191499,ZP="image/jpeg",eU="2026-09-12T10:49:55Z",tU={version:WP,asset_id:HP,project_id:GP,url:QP,r2_key:YP,original_filename:JP,size:XP,content_type:ZP,created_at:eU},nU=()=>{const{t}=Ks(),e=[{key:"study",image:BP.url,to:"/international-students"},{key:"legal",image:tU.url,to:"/visa-services"}],n=[{icon:aC,label:t("home.trust1")},{icon:LS,label:t("home.trust2")},{icon:cC,label:t("home.trust3")}];return f.jsxs("section",{"aria-labelledby":"homepage-heading",className:"bg-background",children:[f.jsxs("div",{className:"max-w-7xl mx-auto px-5 sm:px-6 lg:px-8 py-12 md:py-16",children:[f.jsxs("header",{className:"text-center mb-8 md:mb-10",children:[f.jsx("p",{className:"font-heading font-bold text-sm text-primary uppercase mb-3",children:t("home.eyebrow")}),f.jsx("h1",{id:"homepage-heading",className:"font-heading text-3xl md:text-5xl font-extrabold text-primary",children:t("hero.title1")}),f.jsx("p",{className:"mt-4 max-w-2xl mx-auto text-base md:text-lg text-muted-foreground",children:t("home.intro")}),f.jsx("p",{className:"mt-5 text-sm font-semibold text-primary",children:t("home.chooseRoute")}),f.jsxs("div",{className:"mt-3 mx-auto grid max-w-3xl grid-cols-1 sm:grid-cols-2 gap-3",children:[f.jsx(jo,{asChild:!0,size:"lg",className:"w-full h-auto min-h-14 px-4 py-3 whitespace-normal leading-snug",children:f.jsxs(ce,{to:"/international-students",className:"justify-center text-center",children:[f.jsx("span",{children:t("home.studentSupport")}),f.jsx(bl,{className:"shrink-0"})]})}),f.jsx(jo,{asChild:!0,size:"lg",className:"w-full h-auto min-h-14 px-4 py-3 whitespace-normal leading-snug",children:f.jsxs(ce,{to:"/visa-services",className:"justify-center text-center",children:[f.jsx("span",{children:t("home.immigrationSupport")}),f.jsx(bl,{className:"shrink-0"})]})})]})]}),f.jsx("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-7 lg:gap-8",children:e.map(i=>f.jsxs("article",{className:"group bg-card border border-border rounded-lg overflow-hidden flex flex-col transition-colors hover:border-primary/40",children:[f.jsx("div",{className:"overflow-hidden aspect-[4/3] sm:aspect-[16/10]",children:f.jsx("img",{src:i.image,alt:t(`home.${i.key}.alt`),loading:"eager",width:"800",height:"500",className:`w-full h-full object-cover transition-transform duration-500 group-hover:scale-[1.015] motion-reduce:transition-none ${i.key==="study"?"object-[center_30%]":"object-[center_25%]"}`})}),f.jsxs("div",{className:"flex flex-1 flex-col items-start p-6 md:p-8",children:[f.jsx("span",{className:"text-xs font-bold text-muted-foreground uppercase mb-2",children:t(`home.${i.key}.eyebrow`)}),f.jsx("h2",{className:"font-heading text-2xl md:text-3xl font-bold text-primary mb-3",children:t(`home.${i.key}.title`)}),f.jsx("p",{className:"text-base text-muted-foreground mb-7 max-w-lg leading-relaxed flex-1",children:t(`home.${i.key}.desc`)}),f.jsx(jo,{asChild:!0,size:"lg",className:"w-full sm:w-auto",children:f.jsxs(ce,{to:i.to,children:[t(`home.${i.key}.cta`),f.jsx(bl,{})]})})]})]},i.key))})]}),f.jsx("div",{className:"bg-card border-y border-border",children:f.jsx("div",{className:"max-w-6xl mx-auto px-5 sm:px-6 py-6 grid grid-cols-1 sm:grid-cols-3 gap-4 md:gap-8 text-center",children:n.map(({icon:i,label:r})=>f.jsxs("div",{className:"flex flex-col md:flex-row items-center justify-center gap-2 md:gap-3",children:[f.jsx("span",{className:"w-9 h-9 md:w-10 md:h-10 shrink-0 rounded-md bg-muted flex items-center justify-center",children:f.jsx(i,{className:"w-4 h-4 md:w-5 md:h-5 text-primary"})}),f.jsx("span",{className:"font-heading font-semibold text-sm text-primary leading-snug",children:r})]},r))})}),f.jsx("div",{className:"bg-background",children:f.jsxs("div",{className:"max-w-6xl mx-auto px-5 sm:px-6 py-5 flex items-start gap-3 text-sm text-muted-foreground",children:[f.jsx(nC,{className:"w-5 h-5 text-primary flex-shrink-0 mt-0.5","aria-hidden":"true"}),f.jsx("p",{children:t("home.disclaimer")})]})})]})},iU=()=>{const{t}=Ks(),e=[{icon:Zk,key:"study",to:"/international-students"},{icon:pC,key:"immigration",to:"/visa-services"},{icon:hC,key:"about",to:"/about"}
246,{icon:rC,key:"contact",to:"/contact"}];return f.jsx("section",{"aria-labelledby":"quick-links-heading",className:"bg-card py-14 md:py-20",children:f.jsxs("div",{className:"max-w-6xl mx-auto px-4 sm:px-6",children:[f.jsxs("div",{className:"mb-8 md:flex md:items-end md:justify-between",children:[f.jsxs("div",{children:[f.jsx("p",{className:"font-heading text-sm font-bold text-primary uppercase mb-2",children:t("quick.eyebrow")}),f.jsx("h2",{id:"quick-links-heading",className:"font-heading text-2xl md:text-3xl font-bold text-foreground",children:t("quick.title")})]}),f.jsx("p",{className:"mt-3 md:mt-0 text-sm text-muted-foreground",children:t("quick.note")})]}),f.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 border-t border-l border-border",children:e.map(({icon:n,key:i,to:r})=>f.jsxs("div",{className:"bg-card border-r border-b border-border p-6 flex flex-col transition-colors hover:bg-muted/50",children:[f.jsx("div",{className:"w-11 h-11 rounded-md bg-muted flex items-center justify-center mb-5",children:f.jsx(n,{className:"w-5 h-5 sm:w-6 sm:h-6 text-primary"})}),f.jsx("h3",{className:"font-heading font-bold text-lg text-primary mb-2",children:t(`quick.${i}.title`)}),f.jsx("p",{className:"text-sm text-muted-foreground leading-relaxed flex-1",children:t(`quick.${i}.desc`)}),f.jsxs(ce,{to:r,className:"mt-5 inline-flex items-center gap-2 text-primary font-heading font-bold text-sm hover:text-secondary transition-colors",children:[t(`quick.${i}.cta`)," ",f.jsx(bl,{className:"w-3.5 h-3.5 sm:w-4 sm:h-4 shrink-0"})]})]},i))})]})})};function Ph(){return{async:!1,breaks:!1,extensions:null,gfm:!0,hooks:null,pedantic:!1,renderer:null,silent:!1,tokenizer:null,walkTokens:null}}var Lr=Ph();function ib(t){Lr=t}var pr={exec:()=>null};function de(t,e=""){let n=typeof t=="string"?t:t.source,i={replace:(r,s)=>{let o=typeof s=="string"?s:s.source;return o=o.replace(ct.caret,"$1"),n=n.replace(r,o),i},getRegex:()=>new RegExp(n,e)};return i}var rU=(()=>{try{return!!new RegExp("(?<=1)(?<!1)")}catch{return!1}})(),ct={codeRemoveIndent:/^(?: {1,4}| {0,3}\t)/gm,outputLinkReplace:/\\([\[\]])/g,indentCodeCompensation:/^(\s+)(?:```)/,beginningSpace:/^\s+/,endingHash:/#$/,startingSpaceChar:/^ /,endingSpaceChar:/ $/,nonSpaceChar:/[^ ]/,newLineCharGlobal:/\n/g,tabCharGlobal:/\t/g,multipleSpaceGlobal:/\s+/g,blankLine:/^[ \t]*$/,doubleBlankLine:/\n[ \t]*\n[ \t]*$/,blockquoteStart:/^ {0,3}>/,blockquoteSetextReplace:/\n {0,3}((?:=+|-+) *)(?=\n|$)/g,blockquoteSetextReplace2:/^ {0,3}>[ \t]?/gm,listReplaceNesting:/^ {1,4}(?=( {4})*[^ ])/g,listIsTask:/^\[[ xX]\] +\S/,listReplaceTask:/^\[[ xX]\] +/,listTaskCheckbox:/\[[ xX]\]/,anyLine:/\n.*\n/,hrefBrackets:/^<(.*)>$/,tableDelimiter:/[:|]/,tableAlignChars:/^\||\| *$/g,tableRowBlankLine:/\n[ \t]*$/,tableAlignRight:/^ *-+: *$/,tableAlignCenter:/^ *:-+: *$/,tableAlignLeft:/^ *:-+ *$/,startATag:/^<a /i,endATag:/^<\/a>/i,startPreScriptTag:/^<(pre|code|kbd|script)(\s|>)/i,endPreScriptTag:/^<\/(pre|code|kbd|script)(\s|>)/i,startAngleBracket:/^</,endAngleBracket:/>$/,pedanticHrefTitle:/^([^'"]*[^\s])\s+(['"])(.*)\2/,unicodeAlphaNumeric:/[\p{L}\p{N}]/u,escapeTest:/[&<>"']/,escapeReplace:/[&<>"']/g,escapeTestNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/,escapeReplaceNoEncode:/[<>"']|&(?!(#\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\w+);)/g,unescapeTest:/&(#(?:\d+)|(?:#x[0-9A-Fa-f]+)|(?:\w+));?/ig,caret:/(^|[^\[])\^/g,percentDecode:/%25/g,findPipe:/\|/g,splitPipe:/ \|/,slashPipe:/\\\|/g,carriageReturn:/\r\n|\r/g,spaceLine:/^ +$/gm,notSpaceStart:/^\S*/,endingNewline:/\n$/,listItemRegex:t=>new RegExp(`^( {0,3}${t})((?:[	 ][^\\n]*)?(?:\\n|$))`),nextBulletRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:[*+-]|\\d{1,9}[.)])((?:[ 	][^\\n]*)?(?:\\n|$))`),hrRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\* *){3,})(?:\\n+|$)`),fencesBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}(?:\`\`\`|~~~)`),headingBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}#`),htmlBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}<(?:[a-z].*>|!--)`,"i"),blockquoteBeginRegex:t=>new RegExp(`^ {0,${Math.min(3,t-1)}}>`)},sU=/^(?:[ \t]*(?:\n|$))+/,oU=/^((?: {4}| {0,3}\t)[^\n]+(?:\n(?:[ \t]*(?:\n|$))*)?)+/,aU=/^ {0,3}(`{3,}
vendor: 5,343 bytes, lines 246-247
246(?=[^`\n]*(?:\n|$))|~{3,})([^\n]*)(?:\n|$)(?:|([\s\S]*?)(?:\n|$))(?: {0,3}\1[~`]* *(?=\n|$)|$)/,ka=/^ {0,3}((?:-[\t ]*){3,}|(?:_[ \t]*){3,}|(?:\*[ \t]*){3,})(?:\n+|$)/,lU=/^ {0,3}(#{1,6})(?=\s|$)(.*)(?:\n+|$)/,Uh=/ {0,3}(?:[*+-]|\d{1,9}[.)])/,rb=/^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\n(?!\s*?\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\n {0,3}(=+|-+) *(?:\n+|$)/,sb=de(rb).replace(/bull/g,Uh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/\|table/g,"").getRegex(),uU=de(rb).replace(/bull/g,Uh).replace(/blockCode/g,/(?: {4}| {0,3}\t)/).replace(/fences/g,/ {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g,/ {0,3}>/).replace(/heading/g,/ {0,3}#{1,6}/).replace(/html/g,/ {0,3}<[^\n>]+>\n/).replace(/table/g,/ {0,3}\|?(?:[:\- ]*\|)+[\:\- ]*\n/).getRegex(),Ih=/^([^\n]+(?:\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\n)[^\n]+)*)/,cU=/^[^\n]+/,Oh=/(?!\s*\])(?:\\[\s\S]|[^\[\]\\])+/,dU=de(/^ {0,3}\[(label)\]: *(?:\n[ \t]*)?([^<\s][^\s]*|<.*?>)(?:(?: +(?:\n[ \t]*)?| *\n[ \t]*)(title))? *(?:\n+|$)/).replace("label",Oh).replace("title",/(?:"(?:\\"?|[^"\\])*"|'[^'\n]*(?:\n[^'\n]+)*\n?'|\([^()]*\))/).getRegex(),pU=de(/^(bull)([ \t][^\n]+?)?(?:\n|$)/).replace(/bull/g,Uh).getRegex(),zu="address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul",Lh=/<!--(?:-?>|[\s\S]*?(?:-->|$))/,hU=de("^ {0,3}(?:<(script|pre|style|textarea)[\\s>][\\s\\S]*?(?:</\\1>[^\\n]*\\n+|$)|comment[^\\n]*(\\n+|$)|<\\?[\\s\\S]*?(?:\\?>\\n*|$)|<![A-Z][\\s\\S]*?(?:>\\n*|$)|<!\\[CDATA\\[[\\s\\S]*?(?:\\]\\]>\\n*|$)|</?(tag)(?: +|\\n|/?>)[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|<(?!script|pre|style|textarea)([a-z][\\w-]*)(?:attribute)*? */?>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$)|</(?!script|pre|style|textarea)[a-z][\\w-]*\\s*>(?=[ \\t]*(?:\\n|$))[\\s\\S]*?(?:(?:\\n[ 	]*)+\\n|$))","i").replace("comment",Lh).replace("tag",zu).replace("attribute",/ +[a-zA-Z:_][\w.:-]*(?: *= *"[^"\n]*"| *= *'[^'\n]*'| *= *[^\s"'=<>`]+)?/).getRegex(),ob=de(Ih).replace("hr",ka).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("|table","").replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",zu).getRegex(),fU=de(/^( {0,3}> ?(paragraph|[^\n]*)(?:\n|$))+/).replace("paragraph",ob).getRegex(),jh={blockquote:fU,code:oU,def:dU,fences:aU,heading:lU,hr:ka,html:hU,lheading:sb,list:pU,newline:sU,paragraph:ob,table:pr,text:cU},yg=de("^ *([^\\n ].*)\\n {0,3}((?:\\| *)?:?-+:? *(?:\\| *:?-+:? *)*(?:\\| *)?)(?:\\n((?:(?! *\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\n|$))*)\\n*|$)").replace("hr",ka).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("blockquote"," {0,3}>").replace("code","(?: {4}| {0,3}	)[^\\n]").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",zu).getRegex(),mU={...jh,lheading:uU,table:yg,paragraph:de(Ih).replace("hr",ka).replace("heading"," {0,3}#{1,6}(?:\\s|$)").replace("|lheading","").replace("table",yg).replace("blockquote"," {0,3}>").replace("fences"," {0,3}(?:`{3,}(?=[^`\\n]*\\n)|~{3,})[^\\n]*\\n").replace("list"," {0,3}(?:[*+-]|1[.)])[ \\t]").replace("html","</?(?:tag)(?: +|\\n|/?>)|<(?:script|pre|style|textarea|!--)").replace("tag",zu).getRegex()},gU={...jh,html:de(`^ *(?:comment *(?:\\n|\\s*$)|<(tag)[\\s\\S]+?</\\1> *(?:\\n{2,}|\\s*$)|<tag(?:"[^"]*"|'[^']*'|\\s[^'"/>\\s]*)*?/?> *(?:\\n{2,}|\\s*$))`).replace("comment",Lh).replace(/tag/g,"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:|[^\\w\\s@]*@)\\b").getRegex(),def:/^ *\[([^\]]+)\]: *<?([^\s>]+)>?(?: +(["(][^\n]+[")]))? *(?:\n+|$)/,heading:/^(#{1,6})(.*)(?:\n+|$)/,fences:pr,lheading:/^(.+?)\n {0,3}(=+|-+) *(?:\n+|$)/,paragraph:de(Ih).replace("hr",ka).replace("heading",` *#{1,6} *[^
247]`).replace("lheading",sb).replace("|table","").replace("blockquote"," {0,3}>").replace("|fences","").replace("|list","").replace("|html","").replace("|tag","").getRegex()},vU=/^\\([!"#$%&'()*+,\-./:;<=>?@\[\]\\^_`{|}~])/,yU=/^(`+)([^`]|[^`][\s\S]*?[^`])\1(?!`)/,ab=/^( {2,}|\\)\n(?!\s*$)/,SU=/^(`+|[^`])(?:(?= {2,}\n)|[\s\S]*?(?:(?=[\\<!\[`*_]|\b_|$)|[^ ](?= {2,}\n)))/,Vu=/[\p{P}\p{S}]/u,Nh=/[\s\p{P}\p{S}]/u,lb=/[^\s\p{P}\p{S}]/u,wU=de(/^((?![*_])punctSpace)/,"u").replace(/punctSpace/g,Nh).getRegex(),ub=/(?!~)[\p{P}\p{S}]/u,bU=/(?!~)[\s\p{P}\p{S}]/u,xU=/(?:[^\s\p{P}\p{S}]|~)/u,cb=/(?![*_])[\p{P}\p{S}]/u,kU=/(?![*_])[\s\p{P}\p{S}]/u,CU=/(?:[^\s\p{P}\p{S}]|[*_])/u,EU=de(/link|precode-code|html/,"g").replace("link",/\[(?:[^\[\]`]|(?<a>`+)[^`]+\k<a>(?!`))*?\]\((?:\\[\s\S]|[^\\\(\)]|\((?:\\[\s\S]|[^\\\(\)])*\))*\)/).replace("prec
247ode-",rU?"(?<!`)()":"(^^|[^`])").replace("code",/(?<b>`+)[^`]+\k<b>(?!`)/).replace("html",/<(?! )[^<>]*?>/).getRegex(),db=/^(?:\*+(?:((?!\*)punct)|[^\s*]))|^_+(?:((?!_)punct)|([^\s_]))/,_U=de(db,"u").replace(/punct/g,Vu).getRegex(),AU=de(db,"u").replace(/punct/g,ub).getRegex(),pb="^[^_*]*?__[^_*]*?\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\*)punct(\\*+)(?=[\\s]|$)|notPunctSpace(\\*+)(?!\\*)(?=punctSpace|$)|(?!\\*)punctSpace(\\*+)(?=notPunctSpace)|[\\s](\\*+)(?!\\*)(?=punct)|(?!\\*)punct(\\*+)(?!\\*)(?=punct)|notPunctSpace(\\*+)(?=notPunctSpace)",TU=de(pb,"gu").replace(/notPunctSpace/g,lb).replace(/punctSpace/g,Nh).replace(/punct/g,Vu).getRegex(),RU=de(pb,"gu").replace(/notPunctSpace/g,xU).replace(/punctSpace/g,bU).replace(/punct/g,ub).getRegex(),PU=de("^[^_*]*?\\*\\*[^_*]*?_[^_*]*?(?=\\*\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)","gu").replace(/notPunctSpace/g,lb).replace(/punctSpace/g,Nh).replace(/punct/g,Vu).getRegex(),UU=de(/^~~?(?:((?!~)punct)|[^\s~])/,"u").replace(/punct/g,cb).getRegex(),IU="^[^~]+(?=[^~])|(?!~)punct(~~?)(?=[\\s]|$)|notPunctSpace(~~?)(?!~)(?=punctSpace|$)|(?!~)punctSpace(~~?)(?=notPunctSpace)|[\\s](~~?)(?!~)(?=punct)|(?!~)punct(~~?)(?!~)(?=punct)|notPunctSpace(~~?)(?=notPunctSpace)",OU=de(IU,"gu").replace(/notPunctSpace/g,CU).replace(/punctSpace/g,kU).replace(/punct/g,cb).getRegex(),LU=de(/\\(punct)/,"gu").replace(/punct/g,Vu).getRegex(),jU=de(/^<(scheme:[^\s\x00-\x1f<>]*|email)>/).replace("scheme",/[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace("email",/[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex(),NU=de(Lh).replace("(?:-->|$)","-->").getRegex(),qU=de("^comment|^</[a-zA-Z][\\w:-]*\\s*>|^<[a-zA-Z][\\w-]*(?:attribute)*?\\s*/?>|^<\\?[\\s\\S]*?\\?>|^<![a-zA-Z]+\\s[\\s\\S]*?>|^<!\\[CDATA\\[[\\s\\S]*?\\]\\]>").replace("comment",NU).replace("attribute",/\s+[a-zA-Z:_][\w.:-]*(?:\s*=\s*"[^"]*"|\s*=\s*'[^']*'|\s*=\s*[^\s"'=<>`]+)?/).getRegex(),au=/(?:\[(?:\\[\s\S]|[^\[\]\\])*\]|\\[\s\S]|`+[^`]*?`+(?!`)|[^\[\]\\`])*?/,DU=de(/^!?\[(label)\]\(\s*(href)(?:(?:[ \t]*(?:\n[ \t]*)?)(title))?\s*\)/).replace("label",au).replace("href",/<(?:\\.|[^\n<>\\])+>|[^ \t\n\x00-\x1f]*/).replace("title",/"(?:\\"?|[^"\\])*"|'(?:\\'?|[^'\\])*'|\((?:\\\)?|[^)\\])*\)/).getRegex(),hb=de(/^!?\[(label)\]\[(ref)\]/).replace("label",au).replace("ref",Oh).getRegex(),fb=de(/^!?\[(ref)\](?:\[\])?/).replace("ref",Oh).getRegex(),FU=de("reflink|nolink(?!\\()","g").replace("reflink",hb).replace("nolink",fb).getRegex(),Sg=/[hH][tT][tT][pP][sS]?|[fF][tT][pP]/,qh={_backpedal:pr,anyPunctuation:LU,autolink:jU,blockSkip:EU,br:ab,code:yU,del:pr,delLDelim:pr,delRDelim:pr,emStrongLDelim:_U,emStrongRDelimAst:TU,emStrongRDelimUnd:PU,escape:vU,link:DU,nolink:fb,punctuation:wU,reflink:hb,reflinkSearch:FU,tag:qU,text:SU,url:pr},MU={...qh,link:de(/^!?\[(label)\]\((.*?)\)/).replace("label",au).getRegex(),reflink:de(/^!?\[(label)\]\s*\[([^\]]*)\]/).replace("label",au).getRegex()},op={...qh,emStrongRDelimAst:RU,emStrongLDelim:AU,delLDelim:UU,delRDelim:OU,url:de(/^((?:protocol):\/\/|www\.)(?:[a-zA-Z0-9\-]+\.?)+[^\s<]*|^email/).replace("protocol",Sg).replace("email",/[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),_backpedal:/(?:[^?!.,:;*_'"~()&]+|\([^)]*\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'"~)]+(?!$))+/,del:/^(~~?)(?=[^\s~])((?:\\[\s\S]|[^\\])*?(?:\\[\s\S]|[^\s~\\]))\1(?=[^~]|$)/,text:de(/^([`~]+|[^`~])(?:(?= {2,}\n)|(?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)|[\s\S]*?(?:(?=[\\<!\[`*~_]|\b_|protocol:\/\/|www\.|$)|[^ ](?= {2,}\n)|[^a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-](?=[a-zA-Z0-9.!#$%&'*+\/=?_`{\|}~-]+@)))/).replace("protocol",Sg).getRegex()},$U={...op,br:de(ab).replace("{2,}","*").getRegex(),text:de(op.text).replace("\\b_","\\b_| {2,}\\n").replace(/\{2,\}/g,"*").getRegex()},il={normal:jh,gfm:mU,pedantic:gU},uo={normal:qh,gfm:op,breaks:$U,pedantic:MU},KU={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"},wg=t=>KU[t];function Gn(t,e){if(e){if(ct.escapeTest.test(t))return t.replace(ct.escapeReplace,wg)}else if(ct.escapeTestNoEncode.test(t))return t.replace(ct.escapeReplaceNoEncode,wg);return t}function bg(t){try{t=encodeURI(t).replace(ct.percentDecode,"%")}catch{return null}return t}function xg(t,e){var s;let n=t.replace(ct.findPipe,(o,a,l)=>
vendor: 9,140 bytes, lines 247-271
247{let u=!1,c=a;for(;--c>=0&&l[c]==="\\";)u=!u;return u?"|":" |"}),i=n.split(ct.splitPipe),r=0;if(i[0].trim()||i.shift(),i.length>0&&!((s=i.at(-1))!=null&&s.trim())&&i.pop(),e)if(i.length>e)i.splice(e);else for(;i.length<e;)i.push("");for(;r<i.length;r++)i[r]=i[r].trim().replace(ct.slashPipe,"|");return i}function co(t,e,n){let i=t.length;if(i===0)return"";let r=0;for(;r<i;){let s=t.charAt(i-r-1);if(s===e&&!n)r++;else if(s!==e&&n)r++;else break}return t.slice(0,i-r)}function zU(t,e){if(t.indexOf(e[1])===-1)return-1;let n=0;for(let i=0;i<t.length;i++)if(t[i]==="\\")i++;else if(t[i]===e[0])n++;else if(t[i]===e[1]&&(n--,n<0))return i;return n>0?-2:-1}function VU(t,e=0){let n=e,i="";for(let r of t)if(r==="	"){let s=4-n%4;i+=" ".repeat(s),n+=s}else i+=r,n++;return i}function kg(t,e,n,i,r){let s=e.href,o=e.title||null,a=t[1].replace(r.other.outputLinkReplace,"$1");i.state.inLink=!0;let l={type:t[0].charAt(0)==="!"?"image":"link",raw:n,href:s,title:o,text:a,tokens:i.inlineTokens(a)};return i.state.inLink=!1,l}function BU(t,e,n){let i=t.match(n.other.indentCodeCompensation);if(i===null)return e;let r=i[1];return e.split(`
248`).map(s=>{let o=s.match(n.other.beginningSpace);if(o===null)return s;let[a]=o;return a.length>=r.length?s.slice(r.length):s}).join(`
249`)}var lu=class{constructor(t){ve(this,"options");ve(this,"rules");ve(this,"lexer");this.options=t||Lr}space(t){let e=this.rules.block.newline.exec(t);if(e&&e[0].length>0)return{type:"space",raw:e[0]}}code(t){let e=this.rules.block.code.exec(t);if(e){let n=e[0].replace(this.rules.other.codeRemoveIndent,"");return{type:"code",raw:e[0],codeBlockStyle:"indented",text:this.options.pedantic?n:co(n,`
250`)}}}fences(t){let e=this.rules.block.fences.exec(t);if(e){let n=e[0],i=BU(n,e[3]||"",this.rules);return{type:"code",raw:n,lang:e[2]?e[2].trim().replace(this.rules.inline.anyPunctuation,"$1"):e[2],text:i}}}heading(t){let e=this.rules.block.heading.exec(t);if(e){let n=e[2].trim();if(this.rules.other.endingHash.test(n)){let i=co(n,"#");(this.options.pedantic||!i||this.rules.other.endingSpaceChar.test(i))&&(n=i.trim())}return{type:"heading",raw:e[0],depth:e[1].length,text:n,tokens:this.lexer.inline(n)}}}hr(t){let e=this.rules.block.hr.exec(t);if(e)return{type:"hr",raw:co(e[0],`
251`)}}blockquote(t){let e=this.rules.block.blockquote.exec(t);if(e){let n=co(e[0],`
252`).split(`
253`),i="",r="",s=[];for(;n.length>0;){let o=!1,a=[],l;for(l=0;l<n.length;l++)if(this.rules.other.blockquoteStart.test(n[l]))a.push(n[l]),o=!0;else if(!o)a.push(n[l]);else break;n=n.slice(l);let u=a.join(`
254`),c=u.replace(this.rules.other.blockquoteSetextReplace,`
255    $1`).replace(this.rules.other.blockquoteSetextReplace2,"");i=i?`${i}
256${u}`:u,r=r?`${r}
257${c}`:c;let p=this.lexer.state.top;if(this.lexer.state.top=!0,this.lexer.blockTokens(c,s,!0),this.lexer.state.top=p,n.length===0)break;let h=s.at(-1);if((h==null?void 0:h.type)==="code")break;if((h==null?void 0:h.type)==="blockquote"){let d=h,v=d.raw+`
258`+n.join(`
259`),g=this.blockquote(v);s[s.length-1]=g,i=i.substring(0,i.length-d.raw.length)+g.raw,r=r.substring(0,r.length-d.text.length)+g.text;break}else if((h==null?void 0:h.type)==="list"){let d=h,v=d.raw+`
260`+n.join(`
261`),g=this.list(v);s[s.length-1]=g,i=i.substring(0,i.length-h.raw.length)+g.raw,r=r.substring(0,r.length-d.raw.length)+g.raw,n=v.substring(s.at(-1).raw.length).split(`
262`);continue}}return{type:"blockquote",raw:i,tokens:s,text:r}}}list(t){var n,i;let e=this.rules.block.list.exec(t);if(e){let r=e[1].trim(),s=r.length>1,o={type:"list",raw:"",ordered:s,start:s?+r.slice(0,-1):"",loose:!1,items:[]};r=s?`\\d{1,9}\\${r.slice(-1)}`:`\\${r}`,this.options.pedantic&&(r=s?r:"[*+-]");let a=this.rules.other.listItemRegex(r),l=!1;for(;t;){let c=!1,p="",h="";if(!(e=a.exec(t))||this.rules.block.hr.test(t))break;p=e[0],t=t.substring(p.length);let d=VU(e[2].split(`
263`,1)[0],e[1].length),v=t.split(`
264`,1)[0],g=!d.trim(),w=0;if(this.options.pedantic?(w=2,h=d.trimStart()):g?w=e[1].length+1:(w=d.search(this.rules.other.nonSpaceChar),w=w>4?1:w,h=d.slice(w),w+=e[1].length),g&&this.rules.other.blankLine.test(v)&&(p+=v+`
265`,t=t.substring(v.length+1),c=!0),!c){let S=this.rules.other.nextBulletRegex(w),m=this.rules.other.hrRegex(w),y=this.rules.other.fencesBeginRegex(w),x=this.rules.other.headingBeginRegex(w),C=this.rules.other.htmlBeginRegex(w),E=this.rules.other.blockquoteBeginRegex(w);for(;t;){let _=t.split(`
266`,1)[0],A;if(v=_,this.options.pedantic?(v=v.replace(this.rules.other.listReplaceNesting,"  "),A=v):A=v.replace(this.rules.other.tabCharGlobal,"    "),y.test(v)||x.test(v)||C.test(v)||E.test(v)||S.test(v)||m.test(v))break;if(A.search(this.rules.other.nonSpaceChar)>=w||!v.trim())h+=`
267`+A.slice(w);else{if(g||d.replace(this.rules.other.tabCharGlobal,"    ").search(this.rules.other.nonSpaceChar)>=4||y.test(d)||x.test(d)||m.test(d))break;h+=`
268`+v}g=!v.trim(),p+=_+`
269`,t=t.substring(_.length+1),d=A.slice(w)}}o.loose||(l?o.loose=!0:this.rules.other.doubleBlankLine.test(p)&&(l=!0)),o.items.push({type:"list_item",raw:p,task:!!this.options.gfm&&this.rules.other.listIsTask.test(h),loose:!1,text:h,tokens:[]}),o.raw+=p}let u=o.items.at(-1);if(u)u.raw=u.raw.trimEnd(),u.text=u.text.trimEnd();else return;o.raw=o.raw.trimEnd();for(let c of o.items){if(this.lexer.state.top=!1,c.tokens=this.lexer.blockTokens(c.text,[]),c.task){if(c.text=c.text.replace(this.rules.other.listReplaceTask,""),((n=c.tokens[0])==null?void 0:n.type)==="text"||((i=c.tokens[0])==null?void 0:i.type)==="paragraph"){c.tokens[0].raw=c.tokens[0].raw.replace(this.rules.other.listReplaceTask,""),c.tokens[0].text=c.tokens[0].text.replace(this.rules.other.listReplaceTask,"");for(let h=this.lexer.inlineQueue.length-1;h>=0;h--)if(this.rules.other.listIsTask.test(this.lexer.inlineQueue[h].src)){this.lexer.inlineQueue[h].src=this.lexer.inlineQueue[h].src.replace(this.rules.other.listReplaceTask,"");break}}let p=this.rules.other.listTaskCheckbox.exec(c.raw);if(p){let h={type:"checkbox",raw:p[0]+" ",checked:p[0]!=="[ ]"};c.checked=h.checked,o.loose?c.tokens[0]&&["paragraph","text"].includes(c.tokens[0].type)&&"tokens"in c.tokens[0]&&c.tokens[0].tokens?(c.tokens[0].raw=h.raw+c.tokens[0].raw,c.tokens[0].text=h.raw+c.tokens[0].text,c.tokens[0].tokens.unshift(h)):c.tokens.unshift({type:"paragraph",raw:h.raw,text:h.raw,tokens:[h]}):c.tokens.unshift(h)}}if(!o.loose){let p=c.tokens.filter(d=>d.type==="space"),h=p.length>0&&p.some(d=>this.rules.other.anyLine.test(d.raw));o.loose=h}}if(o.loose)for(let c of o.items){c.loose=!0;for(let p of c.tokens)p.type==="text"&&(p.type="paragraph")}return o}}html(t){let e=this.rules.block.html.exec(t);if(e)return{type:"html",block:!0,raw:e[0],pre:e[1]==="pre"||e[1]==="script"||e[1]==="style",text:e[0]}}def(t){let e=this.rules.block.def.exec(t);if(e){let n=e[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),i=e[2]?e[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",r=e[3]?e[3].substring(1,e[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):e[3];return{type:"def",tag:n,raw:e[0],href:i,title:r}}}table(t){var o;let e=this.rules.block.table.exec(t);if(!e||!this.rules.other.tableDelimiter.test(e[2]))return;let n=xg(e[1]),i=e[2].replace(this.rules.other.tableAlignChars,"").split("|"),r=(o=e[3])!=null&&o.trim()?e[3].replace(this.rules.other.tableRowBlankLine,"").split(`
270`):[],s={type:"table",raw:e[0],header:[],align:[],rows:[]};if(n.length===i.length){for(let a of i)this.rules.other.tableAlignRight.test(a)?s.align.push("right"):this.rules.other.tableAlignCenter.test(a)?s.align.push("center"):this.rules.other.tableAlignLeft.test(a)?s.align.push("left"):s.align.push(null);for(let a=0;a<n.length;a++)s.header.push({text:n[a],tokens:this.lexer.inline(n[a]),header:!0,align:s.align[a]});for(let a of r)s.rows.push(xg(a,s.header.length).map((l,u)=>({text:l,tokens:this.lexer.inline(l),header:!1,align:s.align[u]})));return s}}lheading(t){let e=this.rules.block.lheading.exec(t);if(e)return{type:"heading",raw:e[0],depth:e[2].charAt(0)==="="?1:2,text:e[1],tokens:this.lexer.inline(e[1])}}paragraph(t){let e=this.rules.block.paragraph.exec(t);if(e){let n=e[1].charAt(e[1].length-1)===`
271`?e[1].slice(0,-1):e[1];return{type:"paragraph",raw:e[0],text:n,tokens:this.lexer.inline(n)}}}text(t){let e=this.rules.block.text.exec(t);if(e)return{type:"text",raw:e[0],text:e[0],tokens:this.lexer.inline(e[0])}}escape(t){let e=this.rules.inline.escape.exec(t);if(e)return{type:"escape",raw:e[0],text:e[1]}}tag(t){let e=this.rules.inline.tag.exec(t);if(e)return!this.lexer.state.inLink&&this.rules.other.startATag.test(e[0])?this.lexer.state.inLink=!0:this.lexer.state.inLink&&this.rules.other.endATag.test(e[0])&&(this.lexer.state.inLink=!1),!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(e[0])?this.lexer.state.inRawBlock=!0:this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(e[0])&&(this.lexer.state.inRawBlock=!1),{type:"html",raw:e[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:e[0]}}link(t){let e=this.rules.inline.link.exec(t);if(e){let n=e[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(n)){if
vendor: 20,821 bytes, lines 271-304
271(!this.rules.other.endAngleBracket.test(n))return;let s=co(n.slice(0,-1),"\\");if((n.length-s.length)%2===0)return}else{let s=zU(e[2],"()");if(s===-2)return;if(s>-1){let o=(e[0].indexOf("!")===0?5:4)+e[1].length+s;e[2]=e[2].substring(0,s),e[0]=e[0].substring(0,o).trim(),e[3]=""}}let i=e[2],r="";if(this.options.pedantic){let s=this.rules.other.pedanticHrefTitle.exec(i);s&&(i=s[1],r=s[3])}else r=e[3]?e[3].slice(1,-1):"";return i=i.trim(),this.rules.other.startAngleBracket.test(i)&&(this.options.pedantic&&!this.rules.other.endAngleBracket.test(n)?i=i.slice(1):i=i.slice(1,-1)),kg(e,{href:i&&i.replace(this.rules.inline.anyPunctuation,"$1"),title:r&&r.replace(this.rules.inline.anyPunctuation,"$1")},e[0],this.lexer,this.rules)}}reflink(t,e){let n;if((n=this.rules.inline.reflink.exec(t))||(n=this.rules.inline.nolink.exec(t))){let i=(n[2]||n[1]).replace(this.rules.other.multipleSpaceGlobal," "),r=e[i.toLowerCase()];if(!r){let s=n[0].charAt(0);return{type:"text",raw:s,text:s}}return kg(n,r,n[0],this.lexer,this.rules)}}emStrong(t,e,n=""){let i=this.rules.inline.emStrongLDelim.exec(t);if(!(!i||i[3]&&n.match(this.rules.other.unicodeAlphaNumeric))&&(!(i[1]||i[2])||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,o,a=r,l=0,u=i[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;for(u.lastIndex=0,e=e.slice(-1*t.length+r);(i=u.exec(e))!=null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s)continue;if(o=[...s].length,i[3]||i[4]){a+=o;continue}else if((i[5]||i[6])&&r%3&&!((r+o)%3)){l+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a+l);let c=[...i[0]][0].length,p=t.slice(0,r+i.index+c+o);if(Math.min(r,o)%2){let d=p.slice(1,-1);return{type:"em",raw:p,text:d,tokens:this.lexer.inlineTokens(d)}}let h=p.slice(2,-2);return{type:"strong",raw:p,text:h,tokens:this.lexer.inlineTokens(h)}}}}codespan(t){let e=this.rules.inline.code.exec(t);if(e){let n=e[2].replace(this.rules.other.newLineCharGlobal," "),i=this.rules.other.nonSpaceChar.test(n),r=this.rules.other.startingSpaceChar.test(n)&&this.rules.other.endingSpaceChar.test(n);return i&&r&&(n=n.substring(1,n.length-1)),{type:"codespan",raw:e[0],text:n}}}br(t){let e=this.rules.inline.br.exec(t);if(e)return{type:"br",raw:e[0]}}del(t,e,n=""){let i=this.rules.inline.delLDelim.exec(t);if(i&&(!i[1]||!n||this.rules.inline.punctuation.exec(n))){let r=[...i[0]].length-1,s,o,a=r,l=this.rules.inline.delRDelim;for(l.lastIndex=0,e=e.slice(-1*t.length+r);(i=l.exec(e))!=null;){if(s=i[1]||i[2]||i[3]||i[4]||i[5]||i[6],!s||(o=[...s].length,o!==r))continue;if(i[3]||i[4]){a+=o;continue}if(a-=o,a>0)continue;o=Math.min(o,o+a);let u=[...i[0]][0].length,c=t.slice(0,r+i.index+u+o),p=c.slice(r,-r);return{type:"del",raw:c,text:p,tokens:this.lexer.inlineTokens(p)}}}}autolink(t){let e=this.rules.inline.autolink.exec(t);if(e){let n,i;return e[2]==="@"?(n=e[1],i="mailto:"+n):(n=e[1],i=n),{type:"link",raw:e[0],text:n,href:i,tokens:[{type:"text",raw:n,text:n}]}}}url(t){var n;let e;if(e=this.rules.inline.url.exec(t)){let i,r;if(e[2]==="@")i=e[0],r="mailto:"+i;else{let s;do s=e[0],e[0]=((n=this.rules.inline._backpedal.exec(e[0]))==null?void 0:n[0])??"";while(s!==e[0]);i=e[0],e[1]==="www."?r="http://"+e[0]:r=e[0]}return{type:"link",raw:e[0],text:i,href:r,tokens:[{type:"text",raw:i,text:i}]}}}inlineText(t){let e=this.rules.inline.text.exec(t);if(e){let n=this.lexer.state.inRawBlock;return{type:"text",raw:e[0],text:e[0],escaped:n}}}},gn=class ap{constructor(e){ve(this,"tokens");ve(this,"options");ve(this,"state");ve(this,"inlineQueue");ve(this,"tokenizer");this.tokens=[],this.tokens.links=Object.create(null),this.options=e||Lr,this.options.tokenizer=this.options.tokenizer||new lu,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let n={other:ct,block:il.normal,inline:uo.normal};this.options.pedantic?(n.block=il.pedantic,n.inline=uo.pedantic):this.options.gfm&&(n.block=il.gfm,this.options.breaks?n.inline=uo.breaks:n.inline=uo.gfm),this.tokenizer.rules=n}static get rules(){return{block:il,inline:uo}}static lex(e,n){return new ap(n).lex(e)}static lexInline(e,n){return new ap(n).inlineTokens(e)}lex(e){e=e.replace(ct.carriageReturn,`
272`),this.blockTokens(e,this.tokens);for(let n=0;n<this.inlineQueue.length;n++){let i=this.inlineQueue[n];this.inlineTokens(i.src,i.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(e,n=[],i=!1){var r,s,o;for(this.options.pedantic&&(e=e.replace(ct.tabCharGlobal,"    ").replace(ct.spaceLine,""));e;){let a;if((s=(r=this.options.extensions)==null?void 0:r.block)!=null&&s.some(u=>(a=u.call({lexer:this},e,n))?(e=e.substring(a.raw.length),n.push(a),!0):!1))continue;if(a=this.tokenizer.space(e)){e=e.substring(a.raw.length);let u=n.at(-1);a.raw.length===1&&u!==void 0?u.raw+=`
273`:n.push(a);continue}if(a=this.tokenizer.code(e)){e=e.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="paragraph"||(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(`
274`)?"":`
275`)+a.raw,u.text+=`
276`+a.text,this.inlineQueue.at(-1).src=u.text):n.push(a);continue}if(a=this.tokenizer.fences(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.heading(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.hr(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.blockquote(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.list(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.html(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.def(e)){e=e.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="paragraph"||(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(`
277`)?"":`
278`)+a.raw,u.text+=`
279`+a.raw,this.inlineQueue.at(-1).src=u.text):this.tokens.links[a.tag]||(this.tokens.links[a.tag]={href:a.href,title:a.title},n.push(a));continue}if(a=this.tokenizer.table(e)){e=e.substring(a.raw.length),n.push(a);continue}if(a=this.tokenizer.lheading(e)){e=e.substring(a.raw.length),n.push(a);continue}let l=e;if((o=this.options.extensions)!=null&&o.startBlock){let u=1/0,c=e.slice(1),p;this.options.extensions.startBlock.forEach(h=>{p=h.call({lexer:this},c),typeof p=="number"&&p>=0&&(u=Math.min(u,p))}),u<1/0&&u>=0&&(l=e.substring(0,u+1))}if(this.state.top&&(a=this.tokenizer.paragraph(l))){let u=n.at(-1);i&&(u==null?void 0:u.type)==="paragraph"?(u.raw+=(u.raw.endsWith(`
280`)?"":`
281`)+a.raw,u.text+=`
282`+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(a),i=l.length!==e.length,e=e.substring(a.raw.length);continue}if(a=this.tokenizer.text(e)){e=e.substring(a.raw.length);let u=n.at(-1);(u==null?void 0:u.type)==="text"?(u.raw+=(u.raw.endsWith(`
283`)?"":`
284`)+a.raw,u.text+=`
285`+a.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=u.text):n.push(a);continue}if(e){let u="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(u);break}else throw new Error(u)}}return this.state.top=!0,n}inline(e,n=[]){return this.inlineQueue.push({src:e,tokens:n}),n}inlineTokens(e,n=[]){var l,u,c,p,h;let i=e,r=null;if(this.tokens.links){let d=Object.keys(this.tokens.links);if(d.length>0)for(;(r=this.tokenizer.rules.inline.reflinkSearch.exec(i))!=null;)d.includes(r[0].slice(r[0].lastIndexOf("[")+1,-1))&&(i=i.slice(0,r.index)+"["+"a".repeat(r[0].length-2)+"]"+i.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex))}for(;(r=this.tokenizer.rules.inline.anyPunctuation.exec(i))!=null;)i=i.slice(0,r.index)+"++"+i.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let s;for(;(r=this.tokenizer.rules.inline.blockSkip.exec(i))!=null;)s=r[2]?r[2].length:0,i=i.slice(0,r.index+s)+"["+"a".repeat(r[0].length-s-2)+"]"+i.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);i=((u=(l=this.options.hooks)==null?void 0:l.emStrongMask)==null?void 0:u.call({lexer:this},i))??i;let o=!1,a="";for(;e;){o||(a=""),o=!1;let d;if((p=(c=this.options.extensions)==null?void 0:c.inline)!=null&&p.some(g=>(d=g.call({lexer:this},e,n))?(e=e.substring(d.raw.length),n.push(d),!0):!1))continue;if(d=this.tokenizer.escape(e)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.tag(e)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.link(e)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.reflink(e,this.tokens.links)){e=e.substring(d.raw.length);let g=n.at(-1);d.type==="text"&&(g==null?void 0:g.type)==="text"?(g.raw+=d.raw,g.text+=d.text):n.push(d);continue}if(d=this.tokenizer.emStrong(e,i,a)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.codespan(e)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.br(e)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.del(e,i,a)){e=e.substring(d.raw.length),n.push(d);continue}if(d=this.tokenizer.autolink(e)){e=e.substring(d.raw.length),n.push(d);continue}if(!this.state.inLink&&(d=this.tokenizer.url(e))){e=e.substring(d.raw.length),n.push(d);continue}let v=e;if((h=this.options.extensions)!=null&&h.startInline){let g=1/0,w=e.slice(1),S;this.options.extensions.startInline.forEach(m=>{S=m.call({lexer:this},w),typeof S=="number"&&S>=0&&(g=Math.min(g,S))}),g<1/0&&g>=0&&(v=e.substring(0,g+1))}if(d=this.tokenizer.inlineText(v)){e=e.substring(d.raw.length),d.raw.slice(-1)!=="_"&&(a=d.raw.slice(-1)),o=!0;let g=n.at(-1);(g==null?void 0:g.type)==="text"?(g.raw+=d.raw,g.text+=d.text):n.push(d);continue}if(e){let g="Infinite loop on byte: "+e.charCodeAt(0);if(this.options.silent){console.error(g);break}else throw new Error(g)}}return n}},uu=class{constructor(t){ve(this,"options");ve(this,"parser");this.options=t||Lr}space(t){return""}code({text:t,lang:e,escaped:n}){var s;let i=(s=(e||"").match(ct.notSpaceStart))==null?void 0:s[0],r=t.replace(ct.endingNewline,"")+`
286`;return i?'<pre><code class="language-'+Gn(i)+'">'+(n?r:Gn(r,!0))+`</code></pre>
287`:"<pre><code>"+(n?r:Gn(r,!0))+`</code></pre>
288`}blockquote({tokens:t}){return`<blockquote>
289${this.parser.parse(t)}</blockquote>
290`}html({text:t}){return t}def(t){return""}heading({tokens:t,depth:e}){return`<h${e}>${this.parser.parseInline(t)}</h${e}>
291`}hr(t){return`<hr>
292`}list(t){let e=t.ordered,n=t.start,i="";for(let o=0;o<t.items.length;o++){let a=t.items[o];i+=this.listitem(a)}let r=e?"ol":"ul",s=e&&n!==1?' start="'+n+'"':"";return"<"+r+s+`>
293`+i+"</"+r+`>
294`}listitem(t){return`<li>${this.parser.parse(t.tokens)}</li>
295`}checkbox({checked:t}){return"<input "+(t?'checked="" ':"")+'disabled="" type="checkbox"> '}paragraph({tokens:t}){return`<p>${this.parser.parseInline(t)}</p>
296`}table(t){let e="",n="";for(let r=0;r<t.header.length;r++)n+=this.tablecell(t.header[r]);e+=this.tablerow({text:n});let i="";for(let r=0;r<t.rows.length;r++){let s=t.rows[r];n="";for(let o=0;o<s.length;o++)n+=this.tablecell(s[o]);i+=this.tablerow({text:n})}return i&&(i=`<tbody>${i}</tbody>`),`<table>
297<thead>
298`+e+`</thead>
299`+i+`</table>
300`}tablerow({text:t}){return`<tr>
301${t}</tr>
302`}tablecell(t){let e=this.parser.parseInline(t.tokens),n=t.header?"th":"td";return(t.align?`<${n} align="${t.align}">`:`<${n}>`)+e+`</${n}>
303`}strong({tokens:t}){return`<strong>${this.parser.parseInline(t)}</strong>`}em({tokens:t}){return`<em>${this.parser.parseInline(t)}</em>`}codespan({text:t}){return`<code>${Gn(t,!0)}</code>`}br(t){return"<br>"}del({tokens:t}){return`<del>${this.parser.parseInline(t)}</del>`}link({href:t,title:e,tokens:n}){let i=this.parser.parseInline(n),r=bg(t);if(r===null)return i;t=r;let s='<a href="'+t+'"';return e&&(s+=' title="'+Gn(e)+'"'),s+=">"+i+"</a>",s}image({href:t,title:e,text:n,tokens:i}){i&&(n=this.parser.parseInline(i,this.parser.textRenderer));let r=bg(t);if(r===null)return Gn(n);t=r;let s=`<img src="${t}" alt="${n}"`;return e&&(s+=` title="${Gn(e)}"`),s+=">",s}text(t){return"tokens"in t&&t.tokens?this.parser.parseInline(t.tokens):"escaped"in t&&t.escaped?t.text:Gn(t.text)}},Dh=class{strong({text:t}){return t}em({text:t}){return t}codespan({text:t}){return t}del({text:t}){return t}html({text:t}){return t}text({text:t}){return t}link({text:t}){return""+t}image({text:t}){return""+t}br(){return""}checkbox({raw:t}){return t}},vn=class lp{constructor(e){ve(this,"options");ve(this,"renderer");ve(this,"textRenderer");this.options=e||Lr,this.options.renderer=this.options.renderer||new uu,this.renderer=this.options.renderer,this.renderer.options=this.options,this.renderer.parser=this,this.textRenderer=new Dh}static parse(e,n){return new lp(n).parse(e)}static parseInline(e,n){return new lp(n).parseInline(e)}parse(e){var i,r;let n="";for(let s=0;s<e.length;s++){let o=e[s];if((r=(i=this.options.extensions)==null?void 0:i.renderers)!=null&&r[o.type]){let l=o,u=this.options.extensions.renderers[l.type].call({parser:this},l);if(u!==!1||!["space","hr","heading","code","table","blockquote","list","html","def","paragraph","text"].includes(l.type)){n+=u||"";continue}}let a=o;switch(a.type){case"space":{n+=this.renderer.space(a);break}case"hr":{n+=this.renderer.hr(a);break}case"heading":{n+=this.renderer.heading(a);break}case"code":{n+=this.renderer.code(a);break}case"table":{n+=this.renderer.table(a);break}case"blockquote":{n+=this.renderer.blockquote(a);break}case"list":{n+=this.renderer.list(a);break}case"checkbox":{n+=this.renderer.checkbox(a);break}case"html":{n+=this.renderer.html(a);break}case"def":{n+=this.renderer.def(a);break}case"paragraph":{n+=this.renderer.paragraph(a);break}case"text":{n+=this.renderer.text(a);break}default:{let l='Token with "'+a.type+'" type was not found.';if(this.options.silent)return console.error(l),"";throw new Error(l)}}}return n}parseInline(e,n=this.renderer){var r,s;let i="";for(let o=0;o<e.length;o++){let a=e[o];if((s=(r=this.options.extensions)==null?void 0:r.renderers)!=null&&s[a.type]){let u=this.options.extensions.renderers[a.type].call({parser:this},a);if(u!==!1||!["escape","html","link","image","strong","em","codespan","br","del","text"].includes(a.type)){i+=u||"";continue}}let l=a;switch(l.type){case"escape":{i+=n.text(l);break}case"html":{i+=n.html(l);break}case"link":{i+=n.link(l);break}case"image":{i+=n.image(l);break}case"checkbox":{i+=n.checkbox(l);break}case"strong":{i+=n.strong(l);break}case"em":{i+=n.em(l);break}case"codespan":{i+=n.codespan(l);break}case"br":{i+=n.br(l);break}case"del":{i+=n.del(l);break}case"text":{i+=n.text(l);break}default:{let u='Token with "'+l.type+'" type was not found.';if(this.options.silent)return console.error(u),"";throw new Error(u)}}}return i}},ol,xo=(ol=class{constructor(t){ve(this,"options");ve(this,"block");this.options=t||Lr}preprocess(t){return t}postprocess(t){return t}processAllTokens(t){return t}emStrongMask(t){return t}provideLexer(){return this.block?gn.lex:gn.lexInline}provideParser(){return this.block?vn.parse:vn.parseInline}},ve(ol,"passThroughHooks",new Set(["preprocess","postprocess","processAllTokens","emStrongMask"])),ve(ol,"passThroughHooksRespectAsync",new Set(["preprocess","postprocess","processAllTokens"])),ol),WU=class{constructor(...t){ve(this,"defaults",Ph());ve(this,"options",this.setOptions);ve(this,"parse",this.parseMarkdown(!0));ve(this,"parseInline",this.parseMarkdown(!1));ve(this,"Parser",vn);ve(this,"Renderer",uu);ve(this,"TextRenderer",Dh);ve(this,"Lexer",gn);ve(this,"Tokenizer",lu);ve(this,"Hooks",xo);this.use(...t)}walkTokens(t,e){var i,r;let n=[];for(let s of t)switch(n=n.concat(e.call(this,s)),s.type){case"table":{let o=s;for(let a of o.header)n=n.concat(this.walkTokens(a.tokens,e));for(let a of o.rows)for(let l of a)n=n.concat(this.walkTokens(l.tokens,e));break}case"list":{let o=s;n=n.concat(this.walkTokens(o.items,e));break}default:{let o=s;(r=(i=this.defaults.extensions)==null?void 0:i.childTokens)!=null&&r[o.type]?this.defaults.extensions.childTokens[o.type].forEach(a=>{let l=o[a].flat(1/0);n=n.concat(this.walkTokens(l,e))}):o.tokens&&(n=n.concat(this.walkTokens(o.tokens,e)))}}return n}use(...t){let e=this.defaults.extensions||{renderers:{},childTokens:{}};return t.forEach(n=>{let i={...n};if(i.async=this.defaults.async||i.async||!1,n.extensions&&(n.extensions.forEach(r=>{if(!r.name)throw new Error("extension name required");if("renderer"in r){let s=e.renderers[r.name];s?e.renderers[r.name]=function(...o){let a=r.renderer.apply(this,o);return a===!1&&(a=s.apply(this,o)),a}:e.renderers[r.name]=r.renderer}if("tokenizer"in r){if(!r.level||r.level!=="block"&&r.level!=="inline")throw new Error("extension level must be 'block' or 'inline'");let s=e[r.level];s?s.unshift(r.tokenizer):e[r.level]=[r.tokenizer],r.start&&(r.level==="block"?e.startBlock?e.startBlock.push(r.start):e.startBlock=[r.start]:r.level==="inline"&&(e.startInline?e.startInline.push(r.start):e.startInline=[r.start]))}"childTokens"in r&&r.childTokens&&(e.childTokens[r.name]=r.childTokens)}),i.extensions=e),n.renderer){let r=this.defaults.renderer||new uu(this.defaults);for(let s in n.renderer){if(!(s in r))throw new Error(`renderer '${s}' does not exist`);if(["options","parser"].includes(s))continue;let o=s,a=n.renderer[o],l=r[o];r[o]=(...u)=>{let c=a.apply(r,u);return c===!1&&(c=l.apply(r,u)),c||""}}i.renderer=r}if(n.tokenizer){let r=this.defaults.tokenizer||new lu(this.defaults);for(let s in n.tokenizer){if(!(s in r))throw new Error(`tokenizer '${s}' does not exist`);if(["options","rules","lexer"].includes(s))continue;let o=s,a=n.tokenizer[o],l=r[o];r[o]=(...u)=>{let c=a.apply(r,u);return c===!1&&(c=l.apply(r,u)),c}}i.tokenizer=r}if(n.hooks){let r=this.defaults.hooks||new xo;for(let s in n.hooks){if(!(s in r))throw new Error(`hook '${s}' does not exist`);if(["options","block"].includes(s))continue;let o=s,a=n.hooks[o],l=r[o];xo.passThroughHooks.has(s)?r[o]=u=>{if(this.defaults.async&&xo.passThroughHooksRespectAsync.has(s))return(async()=>{let p=await a.call(r,u);return l.call(r,p)})();let c=a.call(r,u);return l.call(r,c)}:r[o]=(...u)=>{if(this.defaults.async)return(async()=>{let p=await a.apply(r,u);return p===!1&&(p=await l.apply(r,u)),p})();let c=a.apply(r,u);return c===!1&&(c=l.apply(r,u)),c}}i.hooks=r}if(n.walkTokens){let r=this.defaults.walkTokens,s=n.walkTokens;i.walkTokens=function(o){let a=[];return a.push(s.call(this,o)),r&&(a=a.concat(r.call(this,o))),a}}this.defaults={...this.defaults,...i}}),this}setOptions(t){return this.defaults={...this.defaults,...t},this}lexer(t,e){return gn.lex(t,e??this.defaults)}parser(t,e){return vn.parse(t,e??this.defaults)}parseMarkdown(t){return(e,n)=>{let i={...n},r={...this.defaults,...i},s=this.onError(!!r.silent,!!r.async);if(this.defaults.async===!0&&i.async===!1)return s(new Error("marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise."));if(typeof e>"u"||e===null)return s(new Error("marked(): input parameter is undefined or null"));if(typeof e!="string")return s(new Error("marked(): input parameter is of type "+Object.prototype.toString.call(e)+", string expected"));if(r.hooks&&(r.hooks.options=r,r.hooks.block=t),r.async)return(async()=>{let o=r.hooks?await r.hooks.preprocess(e):e,a=await(r.hooks?await r.hooks.provideLexer():t?gn.lex:gn.lexInline)(o,r),l=r.hooks?await r.hooks.processAllTokens(a):a;r.walkTokens&&await Promise.all(this.walkTokens(l,r.walkTokens));let u=await(r.hooks?await r.hooks.provideParser():t?vn.parse:vn.parseInline)(l,r);return r.hooks?await r.hooks.postprocess(u):u})().catch(s);try{r.hooks&&(e=r.hooks.preprocess(e));let o=(r.hooks?r.hooks.provideLexer():t?gn.lex:gn.lexInline)(e,r);r.hooks&&(o=r.hooks.processAllTokens(o)),r.walkTokens&&this.walkTokens(o,r.walkTokens);let a=(r.hooks?r.hooks.provideParser():t?vn.parse:vn.parseInline)(o,r);return r.hooks&&(a=r.hooks.postprocess(a)),a}catch(o){return s(o)}}}onError(t,e){return n=>{if(n.message+=`
304Please report this to https://github.com/markedjs/marked.`,t){let i="<p>An error occurred:</p><pre>"+Gn(n.message+"",!0)+"</pre>";return e?Promise.resolve(i):i}if(e)return Promise.reject(n);throw n}}},Ur=new WU;function me(t,e){return Ur.parse(t,e)}me.options=me.setOptions=function(t){return Ur.setOptions(t),me.defaults=Ur.defaults,ib(me.defaults),me};me.getDefaults=Ph;me.defaults=Lr;me.use=function(...t){return Ur.use(...t),me.defaults=Ur.defaults,ib(me.defaults),me};me.walkTokens=function(t,e){return Ur.walkTokens(t,e)};me.parseInline=Ur.parseInline;me.Parser=vn;me.parser=vn.parse;me.Renderer=uu;me.TextRenderer=Dh;me.Lexer=gn;me.lexer=gn.lex;me.Tokenizer=lu;me.Hooks=xo;me.parse=me;me.options;me.setOptions;me.use;me.walkTokens;me.parseInline;vn.parse;gn.lex;/*! @license DOMPurify 3.3.1 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.3.1/LICENSE */const{entries:mb,setPrototypeOf:Cg,isFrozen:HU,getPrototypeOf:GU,getOwnPropertyDescriptor:QU}=Object;let{freeze:pt,seal:Yt,create:up}
vendor: 5,138 bytes, line 304
304=Object,{apply:cp,construct:dp}=typeof Reflect<"u"&&Reflect;pt||(pt=function(e){return e});Yt||(Yt=function(e){return e});cp||(cp=function(e,n){for(var i=arguments.length,r=new Array(i>2?i-2:0),s=2;s<i;s++)r[s-2]=arguments[s];return e.apply(n,r)});dp||(dp=function(e){for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return new e(...i)});const rl=ht(Array.prototype.forEach),YU=ht(Array.prototype.lastIndexOf),Eg=ht(Array.prototype.pop),po=ht(Array.prototype.push),JU=ht(Array.prototype.splice),kl=ht(String.prototype.toLowerCase),Nc=ht(String.prototype.toString),qc=ht(String.prototype.match),ho=ht(String.prototype.replace),XU=ht(String.prototype.indexOf),ZU=ht(String.prototype.trim),an=ht(Object.prototype.hasOwnProperty),ot=ht(RegExp.prototype.test),fo=eI(TypeError);function ht(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,i=new Array(n>1?n-1:0),r=1;r<n;r++)i[r-1]=arguments[r];return cp(t,e,i)}}function eI(t){return function(){for(var e=arguments.length,n=new Array(e),i=0;i<e;i++)n[i]=arguments[i];return dp(t,n)}}function ae(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:kl;Cg&&Cg(t,null);let i=e.length;for(;i--;){let r=e[i];if(typeof r=="string"){const s=n(r);s!==r&&(HU(e)||(e[i]=s),r=s)}t[r]=!0}return t}function tI(t){for(let e=0;e<t.length;e++)an(t,e)||(t[e]=null);return t}function Tn(t){const e=up(null);for(const[n,i]of mb(t))an(t,n)&&(Array.isArray(i)?e[n]=tI(i):i&&typeof i=="object"&&i.constructor===Object?e[n]=Tn(i):e[n]=i);return e}function mo(t,e){for(;t!==null;){const i=QU(t,e);if(i){if(i.get)return ht(i.get);if(typeof i.value=="function")return ht(i.value)}t=GU(t)}function n(){return null}return n}const _g=pt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),Dc=pt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),Fc=pt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),nI=pt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),Mc=pt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),iI=pt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),Ag=pt(["#text"]),Tg=pt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","
304spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),$c=pt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),Rg=pt(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),sl=pt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),rI=Yt(/\{\{[\w\W]*|[\w\W]*\}\}/gm),sI=Yt(/<%[\w\W]*|[\w\W]*%>/gm),oI=Yt(/\$\{[\w\W]*/gm),aI=Yt(/^data-[\-\w.\u00B7-\uFFFF]+$/),lI=Yt(/^aria-[\-\w]+$/),gb=Yt(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),uI=Yt(/^(?:\w+script|data):/i),cI=Yt(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),vb=Yt(/^html$/i),dI=Yt(/^[a-z][.\w]*(-[.\w]+)+$/i);var Pg=Object.freeze({__proto__:null,ARIA_ATTR:lI,ATTR_WHITESPACE:cI,CUSTOM_ELEMENT:dI,DATA_ATTR:aI,DOCTYPE_NAME:vb,ERB_EXPR:sI,IS_ALLOWED_URI:gb,IS_SCRIPT_OR_DATA:uI,MUSTACHE_EXPR:rI,TMPLIT_EXPR:oI});const go={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},pI=function(){return typeof window>"u"?null:window},hI=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let i=null;const r="data-tt-policy-suffix";n&&n.hasAttribute(r)&&(i=n.getAttribute(r));const s="dompurify"+(i?"#"+i:"");try{return e.createPolicy(s,{createHTML(o){return o},createScriptURL(o){return o}})}catch{return console.warn("TrustedTypes policy "+s+" could not be created."),null}},Ug=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}};function yb(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:pI();const e=W=>yb(W);if(e.version="3.3.1",e.removed=[],!t||!t.document||t.document.nodeType!==go.document||!t.Element)return e.isSupported=!1,e;let{document:n}=t;const i=n,r=i.currentScript,{DocumentFragment:s,HTMLTemplateElement:o,Node:a,Element:l,NodeFilter:u,NamedNodeMap:c=t.NamedNodeMap||t.MozNamedAttrMap,HTMLFormElement:p,DOMParser:h,trustedTypes:d}=t,v=l.prototype,g=mo(v,"cloneNode"),w=mo(v,"remove"),S=mo(v,"nextSibling"),m=mo(v,"childNodes"),y=mo(v,"parentNode");if(typeof o=="function"){const W=n.createElement("template");W.content&&W.content.ownerDocument&&(n=W.content.ownerDocument)}let x,C="";const{implementation:E,createNodeIterator:_,createDocumentFragment:A,getElementsByTagName:I}=n,{importNode:L}=i;let F=Ug();e.isSupported=typeof mb=="function"&&typeof y=="function"&&E&&E.createHTMLDocument!==void 0;const{MUSTACHE_EXPR:q,ERB_EXPR:X,TMPLIT_EXPR:N,DATA_ATTR:oe,ARIA_ATTR:Z,IS_SCRIPT_OR_DATA:te,ATTR_WHITESPACE:T,CUSTOM_ELEMENT:P}=Pg;let{IS_ALLOWED_URI:D}=Pg,$=null;const V=ae({},[..._g,...Dc,...Fc,...Mc,...Ag]);let B=null;const se=ae({},[...Tg,...$c,...Rg,...sl]);let ie=Object.seal(up(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Pe=null,ue=null;const At=Object.seal(up(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}}));let Jt=!0,Xt=!0,Zt=!1,Mn=!0,st=!1,$n=!0,en=!1,pi=!1,Zi=!1,Mt=!1,tn=!1,er=!1,hi=!0,Vs=!1;const Kn="user-content-";let Bs=!0,tr=!1,De={},Be=null;const Ws=ae({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]);let Ca=null;const nr=ae({},["audio","video","img","source","image","track"]);let Hs=null;const Gs=ae({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),fi="http://www.w3.org/1998/Math/MathML",nn="http://www.w3.org/2000/svg",$t="http://www.w3.org/1999/xhtml";let Tt=$t,Qs=!1,Ys=null;const Ea=ae({},[fi,nn,$t],Nc);let ir=ae({},["mi","mo","mn","ms","mtext"]),jr=ae({},["annotation-xml"]);const Js=ae({},["title","style","font","a","script"]);let gt=null;const Bu=["application/xhtml+xml","text/html"],ee="text/html";let J=null,fe=null;const Rt=n.createElement("form"),vt=function(k){return k instanceof RegExp||k instanceof Function},Kt=function(){let k=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};
vendor: 6,877 bytes, line 304
304if(!(fe&&fe===k)){if((!k||typeof k!="object")&&(k={}),k=Tn(k),gt=Bu.indexOf(k.PARSER_MEDIA_TYPE)===-1?ee:k.PARSER_MEDIA_TYPE,J=gt==="application/xhtml+xml"?Nc:kl,$=an(k,"ALLOWED_TAGS")?ae({},k.ALLOWED_TAGS,J):V,B=an(k,"ALLOWED_ATTR")?ae({},k.ALLOWED_ATTR,J):se,Ys=an(k,"ALLOWED_NAMESPACES")?ae({},k.ALLOWED_NAMESPACES,Nc):Ea,Hs=an(k,"ADD_URI_SAFE_ATTR")?ae(Tn(Gs),k.ADD_URI_SAFE_ATTR,J):Gs,Ca=an(k,"ADD_DATA_URI_TAGS")?ae(Tn(nr),k.ADD_DATA_URI_TAGS,J):nr,Be=an(k,"FORBID_CONTENTS")?ae({},k.FORBID_CONTENTS,J):Ws,Pe=an(k,"FORBID_TAGS")?ae({},k.FORBID_TAGS,J):Tn({}),ue=an(k,"FORBID_ATTR")?ae({},k.FORBID_ATTR,J):Tn({}),De=an(k,"USE_PROFILES")?k.USE_PROFILES:!1,Jt=k.ALLOW_ARIA_ATTR!==!1,Xt=k.ALLOW_DATA_ATTR!==!1,Zt=k.ALLOW_UNKNOWN_PROTOCOLS||!1,Mn=k.ALLOW_SELF_CLOSE_IN_ATTR!==!1,st=k.SAFE_FOR_TEMPLATES||!1,$n=k.SAFE_FOR_XML!==!1,en=k.WHOLE_DOCUMENT||!1,Mt=k.RETURN_DOM||!1,tn=k.RETURN_DOM_FRAGMENT||!1,er=k.RETURN_TRUSTED_TYPE||!1,Zi=k.FORCE_BODY||!1,hi=k.SANITIZE_DOM!==!1,Vs=k.SANITIZE_NAMED_PROPS||!1,Bs=k.KEEP_CONTENT!==!1,tr=k.IN_PLACE||!1,D=k.ALLOWED_URI_REGEXP||gb,Tt=k.NAMESPACE||$t,ir=k.MATHML_TEXT_INTEGRATION_POINTS||ir,jr=k.HTML_INTEGRATION_POINTS||jr,ie=k.CUSTOM_ELEMENT_HANDLING||{},k.CUSTOM_ELEMENT_HANDLING&&vt(k.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ie.tagNameCheck=k.CUSTOM_ELEMENT_HANDLING.tagNameCheck),k.CUSTOM_ELEMENT_HANDLING&&vt(k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ie.attributeNameCheck=k.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),k.CUSTOM_ELEMENT_HANDLING&&typeof k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ie.allowCustomizedBuiltInElements=k.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),st&&(Xt=!1),tn&&(Mt=!0),De&&($=ae({},Ag),B=[],De.html===!0&&(ae($,_g),ae(B,Tg)),De.svg===!0&&(ae($,Dc),ae(B,$c),ae(B,sl)),De.svgFilters===!0&&(ae($,Fc),ae(B,$c),ae(B,sl)),De.mathMl===!0&&(ae($,Mc),ae(B,Rg),ae(B,sl))),k.ADD_TAGS&&(typeof k.ADD_TAGS=="function"?At.tagCheck=k.ADD_TAGS:($===V&&($=Tn($)),ae($,k.ADD_TAGS,J))),k.ADD_ATTR&&(typeof k.ADD_ATTR=="function"?At.attributeCheck=k.ADD_ATTR:(B===se&&(B=Tn(B)),ae(B,k.ADD_ATTR,J))),k.ADD_URI_SAFE_ATTR&&ae(Hs,k.ADD_URI_SAFE_ATTR,J),k.FORBID_CONTENTS&&(Be===Ws&&(Be=Tn(Be)),ae(Be,k.FORBID_CONTENTS,J)),k.ADD_FORBID_CONTENTS&&(Be===Ws&&(Be=Tn(Be)),ae(Be,k.ADD_FORBID_CONTENTS,J)),Bs&&($["#text"]=!0),en&&ae($,["html","head","body"]),$.table&&(ae($,["tbody"]),delete Pe.tbody),k.TRUSTED_TYPES_POLICY){if(typeof k.TRUSTED_TYPES_POLICY.createHTML!="function")throw fo('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof k.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw fo('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');x=k.TRUSTED_TYPES_POLICY,C=x.createHTML("")}else x===void 0&&(x=hI(d,r)),x!==null&&typeof C=="string"&&(C=x.createHTML(""));pt&&pt(k),fe=k}},Cn=ae({},[...Dc,...Fc,...nI]),yt=ae({},[...Mc,...iI]),En=function(k){let O=y(k);(!O||!O.tagName)&&(O={namespaceURI:Tt,tagName:"template"});const K=kl(k.tagName),ke=kl(O.tagName);return Ys[k.namespaceURI]?k.namespaceURI===nn?O.namespaceURI===$t?K==="svg":O.namespaceURI===fi?K==="svg"&&(ke==="annotation-xml"||ir[ke]):!!Cn[K]:k.namespaceURI===fi?O.namespaceURI===$t?K==="math":O.namespaceURI===nn?K==="math"&&jr[ke]:!!yt[K]:k.namespaceURI===$t?O.namespaceURI===nn&&!jr[ke]||O.namespaceURI===fi&&!ir[ke]?!1:!yt[K]&&(Js[K]||!Cn[K]):!!(gt==="application/xhtml+xml"&&Ys[k.namespaceURI]):!1},_n=function(k){po(e.removed,{element:k});try{y(k).removeChild(k)}catch{w(k)}},rr=function(k,O){try{po(e.removed,{attribute:O.getAttributeNode(k),from:O})}catch{po(e.removed,{attribute:null,from:O})}if(O.removeAttribute(k),k==="is")if(Mt||tn)try{_n(O)}catch{}else try{O.setAttribute(k,"")}catch{}},Fh=function(k){let O=null,K=null;if(Zi)k="<remove></remove>"+k;else{const je=qc(k,/^[\r\n\t ]+/);K=je&&je[0]}gt==="application/xhtml+xml"&&Tt===$t&&(k='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+k+"</body></html>");const ke=x?x.createHTML(k):k;if(Tt===$t)try{O=new h().parseFromString(ke,gt)}catch{}if(!O||!O.documentElement){O=E.createDocument(Tt,"template",null);try{O.documentElement.innerHTML=Qs?C:ke}catch{}}const Xe=O.body||O.documentElement;return k&&K&&Xe.insertBefore(n.createTextNode(K),Xe.childNodes[0]||null),Tt===$t?I.call(O,en?"html":"body")[0]:en?O.documentElement:Xe},Mh=function(k){return _.call(k.ownerDocument||k,k,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Wu=function(k){return k instanceof p&&(typeof k.nodeName!="string"||typeof k.textContent!="string"||typeof k.removeChild!="function"||!(k.attributes instanceof c)||typeof k.removeAttribute!="function"||typeof k.setAttribute!="function"||typeof k.namespaceURI!="string"||typeof k.insertBefore!="function"||typeof k.hasChildNodes!="function")},$h=function(k){return typeof a=="function"&&k instanceof a};function zn(W,k,O){rl(W,K=>{K.call(e,k,O,fe)})}const Kh=function(k){let O=null;if(zn(F.beforeSanitizeElements,k,null),Wu(k))return _n(k),!0;const K=J(k.nodeName);if(zn(F.uponSanitizeElement,k,{tagName:K,allowedTags:$}),$n&&k.hasChildNodes()&&!$h(k.firstElementChild)&&ot(/<[/\w!]/g,k.innerHTML)&&ot(/<[/\w!]/g,k.textContent)||k.nodeType===go.progressingInstruction||$n&&k.nodeType===go.comment&&ot(/<[/\w]/g,k.data))return _n(k),!0;if(!(At.tagCheck instanceof Function&&At.tagCheck(K))&&(!$[K]||Pe[K])){if(!Pe[K]&&Vh(K)&&(ie.tagNameCheck instanceof RegExp&&ot(ie.tagNameCheck,K)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(K)))return!1;if(Bs&&!Be[K]){const ke=y(k)||k.parentNode,Xe=m(k)||k.childNodes;if(Xe&&ke){const je=Xe.length;for(let St=je-1;St>=0;--St){const Vn=g(Xe[St],!0);Vn.__removalCount=(k.__removalCount||0)+1,ke.insertBefore(Vn,S(k))}}}return _n(k),!0}return k instanceof l&&!En(k)||(K==="noscript"||K==="noembed"||K==="noframes")&&ot(/<\/no(script|embed|frames)/i,k.innerHTML)?(_n(k),!0):(st&&k.nodeType===go.text&&(O=k.textContent,rl([q,X,N],ke=>{O=ho(O,ke," ")}),k.textContent!==O&&(po(e.removed,{element:k.cloneNode()}),k.textContent=O)),zn(F.afterSanitizeElements,k,null),!1)},zh=function(k,O,K){if(hi&&(O==="id"||O==="name")&&(K in n||K in Rt))return!1;if(!(Xt&&!ue[O]&&ot(oe,O))){if(!(Jt&&ot(Z,O))){if(!(At.attributeCheck instanceof Function&&At.attributeCheck(O,k))){if(!B[O]||ue[O]){if(!(Vh(k)&&(ie.tagNameCheck instanceof RegExp&&ot(ie.tagNameCheck,k)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(k))&&(ie.attributeNameCheck instanceof RegExp&&ot(ie.attributeNameCheck,O)||ie.attributeNameCheck instanceof Function&&ie.attributeNameCheck(O,k))||O==="is"&&ie.allowCustomizedBuiltInElements&&(ie.tagNameCheck instanceof RegExp&&ot(ie.tagNameCheck,K)||ie.tagNameCheck instanceof Function&&ie.tagNameCheck(K))))return!1}else if(!Hs[O]){if(!ot(D,ho(K,T,""))){if(!((O==="src"||O==="xlink:href"||O==="href")&&k!=="script"&&XU(K,"data:")===0&&C
304a[k])){if(!(Zt&&!ot(te,ho(K,T,"")))){if(K)return!1}}}}}}}return!0},Vh=function(k){return k!=="annotation-xml"&&qc(k,P)},Bh=function(k){zn(F.beforeSanitizeAttributes,k,null);const{attributes:O}=k;if(!O||Wu(k))return;const K={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:B,forceKeepAttr:void 0};let ke=O.length;for(;ke--;){const Xe=O[ke],{name:je,namespaceURI:St,value:Vn}=Xe,Nr=J(je),Hu=Vn;let We=je==="value"?Hu:ZU(Hu);if(K.attrName=Nr,K.attrValue=We,K.keepAttr=!0,K.forceKeepAttr=void 0,zn(F.uponSanitizeAttribute,k,K),We=K.attrValue,Vs&&(Nr==="id"||Nr==="name")&&(rr(je,k),We=Kn+We),$n&&ot(/((--!?|])>)|<\/(style|title|textarea)/i,We)){rr(je,k);continue}if(Nr==="attributename"&&qc(We,"href")){rr(je,k);continue}if(K.forceKeepAttr)continue;if(!K.keepAttr){rr(je,k);continue}if(!Mn&&ot(/\/>/i,We)){rr(je,k);continue}st&&rl([q,X,N],Hh=>{We=ho(We,Hh," ")});const Wh=J(k.nodeName);if(!zh(Wh,Nr,We)){rr(je,k);continue}if(x&&typeof d=="object"&&typeof d.getAttributeType=="function"&&!St)switch(d.getAttributeType(Wh,Nr)){case"TrustedHTML":{We=x.createHTML(We);break}case"TrustedScriptURL":{We=x.createScriptURL(We);break}}if(We!==Hu)try{St?k.setAttributeNS(St,je,We):k.setAttribute(je,We),Wu(k)?_n(k):Eg(e.removed)}catch{rr(je,k)}}zn(F.afterSanitizeAttributes,k,null)},Sb=function W(k){let O=null;const K=Mh(k);for(zn(F.beforeSanitizeShadowDOM,k,null);O=K.nextNode();)zn(F.uponSanitizeShadowNode,O,null),Kh(O),Bh(O),O.content instanceof s&&W(O.content);zn(F.afterSanitizeShadowDOM,k,null)};return e.sanitize=function(W){let k=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},O=null,K=null,ke=null,Xe=null;if(Qs=!W,Qs&&(W="<!-->"),typeof W!="string"&&!$h(W))if(typeof W.toString=="function"){if(W=W.toString(),typeof W!="string")throw fo("dirty is not a string, aborting")}else throw fo("toString is not a function");if(!e.isSupported)return W;if(pi||Kt(k),e.removed=[],typeof W=="string"&&(tr=!1),tr){if(W.nodeName){const Vn=J(W.nodeName);if(!$[Vn]||Pe[Vn])throw fo("root node is forbidden and cannot be sanitized in-place")}}else if(W instanceof a)O=Fh("<!---->"),K=O.ownerDocument.importNode(W,!0),K.nodeType===go.element&&K.nodeName==="BODY"||K.nodeName==="HTML"?O=K:O.appendChild(K);else{if(!Mt&&!st&&!en&&W.indexOf("<")===-1)return x&&er?x.createHTML(W):W;if(O=Fh(W),!O)return Mt?null:er?C:""}O&&Zi&&_n(O.firstChild);const je=Mh(tr?W:O);for(;ke=je.nextNode();)Kh(ke),Bh(ke),ke.content instanceof s&&Sb(ke.content);if(tr)return W;if(Mt){if(tn)for(Xe=A.call(O.ownerDocument);O.firstChild;)Xe.appendChild(O.firstChild);else Xe=O;return(B.shadowroot||B.shadowrootmode)&&(Xe=L.call(i,Xe,!0)),Xe}let St=en?O.outerHTML:O.innerHTML;return en&&$["!doctype"]&&O.ownerDocument&&O.ownerDocument.doctype&&O.ownerDocument.doctype.name&&ot(vb,O.ownerDocument.doctype.name)&&(St="<!DOCTYPE "+O.ownerDocument.doctype.name+`>
305`+St),st&&rl([q,X,N],Vn=>{St=ho(St,Vn," ")}),x&&er?x.createHTML(St):St},e.setConfig=function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Kt(W),pi=!0},e.clearConfig=function(){fe=null,pi=!1},e.isValidAttribute=function(W,k,O){fe||Kt({});const K=J(W),ke=J(k);return zh(K,ke,O)},e.addHook=function(W,k){typeof k=="function"&&po(F[W],k)},e.removeHook=function(W,k){if(k!==void 0){const O=YU(F[W],k);return O===-1?void 0:JU(F[W],O,1)[0]}return Eg(F[W])},e.removeHooks=function(W){F[W]=[]},e.removeAllHooks=function(){F=Ug()},e}var fI=yb();const Ig="lc-ai-chat",mI=t=>fI.sanitize(me.parse(t||"…",{async:!1})),gI={en:{open:"Open the study and visa assistant",close:"Close chat",title:"Study & Visa Assistant",subtitle:"Ask about courses, fees, visas or accommodation",greeting:"Hello! I can help with studying in the UK, courses, tuition fees, student visas and accommodation. What would you like to know?",placeholder:"Type your question...",send:"Send",error:"Sorry, something went wrong. Please try again or email [email protected].",disclaimer:"General information only — not legal or immigration advice."},fr:{open:"Ouvrir l'assistant études et visa",close:"Fermer le chat",title:"Assistant Études & Visa",subtitle:"Posez vos questions : cours, frais, visas, logement",greeting:"Bonjour ! Je peux vous aider concernant les études au Royaume-Uni, les cours, les frais de scolarité, les visas étudiants et le logement. Que souhaitez-vous savoir ?",placeholder:"Écrivez votre question...",send:"Envoyer",error:"Désolé, une erreur est survenue. Réessayez ou écrivez à [email protected].",disclaimer:"Informations générales uniquement — pas un conseil juridique ou d'immigration."}},vI=()=>{var d;const{language:t}=Ks(),e=gI[t==="fr"?"fr":"en"],[n,i]=b.useState(!1),[r,s]=b.useState(""),[o,a]=b.useState(!1),[l,u]=b.useState(()=>{if(typeof window>"u")return[];try{const v=window.localStorage.getItem(Ig),g=v?JSON.parse(v):null;return Array.isArray(g)?g:[]}catch{return[]}}),c=b.useRef(null),p=b.useRef(null);b.useEffect(()=>{try{window.localStorage.setItem(Ig,JSON.stringify(l.slice(-40)))}catch{}},[l]),b.useEffect(()=>{var v;(v=c.current)==null||v.scrollTo({top:c.current.scrollHeight,behavior:"smooth"})},[l,o,n]),b.useEffect(()=>{var v;n&&((v=p.current)==null||v.focus())},[n,o]);const h=async()=>{const v=r.trim();if(!v||o)return;const g=[...l,{role:"user",content:v}];u(g),s(""),a(!0);try{const w=await fetch("https://ojqjefftbgdscozhanca.supabase.co/functions/v1/chat-assistant",{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6Im9qcWplZmZ0Ymdkc2Nvemh
305hbmNhIiwicm9sZSI6ImFub24iLCJpYXQiOjE3NzA5MTQ2ODMsImV4cCI6MjA4NjQ5MDY4M30.TrIFP_RG4oLuXFbzgggy5fq7ZcCjscMPov-buOjw-ig"},body:JSON.stringify({messages:g,language:t})});if(!w.ok||!w.body){let x=e.error;try{const C=await w.json();C!=null&&C.error&&(x=C.error)}catch{}u([...g,{role:"assistant",content:x}]);return}const S=w.body.getReader(),m=new TextDecoder;let y="";for(u([...g,{role:"assistant",content:""}]);;){const{done:x,value:C}=await S.read();if(x)break;y+=m.decode(C,{stream:!0}),u([...g,{role:"assistant",content:y}])}y.trim()||u([...g,{role:"assistant",content:e.error}])}catch{u([...g,{role:"assistant",content:e.error}])}finally{a(!1)}};return f.jsxs(f.Fragment,{children:[f.jsx("button",{type:"button",onClick:()=>i(v=>!v),"aria-label":n?e.close:e.open,"aria-expanded":n,className:"fixed bottom-5 right-5 sm:bottom-6 sm:right-24 z-50 w-14 h-14 rounded-full bg-primary text-primary-foreground shadow-lg flex items-center justify-center hover:opacity-90 transition-opacity",style:{bottom:"5.5rem"},children:n?f.jsx(dh,{className:"w-6 h-6"}):f.jsx(Xk,{className:"w-6 h-6"})}),n&&f.jsxs("div",{role:"dialog","aria-label":e.title,className:"fixed z-50 bottom-40 right-4 left-4 sm:left-auto sm:right-6 sm:w-[380px] max-h-[70vh] flex flex-col rounded-xl border border-border bg-background shadow-xl overflow-hidden",children:[f.jsxs("div",{className:"bg-primary text-primary-foreground px-4 py-3",children:[f.jsx("p",{className:"font-semibold text-base",children:e.title}
305),f.jsx("p",{className:"text-xs opacity-90",children:e.subtitle})]}),f.jsxs("div",{ref:c,className:"flex-1 overflow-y-auto p-4 space-y-3 text-sm",children:[f.jsx("div",{className:"bg-muted text-foreground rounded-lg px-3 py-2",children:e.greeting}),l.map((v,g)=>v.role==="user"?f.jsx("div",{className:"ml-auto max-w-[85%] bg-primary text-primary-foreground rounded-lg px-3 py-2 whitespace-pre-wrap",children:v.content},g):f.jsx("div",{className:"max-w-[90%] bg-muted text-foreground rounded-lg px-3 py-2 [&_a]:underline [&_ul]:list-disc [&_ul]:pl-4 [&_ol]:list-decimal [&_ol]:pl-4 [&_p]:mb-2 [&_p:last-child]:mb-0 [&_strong]:font-semibold",dangerouslySetInnerHTML:{__html:mI(v.content)}},g)),o&&((d=l[l.length-1])==null?void 0:d.role)==="user"&&f.jsx("div",{className:"max-w-[90%] bg-muted text-muted-foreground rounded-lg px-3 py-2",children:"…"})]}),f.jsxs("form",{onSubmit:v=>{v.preventDefault(),h()},className:"border-t border-border p-3 space-y-2",children:[f.jsxs("div",{className:"flex gap-2",children:[f.jsx("label",{htmlFor:"ai-chat-input",className:"sr-only",children:e.placeholder}),f.jsx("input",{id:"ai-chat-input",ref:p,value:r,onChange:v=>s(v.target.value),placeholder:e.placeholder,className:"flex-1 min-h-[44px] rounded-md border border-input bg-background px-3 text-sm focus:outline-none focus:ring-2 focus:ring-ring"}),f.jsx(jo,{type:"submit",size:"icon",className:"h-11 w-11",disabled:o||!r.trim(),"aria-label":e.send,children:f.jsx(uC,{className:"w-4 h-4"})})]}),f.jsx("p",{className:"text-[11px] leading-snug text-muted-foreground",children:e.disclaimer})]})]})]})},yI=()=>f.jsxs(PP,{children:[f.jsx(LP,{title:"Legal Connect UK – Study, Visa & Settlement Support",description:"Legal Connect UK helps UK and international students navigate higher education, student visas, accommodation, and settlement in the United Kingdom.",canonical:"https://legal-connect.uk/"}),f.jsx(nU,{}),f.jsx(iU,{}),f.jsx(vI,{})]}),SI=b.lazy(()=>Q(()=>import("./About-C6Vp93mt.js"),__vite__mapDeps([0,1,2,3]))),wI=b.lazy(()=>Q(()=>import("./Contact-CKTp2L8z.js"),__vite__mapDeps([4,5,6]))),bI=b.lazy(()=>Q(()=>import("./InternationalStudents-DvhS8cXW.js"),__vite__mapDeps([7,5,6,2,8,9,10]))),xI=b.lazy(()=>Q(()=>import("./NotFound-BbHSPEuC.js"),[])),kI=b.lazy(()=>Q(()=>import("./VisaServices-BVIG2mEv.js"),__vite__mapDeps([11,5,6,12,3,8,10]))),CI=b.lazy(()=>Q(()=>import("./PrivacyPolicy-AvIe2DhG.js"),[])),EI=b.lazy(()=>Q(()=>import("./TermsConditions-ClBjASpi.js"),[])),_I=b.lazy(()=>Q(()=>import("./CheckEligibility-5k1mZW2k.js"),__vite__mapDeps([13,14,15,12,16]))),AI=b.lazy(()=>Q(()=>import("./StartApplication-AeYcfO-F.js"),__vite__mapDeps([17,16,6]))),TI=b.lazy(()=>Q(()=>import("./Blog-CaHl1c5b.js"),__vite__mapDeps([18,19,20,21]))),RI=b.lazy(()=>Q(()=>import("./BlogPost-CUT2yDko.js"),__vite__mapDeps([22,19,20,23]))),PI=b.lazy(()=>Q(()=>import("./WorkingOnStudentVisa-DOmvCO_Y.js"),__vite__mapDeps([24,23]))),UI=b.lazy(()=>Q(()=>import("./StudyingInUKGuide-BIM0Yfpw.js"),__vite__mapDeps([25,21,23]))),II=b.lazy(()=>Q(()=>import("./DomainStatus-C7KmbxCY.js"),__vite__mapDeps([26,27,28,29,1]))),OI=b.lazy(()=>Q(()=>import("./ApprovalDashboard-CqpPMqPT.js"),__vite__mapDeps([30,19,27,28,29,31,32,10,8,33]))),LI=b.lazy(()=>Q(()=>import("./Login-CKMCpm75.js"),[])),jI=b.lazy(()=>Q(()=>import("./Recruitment-BCGxhF5u.js"),__vite__mapDeps([34,35,33,36,2]))),NI=b.lazy(()=>Q(()=>import("./RecruitmentAuth-ButCilxn.js"),__vite__mapDeps([37,38,39,2,33]))),qI=b.lazy(()=>Q(()=>import("./PostCV-azEI8jaG.js"),__vite__mapDeps([40,38,39,41,42,31,10,35,6]))),DI=b.lazy(()=>Q(()=>import("./PostJob-Cy7WK4ir.js"),__vite__mapDeps([43,38,39,41,42,31,10,33,6]))),FI=b.lazy(()=>Q(()=>import("./BrowseJobs-DeYEspCc.js"),__vite__mapDeps([44,38,42,31,32,36,33]))),MI=b.lazy(()=>Q(()=>import("./BrowseGraduates-jhL9kQJe.js"),__vite__mapDeps([45,38,42,31,32,36,2,8]))),$I=b.lazy(()=>Q(()=>import("./GraduateRecruitment-DTdVNucH.js"),__vite__mapDeps([46,1]))),KI=b.lazy(()=>Q(()=>import("./OAuthConsent-y37QLSWL.js"),[])),zI=b.lazy(()=>Q(()=>import("./VisaApplication-BFtDcwhG.js"),__vite__mapDeps([47,48,49,8,12,3,10]))),VI=b.lazy(()=>Q(()=>
305import("./FamilyVisa-BFDSCYsW.js"),__vite__mapDeps([50,48,49,8,12,3,10]))),BI=b.lazy(()=>Q(()=>import("./AsylumRefugee-CcpW__YT.js"),__vite__mapDeps([51,48,49,8,12,3,10]))),WI=b.lazy(()=>Q(()=>import("./NationalityCitizenship-B48GSkPr.js"),__vite__mapDeps([52,48,49,8,12,3,10]))),HI=b.lazy(()=>Q(()=>import("./VisaExtension-C-bHybPg.js"),__vite__mapDeps([53,48,49,8,12,3,10]))),GI=b.lazy(()=>Q(()=>import("./AppealReview-AsLQ1heK.js"),__vite__mapDeps([54,48,49,8,12,3,10]))),QI=b.lazy(()=>Q(()=>import("./Overstayers-Cqylgk87.js"),__vite__mapDeps([55,48,49,8,12,3,10]))),YI=b.lazy(()=>Q(()=>import("./ImmigrationEnquiry-BxabCwfh.js"),__vite__mapDeps([56,49,10,6]))),JI=b.lazy(()=>Q(()=>import("./FindACourse-Ci_SOzaw.js"),__vite__mapDeps([57,58,2,10,6]))),XI=b.lazy(()=>Q(()=>import("./Courses-CYizz6gJ.js"),__vite__mapDeps([59,60,2]))),ZI=b.lazy(()=>Q(()=>import("./StudentFinanceFunding-BAtKGB2H.js"),__vite__mapDeps([61,10]))),eO=b.lazy(()=>Q(()=>import("./FlexibleStudyOptions-fj_Sh66l.js"),[])),tO=b.lazy(()=>Q(()=>import("./MatureStudents-CGMlaFNV.js"),__vite__mapDeps([62,10]))),nO=b.lazy(()=>Q(()=>import("./FAQs-Bi3xKVkI.js"),__vite__mapDeps([63,64,31,58]))),iO=b.lazy(()=>Q(()=>import("./WhyStudyUK-DrzkyinY.js"),__vite__mapDeps([65,2,60,10,33,29,66,15,12]))),rO=b.lazy(()=>Q(()=>import("./FindACourse-IDAMRp2s.js"),__vite__mapDeps([67,14,15,12,5,6,60,68,2,29,10,28,36]))),sO=b.lazy(()=>Q(()=>import("./EntryRequirements-CCpM4J82.js"),__vite__mapDeps([69,70,58,10]))),oO=b.lazy(()=>Q(()=>import("./HowToApply-Bs9o8w4d.js"),__vite__mapDeps([71,70,58,10]))),aO=b.lazy(()=>Q(()=>import("./EnglishLanguageRequirements-CzrW-Bbw.js"),__vite__mapDeps([72,70,58,10]))),lO=b.lazy(()=>Q(()=>import("./TuitionFeesScholarships--kuy2GO6.js"),__vite__mapDeps([73,14,15,12,5,6,2,74,66,10]))),uO=b.lazy(()=>Q(()=>import("./StudentVisaInformation-XAtlJty_.js"),__vite__mapDeps([75,14,15,12,5,6,10,8,74,2,76]))),cO=b.lazy(()=>Q(()=>import("./AccommodationInUK-DIHF3sg4.js"),__vite__mapDeps([77,14,15,12,5,6,10,74,68,8,76,9]))),dO=b.lazy(()=>Q(()=>import("./PreDepartureSupport-C-BC65oy.js"),__vite__mapDeps([78,70,58,10]))),pO=b.lazy(()=>Q(()=>import("./ArrivalSettlingIn-Cypy5ICF.js"),__vite__mapDeps([79,70,58,10]))),hO=b.lazy(()=>Q(()=>import("./FAQs-B8qlfc46.js"),__vite__mapDeps([80,14,15,12,64,31]))),fO=b.lazy(()=>Q(()=>import("./StudyFromCoteDivoire-gsIHN4FT.js"),__vite__mapDeps([81,64,31,10,15,12]))),mO=new D_,gO=()=>f.jsx(F_,{client:mO,children:f.jsx(zA,{children:f.jsx(kP,{children:f.jsxs(f_,{children:[f.jsx(YC,{}),f.jsx(TE,{}),f.jsx(NA,{children:f.jsx(b.Suspense,{fallback:f.jsx("div",{className:"min-h-screen"}),children:f.jsxs(AA,{children:[f.jsx(H,{path:"/",element:f.jsx(yI,{})}),f.jsx(H,{path:"/about",element:f.jsx(SI,{})}),f.jsx(H,{path:"/contact",element:f.jsx(wI,{})}),f.jsx(H,{path:"/international-students",element:f.jsx(bI,{})}),f.jsx(H,{path:"/visa-services",element:f.jsx(kI,{})}),f.jsx(H,{path:"/privacy-policy",element:f.jsx(CI,{})}),f.jsx(H,{path:"/terms-conditions",element:f.jsx(EI,{})}),f.jsx(H,{path:"/visa-application",element:f.jsx(zI,{})}),f.jsx(H,{path:"/family-visa",element:f.jsx(VI,{})}),f.jsx(H,{path:"/asylum-refugee",element:f.jsx(BI,{})}),f.jsx(H,{path:"/nationality-citizenship",element:f.jsx(WI,{})}),f.jsx(H,{path:"/visa-extension",element:f.jsx(HI,{})}),f.jsx(H,{path:"/appeal-review",element:f.jsx(GI,{})}),f.jsx(H,{path:"/overstayers",element:f.jsx(QI,{})}),f.jsx(H,{path:"/immigration-enquiry",element:f.jsx(YI,{})}),f.jsx(H,{path:"/check-eligibility",element:f.jsx(_I,{})}),f.jsx(H,{path:"/start-application",element:f.jsx(AI,{})}),f.jsx(H,{path:"/uk-students/find-a-course",element:f.jsx(JI,{})}),f.jsx(H,{path:"/uk-students/courses",element:f.jsx(XI,{})}),f.jsx(H,{path:"/uk-students/student-finance-funding",element:f.jsx(ZI,{})}),f.jsx(H,{path:"/uk-students/flexible-study-options",element:f.jsx(eO,{})}),f.jsx(H,{path:"/uk-students/mature-students",element:f.jsx(tO,{})}),f.jsx(H,{path:"/uk-students/faqs",element:f.jsx(nO,{})}),f.jsx(H,{path:"/international-students/why-study-in-the-uk",element:f.jsx(iO,{})}),f.jsx(H,{path:"/international-students/find-a-course",element:f.jsx(rO,{})}),f.jsx(H,{path:"/international-students/entry-requirements",element:f.jsx(sO,{})}),f.jsx(H,{path:"/international-students/how-to-apply",element:f.jsx(oO,{})}),f.jsx(H,{path:"/international-students/english-language-requirements",element:f.jsx(aO,{})}),f.jsx(H,{path:"/international-students/tuition-fees-scholarships",element:f.jsx(lO,{})}),f.jsx(H,{path:"/international-students/student-visa-information",element:f.jsx(uO,{})}
305),f.jsx(H,{path:"/international-students/accommodation-in-the-uk",element:f.jsx(cO,{})}),f.jsx(H,{path:"/international-students/pre-departure-support",element:f.jsx(dO,{})}),f.jsx(H,{path:"/international-students/arrival-settling-in",element:f.jsx(pO,{})}),f.jsx(H,{path:"/international-students/faqs",element:f.jsx(hO,{})}),f.jsx(H,{path:"/international-students/study-in-the-uk-from-cote-divoire",element:f.jsx(fO,{})}),f.jsx(H,{path:"/blog",element:f.jsx(TI,{})}),f.jsx(H,{path:"/blog/working-on-student-visa",element:f.jsx(PI,{})}),f.jsx(H,{path:"/blog/studying-in-the-uk-guide",element:f.jsx(UI,{})}),f.jsx(H,{path:"/blog/:id",element:f.jsx(RI,{})}),f.jsx(H,{path:"/recruitment",element:f.jsx(jI,{})}),f.jsx(H,{path:"/graduate-recruitment",element:f.jsx($I,{})}),f.jsx(H,{path:"/recruitment/auth",element:f.jsx(NI,{})}),f.jsx(H,{path:"/recruitment/post-cv",element:f.jsx(qI,{})}),f.jsx(H,{path:"/recruitment/post-job",element:f.jsx(DI,{})}),f.jsx(H,{path:"/recruitment/jobs",element:f.jsx(FI,{})}),f.jsx(H,{path:"/recruitment/graduates",element:f.jsx(MI,{})}),f.jsx(H,{path:"/admin/login",element:f.jsx(LI,{})}),f.jsx(H,{path:"/.lovable/oauth/consent",element:f.jsx(KI,{})}),f.jsx(H,{path:"/admin/domain-status",element:f.jsx(fg,{children:f.jsx(II,{})})}),f.jsx(H,{path:"/admin/approvals",element:f.jsx(fg,{children:f.jsx(OI,{})})}),f.jsx(H,{path:"*",element:f.jsx(xI,{})})]})})})]})})})});nS(document.getElementById("root")).render(f.jsx(gO,{}));export{IS as $,bl as A,jo as B,eC as C,_u as D,bn as E,Ck as F,Vi as G,$e as H,ah as I,__ as J,S_ as K,PP as L,LS as M,Vd as N,ju as O,lC as P,v_ as Q,y_ as R,LP as S,kw as T,hC as U,U_ as V,b_ as W,AO as X,CP as Y,Ah as Z,TO as _,ce as a,Zk as a0,zm as a1,Fu as a2,RO as a3,rw as a4,G1 as a5,Bi as a6,Sa as a7,oh as a8,Q1 as a9,Y1 as aa,Ak as ab,SO as ac,cS as ad,Gl as ae,Wa as af,Xg as ag,j as ah,Xi as b,Re as c,iS as d,uC as e,rC as f,oC as g,_O as h,me as i,f as j,Ji as k,_t as l,cC as m,Lu as n,kO as o,fI as p,ta as q,b as r,Hr as s,j_ as t,Ks as u,ut as v,EO as w,un as x,CO as y,lk 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.